/* TMT TV002 · The Verification Observatory */
:root {
  --canvas:#06090d;--canvas-soft:#080d13;--surface-1:#0b1118;--surface-2:#111a24;--surface-3:#182431;
  --rule:#344552;--rule-control:#596b79;--rule-soft:rgba(167,178,188,.18);--ink:#f2f5f4;--ink-muted:#a7b2bc;--ink-faint:#84929e;
  --theory:#6ee7da;--theory-soft:rgba(110,231,218,.12);--postulate:#f2c66d;--verified:#7ae2a5;--failed:#ff6f7d;--blocked:#f58b73;
  --lean:#b59cff;--python:#63d7ff;--sage:#7de0a4;--mathematica:#f2b56c;
  --font-serif:"Iowan Old Style","Palatino Linotype",Palatino,Baskerville,Georgia,serif;--font-sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--font-mono:"SFMono-Regular",Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  --wrap:80rem;--wrap-wide:88rem;--measure:68ch;--gutter:clamp(1.25rem,4vw,4rem);--topbar-h:4.5rem;--radius:10px;--radius-lg:16px;--ease:cubic-bezier(.22,1,.36,1)
}
*,*::before,*::after{box-sizing:border-box}html{max-width:100%;overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar-h) + 1rem)}
body{max-width:100%;margin:0;min-width:0;overflow-x:clip;background:linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px),var(--canvas);background-size:72px 72px;color:var(--ink);font:1rem/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.menu-open{overflow:hidden}img,svg,canvas{max-width:100%}button,input,select{font:inherit}button{color:inherit}a{color:var(--theory);text-decoration-thickness:.08em;text-underline-offset:.2em}a:hover{color:var(--ink)}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:var(--font-serif);font-weight:500;letter-spacing:-.025em;line-height:1.06}code,pre,.mono{font-family:var(--font-mono)}::selection{color:var(--canvas);background:var(--theory)}
:focus-visible{outline:3px solid var(--postulate);outline-offset:4px;border-radius:3px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:20000;top:.75rem;left:.75rem;transform:translateY(-160%);padding:.7rem 1rem;border-radius:6px;background:#eeeae0;color:#172029;font-weight:700;transition:transform .15s}.skip-link:focus{transform:translateY(0)}
.eyebrow{display:block;margin:0 0 .8rem;color:var(--theory);font:600 .7rem/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.wrap,.wrap-wide,.wrap-narrow{width:100%;margin:0 auto;padding-inline:var(--gutter)}.wrap{max-width:var(--wrap)}.wrap-wide{max-width:var(--wrap-wide)}.wrap-narrow{max-width:55rem}
.section{padding-block:clamp(4.5rem,9vw,8rem)}.section-intro{margin-bottom:clamp(2.5rem,5vw,4.5rem)}.split-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);gap:clamp(2rem,7vw,7rem);align-items:end}.section-intro h2,.visually-balanced{margin:0;font-size:clamp(2.4rem,5.3vw,5rem)}.section-intro h2 em,.visually-balanced em{color:var(--ink-muted);font-weight:300}.section-intro>p,.split-intro>p{margin:0 0 .4rem;color:var(--ink-muted);font-size:clamp(1rem,1.5vw,1.16rem)}.section-intro>p strong{color:var(--ink)}
[data-reveal]{opacity:1;transform:none}.reveal-ready [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease)}.reveal-ready [data-reveal].is-visible{opacity:1;transform:none}

