/* ═══════════════════════════════════════════════════════════════════════
   QANOVRA — „Prüfstand“
   Porzellan-Blueprint · Ultramarin als einziger Akzent · Tiefsee-Bänder
   Display: Jost (wie die Wortmarke) · Text: Manrope · Daten: Azeret Mono · CJK: Systemschriften
   Signatur: das Kanonisierungsfeld — Streuung, die immer dasselbe Gitter bildet
   ═══════════════════════════════════════════════════════════════════════ */
/* Dunkel ist der Standard — die Marke lebt auf Schwarz (siehe Explorer-Variante). */
:root{
  --bg:#0A0A0B; --surface:#111113; --surface-hi:#18181B;
  --fg:#F5F5F6; --muted:#8B8B92; --rule:#26262B;
  --accent:#FFFFFF; --accent-soft:rgba(255,255,255,.055); --accent-glow:rgba(255,255,255,.09);
  --band:#050506; --band-fg:#E9E9EB; --band-muted:#8B8B92; --band-rule:rgba(255,255,255,.085);
  --bar-bg:#050506; --bar-fg:#75757C; --live:#F5F5F6;
  --shadow:0 30px 80px -46px rgba(0,0,0,.9);
  --maxw:1220px; --ease:cubic-bezier(.2,.7,.25,1); --ease-out:cubic-bezier(.16,1,.3,1);
}
[data-theme="light"]{
  --bg:#F1F1F2; --surface:#FAFAFA; --surface-hi:#FFFFFF;
  --fg:#0A0A0B; --muted:#6C6C74; --rule:#DEDEE2;
  --accent:#0A0A0B; --accent-soft:rgba(10,10,11,.045); --accent-glow:rgba(10,10,11,.06);
  --band:#0A0A0B; --band-fg:#E9E9EB; --band-muted:#8B8B92; --band-rule:rgba(255,255,255,.09);
  --bar-bg:#0A0A0B; --bar-fg:#8B8B92; --live:#0A0A0B;
  --shadow:0 30px 70px -46px rgba(0,0,0,.32);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:112px}
body{margin:0;background:var(--bg);color:var(--fg);font-family:"Manrope",system-ui,sans-serif;
  font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background .4s var(--ease),color .4s var(--ease)}
html[lang="zh"] body{font-family:var(--font-cjk);line-height:1.85}
html[lang="zh"] h1,html[lang="zh"] h2,html[lang="zh"] h3{font-family:var(--font-cjk);font-weight:900;letter-spacing:-.01em}
::selection{background:var(--accent);color:#fff}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--rule);border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--accent)}
.wrap{width:min(100% - 40px,var(--maxw));margin-inline:auto}
h1,h2,h3{font-family:"Jost",sans-serif;margin:0}
h1{font-weight:200;font-size:clamp(1.85rem,4.4vw,3.7rem);line-height:1.2;letter-spacing:.155em;text-transform:uppercase}
h2{font-weight:300;font-size:clamp(1.3rem,2.7vw,2.15rem);line-height:1.24;letter-spacing:.145em;text-transform:uppercase}
h3{font-weight:400;font-size:1.02rem;line-height:1.4;letter-spacing:.055em;text-transform:none}
p{margin:0 0 1rem}a{color:inherit}
.lead{font-size:clamp(1rem,1.4vw,1.16rem);color:var(--muted);max-width:62ch}
.mono,.label,.ver{font-family:"Azeret Mono",ui-monospace,monospace}
.label{font-size:.63rem;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.75rem}
.label::before{content:"";width:26px;height:1px;background:var(--muted);flex:none;opacity:.7}

/* ── Utility-Bar, Kopfzeile, Fortschritt ───────────────────────── */
.util{background:var(--bar-bg);color:var(--bar-fg);transition:background .4s var(--ease)}
.util .wrap{display:flex;align-items:center;gap:1.3rem;height:36px;font-family:"Azeret Mono",monospace;font-size:.68rem;letter-spacing:.08em}
.util a{text-decoration:none;color:var(--bar-fg);transition:color .2s;white-space:nowrap;position:relative}
.util a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;background:currentColor;transition:right .3s var(--ease-out)}
.util a:hover{color:#fff}.util a:hover::after{right:0}
.util .sep{margin-left:auto}
.util .dot{width:7px;height:7px;border-radius:50%;background:var(--live);display:inline-block;margin-right:.4rem;position:relative}
.util .dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--live);animation:ping 2.4s ease-out infinite}
@keyframes ping{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(2.6);opacity:0}}
header{position:sticky;top:0;z-index:70;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--rule);
  transition:height .3s var(--ease),box-shadow .3s var(--ease),background .4s var(--ease)}
