/* Shared portal design. All brand colors and typography follow client.config.json. */
:root{--portal-radius:18px;--portal-gap:24px;--portal-line:color-mix(in srgb,var(--color-deep) 11%,transparent);--portal-shadow:0 10px 35px color-mix(in srgb,var(--color-deep) 5%,transparent)}
[hidden]{display:none!important}body{font-size:16px}button,input,select,textarea{font:inherit}a,button,input,select,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--color-brand);outline-offset:4px}
#site-header{background:color-mix(in srgb,var(--color-surface) 96%,transparent);border-bottom:1px solid var(--portal-line)}#site-header img{max-width:min(300px,54vw);height:auto;max-height:52px;object-fit:contain}body.members #site-header img,body.admin #site-header img{height:2.8rem;max-height:none}@media(min-width:640px){body.members #site-header img,body.admin #site-header img{height:3.15rem}}.btn{border-radius:12px;min-height:46px;font-size:14px;line-height:1.3}.btn-brand{background:var(--color-brand);color:var(--color-surface);box-shadow:none}.btn-brand:hover{background:var(--color-brand-2)}.btn-glass{background:var(--color-surface-2);border:1px solid var(--portal-line);color:var(--color-deep)}.field{border-radius:10px;border:1px solid var(--portal-line);background:var(--color-surface-2);font-size:16px;min-height:48px;width:100%;color:var(--color-deep)}.glass{border-radius:var(--portal-radius);border:1px solid var(--portal-line);background:var(--color-surface-2);box-shadow:var(--portal-shadow);backdrop-filter:none}
.site-footer{background:color-mix(in srgb,var(--color-deep) 78%,black);color:white;margin-top:32px;border-radius:32px 32px 0 0;overflow:hidden}.footer-main{display:grid;grid-template-columns:1.2fr repeat(5,1fr);gap:32px;padding:56px 0 40px}.footer-brand img{width:auto;max-width:100%;height:auto;max-height:150px;object-fit:contain;object-position:left}.footer-brand p{font-size:15px;line-height:1.7;margin-top:20px;max-width:320px;color:rgba(255,255,255,.78)}.footer-brand .footer-invite{display:inline-flex;margin-top:20px;color:white;font-weight:600;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:6px}.site-footer .foot-h{color:white;font-size:15px;font-weight:650;letter-spacing:0;text-transform:none;margin-bottom:16px}.site-footer .foot-list{display:grid;gap:10px}.site-footer .foot-link{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.8);font-size:14px;line-height:1.5;text-decoration:none;padding:3px 0}.site-footer .foot-link:hover{color:white;text-decoration:underline;text-underline-offset:4px}.site-footer .foot-link>svg{flex-shrink:0;width:15px;height:15px;color:rgba(255,255,255,.55);transition:color .15s ease}.site-footer .foot-link:hover>svg{color:var(--color-brand-2,rgba(255,255,255,.85))}.footer-bottom{border-top:1px solid rgba(255,255,255,.18);padding:24px 0 30px}.footer-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.78)}.footer-meta nav{display:flex;gap:20px;flex-wrap:wrap}.footer-disclaimer{max-width:900px;font-size:12px;line-height:1.65;margin-top:22px;color:rgba(255,255,255,.68)}.footer-attribution{margin-top:14px;font-size:12px;color:rgba(255,255,255,.65)}
body.members,body.admin{background:var(--color-surface)}.members .site-bg,.members .airy-bg,.admin .site-bg,.admin .airy-bg{display:none}.members .mnav{border:1px solid var(--portal-line);border-radius:14px;background:var(--color-surface-2);padding:6px;display:flex;gap:4px;overflow:auto;flex-wrap:nowrap}.members .mnav a,.members .mnav button{white-space:nowrap;font-size:14px;border-radius:9px}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--portal-gap);margin-top:24px}.dashboard-primary{grid-column:span 2;position:relative;overflow:hidden;border-top:4px solid var(--color-brand)}.dashboard-primary [data-track-headline]{font-size:clamp(26px,3vw,40px);line-height:1.15;margin-top:12px}.dashboard-primary .level-bar{height:9px}.dashboard-help{background:var(--color-surface-2);color:var(--color-ink)}.dashboard-help .field{color:var(--color-deep)}.dashboard-help .stat-k{opacity:.7}.stat-k{font-size:13px;letter-spacing:.04em;font-weight:650}.dash-card{min-width:0}.dash-card .dash-foot{padding-top:18px}.member-expert-strip{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--portal-line);padding:24px 0}.member-expert-strip h2{font-size:20px}.member-expert-strip p{color:var(--color-ink-2);font-size:14px;margin-top:4px}[data-new-member-banner]{border-style:dashed;box-shadow:none}[data-counts]>.glass{text-align:left;padding:22px;border-radius:14px;box-shadow:none}[data-counts] .display{font-family:var(--font-sans);font-size:36px;font-weight:650;letter-spacing:-.04em;margin-top:15px}[data-counts] .stat-k{letter-spacing:0;text-transform:none;font-size:13px}.cat-tabs{max-width:100%;overflow:auto;flex-wrap:nowrap}.cat-tabs button{white-space:nowrap;min-height:44px}.admin-table{font-size:14px}.admin-table th{font-size:12px}.table-scroll{overflow-x:auto}.activity-chart{color:var(--color-brand);min-width:0}.activity-chart svg{display:block;width:100%;height:auto;margin-top:16px;overflow:visible}.chart-totals{display:flex;gap:40px;margin-top:20px}.chart-totals>div{display:flex;flex-direction:column}.chart-totals strong{font-size:36px;letter-spacing:-.04em;color:var(--color-deep);font-weight:650}.chart-totals span{font-size:13px;color:var(--color-ink-2)}.chart-grid{stroke:var(--portal-line);stroke-dasharray:4 5}.chart-label{fill:var(--color-ink-2);font:12px sans-serif}.chart-actions{stroke:var(--color-brand);stroke-width:3;fill:none;stroke-linejoin:round;stroke-linecap:round}.chart-signups{stroke:var(--color-good-3);stroke-width:2.5;fill:none;stroke-linejoin:round;stroke-linecap:round}.chart-point{fill:var(--color-brand);opacity:0}.chart-point:hover{opacity:1;r:6}.chart-dates{display:flex;justify-content:space-between;color:var(--color-ink-2);font-size:12px}.chart-data{font-size:13px;margin-top:16px;color:var(--color-ink-2)}.chart-data summary{cursor:pointer;padding:8px 0}.chart-data table{width:100%;border-collapse:collapse;text-align:left}.chart-data td,.chart-data th{padding:8px;border-bottom:1px solid var(--portal-line)}.chart-empty{padding:50px 0;color:var(--color-ink-2)}
.intake-shell{padding-top:48px;padding-bottom:72px}.intake-intro{max-width:800px}.intake-intro h1{font-size:clamp(36px,5vw,58px);line-height:1.06;margin:24px 0 16px;letter-spacing:-.035em}.intake-intro>p{font-size:18px;line-height:1.6;color:var(--color-ink-2)}.journey-steps{display:flex;list-style:none;gap:28px;padding:0;margin:32px 0;font-size:14px;counter-reset:journey}.journey-steps li{display:flex;align-items:center;gap:10px;color:var(--color-ink-2);counter-increment:journey}.journey-steps li:before{content:counter(journey);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--portal-line)}.journey-steps li[aria-current],.journey-steps .complete{color:var(--color-deep);font-weight:600}.journey-steps li[aria-current]:before{background:var(--color-brand);color:var(--color-surface)}.intake-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:40px;align-items:start}.intake-panel{padding:32px;background:var(--color-surface-2);border:1px solid var(--portal-line);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow)}.intake-panel h2{font-size:26px;line-height:1.2;letter-spacing:-.025em;margin-bottom:12px}.intake-panel p{color:var(--color-ink-2);line-height:1.6;font-size:15px}.topic-options{display:grid;gap:12px;margin:28px 0}.topic-option{display:flex;gap:14px;align-items:center;border:1px solid var(--portal-line);border-radius:12px;padding:18px;cursor:pointer;transition:border-color .15s,background .15s}.topic-option:has(:checked){border-color:var(--color-brand);background:color-mix(in srgb,var(--color-brand) 12%,var(--color-surface-2))}.topic-option input{accent-color:var(--color-brand);width:19px;height:19px;flex-shrink:0}.topic-option span span{display:block;color:var(--color-ink-2);font-size:14px;line-height:1.5;margin-top:4px}.topic-option strong{font-size:16px}.form-label{display:block;font-size:14px;font-weight:550;margin-top:20px}.form-label .field{display:block;margin-top:8px;font-weight:400;padding:12px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.consent-row{display:flex;gap:12px;align-items:flex-start;margin:24px 0;font-size:13px;line-height:1.6;color:var(--color-ink-2)}.consent-row input{margin-top:4px;width:18px;height:18px;flex-shrink:0}.consent-row a{text-decoration:underline}.form-error{color:var(--color-warn)!important;margin-top:15px}.intake-aside{padding:28px 10px}.section-label{font-size:13px;color:var(--color-brand-3);font-weight:600}.intake-aside h2{font-family:var(--font-display);font-size:34px;line-height:1.15;margin:15px 0 20px}.intake-aside p{line-height:1.7}.intake-aside hr{margin:30px 0;border-color:var(--portal-line)}.secondary{color:var(--color-ink-2);font-size:13px;font-weight:400}.quiet-link{font-size:14px;color:var(--color-ink-2);text-decoration:underline;text-underline-offset:4px;cursor:pointer;display:inline-block;margin-bottom:12px}.text-link{display:inline-block;font-weight:600;font-size:14px;margin-top:20px;text-decoration:underline;text-underline-offset:5px}.action-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.success-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--color-good-3);color:white;font-size:26px;margin-bottom:24px}
.expert-directory,.expert-profile{padding-top:56px;padding-bottom:72px}.expert-directory h1,.expert-profile h1{font-size:clamp(40px,5vw,64px);line-height:1.08;letter-spacing:-.04em;margin:18px 0 24px}.expert-directory>p{max-width:650px;color:var(--color-ink-2);font-size:18px;line-height:1.65}.expert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:44px}.expert-grid:has(>.expert-card:only-child){grid-template-columns:minmax(0,360px);justify-content:center}.expert-card{border:1px solid var(--portal-line);border-radius:var(--portal-radius);overflow:hidden;background:var(--color-surface-2);box-shadow:var(--portal-shadow)}.expert-card>img{width:100%;height:280px;object-fit:cover}.expert-card>div:last-child{padding:24px}.expert-card h2{font-size:25px;margin:8px 0}.expert-card p{font-size:14px;line-height:1.6}.expert-initials{display:grid;place-items:center;height:200px;background:var(--color-surface-2);color:var(--color-brand-3);font-family:var(--font-display);font-size:64px}.founder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:64px;margin-top:24px;align-items:start}.founder-grid:has(>div:first-child:empty){grid-template-columns:1fr;max-width:800px}.founder-grid>div:first-child:empty{display:none}.founder-photo{width:100%;height:auto;max-height:700px;object-fit:cover;border-radius:var(--portal-radius)}.profile-summary{font-size:21px;line-height:1.5;color:var(--color-ink-2)}.profile-bio p{margin-top:20px;font-size:16px;line-height:1.8}.expert-profile h2{font-size:20px;margin:30px 0 12px}.specialty-list{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0}.specialty-list li{padding:8px 14px;border:1px solid var(--portal-line);border-radius:30px;font-size:14px}.expert-video{display:block;width:100%;max-height:650px;margin-top:48px;border-radius:var(--portal-radius);background:var(--color-surface-2)}
@media(max-width:900px){.footer-main{grid-template-columns:1fr 1fr;gap:32px}.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-primary{grid-column:span 2}.intake-grid{grid-template-columns:1fr}.intake-aside{padding:0}.expert-grid{grid-template-columns:1fr 1fr}.founder-grid{gap:32px}}@media(max-width:600px){.footer-main{grid-template-columns:1fr 1fr;gap:32px 20px;padding-top:36px}.footer-brand{grid-column:span 2}.footer-meta{align-items:flex-start;flex-direction:column}.dashboard-grid{grid-template-columns:1fr;gap:16px}.dashboard-primary{grid-column:auto}.intake-shell{padding-top:28px}.intake-panel{padding:22px}.form-pair{grid-template-columns:1fr;gap:0}.journey-steps{gap:12px;font-size:12px}.journey-steps li{gap:6px}.journey-steps li:before{width:24px;height:24px}.expert-grid,.founder-grid{grid-template-columns:1fr}.member-expert-strip{align-items:flex-start;flex-direction:column}.site-footer{border-radius:22px 22px 0 0}.chart-totals{gap:30px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Lead magnet entry cards use the same interaction and type hierarchy in every edition. */
.path-card{border-radius:var(--portal-radius);background:var(--color-surface-2);border:1px solid var(--portal-line);padding:26px;box-shadow:var(--portal-shadow);transition:transform .18s,border-color .18s;min-width:0}.path-card:hover{transform:translateY(-3px);border-color:var(--color-brand)}.path-card .path-t{font-family:var(--font-display);font-size:24px;line-height:1.2;letter-spacing:-.02em}.path-card .path-s{font-size:15px;line-height:1.65;color:var(--color-ink-2)}.path-card .path-go{font-size:14px;color:var(--color-brand-3);margin-top:auto;padding-top:20px}.path-card .path-ic{border-radius:12px;color:var(--color-brand-3);background:color-mix(in srgb,var(--color-brand) 16%,var(--color-surface-2))}.path-card:focus-visible{transform:translateY(-3px)}
/* Theme-native product illustration: real text, zero image payload, no donor branding. */
.portal-preview{position:relative;align-self:center;width:min(100%,570px);padding:30px;margin:24px auto;background:linear-gradient(145deg,var(--color-surface-2) 0%,var(--color-surface) 100%);border:1px solid color-mix(in srgb,var(--color-brand) 25%,transparent);border-radius:26px;box-shadow:0 28px 70px rgba(0,0,0,.5);color:var(--color-ink);transform:rotate(1deg)}
.preview-top{display:flex;align-items:center;gap:9px;font:600 12px/1.4 var(--font-body, sans-serif);border-bottom:1px solid color-mix(in srgb,var(--color-brand) 20%,transparent);padding-bottom:20px;margin-bottom:24px}.preview-dot{width:8px;height:8px;background:var(--color-brand);border-radius:50%}.preview-free{margin-left:auto;color:var(--color-ink-2)}.portal-preview h2{font-size:clamp(26px,3vw,40px);line-height:1.1;letter-spacing:-.035em;margin:12px 0 22px}.preview-goal{display:flex;align-items:center;gap:15px;background:var(--color-surface-2);color:var(--color-ink);border-radius:16px;padding:20px}.preview-symbol{font-size:36px;color:var(--color-brand)}.preview-goal p{font-size:13px;margin:5px 0 0;color:var(--color-ink-2)}.preview-steps{list-style:none;padding:0;margin:12px 0}.preview-steps li{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid color-mix(in srgb,var(--color-brand) 20%,transparent)}.preview-steps li>span{font-size:12px;color:var(--color-ink-2)}.preview-steps b{font-size:14px}.preview-steps p{font-size:12px;margin:3px 0 0;color:var(--color-ink-2)}.preview-steps i{margin-left:auto;font-style:normal;color:var(--color-ink-2)}.preview-link{display:flex;justify-content:space-between;font-size:14px;font-weight:700;padding-top:12px}.lesson-next-step{margin-top:32px;padding:24px;border:1px solid color-mix(in srgb,var(--color-brand) 18%,transparent);background:var(--color-surface-2);border-radius:20px}.lesson-next-step h3{font-size:22px;line-height:1.3;margin:8px 0 12px}.practice-list{padding-left:22px;line-height:1.7}.context-offer{padding:24px;background:var(--color-surface-2);border:1px solid color-mix(in srgb,var(--color-brand) 18%,transparent);border-radius:16px;margin-top:24px}.offer-disclosure{font-size:12px!important;line-height:1.5!important;color:var(--color-ink-2)}.insights-panel{padding:24px;border:1px solid color-mix(in srgb,var(--color-brand) 18%,transparent);border-radius:20px;background:var(--color-surface-2);margin:20px 0}.insights-panel h2,.insights-panel h3{margin:8px 0 16px;font-size:22px}.insights-panel article{border-top:1px solid color-mix(in srgb,var(--color-brand) 18%,transparent);padding:18px 0}.insights-panel p{line-height:1.65;margin:8px 0}.priorities-shell{padding-top:48px;padding-bottom:64px}.priorities-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.priorities-link{display:inline-block;margin-top:12px;font-size:13px;text-decoration:underline;text-underline-offset:4px}.form-label small{display:block;font-weight:400;color:var(--color-ink-2);margin:6px 0}.context-offer button:disabled{opacity:.6}
@media(max-width:767px){.portal-preview{transform:none;padding:20px;margin:16px auto 0}.priorities-grid{grid-template-columns:1fr;gap:0}.priorities-shell{padding-top:28px}.lesson-next-step,.context-offer{padding:18px}}
@media(prefers-reduced-motion:reduce){.portal-preview{transform:none}html{scroll-behavior:auto!important}}
.cf-home .cf-hero h1{width:100%;font-size:clamp(36px,4vw,58px)}.cf-home .portal-preview{margin:0;width:100%;max-width:570px}.cf-home .portal-preview p{font-family:var(--font-body);line-height:1.5}.cf-home .portal-preview .section-label{font-size:11px}.cf-home .preview-goal p,.cf-home .preview-steps p{font-size:13px}.cf-home .portal-preview h2{font-family:var(--font-display);font-weight:700;font-size:clamp(27px,2.7vw,40px);line-height:1.1}.cf-home .preview-steps{list-style:none}.cf-home .preview-steps li{list-style:none}
.cf-home .cf-hero-copy .cf-eyebrow{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--color-brand-3);margin:0 0 10px}
.cf-home .cf-hero-copy .cf-hero-more{margin-top:14px}
.cf-home .cf-hero-copy .cf-hero-more a{font-size:14px;font-weight:700;color:var(--color-brand-3);text-decoration:underline;text-underline-offset:3px}
/* The hero photo/hero::after wave and the .cf-hero>.cf-art crop box that used to live here
   were fully replaced by the image layout repair kit (see src/nsp-repair.css): the hero
   photo is now a plain, uncropped <figure class="nsp-hero-media"> in normal flow. */

/* Header floats transparently over the hero photo so the image extends behind it, then
   turns into a normal solid bar for every section below (handled by scroll state below). */
.cf-home #site-header{position:relative;background:var(--color-surface);border-bottom:1px solid color-mix(in srgb,var(--color-brand) 12%,transparent)}
.cf-home .site-bg{margin-top:0}
/* Hero intro: a distinct, contained panel (not two floating fragments on bare white) that
   introduces the membership before the calculator picker below. */
.cf-home .cf-hero-intro{position:relative;isolation:isolate;background:linear-gradient(180deg,var(--color-surface),var(--color-surface-2));padding:56px 5.3% 64px}
.cf-home .cf-hero-intro-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1fr);gap:56px;align-items:center}
.cf-home .cf-hero-intro-copy>.eyebrow{display:block;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--color-brand-3);margin:0 0 10px}
.cf-home .cf-hero-intro-copy>h2{font-family:var(--font-display);font-weight:800;font-size:clamp(24px,2.3vw,36px);letter-spacing:-.03em;line-height:1.12;margin:0 0 20px;color:var(--color-deep)}
.cf-home .cf-hero-intro-copy>.cf-value-props{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;font-size:15px;line-height:1.4;color:var(--color-ink-2)}
.cf-home .cf-hero-intro-copy>.cf-value-props li{position:relative;padding-left:2em}
.cf-home .cf-hero-intro-copy>.cf-value-props li::before{content:"";position:absolute;left:0;top:.1em;width:1.3em;height:1.3em;border-radius:999px;background:color-mix(in srgb,var(--color-good) 35%,var(--color-surface-2))}
.cf-home .cf-hero-intro-copy>.cf-value-props li::after{content:"";position:absolute;left:.42em;top:.52em;width:.5em;height:.28em;border-left:2px solid var(--color-good);border-bottom:2px solid var(--color-good);transform:rotate(-45deg)}
.cf-home .cf-hero-intro>.cf-hero-intro-inner>.portal-preview{max-width:520px;margin:0}
@media(max-width:1023px){.cf-home .cf-hero-intro-inner{grid-template-columns:1fr;gap:36px}.cf-home .cf-hero-intro>.cf-hero-intro-inner>.portal-preview{max-width:560px;margin:0 auto}}
@media(max-width:767px){.cf-home .cf-hero h1{font-size:40px;width:100%}.cf-home .portal-preview{max-width:none}
.cf-home .cf-hero-intro{padding:36px 6% 40px}
.cf-home .cf-hero-intro-copy>h2{font-size:26px}
}
.learning-paths{padding:28px;border:1px solid color-mix(in srgb,var(--color-brand) 18%,transparent);border-radius:24px;margin:24px 0;background:linear-gradient(135deg,var(--color-surface-2),var(--color-surface))}.learning-paths h2{font-family:var(--font-display);font-size:30px;line-height:1.2;margin:10px 0 20px}.learning-paths select{max-width:420px}.learning-path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:24px 0 0}.learning-path-grid a{display:flex;flex-direction:column;gap:12px;padding:22px;background:var(--color-surface-2);border:1px solid color-mix(in srgb,var(--color-brand) 18%,transparent);border-radius:16px;height:100%;transition:box-shadow .15s}.learning-path-grid a:hover{box-shadow:0 8px 24px rgba(0,0,0,.4)}.learning-path-grid h3{font-size:20px;line-height:1.25;font-weight:650}.learning-path-grid p{font-size:14px;line-height:1.5;color:var(--color-ink-2)}.learning-path-grid b{font-size:13px;margin-top:auto;text-decoration:underline;text-underline-offset:4px}@media(max-width:767px){.learning-path-grid{grid-template-columns:1fr}.learning-paths{padding:20px}.learning-paths h2{font-size:26px}}
/* Reset the legacy footer's outer grid: the shared footer owns its inner columns. */
footer.site-footer>.wrap-wide{display:block;width:min(90%,1200px);max-width:1200px;padding:0;margin-inline:auto}.site-footer .footer-main{width:100%;min-width:0}.site-footer .footer-main>div{min-width:0}.site-footer .footer-bottom{width:100%}.site-footer ul.foot-list{font-size:14px;line-height:1.5;list-style:none;padding:0;margin:0}.site-footer .footer-brand img{width:auto;max-width:100%;height:auto;max-height:150px}.priorities-shell>.display{font-family:var(--font-display);font-size:clamp(38px,5vw,60px);line-height:1.1;letter-spacing:-.035em;margin:12px 0 18px}.priorities-shell>.section-label{margin-top:30px;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.priorities-shell>p{line-height:1.6}.priorities-shell>#priorities-status{font-size:13px;color:var(--color-ink-2);margin-top:18px}
.planner-shell,.saved-plan-shell{padding-top:40px;padding-bottom:64px}.planner-heading{max-width:760px;margin:24px 0}.planner-heading h1{font:700 clamp(36px,4vw,54px)/1.1 var(--font-display);letter-spacing:-.035em;margin:12px 0 18px}.planner-heading p{line-height:1.6}.planner-picker{max-width:500px}.planner-workspace{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:28px;align-items:start}.planner-workspace .insights-panel{margin-top:24px}#planner-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}#planner-fields label{min-width:0}.planner-empty{padding:40px;margin-top:24px;border-radius:24px;border:1px dashed var(--portal-line);background:var(--color-surface-2)}.planner-empty h2{font:600 34px/1.15 var(--font-display);margin:16px 0 24px}.planner-empty ol{padding-left:20px;line-height:2}.result-card{background:var(--color-surface-2);border:1px solid var(--portal-line);border-radius:24px;padding:30px;margin:24px 0;box-shadow:var(--portal-shadow)}.result-card h1,.result-card h2{font:700 32px/1.2 var(--font-display);margin:12px 0 20px}.result-card h3{font-size:22px;font-weight:650;margin:28px 0 18px}.result-card p{line-height:1.7;margin:12px 0}.result-context{font-size:19px}.result-assumptions,.input-receipt{border-top:1px solid var(--portal-line);border-bottom:1px solid var(--portal-line);padding:16px 0;margin:20px 0;font-size:14px}.result-assumptions summary,.input-receipt summary{cursor:pointer;font-weight:600;min-height:28px}.result-assumptions ul{padding-left:20px;line-height:1.7}.action-tasks{list-style:none;padding:0;display:grid;gap:12px}.action-task{display:flex;gap:14px;align-items:start;padding:18px;background:var(--color-surface-2);border-radius:14px;line-height:1.5}.action-task input{margin-top:5px;accent-color:var(--color-deep);width:18px;height:18px;flex-shrink:0}.action-task span{display:grid;gap:8px}.action-task b{font-size:15px;font-weight:550}.action-task:has(input:checked){opacity:.7}.action-task:has(input:checked) b{text-decoration:line-through}.input-receipt dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.input-receipt dd{font-weight:600;text-align:right;overflow-wrap:anywhere}.saved-plan-shell{max-width:860px}.result-card>.btn{margin-top:22px}.result-card>.text-link{display:block;margin-top:20px}@media(max-width:760px){.planner-workspace{grid-template-columns:1fr}.result-card{padding:22px}#planner-fields{grid-template-columns:1fr}.planner-empty{padding:24px}.result-card h1,.result-card h2{font-size:28px}}@media print{.saved-plan-shell{max-width:none}.result-card{box-shadow:none;border:0}.result-card details{display:block}.saved-plan-shell>.action-row{display:none}.action-tasks li{break-inside:avoid}}
.course-practice{padding:28px;margin-top:30px;border:1px solid var(--portal-line);border-left:4px solid var(--color-brand);border-radius:18px;background:var(--color-surface-2)}.course-practice h3{font-size:24px;line-height:1.3;margin:10px 0 18px}.course-practice h4{font-size:18px;font-weight:650;margin:22px 0 12px}.course-practice p{font-size:16px;line-height:1.7}.practice-outcomes{padding-left:22px;line-height:1.8}.practice-example{padding:18px;background:var(--color-surface-2);border-radius:12px;margin:20px 0}.practice-example summary{cursor:pointer;font-weight:650;font-size:15px}.course-practice .form-label{margin-top:20px}.practice-check{border-top:1px solid var(--portal-line);padding-top:18px;font-size:14px!important}.lesson-next-step:empty{display:none}

.followup-shell>h2{font:650 28px/1.3 var(--font-display);margin:36px 0 14px}.followup-shell>p{max-width:780px;line-height:1.7}.followup-shell #followup-status{padding:16px 20px;background:var(--color-surface-2);border-radius:14px;margin:24px 0}.followup-shell .btn{margin:12px 8px 0 0}.followup-shell .insights-panel p{margin:14px 0;line-height:1.7}
.action-task{background:color-mix(in srgb,var(--color-brand) 10%,var(--color-surface-2));border:1px solid var(--portal-line)}.result-card .section-label{color:var(--color-ink-2)}
.planner-field-group{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 16px;border-top:1px solid var(--portal-line);margin-top:22px;padding-top:14px}.planner-field-group legend{font-weight:650;padding:0 8px 0 0}.planner-field-group .form-label{margin-top:12px}@media(max-width:600px){.planner-field-group{grid-template-columns:1fr}}
.member-journey{display:grid;grid-template-columns:1.05fr 1fr;gap:34px;padding:32px;margin:28px 0;border-radius:24px;border:1px solid var(--portal-line);background:linear-gradient(125deg,color-mix(in srgb,var(--color-brand) 12%,var(--color-surface-2)),var(--color-surface-2) 70%);box-shadow:var(--portal-shadow)}.journey-focus h2{font:650 clamp(25px,2.8vw,36px)/1.2 var(--font-display);letter-spacing:-.02em;margin:16px 0}.journey-summary{font-size:16px;line-height:1.65;margin:16px 0 24px;color:var(--color-ink-2)}.journey-progress>p{font-size:14px;font-weight:600}.journey-progress progress{display:block;width:100%;height:8px;margin:16px 0 22px;appearance:none;border:none;border-radius:20px;overflow:hidden;background:var(--portal-line)}.journey-progress progress::-webkit-progress-bar{background:var(--portal-line)}.journey-progress progress::-webkit-progress-value{background:var(--color-brand)}.journey-progress progress::-moz-progress-bar{background:var(--color-brand)}.journey-progress ol{list-style:none;padding:0;display:grid;gap:16px}.journey-progress li{display:flex;align-items:start;gap:12px;font-size:14px;line-height:1.5}.journey-step-marker{flex-shrink:0;display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--portal-line);border-radius:50%;font-size:12px}.journey-progress .is-complete{color:var(--color-ink-2)}.journey-progress .is-complete .journey-step-marker{background:var(--color-brand);color:var(--color-surface)}.journey-progress .text-link{line-height:1.6}@media(max-width:760px){.member-journey{grid-template-columns:1fr;padding:24px;gap:26px}}