/* invitation gate */
html.auth-pending body>*:not(#auth-gate):not(.noscript-gate){display:none!important}.noscript-gate,.auth-overlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 78% 22%,rgba(110,231,218,.13),transparent 28rem),radial-gradient(circle at 18% 78%,rgba(242,198,109,.1),transparent 24rem),var(--canvas)}.noscript-gate{z-index:10001}.noscript-card,.auth-card{width:min(100%,29rem);border:1px solid var(--rule);border-top-color:var(--theory);border-radius:var(--radius-lg);padding:clamp(2rem,7vw,3.25rem);background:var(--surface-1);box-shadow:0 30px 90px rgba(0,0,0,.55);text-align:left}.auth-card::before,.noscript-card::before{content:"TV002 · PRIVATE RESEARCH PREVIEW";display:block;margin-bottom:2.4rem;color:var(--theory);font:600 .65rem var(--font-mono);letter-spacing:.14em}.auth-title,.noscript-title{display:block;margin:0;color:var(--ink);font:600 2rem/1.08 var(--font-sans);letter-spacing:-.03em}.auth-subtitle{margin:.4rem 0 0;color:var(--ink-muted);font-family:var(--font-serif);font-style:italic}.auth-header{margin-bottom:2rem}.auth-notice,.noscript-gate p{color:var(--ink-muted);font-size:.9rem}.auth-label{display:block;margin-bottom:.5rem;color:var(--ink);font-size:.78rem;font-weight:600}.auth-input-group{display:grid;grid-template-columns:1fr auto}.auth-input-group input{min-width:0;border:1px solid var(--rule-control);border-right:0;border-radius:7px 0 0 7px;padding:.85rem 1rem;background:var(--canvas);color:var(--ink)}.auth-input-group input:focus{border-color:var(--theory);box-shadow:inset 0 0 0 1px var(--theory)}.auth-input-group button{border:1px solid var(--theory);border-radius:0 7px 7px 0;padding:.85rem 1.2rem;background:var(--theory);color:#04100f;font-weight:700;cursor:pointer}.auth-input-group button:disabled{cursor:wait;opacity:.72}.auth-remember{display:flex;align-items:flex-start;gap:.5rem;margin-top:.9rem;color:var(--ink-muted);font-size:.78rem;cursor:pointer}.auth-remember input{margin-top:.16rem;accent-color:var(--theory)}.auth-error{min-height:1.3em;margin:.75rem 0 0;color:var(--failed);font-size:.8rem}.auth-footer{margin:2rem 0 0;color:var(--ink-faint);font-size:.75rem}.auth-shake{animation:auth-shake .35s ease}@keyframes auth-shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

/* chrome */
.topbar{position:sticky;top:0;z-index:1000;height:var(--topbar-h);border-bottom:1px solid var(--rule-soft);background:rgba(6,9,13,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.topbar-inner{width:100%;max-width:var(--wrap-wide);height:100%;margin:0 auto;padding-inline:var(--gutter);display:flex;align-items:center;gap:2rem}.topbar-brand{display:inline-flex;align-items:center;gap:.75rem;color:var(--ink);text-decoration:none;white-space:nowrap}.topbar-brand>span:last-child{display:grid}.topbar-brand strong{font-size:.95rem;letter-spacing:.08em}.topbar-brand small{color:var(--ink-faint);font:500 .58rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.brand-mark{position:relative;width:1.8rem;height:1.8rem;display:inline-grid;place-items:center}.brand-mark::before{content:"";width:1.35rem;height:1.35rem;border:1px solid var(--theory);border-radius:50%}.brand-mark i{position:absolute;width:1.75rem;height:1px;background:var(--rule);transform-origin:center}.brand-mark i:nth-child(2){transform:rotate(60deg)}.brand-mark i:nth-child(3){transform:rotate(-60deg)}.topbar-nav{margin-left:auto;display:flex;align-items:center;gap:.1rem}.topbar-nav a{position:relative;padding:.55rem .72rem;color:var(--ink-muted);font-size:.78rem;font-weight:600;text-decoration:none;white-space:nowrap}.topbar-nav a::after{content:"";position:absolute;left:.72rem;right:.72rem;bottom:.2rem;height:1px;transform:scaleX(0);transform-origin:left;background:var(--theory);transition:transform .2s var(--ease)}.topbar-nav a:hover,.topbar-nav a[aria-current=page]{color:var(--ink)}.topbar-nav a:hover::after,.topbar-nav a[aria-current=page]::after{transform:scaleX(1)}.preview-lock{min-height:2.1rem;margin-left:.45rem;border:1px solid var(--rule-control);border-radius:6px;padding:.35rem .62rem;background:transparent;color:var(--ink-faint);font:600 .65rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.preview-lock:hover{border-color:var(--postulate);color:var(--postulate)}.menu-toggle{display:none;width:2.7rem;height:2.7rem;margin-left:auto;border:1px solid var(--rule);border-radius:8px;background:var(--surface-1);cursor:pointer}.menu-toggle>span:not(.sr-only){display:block;width:1rem;height:1px;margin:.23rem auto;background:var(--ink)}.protocol-banner{position:relative;z-index:3000;padding:.7rem var(--gutter);border-bottom:1px solid rgba(242,198,109,.4);background:#33280f;color:#f8dea2;font-size:.82rem}
.button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:2.9rem;border:1px solid var(--rule);border-radius:7px;padding:.68rem 1.05rem;background:var(--surface-1);color:var(--ink);font:600 .82rem var(--font-sans);text-decoration:none;cursor:pointer;transition:transform .18s var(--ease),border-color .18s,background .18s}.button:hover,.btn:hover{transform:translateY(-2px);border-color:var(--ink-muted);color:var(--ink);text-decoration:none}.button-primary,.btn-primary{border-color:var(--theory);background:var(--theory);color:#04110f}.button-primary:hover,.btn-primary:hover{border-color:#a5fff4;background:#a5fff4;color:#04110f}.btn-ghost{background:transparent}.btn-small{min-height:2.1rem;padding:.38rem .72rem;font-size:.72rem}.text-link{color:var(--theory);font-size:.82rem;font-weight:600}.section-action{margin-top:2.25rem;text-align:right}

/* hero */
.observatory-hero{position:relative;min-height:min(54rem,calc(100svh - var(--topbar-h)));overflow:hidden;border-bottom:1px solid var(--rule-soft);background:var(--canvas)}.hero-plate{position:absolute;inset:0;background:url("../img/hero_observatory.webp") center/cover no-repeat;opacity:.96}.hero-plate::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,9,13,.18),rgba(6,9,13,.28) 32%,rgba(6,9,13,.02) 68%),linear-gradient(180deg,rgba(6,9,13,.05),rgba(6,9,13,.7))}.hero-grid{position:relative;z-index:1;width:100%;max-width:var(--wrap-wide);min-height:inherit;margin:0 auto;padding:clamp(4.5rem,10vh,7rem) var(--gutter) 3rem;display:grid;grid-template-columns:minmax(0,.85fr) minmax(18rem,1.15fr);align-items:center}.hero-copy{max-width:42rem}.hero-state{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:clamp(2.5rem,6vh,4.5rem)}.hero-state span{padding:.3rem .55rem;border:1px solid var(--rule);border-radius:4px;background:rgba(6,9,13,.65);color:var(--ink-muted);font:600 .62rem var(--font-mono);letter-spacing:.09em;text-transform:uppercase}.hero-state .is-caution{border-color:rgba(242,198,109,.42);color:var(--postulate)}.hero-copy h1{max-width:11ch;margin:0;font-size:clamp(4rem,8.4vw,7.7rem);font-weight:600;letter-spacing:-.06em;line-height:.77}.hero-copy h1 em{color:var(--theory);font-weight:300}.hero-lede{max-width:38rem;margin:2.35rem 0 0;color:#c8d1d5;font:clamp(1.13rem,2.2vw,1.48rem)/1.45 var(--font-serif)}.hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:2rem}.hero-annotation{align-self:end;justify-self:end;width:min(100%,24rem);margin-bottom:1rem;padding:1.1rem 1.2rem;border:1px solid rgba(167,178,188,.18);border-left-color:var(--postulate);background:rgba(6,9,13,.72);backdrop-filter:blur(9px)}.hero-annotation p{margin:0 0 .7rem;color:var(--ink);font-size:.9rem}.hero-annotation small{display:block;color:var(--ink-faint);font:.66rem/1.55 var(--font-mono)}
.state-ledger{border-bottom:1px solid var(--rule-soft);background:var(--surface-1)}.state-ledger-inner{max-width:var(--wrap-wide);margin:0 auto;padding-inline:var(--gutter);display:grid;grid-template-columns:repeat(5,1fr)}.state-ledger-inner>div{min-width:0;padding:1.35rem 1.25rem;border-right:1px solid var(--rule-soft)}.state-ledger-inner>div:first-child{border-left:1px solid var(--rule-soft)}.state-ledger strong{display:block;color:var(--ink);font:500 1.7rem/1 var(--font-serif)}.state-ledger span{display:block;margin-top:.35rem;color:var(--ink-muted);font-size:.72rem;font-weight:600}.state-ledger small{display:block;margin-top:.16rem;color:var(--ink-faint);font:.59rem var(--font-mono)}.state-ledger .ledger-alert strong{color:var(--postulate);font:600 1rem var(--font-mono);letter-spacing:.09em}

/* roots */
.roots-section{background:var(--canvas-soft)}.root-console{display:grid;grid-template-columns:minmax(15rem,.72fr) minmax(0,1.28fr);border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-1)}.root-console-head{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--rule);background:var(--canvas)}.root-console-head span{color:var(--theory);font:600 .65rem var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.root-console-head small{color:var(--ink-faint);font-size:.75rem}.root-tabs{display:flex;flex-direction:column;border-right:1px solid var(--rule)}.root-tabs button{position:relative;min-height:8.5rem;border:0;border-bottom:1px solid var(--rule);padding:1.4rem 1.5rem;background:transparent;text-align:left;cursor:pointer}.root-tabs button:last-child{border-bottom:0}.root-tabs button::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:transparent}.root-tabs button[aria-selected=true]{background:var(--surface-2)}.root-tabs button[aria-selected=true]::before{background:var(--postulate)}.root-tabs button>span{display:block;margin-bottom:.4rem;color:var(--postulate);font:600 .68rem var(--font-mono);letter-spacing:.08em}.root-tabs button strong{display:block;color:var(--ink);font:500 1.12rem/1.25 var(--font-serif)}.root-tabs button small{display:block;margin-top:.8rem;color:var(--ink-faint);font:500 .59rem var(--font-mono);text-transform:uppercase}.root-tab-placeholder,.root-tab-unavailable{min-height:8.5rem;padding:1.4rem 1.5rem;border-bottom:1px solid var(--rule);background:linear-gradient(100deg,transparent 20%,rgba(110,231,218,.045) 42%,transparent 64%);background-size:220% 100%;animation:root-pulse 1.8s ease-in-out infinite}.root-tab-placeholder:last-child{border-bottom:0}.root-tab-placeholder span,.root-tab-unavailable span{display:block;color:var(--postulate);font:600 .68rem var(--font-mono);letter-spacing:.08em}.root-tab-placeholder strong,.root-tab-unavailable strong{display:block;margin-top:.55rem;color:var(--ink-faint);font:500 1rem var(--font-serif)}@keyframes root-pulse{50%{background-position:100% 0}}.root-detail{min-height:25.5rem;padding:clamp(2rem,5vw,4.2rem);display:grid;grid-template-columns:minmax(13rem,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,4rem);align-items:center}.root-selection{grid-column:1/-1;margin:0;color:var(--ink-faint);font:600 .62rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.root-loading,.root-load-error{grid-column:1/-1;align-self:center;justify-self:center;max-width:31rem;text-align:center}.root-loading>span{display:block;width:5rem;height:1px;margin:0 auto 1.5rem;background:linear-gradient(90deg,transparent,var(--theory),transparent);animation:root-pulse 1.8s ease-in-out infinite}.root-loading strong{display:block;color:var(--ink);font:500 1.45rem var(--font-serif)}.root-loading small,.root-load-error small{display:block;margin-top:.65rem;color:var(--ink-faint);font-size:.75rem}.root-load-error>span{color:var(--failed);font:600 .65rem var(--font-mono);letter-spacing:.12em}.root-load-error h3{margin:.75rem 0;font-size:1.8rem}.root-load-error p{color:var(--ink-muted)}.root-load-error .btn{margin-top:1.2rem}.root-equation{display:grid;gap:1rem}.root-equation span{color:var(--postulate);font:600 .72rem var(--font-mono);letter-spacing:.1em}.root-equation strong{color:var(--ink);font:400 clamp(1.7rem,3.8vw,3.2rem)/1.12 var(--font-serif)}.root-copy .status-line{color:var(--postulate);font:600 .62rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.root-copy h3{margin:.7rem 0 1rem;font-size:clamp(1.8rem,3vw,2.6rem)}.root-copy>p{color:var(--ink-muted)}.nonconsequence{margin-top:1.8rem;padding-top:1.1rem;border-top:1px solid var(--rule)}.nonconsequence strong{color:var(--blocked);font:600 .68rem var(--font-mono);letter-spacing:.09em;text-transform:uppercase}.nonconsequence p{margin:.55rem 0 0;color:var(--ink-faint);font-size:.83rem}
.branch-grammar{margin-top:1.5rem;display:grid;grid-template-columns:minmax(13rem,.7fr) minmax(6rem,.25fr) minmax(0,1.5fr);align-items:center;gap:1rem;border:1px solid var(--rule);border-radius:var(--radius-lg);padding:clamp(1.5rem,4vw,2.7rem);background:var(--canvas)}.grammar-source{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.25rem 1rem}.grammar-id{grid-row:1/span 2;display:grid;place-items:center;width:3.7rem;aspect-ratio:1;border:1px solid var(--theory);border-radius:50%;color:var(--theory);font:500 1.2rem var(--font-serif)}.grammar-source strong{font:500 1rem var(--font-serif)}.grammar-source small{color:var(--ink-faint);font:.6rem var(--font-mono);text-transform:uppercase}.grammar-flow{position:relative;display:block;height:1px;background:linear-gradient(90deg,var(--theory),var(--postulate))}.grammar-flow::after{content:"";position:absolute;right:0;top:50%;width:.55rem;height:.55rem;border-top:1px solid var(--postulate);border-right:1px solid var(--postulate);transform:translateY(-50%) rotate(45deg)}.grammar-outputs{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.grammar-outputs>div{min-height:6rem;padding:1rem;border:1px solid var(--rule);background:var(--surface-1)}.grammar-outputs>div span{display:block;color:var(--theory);font:600 .63rem var(--font-mono);letter-spacing:.09em}.grammar-outputs>div strong{display:block;margin-top:.55rem;color:var(--ink);font:500 .88rem/1.3 var(--font-serif)}.grammar-outputs>p{grid-column:1/-1;margin:0;color:var(--ink-faint);font-size:.72rem}

/* reader routes */
.route-section{border-block:1px solid var(--rule-soft);background:var(--surface-1)}.route-section>.wrap>.eyebrow{text-align:center}.route-section .visually-balanced{max-width:16ch;margin:0 auto clamp(2.5rem,5vw,4rem);text-align:center}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden}.route-card{position:relative;min-height:26rem;padding:clamp(1.5rem,3vw,2.5rem);border-right:1px solid var(--rule);background:var(--canvas-soft);color:var(--ink);text-decoration:none;overflow:hidden;transition:background .25s}.route-card:last-child{border-right:0}.route-card:hover{background:var(--surface-2);color:var(--ink)}.route-number{color:var(--ink-faint);font:600 .68rem var(--font-mono)}.route-card h3{margin:2.2rem 0 .8rem;font-size:clamp(1.7rem,3vw,2.25rem)}.route-card p{min-height:5rem;color:var(--ink-muted);font-size:.92rem}.route-glyph{position:relative;width:100%;height:7.5rem;margin-top:2rem}.route-glyph i{position:absolute;display:block}.route-book i{left:10%;width:68%;height:1px;background:var(--rule)}.route-book i:nth-child(1){top:18%}.route-book i:nth-child(2){top:48%;width:82%;background:var(--theory)}.route-book i:nth-child(3){top:78%;width:52%}.route-book::after{content:"01 — 56";position:absolute;right:4%;top:42%;color:var(--theory);font:.6rem var(--font-mono)}.route-path i{width:1.1rem;aspect-ratio:1;border:1px solid var(--theory);border-radius:50%;top:48%}.route-path i:nth-child(1){left:8%}.route-path i:nth-child(2){left:45%;top:18%;border-color:var(--postulate)}.route-path i:nth-child(3){right:10%;top:68%}.route-path::before,.route-path::after{content:"";position:absolute;height:1px;background:var(--rule);transform-origin:left}.route-path::before{left:13%;top:53%;width:36%;transform:rotate(-17deg)}.route-path::after{left:50%;top:27%;width:40%;transform:rotate(23deg)}.route-rails i{left:5%;right:5%;height:1px;background:currentColor}.route-rails i:nth-child(1){top:18%;color:var(--lean)}.route-rails i:nth-child(2){top:39%;color:var(--python)}.route-rails i:nth-child(3){top:60%;color:var(--sage)}.route-rails i:nth-child(4){top:81%;color:var(--mathematica)}.route-rails i::after{content:"";position:absolute;right:12%;top:-3px;width:7px;height:7px;border:1px solid currentColor;border-radius:50%;background:var(--canvas-soft)}
