@font-face{font-family:"Newsreader";src:url(/fonts/newsreader.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(/fonts/newsreader-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(/fonts/instrument-sans.woff2) format("woff2");font-weight:400 600;font-display:swap}
:root{--paper:oklch(97.5% .008 250);--ink:oklch(23% .03 255);--muted:oklch(45% .025 255);--rule:oklch(87% .015 250);--accent:oklch(45% .11 250);--accent-ink:oklch(98% .01 250);--warm:oklch(93% .03 80);
--serif:"Newsreader",Georgia,serif;--sans:"Instrument Sans",system-ui,sans-serif;--gut:clamp(1.25rem,5vw,4rem)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--sans);-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:var(--accent-ink)}
a{color:inherit;text-decoration-color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--ink);color:var(--paper);padding:.5rem 1rem}
.banner{background:var(--warm);font-size:.875rem;padding:.5rem var(--gut);text-align:center}
.top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;padding:1.25rem var(--gut);border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--paper);z-index:2}
.mark{font:600 1.125rem var(--serif);text-decoration:none}
.top nav{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.9375rem}.top nav a{text-decoration:none;color:var(--muted)}
section{padding:clamp(4rem,9vw,7rem) var(--gut);border-bottom:1px solid var(--rule)}
h1,h2,h3{font-family:var(--serif);font-weight:500;text-wrap:balance;margin:0}
h1{font-size:clamp(2.5rem,6.2vw,5.25rem);line-height:1.02;letter-spacing:-.025em;max-width:15ch}
h1 em,h2 em{color:var(--accent)}
h2{font-size:clamp(2rem,4vw,3.25rem);line-height:1.05;letter-spacing:-.02em;margin-bottom:1.25rem;max-width:20ch}
h3{font-size:1.4rem;line-height:1.2;margin-bottom:.5rem}
.eyebrow{font:600 .8125rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem}
.measure{max-width:62ch;color:var(--muted);margin:0 0 2.5rem}
.hero{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:end}
.lede{font-size:1.1875rem;margin:1.5rem 0;max-width:52ch}
.actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.btn{background:var(--ink);color:var(--paper);padding:.8rem 1.4rem;border-radius:999px;text-decoration:none;font-weight:500;transition:background .25s cubic-bezier(.16,1,.3,1)}
.btn:hover{background:var(--accent);color:var(--accent-ink)}
.facts{margin:0;border-top:2px solid var(--ink)}
.facts div{padding:1rem 0;border-bottom:1px solid var(--rule)}.facts dt{font-size:.8125rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.facts dd{margin:.25rem 0 0;font:400 1.125rem/1.35 var(--serif)}
.ph{background:var(--warm);border:1px dashed oklch(60% .08 80);padding:0 .35em;border-radius:3px;font-family:var(--sans);font-size:.9em;color:oklch(35% .06 70)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:0;border-top:2px solid var(--ink)}
.cols article{padding:1.5rem 1.5rem 0 0}.cols article+article{padding-left:1.5rem;border-left:1px solid var(--rule)}
.cols p{margin:0 0 1rem;color:var(--muted)}
.list{border-top:2px solid var(--ink)}
.list article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:2rem;padding:1.75rem 0;border-bottom:1px solid var(--rule)}
.list p{margin:0;max-width:60ch}
.note{font-size:.875rem;color:var(--muted);max-width:70ch;margin-top:2rem}
.rwa{background:var(--ink);color:var(--paper)}.rwa .measure,.rwa .note{color:oklch(80% .02 250)}.rwa h2 em{color:oklch(78% .1 250)}.rwa .btn{background:var(--paper);color:var(--ink)}
footer{padding:2.5rem var(--gut);font-size:.875rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}
@media (max-width:760px){.hero,.list article{grid-template-columns:1fr}.cols article+article{padding-left:0;border-left:0;border-top:1px solid var(--rule)}.cols article{padding-right:0}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.ph{background:none;border:0;padding:0;font-family:inherit;font-size:inherit;color:var(--muted);font-style:italic}
.flow{list-style:none;margin:0 0 2rem;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;counter-reset:none}
.flow li{position:relative}.flow li+li::before{content:"→";position:absolute;left:-.55rem;top:50%;transform:translate(-50%,-50%);color:var(--muted)}
.flow a{display:flex;flex-direction:column;gap:.35rem;height:100%;padding:1rem;border:1px solid var(--rule);border-radius:10px;text-decoration:none;font-weight:500;font-size:.9375rem;background:oklch(99% .004 250);transition:border-color .2s,background .2s}
.flow a b{font:500 1.5rem var(--serif);color:var(--accent)}
.flow a:hover,.flow a[aria-current="step"]{border-color:var(--accent);background:oklch(95% .03 250)}
.steps details,.faq details{border-top:1px solid var(--rule)}.steps details:last-child,.faq details:last-child{border-bottom:1px solid var(--rule)}
summary{cursor:pointer;padding:1.1rem 0;font:500 1.25rem var(--serif);list-style:none;display:flex;gap:.75rem;align-items:baseline}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";margin-left:auto;color:var(--accent);font-family:var(--sans)}details[open]>summary::after{content:"–"}
summary b{color:var(--accent);font-weight:500}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding:0 0 1.75rem}
.grid3 h4{font:600 .8125rem var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .4rem}.grid3 p{margin:0}
.faq p{margin:0 0 1.25rem;max-width:65ch;color:var(--muted)}
.tabs .panel{border-top:1px solid var(--rule);padding:1.25rem 0}
.tabs.js .panel{border:0;padding:1.5rem 0 0}.tabs.js .panel[hidden]{display:none}
.tablist{display:flex;flex-wrap:wrap;gap:.5rem;border-bottom:2px solid var(--ink);padding-bottom:.75rem}
.tablist button{font:500 .9375rem var(--sans);border:1px solid var(--rule);background:transparent;color:var(--ink);padding:.55rem 1rem;border-radius:999px;cursor:pointer}
.tablist button[aria-selected="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.stepnav{display:flex;gap:1rem;margin-top:1rem}.stepnav button{font:inherit;background:none;border:0;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:.2em}.stepnav button:disabled{color:var(--rule);cursor:default}
.pulse{animation:pulse 1s cubic-bezier(.16,1,.3,1)}@keyframes pulse{from{background:oklch(93% .05 250)}to{background:transparent}}
@media (max-width:900px){.flow{grid-template-columns:1fr 1fr}.flow li+li::before{display:none}.grid3{grid-template-columns:1fr;gap:1rem}}
@media (prefers-reduced-motion:reduce){.pulse{animation:none}}
/* ===== St. Louis theme ===== */
:root{--paper:oklch(97% .006 240);--ink:oklch(21% .03 250);--muted:oklch(44% .02 250);--rule:oklch(86% .01 240);
--red:oklch(46% .18 25);--red-hi:oklch(54% .2 25);--river:oklch(40% .1 240);--river-deep:oklch(26% .07 245);--steel:oklch(80% .01 240);--brick:oklch(55% .11 40);--accent:var(--red);--accent-ink:#fff}
body{background:var(--paper)}
.top{background:color-mix(in oklch,var(--paper) 88%,transparent);backdrop-filter:blur(10px)}
.mark{color:var(--red)}
.eyebrow{color:var(--red)}
.hero{position:relative;overflow:hidden;grid-template-columns:1.4fr 1fr;align-items:center;background:radial-gradient(120% 90% at 85% 10%,oklch(33% .08 245),var(--river-deep) 60%,oklch(18% .04 250));color:#fff;border:0;min-height:min(88vh,780px)}
.hero .eyebrow{color:oklch(78% .12 25)}
.hero h1 em{color:oklch(70% .17 25);font-style:italic}
.hero .lede{color:oklch(88% .015 240)}
.hero-copy{position:relative;z-index:1}
.arch{position:absolute;right:-4%;bottom:-2px;height:118%;width:auto;opacity:.55;pointer-events:none}
.arch-path{stroke-dasharray:1400;stroke-dashoffset:0;animation:draw 2.4s cubic-bezier(.65,0,.35,1) both}
@keyframes draw{from{stroke-dashoffset:1400}}
.portrait{position:relative;z-index:1;margin:0;justify-self:center;width:min(78vw,340px);aspect-ratio:1;border-radius:50% 50% 8px 8px / 60% 60% 8px 8px;overflow:hidden;box-shadow:0 0 0 6px oklch(85% .01 240),0 0 0 12px var(--red),0 30px 60px -20px #000a;animation:rise 1.1s .2s cubic-bezier(.16,1,.3,1) both}
.portrait img{width:100%;height:100%;object-fit:cover;display:block;filter:contrast(1.05)}
@keyframes rise{from{opacity:0;transform:translateY(24px)}}
.btn{background:var(--red);color:#fff}.btn:hover{background:var(--red-hi);color:#fff}
.btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px oklch(80% .02 240)}.btn.ghost:hover{background:#fff1}
.facts-band{padding:0 var(--gut);background:linear-gradient(90deg,#9aa3ac,#eef1f4 45%,#c3cad1 55%,#8e98a2);border:0}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border:0}
.facts div{padding:1.25rem 1.25rem 1.25rem 0;border:0}.facts div+div{padding-left:1.25rem;border-left:1px solid oklch(60% .01 240 / .5)}
.facts dt{color:var(--river-deep)}.facts dd{color:var(--ink)}
.ph{color:var(--muted)}
.bio{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;background:linear-gradient(180deg,var(--paper),oklch(95% .015 40))}
.gallery{display:grid;grid-template-columns:.75fr 1.25fr;gap:1rem;align-items:end}
.gallery figure{margin:0}.gallery img{width:100%;height:auto;display:block;border-radius:6px;box-shadow:0 18px 40px -22px oklch(30% .08 40)}
.gallery figure:first-child img{border-bottom:5px solid var(--red)}.gallery figure:last-child img{border-bottom:5px solid var(--brick)}
figcaption{font-size:.75rem;color:var(--muted);margin-top:.5rem}
#fit{background:var(--paper)}
.flow a{border-color:var(--rule);background:#fff;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .2s,background .2s}
.flow a b{color:var(--red)}
.flow a:hover{transform:translateY(-3px)}
.flow a[aria-current="step"]{border-color:var(--red);background:oklch(96% .025 25);box-shadow:inset 0 -4px 0 var(--red)}
.flow li+li::before{color:var(--brick)}
summary::after,summary b{color:var(--red)}
#day{background:var(--river-deep);color:#fff}#day .eyebrow{color:oklch(78% .12 25)}#day .note{color:oklch(80% .02 240)}
#day .tabs .panel{border-color:#fff3}#day .tabs.js .panel{border:0}
#day .tablist{border-color:var(--steel)}#day .tablist button{color:#fff;border-color:#fff4}#day .tablist button[aria-selected="true"]{background:var(--red);border-color:var(--red)}
#day .stepnav button{color:oklch(85% .08 25)}#day .stepnav button:disabled{color:#fff3}
#hr h2 em,#partners h2 em{color:var(--red)}
#risk{background:oklch(95% .015 40)}#risk .list{border-color:var(--brick)}
.cols{border-color:var(--ink)}
.rwa{background:linear-gradient(135deg,oklch(20% .04 250),var(--river) 140%)}.rwa .btn{background:var(--red);color:#fff}.rwa h2 em{color:oklch(72% .16 25)}
footer{background:oklch(18% .03 250);color:oklch(80% .01 240)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.reveal.in{opacity:1;transform:none}
@media (max-width:900px){.hero{grid-template-columns:1fr;min-height:0}.portrait{order:-1;width:220px}.facts{grid-template-columns:1fr 1fr}.facts div:nth-child(3){padding-left:0;border-left:0}.bio{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.arch-path,.portrait{animation:none}.reveal{opacity:1;transform:none;transition:none}.flow a:hover{transform:none}}