/* Final expense: compact Eric intro panel above the calculator wizard */
.fe-eric-intro{display:flex;align-items:center;gap:22px;padding:16px 20px;margin:20px 0 4px;border-radius:18px;background:var(--color-surface-2);border:1px solid var(--portal-line)}
.fe-eric-photo{flex-shrink:0;width:96px;height:96px;border-radius:14px;overflow:hidden}
.fe-eric-photo img{width:100%;height:100%;object-fit:cover;--focal:22% 30%}
.fe-eric-note{margin:0;font-size:14px;line-height:1.5;color:var(--color-ink-2)}
@media(max-width:600px){.fe-eric-intro{padding:14px}.fe-eric-photo{width:64px;height:64px}.fe-eric-note{font-size:13px}}

/* /join: photo panel beside the signup form on desktop, stacks below on mobile */
.join-eric-photo{border-radius:20px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 14px 34px color-mix(in srgb,var(--color-deep) 14%,transparent)}
.join-eric-photo img{width:100%;height:100%;object-fit:cover;--focal:38% 26%}
@media(max-width:1023px){.join-eric-photo{max-width:320px;margin:28px auto 0;aspect-ratio:16/11}}

/* ============================================================================
   Portal shell (2026-09-18, per 04-PORTAL-SCREEN-DESIGN-SPEC.md).
   Two fixes: the public site nav was rendering above the member nav on every
   portal page (two navigations doing the same job), and the member nav was a
   horizontally scrolling strip rather than a persistent rail.
   ========================================================================== */

