/* ============================================================
   Wippy site — one stylesheet for marketing + docs
   Dark/ember aesthetic. Shell + marketing use fixed tokens;
   docs content uses --color-* tokens that flip light/dark.
   ============================================================ */

:root{
  /* fixed brand palette (shell + marketing, never flips) */
  --void:#0a0a09;
  --bg:#0d0d0c;
  --raised:#121211;
  --raised-2:#161513;
  --line:rgba(247,244,236,.06);
  --line-2:rgba(247,244,236,.11);
  --bone:#f4f1e9;
  --fg:#aea99e;
  --muted:#827f77;
  --faint:#54514a;
  --ember:#e2884a;
  --ember-deep:#cf7530;
  --ember-soft:rgba(226,136,74,.10);
  --serif:'Instrument Serif',Georgia,serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --sans:'Hanken Grotesk',system-ui,sans-serif;
  --docs-sans:'IBM Plex Sans',system-ui,sans-serif;
  --maxw:1280px;

  /* layout */
  --sidebar-width:280px;
  --toc-width:240px;
  --header-height:62px;
  --content-max-width:820px;

  /* docs content tokens — light defaults */
  --color-bg:#ffffff;
  --color-bg-secondary:#f6f5f2;
  --color-text:#1d1b16;
  --color-text-secondary:#6c6a63;
  --color-primary:#c2691f;
  --color-primary-hover:#a8551a;
  --color-border:#e7e4dd;
  --color-code-bg:#f6f6f3;
  --color-mark:#ffe2b8;
}

/* docs content tokens — dark (default theme via bootstrap) */
.dark{
  --color-bg:#0d0d0c;
  --color-bg-secondary:#161513;
  --color-text:#cbc7bd;
  --color-text-secondary:#908c84;
  --color-primary:#e2884a;
  --color-primary-hover:#f0a35f;
  --color-border:rgba(247,244,236,.11);
  --color-code-bg:#0a0a09;
  --color-mark:rgba(226,136,74,.30);
}
@media (prefers-color-scheme:dark){
  :root:not(.light){
    --color-bg:#0d0d0c;
    --color-bg-secondary:#161513;
    --color-text:#cbc7bd;
    --color-text-secondary:#908c84;
    --color-primary:#e2884a;
    --color-primary-hover:#f0a35f;
    --color-border:rgba(247,244,236,.11);
    --color-code-bg:#0a0a09;
    --color-mark:rgba(226,136,74,.30);
  }
}

/* ---- reset / base ---- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:17px}
body{font-family:var(--sans);background:var(--bg);color:var(--fg);font-size:16px;line-height:1.66;overflow-x:hidden;position:relative}
/* docs surface follows the light/dark theme; marketing stays on fixed dark tokens */
body.docs{background:var(--color-bg);color:var(--color-text);font-family:var(--docs-sans)}
a{text-decoration:none;color:inherit}
img{max-width:100%}
::selection{background:var(--ember);color:var(--void)}

/* ============================================================
   SHELL — header + footer. Shell tokens follow the theme on docs,
   and are pinned dark on marketing pages.
   ============================================================ */
:root{--shell-bg:rgba(255,255,255,.82);--shell-surface:#ffffff;--shell-raised:#f3f1ec;
  --shell-text:#1d1b16;--shell-muted:#6c6a63;--shell-hover:#1d1b16;--shell-line:#e7e4dd}
.dark{--shell-bg:rgba(13,13,12,.72);--shell-surface:#0d0d0c;--shell-raised:#161513;
  --shell-text:#f4f1e9;--shell-muted:#827f77;--shell-hover:#f4f1e9;--shell-line:rgba(247,244,236,.08)}
body.landing,body.about,body.legal{--shell-bg:rgba(13,13,12,.72);--shell-surface:#0d0d0c;--shell-raised:#161513;
  --shell-text:#f4f1e9;--shell-muted:#827f77;--shell-hover:#f4f1e9;--shell-line:rgba(247,244,236,.08)}

.header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-height);
  background:var(--shell-bg);backdrop-filter:blur(16px) saturate(130%);
  border-bottom:1px solid var(--shell-line)}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,48px);height:100%;
  display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:10px;color:var(--shell-text);font-family:var(--mono);
  font-weight:500;font-size:15px;letter-spacing:.02em;min-width:0}
.logo img{height:28px;width:auto;flex-shrink:0}
.logo span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header-nav{display:flex;align-items:center;gap:26px}
.header-link{font-family:var(--mono);font-size:13px;color:var(--shell-muted);letter-spacing:.01em;transition:color .18s}
.header-link:hover{color:var(--shell-hover)}
.nav-cta{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border:1px solid var(--shell-line);
  border-radius:7px;color:var(--shell-text);font-family:var(--mono);font-size:13px;transition:all .18s}
.nav-cta:hover{border-color:var(--ember);color:var(--ember)}

/* docs-only header tools */
.search-form{position:relative}
.search-input{width:15rem;max-width:32vw;padding:7px 13px;font-family:var(--docs-sans);font-size:13px;border-radius:8px;
  background:var(--shell-raised);border:1px solid var(--shell-line);color:var(--shell-text)}
.search-input::placeholder{color:var(--shell-muted)}
.search-input:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 2px var(--ember-soft)}
.lang-dropdown{position:relative}
.lang-btn{display:flex;align-items:center;gap:5px;padding:6px 9px;font-family:var(--mono);font-size:12px;
  border-radius:7px;color:var(--shell-muted);background:transparent;border:1px solid var(--shell-line);
  text-transform:uppercase;cursor:pointer;transition:all .15s}