header.condensed{box-shadow:0 10px 30px -22px rgba(0,0,0,.55)}
.nav{display:flex;align-items:center;gap:1rem;height:64px;transition:height .3s var(--ease)}
header.condensed .nav{height:54px}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--accent);transition:width .1s linear;z-index:2}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;margin-right:auto}
.brand .mark{width:26px;height:26px;flex:none;transition:transform .8s var(--ease-out)}
.brand:hover .mark{transform:rotate(60deg)}
.brand .wm{font-family:"Jost",sans-serif;font-weight:300;font-size:1.02rem;letter-spacing:.36em;padding-left:.06em}
.nav-links{display:flex;gap:1.15rem;list-style:none;margin:0;padding:0}
.nav-links a{font-size:.82rem;text-decoration:none;color:var(--muted);transition:color .2s;white-space:nowrap;position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:var(--accent);transition:right .32s var(--ease-out)}
.nav-links a:hover{color:var(--fg)}.nav-links a:hover::after{right:0}
.nav-links a.active{color:var(--fg)}.nav-links a.active::after{right:0}
.switchbar{display:flex;gap:.5rem;align-items:center}
.pill{display:flex;border:1px solid var(--rule);background:var(--surface)}
.pill button{font-family:"Azeret Mono",monospace;font-size:.66rem;letter-spacing:.08em;padding:.42rem .55rem;
  background:none;border:0;color:var(--muted);cursor:pointer;transition:.2s;white-space:nowrap}
.pill button + button,.pill a + a{border-left:1px solid var(--rule)}
.pill a{font-family:"Azeret Mono",monospace;font-size:.66rem;letter-spacing:.08em;padding:.42rem .55rem;
  color:var(--muted);text-decoration:none;transition:.2s;display:grid;place-items:center}
.pill a:hover{color:var(--fg)}
.pill a[aria-current="true"]{background:var(--fg);color:var(--bg)}
.pill button:hover{color:var(--fg)}
.pill button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.pill.mode button[aria-pressed="true"]{background:var(--fg);color:var(--bg);font-weight:500}
.iconbtn{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--rule);background:var(--surface);
  color:var(--muted);cursor:pointer;transition:.25s}
.iconbtn:hover{color:var(--accent);border-color:var(--accent)}
.iconbtn svg{width:15px;height:15px}
.nav-toggle{display:none;background:var(--surface);border:1px solid var(--rule);color:var(--fg);width:36px;height:32px;cursor:pointer}

