@font-face{font-family:Geist;src:url('/fonts/Geist-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--paper:#fff;--ink:#121826;--muted:#5b667b;--accent:#2457e3;--accent-hover:#1945c2;--navy:#152745;--line:#dce2ed;--wash:#f5f7fc;--field:#fff;--field-border:#cbd5e5;--placeholder:#6c778c;--disabled:#e8eefc;--disabled-border:#cedaf9;--disabled-ink:#294b9b;--field-disabled:#f8f9fc;--error:#a22825;--sun-top:#2457e3;--sun-mid:#3d6be9;--sun-fade:#eaf0ff;--button-ink:#fff;--gutter:clamp(24px,5.6vw,80px);font-family:Geist,system-ui,sans-serif;color:var(--ink);background:var(--paper);color-scheme:light;font-synthesis:none;font-kerning:normal}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0}a{color:var(--accent);text-underline-offset:4px}button,input{font:inherit}input{background:var(--field);color:var(--ink)}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{cursor:pointer;background:var(--accent);color:var(--button-ink);border:1px solid var(--accent);border-radius:6px;padding:15px 24px;min-height:54px;font-size:1rem;font-weight:600;transition:background .15s ease}button:hover{background:var(--accent-hover)}button:disabled{cursor:default;background:var(--disabled);border-color:var(--disabled-border);color:var(--disabled-ink)}button[aria-busy=true]{cursor:wait;background:var(--accent);color:var(--button-ink)}input:disabled{background:var(--field-disabled);color:var(--muted)}.page{max-width:1440px;margin:auto;padding:0 var(--gutter)}.masthead{display:flex;align-items:center;justify-content:space-between;min-height:92px;gap:20px}.brand{font-size:1.375rem;letter-spacing:-.7px;font-weight:650;text-decoration:none;color:var(--ink);line-height:1.3}nav{display:flex;gap:36px;font-size:1rem}nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none}nav a:hover{text-decoration:underline}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:72px;padding:50px 0 76px}.intro h1{font-size:clamp(3rem,5.45vw,4.875rem);letter-spacing:-.055em;line-height:1.08;font-weight:650;margin:0 0 30px}.lead{font-size:1.25rem;line-height:1.6;max-width:36ch;margin:0 0 12px}.schedule{font-size:.9375rem;line-height:1.5;color:var(--muted);margin:0 0 30px}label{display:block;font-size:1rem;font-weight:500;margin-bottom:9px}.form-row{display:flex;gap:12px}.form-row input{min-width:0;flex:1;width:100%;border:1px solid var(--field-border);border-radius:6px;padding:14px 17px;min-height:54px;font-size:1rem;color:var(--ink)}.form-row input::placeholder{color:var(--placeholder)}.form-row button{white-space:nowrap;min-width:235px}.form-help{font-size:.875rem;line-height:1.5;color:var(--muted);margin:10px 0 0}.consent{font-size:.875rem;line-height:1.5;color:var(--muted);margin:26px 0 0;max-width:76ch}.author{font-size:.875rem;line-height:1.5;color:var(--muted);margin:30px 0 0}#feedback:empty{display:none}#feedback{font-size:.9375rem;line-height:1.5;color:var(--error);margin:14px 0 0}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.sunrise{position:relative;align-self:center;min-width:0;height:410px;isolation:isolate}.sun{position:absolute;top:4px;left:50%;width:min(330px,75%);aspect-ratio:1;border-radius:50%;transform:translateX(-50%);background:linear-gradient(180deg,var(--sun-top) 0%,var(--sun-mid) 62%,var(--sun-fade) 94%,var(--paper) 100%)}.horizon{position:absolute;top:255px;left:0;width:100%;display:flex;flex-direction:column;align-items:center;gap:18px}.horizon i{display:block;background:var(--ink);height:2px;width:100%}.horizon i:nth-child(2){width:95%}.horizon i:nth-child(3){width:85%}.horizon i:nth-child(4){width:75%}.horizon i:nth-child(5){width:65%}.horizon i:nth-child(6){width:55%}.horizon i:nth-child(7){width:44%}.horizon i:nth-child(8){width:33%}.horizon i:nth-child(9){width:17%}.inside{position:relative;padding:38px 0 30px;border-top:1px solid var(--line);scroll-margin-top:24px}.inside::before{content:'';position:absolute;inset:-1px calc(-1 * var(--gutter)) 0;background:var(--wash);z-index:-1}.inside h2{font-size:clamp(1.65rem,2.5vw,2.25rem);letter-spacing:-.04em;line-height:1.2;margin:0 0 29px;font-weight:600}.inside-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}.inside h3{font-size:1.25rem;letter-spacing:-.025em;line-height:1.4;margin:0 0 10px;font-weight:600}.inside article p{font-size:1rem;line-height:1.65;color:var(--muted);max-width:56ch;margin:0}.site-footer{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:22px 0 28px;font-size:.8125rem;line-height:1.5;color:var(--muted)}.site-footer a{display:inline-flex;align-items:center;color:inherit;min-height:24px}.reading{max-width:760px;padding:58px 0 88px;min-height:65vh}.reading h1{font-size:clamp(2.5rem,5vw,3.75rem);letter-spacing:-.05em;line-height:1.12;font-weight:600;margin:0 0 24px}.reading h2{font-size:1.5rem;letter-spacing:-.03em;margin-top:36px}.reading p,.reading li{font-size:1.0625rem;line-height:1.65}.reading .back{font-size:1rem}.reading form{margin:28px 0}.reading input{font-size:1rem;padding:12px;border:1px solid var(--field-border);border-radius:6px;width:100%;margin-bottom:16px}.reading .secondary{background:var(--field);color:var(--ink);border-color:var(--field-border)}.admin-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.admin-actions button{font-size:.9375rem;padding:12px}.preview{width:100%;height:650px;border:1px solid var(--line)}.admin-message{white-space:pre-wrap;font-family:monospace;font-size:.9375rem}
@media(max-width:1100px){.hero{gap:40px;grid-template-columns:1.25fr 1fr}.intro h1{font-size:clamp(3rem,5.2vw,3.875rem)}.form-row{flex-direction:column}.form-row button{align-self:flex-start;min-width:240px}.lead{font-size:1.125rem}.sunrise{height:350px}.sun{top:20px;width:min(260px,80%)}.horizon{top:220px;gap:15px}.inside-columns{gap:32px}}
@media(max-width:760px){:root{--gutter:24px}.masthead{min-height:82px}.brand{font-size:1.125rem;letter-spacing:-.5px}nav{gap:18px;font-size:.8125rem}.hero{grid-template-columns:minmax(0,1fr) clamp(100px,25vw,160px);padding:24px 0 30px;column-gap:18px;row-gap:16px}.intro{display:contents}.intro h1{grid-column:1;grid-row:1;font-size:clamp(2rem,6.4vw,3rem);letter-spacing:-.05em;line-height:1.12;margin:0}.hero .lead,.hero .schedule,.hero #signup{grid-column:1/-1}.hero .lead{margin:4px 0 0}.hero .schedule{margin:0 0 8px}.lead{font-size:1.125rem;line-height:1.6;max-width:28ch}.schedule{font-size:.875rem;margin-bottom:25px}.form-row button{width:100%;align-self:stretch;min-width:0}.consent{font-size:.875rem;line-height:1.6;margin-top:22px}.sunrise{grid-column:2;grid-row:1;height:160px;width:100%;align-self:center;justify-self:end}.sun{width:90%;top:8px}.horizon{top:88px;gap:7px}.horizon i{height:1.5px}.inside{padding:26px 0}.inside h2{font-size:1.5rem;margin-bottom:24px}.inside-columns{grid-template-columns:1fr;gap:0}.inside article{display:grid;grid-template-columns:1fr 1.3fr;gap:14px;padding:13px 0;border-top:1px solid var(--line)}.inside article:first-child{border-top:0;padding-top:0}.inside article:last-child{padding-bottom:0}.inside h3{font-size:1rem;margin:0;line-height:1.5}.inside article p{font-size:.9375rem;line-height:1.6}.site-footer{font-size:.8125rem;align-items:center;padding:18px 0 23px}.site-footer span{max-width:27ch}.site-footer a{min-height:44px}.reading{padding:38px 0 70px}.reading p,.reading li{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button{transition:none}}

@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#0b1019;--ink:#edf2fc;--muted:#adb9ce;--accent:#8aafff;--accent-hover:#a6c2ff;--button-ink:#101a30;--navy:#d5e2fa;--line:#2a3548;--wash:#111a29;--field:#111a29;--field-border:#52627c;--placeholder:#9eacc2;--disabled:#1e3154;--disabled-border:#354f7d;--disabled-ink:#b9cefa;--field-disabled:#141f31;--error:#ffaaa5;--sun-top:#4d7bf1;--sun-mid:#3156a0;--sun-fade:#101b31}}

.hero-detail{font-size:1rem;line-height:1.65;color:var(--muted);max-width:48ch;margin:0 0 18px}.sample-link{display:inline-flex;gap:10px;align-items:center;min-height:44px;margin-top:20px;font-size:.9375rem;font-weight:500}.sample-section{display:grid;grid-template-columns:1fr 1.7fr;align-items:center;gap:clamp(24px,5vw,80px);padding:clamp(56px,7vw,110px) 0;border-top:1px solid var(--line)}.eyebrow{font-size:.8125rem;font-weight:600;color:var(--accent);margin:0 0 20px}.sample-copy h2,.closing h2{font-size:clamp(1.75rem,3vw,2.75rem);font-weight:600;letter-spacing:-.045em;line-height:1.15;margin:0 0 22px}.sample-copy>p:not(.eyebrow):not(.sample-caption){font-size:1.0625rem;line-height:1.65;max-width:33ch;color:var(--muted);margin:0 0 18px}.sample-copy>a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:1rem;font-weight:500}.sample-copy .sample-caption{font-size:.8125rem;color:var(--muted);margin:20px 0 0}.device-preview{margin:0;min-width:0}.device-preview img{display:block;width:100%;height:auto}.device-preview figcaption{font-size:.8125rem;color:var(--muted);text-align:center;line-height:1.5;margin-top:12px}.closing{display:flex;align-items:center;justify-content:space-between;gap:48px;padding:64px 0 72px}.closing h2{font-size:clamp(1.75rem,2.5vw,2.25rem);margin-bottom:12px}.closing p{color:var(--muted);line-height:1.6;margin:0}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:54px;border-radius:6px;background:var(--accent);color:var(--button-ink);padding:15px 24px;font-weight:600;text-decoration:none;white-space:nowrap}.button-link:hover{background:var(--accent-hover)}
@media(max-width:760px){.hero .hero-detail{grid-column:1/-1;margin:0}.hero .sample-link{grid-column:1/-1;margin:0}.sample-section{grid-template-columns:1fr;gap:22px;padding:40px 0}.sample-copy h2 br{display:none}.sample-copy>p:not(.eyebrow):not(.sample-caption){max-width:45ch}.eyebrow{margin-bottom:14px}.device-preview{margin:0 -8px}.device-preview figcaption{font-size:.75rem}.closing{flex-direction:column;align-items:stretch;gap:24px;padding:40px 0}.button-link{white-space:normal;text-align:center}}

.confirmation{margin-inline:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100svh - 160px);text-align:center;max-width:580px;padding:48px 0 72px}.confirmation h1{margin-bottom:18px}.confirmation #result{max-width:46ch;margin:0 0 28px;color:var(--muted)}.confirmation>p:last-child{margin-top:28px;font-size:.9375rem}
.confirmation #confirm{--confirm:#1f5eff;--confirm-hover:#0f4ae6;background:var(--confirm);border-color:var(--confirm);color:#fff;min-width:260px;min-height:58px;font-size:1.0625rem;box-shadow:0 6px 20px rgb(31 94 255 / .35)}.confirmation #confirm:hover{background:var(--confirm-hover);border-color:var(--confirm-hover)}.confirmation #confirm:disabled{background:var(--disabled);border-color:var(--disabled-border);color:var(--disabled-ink);box-shadow:none}
@media(prefers-color-scheme:dark){.confirmation #confirm{--confirm:#2563ff;--confirm-hover:#0f4ae6;box-shadow:0 6px 24px rgb(37 99 255 / .5)}}
@media(max-width:760px){.confirmation #confirm{width:100%}}
.admin h1{margin-bottom:12px}.admin-intro{color:var(--muted);max-width:60ch;margin:0 0 28px}.admin-card{border:1px solid var(--line);border-radius:10px;padding:22px 24px;margin:0 0 18px;background:var(--wash)}.admin-card h2{font-size:1.25rem;letter-spacing:-.02em;margin:0 0 10px}.admin-card label{margin-top:12px}.admin-card input{margin-bottom:0}.admin .hint{font-size:.9375rem;line-height:1.55;color:var(--muted);margin:4px 0 12px;max-width:62ch}.admin .form-row button{min-width:140px}.admin-status{margin-top:16px;font-size:.9375rem}.admin-status p{margin:4px 0;line-height:1.5}.admin-status [data-tone=ok] strong{color:var(--ink)}.admin-status [data-tone=warn]{color:var(--muted)}.admin-status ul{margin:4px 0 0;padding-left:20px;line-height:1.55}.admin .admin-actions{margin:14px 0 0}.admin .admin-actions button{font-size:.9375rem;padding:12px 18px;min-height:46px}.admin button.danger{background:#c62828;border-color:#c62828;color:#fff}.admin button.danger:hover{background:#a51f1f}.admin details.admin-card summary{cursor:pointer;font-weight:600;font-size:1.0625rem;min-height:32px}.admin-tool{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;margin-top:16px}.admin-tool .hint{margin:0}.admin .preview{margin-top:16px;background:#fff;border-radius:6px}.admin-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(560px,calc(100% - 32px));margin:0;padding:14px 18px;border-radius:8px;background:var(--ink);color:var(--paper);font-size:.9375rem;line-height:1.5;box-shadow:0 8px 28px rgb(0 0 0 / .25)}.admin-toast[data-tone=error]{background:var(--error);color:#fff}
@media(max-width:760px){.admin-card{padding:18px}.admin-tool{grid-template-columns:1fr;gap:8px}}
.admin{margin-inline:auto}.switch-row{display:flex;align-items:center;gap:16px;margin-top:8px}.switch{position:relative;flex:none;width:64px;min-height:0;height:36px;padding:0;border-radius:999px;background:var(--field-border);border:1px solid var(--field-border);transition:background .15s ease}.switch:hover{background:var(--muted)}.switch-thumb{position:absolute;top:3px;left:3px;width:28px;height:28px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgb(0 0 0 / .3);transition:transform .15s ease}.switch[aria-checked=true]{background:#1f8a4c;border-color:#1f8a4c}.switch[aria-checked=true] .switch-thumb{transform:translateX(28px)}.switch:disabled{opacity:.45;cursor:not-allowed;background:var(--field-border)}.switch-label{font-size:1rem;line-height:1.5}.expand-button{margin:16px 0 0;font-size:.9375rem;padding:10px 16px;min-height:42px}.preview-overlay{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;background:var(--paper)}.preview-overlay[hidden]{display:none}.overlay-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px var(--gutter);border-bottom:1px solid var(--line);font-weight:600}.overlay-bar button{min-height:44px;padding:10px 18px}.preview-overlay iframe{flex:1;width:100%;border:0;background:#fff}body.no-scroll{overflow:hidden}
@media(prefers-reduced-motion:reduce){.switch,.switch-thumb{transition:none}}
.admin-why{white-space:pre-wrap;font-family:ui-monospace,Menlo,monospace;font-size:.8125rem;line-height:1.5;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:12px 14px;margin:16px 0 0;max-height:320px;overflow:auto}
.flow{width:100%;height:auto;display:block;margin:8px 0 12px;color:var(--muted)}.flow .n rect{fill:var(--paper);stroke:var(--field-border);stroke-width:1}.flow .n.accent rect{stroke:var(--accent)}.flow .n.ok rect{stroke:#1f8a4c}.flow .n.warn rect{stroke:#c98a12}.flow .box{fill:none;stroke:var(--field-border);stroke-dasharray:5 4}.flow text{text-anchor:middle;dominant-baseline:central;font-family:inherit}.flow .t{fill:var(--ink);font-size:15px;font-weight:600}.flow .s{fill:var(--muted);font-size:13px}.flow .a{stroke:currentColor;stroke-width:1.5}
.flow .l{text-anchor:start}


/* tokens:start (generated by npm run tokens from src/tokens.mjs, do not edit by hand) */
:root{--ink:#141414;--paper:#f1efe7;--card:#fffdf7;--signal:#38e36f;--text:#2b2b28;--muted:#5a574e;--line:#d6d2c5;--wash:#e8e5da;--night:#232321;--screen:#0f2a18;--error:#b3261e;--rail-1:#38e36f;--rail-2:#27b254;--rail-3:#0f6b35;--rail-4:#f0efe6;--rail-5:#6b685e;--font-heading:'Bricolage Grotesque','Helvetica Neue',Helvetica,Arial,sans-serif;--font-body:Newsreader,Georgia,'Times New Roman',serif;--font-screen:VT323,ui-monospace,monospace;--radius-small:4px;--radius-control:10px;--radius-card:16px;--radius-phone:40px;--border-thin:1px;--border-strong:2.5px;--shadow-button:4px 4px 0;--shadow-card:6px 6px 0}
@media(prefers-color-scheme:dark){:root{--ink:#141414;--paper:#f1efe7;--card:#fffdf7;--signal:#38e36f;--text:#2b2b28;--muted:#5a574e;--line:#d6d2c5;--wash:#e8e5da;--night:#232321;--screen:#0f2a18;--error:#b3261e;--rail-1:#38e36f;--rail-2:#27b254;--rail-3:#0f6b35;--rail-4:#f0efe6;--rail-5:#6b685e;--font-heading:'Bricolage Grotesque','Helvetica Neue',Helvetica,Arial,sans-serif;--font-body:Newsreader,Georgia,'Times New Roman',serif;--font-screen:VT323,ui-monospace,monospace;--radius-small:4px;--radius-control:10px;--radius-card:16px;--radius-phone:40px;--border-thin:1px;--border-strong:2.5px;--shadow-button:4px 4px 0;--shadow-card:6px 6px 0}}
/* tokens:end */
/* ===== Boot up brand (2026-11-05): ink, paper and one signal green. Light only, by design. ===== */
@font-face{font-family:'Bricolage Grotesque';src:url('/fonts/BricolageGrotesque-Variable.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Newsreader;src:url('/fonts/Newsreader-Variable.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:VT323;src:url('/fonts/VT323.woff2') format('woff2');font-display:swap}
:root,:root:where(*){--accent:var(--ink);--accent-hover:#000;--navy:var(--ink);--field:var(--card);--field-border:var(--ink);--placeholder:#77736a;--disabled:#e8e5da;--disabled-border:#b9b5a8;--disabled-ink:#4a4840;--field-disabled:#ebe8de;--button-ink:var(--paper);color-scheme:light;font-family:'Bricolage Grotesque',Geist,system-ui,sans-serif}
@media(prefers-color-scheme:dark){:root{color-scheme:light;--paper:#f1efe7;--ink:#141414;--muted:#5a574e;--accent:#141414;--accent-hover:#000;--button-ink:#f1efe7;--navy:#141414;--line:#d6d2c5;--wash:#e8e5da;--field:#fffdf7;--field-border:#141414;--placeholder:#77736a;--disabled:#e8e5da;--disabled-border:#b9b5a8;--disabled-ink:#4a4840;--field-disabled:#ebe8de;--error:#b3261e}}
body{background:var(--paper);color:var(--ink)}
a{color:var(--ink);text-decoration-thickness:2px;text-decoration-color:var(--signal)}
button,.button-link{background:var(--ink);color:var(--button-ink);border:2.5px solid var(--ink);border-radius:10px;box-shadow:4px 4px 0 var(--signal);transition:transform .12s cubic-bezier(.22,1,.36,1),box-shadow .12s cubic-bezier(.22,1,.36,1)}
button:hover,.button-link:hover{background:var(--ink);transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--signal)}
button:active,.button-link:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--signal)}
button:disabled{box-shadow:none;transform:none}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.form-row input,.reading input{border:2.5px solid var(--field-border);border-radius:10px;background:var(--field)}
.brand{font-weight:800;letter-spacing:-.045em;font-size:1.5rem}
.brand b{display:inline-block;background:var(--signal);border:2px solid var(--ink);border-radius:6px;padding:0 .28em;margin-left:.08em;font-weight:800}
nav a{font-weight:500}
h1,h2,h3{font-family:'Bricolage Grotesque',system-ui,sans-serif}
.reading h1,.intro h1{font-weight:800;letter-spacing:-.055em}
.reading p,.reading li,.lead{font-family:Newsreader,Georgia,serif}
.confirmation #confirm{--confirm:var(--ink);--confirm-hover:var(--ink);color:var(--paper);box-shadow:5px 5px 0 var(--signal)}
.confirmation #confirm:hover{box-shadow:6px 6px 0 var(--signal)}

.boot .hero{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center;padding:clamp(28px,4vw,56px) 0 clamp(56px,7vw,96px)}
.boot .intro h1{font-size:clamp(3rem,6.6vw,5.9rem);line-height:.94;margin:0 0 26px}
.boot .intro h1 mark{background:var(--signal);color:inherit;padding:0 .08em;border-radius:.08em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.boot .lead{font-size:clamp(1.2rem,1.7vw,1.4rem);line-height:1.5;max-width:30ch;margin:0 0 8px;color:#2b2b28}
.boot .schedule{color:var(--muted);margin:0 0 28px}
.boot .form-row button{min-width:0}
.boot .consent{color:var(--muted)}
.machine{margin:0;min-width:0}
.machine svg{display:block;width:100%;height:auto;max-width:560px;margin-left:auto}
.inside-dark{background:var(--ink);color:var(--paper);padding:clamp(56px,8vw,112px) 0;scroll-margin-top:0}
.inside-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.inside-dark h2{font-size:clamp(2.1rem,4.2vw,3.6rem);font-weight:800;letter-spacing:-.05em;line-height:1;margin:0 0 22px}
.inside-dark .sample-copy>p:not(.eyebrow):not(.sample-caption){font-family:Newsreader,Georgia,serif;font-size:1.25rem;line-height:1.55;color:#cfccc2;max-width:36ch;margin:0 0 26px}
.inside-dark .sample-copy>a{color:var(--paper);font-weight:600;font-size:1.0625rem;text-underline-offset:5px}
.phone{margin:0 auto;width:min(100%,380px);background:#2a2a28;border-radius:40px;padding:11px;box-shadow:0 30px 60px -30px rgb(56 227 111 / .45)}
.phone-screen{background:var(--card);color:var(--ink);border-radius:30px;overflow:hidden}
.phone-screen img{display:block;width:100%;height:auto;border-bottom:2px solid var(--ink)}
.phone-body{padding:16px 20px 22px}
.phone-date{font:700 .6875rem/1.3 'Bricolage Grotesque',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.inside-dark .phone-h{font:800 1.4rem/1.12 'Bricolage Grotesque',sans-serif;letter-spacing:-.035em;color:var(--ink);margin:0 0 16px;max-width:none}
.pill{display:inline-block;background:var(--signal);color:var(--ink);font:700 .6875rem/1.3 'Bricolage Grotesque',sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:4px}
.phone-body ul{margin:10px 0 0;padding-left:18px;font-family:Newsreader,Georgia,serif;font-size:1rem;line-height:1.5;color:#2b2b28}
.phone-body li{margin-bottom:5px}.phone-body li::marker{content:'> ';font-family:'Bricolage Grotesque',sans-serif;font-weight:800}
.steps{padding:clamp(56px,7vw,96px) 0 clamp(32px,4vw,48px)}
.steps h2{font-size:clamp(1.9rem,3.4vw,2.9rem);font-weight:800;letter-spacing:-.05em;line-height:1.05;margin:0 0 32px;max-width:18ch}
.steps ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.5vw,32px);counter-reset:step}
.steps li{counter-increment:step;background:var(--card);border:2.5px solid var(--ink);border-radius:16px;padding:22px 22px 24px;box-shadow:6px 6px 0 var(--ink)}
.steps li:nth-child(2){background:var(--signal)}
.steps li::before{content:counter(step,decimal-leading-zero);display:block;font:400 1.6rem/1 VT323,monospace;margin-bottom:14px}
.steps b{display:block;font-size:1.4rem;font-weight:800;letter-spacing:-.03em;margin-bottom:6px}
.steps span{font-family:Newsreader,Georgia,serif;font-size:1.0625rem;line-height:1.5;color:#2b2b28}
.boot .closing{border-top:2.5px solid var(--ink)}
.boot .closing h2{font-weight:800;letter-spacing:-.045em}
.boot .site-footer{border-top:1px solid var(--line)}
@media(max-width:860px){.boot .hero{grid-template-columns:1fr}.boot .intro{display:block}.machine{order:-1;max-width:330px;margin:0 auto}.inside-grid{grid-template-columns:1fr}.steps ol{grid-template-columns:1fr}.steps li{box-shadow:4px 4px 0 var(--ink)}}
@media(max-width:760px){.boot .intro h1{font-size:clamp(2.6rem,11vw,3.4rem);line-height:.96;margin-bottom:18px}.boot .hero{padding-top:8px;gap:20px}.brand{font-size:1.25rem}.boot .form-row button{width:100%}.brand,nav a{white-space:nowrap}.boot nav{gap:16px}}
/* Archive pages (2026-11-05). */
.archive{padding:clamp(24px,4vw,48px) 0 clamp(40px,6vw,72px);max-width:820px}
.archive h1{font-size:clamp(2.6rem,6vw,4.4rem);font-weight:800;letter-spacing:-.055em;line-height:.95;margin:0 0 14px}
.archive-lead{font-family:Newsreader,Georgia,serif;font-size:1.25rem;color:#2b2b28;margin:0 0 32px}
.archive-list{list-style:none;margin:0;padding:0;border-top:2.5px solid var(--ink)}
.archive-list li{border-bottom:1px solid var(--line)}
.archive-list a{display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:6px 24px;padding:18px 0;text-decoration:none;color:var(--ink)}
.archive-list a:hover span{text-decoration:underline;text-decoration-color:var(--signal);text-decoration-thickness:3px}
.archive-list time{font-size:.875rem;font-weight:600;letter-spacing:.02em;color:var(--muted);padding-top:4px}
.archive-list span{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1.3}
.archive-cta{margin-top:36px}
@media(max-width:640px){.archive-list a{grid-template-columns:1fr}}
/* "by Circuit Garden": the publisher, small next to the newsletter name (2026-11-05). */
.brand .tag{display:block;margin-top:3px;font-size:.6875rem;line-height:1;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.nav-cta{background:var(--ink);color:var(--paper);border:2.5px solid var(--ink);border-radius:10px;padding:8px 16px;min-height:44px;font-weight:700;text-decoration:none;box-shadow:3px 3px 0 var(--signal)}
.nav-cta:hover{text-decoration:none;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--signal)}

/* Atari-style rails at the very bottom of the start page (2026-11-05). */
.rails{overflow:hidden;line-height:0;background:var(--night);border-top:3px solid var(--ink)}
.rails-art{display:block;width:100%;height:clamp(120px,17vw,240px)}
.footer-links{display:flex;gap:20px;white-space:nowrap}
/* Polish: nicer line breaks in headings and paragraphs, without changing the layout. */
h1,h2,h3{text-wrap:balance}
p,li{text-wrap:pretty}
/* Archive search and filters, error pages (2026-11-05). */
.archive-filters,.archive-jump{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 14px}
.archive-filters label,.archive-jump label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;font-weight:600;margin:0}
.archive-search{flex:1 1 260px}
.archive-filters input,.archive-filters select,.archive-jump input{font:inherit;font-size:1rem;min-height:48px;padding:10px 14px;border:2.5px solid var(--ink);border-radius:var(--radius-control);background:var(--card);color:var(--ink)}
.archive-filters button,.archive-jump button{min-height:48px;padding:10px 20px}
.archive-jump{margin-bottom:28px}
.archive-count{font-size:1rem;margin:8px 0 18px}
.archive-list small{grid-column:2;font-family:Newsreader,Georgia,serif;font-size:1rem;line-height:1.5;color:var(--text)}
.archive-list mark{background:var(--signal);color:var(--ink);padding:0 2px}
.archive-empty{font-family:Newsreader,Georgia,serif;font-size:1.125rem}
.error-page{min-height:50vh}
.error-code{font-family:VT323,monospace;font-size:3rem;line-height:1;margin:0 0 8px}
@media(max-width:640px){.archive-list small{grid-column:1}.archive-filters label{flex:1 1 140px}}
.past-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:14px;font-weight:600}
/* Support card on the About page, after the one on exozero.net (2026-11-05). */
.support-card{display:grid;justify-items:start;gap:10px;margin:36px 0;padding:24px;background:var(--card);border:var(--border-strong) solid var(--ink);border-radius:var(--radius-card);box-shadow:var(--shadow-card) var(--ink);max-width:460px}
.support-card .avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--signal);border:var(--border-strong) solid var(--ink);font:800 1.5rem/1 'Bricolage Grotesque',sans-serif}
.reading .support-card h2{margin:4px 0 0;font-size:1.3rem}
.reading .support-card p{margin:0}
.support-card .button-link{gap:10px;margin-top:8px}
.support-card .button-link img{filter:invert(1)}
/* Keep "by Circuit Garden" on one line on phones: the link sits inside the sentence. */
.site-footer span:first-child a{display:inline;min-height:0;white-space:nowrap}
/* Phones: a smaller computer keeps the signup form above the fold (2026-11-05). */
@media(max-width:760px){.boot .machine{max-width:200px}.boot .hero{gap:12px;padding-top:0}.boot .intro h1{margin-bottom:14px}}
/* Phones: "AI Morning Brief by Circuit Garden" on its own line, the links on the next. */
@media(max-width:760px){.site-footer{flex-wrap:wrap;row-gap:6px}.site-footer span:first-child{flex-basis:100%}}
.form-help:empty{display:none}
/* Phones: a small pixel chevron on the bottom edge instead of consent text cut off by the fold. */
.scroll-hint{display:none}
@media(max-width:760px){
  .scroll-hint{display:flex;align-items:flex-end;justify-content:center;position:fixed;left:0;right:0;bottom:0;z-index:5;height:76px;padding-bottom:14px;background:linear-gradient(to bottom,color-mix(in oklab,var(--paper) 0%,transparent),var(--paper) 62%);color:var(--signal);transition:opacity .25s ease,transform .25s ease}
  .scroll-hint svg{box-sizing:content-box;padding:8px 14px;border-radius:999px;background:var(--ink);box-shadow:3px 3px 0 var(--signal)}
  .scroll-hint.is-hidden{opacity:0;transform:translateY(12px);pointer-events:none}
}
@media(max-width:760px) and (prefers-reduced-motion:no-preference){.scroll-hint:not(.is-hidden) svg{animation:nudge 1.6s ease-in-out infinite}@keyframes nudge{50%{transform:translateY(3px)}}}
/* Motion (2026-11-05): spring reveals. Hero plays on load (CSS only); the rest reveals on scroll
   via reveal.js, which adds .js-reveal so content stays visible without JavaScript. */
:root{--spring:cubic-bezier(.3,1.35,.55,1)}
@supports (transition-timing-function:linear(0,1)){:root{--spring:linear(0,0.067,0.224,0.416,0.606,0.772,0.902,0.993,1.05,1.079,1.087,1.081,1.067,1.051,1.034,1.02,1.008,1,0.996,0.993,0.992,0.993,0.994,0.996,0.997,0.998,0.999,1,1,1.001,1.001,1.001,1.001,1,1,1,1)}}
@media(prefers-reduced-motion:no-preference){
.boot .intro>*{animation:rise .95s var(--spring) both;animation-delay:calc(var(--i,0) * 70ms + 60ms)}
.boot .intro>:nth-child(2){--i:1}.boot .intro>:nth-child(3){--i:2}.boot .intro>:nth-child(4){--i:3}.boot .intro>:nth-child(5){--i:4}
.boot .machine{animation:pop 1.1s var(--spring) .2s both}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:translateY(18px) scale(.92) rotate(-2deg)}to{opacity:1;transform:none}}
.js-reveal [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .45s ease-out,transform .95s var(--spring);transition-delay:calc(var(--i,0) * 80ms)}
.js-reveal [data-reveal=pop]{transform:translateY(20px) scale(.94) rotate(-1.5deg)}
.js-reveal [data-reveal].is-in{opacity:1;transform:none}
}