/* One brand mark, one nav. The header keeps the logo; the portal nav owns
   navigation and sign-out. */
body.members #site-header nav[aria-label="Primary"],
body.members #site-header [data-nav-cta],
body.members #site-header [data-auth-link],
body.admin #site-header nav[aria-label="Primary"],
body.admin #site-header [data-nav-cta],
body.admin #site-header [data-auth-link] { display: none !important; }

@media (min-width: 1024px) {
  /* The nav is the first child of the page's .wrap on every member template
     (certificate wraps it in .print\:hidden so it stays off the printed page). */
  body.members .wrap[data-current] {
    display: grid;
    grid-template-columns: 248px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
  }
  body.members .wrap[data-current] > * { grid-column: 2; min-width: 0; }
  body.members .wrap[data-current] > .mnav,
  body.members .wrap[data-current] > .print\:hidden:first-child {
    grid-column: 1;
    /* The rail spans the content rows beside it. NOT "span 500": a span creates the implicit
       rows it names, each empty row still carries the 32px row gap, and 499 of them put about
       16,000px of blank page under every member screen (the footer sat sixteen screens down).
       CSS cannot say "span every implicit row", so the span is the most content rows any member
       template has (5, members/priorities) plus one spare: at worst about 100px of extra room.
       A template that ever grows past 6 direct children needs this number raised. */
    grid-row: 1 / span 6;
    position: sticky;
    top: 20px;
  }
  body.members .mnav {
    flex-direction: column;
    align-items: stretch;
    overflow: visible;
    gap: 2px;
    padding: 10px;
  }
  body.members .mnav a,
  body.members .mnav button {
    display: flex;
    justify-content: flex-start;
    min-height: 44px;
    padding: 0 12px;
  }
  /* Sign out is pushed to the end of the row on mobile; on the rail it sits
     under a divider instead. */
  body.members .mnav .ml-auto {
    margin-left: 0 !important;
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px solid var(--portal-line);
  }
}

/* Nine categories no longer fit one row beside the rail, so let them wrap
   instead of hiding the last few behind a horizontal scrollbar. */
@media (min-width: 1024px) {
  body.members .cat-tabs { flex-wrap: wrap; overflow: visible; }
}

/* Rail group labels. The same nav is a horizontal strip on mobile, where
   headings would break the row, so they only appear once it becomes a rail. */
.mnav-group { display: none; }
@media (min-width: 1024px) {
  body.members .mnav-group {
    display: block;
    margin: 14px 0 4px;
    padding: 0 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--color-ink-2);
  }
  body.members .mnav-group:first-of-type { margin-top: 10px; }
}