/* ── Hero + Canvas-Signatur ───────────────────────────────────── */
.hero{position:relative;padding-top:clamp(46px,6vw,88px);padding-bottom:clamp(28px,3.5vw,46px)}
#lattice{position:absolute;inset:-30px 0 auto 0;width:100%;height:min(660px,78vh);z-index:0;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 86% 82% at 60% 44%,#000 30%,transparent 82%);
  mask-image:radial-gradient(ellipse 86% 82% at 60% 44%,#000 30%,transparent 82%)}
.hero > *{position:relative;z-index:1}
.hero h1{margin:1.05rem 0 1.35rem;max-width:16ch}
.hero h1 em{font-style:normal;opacity:.44}
.line{display:block;overflow:hidden}
.line > span{display:block;transform:translateY(102%);transition:transform 1.05s var(--ease-out)}
.ready .line > span{transform:none}
.ready .line:nth-child(2) > span{transition-delay:.09s}
.fade-up{opacity:0;transform:translateY(14px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.ready .fade-up{opacity:1;transform:none}
.ready .d1{transition-delay:.22s}.ready .d2{transition-delay:.32s}.ready .d3{transition-delay:.42s}.ready .d4{transition-delay:.52s}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.9rem}
.hero-meta{display:flex;gap:2.1rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--rule)}
.meta-item{display:grid;gap:.2rem}
.meta-item .v{font-family:"Jost",sans-serif;font-weight:700;font-size:1.22rem}
html[lang="zh"] .meta-item .v{font-family:var(--font-cjk);font-weight:700}
.meta-item .k{font-family:"Azeret Mono",monospace;font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

.netstrip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);background:var(--surface);margin-top:1.6rem}
.net{padding:1rem 1.2rem;display:grid;gap:.15rem}
.net + .net{border-left:1px solid var(--rule)}
.net .k{font-family:"Azeret Mono",monospace;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.net .v{font-family:"Azeret Mono",monospace;font-size:1.02rem}

/* ── Prüfketten-Rail ──────────────────────────────────────────── */
.rail-block{border:1px solid var(--rule);background:var(--surface);margin-top:clamp(26px,3.5vw,46px);position:relative;box-shadow:var(--shadow)}
.rail-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.rail-head .t{font-family:"Azeret Mono",monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}
.rail-head .c{font-family:"Azeret Mono",monospace;font-size:.7rem;color:var(--muted)}
.rail-scroll{overflow-x:auto;padding:1.1rem 1.1rem 1.2rem}
.lane{display:grid;grid-template-columns:158px 1fr;align-items:center;gap:1rem;min-width:760px}
.lane + .lane{margin-top:.55rem}
.lane-name{font-family:"Azeret Mono",monospace;font-size:.69rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[lang="zh"] .lane-name{font-family:var(--font-cjk);font-size:.8rem}
.ticks{display:flex;gap:4px;border-bottom:1px solid var(--rule);padding-bottom:.5rem}
.tick{flex:1 1 0;min-width:9px;height:32px;background:var(--accent-soft);border:0;border-top:1.5px solid var(--fg);
  cursor:pointer;padding:0;transition:background .18s,transform .28s var(--ease-out);transform-origin:bottom}
.tick:hover{background:var(--accent);transform:scaleY(1.22)}
.tick[aria-pressed="true"]{background:var(--accent);transform:scaleY(1.22)}
.tick[data-frozen="1"]{border-top-color:var(--fg);background:color-mix(in srgb,var(--fg) 12%,transparent)}
.tick[data-frozen="1"]:hover,.tick[data-frozen="1"][aria-pressed="true"]{background:var(--fg)}
#tip{position:fixed;z-index:90;pointer-events:none;opacity:0;transform:translate(-50%,-140%);
  font-family:"Azeret Mono",monospace;font-size:.68rem;letter-spacing:.06em;padding:.34rem .55rem;
  background:var(--fg);color:var(--bg);white-space:nowrap;transition:opacity .18s}
#tip.on{opacity:1}
.readout{border-top:1px solid var(--rule);padding:1rem 1.1rem;display:grid;grid-template-columns:auto auto 1fr auto;gap:.35rem 1.6rem;align-items:baseline}
.readout.swap{animation:swapin .4s var(--ease-out)}
@keyframes swapin{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.readout .ro-k{font-family:"Azeret Mono",monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.readout .ro-v{font-family:"Azeret Mono",monospace;font-size:.85rem}
.readout .ro-code{font-family:"Jost",sans-serif;font-weight:700;font-size:.95rem}
html[lang="zh"] .readout .ro-code{font-family:var(--font-cjk)}
.badge{font-family:"Azeret Mono",monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--fg);padding:.2rem .45rem;white-space:nowrap}
.badge.frozen{background:var(--fg);color:var(--bg)}
.badge.soon{border-color:var(--muted);color:var(--muted)}
.badge.done{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.badge.now{border-color:var(--fg);color:var(--fg)}

/* ── Abschnitte ───────────────────────────────────────────────── */
.section{padding-block:clamp(58px,7vw,106px);border-top:1px solid var(--rule)}
.section-head{max-width:70ch;display:grid;gap:1rem;margin-bottom:clamp(28px,4vw,52px)}
.band{background:var(--band);color:var(--band-fg);border-top:0;transition:background .4s var(--ease)}
.band h2,.band h3{color:#FFF}
.band .lead,.band p{color:var(--band-muted)}
.band .label{color:var(--band-muted)}

/* Raster */
.basics{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--rule);background:var(--surface)}
.basic{padding:1.7rem 1.5rem 1.85rem;display:grid;gap:.55rem;align-content:start;position:relative;transition:background .3s}
.basic:hover{background:var(--surface-hi)}
.basic:nth-child(2n){border-left:1px solid var(--rule)}
.basic:nth-child(n+3){border-top:1px solid var(--rule)}
.basic .q{font-family:"Jost",sans-serif;font-weight:700;font-size:1.14rem}
html[lang="zh"] .basic .q{font-family:var(--font-cjk)}
.basic p{margin:0;font-size:.94rem;color:var(--muted)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);background:var(--surface)}
.cell{padding:1.6rem 1.35rem 1.8rem;display:grid;gap:.6rem;align-content:start;transition:background .3s}
.cell:hover{background:var(--surface-hi)}
.cell + .cell{border-left:1px solid var(--rule)}
.cell p{font-size:.89rem;color:var(--muted);margin:0}
.cell .k{font-family:"Jost",sans-serif;font-weight:700;font-size:1.04rem}
html[lang="zh"] .cell .k{font-family:var(--font-cjk)}

/* Architektur */
.layers{display:grid;border:1px solid var(--rule)}
.layer{display:grid;grid-template-columns:auto 1fr auto;gap:1.2rem;align-items:center;text-align:left;
  padding:1.2rem 1.3rem;background:var(--surface);border:0;font:inherit;color:inherit;cursor:pointer;width:100%;
  position:relative;overflow:hidden;transition:color .28s var(--ease),padding-left .32s var(--ease)}
.layer::before{content:"";position:absolute;inset:0;background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .42s var(--ease-out);z-index:0}
.layer:hover::before,.layer[aria-expanded="true"]::before{transform:none}
.layer > *{position:relative;z-index:1}
.layer + .layer,.layer-detail + .layer{border-top:1px solid var(--rule)}
.layer:hover,.layer[aria-expanded="true"]{color:var(--bg);padding-left:1.85rem}
.layer:hover .role,.layer[aria-expanded="true"] .role,.layer:hover .ver,.layer[aria-expanded="true"] .ver{color:color-mix(in srgb,var(--bg) 68%,transparent)}
.layer .role{font-family:"Azeret Mono",monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);width:132px;flex:none;transition:color .28s}
html[lang="zh"] .layer .role{font-family:var(--font-cjk);letter-spacing:.06em;font-size:.72rem}
.layer .nm{font-family:"Jost",sans-serif;font-weight:700;font-size:1.07rem}
html[lang="zh"] .layer .nm{font-family:var(--font-cjk)}
.layer .ver{font-size:.74rem;color:var(--muted);white-space:nowrap;transition:color .28s}
.layer-detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease-out);background:var(--bg)}
.layer-detail.open{grid-template-rows:1fr;border-top:1px solid var(--rule)}
.layer-detail > div{overflow:hidden}
.layer-detail p{margin:0;padding:1.1rem 1.3rem 1.3rem 8.6rem;color:var(--muted);font-size:.92rem;max-width:92ch}

