/* Technical direction: monospace type from Monaspace (renamed subsets, see fonts/MONASPACE-OFL.txt), a datasheet light theme and a terminal dark theme.
   Loaded last on every page, so it restyles without moving layout; grids and spacing stay in home.css and responsive.css. */
@font-face{font-family:"EDX Display";src:url("fonts/edx-display.woff2") format("woff2");font-weight:300 800;font-stretch:100% 125%;font-display:swap}
@font-face{font-family:"EDX Text";src:url("fonts/edx-text.woff2") format("woff2");font-weight:300 700;font-display:swap}

html body.home{--type-display:"EDX Display",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--type-text:"EDX Text",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--bg:#f4f4f0;--ink:#0e100e;--ink-soft:#3d433e;--ink-faint:#687069;--rule:#d7d9d2;--surface:#ebebe5;--surface-strong:#e1e2da;--accent:#fd7001;--accent-display:#d05a00;--accent-ink:#ad4700;--ok:#1f7a3a;--bad:#b3261e;--reading-size:clamp(1rem,.93rem + .25vw,1.125rem);--section-size:clamp(1.5rem,1.05rem + 1.4vw,2.375rem);font-family:var(--type-text);letter-spacing:0}
html[data-theme=dark] body.home{--bg:#0b0c0b;--ink:#e8ebe5;--ink-soft:#a9b1aa;--ink-faint:#7b847c;--rule:#262b27;--surface:#131513;--surface-strong:#1c1f1c;--accent:#ff7a1a;--accent-display:#ff7a1a;--accent-ink:#ff9a4d;--ok:#7fd88f;--bad:#ff6b5e}
html[data-theme=light]{background:#f4f4f0}
html[data-theme=dark]{background:#0b0c0b}
body.home ::selection{background:var(--accent);color:#0b0c0b}
body.home :is(a,button,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Display face for anything that labels, navigates or measures; text face for reading. */
body.home :is(h1,h2,h3,nav,.menu-toggle,.statement,.section-label,.text-link,.button,button[type=submit],footer,.slack-readout,.prompt,.field label,.form-card h3,.term-bar){font-family:var(--type-display)}
body.home :is(p,li,.lede,.kicker,input,textarea,.term){font-family:var(--type-text)}

body.home h1{font-weight:560;font-stretch:100%;letter-spacing:-.03em;line-height:1.05;word-spacing:0;text-transform:none}
body.home .hero-heading{text-align:left}
body.home .hero-heading h1{font-size:clamp(2.1rem,.8rem + 4.2vw,5.25rem);max-width:none;margin:0}
body.home .hero-heading h1 span{font-style:normal;color:var(--accent-display)}
body.home .hero-heading h1::after{content:"";display:inline-block;width:.55em;height:.74em;margin-left:.14em;vertical-align:-.02em;background:var(--accent)}
@media(prefers-reduced-motion:no-preference){body.home .hero-heading h1::after{animation:edx-cursor 1.1s steps(1) infinite}}
@keyframes edx-cursor{50%{opacity:0}}
body.home.content-page h1{font-size:clamp(2rem,1.05rem + 3vw,4.25rem);line-height:1.08}
body.home .prompt{margin:0 0 1.1rem;font-size:clamp(.8125rem,.77rem + .15vw,.9375rem);line-height:1.5;letter-spacing:0;color:var(--ink-faint);overflow-wrap:anywhere}
body.home .prompt b{font-weight:500;color:var(--accent-ink)}
body.home .prompt i{font-style:normal;color:var(--ink-soft)}
body.home .hero-heading .kicker{margin-top:1.25rem;font-size:clamp(1rem,.92rem + .35vw,1.25rem);line-height:1.5;letter-spacing:0;color:var(--ink-soft)}

body.home .section-copy .statement{font-size:var(--section-size);font-weight:540;line-height:1.16;letter-spacing:-.02em;color:var(--ink)}
body.home .section-copy p,body.home.content-page .section-copy ul li,body.home.content-page .lede{line-height:1.72;letter-spacing:0;color:var(--ink-soft)}
body.home.content-page .section-copy ul strong{font-family:var(--type-display);font-weight:540;letter-spacing:-.01em}
body.home .section-label>span:first-child:not(.section-name){font-size:.8125rem;letter-spacing:.02em;color:var(--accent-ink)}
body.home .section-label>span:first-child:not(.section-name)::before{content:"["}
body.home .section-label>span:first-child:not(.section-name)::after{content:"]"}
body.home .section-label .section-name,body.home:not(.content-page) .section-label h2{font-size:.8125rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
body.home.content-page .section-label h2{font-weight:560;letter-spacing:-.01em;color:var(--ink)}
body.home a.mail{color:var(--accent-ink);text-decoration:underline;text-underline-offset:.2em}

body.home nav a{font-size:.8125rem;font-weight:500;letter-spacing:.04em;text-transform:lowercase;color:var(--ink-soft)}
body.home nav a:hover{color:var(--accent-ink)}
body.home nav a[aria-current=page]{color:var(--ink);font-weight:600}
body.home nav a[aria-current=page]::before{content:">";margin-right:.6ch;color:var(--accent)}
body.home .menu-toggle{font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase}
body.home .theme-toggle{border-radius:0}
body.home .theme-toggle:hover{background:var(--surface-strong);color:var(--accent-ink)}
@media(max-width:64rem){body.home nav a{font-size:clamp(1.25rem,1rem + 1.5vw,1.75rem);letter-spacing:0}}

body.home .text-link{gap:.75rem;padding:.65rem 1rem;border:1px solid var(--ink);font-size:.8125rem;font-weight:560;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none}
body.home .text-link:hover{background:var(--accent);border-color:var(--accent);color:#0b0c0b}
body.home .home-section-actions{flex-wrap:wrap;justify-content:flex-start;gap:.75rem}
body.home :is(.button,button[type=submit]){border-radius:0;box-shadow:none;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
body.home :is(.button-primary,button[type=submit]){background:var(--accent);border-color:var(--accent);color:#0b0c0b}
body.home :is(.button-primary,button[type=submit]):hover{background:var(--ink);border-color:var(--ink);color:var(--bg);box-shadow:none}
body.home .button-secondary{background:transparent;border-color:var(--ink);color:var(--ink);box-shadow:none}
body.home .button-secondary:hover{background:transparent;border-color:var(--accent);color:var(--accent-ink)}

body.home footer{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
body.home footer a{letter-spacing:.02em;text-transform:none;color:var(--ink-soft)}
body.home footer a:hover{color:var(--accent-ink)}

body.home .slack-label{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
html[data-theme] body.home .slack-value{font-weight:560;letter-spacing:0;color:var(--bad)}
html[data-theme] body.home .slack-readout.is-met .slack-value{color:var(--ok)}

body.home .field label,body.home .pilot-dialog .field label{font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
body.home .field :is(input,textarea){border-radius:0;border-color:var(--rule);background:var(--bg);color:var(--ink)}
body.home .field :is(input,textarea):focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
body.home .pilot-dialog{border-radius:0;border-color:var(--rule);box-shadow:0 30px 80px #0008}
body.home .pilot-dialog::backdrop{background:#0b0c0bcc}
body.home .pilot-dialog h2{margin-bottom:.75rem;font-weight:560;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
body.home :is(.dialog-close,.form-card,.form-card .check,.video-embed){border-radius:0}
body.home .form-card .check{color:#0b0c0b}

/* The logo keeps its drawn typeface; the cipher glyphs share the display face. */
body.home .logo{--font-display:Montserrat,"Segoe UI",sans-serif}
.preloader{background:#0b0c0b}
html[data-theme=light] .preloader{background:#f4f4f0}
:is(.preloader,.logo) .glyph,:is(.preloader,.logo) .arc-cipher span{font-family:"EDX Display",ui-monospace,monospace}

/* Homepage terminal: always terminal-dark, whatever the page theme. */
body.home .term{--term-bg:#0b0c0b;--term-ink:#e8ebe5;--term-dim:#8b948c;--term-line:#262b27;margin-top:2rem;border:1px solid var(--term-line);background:var(--term-bg);color:var(--term-ink);font-size:.875rem;line-height:1.6;container-type:inline-size}
html[data-theme=dark] body.home .term{--term-bg:#101210;--term-line:#2c322d}
body.home .term:focus-within{border-color:#ff7a1a}
body.home .term-bar{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .9rem;border-bottom:1px solid var(--term-line);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--term-dim)}
body.home .term-bar i{font-style:normal;color:#ff7a1a}
body.home .term-screen{height:clamp(15rem,34vh,21rem);overflow:auto;padding:.9rem .9rem .25rem;white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-color:#3a403b transparent}
body.home .term-screen>div{min-height:1.6em}
body.home .term-banner{margin-bottom:.75rem;white-space:pre;overflow:hidden;font-size:min(.875rem,calc((100cqi - 2.25rem) / 36));line-height:1.1;color:#ff7a1a}
body.home .term .t-dim{color:var(--term-dim)}
body.home .term .t-acc{color:#ff7a1a}
body.home .term .t-ok{color:#8ae234}
body.home .term .t-err{color:#ff6b5e}
body.home .term .t-warn{color:#fce94f}
body.home .term a{color:#729fcf;text-underline-offset:.2em}
body.home .term-cmd{padding:0;border:0;background:none;font:inherit;color:#c49bd6;cursor:pointer;text-decoration:underline;text-decoration-color:#c49bd666;text-underline-offset:.2em}
body.home .term-cmd:hover{color:#e2c2f2;text-decoration-color:currentColor}
body.home .term-line{display:flex;align-items:baseline;gap:1ch;padding:.25rem .9rem .9rem}
body.home .term:not([data-ready]) .term-line{display:none}
body.home .term-prompt{flex-shrink:0;color:var(--term-ink)}
body.home .term-prompt b{font-weight:inherit;color:#ff7a1a}
body.home .term-input{flex:1;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;caret-color:#ff7a1a}
body.home .term-input:focus-visible{outline:none}
body.home .section-copy .term-hint{margin-top:.9rem;font-size:.8125rem;line-height:1.6;color:var(--ink-faint)}
body.home .term-hint kbd,body.home .section-copy code{padding:.05em .4em;border:1px solid var(--rule);font:inherit;font-size:.9em;color:var(--ink)}
@media(max-width:40rem){body.home .term{font-size:.8125rem}body.home .term-input{font-size:1rem}}
@media(hover:none){body.home .term-key-hint{display:none}}
