:root{--ink:#141414;--paper:#f4f0e8;--teal:#4ccdbf;--teal-light:#a9ebe4;--teal-ink:#11796f;--purple-ink:#5944b7;--raspberry:#c2185b;--purple:#6f5bd3;--lavender:#d9d1ff;--white:#fffdf8;--muted:#66615b;--line:#1f1f1f;--max:1180px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.6}
a{color:inherit}
.wrap{max-width:var(--max);margin:auto;padding:0 24px}
.nav{position:sticky;top:0;z-index:20;background:rgba(244,240,232,.95);backdrop-filter:blur(12px);border-bottom:2px solid var(--line)}
.nav-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{font-size:.82rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;line-height:1.25}
.brand small{display:block;font-size:.63rem;letter-spacing:.12em;color:var(--purple);margin-top:2px}
.brand-logo{display:block;width:94px;height:78px;object-fit:contain}
.footer-logo{width:176px;height:auto;margin-bottom:14px}
.nav-links{display:flex;align-items:center;gap:15px;font-size:.82rem;font-weight:800}
.nav-links a{text-decoration:none}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{list-style:none;cursor:pointer;border:2px solid var(--ink);padding:10px 13px;font-size:.8rem;font-weight:900;text-transform:uppercase;background:var(--teal);color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu nav{position:absolute;right:0;top:52px;width:min(280px,80vw);display:grid;background:var(--paper);border:2px solid var(--ink);box-shadow:7px 7px 0 var(--ink)}
.mobile-menu nav a{padding:14px 18px;border-bottom:2px solid var(--ink);text-decoration:none;font-weight:800}
.mobile-menu nav a:last-child{border-bottom:0;background:var(--teal);color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 20px;text-align:center;line-height:1.35;border:2px solid var(--ink);font-weight:900;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;transition:.18s ease;background:var(--ink);color:var(--paper);box-shadow:5px 5px 0 var(--purple)}
.btn:hover,.btn:focus-visible{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--purple)}
.btn:focus-visible,.nav a:focus-visible,.text-link:focus-visible{outline:4px solid var(--purple);outline-offset:4px}
.btn.dark{background:var(--ink);color:var(--paper);box-shadow:5px 5px 0 var(--purple)}
.btn.ghost{background:var(--paper);color:var(--ink);box-shadow:5px 5px 0 var(--purple)}
.btn.ghost:hover,.btn.ghost:focus-visible{box-shadow:3px 3px 0 var(--purple)}
.page-hero{padding:76px 0 58px;border-bottom:2px solid var(--line);overflow:hidden}
.page-hero.raspberry{background:var(--raspberry);color:var(--white)}
.page-hero.raspberry .section-kicker{color:var(--white)}
.page-hero.teal{background:var(--teal)}
.page-hero.lavender{background:var(--lavender)}
.page-hero.purple{background:var(--purple);color:var(--white)}
.meet-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.85fr);gap:clamp(28px,5vw,72px);align-items:center}
.meet-hero h1{font-size:clamp(3.4rem,6vw,6.4rem);max-width:760px}
.meet-hero .lede{max-width:690px}
.meet-portrait{margin:0;background:#fff;border:2px solid var(--ink);box-shadow:10px 10px 0 var(--purple);aspect-ratio:1}
.meet-portrait img{display:block;width:100%;height:100%;object-fit:cover}
.eyebrow{display:inline-block;background:var(--ink);color:var(--paper);padding:7px 11px;font-size:.875rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;transform:rotate(-1deg)}
h1,h2,h3,.display{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase}
h1{font-size:clamp(3.4rem,9vw,7.6rem);line-height:.9;letter-spacing:-.025em;margin:27px 0 28px;max-width:1060px}
h2{font-size:clamp(2.4rem,5.5vw,4.6rem);line-height:.98;letter-spacing:-.015em;margin:10px 0 28px;max-width:930px}
h3{font-size:1.8rem;line-height:1.05;margin:0 0 14px}
.lede{font-size:clamp(1.3rem,2.5vw,2rem);line-height:1.25;font-weight:800;max-width:820px}
.hero-copy{max-width:900px;margin-top:24px;font-size:1.08rem}
.hero-copy p{max-width:850px}
.hero-copy p:nth-child(2){font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
section{padding:78px 0;border-bottom:2px solid var(--line)}
.section-kicker{font-size:.875rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.prose{max-width:760px;font-size:1.08rem}
.prose p:first-child{margin-top:0}
.prose strong{font-weight:800}
.callout{border:2px solid var(--ink);background:var(--paper);padding:30px;box-shadow:8px 8px 0 var(--purple)}
.callout.teal{background:var(--paper);box-shadow:8px 8px 0 var(--teal)}
.callout p:last-child{margin-bottom:0}
.grid{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink);margin-top:36px}
.tile{display:block;padding:28px;min-height:245px;border-right:2px solid var(--ink);background:var(--paper);text-decoration:none}
.tile:nth-child(3n){border-right:0}
.tile:nth-child(n+4){border-top:2px solid var(--ink)}
.tile[href]:hover,.tile[href]:focus-visible{background:var(--paper);box-shadow:inset 0 4px 0 var(--teal)}
.tile h3{margin-top:36px}
.num{color:var(--raspberry);font-size:.875rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.text-link{font-weight:900;text-transform:uppercase;text-decoration-thickness:2px;text-underline-offset:4px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink);border-left:2px solid var(--ink);margin-top:36px}
.step{background:var(--paper);padding:28px;min-height:250px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.step strong{font-size:2.8rem;line-height:1;color:var(--raspberry)}
.step h3{margin-top:36px}
.type-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.pill{border:2px solid var(--ink);background:var(--paper);padding:8px 12px;font-size:.875rem;font-weight:900;text-transform:uppercase}
.truth-list{list-style:none;padding:0;margin:28px 0 0;border-top:2px solid var(--ink)}
.truth-list li{padding:17px 0 17px 34px;border-bottom:2px solid var(--ink);position:relative;font-size:1.05rem}
.truth-list li:before{content:'+';position:absolute;left:4px;color:var(--raspberry);font-size:1.45rem;font-weight:900;top:10px}
.quote{background:var(--ink);color:var(--paper)}
.quote blockquote{font-family:Anton,Impact,sans-serif;margin:0;font-size:clamp(2.3rem,5.7vw,4.9rem);line-height:1;text-transform:uppercase}
.quote em{color:var(--raspberry);font-style:normal}
.next{background:linear-gradient(135deg,var(--paper) 0%,var(--paper) 72%,var(--teal) 72%,var(--teal) 86%,var(--lavender) 86%,var(--lavender) 100%)}
.legal h2{font-family:Inter,Arial,sans-serif;font-size:1.5rem;line-height:1.3;text-transform:none;margin-top:36px}
.legal{max-width:800px}
.chart-hero{padding:52px 0 34px;border-bottom:2px solid var(--line);background:var(--teal);color:var(--ink)}
.chart-hero h1{font-size:clamp(3rem,7vw,6rem);margin-bottom:18px}
.chart-hero .lede{font-size:clamp(1.1rem,2vw,1.45rem);max-width:760px}
.chart-section{padding:34px 0 70px;background:var(--paper)}
.chart-shell{background:var(--paper);border:2px solid var(--ink);box-shadow:9px 9px 0 var(--purple);padding:18px;min-height:720px}
.chart-note{max-width:760px;margin:26px auto 0;font-size:.95rem;color:var(--muted);text-align:center}
.hero{padding:82px 0 66px;border-bottom:2px solid var(--line);overflow:hidden}
.hero h1{font-size:clamp(3.7rem,10vw,8.35rem);line-height:.87;letter-spacing:-.025em;margin:28px 0 34px;max-width:1080px}
.hero h1 .raw{display:inline-block;background:var(--teal);color:var(--ink);padding:0 .07em;transform:rotate(-.5deg)}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:54px;align-items:end}
.hero-side{border-left:3px solid var(--raspberry);padding-left:24px;font-size:1.06rem}
.hero-side strong{font-size:1.12rem}
.ticker{overflow:hidden;border-bottom:2px solid var(--line);background:var(--raspberry);color:var(--white)}
.ticker-track{display:flex;width:max-content;padding:13px 0;font-weight:900;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;animation:marquee 24s linear infinite}
.ticker-track span::after{content:"·";display:inline-block;margin:0 44px;font-size:1.5em;line-height:0;vertical-align:-.08em}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.body-copy{font-size:1.1rem;max-width:660px}
.body-copy p:first-child{margin-top:0}
.cards{margin-top:36px;display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink)}
.card{padding:28px;min-height:282px;border-right:2px solid var(--ink);background:var(--paper)}
.home-page .card{transition:background-color .18s ease,color .18s ease}
.home-page .card:hover,.home-page .card:focus-within{background:var(--paper);color:var(--ink);box-shadow:inset 0 4px 0 var(--raspberry)}
.card:last-child{border-right:0}
.card h3{font-size:1.8rem;line-height:1.05;margin:36px 0 14px}
.card p{font-size:1rem;margin:0}
.types{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:36px}
.type{border:2px solid var(--ink);padding:22px 16px;min-height:185px;background:var(--paper)}
.type h3{color:var(--teal-ink);font-size:1.3rem;margin:0 0 15px}
.type p{font-size:.9rem;margin:0;color:#3f3b37}
.about{background:var(--ink);color:var(--paper)}
.about-layout{display:grid;grid-template-columns:1fr;gap:34px}
.about-layout h2{max-width:none;margin-bottom:0}
.about-layout .about-card{width:100%}
.about .section-kicker{color:var(--teal)}
.about-card{background:var(--paper);color:var(--ink);border:2px solid var(--ink);padding:36px;box-shadow:9px 9px 0 var(--raspberry)}
.about-card p{font-size:1.06rem}
.signature{font-family:Georgia,serif;font-style:italic;font-size:1.4rem;margin-top:26px}
.cta{background:linear-gradient(135deg,var(--paper) 0%,var(--paper) 62%,var(--teal) 62%,var(--teal) 82%,var(--lavender) 82%,var(--lavender) 100%)}
.cta-box{display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:end}
.cta h2{font-size:clamp(3.2rem,8vw,6.8rem);margin-bottom:12px}
.cta p{font-size:1.18rem;max-width:670px}
.coaching-panel{border:2px solid var(--ink);background:var(--paper);padding:34px;box-shadow:8px 8px 0 var(--ink)}
.coaching-panel h3{font-size:2.2rem;line-height:1.05;margin:8px 0 18px}
.mini{font-size:.875rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900}
.steps.five{grid-template-columns:repeat(5,1fr)}
.steps.five .step{min-height:275px}
.see-steps{background:var(--lavender)}
.see-steps .step{background:var(--paper)}
.see-steps .step:nth-child(1) strong{color:var(--raspberry)}
.see-steps .step:nth-child(2) strong{color:var(--teal-ink)}
.see-steps .step:nth-child(3) strong{color:var(--purple-ink)}
.see-steps .step:nth-child(4) strong{color:var(--raspberry)}
.see-steps .step:nth-child(5) strong{color:var(--teal-ink)}
.authority-note{margin-top:24px;border-left:8px solid var(--raspberry);padding:18px 22px;background:var(--paper);font-weight:700}
.topic-intro{max-width:820px;font-size:1.16rem}
.topic-intro p:first-child{margin-top:0}
.topic-grid{display:grid;grid-template-columns:repeat(2,1fr);border:2px solid var(--ink);margin-top:36px}
.topic-card{padding:28px;min-height:230px;background:var(--paper);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.topic-card:nth-child(2n){border-right:0}
.topic-card:nth-last-child(-n+2){border-bottom:0}
.topic-card h3{margin-top:36px}
.topic-card.raspberry{background:var(--paper);color:var(--ink)}
.topic-card.teal{background:var(--paper)}
.topic-card.lavender{background:var(--paper)}
.types-page .quote em{color:var(--teal)}
.authority-page .quote em{color:var(--lavender)}
.authority-page .authority-note{border-color:var(--purple);background:var(--paper)}
.authority-page .next{background:linear-gradient(135deg,var(--paper) 0%,var(--paper) 72%,var(--lavender) 72%,var(--lavender) 88%,var(--purple) 88%,var(--purple) 100%)}
.reading-path{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}
.post-card{border:2px solid var(--ink);background:var(--paper);padding:24px;box-shadow:6px 6px 0 var(--ink)}
.post-card h3{font-size:1.5rem;margin:24px 0 12px}
.post-card p:last-child{margin-bottom:0}
footer{padding:42px 0 52px}
.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:38px;align-items:start}
.footer-small{font-size:.875rem;color:var(--muted);max-width:640px}
.footer-links{display:grid;gap:9px;font-size:.875rem;font-weight:700}
.footer-links a{text-underline-offset:3px}
.card-link{color:inherit;text-decoration:none;display:block}
.card-link:hover h3,.card-link:focus-visible h3{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track{animation:none}.btn{transition:none}}
@media (max-width:1080px){.nav-links{gap:10px;font-size:.76rem}.nav-links .btn{padding:0 14px}}
@media (max-width:900px){.split,.hero-grid,.intro-grid,.cta-box{grid-template-columns:1fr}.hero-side{border-left:0;border-top:3px solid var(--raspberry);padding:20px 0 0}.grid{grid-template-columns:1fr 1fr}.tile:nth-child(n){border-right:2px solid var(--ink);border-top:2px solid var(--ink)}.tile:nth-child(-n+2){border-top:0}.tile:nth-child(2n){border-right:0}.steps,.steps.five{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr}.card{border-right:0;border-bottom:2px solid var(--ink);min-height:auto}.card:last-child{border-bottom:0}.types{grid-template-columns:1fr 1fr}.reading-path{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.nav-links{display:none!important}.mobile-menu{display:block}}
@media (max-width:900px){.meet-hero-grid{grid-template-columns:1fr}.meet-portrait{width:min(100%,480px)}.meet-hero h1{max-width:800px}}
@media (max-width:580px){.wrap{padding:0 18px}.page-hero{padding-top:54px}h1{font-size:3.35rem}.hero{padding-top:56px}section{padding:60px 0}.grid,.steps,.steps.five,.types,.footer-grid,.topic-grid{grid-template-columns:1fr}.tile:nth-child(n){border-right:0;border-top:2px solid var(--ink)}.tile:first-child{border-top:0}.topic-card:nth-child(n){border-right:0;border-bottom:2px solid var(--ink)}.topic-card:last-child{border-bottom:0}.footer-grid>div:first-child{grid-column:auto}.btn{width:100%}.nav-inner{min-height:76px}.brand-logo{width:76px;height:64px}.chart-hero{padding:38px 0 26px}.chart-hero h1{font-size:3rem}.chart-section{padding:20px 0 54px}.chart-shell{padding:8px;box-shadow:6px 6px 0 var(--purple);min-height:680px}}

.reset-registration{scroll-margin-top:110px}
.reset-registration .chart-shell{margin-top:28px;max-width:720px;min-height:0;padding:8px}
.reset-registration .chart-shell>div{width:100%}

.reset-registration .chart-shell iframe{display:block;width:100%;max-width:100%;border:0;height:540px}
.reset-form-link{font-size:.9rem;margin-top:18px}
@media(max-width:580px){.reset-registration .chart-shell iframe{height:660px}}

.reset-form{display:grid;gap:10px;padding:20px;background:var(--paper)}
.reset-form label{font-weight:700}
.reset-form input{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--muted);border-radius:4px;background:var(--white);font:inherit;color:var(--ink)}
.reset-form input:focus-visible{outline:3px solid var(--purple);outline-offset:2px}
.reset-form .btn{margin-top:12px;cursor:pointer;font:inherit;font-weight:900}
.reset-form .btn:disabled{opacity:.65;cursor:wait}
#reset-status:empty{display:none}
#reset-error{color:#9e1549;font-weight:700}
#reset-success{max-width:min(560px,calc(100% - 36px));padding:30px;background:var(--paper);color:var(--ink);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--purple)}
#reset-success::backdrop{background:rgb(20 20 20 / .6)}
.reset-close{margin-top:20px;background:transparent;border:0;text-decoration:underline;cursor:pointer;font:inherit;color:var(--ink)}

/* Shared card hierarchy: paper surfaces, coloured numbers and topic labels. */
.card-number{font-size:2.8rem;line-height:1;letter-spacing:0}
.card:nth-child(3n+2) .num,.tile:nth-child(3n+2) .num,.topic-card:nth-child(3n+2) .card-number{color:var(--teal-ink)}
.card:nth-child(3n) .num,.tile:nth-child(3n) .num,.topic-card:nth-child(3n) .card-number{color:var(--purple-ink)}
.strategy-page .topic-card .num,.strategy-page .post-card .num{color:var(--raspberry)}
.authority-page .topic-card .num,.authority-page .post-card .num{color:var(--purple-ink)}
.types-page .topic-card:not(:has(.card-number)) .num{color:var(--teal-ink)}
.step:nth-child(3n+2) strong{color:var(--teal-ink)}
.step:nth-child(3n) strong{color:var(--purple-ink)}
.grid>*,.steps>*,.cards>*,.topic-grid>*,.reading-path>*{min-width:0}
.card-link:focus-visible,.tile[href]:focus-visible{outline:3px solid var(--purple);outline-offset:-5px}
.card-link:hover h3,.tile[href]:hover h3{ text-decoration:underline;text-underline-offset:5px }

/* One hero system across the home, content, chart and policy pages. */
.site-hero{--hero-shadow:var(--purple);padding:72px 0 56px;border-bottom:2px solid var(--ink);overflow:visible}
.hero.site-hero{background:var(--teal);color:var(--ink)}
.site-hero h1{font-size:clamp(3.4rem,7vw,6.4rem);line-height:.96;letter-spacing:-.025em;margin:26px 0 24px;max-width:1060px;overflow-wrap:break-word}
.hero.site-hero h1 .raw{background:var(--paper);color:var(--ink);padding:0 .07em}
.site-hero .lede{font-size:clamp(1.15rem,1.8vw,1.6rem);line-height:1.4;font-weight:800;max-width:820px;margin:0}
.site-hero .hero-copy{max-width:820px;margin-top:24px}
.site-hero .hero-actions{gap:16px;margin-top:30px;align-items:stretch}
.site-hero .btn{background:var(--ink);color:var(--paper);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--hero-shadow);font-size:1rem}
.site-hero .btn.ghost{background:var(--paper);color:var(--ink)}
.site-hero .btn:hover,.site-hero .btn:focus-visible{box-shadow:3px 3px 0 var(--hero-shadow)}
.site-hero .btn:focus-visible{outline-color:var(--ink)}
.site-hero.raspberry,.site-hero.purple{--hero-shadow:var(--paper)}
.site-hero.raspberry .btn:focus-visible,.site-hero.purple .btn:focus-visible{outline-color:var(--paper)}
.site-hero .type-meta{margin-top:30px;gap:12px}
.site-hero .pill{color:var(--ink)}
.site-hero .hero-grid{margin-top:24px}
.site-hero .meet-hero-grid>*,.site-hero .hero-grid>*{min-width:0}
@media(max-width:580px){
 .site-hero{padding:48px 0 42px}
 .site-hero h1{font-size:clamp(2.4rem,9vw,3.35rem);line-height:1;margin:24px 0 20px}
 .site-hero .lede{font-size:1.15rem;line-height:1.45}
 .site-hero .hero-actions{gap:16px;margin-top:26px}
 .site-hero .hero-actions .btn{width:100%}
 .site-hero .hero-copy{font-size:1rem}
}

/* Home keeps its original paper hero with a teal word highlight. */
.home-page .hero .btn{background:var(--teal);color:var(--ink);box-shadow:5px 5px 0 var(--ink)}
.home-page .hero .btn:hover,.home-page .hero .btn:focus-visible{box-shadow:3px 3px 0 var(--ink)}
.home-page .hero .btn.ghost{background:transparent;color:var(--ink);box-shadow:none}

/* Audience copy sits beneath the homepage quote in the same dark section. */
.quote .audience-bridge{padding-top:40px}
.quote .audience-bridge .section-kicker{color:var(--teal)}
.audience-bridge p{margin-bottom:0}
.chart-fallback{margin:24px 0;font-size:1rem}
