/* Headings are sentence case as written (D040); no text-transform changes their capitals. */
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.6 var(--font-body)}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,.logo,.headline-value,.val{font-family:var(--font-head);line-height:1.12;letter-spacing:-.04em}h1{font-size:2.625rem;margin:12px 0 18px}h2{font-size:1.75rem;margin:0 0 18px}h3{font-size:1.375rem;margin:0 0 12px}p{margin:0 0 18px}a,button,input,select,summary{outline-offset:4px}:focus-visible{outline:2px solid var(--ink)}[hidden]{display:none!important}.muted{color:var(--muted)}.small{font-size:.8125rem}.mono,.eyebrow{font-family:var(--font-body);font-size:.75rem}.eyebrow{color:var(--muted)}.container,main{max-width:1160px;margin:auto;padding:0 40px}main{padding-top:28px;padding-bottom:40px}.site-header{border-bottom:1px solid var(--hair);background:var(--paper)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:84px}.logo{font-size:1.5625rem;font-weight:700;text-decoration:none;white-space:nowrap}.logo span{color:var(--brand)}.logo small{font:.75rem var(--font-body);letter-spacing:0}.main-nav{display:flex;gap:24px;font-size:.875rem}.main-nav a{text-decoration:none}.theme-control{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--muted)}.theme-control select{padding:7px;border:1px solid var(--field-border);border-radius:6px;background:var(--card);color:var(--ink)}.skip-link{position:absolute;top:8px;left:12px;padding:12px;background:var(--card);z-index:100;transform:translateY(calc(-100% - 16px));clip-path:inset(50%)}.skip-link:focus{transform:none;clip-path:none}.category-nav{border-bottom:1px solid var(--hair)}.nav-inner{display:flex;gap:20px;overflow:auto;scrollbar-width:thin}.nav-link{white-space:nowrap;display:flex;align-items:center;gap:7px;text-decoration:none;font-size:.875rem;padding:12px 0;border-bottom:3px solid transparent}.nav-link[aria-current=page]{border-color:var(--line);font-weight:600}.dot{width:9px;height:9px;border:2px solid var(--line);border-radius:50%}.route{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:.75rem;margin:10px 0}.breadcrumb{font-size:.75rem;color:var(--muted);margin-bottom:26px}.breadcrumb a{text-decoration:underline}.intro{margin-bottom:var(--space-8)}.intro p{max-width:680px;color:var(--muted)}.updated{font-size:.6875rem;color:var(--muted)}.hero{background:linear-gradient(110deg,var(--hero-start),var(--hero-end));border-bottom:1px solid var(--hair);padding:52px 0}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}.hero h1{font-size:3.75rem}.hero h1 em{font-style:normal;color:var(--brand)}.hero p{font-size:1.125rem;max-width:460px;color:var(--muted)}.finder{display:flex;gap:10px;background:var(--card);padding:8px 10px 8px 18px;border:1px solid var(--hair);border-radius:8px;margin:28px 0 14px}.finder input{border:0;min-width:0;width:100%;background:transparent;color:var(--ink);font-size:1rem}.finder button{background:var(--brand);color:var(--brand-text);border:0;width:44px;height:44px;border-radius:6px;flex-shrink:0}.trust{display:flex;gap:20px;font-size:.75rem;color:var(--muted)}.line-map{width:100%;max-height:330px}.line-map text{font:.6875rem var(--font-body);fill:var(--muted)}.line-map .station{fill:var(--hero-start);stroke:var(--ink)}.section{margin:18px 0 50px}.section-heading{display:flex;gap:20px;align-items:baseline;justify-content:space-between;margin-bottom:18px}.section-heading h2{margin:0}.section-heading a{font-size:.8125rem}.doors{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--hair);border-radius:12px;overflow:hidden}.door{padding:24px;border:0;border-right:1px solid var(--hair);background:var(--door-one);color:var(--ink);text-align:left}.door:nth-child(2){background:var(--door-two)}.door:nth-child(3){background:var(--door-three);border:0}.door p{font-size:.875rem;color:var(--muted)}.door .eyebrow{display:block;margin-bottom:15px}.door[aria-pressed=true]{box-shadow:inset 0 -4px var(--brand)}.door .arrow{display:block;font-size:1.375rem;color:var(--brand);margin-top:20px}.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tool-link{display:block;text-decoration:none;border:1px solid var(--hair);border-radius:12px;background:var(--card);padding:23px}.tool-link .route{margin:0 0 20px}.tool-link p{font-size:.875rem;color:var(--muted)}.tool-link .go{display:block;margin-top:22px;font-size:.8125rem;font-weight:600;color:var(--brand)}.filter-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:18px 0}.filter-bar select{width:auto}.tool-workspace{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:26px;align-items:start}.input-panel,.result-panel{min-width:0;background:var(--card);border:1px solid var(--hair);border-radius:12px;padding:28px}.input-panel h2{font-size:1.4375rem;margin-bottom:8px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:25px 0}.grid>*{min-width:0}.grid label{display:block;color:var(--muted);font-size:.75rem;margin-bottom:7px}input[type=number],input[type=text],input[type=email],select{width:100%;min-width:0;padding:12px;border:1px solid var(--field-border);border-radius:6px;background:var(--paper);color:var(--ink);font-size:1rem}input[type=number]{font-family:var(--font-body)}.btn{display:inline-block;text-align:center;text-decoration:none;padding:12px 18px;border:1px solid var(--hair);border-radius:8px;background:var(--card);color:var(--ink);font-size:.875rem;font-weight:500;min-height:44px}.primary{background:var(--line);color:var(--line-text);border-color:var(--line)}.secondary{background:var(--card);color:var(--ink)}.input-panel>button{width:100%;margin-bottom:15px}.result-panel{border-top:3px solid var(--line)}.headline-value{font-size:3.25rem;overflow-wrap:normal;word-break:normal;line-height:1.15;font-weight:700;color:var(--line);font-variant-numeric:tabular-nums;margin:8px 0 16px}.headline .eyebrow{margin-bottom:12px}.headline #headline-context{font-size:.875rem}.results{display:none}.results.show{display:block}.stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.stat{padding:14px;background:var(--soft);border-radius:8px;min-width:0}.lbl{font-size:.6875rem;color:var(--muted)}.val{font-size:1.3125rem;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:normal;word-break:normal}.headline-value.fit-break,.val.fit-break,.scenario-pair strong.fit-break{overflow-wrap:anywhere}.results>.stat .val{font-size:1rem}svg text{font-family:var(--font-body)}.share-actions{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 12px}.share-actions .btn{font-size:.75rem;padding:10px 12px}.assumptions{border-top:1px solid var(--hair);padding-top:18px;margin-top:20px;font-size:.8125rem}.assumptions summary{font-weight:600;cursor:pointer}.note{font-size:.75rem;line-height:1.7;color:var(--muted);margin:12px 0 0}.related{background:var(--soft);border:1px solid var(--hair);border-radius:10px;padding:22px;margin-top:var(--space-block)}.related a{display:block;padding:8px 0;font-size:.875rem}.table-wrap{max-width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:.8125rem}th,td{padding:10px 8px;text-align:left;border-bottom:1px solid var(--hair)}th{font-size:.6875rem;color:var(--muted)}tr.best{background:var(--soft)}.rank-badge{font-family:var(--font-body);margin-right:8px}.sub-row{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:8px;margin:12px 0}.sub-row select{grid-column:1}.row-del{width:44px;height:44px;border:1px solid var(--hair);background:var(--paper);color:var(--ink);border-radius:6px}.newsletter{padding:25px;border:1px solid var(--hair);border-radius:12px;background:var(--soft);margin:var(--space-group) 0}.newsletter h2{font-size:1.5rem}.newsletter p{max-width:650px;font-size:.875rem;color:var(--muted)}.footer{border-top:1px solid var(--hair);padding:32px 0;color:var(--muted);font-size:.75rem}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.footer .logo{color:var(--ink);margin-bottom:16px;display:block}.footer-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.mobile-action{display:none}.notice{border-left:3px solid var(--brand);padding:16px 20px;background:var(--soft);margin:20px 0}.faq{max-width:750px;margin-top:var(--space-section)}.faq details{padding:16px 0;border-bottom:1px solid var(--hair)}.faq summary{cursor:pointer;font-weight:500}.faq p{font-size:.875rem;color:var(--muted);margin-top:15px}.result-panel.is-stale{border:2px dashed var(--line-ink)}.result-panel.is-stale::before{content:"Out of date — update your result";display:table;margin:0 0 16px;padding:4px 10px;border-radius:999px;background:var(--line-ink);color:var(--line-text);font:600 .8125rem/1.4 var(--font-body)}.empty{padding:24px;background:var(--soft);border-radius:8px}.course-label{font-size:.8125rem;font-weight:600;color:var(--muted);margin:0 0 12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1200px){.container,main{padding-left:48px;padding-right:48px}.hero h1{font-size:4.125rem}}
@media(max-width:900px){.container,main{padding-left:24px;padding-right:24px}.header-inner{gap:15px}.theme-control span{display:none}.main-nav{gap:15px}.hero-grid{gap:20px}.hero h1{font-size:3rem}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.input-panel,.result-panel{padding:22px}.headline-value{font-size:2.625rem}.grid{grid-template-columns:1fr}}
@media(max-width:560px){.container,main{padding-left:20px;padding-right:20px}.header-inner{min-height:70px;flex-wrap:wrap;gap:8px;padding-top:14px;padding-bottom:14px}.logo{font-size:1.375rem}.main-nav{order:3;width:100%;font-size:.875rem;padding-top:8px}.theme-control select{font-size:1rem;max-width:none}.hero{padding:30px 0}.hero-grid{display:block}.hero h1{font-size:2.875rem}.hero p{font-size:1rem}.line-map{display:none}.trust{gap:15px;font-size:.6875rem}main{padding-top:25px}.section{margin-bottom:34px}.section-heading h2{font-size:1.625rem}.section-heading>.eyebrow{display:none}.doors,.tool-grid,.tool-workspace{display:block}.door{width:100%;border-right:0;border-bottom:1px solid var(--hair);padding:20px}.door p{margin:0}.door .arrow{margin-top:12px}.door .eyebrow{margin-bottom:10px}.tool-link{margin-bottom:12px;padding:22px}.intro h1{font-size:2.125rem}.input-panel{margin-bottom:22px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.input-panel,.result-panel{padding:20px}.headline-value{font-size:2.375rem}.stat-row{gap:8px}.val{font-size:1.25rem}.mobile-action{display:block;position:sticky;bottom:0;padding:12px 0;background:var(--paper);border-top:1px solid var(--hair);z-index:10}.mobile-action .btn{width:100%}.footer-grid{display:block}.filter-bar select{width:100%}.newsletter{padding:22px}.breadcrumb{font-size:.6875rem}.share-actions .btn{flex:1}.sub-row{grid-template-columns:minmax(0,1fr) 86px}}
@media(prefers-reduced-motion:no-preference){a,button{transition:background-color .15s,border-color .15s}}
.primary{background:var(--line-ink);border-color:var(--line-ink)}
.headline-value{color:var(--line-ink)}
.chart-legend{display:flex;flex-wrap:wrap;gap:14px;font:.75rem var(--font-body);color:var(--muted);margin:10px 0}.chart-legend span:first-child{color:var(--ink)}
.hero .eyebrow{font-size:.75rem}
.webinar-band{background:var(--soft);padding:28px;border:1px solid var(--hair);border-radius:12px}.webinar-band>p{max-width:670px}.webinar-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin:24px 0}.webinar-links a{font-size:.875rem;padding:10px 0}