.lang-btn:hover{color:var(--shell-hover);border-color:var(--shell-muted)}
.lang-menu{position:absolute;right:0;top:100%;margin-top:7px;padding:6px 0;border-radius:9px;
  background:var(--shell-raised);border:1px solid var(--shell-line);box-shadow:0 14px 40px -16px rgba(0,0,0,.4);
  min-width:130px;z-index:120;opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s}
.lang-dropdown:hover .lang-menu,.lang-dropdown.open .lang-menu{opacity:1;visibility:visible}
.lang-option{display:block;padding:7px 14px;font-size:13px;color:var(--shell-muted);transition:all .15s}
.lang-option:hover{background:rgba(128,128,128,.14);color:var(--shell-hover)}
.lang-option.active{color:var(--ember);font-weight:600}
.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;
  border:1px solid var(--shell-line);background:transparent;color:var(--shell-muted);cursor:pointer;transition:all .15s}
.theme-toggle:hover{background:rgba(128,128,128,.14);color:var(--shell-hover)}
.theme-toggle .icon-sun{display:none}
.theme-toggle .icon-moon{display:block}
.dark .theme-toggle .icon-sun{display:block}
.dark .theme-toggle .icon-moon{display:none}

.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;
  background:transparent;color:var(--shell-text);cursor:pointer;border-radius:8px;transition:background .15s}
.mobile-menu-btn:hover{background:rgba(128,128,128,.14)}
.mobile-menu-btn svg{width:24px;height:24px}
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:199;opacity:0;transition:opacity .3s}
.mobile-overlay.active{display:block;opacity:1}

/* page content wrapper */
.main-container{padding-top:var(--header-height)}
body.landing .main-container,body.about .main-container{padding-top:0}

/* ---- footer (config-driven structure) ---- */
.footer{position:relative;z-index:50;background:var(--shell-surface);border-top:1px solid var(--shell-line)}
.footer-main{max-width:var(--maxw);margin:0 auto;padding:56px clamp(20px,5vw,48px);
  display:grid;grid-template-columns:1fr auto auto;gap:clamp(34px,5vw,72px);align-items:start}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-brand img{height:22px;width:auto}
.footer-logo-dark{display:inline}
.footer-logo-light{display:none}
html.light body.docs .footer-logo-dark{display:none}
html.light body.docs .footer-logo-light{display:inline}
.footer-brand span{font-family:var(--mono);font-size:13px;color:var(--shell-muted)}
.footer-brand a{color:var(--shell-muted);transition:color .15s}
.footer-brand a:hover{color:var(--shell-hover)}
.footer-columns{display:flex;gap:clamp(34px,5vw,68px)}
.footer-column{display:flex;flex-direction:column;gap:9px}
.footer-column h4,.footer-heading{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.12em;color:var(--shell-muted);margin-bottom:5px;display:block}
.footer-column a{font-size:14px;color:var(--shell-muted);transition:color .15s}
.footer-column a:hover{color:var(--ember)}
.footer-social{display:flex;gap:16px}
.footer-social a{color:var(--shell-muted);font-size:20px;transition:color .15s}
.footer-social a:hover{color:var(--ember)}
.footer-copyright{text-align:center;padding:18px 1rem;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.04em;color:var(--shell-muted);border-top:1px solid var(--shell-line)}
/* doc pages: clear the fixed left sidebar so the footer doesn't sit under it */
@media(min-width:1025px){body.doc-page .footer{margin-left:var(--sidebar-width)}}

/* ============================================================
   MARKETING — landing + about (fixed dark tokens)
   ============================================================ */

/* atmosphere */
.grid-bg{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(120% 70% at 50% 0%,#000 0%,transparent 70%);
          mask-image:radial-gradient(120% 70% at 50% 0%,#000 0%,transparent 70%);opacity:.35}
.glow{position:fixed;top:-26vh;left:50%;transform:translateX(-50%);width:min(900px,100vw);height:70vh;
  z-index:0;pointer-events:none;background:radial-gradient(circle at 50% 30%,var(--ember-soft) 0%,transparent 62%);
  filter:blur(28px);opacity:.55}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.025;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.wrap{position:relative;z-index:2}
.container{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,48px)}

/* hero */
.hero{min-height:calc(100svh - var(--header-height));display:flex;flex-direction:column;justify-content:center;
  padding:96px 0 64px;position:relative}
.hero .container{width:100%}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ember);
  display:flex;align-items:center;gap:12px;margin-bottom:28px}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--ember);opacity:.6}
.hero h1{font-family:var(--serif);font-weight:400;color:var(--bone);font-size:clamp(2.6rem,7vw,5rem);
  line-height:1;letter-spacing:-.015em;margin-bottom:30px}
.hero h1 .ln{display:block}
.hero h1 em{font-style:italic;color:var(--ember)}
.hero-sub{font-size:clamp(1.04rem,1.7vw,1.24rem);color:var(--fg);max-width:600px;line-height:1.62;margin-bottom:40px}
.hero-sub b{color:var(--bone);font-weight:600}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}

.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:14px;font-weight:500;
  padding:13px 22px;border-radius:9px;transition:all .2s;cursor:pointer;border:1px solid transparent}
.btn-primary{background:var(--ember);color:var(--void);font-weight:700}
.btn-primary:hover{background:var(--bone);transform:translateY(-2px)}
.btn-ghost{color:var(--bone);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--bone);transform:translateY(-2px)}

.term-chip{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:13px;
  padding:11px 15px;border:1px solid var(--line);border-radius:9px;background:var(--raised);color:var(--muted)}
.term-chip .p{color:var(--ember)}
.term-chip .c{color:var(--bone)}
.term-chip button{margin-left:4px;background:none;border:none;color:var(--faint);font-family:var(--mono);
  font-size:11px;cursor:pointer;letter-spacing:.08em;transition:color .18s}
