/* ═══════════════════════════════════════════════════════════════
   ChatGPT for Linux — preview launch concept
   phosphor on deep space · emerald aurora · editorial mono
   ═══════════════════════════════════════════════════════════════ */

/* ── fonts (self-hosted, latin subsets) ─────────────────────── */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/Inter-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/Inter-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/Inter-600.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/Inter-700.woff2') format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/InstrumentSerif-400i.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/JetBrainsMono-400.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/JetBrainsMono-500.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/JetBrainsMono-600.woff2') format('woff2')}

/* ── tokens ─────────────────────────────────────────────────── */
:root{
  --bg-0:#030608;
  --bg-1:#050a0e;
  --bg-2:#0a1218;
  --bg-3:#0d1720;
  --panel:#0b141b;
  --panel-hi:#101c24;
  --line:rgba(151,213,189,.13);
  --line-hi:rgba(151,213,189,.28);
  --brand:#10a37f;
  --brand-hi:#1fd69c;
  --brand-soft:rgba(16,163,127,.14);
  --green-2:#57e6ad;
  --green-3:#8ff2c8;
  --amber:#f0b357;
  --ink:#eaf5ef;
  --ink-dim:#a7bcb2;
  --ink-faint:#71887e;
  --danger:#e5643f;
  --font-sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --font-serif:'Instrument Serif',Georgia,serif;
  --ease:cubic-bezier(.22,.9,.28,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --maxw:1180px;
  --radius:14px;
  --header-h:64px;
}

/* ── reset / base ───────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  background:var(--bg-0);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,video,svg{display:block;max-width:100%}
a{color:var(--green-2);text-decoration:none}
a:hover{color:var(--green-3)}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0;line-height:1.08;font-weight:700;letter-spacing:-.02em}
::selection{background:var(--brand);color:#03130d}
:focus-visible{outline:2px solid var(--green-2);outline-offset:3px;border-radius:4px}
.mono{font-family:var(--font-mono);letter-spacing:-.01em}
.serif{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:0}
.dim{color:var(--ink-dim)}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.inline-code{font-family:var(--font-mono);font-size:.88em;color:var(--green-2);background:rgba(16,163,127,.1);border:1px solid var(--line);border-radius:6px;padding:.08em .4em;white-space:nowrap}

/* thin phosphor scrollbar */
@supports (scrollbar-width:thin){
  *{scrollbar-width:thin;scrollbar-color:#1d3a30 transparent}
}

.skip-link{
  position:fixed;top:-100px;left:16px;z-index:200;
  background:var(--brand);color:#03130d;font-family:var(--font-mono);font-size:.85rem;
  padding:.6em 1em;border-radius:8px;transition:top .2s var(--ease);
}
.skip-link:focus{top:12px;color:#03130d}

/* ── aurora backdrop ────────────────────────────────────────── */
.aurora{position:fixed;inset:0;z-index:-2;overflow:hidden;background:
  radial-gradient(120% 90% at 78% -10%,rgba(16,163,127,.16),transparent 55%),
  radial-gradient(90% 70% at 8% 12%,rgba(23,105,128,.12),transparent 60%),
  var(--bg-0);
}
.aurora-canvas{position:absolute;inset:0;width:100%;height:100%}
.aurora-fallback{position:absolute;inset:0;background:
  radial-gradient(60% 42% at 70% 6%,rgba(31,214,156,.10),transparent 70%),
  radial-gradient(46% 36% at 18% 30%,rgba(16,163,127,.07),transparent 70%),
  radial-gradient(70% 50% at 50% 108%,rgba(11,74,60,.20),transparent 72%);
}
.vignette{position:absolute;inset:0;background:
  radial-gradient(130% 100% at 50% 0%,transparent 40%,rgba(2,4,6,.55) 100%);
  pointer-events:none}

/* faint engineering grid behind sections */
.section::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;
  background-image:linear-gradient(rgba(151,213,189,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(151,213,189,.028) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(70% 60% at 50% 30%,#000 0%,transparent 100%);
  -webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000 0%,transparent 100%);
}

/* ── header ─────────────────────────────────────────────────── */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(4,8,11,.78);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
  box-shadow:0 8px 40px rgba(0,0,0,.45);
}
.header-inner{
  max-width:var(--maxw);margin:0 auto;padding:0 24px;
  height:var(--header-h);display:flex;align-items:center;gap:28px;
}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-family:var(--font-mono);font-size:.98rem;white-space:nowrap}
.brand:hover{color:var(--ink)}
.brand-mark{
  display:grid;place-items:center;width:30px;height:30px;border-radius:9px;
  background:linear-gradient(145deg,rgba(16,163,127,.32),rgba(16,163,127,.08));
  border:1px solid rgba(31,214,156,.35);color:var(--green-2);
  font-size:1rem;text-shadow:0 0 12px rgba(31,214,156,.8);
  box-shadow:0 0 18px rgba(16,163,127,.25), inset 0 0 10px rgba(16,163,127,.15);
}
.brand-text b{color:var(--green-2);font-weight:600}
.brand-tag{
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--green-2);border:1px solid rgba(31,214,156,.4);border-radius:99px;
  padding:2px 8px;background:rgba(16,163,127,.08);
}
.site-nav{margin-left:auto}
.site-nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.site-nav a{
  display:block;padding:8px 13px;border-radius:8px;color:var(--ink-dim);
  font-size:.9rem;font-weight:500;transition:color .2s,background .2s;
}
.site-nav a:hover{color:var(--ink);background:rgba(151,213,189,.07)}
.site-nav a[aria-current="true"]{color:var(--green-2);background:var(--brand-soft)}
.header-cta{display:flex;align-items:center}
.scroll-progress{
  position:absolute;left:0;bottom:-1px;height:2px;width:100%;
  background:linear-gradient(90deg,var(--brand),var(--green-2));
  transform-origin:0 50%;transform:scaleX(0);
}
.nav-toggle{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;width:42px;height:38px;cursor:pointer;position:relative}
.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{
  position:absolute;left:11px;width:18px;height:1.8px;background:var(--ink);border-radius:2px;transition:transform .25s var(--ease),opacity .2s;content:"";
}
.nav-toggle-bars{top:18px}
.nav-toggle-bars::before{left:0;top:-6px}
.nav-toggle-bars::after{left:0;top:6px}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before{transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after{transform:translateY(-6px) rotate(-45deg)}
.mobile-nav{
  display:none;overflow:hidden;max-height:0;transition:max-height .35s var(--ease);
  background:rgba(4,8,11,.96);border-bottom:1px solid var(--line);
}
.mobile-nav ul{list-style:none;margin:0;padding:10px 24px 20px;display:grid;gap:2px}
.mobile-nav a{display:block;padding:12px 8px;color:var(--ink);font-size:1.05rem;border-bottom:1px solid rgba(151,213,189,.07)}
.mobile-nav .btn{margin-top:14px;text-align:center;justify-content:center;border-bottom:0}

/* ── buttons ────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:.55em;
  font-family:var(--font-mono);font-weight:600;font-size:.95rem;
  padding:.85em 1.5em;border-radius:12px;cursor:pointer;
  border:1px solid transparent;transition:transform .2s var(--ease),box-shadow .25s,background .2s,border-color .2s,color .2s;
  -webkit-tap-highlight-color:transparent;
}
.btn .ico{width:1em;height:1em}
.btn-primary{
  background:linear-gradient(180deg,#14b98c,#0c8f6c);color:#02150e;
  box-shadow:0 0 0 1px rgba(31,214,156,.4),0 8px 28px rgba(16,163,127,.35),inset 0 1px 0 rgba(255,255,255,.22);
}
.btn-primary:hover{color:#02150e;transform:translateY(-2px);box-shadow:0 0 0 1px rgba(31,214,156,.6),0 14px 38px rgba(16,163,127,.5),inset 0 1px 0 rgba(255,255,255,.25)}
.btn-ghost{
  background:rgba(151,213,189,.05);color:var(--ink);border-color:var(--line-hi);
  box-shadow:inset 0 0 0 0 rgba(151,213,189,.08);
}
.btn-ghost:hover{color:var(--ink);border-color:rgba(31,214,156,.55);background:rgba(16,163,127,.1);transform:translateY(-2px)}
.btn-small{padding:.55em 1.05em;font-size:.82rem;border-radius:9px}
.btn-large{padding:1em 1.9em;font-size:1rem}
.text-cue{color:var(--ink-dim);font-size:.85rem;padding:1em .4em;position:relative}
.text-cue::after{content:"";position:absolute;left:0;right:100%;bottom:.4em;height:1px;background:var(--green-2);transition:right .3s var(--ease)}
.text-cue:hover{color:var(--green-2)}
.text-cue:hover::after{right:0}

/* ── hero ───────────────────────────────────────────────────── */
.hero{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:calc(var(--header-h) + 48px) 24px 96px;text-align:center;
}
.hero-inner{max-width:980px;position:relative}
.bootline{
  font-size:.85rem;color:var(--brand-hi);opacity:.85;margin-bottom:26px;
  min-height:1.4em;text-shadow:0 0 14px rgba(31,214,156,.5);
}
.caret{animation:blink 1.06s steps(1) infinite;color:var(--green-2)}
@keyframes blink{50%{opacity:0}}
.kicker{
  font-size:.78rem;color:var(--ink-faint);text-transform:lowercase;
  letter-spacing:.08em;margin-bottom:22px;
}
.hero-title{
  font-size:clamp(3.1rem,9.2vw,6.4rem);
  letter-spacing:-.045em;line-height:.98;font-weight:700;
  margin:0 0 30px;
}
.hero-title .line{display:block}
.hero-title .serif{
  font-size:1.06em;color:var(--green-2);
  text-shadow:0 0 42px rgba(31,214,156,.45);
  padding-right:.06em;
}
.hero-title .dot{color:var(--brand);text-shadow:0 0 30px var(--brand)}
.hero-sub{
  font-size:clamp(1.02rem,1.5vw,1.22rem);color:var(--ink-dim);
  max-width:720px;margin:0 auto 38px;line-height:1.65;
}
.hero-sub strong{color:var(--ink);font-weight:600}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 18px;margin-bottom:46px}
.chip-row{
  list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
  margin:0;padding:0;
}
.chip{
  font-size:.74rem;color:var(--ink-dim);padding:5px 12px;border-radius:99px;
  border:1px solid var(--line);background:rgba(10,18,24,.6);
  transition:border-color .25s,color .25s,box-shadow .25s,transform .25s;
}
.chip:hover{border-color:rgba(31,214,156,.5);color:var(--green-3);box-shadow:0 0 16px rgba(16,163,127,.22);transform:translateY(-1px)}
.chip-arch{color:#8ad7f0;border-color:rgba(138,215,240,.22)}
.chip-arch:hover{color:#b5e6f7;border-color:rgba(138,215,240,.5);box-shadow:0 0 16px rgba(138,215,240,.2)}
.chip-pkg{color:var(--amber);border-color:rgba(240,179,87,.22)}
.chip-pkg:hover{color:#f6cd8d;border-color:rgba(240,179,87,.5);box-shadow:0 0 16px rgba(240,179,87,.18)}
.hero-scrollcue{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-faint);
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.scrollcue-line{width:1px;height:44px;background:linear-gradient(180deg,var(--brand),transparent);position:relative;overflow:hidden}
.scrollcue-line::after{content:"";position:absolute;top:-40%;left:0;width:100%;height:40%;background:var(--green-3);animation:cuefall 2.2s var(--ease) infinite}
@keyframes cuefall{60%,100%{top:110%}}

/* ── marquee ────────────────────────────────────────────────── */
.marquee{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(6,11,15,.7);overflow:hidden;padding:13px 0;position:relative;
}
.marquee-track{display:flex;gap:0;width:max-content;animation:marquee 46s linear infinite;color:var(--ink-faint);font-size:.78rem;white-space:nowrap}
.marquee-track span{padding-right:.5em}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ── sections ───────────────────────────────────────────────── */
.section{position:relative;max-width:var(--maxw);margin:0 auto;padding:clamp(84px,11vw,150px) 24px}
.section-head{max-width:820px;margin-bottom:clamp(40px,6vw,70px)}
.section-kicker{
  font-size:.76rem;color:var(--brand-hi);margin-bottom:16px;
  letter-spacing:.14em;text-transform:uppercase;
  display:flex;align-items:center;gap:12px;
}
.section-kicker::before{content:"";width:26px;height:1px;background:var(--brand);box-shadow:0 0 8px var(--brand)}
.section-title{
  font-size:clamp(2rem,4.6vw,3.4rem);letter-spacing:-.03em;margin-bottom:22px;
}
.section-title .dim{color:var(--ink-dim)}
.section-title .dim .serif{color:var(--green-2)}
.section-lede{font-size:clamp(1rem,1.4vw,1.14rem);color:var(--ink-dim);max-width:680px}
.section-lede a{border-bottom:1px solid rgba(87,230,173,.35)}

/* ── film / player ──────────────────────────────────────────── */
.player-shell{margin:0}
.player{
  position:relative;border-radius:18px;overflow:hidden;
  background:#000;border:1px solid var(--line-hi);
  box-shadow:0 30px 90px rgba(0,0,0,.6),0 0 0 1px rgba(16,163,127,.1),0 0 90px rgba(16,163,127,.14);
  isolation:isolate;
}
.player::before{ /* scan sheen while idle */
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px);
  transition:opacity .5s;
}
.player.playing::before{opacity:0}
.player-video{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#000}
.player-veil{
  position:absolute;inset:0;z-index:4;display:grid;place-items:center;
  background:radial-gradient(90% 90% at 50% 45%,rgba(3,7,9,.18),rgba(3,7,9,.66) 85%);
  border:0;cursor:pointer;padding:0;width:100%;
  transition:background .3s;
}
.player.playing .player-veil,.player.ended .player-veil{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .35s,visibility .35s}
.veil-glow{
  position:absolute;width:min(52vw,340px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(16,163,127,.32),rgba(16,163,127,.08) 45%,transparent 70%);
  filter:blur(6px);animation:pulse 3.4s var(--ease) infinite;
}
@keyframes pulse{50%{transform:scale(1.12);opacity:.75}}
.veil-play{
  position:relative;width:86px;height:86px;border-radius:50%;color:#04231a;
  background:linear-gradient(180deg,#2ee6ab,#0d9f77);
  display:grid;place-items:center;
  box-shadow:0 0 0 10px rgba(16,163,127,.14),0 0 0 1px rgba(31,214,156,.5),0 18px 50px rgba(16,163,127,.45);
  transition:transform .25s var(--ease),box-shadow .3s;
}
.veil-play svg{width:34px;height:34px;margin-left:4px}
.player-veil:hover .veil-play{transform:scale(1.07);box-shadow:0 0 0 16px rgba(16,163,127,.1),0 0 0 1px rgba(31,214,156,.7),0 22px 60px rgba(16,163,127,.6)}
.veil-label{
  position:absolute;bottom:22px;left:0;right:0;text-align:center;
  font-size:.74rem;color:rgba(234,245,239,.85);letter-spacing:.12em;text-transform:uppercase;
  text-shadow:0 2px 12px rgba(0,0,0,.8);
}
.player-bar{
  position:absolute;left:0;right:0;bottom:0;z-index:5;
  display:flex;align-items:center;gap:12px;padding:10px 16px;
  background:linear-gradient(180deg,transparent,rgba(3,7,9,.88) 40%);
  opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s var(--ease);
}
.player:hover .player-bar,.player:focus-within .player-bar,.player.playing .player-bar,.player-bar.stuck{opacity:1;transform:none}
.pbtn{
  background:none;border:0;color:var(--ink);cursor:pointer;width:34px;height:34px;
  display:grid;place-items:center;border-radius:8px;transition:background .2s,color .2s;
}
.pbtn:hover{background:rgba(151,213,189,.12);color:var(--green-2)}
.pbtn svg{width:17px;height:17px}
.i-pause,.i-mut{display:none}
.player.playing .i-play{display:none}
.player.playing .i-pause{display:block}
.player.muted .i-vol{display:none}
.player.muted .i-mut{display:block}
.ptime{font-size:.72rem;color:var(--ink-dim);min-width:34px;text-align:center}
.pprogress{
  position:relative;flex:1;height:20px;cursor:pointer;display:flex;align-items:center;
}
.pprogress::before{content:"";position:absolute;left:0;right:0;height:4px;border-radius:99px;background:rgba(151,213,189,.18)}
.pprogress-buffer,.pprogress-played{position:absolute;left:0;height:4px;border-radius:99px}
.pprogress-buffer{top:8px;background:rgba(151,213,189,.16)}
.pprogress-played{top:8px;background:linear-gradient(90deg,var(--brand),var(--green-2));box-shadow:0 0 10px rgba(31,214,156,.55)}
.pprogress-thumb{
  position:absolute;top:9px;width:12px;height:12px;border-radius:50%;background:var(--green-3);
  transform:translateX(-50%) scale(0);transition:transform .18s var(--ease);
  box-shadow:0 0 0 4px rgba(31,214,156,.2),0 0 12px rgba(31,214,156,.7);
}
.pprogress:hover .pprogress-thumb,.pprogress:focus-visible .pprogress-thumb{transform:translateX(-50%) scale(1)}
.player-caption{
  margin-top:16px;font-size:.75rem;color:var(--ink-faint);text-align:center;
}
.player-caption a{color:var(--ink-dim);border-bottom:1px solid var(--line-hi)}
.player-caption a:hover{color:var(--green-2)}

/* ── tabs / mode switch ─────────────────────────────────────── */
.mode-switch{display:flex;justify-content:center;margin-bottom:40px}
.tablist{
  position:relative;display:flex;gap:4px;padding:5px;border-radius:14px;
  background:rgba(9,16,21,.85);border:1px solid var(--line);
  box-shadow:inset 0 2px 12px rgba(0,0,0,.45);
}
.tab{
  position:relative;z-index:1;background:none;border:0;cursor:pointer;
  color:var(--ink-dim);font-size:.88rem;padding:.62em 1.25em;border-radius:10px;
  display:inline-flex;align-items:center;gap:.6em;
  transition:color .25s;
}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:#032018}
.tab-glyph{opacity:.85;font-weight:600}
.tab-ink{
  position:absolute;top:5px;bottom:5px;left:0;width:0;border-radius:10px;z-index:0;
  background:linear-gradient(180deg,#23d598,#0e9a75);
  box-shadow:0 4px 18px rgba(16,163,127,.4),inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .35s var(--ease-out),width .35s var(--ease-out);
}

.mode-stage{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(240px,.85fr);gap:36px;align-items:center}
@media (max-width:960px){.mode-stage{grid-template-columns:1fr;gap:34px}}

/* app window vignette */
.appwin{
  border-radius:16px;overflow:hidden;position:relative;
  background:linear-gradient(180deg,#0c161d,#0a1118);
  border:1px solid var(--line-hi);
  box-shadow:0 34px 90px rgba(0,0,0,.55),0 0 60px rgba(16,163,127,.1);
  transform:perspective(1600px) rotateX(1.6deg);
  transform-origin:50% 0;
}
.appwin-bar{
  display:flex;align-items:center;justify-content:space-between;
  height:44px;padding:0 14px 0 16px;
  background:linear-gradient(180deg,rgba(21,34,42,.9),rgba(13,22,28,.9));
  border-bottom:1px solid var(--line);
}
.appwin-id{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--ink-dim)}
.appwin-logo{width:17px;height:17px;color:var(--green-2)}
.appwin-crumb{color:var(--ink-faint);font-size:.72rem}
.appwin-controls{display:flex;gap:8px}
.appwin-controls span{width:11px;height:11px;border-radius:50%;background:rgba(151,213,189,.16);border:1px solid rgba(151,213,189,.25)}
.appwin-controls span:last-child{background:rgba(229,100,63,.5);border-color:rgba(229,100,63,.65)}
.appwin-body{position:relative;min-height:380px}
.mode-panel{position:absolute;inset:0;display:grid;grid-template-columns:216px 1fr;opacity:1;transition:opacity .3s}
.mode-panel[hidden]{display:none}
.mode-panel.enter{animation:modein .4s var(--ease-out)}
@keyframes modein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.win-sidebar{
  border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:4px;
  background:rgba(7,12,16,.6);font-size:.74rem;color:var(--ink-dim);overflow:hidden;
}
.side-label{margin:8px 6px 6px;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}
.win-sidebar ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:2px}
.win-sidebar li{padding:5px 10px;border-radius:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;justify-content:space-between;gap:8px}
.win-sidebar li span{color:var(--ink-faint);font-size:.68rem}
.win-sidebar li.active{background:var(--brand-soft);color:var(--green-2);box-shadow:inset 2px 0 0 var(--brand)}
.side-codex{
  margin-top:auto;display:flex;align-items:center;gap:8px;padding:8px 10px;
  border:1px solid rgba(31,214,156,.3);border-radius:9px;color:var(--green-2);
  background:rgba(16,163,127,.07);font-size:.7rem;white-space:nowrap;
}
.side-dot{width:7px;height:7px;border-radius:50%;background:var(--green-2);box-shadow:0 0 10px var(--green-2);animation:pulse 2.4s var(--ease) infinite;flex:none}

.win-main{display:flex;flex-direction:column;min-width:0}
.chat{flex:1;padding:22px 26px;display:flex;flex-direction:column;gap:14px;overflow:hidden;justify-content:center}
.msg{max-width:82%;font-size:.85rem;line-height:1.55}
.msg p{margin:0 0 .6em}
.msg p:last-child{margin:0}
.msg.user{
  align-self:flex-end;background:rgba(151,213,189,.1);border:1px solid var(--line);
  border-radius:14px 14px 4px 14px;padding:11px 15px;color:var(--ink);
}
.msg.bot{
  align-self:flex-start;border-left:2px solid var(--brand);padding:2px 0 2px 16px;color:var(--ink-dim);
}
.msg.bot em{color:var(--ink);font-style:normal;font-weight:600}
.msg-code{
  margin:.7em 0;background:#060d10;border:1px solid var(--line);border-radius:9px;
  padding:10px 13px;font-size:.76rem;color:var(--green-3);overflow:hidden;
}
.msg.typing{opacity:.75}
.composer{
  border-top:1px solid var(--line);background:rgba(7,12,16,.7);
  display:flex;align-items:center;gap:12px;padding:12px 16px;
}
.composer-add{
  width:30px;height:30px;border-radius:8px;border:1px dashed var(--line-hi);
  display:grid;place-items:center;color:var(--ink-faint);font-size:1rem;
}
.composer-text{flex:1;color:var(--ink-faint);font-size:.76rem}
.composer-tools{font-size:.66rem;color:var(--ink-faint);letter-spacing:.06em}

.workgrid{flex:1;display:grid;grid-template-columns:1fr 1.35fr;gap:0;min-height:0}
.filepane{border-right:1px solid var(--line);padding:16px;font-size:.74rem;color:var(--ink-dim);display:flex;flex-direction:column;background:rgba(7,12,16,.4)}
.pane-label{margin:0 0 10px;color:var(--ink);font-weight:600}
.filepane ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.filepane li{display:flex;justify-content:space-between;gap:10px;padding:5px 8px;border-radius:7px}
.filepane li:hover{background:rgba(151,213,189,.06)}
.filepane .m{font-size:.66rem;color:var(--ink-faint)}
.filepane .m.ok{color:var(--ink-faint)}
.filepane li:not(:has(.m.ok)) .m{color:var(--amber)}
.pane-foot{margin-top:auto;padding-top:14px;font-size:.66rem;color:var(--ink-faint);border-top:1px dashed var(--line)}
.docpane{padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.docpane-title{margin:0;font-weight:600;font-size:.84rem;color:var(--ink)}
.docpane-code{
  margin:0;background:#060d10;border:1px solid var(--line);border-radius:10px;
  padding:14px;font-size:.72rem;line-height:1.65;color:var(--ink-dim);overflow:hidden;
}
.docpane-code .new{color:var(--green-2);background:rgba(16,163,127,.1);border-radius:3px;display:inline-block;width:100%}
.browserchip{
  display:flex;align-items:center;gap:9px;font-size:.7rem;color:var(--green-2);
  border:1px solid rgba(31,214,156,.28);background:rgba(16,163,127,.06);
  border-radius:10px;padding:9px 13px;
}

.terminal{position:absolute;inset:0;display:flex;flex-direction:column;background:#04090a}
.term-head{
  display:flex;align-items:center;gap:12px;height:40px;padding:0 14px;
  background:rgba(10,17,21,.92);border-bottom:1px solid var(--line);
  font-size:.7rem;color:var(--ink-faint);
}
.term-dots{display:flex;gap:6px}
.term-dots i{width:10px;height:10px;border-radius:50%;background:rgba(151,213,189,.18);border:1px solid rgba(151,213,189,.3)}
.term-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.term-badge{color:var(--green-2);border:1px solid rgba(31,214,156,.35);padding:2px 9px;border-radius:99px;font-size:.62rem;background:rgba(16,163,127,.08)}
.term-body{
  flex:1;padding:18px 20px;font-size:.78rem;line-height:1.7;overflow:hidden;
  display:flex;flex-direction:column;gap:2px;color:var(--ink-dim);
}
.tl{margin:0;white-space:pre-wrap}
.tl.prompt{color:var(--green-2)}
.tl.ok{color:var(--green-2)}
.tl.dim{color:var(--ink-faint)}
.diff{margin:6px 0;padding:8px 12px;background:#06110d;border:1px solid rgba(16,163,127,.2);border-radius:8px;font-size:.72rem;line-height:1.65;color:var(--ink-dim)}
.diff .add{color:var(--green-2);background:rgba(16,163,127,.13);display:inline-block;width:100%}

/* mode description column */
.mode-desc .desc{border-left:1px solid var(--line);padding-left:30px}
.desc-title{font-size:1.35rem;margin-bottom:12px;letter-spacing:-.02em}
.mode-desc p{color:var(--ink-dim);font-size:.96rem;margin-bottom:16px}
.desc-points{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:.76rem;color:var(--ink-dim)}
.desc-points li{display:flex;gap:10px;align-items:baseline}
.desc-points li::before{content:"▸";color:var(--brand-hi);flex:none}

/* ── capabilities ───────────────────────────────────────────── */
.caps-list{list-style:none;margin:0;padding:0;counter-reset:cap}
.cap{
  display:grid;grid-template-columns:110px 1fr;gap:26px;
  padding:34px 6px;border-top:1px solid var(--line);
  transition:background .3s,padding-left .3s var(--ease);
}
.cap:last-child{border-bottom:1px solid var(--line)}
.cap:hover{background:linear-gradient(90deg,rgba(16,163,127,.05),transparent 70%);padding-left:16px}
.cap-num{
  font-size:1.05rem;color:var(--brand-hi);text-shadow:0 0 16px rgba(31,214,156,.4);
  padding-top:6px;
}
.cap-title{font-size:1.3rem;margin-bottom:10px;letter-spacing:-.02em}
.cap-body p{margin:0;color:var(--ink-dim);max-width:640px;font-size:.98rem}
@media (max-width:680px){.cap{grid-template-columns:1fr;gap:10px}.cap-num{padding:0}}

/* ── install ────────────────────────────────────────────────── */
.install-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.25fr);gap:36px;align-items:start;margin-bottom:64px}
@media (max-width:960px){.install-grid{grid-template-columns:1fr}}
.ctl-label{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin:26px 0 10px}
.ctl-label:first-child{margin-top:0}
.seg{
  position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;
  padding:5px;border-radius:13px;background:rgba(9,16,21,.85);
  border:1px solid var(--line);box-shadow:inset 0 2px 12px rgba(0,0,0,.4);
}
.seg-btn{
  position:relative;z-index:1;background:none;border:0;cursor:pointer;
  color:var(--ink-dim);font-size:.86rem;padding:.68em .9em;border-radius:9px;
  transition:color .25s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.seg-btn .dim{transition:color .25s}
.seg-btn:hover{color:var(--ink)}
.seg-btn[aria-selected="true"]{color:#032018}
.seg-btn[aria-selected="true"] .dim{color:rgba(3,32,24,.72)}
.seg-ink{
  position:absolute;top:5px;bottom:5px;left:0;width:0;border-radius:9px;z-index:0;
  background:linear-gradient(180deg,#23d598,#0e9a75);
  box-shadow:0 4px 16px rgba(16,163,127,.4),inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .32s var(--ease-out),width .32s var(--ease-out);
}
.uname-hint{
  margin-top:30px;border:1px dashed var(--line-hi);border-radius:12px;
  padding:16px 18px;font-size:.76rem;color:var(--ink-dim);background:rgba(9,16,21,.5);
}
.uname-hint p{margin:0 0 8px}
.uname-line{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px}
.uname-hint code{
  color:var(--green-2);background:#060d10;border:1px solid var(--line);
  border-radius:7px;padding:4px 10px;font-size:.78rem;
}
.uname-hint b{color:var(--green-2);font-weight:600}

.install-card{
  border:1px solid var(--line-hi);border-radius:16px;overflow:hidden;
  background:linear-gradient(180deg,#0c161d,#0a1017);
  box-shadow:0 26px 70px rgba(0,0,0,.5),0 0 50px rgba(16,163,127,.08);
}
.install-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;border-bottom:1px solid var(--line);
  background:rgba(10,17,22,.9);font-size:.78rem;color:var(--green-2);
  text-shadow:0 0 12px rgba(31,214,156,.35);
}
.copy-btn{
  display:inline-flex;align-items:center;gap:.5em;cursor:pointer;
  background:rgba(16,163,127,.1);border:1px solid rgba(31,214,156,.4);
  color:var(--green-2);font-size:.72rem;padding:.5em .95em;border-radius:9px;
  transition:background .2s,border-color .2s,transform .15s var(--ease),box-shadow .2s;
}
.copy-btn svg{width:14px;height:14px}
.copy-btn:hover{background:rgba(16,163,127,.2);border-color:var(--green-2);box-shadow:0 0 18px rgba(16,163,127,.3)}
.copy-btn:active{transform:scale(.96)}
.copy-btn.copied{background:var(--brand);color:#03150e;border-color:var(--green-2)}
.codeblock{
  margin:0;padding:22px 22px 24px;overflow-x:auto;
  font-size:.82rem;line-height:1.85;color:var(--ink);
}
.codeblock .cmt{color:var(--ink-faint)}
.codeblock .url{color:var(--green-2)}
.codeblock .sudo{color:var(--amber)}
.codeblock .fn{color:#8ad7f0}
.install-note{
  padding:11px 16px;border-top:1px solid var(--line);margin:0;
  font-size:.7rem;color:var(--ink-dim);background:rgba(7,12,16,.6);
}
.install-note .dim{color:var(--ink-faint)}
[data-pkg-badge]{color:var(--amber)}
[data-versions]{color:var(--ink)}

/* support matrix */
.matrix-wrap{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(8,14,18,.7)}
.matrix-title{
  margin:0;padding:15px 20px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-dim);border-bottom:1px solid var(--line);background:rgba(10,17,22,.8);
}
.matrix-scroll{overflow-x:auto}
.matrix{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}
.matrix th,.matrix td{padding:14px 20px;text-align:left;border-bottom:1px solid rgba(151,213,189,.08)}
.matrix thead th{
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:500;background:rgba(10,17,22,.5);
}
.matrix tbody th{font-weight:600;color:var(--ink)}
.matrix tbody tr{transition:background .2s}
.matrix tbody tr:hover{background:rgba(16,163,127,.05)}
.matrix tbody tr:last-child th,.matrix tbody tr:last-child td{border-bottom:0}
.matrix td.mono{color:var(--amber);font-size:.82rem}
.matrix td{color:var(--green-2)}
.matrix td .pill{color:var(--ink-dim)}
.pill{
  font-size:.66rem;letter-spacing:.12em;border:1px solid rgba(31,214,156,.35);
  border-radius:99px;padding:3px 11px;color:var(--green-2);background:rgba(16,163,127,.08);
}
.matrix-foot{margin:0;padding:13px 20px;font-size:.7rem;color:var(--ink-faint);border-top:1px solid var(--line)}
.matrix-foot a{color:var(--ink-dim);border-bottom:1px solid var(--line-hi)}
.matrix-foot a:hover{color:var(--green-2)}

/* ── source / announcement ──────────────────────────────────── */
.source-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:44px;align-items:center}
@media (max-width:960px){.source-grid{grid-template-columns:1fr}}
.card-fig{margin:0}
.card-fig-link{display:block;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line-hi);
  box-shadow:0 26px 70px rgba(0,0,0,.5),0 0 50px rgba(16,163,127,.08);transition:transform .3s var(--ease),box-shadow .3s}
.card-fig-link img{width:100%;height:auto;transition:transform .6s var(--ease)}
.card-fig-link:hover{transform:translateY(-4px);box-shadow:0 34px 84px rgba(0,0,0,.55),0 0 60px rgba(16,163,127,.16)}
.card-fig-link:hover img{transform:scale(1.025)}
.card-fig-open{
  position:absolute;right:12px;bottom:12px;font-size:.7rem;color:var(--green-2);
  background:rgba(4,8,11,.85);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1px solid rgba(31,214,156,.4);border-radius:99px;padding:6px 14px;
  opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s var(--ease);
}
.card-fig-link:hover .card-fig-open,.card-fig-link:focus-visible .card-fig-open{opacity:1;transform:none}
.card-fig figcaption{margin-top:14px;font-size:.72rem;color:var(--ink-faint)}
.pullquote{margin:0}
.pullquote p{
  font-family:var(--font-serif);font-style:italic;font-size:clamp(1.4rem,2.6vw,1.9rem);
  line-height:1.35;color:var(--ink);margin-bottom:18px;
  text-shadow:0 0 30px rgba(16,163,127,.15);
}
.pullquote footer{font-size:.72rem;color:var(--ink-dim);line-height:1.8}
.pq-tail{color:var(--green-2)}

/* ── faq ────────────────────────────────────────────────────── */
.faq-list{border-top:1px solid var(--line);max-width:860px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{margin:0;font-size:inherit}
.faq-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
  background:none;border:0;cursor:pointer;color:var(--ink);
  font-family:var(--font-sans);font-size:1.06rem;font-weight:600;text-align:left;
  padding:24px 6px;transition:color .2s,padding-left .25s var(--ease);
}
.faq-btn:hover{color:var(--green-2);padding-left:14px}
.faq-chevron{
  flex:none;width:12px;height:12px;position:relative;transform:rotate(45deg);
  transition:transform .3s var(--ease);
}
.faq-chevron::before,.faq-chevron::after{content:"";position:absolute;background:var(--brand-hi);border-radius:2px}
.faq-chevron::before{width:12px;height:1.6px;top:5.2px;left:0}
.faq-chevron::after{width:1.6px;height:12px;left:5.2px;top:0}
.faq-btn[aria-expanded="true"] .faq-chevron{transform:rotate(-135deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease)}
.faq-a > *{overflow:hidden;margin:0}
.faq-a.open{grid-template-rows:1fr}
.faq-a p{color:var(--ink-dim);padding:0 6px 26px;max-width:680px;font-size:.96rem}

/* ── final cta ──────────────────────────────────────────────── */
.section-cta{max-width:none;padding-left:0;padding-right:0}
.cta-panel{
  position:relative;max-width:var(--maxw);margin:0 auto;padding:clamp(64px,9vw,120px) 24px;
  text-align:center;overflow:hidden;border-radius:28px;
  border:1px solid var(--line-hi);
  background:
    radial-gradient(80% 120% at 50% 120%,rgba(16,163,127,.22),transparent 60%),
    linear-gradient(180deg,#0a141b,#070d12);
  box-shadow:0 40px 120px rgba(0,0,0,.55),0 0 80px rgba(16,163,127,.1);
}
.cta-glow{
  position:absolute;top:-140px;left:50%;transform:translateX(-50%);
  width:520px;height:340px;border-radius:50%;pointer-events:none;
  background:radial-gradient(ellipse,rgba(31,214,156,.16),transparent 70%);
  filter:blur(10px);
}
.cta-kicker{font-size:.8rem;color:var(--brand-hi);margin-bottom:24px;text-shadow:0 0 14px rgba(31,214,156,.4)}
.cta-title{
  font-size:clamp(2.2rem,5.4vw,4rem);letter-spacing:-.035em;margin-bottom:40px;
}
.cta-title .serif{color:var(--green-2);text-shadow:0 0 40px rgba(31,214,156,.4)}
.cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-bottom:34px}
.cta-note{font-size:.76rem;color:var(--ink-faint);margin:0;letter-spacing:.04em}
.cta-penguin{display:inline-block;animation:waddle 3.2s var(--ease) infinite}
@keyframes waddle{0%,100%{transform:rotate(0)}8%{transform:rotate(-10deg)}16%{transform:rotate(8deg)}24%{transform:rotate(0)}}

/* ── footer ─────────────────────────────────────────────────── */
.site-footer{border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(6,10,14,.4),rgba(3,6,8,.9));position:relative}
.footer-inner{
  max-width:var(--maxw);margin:0 auto;padding:56px 24px 40px;
  display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:44px;
}
@media (max-width:860px){.footer-inner{grid-template-columns:1fr;gap:36px}}
.footer-brand .brand{margin-bottom:18px}
.footer-note{font-size:.82rem;color:var(--ink-faint);line-height:1.7;max-width:420px}
.footer-h{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin:4px 0 14px}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer-col a{color:var(--ink-dim);font-size:.88rem;transition:color .2s}
.footer-col a:hover{color:var(--green-2)}
.footer-base{
  max-width:var(--maxw);margin:0 auto;padding:18px 24px 26px;
  display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;
  border-top:1px solid rgba(151,213,189,.07);
  font-size:.68rem;color:var(--ink-faint);
}

/* ── toast ──────────────────────────────────────────────────── */
.toast{
  position:fixed;bottom:28px;left:50%;z-index:150;
  transform:translate(-50%,16px);opacity:0;pointer-events:none;
  background:rgba(8,15,19,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(31,214,156,.45);border-radius:12px;
  color:var(--green-2);font-size:.8rem;padding:11px 20px;
  box-shadow:0 16px 50px rgba(0,0,0,.5),0 0 30px rgba(16,163,127,.2);
  transition:transform .35s var(--ease),opacity .35s;
}
.toast.show{transform:translate(-50%,0);opacity:1}

/* ── reveal-on-scroll ───────────────────────────────────────── */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;transition:none}
}

/* ── responsive ─────────────────────────────────────────────── */
@media (max-width:1020px){
  .mode-panel{grid-template-columns:190px 1fr}
}
@media (max-width:860px){
  .site-nav{display:none}
  .nav-toggle{display:block}
  .header-cta{display:none}
  .site-header.nav-open .mobile-nav{display:block;max-height:480px}
  .hero{padding-top:calc(var(--header-h) + 20px)}
  .hero-sub{margin-bottom:30px}
}
@media (max-width:680px){
  .mode-panel{grid-template-columns:1fr}
  .win-sidebar{display:none}
  .workgrid{grid-template-columns:1fr}
  .filepane{display:none}
  .chat{padding:16px}
  .msg{max-width:94%}
  .appwin-body{min-height:340px}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn{justify-content:center}
  .text-cue{padding:14px 0 0}
  .install-card-head{flex-wrap:wrap}
  .codeblock{font-size:.76rem}
  .cta-actions{flex-direction:column;align-items:stretch}
  .cta-actions .btn{justify-content:center}
  .seg-btn .dim{display:none}
  .player-bar{gap:8px;padding:8px 10px}
  .ptime[data-duration]{display:none}
  .copy-btn{padding:.8em 1.2em;font-size:.78rem}
  .pbtn{width:40px;height:40px}
}
@media (min-width:2200px){
  :root{--maxw:1380px}
}

/* ── reduced motion ─────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .marquee-track{animation:none;transform:none}
  .scrollcue-line::after{display:none}
  .veil-glow{animation:none}
  .player-bar{opacity:1;transform:none}
  .appwin{transform:none}
}
