/* ============================================================
   impulse — landing page
   Gradient Glow direction + subtle space atmosphere
   ============================================================ */

:root{
  /* brand */
  --c-cyan:#02CFFD;
  --c-cyan-2:#19C8F5;
  --c-blue:#3681D8;
  --grad:linear-gradient(100deg,#02CFFD 0%,#1CA8EB 52%,#3681D8 100%);

  /* space / surface */
  --bg:#06080d;
  --bg-2:#080b12;
  --panel:#0c1019;
  --panel-2:#10141f;
  --line:#1c2230;
  --line-2:#262e3e;

  /* ink */
  --txt:#e8edf5;
  --mut:#97a2b6;
  --mut-2:#5c6678;
  --dim:#3f4858;

  /* type */
  --sans:'Space Grotesk',system-ui,-apple-system,sans-serif;
  --body:system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;

  /* terminal palette (faithful to impulse TUI) */
  --t-bg:#1a1c20;            /* neutral terminal dark (matches real macOS run) */
  --t-bg-band:#2b2d32;       /* macOS title bar */
  --t-txt:#d3d7dd;
  --t-dim:#6f7884;
  --t-dim-2:#565f6b;
  --t-cyan:#46cfe6;          /* tool names / chevron */
  --t-white:#f0f2f5;         /* logo */
  --t-green:#7fc99a;
  --t-green-bg:#11301d;
  --t-red:#e0787e;
  --t-red-bg:#341a1c;
  --t-gold:#cfb96b;          /* Impulse label / Thinking: label */
  --t-yellow:#d6b65f;
  --t-blue:#74a3e0;
  --t-linenum:#525a66;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  background:var(--bg);
  color:var(--txt);
  font-family:var(--body);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
::selection{background:rgba(2,207,253,.28);color:#fff;}

/* ---------- space backdrop ---------- */
.space{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.space .neb{
  position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;
}
.neb.a{width:760px;height:760px;top:-360px;left:50%;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(2,207,253,.22),transparent 70%);}
.neb.b{width:620px;height:620px;top:-180px;right:-180px;
  background:radial-gradient(closest-side,rgba(54,129,216,.18),transparent 70%);}
.neb.c{width:520px;height:520px;top:1100px;left:-200px;
  background:radial-gradient(closest-side,rgba(28,168,235,.12),transparent 70%);opacity:.4;}
#stars{position:absolute;inset:0;width:100%;height:100%;display:block;}

.wrap{max-width:1080px;margin:0 auto;padding:0 28px;position:relative;z-index:2;}

/* ---------- nav ---------- */
nav{position:absolute;top:0;left:0;right:0;z-index:5;}
.nav-in{max-width:1080px;margin:0 auto;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.brand{display:flex;align-items:center;gap:11px;}
.brand img{height:39px;width:auto;display:block;}
.nav-center{display:flex;align-items:center;gap:34px;}
.nav-center a{font-family:var(--sans);font-size:15px;color:var(--mut);transition:color .18s;position:relative;}
.nav-center a:hover{color:var(--txt);}
.nav-center a::after{content:'';position:absolute;left:0;right:100%;bottom:-5px;height:1.5px;background:var(--c-cyan);transition:right .25s ease;}
.nav-center a:hover::after{right:0;}
.nav-right{display:flex;align-items:center;}
.gh-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:13px;color:var(--txt);border:1px solid var(--line-2);border-radius:9px;padding:8px 14px;background:rgba(255,255,255,.02);transition:border-color .18s,background .18s,color .18s;}
.gh-btn:hover{border-color:rgba(2,207,253,.4);background:rgba(2,207,253,.07);color:var(--c-cyan);}
.gh-btn svg{width:17px;height:17px;fill:currentColor;}
@media(max-width:680px){.nav-center{display:none;}}

/* ---------- hero ---------- */
.hero{padding:0 0 30px;text-align:center;position:relative;z-index:2;}

/* above-the-fold stage: self-sizes to exactly one viewport on ANY screen */
.hero-stage{
  min-height:100vh;            /* fallback */
  min-height:100svh;           /* small-viewport-height: stable vs mobile URL bar */
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  position:relative;z-index:2;
}
/* below-the-fold pitch: reuses .reveal, with a stronger rise */
.hero-pitch{padding-top:clamp(32px,7vh,90px);transform:translateY(40px);}

/* subtle scroll cue pinned to the bottom of the fold */
.scroll-cue{
  position:absolute;left:50%;bottom:28px;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:6px;
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--mut-2);transition:opacity .4s,color .18s;
  animation:cue-bob 2s ease-in-out infinite;
}
.scroll-cue:hover{color:var(--c-cyan);}
.scroll-cue svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;}
@keyframes cue-bob{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,6px);}}
@media(prefers-reduced-motion:reduce){.scroll-cue{animation:none;}}