.term-chip button:hover{color:var(--ember)}

/* load animation */
.rise{opacity:0;transform:translateY(18px);animation:rise .8s cubic-bezier(.22,1,.36,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
.d1{animation-delay:.04s}.d2{animation-delay:.14s}.d3{animation-delay:.24s}.d4{animation-delay:.34s}.d5{animation-delay:.44s}.d6{animation-delay:.54s}

/* sections */
section{position:relative;padding:clamp(64px,9vh,112px) 0}
.stitle{font-family:var(--serif);font-weight:400;color:var(--bone);font-size:clamp(1.9rem,4.4vw,3rem);
  line-height:1.06;letter-spacing:-.01em;max-width:18ch}
.stitle em{font-style:italic;color:var(--ember)}
.lead{font-size:1.1rem;color:var(--fg);max-width:62ch;margin-top:22px}
.lead b{color:var(--bone);font-weight:600}
.sec-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,6vw,84px);align-items:end}
.sec-grid .stitle{max-width:none}
.sec-grid .lead{margin-top:0;max-width:50ch}
@media(max-width:820px){.sec-grid{grid-template-columns:1fr;gap:18px;align-items:start}}
.divider{height:1px;background:var(--line);max-width:var(--maxw);margin:0 auto}

/* problem */
.problem .stat{font-family:var(--serif);font-size:clamp(2rem,5vw,3.2rem);color:var(--bone);font-weight:400;line-height:1.06;letter-spacing:-.01em}
.problem .stat em{color:var(--ember);font-style:italic}
.prob-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,80px);align-items:center;margin-top:6px}
@media(max-width:820px){.prob-grid{grid-template-columns:1fr;gap:36px}}
.prob-note{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:.03em;margin-top:18px;line-height:1.7}
.prob-note span{color:var(--ember)}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:50px;
  background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
