/* Public landing only. Palette and typography: strategy deck, 2026-11-04. */
@font-face{font-family:'Instrument Serif';src:url('/static/fonts/InstrumentSerif-400-latin.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('/static/fonts/InstrumentSerif-400-italic-latin.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('/static/fonts/IBMPlexSans-variable-latin.woff2') format('woff2');font-weight:300 600;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('/static/fonts/JetBrainsMono-variable-latin.woff2') format('woff2');font-weight:400 600;font-display:swap}
:root{--bg:#0b1a2e;--surface:#10243f;--table:#1d4f8c;--line:#e9eef5;--text:#eef1f5;--text-dim:#8fa0b6;--accent:#ff8a3d;--border:rgba(233,238,245,.10)}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--text);font-family:'IBM Plex Sans',sans-serif;-webkit-font-smoothing:antialiased}
body{margin:0}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-underline-offset:.25em}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.wrap{width:min(1240px,calc(100% - 112px));margin-inline:auto}
.front-header{display:flex;justify-content:space-between;align-items:center;padding-block:28px;border-bottom:1px solid var(--border)}
.wordmark{font-size:20px;font-weight:500;text-decoration:none;letter-spacing:-.5px}
.languages{display:flex;gap:22px;align-items:center;font-size:14px}.languages a,.languages span{padding-block:10px}.languages [aria-current]{color:var(--accent)}
.skip{position:absolute;top:-100px;left:24px;z-index:2;padding:12px;background:var(--surface)}.skip:focus{top:12px}
.label,.number,figcaption,.footer-build{font-family:'JetBrains Mono',monospace}
.label{font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);line-height:1.8}
.status{display:flex;align-items:center;gap:10px;color:var(--text-dim);letter-spacing:.8px}.status span{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}
h1,h2,h3{font-family:'Instrument Serif',Georgia,serif;font-weight:400;text-wrap:balance}
h1{font-size:clamp(58px,5.4vw,82px);line-height:1.02;letter-spacing:-1.3px;margin-block:24px}
h1 em{display:block}em{font-weight:400;color:var(--accent)}
h2{font-size:clamp(38px,4vw,58px);line-height:1.08;max-width:800px;margin-top:18px}
h3{font-size:30px;line-height:1.15}
p{font-size:17px;line-height:1.65;font-weight:300}
.lede{font-size:20px;line-height:1.55;max-width:47ch}
.hero{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:12px;padding-block:76px 84px}
.hero-copy{position:relative;z-index:1}.hero-figure{min-width:0}.hero-figure img{width:100%;height:auto;display:block}figcaption{display:none;font-size:12px;color:var(--text-dim);text-align:center;line-height:1.7;margin-top:8px}figcaption span{display:block}figcaption span+span{margin-top:8px}
.demo-link{display:inline-flex;gap:24px;align-items:center;text-decoration:none;border-bottom:1px solid var(--accent);padding-block:12px;margin-top:26px;font-size:16px}.demo-link span{color:var(--accent)}
.thesis{border-top:1px solid var(--border);padding-block:68px 80px}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-top:44px}.three article{border-top:1px solid var(--border);padding-top:24px}.number{font-size:12px;color:var(--accent);display:block;margin-bottom:18px}.three h3{margin-bottom:16px}.three p{color:var(--text-dim)}
.band{background:var(--surface);border-block:1px solid var(--border)}.directions{padding-block:72px}.directions .three{gap:40px}.styles{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;border-top:1px solid var(--border);margin-top:48px;padding-top:32px}.styles p{color:var(--text-dim)}
.case{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding-block:90px;align-items:center}.case h2{margin-top:20px}.case-copy .dim{margin-top:24px;color:var(--text-dim);font-size:15px}
.competition{padding-block:64px 88px;border-top:1px solid var(--border)}.two{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:40px}.two article{border-left:2px solid var(--accent);padding:8px 0 8px 28px}.two h3{margin:12px 0}.two p:not(.label){max-width:45ch;color:var(--text-dim)}.two .next{border-color:var(--table)}.next .label{color:var(--text-dim)}
.invitation{padding-block:72px}.invitation-inner{display:grid;grid-template-columns:1.3fr 1fr;gap:96px;align-items:center}.invitation h2{margin-bottom:24px}.email{display:inline-block;margin-top:24px;color:var(--accent);font-size:23px;overflow-wrap:anywhere}.invitation aside{border-left:1px solid var(--border);padding-left:40px}.invitation aside p{margin-top:16px;color:var(--text-dim)}
.front-footer{padding-block:36px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:24px}.footer-top nav{display:flex;gap:24px;flex-wrap:wrap}.front-footer a{font-size:14px}.landing-door{margin-block:28px;color:var(--text-dim)}.landing-door p{font-size:14px}.footer-build{font-size:10px;color:var(--text-dim);line-height:1.8}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero{padding-block:56px;grid-template-columns:1fr 1fr}h1{font-size:60px}.three{gap:24px}.styles,.case{gap:40px}.invitation-inner{gap:40px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.front-header{padding-block:16px}.wordmark{font-size:18px}.languages{gap:16px}.hero{grid-template-columns:1fr;gap:28px;padding-block:40px 44px}h1{font-size:58px;letter-spacing:-.7px;margin-block:20px}.lede{font-size:18px}.hero-figure{max-width:520px;margin-inline:auto;width:100%}figcaption{display:block;font-size:12px}.three,.two,.styles,.case,.invitation-inner{grid-template-columns:1fr}.three{gap:28px;margin-top:32px}.thesis,.directions,.competition,.invitation{padding-block:48px}h2{font-size:42px}h3{font-size:29px}.styles{gap:20px;margin-top:36px}.case{gap:28px;padding-block:52px}.two{gap:32px}.invitation-inner{gap:36px}.invitation aside{padding:28px 0 0;border-left:0;border-top:1px solid var(--border)}.footer-top{align-items:flex-start;flex-direction:column}.footer-top nav{gap:18px}.front-footer{padding-block:30px}.email{font-size:21px}}