.hero .space-scene{position:relative;width:640px;max-width:100%;height:270px;margin:0 auto;z-index:1;pointer-events:none;perspective:1000px;perspective-origin:50% 50%;}
@media(max-width:600px){.hero .space-scene{height:200px;}}
.hero-wordmark{display:block;margin:-60px auto 12px;height:126px;width:auto;padding-top:10px;position:relative;z-index:2;filter:drop-shadow(0 6px 30px rgba(2,207,253,.25));}
@media(max-width:600px){.hero-wordmark{height:88px;padding-top:10px;margin-top:-40px;}}

/* ---- hero space scene: planet + orbiting rocket ---- */
@media(max-width:600px){.space-scene{transform:scale(.85);}}
.space-scene .glow{position:absolute;left:50%;top:50%;width:320px;height:320px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(214,130,60,.24),rgba(150,80,40,.08),transparent 72%);filter:blur(22px);z-index:0;}
.space-scene canvas{position:relative;z-index:1;display:block;width:100%;height:100%;}

.planet{position:absolute;left:50%;top:50%;width:188px;height:188px;transform:translate(-50%,-50%);border-radius:50%;
  background:
    radial-gradient(circle at 36% 30%, #d7b6ff 0%, #a674f2 30%, #7c46df 56%, #54299f 78%, #2c1566 100%);
  box-shadow:inset -26px -18px 54px rgba(18,6,40,.64), inset 14px 10px 36px rgba(220,190,255,.30), 0 0 60px rgba(150,92,240,.32);
  overflow:hidden;
}
.planet::before{content:'';position:absolute;inset:0;border-radius:50%;
  background:
    radial-gradient(38px 14px at 32% 40%, rgba(228,205,255,.42), transparent 70%),
    radial-gradient(50px 16px at 62% 58%, rgba(40,16,80,.48), transparent 70%),
    radial-gradient(30px 10px at 50% 74%, rgba(40,16,80,.42), transparent 70%);
  mix-blend-mode:screen;opacity:.8;}
.planet::after{content:'';position:absolute;left:-8%;top:46%;width:116%;height:8%;
  background:linear-gradient(90deg,transparent,rgba(225,200,255,.20) 20%,rgba(40,16,80,.32) 50%,rgba(225,200,255,.16) 80%,transparent);
  border-radius:50%;transform:rotate(-6deg);}

/* Saturn-style ring */
.p-ring{position:absolute;left:50%;top:50%;width:300px;height:300px;transform:translate(-50%,-50%) rotateX(74deg) rotateZ(-12deg);transform-style:preserve-3d;}
.p-ring i{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(120,200,255,.22);}
.p-ring i:nth-child(2){inset:14px;border-color:rgba(120,200,255,.12);}

/* orbit + rocket (3D tilted ellipse) */
.orbit3d{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;
  transform:translate(-50%,-50%) rotateX(64deg) rotateZ(-12deg);}
.orbit3d .ring{position:absolute;left:50%;top:50%;width:480px;height:480px;transform:translate(-50%,-50%);border-radius:50%;border:1px dashed rgba(150,120,220,.16);}
.spin{position:absolute;left:0;top:0;transform-style:preserve-3d;animation:spin 26s linear infinite;}
@keyframes spin{from{transform:rotateZ(0deg);}to{transform:rotateZ(360deg);}}
.arm{position:absolute;left:0;top:0;transform:translateX(240px);transform-style:preserve-3d;}
.rocket{position:absolute;left:0;top:0;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(-52deg) rotateZ(90deg);}
.rocket svg{display:block;filter:drop-shadow(0 4px 7px rgba(0,0,0,.5)) drop-shadow(0 0 6px rgba(150,92,240,.4));}

/* main engine flame */
.rocket .flame{position:absolute;left:50%;top:100%;width:7px;height:16px;transform:translate(-50%,-2px);
  background:linear-gradient(180deg,#bff0ff,#46cfe6 35%,rgba(54,129,216,0) 100%);border-radius:0 0 50% 50%;
  filter:blur(.4px);animation:flame .18s steps(2) infinite;transform-origin:top center;}
@keyframes flame{0%{transform:translate(-50%,-2px) scaleY(1);opacity:.95;}100%{transform:translate(-50%,-2px) scaleY(.7);opacity:.7;}}
/* RCS side thruster puff (orbit adjust) */
.rocket .rcs{position:absolute;top:24%;width:9px;height:3px;border-radius:50%;background:radial-gradient(closest-side,rgba(220,245,255,.95),transparent);opacity:0;}
.rocket .rcs.l{right:100%;animation:rcsL 7s ease-in-out infinite;}
.rocket .rcs.r{left:100%;animation:rcsR 7s ease-in-out infinite;}
@keyframes rcsL{0%,86%,100%{opacity:0;transform:scaleX(.4);}90%,94%{opacity:.9;transform:scaleX(1.4);}}
@keyframes rcsR{0%,40%,100%{opacity:0;transform:scaleX(.4);}44%,48%{opacity:.9;transform:scaleX(1.4);}}
@media(prefers-reduced-motion:reduce){.spin,.flame,.rcs{animation:none;}}

.kicker{
  font-family:var(--mono);font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--c-cyan-2);margin-top:0;margin-bottom:36px;
}
.hero h1{
  font-family:var(--sans);font-weight:600;letter-spacing:-.02em;line-height:1.06;
  font-size:clamp(30px,5.2vw,52px);max-width:none;margin:0 auto 38px;
}
.hero h1 .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero p.sub{font-size:clamp(16px,2.2vw,19px);color:var(--mut);max-width:60ch;margin:0 auto 38px;text-wrap:pretty;}

/* install command box */
.install{
  display:inline-flex;align-items:stretch;gap:0;margin:0 auto;
  border:1px solid var(--line-2);border-radius:12px;overflow:hidden;
  background:rgba(12,16,25,.72);backdrop-filter:blur(10px);
  box-shadow:0 24px 70px -34px rgba(2,207,253,.4),inset 0 1px 0 rgba(255,255,255,.04);
}
.install .cmd{
  display:flex;align-items:center;gap:12px;padding:15px 20px;font-family:var(--mono);font-size:15px;
}
.install .cmd .pr{color:var(--c-cyan);}
.install .cmd .tx{color:var(--txt);white-space:nowrap;}
.install .cmd .tx b{color:#fff;font-weight:500;}
.install .copy{
  display:flex;align-items:center;gap:8px;padding:0 20px;border:0;border-left:1px solid var(--line-2);
  background:transparent;color:var(--mut);font-family:var(--mono);font-size:13px;cursor:pointer;transition:background .18s,color .18s;
}
.install .copy:hover{background:rgba(2,207,253,.08);color:var(--c-cyan);}
.install .copy svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;}
.install .copy.done{color:var(--t-green);}
@media(max-width:560px){
  .install{flex-direction:column;}
  .install .cmd{font-size:13px;padding:13px 16px;}
  .install .cmd .tx{white-space:normal;word-break:break-all;}
  .install .copy{border-left:0;border-top:1px solid var(--line-2);padding:11px 16px;justify-content:center;}
}
.hero .hint{margin-top:18px;font-family:var(--mono);font-size:12.5px;color:var(--mut-2);}
.hero .hint a{color:var(--mut);border-bottom:1px solid var(--line-2);padding-bottom:1px;}
.hero .hint a:hover{color:var(--c-cyan);}

/* ---------- terminal section ---------- */
.term-section{padding:54px 0 30px;position:relative;z-index:2;}
.term-frame{
  border:1px solid var(--line-2);border-radius:14px;overflow:hidden;
  background:var(--t-bg);
  box-shadow:0 50px 130px -50px rgba(0,0,0,.9),0 0 0 1px rgba(2,207,253,.06),0 0 80px -30px rgba(2,207,253,.18);
}
.term-titlebar{
  position:relative;display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--t-bg-band);border-bottom:1px solid rgba(0,0,0,.4);
}
.term-titlebar .lights{display:flex;gap:8px;z-index:2;}
.term-titlebar .lights i{width:12px;height:12px;border-radius:50%;display:block;}
.tl-r{background:#ff5f57;}.tl-y{background:#febc2e;}.tl-g{background:#28c840;}
.term-titlebar .tt{
  position:absolute;left:0;right:0;text-align:center;
  font-family:var(--mono);font-size:12.5px;color:#c3c7cd;font-weight:500;
  display:flex;align-items:center;justify-content:center;gap:7px;pointer-events:none;
}
.term-titlebar .tt .fi{opacity:.8;}

/* terminal screen */
.term{
  font-family:var(--mono);font-size:13.5px;line-height:1.55;color:var(--t-txt);
  background:var(--t-bg);
  height:500px;overflow-y:auto;overflow-x:hidden;padding:16px 18px 8px;
  scroll-behavior:smooth;
}
.term::-webkit-scrollbar{width:9px;}
.term::-webkit-scrollbar-track{background:transparent;}
.term::-webkit-scrollbar-thumb{background:#222a38;border-radius:8px;}
@media(max-width:680px){.term{font-size:11px;height:460px;}}

.term .ln{white-space:pre-wrap;word-break:break-word;min-height:1.55em;}
.term .ln.tight{min-height:0;}
.cur{display:inline-block;width:.6ch;height:1.05em;background:var(--t-white);vertical-align:-2px;animation:blink 1.1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}

/* terminal token colors */
.t-cyan{color:var(--t-cyan);}
.t-white{color:var(--t-white);font-weight:600;}
.t-dim{color:var(--t-dim);}
.t-dim2{color:var(--t-dim-2);}
.t-green{color:var(--t-green);}
.t-red{color:var(--t-red);}
.t-yellow{color:var(--t-yellow);}
.t-blue{color:var(--t-blue);}
.t-mut{color:#9aa3b0;}
.t-bold{font-weight:600;color:#e6eaf1;}

/* the GEN-tiny logo */
.logo-tiny{color:var(--t-white);font-weight:700;line-height:1.18;letter-spacing:0;}

/* setup rule line */
.rule{color:var(--t-dim-2);}

/* pinned input prompt (sits above the status bar, like real impulse) */
.term-prompt{
  font-family:var(--mono);font-size:13.5px;line-height:1.55;color:var(--t-txt);
  background:var(--t-bg);padding:2px 18px 6px;
}
@media(max-width:680px){.term-prompt{font-size:11px;}}

/* rule lines + prompt (matches real impulse) */
.term-rule{height:0;border-top:1px solid #313640;margin:7px 0;}
.prow{color:var(--t-txt);}
.prow .chev{color:var(--t-cyan);margin-right:8px;}
.uecho{color:var(--t-txt);}
.uecho .chev{color:var(--t-cyan);margin-right:8px;}

/* Impulse response label */
.imp-label{color:var(--t-gold);font-weight:500;}

/* thinking */
.think-label{color:var(--t-gold);}
.think{color:var(--t-dim);font-style:italic;}

/* tool calls — inline, no box (matches real impulse) */
.trow{margin-top:2px;}
.trow .g-ok{color:var(--t-green);}
.trow .g-no{color:var(--t-red);}
.trow .tname{color:var(--t-cyan);}
.trow .tdesc{color:#b9c0cb;}
.trow .tdur{color:var(--t-dim-2);}
.trow .chev{color:var(--t-cyan);}
.tdetail{color:var(--t-dim);padding-left:3ch;}
.diffwrap{padding-left:2ch;margin:2px 0 4px;}

/* tool block */
.tool{border:1px solid #2a2d33;border-radius:6px;margin:8px 0;overflow:hidden;background:#16181c;}
.tool .thead{padding:6px 11px;background:#202329;color:#c4ccd8;border-bottom:1px solid #2a2d33;}
.tool .thead .chev{color:var(--t-cyan);}
.tool .thead .ok{color:var(--t-green);}
.tool .tbody{padding:6px 0;font-size:.94em;}
/* diff rows — inline under the tool line */
.diff-row{display:flex;padding:0 4px;white-space:pre;}
.diff-row .num{color:var(--t-linenum);width:3.4ch;text-align:right;margin-right:14px;flex:none;user-select:none;}
.diff-row.add{background:rgba(60,140,90,.14);}
.diff-row.del{background:rgba(150,60,66,.16);}
.diff-row.add .sg{color:var(--t-green);}
.diff-row.del .sg{color:var(--t-red);}
.diff-foot{padding:3px 4px 2px 2ch;color:var(--t-dim);}
.diff-foot .p{color:var(--t-green);}.diff-foot .m{color:var(--t-red);}

/* status bar */
.statusbar{border-top:1px solid #313640;background:#16181c;padding:7px 14px;font-family:var(--mono);font-size:12px;color:var(--t-dim);display:flex;gap:0;flex-wrap:wrap;}
.statusbar .seg{white-space:nowrap;}
.statusbar .sep{color:var(--t-dim-2);padding:0 8px;}
.sb-model{color:var(--t-cyan);}
.sb-think{color:var(--t-yellow);}
.sb-ctx{color:var(--t-yellow);}
.sb-dir{color:#aeb6c2;}
.sb-right{margin-left:auto;color:#b8a45c;}
@media(max-width:680px){.sb-right{margin-left:0;width:100%;}.statusbar{font-size:10.5px;}}

.term-caption{text-align:center;font-family:var(--mono);font-size:12px;color:var(--mut-2);margin-top:16px;}
.term-caption b{color:var(--mut);font-weight:400;}
.term-actions{display:flex;justify-content:center;margin-top:18px;}
.restart-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:13px;color:var(--mut);background:rgba(255,255,255,.02);border:1px solid var(--line-2);border-radius:9px;padding:9px 16px;cursor:pointer;transition:border-color .18s,background .18s,color .18s;}
.restart-btn:hover{color:var(--c-cyan);border-color:rgba(2,207,253,.4);background:rgba(2,207,253,.07);}
.restart-btn svg{width:14px;height:14px;fill:currentColor;}

/* ---------- section heading ---------- */
.sec{padding:64px 0;position:relative;z-index:2;}
.sec-tag{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--c-cyan-2);margin-bottom:14px;}
.sec h2{font-family:var(--sans);font-weight:600;font-size:clamp(24px,3.5vw,34px);letter-spacing:-.01em;line-height:1.12;max-width:18ch;}
.sec h2 .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.sec .lead{color:var(--mut);font-size:17px;max-width:58ch;margin-top:16px;text-wrap:pretty;}

/* features grid */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px;}
@media(max-width:820px){.feat-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.feat-grid{grid-template-columns:1fr;}}
.feat{
  border:1px solid var(--line);border-radius:13px;padding:22px 22px 24px;background:linear-gradient(180deg,var(--panel),#090c13);
  transition:border-color .2s,transform .2s;
}
.feat:hover{border-color:var(--line-2);transform:translateY(-3px);}
.feat .ic{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:15px;
  background:rgba(2,207,253,.09);border:1px solid rgba(2,207,253,.22);}
.feat .ic svg{width:18px;height:18px;stroke:var(--c-cyan);fill:none;stroke-width:1.7;}
.feat h3{font-family:var(--sans);font-weight:600;font-size:17px;margin-bottom:7px;letter-spacing:-.01em;}
.feat p{color:var(--mut);font-size:14.5px;text-wrap:pretty;}
.feat code{font-family:var(--mono);font-size:.9em;color:var(--c-cyan-2);background:rgba(2,207,253,.07);padding:1px 5px;border-radius:4px;}

/* providers row */
.prov-wrap{margin-top:34px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.prov{font-family:var(--mono);font-size:13px;color:var(--mut);border:1px solid var(--line);border-radius:999px;padding:8px 16px;background:rgba(255,255,255,.012);}
.prov.add{color:var(--c-cyan);border-color:rgba(2,207,253,.3);background:rgba(2,207,253,.06);}

/* modes strip */
.modes{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:36px;}
@media(max-width:680px){.modes{grid-template-columns:repeat(2,1fr);}}
.mode-card{border:1px solid var(--line);border-radius:11px;padding:18px;background:var(--panel);}
.mode-card .mk{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.04em;margin-bottom:6px;}
.mode-card .mk.agent{color:var(--t-blue);}
.mode-card .mk.explore{color:var(--t-green);}
.mode-card .mk.plan{color:var(--t-yellow);}
.mode-card .mk.debug{color:var(--t-red);}
.mode-card p{font-size:13.5px;color:var(--mut);}

/* ---------- install band (repeat) ---------- */
.cta{padding:70px 0;text-align:center;position:relative;z-index:2;}
.cta .glowbox{
  border:1px solid var(--line-2);border-radius:18px;padding:52px 32px;
  background:radial-gradient(120% 130% at 50% 0%,rgba(2,207,253,.08),transparent 60%),linear-gradient(180deg,var(--panel),#080b11);
  position:relative;overflow:hidden;
}
.cta h2{font-family:var(--sans);font-weight:600;font-size:clamp(24px,4vw,36px);letter-spacing:-.02em;margin-bottom:14px;}
.cta p{color:var(--mut);max-width:48ch;margin:0 auto 30px;}
.cta .reqs{margin-top:26px;font-family:var(--mono);font-size:12.5px;color:var(--mut-2);display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.cta .reqs span{display:inline-flex;align-items:center;gap:7px;}
.cta .reqs .dot{width:5px;height:5px;border-radius:50%;background:var(--c-cyan);opacity:.7;}

/* how section */
.how-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:38px;}
@media(max-width:760px){.how-grid{grid-template-columns:1fr;gap:30px;}}
.how-col h3{font-family:var(--sans);font-weight:600;font-size:19px;margin-bottom:12px;letter-spacing:-.01em;}
.how-col p{color:var(--mut);font-size:15.5px;text-wrap:pretty;}
.how-col code{font-family:var(--mono);font-size:.9em;color:var(--c-cyan-2);background:rgba(2,207,253,.07);padding:1px 5px;border-radius:4px;}

/* ---------- creator / footer ---------- */
.creator{padding:60px 0 30px;position:relative;z-index:2;border-top:1px solid var(--line);}
.creator .row{display:flex;gap:40px;align-items:flex-start;flex-wrap:wrap;}
.creator .who{flex:1;min-width:280px;}
.creator h3{font-family:var(--sans);font-weight:600;font-size:20px;margin-bottom:10px;}
.creator p{color:var(--mut);font-size:15px;max-width:52ch;text-wrap:pretty;}
.creator p .nm{color:var(--txt);}
.creator .links{display:flex;flex-direction:column;gap:11px;min-width:200px;}
.creator .links a{display:flex;align-items:center;gap:11px;font-family:var(--mono);font-size:14px;color:var(--mut);border:1px solid var(--line);border-radius:10px;padding:11px 15px;transition:border-color .18s,color .18s,background .18s;}
.creator .links a:hover{color:var(--txt);border-color:var(--line-2);background:rgba(255,255,255,.02);}
.creator .links a svg{width:17px;height:17px;fill:currentColor;flex:none;}
.creator .links a .ar{margin-left:auto;color:var(--mut-2);}
.creator .ack{margin-top:42px;padding-top:26px;border-top:1px solid var(--line);max-width:640px;}
.creator .ack p{color:var(--mut);font-size:14.5px;max-width:64ch;text-wrap:pretty;}
.creator .ack a{color:var(--txt);border-bottom:1px solid var(--line-2);}
.creator .ack a:hover{color:var(--c-cyan);}

footer{padding:30px 0 60px;position:relative;z-index:2;}
footer .fin{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:26px;}
footer .thanks{font-size:13.5px;color:var(--mut-2);max-width:60ch;text-wrap:pretty;}
footer .thanks a{color:var(--mut);border-bottom:1px solid var(--line-2);}
footer .thanks a:hover{color:var(--c-cyan);}
footer .fsocial{display:flex;gap:12px;}
footer .fsocial a{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;color:var(--mut);transition:border-color .18s,color .18s,background .18s;}
footer .fsocial a:hover{color:var(--c-cyan);border-color:rgba(2,207,253,.4);background:rgba(2,207,253,.06);}
footer .fsocial a svg{width:17px;height:17px;fill:currentColor;}
footer .meta{font-family:var(--mono);font-size:12px;color:var(--dim);white-space:nowrap;}

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