@media(max-width:760px){.pillars{grid-template-columns:1fr}}
.pillar{background:var(--bg);padding:clamp(26px,3.2vw,40px);position:relative;transition:background .25s}
.pillar:hover{background:var(--raised)}
.pillar .pn{font-family:var(--mono);font-size:12px;color:var(--ember);letter-spacing:.08em;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.pillar .pn .sq{width:6px;height:6px;background:var(--ember)}
.pillar h3{font-family:var(--sans);font-weight:600;color:var(--bone);font-size:1.22rem;margin-bottom:11px;letter-spacing:-.01em}
.pillar p{font-size:.97rem;color:var(--fg);line-height:1.6}

/* one-binary board */
.binary{margin-top:48px;position:relative;border:1px solid var(--line-2);border-radius:16px;overflow:hidden;
  background:var(--void);box-shadow:0 36px 90px -54px rgba(0,0,0,.82),0 0 0 1px var(--line) inset}
.binary-glow{position:absolute;inset:-30% 10% 40% 10%;z-index:0;pointer-events:none;
  background:radial-gradient(56% 60% at 50% 30%,var(--ember-soft),transparent 70%);filter:blur(50px);opacity:.75}
.binary-bar{position:relative;z-index:1;display:flex;align-items:center;gap:10px;padding:14px 20px;
  border-bottom:1px solid var(--line);background:var(--raised);font-family:var(--mono);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.binary-bar .hx{color:var(--ember);font-size:13px;letter-spacing:0}
.binary-bar .sp{flex:1}
.binary-bar .t2{color:var(--faint)}
.binary-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
@media(max-width:820px){.binary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:360px){.binary-grid{grid-template-columns:1fr}}
.bit{background:var(--bg);padding:18px;transition:background .2s}
.bit:hover{background:var(--raised)}
.bit .bk{font-family:var(--mono);font-size:12.5px;color:var(--bone);font-weight:500}
.bit .bv{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:6px;line-height:1.5;letter-spacing:.02em}

/* terminal */
.talk-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,6vw,68px);align-items:center;margin-top:18px}
@media(max-width:880px){.talk-grid{grid-template-columns:1fr;gap:38px}}
.terminal{border:1px solid var(--line-2);border-radius:13px;background:var(--void);overflow:hidden;box-shadow:0 30px 70px -40px rgba(0,0,0,.7)}
.term-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--raised)}
.term-bar .dots{display:flex;gap:7px}
.term-bar .dots i{width:10px;height:10px;border-radius:50%;background:var(--line-2)}
.term-bar .dots i:first-child{background:#3a2a1a}
.term-bar .ttl{font-family:var(--mono);font-size:12px;color:var(--faint);margin-left:6px}
.term-body{padding:22px 20px;font-family:var(--mono);font-size:13px;line-height:1.95;min-height:296px}
.term-body .line{white-space:pre-wrap;word-break:break-word}
.term-body .u{color:var(--bone)}
.term-body .u::before{content:"› ";color:var(--ember)}
.term-body .sys{color:var(--muted)}
.term-body .sys::before{content:"  ↳ ";color:var(--faint)}
.term-body .ok{color:#a6c99e}
.term-body .ok::before{content:"  ✓ ";color:#7caf6f}
.term-body .em{color:var(--ember)}
.cursor{display:inline-block;width:8px;height:1.05em;background:var(--ember);vertical-align:-2px;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* control-room rail */
.bento-wrap{position:relative;max-width:var(--maxw);margin:44px auto 0}
.bento{display:flex;flex-wrap:nowrap;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;padding-bottom:14px;cursor:grab;scrollbar-width:thin;scrollbar-color:rgba(247,244,236,.18) transparent}
.bento::-webkit-scrollbar{height:5px}
.bento::-webkit-scrollbar-thumb{background:rgba(247,244,236,.16);border-radius:99px;transition:background .2s}
.bento:hover::-webkit-scrollbar-thumb{background:rgba(247,244,236,.3)}
.bento::-webkit-scrollbar-track{background:transparent}
.bento.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;scrollbar-color:rgba(247,244,236,.3) transparent}
.bento figure{flex:0 0 clamp(280px,46%,540px);scroll-snap-align:start;position:relative;margin:0;border:1px solid var(--line-2);
  border-radius:13px;overflow:hidden;background:var(--void);box-shadow:0 26px 70px -48px rgba(0,0,0,.82),0 0 0 1px var(--line) inset}
.bento figure img{width:100%;display:block;aspect-ratio:1440/720;object-fit:cover;object-position:top left;user-select:none;-webkit-user-drag:none}
.bento figcaption{position:absolute;left:11px;right:11px;bottom:10px;font-family:var(--mono);font-size:10.5px;
  color:var(--bone);background:rgba(10,10,9,.64);backdrop-filter:blur(7px);border:1px solid var(--line-2);
  border-radius:7px;padding:6px 9px;line-height:1.4}
.bento figcaption b{color:var(--ember);font-weight:500}
.bento-wrap::before,.bento-wrap::after{content:"";position:absolute;top:0;bottom:14px;width:72px;z-index:2;pointer-events:none;opacity:0;transition:opacity .3s}
.bento-wrap::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.bento-wrap::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
.bento-wrap:not(.at-start)::before{opacity:1}
.bento-wrap:not(.at-end)::after{opacity:1}
.bento-nav{position:absolute;top:calc(50% - 7px);transform:translateY(-50%);z-index:3;width:46px;height:46px;border-radius:50%;
  display:none;align-items:center;justify-content:center;cursor:pointer;color:var(--bone);
  background:rgba(18,18,17,.74);backdrop-filter:blur(10px);border:1px solid var(--line-2);
  box-shadow:0 12px 34px -14px rgba(0,0,0,.82);transition:opacity .25s,transform .18s,background .2s,color .2s,border-color .2s}
.bento-nav:hover{background:rgba(226,136,74,.16);border-color:rgba(226,136,74,.5);color:var(--ember)}
.bento-nav:active{transform:translateY(-50%) scale(.9)}
.bento-nav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bento-nav.prev{left:-15px}
.bento-nav.next{right:-15px}
.bento-nav[disabled]{opacity:0;pointer-events:none}
@media(hover:hover) and (min-width:761px){.bento-nav{display:flex}}
@media(max-width:760px){
  .bento-wrap{margin:36px -20px 0}
  .bento{padding:2px 20px 14px}
  .bento figure{flex:0 0 84%}
  .bento-wrap::before,.bento-wrap::after{display:none}
}

/* standalone link line */
.flink-row{margin-top:28px;font-family:var(--mono);font-size:.9rem;color:var(--muted)}
.flink-row a{color:var(--ember);font-size:.9rem;border-bottom:1px solid var(--ember-soft);padding-bottom:1px;transition:border-color .18s}
.flink-row a:hover{border-color:var(--ember)}

/* final cta */
.cta-final{text-align:center;padding:clamp(84px,13vh,148px) 0}
.cta-final h2{font-family:var(--serif);font-weight:400;color:var(--bone);font-size:clamp(2.3rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.015em;margin-bottom:20px}
.cta-final h2 em{font-style:italic;color:var(--ember)}
.cta-final p{font-size:1.08rem;color:var(--fg);max-width:48ch;margin:0 auto 34px}
.cta-final .cta-row{justify-content:center}

/* slim centered cta (about / inner pages) */
.page-cta{text-align:center;padding:clamp(48px,7vh,90px) 0}
.page-cta .cta-row{justify-content:center}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:none}

/* page hero (about / legal intro) */
.page-hero{padding:clamp(120px,16vh,180px) 0 clamp(16px,4vh,36px)}
.page-hero h1{font-family:var(--serif);font-weight:400;color:var(--bone);font-size:clamp(2.5rem,6vw,4.6rem);line-height:1.02;letter-spacing:-.015em;margin-bottom:24px}
.page-hero h1 em{font-style:italic;color:var(--ember)}
.page-hero .hero-sub{font-size:clamp(1.06rem,1.6vw,1.26rem);color:var(--fg);max-width:54ch;line-height:1.6;margin-bottom:0}

/* ---- about: design-note rows ---- */
.row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,72px);align-items:center}
.row.flip .fig{order:-1}
@media(max-width:860px){.row{grid-template-columns:1fr;gap:28px}.row.flip .fig{order:0}}
.txt .snum{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
.txt .snum b{color:var(--ember);font-weight:500}
.txt .dek{font-size:clamp(1.1rem,1.7vw,1.3rem);color:var(--bone);font-weight:500;margin-top:14px;line-height:1.35}
.txt p{font-size:1.05rem;color:var(--fg);line-height:1.68;margin-top:18px}
.txt p b{color:var(--bone);font-weight:600}
.txt p i{color:var(--fg);font-style:italic}
.fig{position:relative;min-width:0}
.fig pre.code{margin:0;width:100%;border:1px solid var(--line-2);border-radius:12px;background:var(--void);
  padding:20px 22px;font-family:var(--mono);font-size:13px;line-height:1.85;color:var(--fg);overflow-x:auto}
.fig pre.code .k{color:var(--ember)}
.fig pre.code .c{color:var(--faint);font-style:italic}
.fig pre.code .s{color:#a6c99e}
.fig pre.code .t{color:#8fb6d6}
.diagram{position:relative;border:1px solid var(--line-2);border-radius:14px;background:var(--void);padding:26px 22px 14px;overflow:hidden}
.diagram::before{content:"";position:absolute;inset:-20% 10% 26% 10%;z-index:0;
  background:radial-gradient(56% 60% at 50% 35%,var(--ember-soft),transparent 70%);filter:blur(44px);opacity:.6}
.diagram svg{position:relative;z-index:1;width:100%;height:auto;display:block}
.dcap{position:relative;z-index:1;margin-top:14px;font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.02em;text-align:center}

/* legal pages */
.legal{max-width:840px;margin:0 auto;padding:clamp(40px,6vh,72px) clamp(20px,5vw,48px) clamp(60px,9vh,110px)}
.legal h1{font-family:var(--serif);font-weight:400;color:var(--bone);font-size:clamp(2.2rem,5vw,3.2rem);line-height:1.05;letter-spacing:-.015em;margin-bottom:10px}
.legal .updated{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:.04em;margin-bottom:36px;display:block}
.legal h2{font-family:var(--sans);font-weight:600;color:var(--bone);font-size:1.32rem;margin:34px 0 12px}
.legal h3{font-family:var(--sans);font-weight:600;color:var(--bone);font-size:1.08rem;margin:24px 0 8px}
.legal p,.legal li{font-size:1rem;color:var(--fg);line-height:1.7}
.legal p{margin-bottom:14px}
.legal ul,.legal ol{margin:0 0 16px 1.3em}
.legal li{margin-bottom:7px}
.legal a{color:var(--ember);border-bottom:1px solid var(--ember-soft);transition:border-color .18s}
.legal a:hover{border-color:var(--ember)}
.legal strong{color:var(--bone)}

/* ============================================================
   DOCS COMPOSITION — sidebar / toc / content (--color-* tokens)
   ============================================================ */

.doc-layout{display:flex;min-height:100vh}

/* sidebar */
.sidebar{position:fixed;left:0;top:var(--header-height);bottom:0;width:var(--sidebar-width);overflow-y:auto;
  padding:20px 16px;border-right:1px solid var(--color-border);background:var(--color-bg);z-index:60}
.sidebar-nav{display:flex;flex-direction:column}
.sidebar-section{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;
  cursor:pointer;user-select:none;flex:1;color:var(--color-text-secondary);transition:color .15s}
.sidebar-section:hover{color:var(--color-text)}
.sidebar-title{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;
  margin-bottom:8px;color:var(--color-text-secondary)}
.sidebar-list{list-style:none;padding:0;margin:0}
.sidebar-item{margin-bottom:3px}
.sidebar-item.has-children{margin-bottom:6px}
.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sidebar-link{display:block;flex:1;padding:6px 12px;font-size:14px;border-radius:7px;color:var(--color-text-secondary);transition:all .15s}
.sidebar-link:hover{background:var(--color-bg-secondary);color:var(--color-text)}
.sidebar-link.active{background:var(--ember-soft);color:var(--ember);font-weight:500}
.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;
  background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);transition:all .15s}
.sidebar-toggle:hover{background:var(--color-bg-secondary);color:var(--color-text)}
.sidebar-toggle svg{transition:transform .2s ease}
.sidebar-item.open>.sidebar-header .sidebar-toggle svg{transform:rotate(90deg)}
.sidebar-children{padding-left:14px;margin-top:4px;overflow:hidden;max-height:0;opacity:0;
  transition:max-height .2s ease,opacity .2s ease,margin .2s ease}
.sidebar-item.open>.sidebar-children{max-height:1500px;opacity:1}

/* main doc column */
.doc-main{flex:1;padding:32px;margin-left:var(--sidebar-width);margin-right:var(--toc-width);
  max-width:calc(100% - var(--sidebar-width) - var(--toc-width))}

/* toc */
.toc-sidebar{position:fixed;right:0;top:var(--header-height);bottom:0;width:var(--toc-width);overflow-y:auto;
  padding:20px 16px 16px 0;background:var(--color-bg);z-index:10}
.toc{position:relative;border-left:2px solid var(--color-border)}
.toc-title{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;margin-bottom:12px;padding-left:18px;color:var(--color-text-secondary)}
/* sliding active indicator (positioned by toc.js) */
.toc-marker{position:absolute;left:-2px;width:2px;top:0;height:0;opacity:0;background:var(--color-primary);border-radius:2px;
  box-shadow:0 0 9px -1px var(--color-primary);transition:top .28s cubic-bezier(.4,0,.2,1),height .28s cubic-bezier(.4,0,.2,1),opacity .2s}
.toc-list,.toc-children{list-style:none;padding:0;margin:0;position:relative}
.toc-item{position:relative}
.toc-link{display:block;padding:6px 0 6px 18px;font-size:13.5px;line-height:1.45;color:var(--color-text-secondary);transition:color .18s,transform .18s ease}
.toc-link:hover{color:var(--color-text);transform:translateX(2px)}
.toc-item.active>.toc-link{color:var(--color-primary);font-weight:500}
.toc-children .toc-link{padding-left:30px;font-size:13px}
.toc-children .toc-children .toc-link{padding-left:42px;font-size:12px;opacity:.75}
.toc-children .toc-children .toc-children .toc-link{padding-left:54px;font-size:11px;opacity:.6}
.toc-children .toc-item.active>.toc-link{opacity:1}

/* breadcrumb */
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;font-size:13px;margin-bottom:24px;
  color:var(--color-text-secondary);padding:8px 14px;background:var(--color-bg-secondary);
  border-radius:7px;border:1px solid var(--color-border)}
.breadcrumb-list{display:flex;align-items:center;flex-wrap:wrap;list-style:none;padding:0;margin:0;gap:0}
.breadcrumb-item{display:flex;align-items:center;gap:0}
.breadcrumb-sep{margin:0 8px;color:var(--color-text-secondary);opacity:.5;font-size:.75rem}
.breadcrumb a{color:var(--color-primary);transition:color .15s}
.breadcrumb a:hover{color:var(--color-primary-hover);text-decoration:underline}
.breadcrumb-current{color:var(--color-text);font-weight:500}

/* doc content prose */
.doc-content{max-width:var(--content-max-width)}
.doc-content h1{font-family:var(--docs-sans);font-weight:700;font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:22px;color:var(--color-text)}
.doc-content h2{font-size:1.55rem;font-weight:600;margin:40px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--color-border);color:var(--color-text)}
.doc-content h3{font-size:1.25rem;font-weight:600;margin:32px 0 12px;color:var(--color-text)}
.doc-content h4,.doc-content h5,.doc-content h6{font-size:1.08rem;font-weight:600;margin:24px 0 8px;color:var(--color-text)}
.doc-content p{margin-bottom:16px;color:var(--color-text)}
.doc-content ul{margin-bottom:16px;padding-left:24px;list-style:disc}
.doc-content ol{margin-bottom:16px;padding-left:24px;list-style:decimal}
.doc-content li{margin-bottom:8px}
.doc-content li::marker{color:var(--color-text-secondary)}
.doc-content code{padding:2px 6px;font-family:var(--mono);font-size:.86em;border-radius:5px;background:var(--color-bg-secondary);color:var(--color-text)}
.doc-content pre{margin-bottom:16px;padding:16px;border-radius:10px;overflow-x:auto;background:var(--color-code-bg);border:1px solid var(--color-border)}
.doc-content pre code{padding:0;background:transparent;font-size:13px;color:var(--color-text)}
.doc-content table{width:100%;margin-bottom:16px;border-collapse:collapse}
.doc-content th,.doc-content td{padding:9px 16px;text-align:left;border:1px solid var(--color-border)}
.doc-content th{font-weight:600;background:var(--color-bg-secondary)}
.doc-content blockquote{padding-left:16px;margin:16px 0;font-style:italic;border-left:4px solid var(--color-border);color:var(--color-text-secondary)}
.doc-content img{max-width:100%;height:auto;border-radius:8px}
.doc-content a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}
.doc-content a:hover{color:var(--color-primary-hover)}