/* Calm, direct refinement: plain-language wayfinding with restrained depth. */
body{
  letter-spacing:-.006em;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.logo,.headline-value,.val{
  font-optical-sizing:auto;
}
h1{letter-spacing:-.045em}
h2{letter-spacing:-.035em}
h3{letter-spacing:-.025em}
.site-header{
  position:sticky;
  top:0;
  z-index:40;
  border-bottom:0;
  background:var(--glass);
  -webkit-backdrop-filter:blur(22px) saturate(165%);
  backdrop-filter:blur(22px) saturate(165%);
  box-shadow:0 1px 0 color-mix(in srgb,var(--hair) 72%,transparent);
}
.header-inner{min-height:76px}
.logo{letter-spacing:-.045em}
.logo small{margin-left:2px;color:var(--muted)}
.main-nav a,.nav-link{
  border-radius:8px;
  transition:color 160ms ease,background-color 160ms ease,transform 100ms ease;
}
.main-nav a{padding:9px 4px;font-weight:500}
.main-nav a:hover{color:var(--brand)}
.main-nav a:active,.nav-link:active,.btn:active,.finder button:active,.door:active,.tool-link:active{
  transform:scale(.975);
  transition-duration:80ms;
}
.theme-control select{
  border-color:var(--field-border);
  border-radius:10px;
  background:var(--soft);
  padding:8px 10px;
}
.category-nav{
  border-bottom:1px solid var(--hair);
  background:color-mix(in srgb,var(--paper) 94%,transparent);
}
.nav-inner{gap:8px;padding-top:7px;padding-bottom:7px}
.nav-link{
  gap:8px;
  padding:8px 10px;
  border-bottom:0;
  font-size:.875rem;
  color:var(--muted);
}
.nav-link:hover{background:var(--soft);color:var(--ink)}
.nav-link[aria-current=page]{
  background:var(--soft);
  color:var(--ink);
  box-shadow:inset 0 0 0 1px var(--hair);
}
.dot{width:8px;height:8px;border:0;background:var(--line)}
.hero{
  position:relative;
  overflow:hidden;
  padding:72px 0 76px;
  background:
    radial-gradient(circle at 76% 16%,color-mix(in srgb,var(--line-dt) 10%,transparent),transparent 34%),
    linear-gradient(125deg,var(--hero-start),var(--hero-end));
}
.hero-grid{gap:64px}
.hero h1{font-size:clamp(3.25rem,6vw,4.5rem);line-height:1.01;max-width:660px}
.hero p{font-size:1.1875rem;line-height:1.55}
.finder{
  max-width:540px;
  padding:7px 8px 7px 20px;
  border-color:color-mix(in srgb,var(--hair) 76%,transparent);
  border-radius:15px;
  box-shadow:var(--shadow-md);
}
.finder:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent),var(--shadow-md)}
.finder button{border-radius:11px}
.line-map{opacity:.82;filter:saturate(.82)}
main{padding-top:52px;padding-bottom:64px}
.section{margin-bottom:var(--space-section)}
.section-heading{margin-bottom:var(--space-heading-after)}
.doors{
  gap:14px;
  border:0;
  border-radius:0;
  overflow:visible;
}
.door{
  min-height:218px;
  padding:26px;
  border:1px solid var(--hair)!important;
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  transition:transform 180ms ease,box-shadow 180ms ease,border-color 180ms ease;
}
.door:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.door[aria-pressed=true]{border-color:var(--brand)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent),var(--shadow-sm)}
.door .arrow{margin-top:auto}
.tool-grid{gap:var(--space-grid)}
.tool-link{
  border-color:color-mix(in srgb,var(--hair) 82%,transparent);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  transition:transform 180ms ease,box-shadow 180ms ease,border-color 180ms ease;
}
.tool-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--brand) 28%,var(--hair))}
.tool-link .go{font-size:.875rem}
.input-panel,.result-panel,.newsletter,.webinar-band,.related{
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
}
input[type=number],input[type=text],input[type=email],select,.btn{border-radius:10px}
.btn{transition:transform 100ms ease,background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease}
.primary{box-shadow:0 7px 18px color-mix(in srgb,var(--line-ink) 18%,transparent)}
.primary:hover{box-shadow:0 9px 24px color-mix(in srgb,var(--line-ink) 24%,transparent)}
.newsletter{padding:32px}
.footer{padding-top:18px}