/* QNV */
.tok{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.tok small{font-size:.8rem;color:var(--muted);line-height:1.5;margin-top:.15rem}
.tok div{background:var(--surface);padding:1.5rem 1.35rem;display:grid;gap:.3rem;transition:background .3s}
.tok div:hover{background:var(--surface-hi)}
.tok .k{font-family:"Azeret Mono",monospace;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.tok .v{font-family:"Jost",sans-serif;font-weight:700;font-size:1.24rem}
html[lang="zh"] .tok .v{font-family:var(--font-cjk)}

/* Build */
.build{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,3vw,36px);align-items:start}
.code{border:1px solid var(--band-rule);background:#08080A;position:relative;overflow:hidden}
.code::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.045) 50%,transparent 58%);
  transform:translateX(-100%);transition:transform 1.1s var(--ease-out)}
.code:hover::after{transform:translateX(100%)}
.code-tabs{display:flex;border-bottom:1px solid var(--band-rule)}
.code-tabs button{font-family:"Azeret Mono",monospace;font-size:.68rem;letter-spacing:.14em;padding:.65rem .95rem;
  background:none;border:0;color:#7C7C84;cursor:pointer;transition:.2s}
.code-tabs button + button{border-left:1px solid var(--band-rule)}
.code-tabs button:hover{color:#fff}
.code-tabs button[aria-pressed="true"]{background:#F5F5F6;color:#08080A}
.code pre{margin:0;padding:1.15rem 1.2rem;overflow-x:auto;font-family:"Azeret Mono",monospace;font-size:.79rem;line-height:1.75;color:#DCDCE0}
.code .cm{color:#5C5C63}
.dev-links{display:grid;gap:1px;background:var(--band-rule);border:1px solid var(--band-rule)}
.dev-links a,.dev-links div{background:var(--band);padding:1.05rem 1.2rem;text-decoration:none;display:grid;gap:.15rem;
  position:relative;transition:background .28s,padding-left .28s var(--ease)}
.dev-links a:hover{background:#131315;padding-left:1.5rem}
.util span[aria-disabled],.foot span[aria-disabled]{opacity:.55}
.dev-links b{color:#fff;font-size:.97rem}
.dev-links small{color:var(--band-muted);font-size:.83rem}

/* Roadmap */
.road{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--rule);background:var(--surface)}
.phase{padding:1.6rem 1.35rem 1.8rem;display:grid;gap:.6rem;align-content:start;position:relative;transition:background .3s}
.phase:hover{background:var(--surface-hi)}
.phase + .phase{border-left:1px solid var(--rule)}
.phase .pn{font-family:"Azeret Mono",monospace;font-size:.62rem;letter-spacing:.18em;color:var(--muted)}
.phase p{font-size:.87rem;color:var(--muted);margin:0}

/* Security / Quanten */
.sec{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--band-rule);border:1px solid var(--band-rule)}
.sec div{background:var(--band);padding:1.5rem 1.35rem;display:grid;gap:.4rem;transition:background .28s}
.sec div:hover{background:#131315}
.sec b{color:#fff;font-size:1rem}
.sec small{color:var(--band-muted);font-size:.86rem;line-height:1.55}
.q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.q-cell{background:var(--surface);padding:1.55rem 1.35rem 1.7rem;display:grid;gap:.45rem;align-content:start;transition:background .3s}
.q-cell:hover{background:var(--surface-hi)}
.q-cell b{font-family:"Jost",sans-serif;font-weight:700;font-size:1.01rem}
html[lang="zh"] .q-cell b{font-family:var(--font-cjk)}
.q-cell small{font-size:.875rem;color:var(--muted);line-height:1.55}
.q-note{margin-top:1.3rem;border-left:3px solid var(--accent);padding:.35rem 0 .35rem 1rem;font-size:.89rem;color:var(--muted);max-width:72ch}

/* Attestation */
.attest{display:grid;grid-template-columns:1fr auto;gap:clamp(24px,5vw,60px);align-items:center}
.hashfield{font-family:"Azeret Mono",monospace;font-size:clamp(.78rem,1.6vw,1rem);word-break:break-all;
  border:1px solid rgba(255,255,255,.22);padding:.8rem .9rem;margin-top:1.2rem;color:#fff;background:rgba(255,255,255,.05);position:relative;overflow:hidden}
.hashfield::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 40%,rgba(255,255,255,.14) 50%,transparent 60%);
  transform:translateX(-100%);animation:sweep 6.5s var(--ease-out) infinite}
@keyframes sweep{0%,72%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.hashfield span{color:#5C6B92}
.hlabel{display:block;font-family:"Azeret Mono",monospace;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--band-muted);margin-top:1.4rem}
.stamp{width:clamp(140px,18vw,200px)}
.stamp .spin{transform-origin:center;animation:rot 50s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}

/* Komponenten mit Pointer-Spotlight */
.comp{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--rule);box-shadow:var(--shadow)}
.comp article{padding:1.8rem 1.65rem 1.95rem;background:var(--surface);display:grid;gap:.8rem;align-content:start;
  position:relative;overflow:hidden;transition:background .3s}
.comp article::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .35s;pointer-events:none;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),var(--accent-glow),transparent 62%)}
.comp article:hover::before{opacity:1}
.comp article:hover{background:var(--surface-hi)}
.comp article > *{position:relative;z-index:1}
.comp article:nth-child(2n){border-left:1px solid var(--rule)}
.comp article:nth-child(n+3){border-top:1px solid var(--rule)}
.comp h3{font-family:"Jost",sans-serif;font-weight:800;font-size:1.42rem;text-transform:uppercase}
html[lang="zh"] .comp h3{font-family:var(--font-cjk)}
.comp .ver{font-size:.74rem;color:var(--muted);letter-spacing:.08em}
.comp p{font-size:.91rem;color:var(--muted);margin:0}
.parts{list-style:none;margin:0;padding:.85rem 0 0;display:grid;gap:.38rem;border-top:1px solid var(--rule)}
.parts li{font-family:"Azeret Mono",monospace;font-size:.73rem;line-height:1.5;padding-left:1rem;position:relative}
.parts li::before{content:"—";position:absolute;left:0;color:var(--muted)}
html[lang="zh"] .parts li{font-family:var(--font-cjk);font-size:.85rem}

/* heritari */
.mods{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--band-rule);border:1px solid var(--band-rule)}
.mod{background:var(--band);padding:1.3rem 1.2rem;display:grid;gap:.35rem;transition:background .28s,transform .28s var(--ease)}
.mod:hover{background:#131315}
.mod b{font-size:.96rem;color:#fff}
.mod small{font-size:.82rem;color:var(--band-muted);line-height:1.5}
.chips{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:1.2rem}
.chips span{font-family:"Azeret Mono",monospace;font-size:.67rem;border:1px solid rgba(255,255,255,.25);padding:.32rem .6rem;color:#B8C4DC;transition:.25s}
.chips span:hover{border-color:#F5F5F6;color:#fff}

/* Papers */
.papers{border:1px solid var(--rule);background:var(--surface)}
.paper{display:grid;grid-template-columns:1fr auto auto;gap:1rem 1.6rem;align-items:center;padding:1.1rem 1.3rem;
  text-decoration:none;color:inherit;position:relative;overflow:hidden;transition:color .28s,padding-left .3s var(--ease)}
.paper::before{content:"";position:absolute;inset:0;background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .42s var(--ease-out)}
a.paper:hover::before{transform:none}
.paper > *{position:relative;z-index:1}
.paper + .paper{border-top:1px solid var(--rule)}
a.paper:hover{color:var(--bg);padding-left:1.8rem}
a.paper:hover .p-meta,a.paper:hover .p-dl{color:color-mix(in srgb,var(--bg) 78%,transparent)}
.paper .p-t{font-family:"Jost",sans-serif;font-weight:700;font-size:1.02rem}
html[lang="zh"] .paper .p-t{font-family:var(--font-cjk)}
.paper .p-d{font-size:.865rem;opacity:.72;margin:.15rem 0 0}
.paper .p-meta{font-family:"Azeret Mono",monospace;font-size:.68rem;letter-spacing:.1em;color:var(--muted);white-space:nowrap;transition:color .28s}
.paper .p-dl{font-family:"Azeret Mono",monospace;font-size:.7rem;letter-spacing:.18em;color:var(--fg);white-space:nowrap;transition:color .28s}
.paper.pending{opacity:.6}

/* Prozess */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);background:var(--surface)}
.step{padding:1.65rem 1.35rem 1.8rem;display:grid;gap:.55rem;align-content:start;transition:background .3s}
.step:hover{background:var(--surface-hi)}
.step + .step{border-left:1px solid var(--rule)}
.step .n{font-family:"Azeret Mono",monospace;font-size:.62rem;letter-spacing:.24em;color:var(--muted)}
.step p{font-size:.87rem;color:var(--muted);margin:0}
.step code,.q-cell code{font-family:"Azeret Mono",monospace;font-size:.78rem;background:var(--accent-soft);padding:0 .2rem}

/* FAQ */
.faq{border:1px solid var(--rule);background:var(--surface)}
.faq details + details{border-top:1px solid var(--rule)}
.faq summary{padding:1.15rem 1.3rem;cursor:pointer;font-family:"Jost",sans-serif;font-weight:700;font-size:1.02rem;
  list-style:none;display:flex;justify-content:space-between;gap:1rem;transition:background .28s,color .28s}
html[lang="zh"] .faq summary{font-family:var(--font-cjk)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--accent)}
.faq summary::after{content:"+";font-family:"Azeret Mono",monospace;color:var(--accent);flex:none;transition:transform .3s var(--ease-out)}
.faq details[open] summary{background:var(--fg);color:var(--bg)}
.faq details[open] summary::after{content:"+";color:var(--bg);transform:rotate(45deg)}
.faq p{margin:0;padding:1.1rem 1.3rem 1.35rem;color:var(--muted);font-size:.93rem;max-width:90ch;animation:swapin .4s var(--ease-out)}

/* Buttons */
.btn{display:inline-block;font-family:"Jost",sans-serif;font-weight:400;font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;
  padding:.95rem 1.7rem;background:var(--fg);color:var(--bg);text-decoration:none;border:1px solid var(--fg);
  position:relative;overflow:hidden;will-change:transform;transition:box-shadow .25s,color .28s}
.btn span{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;background:var(--bg);transform:translateY(101%);transition:transform .42s var(--ease-out)}
.btn:hover::before{transform:none}
.btn:hover{color:var(--fg);box-shadow:var(--shadow)}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--fg)}
.btn.ghost::before{background:var(--fg)}
.btn.ghost:hover span{color:var(--bg)}
.btn.ghost:hover{color:var(--bg);box-shadow:none}
.band .btn.ghost{color:#fff;border-color:rgba(255,255,255,.55)}
.band .btn.ghost::before{background:#fff}
.band .btn.ghost:hover{color:var(--band)}
.cta{display:grid;gap:1.3rem;justify-items:center;text-align:center}
.cta h2{max-width:20ch}
.actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}

footer{border-top:1px solid var(--rule);padding-block:34px;font-size:.83rem;color:var(--muted)}
.foot{display:flex;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;align-items:center}
.foot-links{display:flex;gap:1.15rem;flex-wrap:wrap}
.foot a{text-decoration:none;transition:color .2s}
.foot a:hover{color:var(--accent)}

/* Scroll-Choreografie */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
html.js:not(.show-all) .stagger:not(.in) > *{opacity:0;transform:translateY(16px)}
.stagger > *{transition:opacity .62s var(--ease-out),transform .62s var(--ease-out)}
.stagger.in > *:nth-child(1){transition-delay:.02s}
.stagger.in > *:nth-child(2){transition-delay:.08s}
.stagger.in > *:nth-child(3){transition-delay:.14s}
.stagger.in > *:nth-child(4){transition-delay:.2s}
.stagger.in > *:nth-child(5){transition-delay:.26s}
.stagger.in > *:nth-child(6){transition-delay:.32s}
.stagger.in > *:nth-child(7){transition-delay:.38s}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.band :focus-visible,.util :focus-visible{outline-color:#F5F5F6}
noscript .nojs{padding:1.2rem;border:1px solid var(--rule);background:var(--surface);margin-top:1.5rem}
::view-transition-old(root),::view-transition-new(root){animation-duration:.34s}

@media (max-width:1080px){.nav-links{gap:.9rem}.nav-links a{font-size:.77rem}}
@media (max-width:1000px){
  .grid4,.steps,.q-grid,.tok,.road,.netstrip{grid-template-columns:1fr 1fr}
  .cell:nth-child(3),.step:nth-child(3),.phase:nth-child(3),.net:nth-child(3){border-left:0}
  .cell:nth-child(n+3),.step:nth-child(n+3),.phase:nth-child(n+3),.net:nth-child(n+3){border-top:1px solid var(--rule)}
  .mods,.sec{grid-template-columns:1fr 1fr}
  .attest,.build{grid-template-columns:1fr}
  .layer-detail p{padding-left:1.3rem}
}
@media (max-width:820px){
  .util .wrap{gap:.9rem;font-size:.63rem}
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--bg);
    border-bottom:1px solid var(--rule);padding:1rem 20px;gap:.9rem}
  .nav-toggle{display:block}
  .comp,.grid4,.steps,.mods,.basics,.q-grid,.tok,.road,.sec,.netstrip{grid-template-columns:1fr}
  .comp article:nth-child(2n),.basic:nth-child(2n){border-left:0}
  .comp article + article,.basic + .basic{border-top:1px solid var(--rule);border-left:0}
  .cell + .cell,.step + .step,.phase + .phase,.net + .net{border-left:0;border-top:1px solid var(--rule)}
  .layer{grid-template-columns:1fr auto}
  .layer .role{width:auto;grid-column:1/-1}
  .readout{grid-template-columns:1fr;gap:.12rem}
  .paper{grid-template-columns:1fr auto}
  #lattice{height:340px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .reveal,.stagger > *{opacity:1;transform:none}
  .line > span{transform:none}
  .fade-up{opacity:1;transform:none}
}

/* ── Founding Validators + Gate-Tabelle ─────────────────────────── */
.subhead{font-family:"Jost",sans-serif;font-weight:300;font-size:1.02rem;letter-spacing:.22em;
  text-transform:uppercase;margin:clamp(34px,4vw,52px) 0 1.1rem;color:var(--muted)}
.valstats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);background:var(--surface)}
.valstats div{padding:1.3rem 1.3rem 1.45rem;display:grid;gap:.2rem}
.valstats div + div{border-left:1px solid var(--rule)}
.valstats .n{font-family:"Jost",sans-serif;font-weight:300;font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:.04em}
.valstats .k{font-family:"Azeret Mono",monospace;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.gates{border:1px solid var(--rule);background:var(--surface)}
.gate{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:.85rem 1.2rem;transition:background .25s}
.gate:hover{background:var(--surface-hi)}
.gate + .gate{border-top:1px solid var(--rule)}
.gate .g-n{font-size:.93rem}
.gate .g-d{font-size:.82rem;color:var(--muted);margin:.1rem 0 0}
.gate .badge{justify-self:end}
@media (max-width:1000px){.valstats{grid-template-columns:1fr 1fr}
  .valstats div:nth-child(3){border-left:0}
  .valstats div:nth-child(n+3){border-top:1px solid var(--rule)}}
@media (max-width:820px){.valstats{grid-template-columns:1fr}
  .valstats div + div{border-left:0;border-top:1px solid var(--rule)}
  .gate{grid-template-columns:1fr}.gate .badge{justify-self:start;margin-top:.35rem}}


/* ── Dokumentenschaufenster ─────────────────────────────────────── */
.docs{display:grid;grid-template-columns:1fr 1fr;gap:14px;perspective:1400px}
.doc{position:relative;display:grid;grid-template-columns:186px 1fr;gap:1.5rem;align-items:start;
  border:1px solid var(--rule);background:var(--surface);padding:1.6rem 1.6rem 1.7rem;overflow:hidden;
  transition:opacity .8s var(--ease-out),transform .8s var(--ease-out),background .3s,border-color .3s}
html.js:not(.show-all) .docs:not(.in) .doc{opacity:0;transform:translateY(24px)}
.docs.in .doc:nth-child(2){transition-delay:.12s}
.doc::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .4s;pointer-events:none;
  background:radial-gradient(520px circle at var(--mx,50%) var(--my,50%),var(--accent-glow),transparent 60%)}