.code-block{position:relative;margin-bottom:16px}
.code-block pre{margin-bottom:0}
.copy-btn{position:absolute;top:8px;right:8px;padding:4px 8px;font-family:var(--mono);font-size:11px;border-radius:6px;
  opacity:0;transition:opacity .15s;background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer}
.code-block:hover .copy-btn{opacity:1}
.copy-btn:hover{background:var(--color-bg);color:var(--color-text)}

/* admonitions */
.admonition{margin:24px 0;padding:13px 16px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-bg-secondary)}
.admonition.note{border-left:3px solid #3b82f6}
.admonition.warning{border-left:3px solid #f59e0b}
.admonition.danger{border-left:3px solid #ef4444}
.admonition.tip{border-left:3px solid #10b981}
.admonition.info{border-left:3px solid #06b6d4}
.admonition-title{font-family:var(--mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;color:var(--color-text-secondary)}
.admonition.note .admonition-title{color:#3b82f6}
.admonition.warning .admonition-title{color:#f59e0b}
.admonition.danger .admonition-title{color:#ef4444}
.admonition.tip .admonition-title{color:#10b981}
.admonition.info .admonition-title{color:#06b6d4}
.admonition-content{font-size:.95rem;color:var(--color-text)}
.admonition-content p:last-child{margin-bottom:0}

/* prev/next */
.doc-nav{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--color-border)}
.nav-prev,.nav-next{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:10px;border:1px solid var(--color-border);transition:all .15s}
.nav-prev:hover,.nav-next:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}
.nav-next{text-align:right}
.nav-label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary)}
.nav-title{font-weight:500;color:var(--color-primary)}

/* related */
.related-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-border)}
.related-title{font-family:var(--mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;color:var(--color-text-secondary)}
.related-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:768px){.related-list{grid-template-columns:1fr 1fr}}
.related-item{padding:12px;border-radius:10px;border:1px solid var(--color-border);transition:all .15s}
.related-item:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}
.related-heading{display:block;font-weight:500;margin-bottom:4px;color:var(--color-text)}
.related-context{font-size:.875rem;color:var(--color-text-secondary)}

/* ============================================================
   DOCS HOME (full-width index, no sidebar)
   ============================================================ */
.docs-index{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,7vh,86px) clamp(20px,5vw,48px) clamp(60px,9vh,110px)}
.docs-index .eyebrow{color:var(--ember)}
.docs-index h1{font-family:var(--docs-sans);font-weight:700;color:var(--color-text);font-size:clamp(2rem,4.5vw,2.9rem);line-height:1.1;letter-spacing:-.02em;margin-bottom:14px}
.docs-index .docs-sub{font-size:1.1rem;color:var(--color-text-secondary);max-width:60ch;margin-bottom:48px}
.docs-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--color-border);
  border:1px solid var(--color-border);border-radius:16px;overflow:hidden}
.docs-card{background:var(--color-bg);padding:clamp(22px,2.6vw,32px);transition:background .25s}
.docs-card:hover{background:var(--color-bg-secondary)}
.docs-card h2{font-family:var(--docs-sans);font-weight:600;color:var(--color-text);font-size:1.16rem;letter-spacing:-.01em;margin-bottom:14px}
.docs-card ul{list-style:none;padding:0;margin:0}
.docs-card li{margin-bottom:8px}
.docs-card a{font-size:14px;color:var(--color-text-secondary);transition:color .15s}
.docs-card a:hover{color:var(--color-primary)}
.docs-card>a{font-family:var(--mono);font-size:13px;color:var(--color-primary)}

/* ============================================================
   SEARCH page + error page
   ============================================================ */
.search-main{max-width:48rem;margin:0 auto;padding:40px 20px;min-height:calc(100vh - var(--header-height) - 120px)}
.search-header{margin-bottom:32px}
.search-header h1{font-family:var(--docs-sans);font-weight:700;font-size:1.6rem;letter-spacing:-.01em;margin-bottom:18px;color:var(--color-text)}
.search-page-form{display:flex;gap:10px}
.search-page-input{flex:1;padding:12px 16px;border-radius:9px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text)}
.search-page-input:focus{outline:none;box-shadow:0 0 0 2px var(--ember-soft);border-color:var(--ember)}
.search-btn{padding:12px 22px;border-radius:9px;font-weight:600;border:none;cursor:pointer;background:var(--ember);color:var(--void);transition:all .15s}
.search-btn:hover{background:var(--bone)}
.search-meta{font-size:14px;margin-bottom:24px;color:var(--color-text-secondary)}
.search-results{display:flex;flex-direction:column;gap:14px}
.search-result{padding:18px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-bg);transition:all .15s}
.search-result:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}
.search-result h2{font-size:1.1rem;font-weight:500;margin-bottom:8px}
.search-result h2 a{color:var(--color-primary)}
.search-result h2 a:hover{text-decoration:underline}
.result-context{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;color:var(--color-text-secondary)}
.result-snippet{font-size:14px;line-height:1.6;color:var(--color-text-secondary)}
.result-snippet mark{padding:0 2px;border-radius:3px;font-weight:500;background:var(--color-mark);color:var(--color-text)}
.no-results{text-align:center;padding:64px 16px}
.no-results p{font-size:1.1rem;margin-bottom:8px;color:var(--color-text-secondary)}
.no-results p:first-child{font-size:1.5rem;font-weight:500;margin-bottom:16px;color:var(--color-text)}