@media(max-width:900px){
  .hero{padding:52px 0 58px}
  .hero-grid{gap:32px}
}
@media(max-width:1024px) and (max-height:600px){
  .tool-workspace{grid-template-columns:1fr}
  .input-panel{margin-bottom:22px}
}
@media(max-width:560px){
  .site-header{position:relative}
  .header-inner{min-height:68px;padding-top:12px;padding-bottom:12px}
  .main-nav{padding-top:5px;justify-content:space-between;gap:8px}
  .main-nav a{padding:7px 0}
  .category-nav{position:sticky;top:0;z-index:35;background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}
  .nav-inner{padding-left:14px;padding-right:14px}
  .hero{padding:42px 0 48px}
  .hero h1{font-size:clamp(2.7rem,13vw,3.45rem)}
  .finder{margin-top:24px}
  main{padding-top:38px}
  .section{margin-bottom:var(--space-section)}
  .doors{display:grid;grid-template-columns:1fr;gap:12px}
  .door{min-height:auto;padding:22px}
  .tool-link{margin-bottom:var(--space-4)}
}
@media(prefers-reduced-motion:reduce){
  .door:hover,.tool-link:hover{transform:none}
}
@media(prefers-reduced-transparency:reduce){
  .site-header,.category-nav{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media(prefers-contrast:more){
  .site-header,.category-nav,.tool-link,.door,.input-panel,.result-panel{border-color:var(--ink)}
  .nav-link[aria-current=page]{box-shadow:inset 0 0 0 2px var(--ink)}
}

/* Methodology ledger: source status is visible before the supporting detail. */
.methodology-intro{max-width:760px}.method-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 42px}.method-summary div{display:flex;flex-direction:column;gap:2px;padding:18px;background:var(--soft);border:1px solid var(--hair);border-radius:12px}.method-summary strong{font:700 1.875rem/1 var(--font-head);color:var(--brand)}.method-summary span{font-size:.8125rem;color:var(--muted)}.method-group{margin:0 0 44px}.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.method-card{min-width:0;padding:22px;background:var(--card);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow-sm)}.method-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.method-card h3{font-size:1.25rem;letter-spacing:-.025em}.method-card .eyebrow{margin-bottom:7px}.method-status{flex:0 0 auto;padding:5px 8px;border-radius:999px;font-size:.75rem;line-height:1.2;background:var(--soft);color:var(--muted)}.method-status.verified{background:color-mix(in srgb,var(--brand) 12%,var(--card));color:var(--brand)}.method-status.review-needed{border:1px solid var(--hair)}.method-value{font:600 1.125rem/1.4 var(--font-head);color:var(--ink)}.method-card>p:not(.eyebrow):not(.method-value){font-size:.875rem;color:var(--muted)}.method-tools{padding-top:14px;border-top:1px solid var(--hair)}.method-source{margin-bottom:0}.method-source a{color:var(--brand);font-weight:600}.methodology-note{margin-top:10px}
@media(max-width:700px){.method-summary,.method-grid{grid-template-columns:1fr}.method-summary{gap:8px}.method-card-head{display:block}.method-status{display:inline-block;margin-bottom:16px}}
.result-next-step{margin-top:1.5rem;padding:1.25rem;background:var(--soft);border:1px solid var(--hair);border-radius:12px;overflow-wrap:break-word}.result-next-step h2{font-size:1.375rem;line-height:1.25;letter-spacing:-.025em}.result-next-step p{font-size:1rem;line-height:1.6}.result-next-step .next-step-label,.result-next-step .next-step-note{font-size:.875rem;color:var(--muted)}.result-next-step .next-step-note{margin:1rem 0 0}.result-next-step .btn{max-width:100%;white-space:normal}
.tool-link>h2{font-size:1.375rem;margin:0 0 12px}

/* Interactive chrome and disclosure rows meet the 44px touch-target floor. */
.main-nav a,.nav-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.theme-control select{min-height:44px}
.faq summary,.assumptions summary,.member-faq summary{display:flex;align-items:center;min-height:44px;padding-block:8px}
.related a{display:flex;align-items:center;min-height:44px;padding-block:8px}