.doc:hover::before{opacity:1}
.doc:hover{border-color:var(--fg);background:var(--surface-hi)}
.doc > *{position:relative;z-index:1}

.doc-cover{position:relative;transform-style:preserve-3d;
  transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.doc-cover img{display:block;width:100%;height:auto;border:1px solid var(--rule);background:#fff}
.doc-cover::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(112deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%);
  transform:translateX(-115%);transition:transform 1.15s var(--ease-out)}
.doc:hover .doc-cover::after{transform:translateX(115%)}
.doc:hover .doc-cover{box-shadow:0 34px 60px -34px rgba(0,0,0,.75)}
.doc-cover .spine{position:absolute;inset:0 auto 0 0;width:5px;background:var(--fg);opacity:.85}

.doc-kicker{font-family:"Azeret Mono",monospace;font-size:.62rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.55rem}
.doc h3{font-family:"Jost",sans-serif;font-weight:300;font-size:clamp(1.15rem,2vw,1.5rem);
  letter-spacing:.11em;text-transform:uppercase;margin-bottom:.6rem}
.doc p{font-size:.92rem;color:var(--muted);margin:0 0 1rem}
.doc-facts{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.doc-facts li{font-family:"Azeret Mono",monospace;font-size:.66rem;letter-spacing:.1em;
  border:1px solid var(--rule);padding:.28rem .55rem;color:var(--muted)}
.doc-hash{font-family:"Azeret Mono",monospace;font-size:.63rem;letter-spacing:.02em;color:var(--muted);
  border-left:2px solid var(--rule);padding:.3rem 0 .3rem .7rem;margin-bottom:1.15rem;
  word-break:break-all;max-height:1.5em;overflow:hidden;transition:max-height .45s var(--ease-out),color .3s;cursor:default}
.doc:hover .doc-hash{max-height:5em;color:var(--fg);border-left-color:var(--fg)}
.doc .btn{padding:.72rem 1.2rem;font-size:.7rem;letter-spacing:.2em}
.doc-actions{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}
.doc-alt{font-family:"Azeret Mono",monospace;font-size:.66rem;letter-spacing:.12em;color:var(--muted);
  text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:.15rem;transition:.2s}
.doc-alt:hover{color:var(--fg);border-color:var(--fg)}

@media (max-width:1000px){.docs{grid-template-columns:1fr}}
@media (max-width:620px){.doc{grid-template-columns:1fr}.doc-cover{max-width:200px}}
@media (prefers-reduced-motion:reduce){.doc{opacity:1;transform:none}.doc-cover{transform:none!important}}