.suggest-box{position:absolute;left:0;right:0;top:100%;border-radius:9px;border:1px solid var(--color-border);overflow:hidden;
  background:var(--color-bg);box-shadow:0 14px 40px -16px rgba(0,0,0,.6);max-height:300px;overflow-y:auto;z-index:1000}
.suggest-item{padding:9px 16px;cursor:pointer;font-size:14px;color:var(--color-text);transition:background .15s}
.suggest-item:hover,.suggest-item.selected{background:var(--color-bg-secondary)}

.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:96px 16px;min-height:calc(100vh - var(--header-height))}
.error-page h1{font-family:var(--docs-sans);font-weight:700;font-size:6rem;margin-bottom:16px;color:var(--color-text)}
.error-page p{font-size:1.25rem;margin-bottom:32px;color:var(--color-text-secondary)}
.error-link{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:9px;font-weight:600;background:var(--ember);color:var(--void);transition:all .15s}
.error-link:hover{background:var(--bone)}

/* tabs */
.tabs{margin-bottom:16px;border:1px solid var(--color-border);border-radius:10px;overflow:hidden}
.tabs-nav{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}
.tab-btn{padding:9px 16px;font-size:14px;font-weight:500;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;cursor:pointer;color:var(--color-text-secondary);transition:all .15s}
.tab-btn:hover{color:var(--color-text)}
.tab-btn.active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-bg)}
.tab-content{display:none;padding:16px}
.tab-content.active{display:block}