/* Keep small-screen navigation readable and comfortably tappable. */
@media(max-width:560px){
  .breadcrumb{font-size:.8125rem;line-height:1.5}
  .breadcrumb a{display:inline-flex;align-items:center;min-height:44px}
  .footer-links{gap:4px 12px}
  .footer-links a{display:inline-flex;align-items:center;min-height:44px;padding:10px 0}
}

/* Accessibility floor: visible field edges, readable placeholders and clear stale states. */
input,select,textarea{border-color:var(--field-border)}
::placeholder{color:var(--muted);opacity:1}
#add-sub-row{color:var(--line-ew-ink)!important;border-color:var(--line-ew-ink)!important}
/* Theme picker stays compact wherever the chrome places it, header or footer. */
.theme-control select{width:auto;max-width:12rem;border:1px solid var(--field-border)}
footer .theme-control{display:inline-flex;align-items:center;gap:10px;width:auto;max-width:100%;font-size:.875rem;color:var(--muted)}
footer .theme-control>span{display:inline}
footer .theme-control select{flex:0 0 auto;width:auto;min-width:0;max-width:12rem}
@media(max-width:560px){footer .theme-control select{font-size:1rem}}
/* Inline form errors from tool-page.js and card-welcome.js. */
.field-error,.form-error{color:var(--danger,var(--line-ns-ink));font-size:.8125rem;font-weight:600;margin:6px 0 0}
.form-error{margin:0 0 12px}.form-error:empty{display:none}
.amount-echo{display:block;margin-top:4px;font-size:.8125rem;color:var(--muted)}.amount-echo:empty{display:none}.form-required-note{margin:0 0 12px;font-size:.8125rem;color:var(--muted)}.sub-row .field-error{grid-column:1/-1;margin:0}
input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger,var(--line-ns-ink))}
/* Shared Buyer Residency / Homes Owned In Singapore setting (property tools). */
.buyer-profile{margin:0 0 18px;padding:14px 14px 4px;border:1px solid var(--hair);border-radius:12px;background:var(--soft);min-width:0}
.buyer-profile legend{float:left;width:100%;padding:0;margin:0 0 6px;font-weight:700;overflow-wrap:anywhere}
.buyer-profile legend+*{clear:both}
.buyer-profile>p{margin:0 0 10px}
.buyer-profile [hidden]{display:none}
/* Shared Buyer Residency / Homes Owned In Singapore setting (property tools). */
.buyer-profile{margin:0 0 18px;padding:14px 14px 4px;border:1px solid var(--hair);border-radius:12px;background:var(--soft);min-width:0}
.buyer-profile legend{float:left;width:100%;padding:0;margin:0 0 6px;font-weight:700;overflow-wrap:anywhere}
.buyer-profile legend+*{clear:both}
.buyer-profile>p{margin:0 0 10px}
.buyer-profile [hidden]{display:none}
/* Layout and navigation UX pass (review U4, U5, U13, m18). */
@media(max-width:560px){
  .input-panel select{width:100%;max-width:100%;min-width:0}
}
@media(max-width:430px){
  .tool-workspace .grid{grid-template-columns:1fr}
  .tool-workspace .grid>div>label{display:block}
}
/* iOS zooms into any field under 16px; this floor wins over label-inherited sizes. */
@media(max-width:700px){
  input,select,textarea{font-size:max(1rem,16px)!important}
}
.mobile-action.is-redundant{visibility:hidden;opacity:0;pointer-events:none}.mobile-action.is-past-form{visibility:hidden;opacity:0;pointer-events:none}
@media(prefers-reduced-motion:no-preference){.mobile-action{transition:opacity .15s,visibility .15s}}
summary{min-height:44px;padding-block:10px}
.footer-links a,.text-link{display:inline-flex;align-items:center;min-height:44px}
/* Current page (m7): render-chrome.js sets aria-current="page"; show it with an underline, not colour alone. */
.main-nav a[aria-current=page],.footer-links a[aria-current=page],.logo[aria-current=page],.member-login-link[aria-current=page]>span{text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:3px;text-underline-offset:6px;text-decoration-skip-ink:none}
/* Keep the weight in the header so the 375px link row does not reflow. */
.main-nav a[aria-current=page]{color:var(--ink)}.footer-links a[aria-current=page]{color:inherit;font-weight:800;text-decoration-color:var(--yellow)}
.member-login-link[aria-current=page]{border-color:var(--brand)}
/* Skip link (UI review P0-19): ink text on its own card, never the header's white text; the focus ring sits inside the card (inset like the row focus ring, DS-006), so it keeps 3:1 on every header colour; a 3px outside ring in --focus is 1.2:1 on the red header. */
.skip-link{color:var(--ink);text-decoration:underline}.site-header .skip-link:focus-visible{outline-color:var(--focus);outline-offset:-4px}

/* wave1 coordinator (30 Sep beta feedback). Existing tokens only; no new colours. */
/* Number fields: no spinner arrows (accidental changes); the scroll-wheel guard lives in common.js. */
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
/* Anchors land at the section top, just below the sticky category bar (not 220px above it). */
html{scroll-padding-top:72px}.member-account-view,.account-group,.account-settings,.course-lesson{scroll-margin-top:0}
/* Signed-in members no longer see Join Free. */
.site-header.is-signed-in .nav-item-join{display:none}
/* Step 1 / Step 2 cues on every calculator. */
.tool-step{display:flex;align-items:center;gap:.5rem;margin:0 0 .6rem;font:600 .82rem/1.3 var(--font-body);color:var(--line-ink);text-transform:none;letter-spacing:0}
.tool-step-number{display:inline-flex;align-items:center;min-height:1.6rem;padding:0 .6rem;border-radius:999px;background:var(--line-ink);color:var(--line-text)}
.tool-guide-top{margin:.5rem 0 0;font-size:.95rem}.tool-guide-top a{font-weight:600}
/* Inputs in a row line up even when one label wraps to two lines (CPF projection, tax estimator, compound growth, SRS). */
.tool-workspace .grid{align-items:stretch}
.tool-workspace .grid>div{display:flex;flex-direction:column;justify-content:flex-start;min-width:0}
.tool-workspace .grid>div>label,.tool-workspace .grid>div>.label-row{flex:0 0 auto;min-height:2.9em;display:flex;align-items:flex-end}
.tool-workspace .grid>div>select,.tool-workspace .grid>div>input{margin-top:.35rem}
@media(max-width:560px){.tool-workspace .grid>div>label,.tool-workspace .grid>div>.label-row{min-height:0}}
.result-panel.is-stale::before{content:"Inputs changed — calculate again to update"}.result-panel.has-error::before{content:"Fix the highlighted value to update your result"}
/* (i) toggle-tips from tool-glossary.js. */
.label-row{display:flex;align-items:flex-end;gap:.35rem;flex-wrap:nowrap}.label-row>label{margin:0;flex:0 1 auto;min-width:0}.label-row>.info-tip{flex:0 0 auto;margin-bottom:.1rem}
.info-tip{position:relative;display:inline-flex;vertical-align:middle}
.info-tip-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;padding:0;border:1px solid var(--line-ink);border-radius:50%;background:var(--card);color:var(--line-ink);font:700 .8rem/1 var(--font-body);font-style:italic}
.info-tip-button:hover,.info-tip-button[aria-expanded=true]{background:var(--line-ink);color:var(--line-text)}
.info-tip-button::before{content:"";position:absolute;inset:-6px}.info-tip-text{display:block}.info-tip-close{display:block;min-height:44px;margin:.5rem 0 0 auto;padding:.5rem 1rem;border:1px solid var(--field-border);border-radius:999px;background:var(--paper);color:var(--ink);font:700 .9375rem/1 var(--font-body)}
.info-tip-bubble{position:absolute;z-index:40;top:calc(100% + 6px);left:50%;transform:translateX(calc(-50% + var(--shift,0px)));width:max-content;max-width:min(280px,calc(80vw / var(--text-zoom,1)));padding:.6rem .75rem;border:1px solid var(--hair);border-radius:10px;background:var(--card);color:var(--ink);box-shadow:var(--shadow-md);font:400 .85rem/1.45 var(--font-body);text-transform:none;letter-spacing:0;text-align:left;white-space:normal}
.info-tip-bubble[hidden]{display:none}
/* tool-glossary.js keeps a floating bubble inside the window (--shift, max-width) and opens it above its
   button when there is no room below (ledger P0-06, P0-07). */