.mermaid{margin:16px 0;padding:16px;border-radius:10px;text-align:center;background:var(--color-bg-secondary)}
.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:16px}
.table-wrapper table{margin-bottom:0}

/* ANSI */
.ansi-black{color:#000}.ansi-red{color:#c00}.ansi-green{color:#0a0}.ansi-yellow{color:#a50}
.ansi-blue{color:#00c}.ansi-magenta{color:#c0c}.ansi-cyan{color:#0aa}.ansi-white{color:#aaa}
.dark .ansi-black{color:#666}.dark .ansi-red{color:#ff6b6b}.dark .ansi-green{color:#69db7c}.dark .ansi-yellow{color:#ffd43b}
.dark .ansi-blue{color:#74c0fc}.dark .ansi-magenta{color:#e599f7}.dark .ansi-cyan{color:#66d9e8}.dark .ansi-white{color:#e9ecef}

/* chroma — light */
.chroma{color:#24292f}
.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs{color:#6e7781;font-style:italic}
.chroma .err{color:#cf222e}
.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:#cf222e;font-weight:600}
.chroma .kt{color:#8250df}
.chroma .n{color:#24292f}
.chroma .na{color:#0550ae}
.chroma .nb{color:#8250df}
.chroma .nc{color:#953800;font-weight:600}
.chroma .nf{color:#8250df;font-weight:500}
.chroma .no,.chroma .nd,.chroma .ni,.chroma .ne,.chroma .nl,.chroma .nn{color:#24292f}
.chroma .nv{color:#953800}
.chroma .nt{color:#116329;font-weight:600}
.chroma .l,.chroma .ld{color:#0a3069}
.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#0a3069}
.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#0550ae}
.chroma .o,.chroma .ow{color:#cf222e}
.chroma .p{color:#24292f}
.chroma .gu{color:#8250df;font-weight:bold}
.chroma .gd{color:#82071e;background-color:#ffebe9}
.chroma .gi{color:#116329;background-color:#dafbe1}

/* chroma — dark */
.dark .chroma{color:#c9d1d9}
.dark .chroma .c,.dark .chroma .ch,.dark .chroma .cm,.dark .chroma .c1,.dark .chroma .cs{color:#8b949e;font-style:italic}
.dark .chroma .err{color:#f85149}
.dark .chroma .k,.dark .chroma .kc,.dark .chroma .kd,.dark .chroma .kn,.dark .chroma .kp,.dark .chroma .kr{color:#ff7b72;font-weight:600}
.dark .chroma .kt{color:#d2a8ff}
.dark .chroma .n{color:#c9d1d9}
.dark .chroma .na{color:#79c0ff}
.dark .chroma .nb{color:#d2a8ff}
.dark .chroma .nc{color:#ffa657;font-weight:600}
.dark .chroma .nf{color:#d2a8ff;font-weight:500}
.dark .chroma .no,.dark .chroma .nd,.dark .chroma .ni,.dark .chroma .ne,.dark .chroma .nl,.dark .chroma .nn{color:#c9d1d9}
.dark .chroma .nv{color:#ffa657}
.dark .chroma .nt{color:#7ee787;font-weight:600}
.dark .chroma .l,.dark .chroma .ld{color:#a5d6ff}
.dark .chroma .s,.dark .chroma .sa,.dark .chroma .sb,.dark .chroma .sc,.dark .chroma .dl,.dark .chroma .sd,.dark .chroma .s2,.dark .chroma .se,.dark .chroma .sh,.dark .chroma .si,.dark .chroma .sx,.dark .chroma .sr,.dark .chroma .s1,.dark .chroma .ss{color:#a5d6ff}
.dark .chroma .m,.dark .chroma .mb,.dark .chroma .mf,.dark .chroma .mh,.dark .chroma .mi,.dark .chroma .il,.dark .chroma .mo{color:#79c0ff}
.dark .chroma .o,.dark .chroma .ow{color:#ff7b72}
.dark .chroma .p{color:#c9d1d9}
.dark .chroma .gu{color:#d2a8ff;font-weight:bold}
.dark .chroma .gd{color:#ffdcd7;background-color:rgba(248,81,73,.15)}
.dark .chroma .gi{color:#aff5b4;background-color:rgba(63,185,80,.15)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:640px){
  .container{padding:0 20px}
  section{padding:clamp(48px,8vh,112px) 0}
  .hero{padding:80px 0 56px}
  .hero h1{font-size:clamp(2rem,8.5vw,5rem)}
  .eyebrow{align-items:flex-start;font-size:10.5px;letter-spacing:.12em;line-height:1.55}
  .eyebrow::before{margin-top:8px}
  .binary-bar{font-size:10.5px;letter-spacing:.08em;padding:12px 14px}
  .binary-bar .t2{display:none}
  .bit{padding:15px 14px}
  .term-body{min-height:240px;font-size:12px}
  .term-chip{display:none}
}

/* marketing mobile: collapse text links, keep the CTA */
@media(max-width:760px){
  body.landing .header-nav .header-link,
  body.about .header-nav .header-link,
  body.legal .header-nav .header-link{display:none}
}

/* docs tablet/mobile: sidebar + toc become drawer / hidden */
@media(max-width:1024px){
  body.docs .mobile-menu-btn{display:flex}
  body.docs .header-nav{display:none}
  .header-nav.mobile-open{display:flex;position:fixed;top:var(--header-height);left:0;right:0;bottom:0;
    flex-direction:column;align-items:flex-start;background:var(--shell-surface);padding:1rem;gap:0;overflow-y:auto;z-index:200}
  .header-nav.mobile-open .search-form{order:-1;margin-bottom:1rem;width:100%}
  .header-nav.mobile-open .search-input{width:100%;max-width:none;font-size:16px;padding:12px 16px}
  .header-nav.mobile-open .header-link,.header-nav.mobile-open .nav-cta{display:block;width:100%;padding:14px 0;font-size:1rem;border-bottom:1px solid var(--shell-line);border-radius:0}
  .header-nav.mobile-open .lang-dropdown{padding:14px 0;border-bottom:1px solid var(--shell-line)}
  .header-nav.mobile-open .theme-toggle{margin-top:1rem;width:100%;justify-content:flex-start;gap:.5rem;padding:14px;border-radius:8px;background:var(--shell-raised)}
  .toc-sidebar{display:none}
  .doc-main{margin-left:0;margin-right:0;max-width:100%;padding:32px 24px}
  .sidebar{top:0;width:300px;max-width:85vw;transform:translateX(-100%);transition:transform .3s ease;z-index:200;padding-top:calc(var(--header-height) + 1rem)}
  .sidebar.mobile-open{transform:translateX(0)}
}

@media(max-width:768px){
  .header-inner{padding:0 0.875rem}
  .logo{font-size:14px}
  .doc-main{padding:24px 14px}
  .doc-content h1{font-size:1.7rem}
  .doc-content h2{font-size:1.3rem;margin-top:28px}
  .doc-content pre{margin-left:-14px;margin-right:-14px;border-radius:0;border-left:none;border-right:none}
  .doc-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .admonition{margin-left:-14px;margin-right:-14px;border-radius:0}
  .doc-nav{flex-direction:column}
  .nav-next{text-align:left}
  .footer-main{grid-template-columns:1fr;gap:28px;padding:40px 1rem}
  .footer-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .docs-cards{grid-template-columns:1fr}
  .search-page-form{flex-direction:column}
  .search-btn{width:100%}
}

/* large displays: scale up so content isn't a small island */
@media(min-width:1700px){ :root{--maxw:1520px} html{font-size:19px} }
@media(min-width:2200px){ :root{--maxw:1760px} html{font-size:21px} }
@media(min-width:2800px){ :root{--maxw:2040px} html{font-size:24px} }

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .cursor{display:none}
}