.info-tip-above>.info-tip-bubble{top:auto;bottom:calc(100% + 6px)}
/* A column's help sits in one key line above its table, never in a header cell (P0-07). Its bubble opens
   in the flow under the line, so the table's scrolling box can never cut it off. */
.table-key{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;margin:0 0 .75rem;font-size:.9375rem;line-height:1.45}
.table-key-lead{font-weight:700;color:var(--muted)}
.table-key-term{font-weight:700;padding-right:10px} /* room for the 10px tap-target bleed of a result-panel "?" (coach.css); with the 6px gap the spacing stays 16px */
.table-key-term:has(.info-tip-bubble:not([hidden])){flex-basis:100%}
.table-key .info-tip{display:inline}
.table-key .info-tip-bubble{position:static;display:block;width:auto;max-width:none;transform:none;margin:.4rem 0 .2rem}
.table-key .info-tip-bubble[hidden]{display:none}
@media(max-width:767px){.label-row{flex-wrap:wrap}.label-row>label{max-width:calc(100% - 2.75rem)}.info-tip{display:contents}.info-tip-bubble{position:static;display:block;flex:1 0 100%;width:auto;max-width:none;transform:none;margin:.4rem 0 .6rem;box-shadow:none;font-size:1rem}}
/* Result-card share row and onboarding after sign-up. */
.card-preview-social{margin:.5rem 0 0}.card-preview-social a{font-weight:600}
/* Focused setup after sign-up (member-onboarding.js): only the logo, progress, one screen, Back and Skip. */
body.onboarding-active{overflow-x:hidden;background:var(--paper)}body.onboarding-active>:not(#member-onboarding){display:none!important}
.member-onboarding{box-sizing:border-box;min-height:100vh;min-height:100dvh;max-width:34rem;margin:0 auto;padding:12px 16px 32px;display:flex;flex-direction:column;background:var(--paper);color:var(--ink)}
.onboarding-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:48px}.onboarding-logo.logo{margin:0;font-size:1.25rem}
.onboarding-skip{min-height:44px;padding:0 .25rem;border:0;background:none;color:var(--muted);font:600 .9rem var(--font-body);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.onboarding-progress{margin:.5rem 0 0}.onboarding-progress-text{margin:0 0 .35rem;font-size:.85rem;font-weight:600;color:var(--muted)}
.onboarding-track{display:block;height:8px;border-radius:99px;background:var(--hair);overflow:hidden}.onboarding-fill{display:block;height:100%;width:0;border-radius:inherit;background:var(--brand)}
.onboarding-back-row{min-height:44px;margin-top:.5rem}.onboarding-back{min-height:44px;padding:0 .25rem;border:0;background:none;color:var(--ink);font:600 1rem var(--font-body);cursor:pointer}
.onboarding-stage{flex:1}.onboarding-screen h1{margin:.25rem 0 .5rem;font-size:clamp(1.6rem,7vw,2.1rem);line-height:1.15}.onboarding-screen h1:focus{outline:none}.onboarding-screen h1:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
.onboarding-lead{font-size:1.1rem;margin:0 0 1rem}.onboarding-body>p{margin:0 0 1rem}.onboarding-email{font-weight:600}
.onboarding-answers{display:grid;gap:.65rem}.onboarding-answer{width:100%;min-height:60px;padding:.85rem 1rem;border:2px solid var(--hair);border-radius:var(--radius-btn);background:var(--card);color:var(--ink);font:600 1.05rem var(--font-body);text-align:left;cursor:pointer;box-shadow:var(--shadow-sm)}
.onboarding-answer[aria-pressed=true]{border-color:var(--brand);background:var(--soft)}@media(hover:hover){.onboarding-answer:hover{border-color:var(--brand);background:var(--soft)}}
.onboarding-offer{margin-top:1.5rem!important;padding:1rem;border-radius:var(--radius);background:var(--soft);font-weight:600}
.onboarding-actions{display:grid;gap:.65rem;margin-top:1.25rem}.onboarding-actions .btn{width:100%;min-height:52px;justify-content:center;text-align:center}
.onboarding-link{justify-self:center;min-height:44px;display:inline-flex;align-items:center;font-weight:600;color:var(--ink);text-underline-offset:4px}
/* Numbered tool cards (quiz-result lane): the card radius, not a pill; the whole card is the link; the badge sits
   in the padding, level with the title's first line, and the title and description share one left edge. */
.onboarding-tools{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.75rem;container-type:inline-size}
.onboarding-tool{display:grid;grid-template-columns:1.75rem minmax(0,1fr);column-gap:.75rem;align-items:start;padding:14px 16px;border:3px solid var(--outline);border-radius:var(--radius);background:var(--card);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-sm);cursor:pointer}
.onboarding-tool-num{width:1.75rem;height:1.75rem;margin-top:calc((1.1875rem * 1.3 - 1.75rem) / 2);border-radius:50%;background:var(--brand);color:var(--brand-text);font:900 .9375rem/1 var(--font-head);display:grid;place-items:center}
.onboarding-tool-text{display:grid;gap:4px;min-width:0}.onboarding-tool-title{font:800 1.1875rem/1.3 var(--font-head);overflow-wrap:anywhere}.onboarding-tool-desc{font-size:.9375rem;line-height:1.45;color:var(--muted)}
.onboarding-tool:hover,.onboarding-tool:active{background:var(--soft);color:var(--ink);text-decoration:none}.onboarding-tool:hover .onboarding-tool-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.onboarding-tool:active{box-shadow:none}.onboarding-tool:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media(prefers-reduced-motion:no-preference){.onboarding-tool:active{transform:translateY(1px)}}
/* Large text on a small phone (the list under 13em wide): the badge sits above the title, on the same left edge. */
@container (max-width:13em){.onboarding-tool{grid-template-columns:minmax(0,1fr);row-gap:.5rem;padding:12px 14px}.onboarding-tool-num{margin-top:0}}
.onboarding-saved-line{font-size:.95rem;color:var(--muted)}.onboarding-download{width:100%;justify-content:center}
@media(prefers-reduced-motion:no-preference){.onboarding-fill{transition:width .3s ease}.onboarding-screen{animation:onboarding-in .2s ease-out}@keyframes onboarding-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
/* Freelancer Tax Pot invoice rows */
.tp-invoice{min-width:0;border:1px solid var(--hair);border-radius:8px;margin:12px 0;padding:10px 12px 12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 44px;gap:8px;align-items:start}.tp-invoice legend{font-size:.8125rem;font-weight:600;padding:0 4px}.tp-field{min-width:0}.tp-lbl{display:block;color:var(--muted);font-size:.75rem;margin-bottom:5px}.tp-invoice input[type=date]{width:100%;min-width:0;padding:11px;border:1px solid var(--field-border);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;font-size:1rem;min-height:48px}.tp-invoice .field-error{grid-column:1/-1;margin:0}.tp-invoice .row-del{align-self:end}.tp-row-actions{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}#tp-r-table{margin-top:8px}@media(max-width:560px){.tp-invoice{display:flex;flex-wrap:wrap}.tp-invoice .tp-field{flex:1 1 7.5rem}.tp-invoice .tp-field:nth-of-type(3){order:1}.tp-invoice .tp-field:nth-of-type(2){order:2;flex-basis:11rem}.tp-invoice .row-del{order:3;margin-left:auto}.tp-invoice .field-error{order:4;flex-basis:100%}}
/* Header sub-menus: WAI-ARIA disclosure navigation with top-level links (common.js).
   Buttons and panels ship hidden, so without JavaScript the header is four plain links.
   Phones and tablets use a Menu link: :target opens it without JavaScript, common.js makes it a disclosure button. */
.l-ns{--line:var(--line-ns);--line-ink:var(--line-ns-ink)}.l-ew{--line:var(--line-ew);--line-ink:var(--line-ew-ink)}.l-ne{--line:var(--line-ne);--line-ink:var(--line-ne-ink)}.l-cc{--line:var(--line-cc);--line-ink:var(--line-cc-ink)}.l-dt{--line:var(--line-dt);--line-ink:var(--line-dt-ink)}.l-te{--line:var(--line-te);--line-ink:var(--line-te-ink)}.l-jr{--line:var(--line-jr);--line-ink:var(--line-jr-ink)}
.header-inner{position:relative;--nav-gutter:40px}
.nav-list,.nav-panel ul{margin:0;padding:0;list-style:none}
.nav-list{display:flex;align-items:center;gap:4px 14px}
.nav-item{position:relative;display:flex;align-items:center}
.nav-item-tools,.nav-item-guides,.nav-item-downloads{position:static}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;min-height:36px;padding:0;border:0;border-radius:8px;background:none;color:var(--muted)}
.nav-toggle::before{content:"";width:7px;height:7px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg)}
.nav-toggle[aria-expanded=true]::before{transform:translateY(2px) rotate(-135deg)}
.nav-toggle:hover,.nav-toggle[aria-expanded=true]{color:var(--brand);background:var(--soft)}
.nav-item.is-open>.nav-top{color:var(--brand)}
.nav-panel{position:absolute;z-index:45;top:calc(100% + 16px);left:-10px;width:20rem;max-height:calc(100vh - 110px);overflow:auto;padding:14px;border:1px solid var(--hair);border-radius:var(--radius);background:var(--card);color:var(--ink);box-shadow:var(--shadow-md);font-size:.875rem}
.nav-item-goals .nav-panel{width:34rem}
.nav-item-tools .nav-panel,.nav-item-guides .nav-panel,.nav-item-downloads .nav-panel{top:100%;left:var(--nav-gutter);right:var(--nav-gutter);width:auto;padding:22px 26px 16px}
.site-header .main-nav .nav-panel a{display:flex;align-items:flex-start;justify-content:flex-start;gap:10px;min-width:0;white-space:normal;min-height:36px;padding:7px 8px;border-radius:8px;font-weight:500;line-height:1.35;color:var(--ink)}
.site-header .main-nav .nav-panel a:hover{background:var(--soft);color:var(--brand)}
.nav-panel li[class]>a::before,.nav-line-title::before{content:"";flex:0 0 auto;width:8px;height:8px;margin-top:.4em;border-radius:50%;background:var(--line)}
.nav-panel small{display:block;margin-top:2px;font-size:.8125rem;font-weight:400;color:var(--muted)}
.nav-goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px}
.nav-goals a{flex-direction:column;gap:0!important;position:relative;padding-left:26px!important}
.nav-goals a::before{position:absolute;left:9px;top:7px}
.nav-play a{flex-direction:column;gap:0!important}
.site-header .main-nav .nav-panel .nav-all{display:inline-flex;margin-top:6px;font-size:.8125rem;font-weight:600;color:var(--line-ink,var(--brand))}
.nav-panel>.nav-all{margin-top:10px;padding-top:10px}
.site-header .main-nav .nav-panel>.nav-all,.site-header .main-nav .nav-browse .nav-all{color:var(--brand)}
.nav-mega{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 26px}
.site-header .main-nav .nav-panel .nav-line-title{align-items:center;font:600 .9375rem/1.25 var(--font-head);letter-spacing:-.01em}
.nav-line-title::before{width:12px;height:12px;margin:0}
.nav-mega ul{margin:2px 0 0 13px!important;padding-left:13px!important;border-left:2px solid var(--line)}
.nav-mega li{position:relative}
.nav-mega li::before{content:"";position:absolute;left:-20px;top:50%;width:8px;height:8px;margin-top:-6px;border:2px solid var(--line);border-radius:50%;background:var(--card)}
.nav-mega .nav-all{margin-left:18px}
.nav-browse{align-self:end}
.nav-group-title{margin:0 0 6px;padding:0 8px;font:.75rem/1.4 var(--font-body);color:var(--muted)}
.nav-menu-toggle{display:none;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:8px 10px;border:1px solid var(--hair);border-radius:10px;color:var(--ink);font-size:.875rem;font-weight:600;line-height:1;text-decoration:none}
.nav-menu-icon{position:relative;width:18px;height:2px;border-radius:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}
.nav-menu-toggle[aria-expanded=true]{border-color:var(--brand);color:var(--brand)}
.nav-menu-toggle[aria-expanded=true] .nav-menu-icon{box-shadow:none;transform:rotate(45deg)}
.nav-menu-toggle[aria-expanded=true] .nav-menu-icon::after{content:"";position:absolute;inset:0;border-radius:2px;background:currentColor;transform:rotate(90deg)}
.nav-account{display:none}
@media(min-width:1200px){.header-inner{--nav-gutter:48px}}
@media(prefers-reduced-motion:no-preference){.nav-panel{animation:nav-panel-in 140ms ease-out}@keyframes nav-panel-in{from{opacity:0;transform:translateY(-4px)}}}
@media(max-width:960px){
  .site-header .header-inner{flex-wrap:wrap;row-gap:8px}
  .site-header .header-inner>.logo{order:1;margin-right:auto}
  .site-header .header-inner>.member-login-link,.site-header .header-inner>.member-account-actions{order:2;margin-left:0}
  .site-header .nav-menu-toggle{display:inline-flex;order:3}
  .site-header>.header-inner>.main-nav{order:4;display:none;width:100%;margin:0;padding:4px 0 14px;overflow:visible;border-top:1px solid var(--hair);font-size:1rem}
  .site-header>.header-inner>.main-nav:target,.site-header[data-menu=open]>.header-inner>.main-nav{display:block}
  .main-nav .nav-list{flex-direction:column;align-items:stretch;gap:0}
  .main-nav .nav-item{position:static;flex-wrap:wrap;border-bottom:1px solid var(--hair)}
  .site-header .main-nav .nav-top{flex:1 1 auto;justify-content:flex-start!important;min-height:52px;padding:0 4px!important;font:600 1.125rem/1.2 var(--font-head);letter-spacing:-.02em}
  .main-nav .nav-toggle{width:52px;min-height:52px;border-left:1px solid var(--hair);border-radius:0}
  .site-header .main-nav .nav-panel{position:static;flex:0 0 100%;width:auto!important;max-height:none;overflow:visible;margin:0 0 14px;padding:4px 0 0!important;border:0;border-radius:0;background:none;box-shadow:none;animation:none}
  .site-header .main-nav .nav-panel a{min-height:44px;font-size:1rem}
  .nav-goals{grid-template-columns:minmax(0,1fr);gap:12px}
  .nav-mega{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
  .site-header .main-nav .nav-panel{min-width:0}
  .nav-item-join{padding-top:16px}
  .site-header .main-nav .nav-item-join .member-nav-link{display:flex;min-height:48px;border-radius:10px;background:var(--brand);color:var(--brand-text)!important;font-size:1rem}
  .site-header .member-menu-toggle,.site-header .member-account-menu{display:none!important}
  .site-header .member-login-link.is-signed-in{border-radius:10px}
  .site-header.is-signed-in .nav-item-join{display:none}
  .site-header.is-signed-in .nav-account{display:block;padding-top:14px}
  .nav-account .nav-group-title{padding:0 4px}
  .nav-account .nav-account-note{margin:0;padding:0 4px 8px;color:var(--muted);font-size:.8125rem;line-height:1.35}
  .site-header .main-nav .nav-account a,.nav-account button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:48px;padding:0 4px;border:0;background:none;color:var(--ink);font:600 1rem/1.2 var(--font-body);text-decoration:none}
}
@media(min-width:561px) and (max-width:960px){.site-header>.header-inner>.main-nav{max-height:calc(100vh - 90px);overflow-y:auto}}
@media(max-width:560px){
  .nav-mega{grid-template-columns:minmax(0,1fr)}
  .nav-menu-label,.site-header .member-login-link.is-signed-in>span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .nav-menu-toggle{padding:8px}
  .site-header .member-login-link.is-signed-in .member-login-icon{display:block!important}
}
@media(prefers-contrast:more){.nav-panel{border-color:var(--ink)}}
@media(forced-colors:active){.nav-panel{border:1px solid CanvasText}.nav-mega li::before{background:Canvas}}
/* Structure lane: homepage sections, stage hubs, the downloads library and About (scripts/structure-pages.js). */
/* Sections on the homepage, stage hubs and the downloads library: section gap between, heading gap below. */
.home-journey{margin:0}.home-answers,.home-print{margin:var(--space-section) 0 0}.home-answers h2,.home-print h2,.hub-section>h2{margin:0 0 var(--space-heading-after)}
.answer-row{display:grid;gap:var(--space-4)}.print-card{max-width:40rem}.home-more{margin:var(--space-4) 0 0;font-weight:800}
.hub-back{margin:0 0 var(--space-1);font-weight:800}.hub-back a{color:inherit}.hub-section{margin:var(--space-section) 0 0}
.goal-hero+.hub-section{margin-top:0}
.download-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-grid)}
.download-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:3px solid var(--outline);border-radius:var(--radius);background:var(--card)}
.download-card picture,.download-preview picture{display:block}
.download-card img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;border-bottom:3px solid var(--outline)}
.download-card-copy{padding:var(--space-4) var(--space-card) var(--space-card);display:flex;flex-direction:column;flex:1}.download-card h3{font-size:1.25rem;margin:var(--space-1) 0 var(--space-title-after)}.download-card p{font-size:.9375rem;margin:0 0 var(--space-3)}
.download-meta{color:var(--muted);font-weight:700;font-size:.875rem!important}.download-actions{display:flex;flex-wrap:wrap;gap:var(--space-inline);margin-top:auto;padding-top:var(--space-3)}
.download-jump{margin-top:var(--space-4)}.goal-chips{display:flex;flex-wrap:wrap;gap:var(--space-inline)}.goal-others{margin:var(--space-section) 0 0}
.about-copy{max-width:42rem}.about-copy section{margin:0 0 var(--space-10)}.about-copy ul{padding-left:1.2em}.about-copy li{margin:0 0 var(--space-2)}.about-links{display:flex;flex-wrap:wrap;gap:10px 20px;margin:var(--space-2) 0 var(--space-block);font-weight:800}
@media(min-width:768px){.answer-row{grid-template-columns:repeat(3,minmax(0,1fr))}.download-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:64em){.download-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Download cards: the title link stretches over the whole card (to /downloads/<slug>/); "Use it with" links sit above it. */
.download-card{position:relative}.download-card-link{text-decoration:none}.download-card-link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.download-card-link:focus-visible{outline:none}.download-card:focus-within{outline:3px solid var(--focus,var(--ink));outline-offset:3px}
.download-card .download-use-with a{position:relative;z-index:1}.download-card:hover h3{text-decoration:underline;text-underline-offset:4px}
.download-card-go{display:block;margin-top:auto;padding-top:var(--space-3);font-weight:800;color:var(--brand-ink,var(--brand))}
/* A printable's own page (scripts/download-pages.js). */
.download-page-actions{display:flex;flex-wrap:wrap;gap:var(--space-inline);margin:var(--space-4) 0 0}
.download-member-note{margin:var(--space-3) 0 0;font-size:.9375rem}
.download-page{display:grid;gap:var(--space-grid);align-items:start}
.download-preview{margin:0;max-width:26rem}.download-preview img{display:block;width:100%;height:auto;border:3px solid var(--outline);border-radius:var(--radius);background:#fff}
.download-preview.is-card{max-width:42rem}
.download-details{min-width:0;display:grid;gap:var(--space-6,24px)}.download-section h2{font-size:1.375rem;margin:0 0 var(--space-title-after,10px)}.download-section p{margin:0 0 var(--space-3)}
.download-inside{margin:0;padding-left:1.2em}.download-inside li{margin:0 0 var(--space-2)}
.download-use{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.download-use a{font-weight:800}
.download-use-kind{display:inline-block;min-width:3.6em;padding:1px 10px;border:2px solid var(--outline);border-radius:999px;font-size:.8125rem;font-weight:800}
.download-sources .data-meta{margin:0 0 var(--space-2);font-size:.8125rem;line-height:1.5;color:var(--muted)}.download-sources .data-meta a{font-weight:700;color:var(--blue-ink,var(--ink))}
.download-next{margin:var(--space-section) 0 0;max-width:42rem}
.download-page+.resource-sharing{margin-top:var(--space-section)}
@media(min-width:900px){.download-page{grid-template-columns:minmax(0,26rem) minmax(0,1fr);gap:var(--space-10,40px)}.download-preview.is-card{grid-column:1/-1}
 /* "Where the facts come from" is a band under the preview and the details, in two columns of source lines (P1-074). */
 .download-page>.download-sources{grid-column:1/-1;columns:2 22rem;column-gap:var(--space-10,40px)}.download-page>.download-sources h2{column-span:all}.download-page>.download-sources .data-meta{break-inside:avoid}}
.brand-name{text-transform:none}
/* Phones: the hop route is as tall as the pads it holds (fewer than six while stages fill in). */
@media(min-width:341px) and (max-width:767px){.stage-route[data-count="1"]{height:120px}.stage-route[data-count="2"]{height:160px}.stage-route[data-count="3"]{height:260px}.stage-route[data-count="4"]{height:310px}.stage-route[data-count="5"]{height:420px}}
/* Stage hubs: guide card illustrations (assets/guide-images, 2:1) fill their card. */
.hub-section .guide-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-grid)}
@media(min-width:48em){.hub-section .guide-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:64em){.hub-section .guide-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hub-section .guide-list li{min-width:0;overflow:hidden}
.hub-section .guide-card-copy{padding:var(--space-1) var(--space-card) var(--space-card)}
.hub-section .guide-card-copy h3{margin:var(--space-2) 0 var(--space-title-after)}
.hub-section .guide-list img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover}
/* The first section after a page intro takes the intro's block gap; a note closing a section stays with it. */
.intro+.hub-section,.intro+.section{margin-top:0}
.section:has(+.note){margin-bottom:var(--space-block)}
/* No lone card on a last row (visible-nav, 13 Oct 2026; triage V-02): the Deals rule from #127 for guide and
   printable grids. Three-column grids: two or four cards sit two-up, and a card left alone on the last
   row (or a list of one) becomes one full-width card, its picture on the left as a whole 2:1 thumbnail
   (a stat cover is never cropped) and the words beside it. Two-column grids: an odd last card does the
   same. Counted over cards still shown, so a search that hides cards on /guides/ keeps the rule.
   Columns: printables and stage-hub guides 1, 2 from 48em, 3 from 64em; the /guides/ hub 1, then 3 from
   801px (guides.css). */
@media(min-width:48em) and (max-width:63.99em){
  :is(.download-list,.hub-section .guide-list)>li:not([hidden]):nth-child(odd of li:not([hidden])):nth-last-child(1 of li:not([hidden])){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:center}
  :is(.download-list,.hub-section .guide-list)>li:not([hidden]):nth-child(odd of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>div:only-child{grid-column:1/-1}
  :is(.download-list,.hub-section .guide-list)>li:not([hidden]):nth-child(odd of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>:is(picture,a:first-child,img:first-child){display:block;margin:var(--space-card) 0 var(--space-card) var(--space-card)}
  :is(.download-list,.hub-section .guide-list)>li:not([hidden]):nth-child(odd of li:not([hidden])):nth-last-child(1 of li:not([hidden])) :is(picture,a:first-child)>img,:is(.download-list,.hub-section .guide-list)>li:not([hidden]):nth-child(odd of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>img:first-child{border:0;border-radius:var(--radius-field)}
}
@media(min-width:801px) and (max-width:63.99em){
  .guide-list:not(.hub-section *):has(>li:not([hidden]):nth-child(1 of li:not([hidden])):is(:nth-last-child(2 of li:not([hidden])),:nth-last-child(4 of li:not([hidden])))){grid-template-columns:repeat(2,minmax(0,1fr))}
  .guide-list:not(.hub-section *):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden])){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:center}
  .guide-list:not(.hub-section *):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>div:only-child{grid-column:1/-1}
  .guide-list:not(.hub-section *):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>:is(picture,a:first-child,img:first-child){display:block;margin:var(--space-card) 0 var(--space-card) var(--space-card)}
  .guide-list:not(.hub-section *):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden])) :is(picture,a:first-child)>img,.guide-list:not(.hub-section *):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>img:first-child{border:0;border-radius:var(--radius-field)}
}
@media(min-width:64em){
  :is(.download-list,.guide-list):has(>li:not([hidden]):nth-child(1 of li:not([hidden])):is(:nth-last-child(2 of li:not([hidden])),:nth-last-child(4 of li:not([hidden])))){grid-template-columns:repeat(2,minmax(0,1fr))}
  :is(.download-list,.guide-list):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden])){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:center}
  :is(.download-list,.guide-list):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>div:only-child{grid-column:1/-1}
  :is(.download-list,.guide-list):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>:is(picture,a:first-child,img:first-child){display:block;margin:var(--space-card) 0 var(--space-card) var(--space-card)}
  :is(.download-list,.guide-list):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden])) :is(picture,a:first-child)>img,:is(.download-list,.guide-list):not(:has(>li:not([hidden]):nth-child(1 of li:not([hidden])):nth-last-child(4 of li:not([hidden]))))>li:not([hidden]):nth-child(3n+1 of li:not([hidden])):nth-last-child(1 of li:not([hidden]))>img:first-child{border:0;border-radius:var(--radius-field)}
}
