/* ============================================================
   CRE8 BRAND SYSTEM  (purple)  —  shared across all pages
   Tweak here once; every page that links /js/brand.css updates.
   Requires Google Fonts: Anton + Sora (add the <link> per page).
   Self-hosted: Chakra Petch (display) + Satoshi (body) — /js/*.woff2
   ============================================================ */

/* ---- SELF-HOSTED FONTS (no external CDN) ---- */
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:600;font-display:swap;
  src:url(/js/chakrapetch-600.woff2) format('woff2')}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:700;font-display:swap;
  src:url(/js/chakrapetch-700.woff2) format('woff2')}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:500;font-display:swap;
  src:url(/js/satoshi-500.woff2) format('woff2')}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:700;font-display:swap;
  src:url(/js/satoshi-700.woff2) format('woff2')}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:900;font-display:swap;
  src:url(/js/satoshi-900.woff2) format('woff2')}

/* ---- TOKENS ---- */
:root{
  --grad:linear-gradient(120deg,#ff5ec8 0%,#b14df0 46%,#7a2ff2 100%);
  --grad-soft:linear-gradient(120deg,rgba(255,94,200,.14),rgba(122,47,242,.14));
  --accent:#b06bf0; --accent-deep:#7a2ff2;
  --acc-rgb:177,77,240;
  /* ground (dark default) */
  --g0:#080910; --g1:#0b1020; --g2:#070912;
  --ink:#f1edfb; --muted:#9b95b8; --line:rgba(150,120,190,.22);
  --card:#13162a; --card2:#161a30; --tile:rgba(177,77,240,.12);
  --glow-a:rgba(177,77,240,.24); --glow-b:rgba(255,94,200,.16);
  --nav-bg:rgba(0,0,0,.9);
  --accent-glow:rgba(150,60,240,.45); --accent-ring:rgba(196,137,255,.32);
  --ease:cubic-bezier(.4,0,.2,1);
}
:root[data-ground="light"]{
  --g0:#ffffff; --g1:#efeafb; --g2:#e4dcf2;
  --ink:#191327; --muted:#6c6488; --line:rgba(120,90,160,.20);
  --card:#ffffff; --card2:#faf8ff; --tile:rgba(122,47,242,.10);
  --glow-a:rgba(177,77,240,.12); --glow-b:rgba(255,94,200,.10);
  --nav-bg:rgba(255,255,255,.72);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Sora',system-ui,sans-serif;color:var(--ink);min-height:100vh;overflow-x:hidden;line-height:1.55;
  background:
    radial-gradient(1100px 700px at 82% -8%, var(--glow-a), transparent 60%),
    radial-gradient(900px 600px at 6% 3%, var(--glow-b), transparent 55%),
    linear-gradient(160deg,var(--g0) 0%, var(--g1) 62%, var(--g2) 100%);
  background-attachment:fixed;}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.anton{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.01em}

/* ---- NAV ---- */
.navbar{position:sticky;top:0;z-index:50;width:100%;background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(122,47,242,.3)}
.navbar-inner{max-width:1400px;margin:0 auto;padding:0 .55rem 0 1.5rem;height:64px;display:flex;align-items:center;justify-content:space-between}
@media (max-width:860px){.navbar-inner{padding-right:1rem}}
.navbar-right{display:flex;align-items:center;gap:.7rem}
.nav-avatar{width:40px;height:40px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  background:linear-gradient(135deg,#2a1740,#150c24);border:1.5px solid rgba(177,77,240,.55);color:#d8bcff;
  box-shadow:0 0 0 2px rgba(177,77,240,.12),0 6px 16px -7px rgba(122,47,242,.6);transition:transform .12s var(--ease),border-color .2s,box-shadow .2s}
.nav-avatar:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:0 0 0 3px rgba(177,77,240,.2),0 9px 22px -7px rgba(122,47,242,.75)}
.nav-avatar svg{width:20px;height:20px}
.navbar-left{display:flex;align-items:center;gap:2.2rem}
.logo{display:flex;align-items:center;text-decoration:none;font-family:'Anton',sans-serif;font-size:1.5rem;letter-spacing:.02em}
.logo img{height:32px;width:auto;display:block;filter:brightness(1.14) saturate(1.22)}
.nav-links{display:flex;gap:.35rem}
.nav-link{color:#b14df0;text-decoration:none;padding:.5rem .8rem;font-size:.86rem;font-weight:500;position:relative;transition:color .18s;white-space:nowrap;border-radius:8px}
.nav-link:hover{color:#d89bff;text-shadow:0 0 12px rgba(196,123,255,.55)}
/* blinking terminal caret on hover — matches the other pages' nav */
@keyframes dotCaretBlink{0%,49%{opacity:1}50%,100%{opacity:0}}
.nav-link:hover::after{content:'';display:inline-block;width:.58em;height:.86em;margin-left:.16em;vertical-align:-.06em;
  background:currentColor;box-shadow:0 0 7px currentColor,0 0 2px currentColor;animation:dotCaretBlink 1.02s steps(1,end) infinite;pointer-events:none}
.nav-link.active{color:transparent;background:var(--grad);-webkit-background-clip:text;background-clip:text;font-weight:600}
/* inline-flex + line-height:1 keeps the label dead-centre in the pill (as a plain
   anchor the text rode high inside the padding box). Matches smooth.css. */
.pill-btn{border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;
  font-family:'Sora',sans-serif;font-weight:700;font-size:.82rem;color:#fff;padding:.5rem 1.1rem;border-radius:999px;background:var(--grad);
  box-shadow:0 8px 22px -8px rgba(var(--acc-rgb),.6);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.pill-btn:hover{filter:brightness(1.06)}

/* ---- BUTTONS ---- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:.95rem 1.7rem;border-radius:14px;font-size:.98rem;font-weight:700;cursor:pointer;text-decoration:none;
  border:1px solid transparent;font-family:inherit;transition:transform .15s var(--ease),filter .15s,box-shadow .2s}
.btn-primary{color:#fff;background:var(--grad);box-shadow:0 12px 30px -10px rgba(var(--acc-rgb),.6)}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.07);box-shadow:0 18px 42px -12px rgba(var(--acc-rgb),.7)}
.btn-ghost{background:var(--card);border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{transform:translateY(-2px);border-color:var(--accent)}

/* ---- HERO (landing pages) ---- */
.hero{position:relative;max-width:1320px;margin:0 auto;padding:clamp(2.5rem,6vw,5rem) 1.6rem clamp(3rem,7vw,5.5rem);
  display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;min-height:82vh;overflow:hidden}
.hero-copy{position:relative;z-index:2}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  color:var(--accent);border:1px solid var(--line);background:var(--grad-soft);padding:.42rem .9rem;border-radius:999px;margin-bottom:1.5rem}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
h1.hero-title{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(2.8rem,6.4vw,5.4rem);line-height:.92;letter-spacing:.005em;text-wrap:balance}
.hero p.sub{max-width:46ch;color:var(--muted);font-size:clamp(1rem,2.1vw,1.16rem);margin:1.5rem 0 0}
.hero-cta{display:flex;gap:.9rem;margin-top:2rem;flex-wrap:wrap}

/* ---- ∞ MACHINE VISUAL ---- */
.inf-stage{position:relative;z-index:2;display:flex;justify-content:center;align-items:center}
.machine{position:relative;width:min(520px,90%);aspect-ratio:460/260}
.machine .inf-svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible;filter:drop-shadow(0 12px 40px var(--accent-glow))}
.inf-svg .belt{fill:none;stroke:url(#igp);stroke-width:46;stroke-linecap:round;stroke-linejoin:round}
.inf-svg .belt-flow{fill:none;stroke:#fff;stroke-width:17;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:300 2400;stroke-dashoffset:0;filter:url(#beltglow);animation:beltflow 9s linear infinite}
@keyframes beltflow{to{stroke-dashoffset:2700}}
/* ---- CASSETTE REELS — spoked hub with tape physically wound around it ----
   .rec        = the reel flange (transparent stage that spins)
   .rec::before= the wound tape pack (dark disc of stacked tape, radius differs L/R)
   .rec::after = the toothed hub sprocket + centre spindle
   --tape sets how far the tape is wound out, so one reel reads "full", one "empty". */
/* --tape = outer radius of the wound pack; --hub = inner edge (open hub area).
   Left reel is nearly full, right reel nearly empty → radii differ clearly. */
.machine .rec{position:absolute;z-index:1;width:34%;aspect-ratio:1;border-radius:50%;
  transform:translate(-50%,-50%);animation:spinc 6s linear infinite;--tape:48%;--hub:26%}
.machine .rec.left{left:26.5%;top:50%;--tape:48%}
.machine .rec.right{left:73.5%;top:50%;animation-direction:reverse;--tape:33%}
/* wound tape pack — a smooth dark RING of stacked tape (bright flange edges,
   a couple of faint winding lines), masked from --hub out to --tape so the
   empty reel shows a thinner ring and more of the open hub */
.machine .rec::before{content:"";position:absolute;inset:0;border-radius:50%;z-index:1;
  background:
    repeating-radial-gradient(circle at center,rgba(214,185,255,.05) 0 1px,transparent 1px 5px),
    radial-gradient(circle at center,
      rgba(199,162,255,.55) 0 calc(var(--hub) + .8%),
      #1d1030 calc(var(--hub) + 2%),
      #120a22 60%,
      #0a0515 calc(var(--tape) - 2%),
      rgba(199,162,255,.5) calc(var(--tape) - .6%),
      transparent var(--tape));
  filter:drop-shadow(0 0 13px var(--accent-glow))}
/* toothed hub sprocket — 6 grip teeth + 3 spokes over an open window + spindle */
.machine .rec::after{content:"";position:absolute;top:50%;left:50%;width:calc(var(--hub)*2 - 2%);height:calc(var(--hub)*2 - 2%);
  transform:translate(-50%,-50%);border-radius:50%;z-index:2;
  background:
    radial-gradient(circle at center,#f6efff 0 13%,#160c26 14% 22%,transparent 23%),
    repeating-conic-gradient(from 0deg,#d6a9ff 0 12deg,transparent 12deg 60deg),
    conic-gradient(from 0deg,var(--accent-deep) 0 22deg,#0c0718 22deg 120deg,var(--accent-deep) 120deg 142deg,#0c0718 142deg 240deg,var(--accent-deep) 240deg 262deg,#0c0718 262deg 360deg),
    var(--grad);
  box-shadow:0 0 0 2px rgba(255,255,255,.14),0 0 13px 1px var(--accent-glow),inset 0 0 7px rgba(0,0,0,.55)}
@keyframes spinc{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ---- SECTIONS ---- */
.section{position:relative;max-width:1200px;margin:0 auto;padding:clamp(3.5rem,7vw,6rem) 1.6rem;z-index:2}
.section-eyebrow{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:600}
.section-title{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(1.9rem,4.4vw,3.2rem);letter-spacing:.01em;margin-top:.5rem;line-height:1}
.section-sub{color:var(--muted);margin-top:.7rem;max-width:560px;font-size:1rem}

.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:1.1rem;margin-top:2.6rem}
.feature{position:relative;background:linear-gradient(160deg,var(--card),var(--card2));border:1px solid var(--line);border-radius:20px;padding:1.7rem;text-decoration:none;color:inherit;overflow:hidden;
  transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}
.feature:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 22px 50px -26px rgba(var(--acc-rgb),.5)}
.feature::before{content:"";position:absolute;top:-40%;right:-30%;width:220px;height:220px;background:radial-gradient(circle,rgba(var(--acc-rgb),.16),transparent 65%);opacity:0;transition:opacity .3s}
.feature:hover::before{opacity:1}
.feature .ficon{width:48px;height:48px;border-radius:13px;background:var(--tile);display:flex;align-items:center;justify-content:center;font-size:1.45rem;margin-bottom:1rem;position:relative;z-index:1}
.feature h3{font-size:1.14rem;font-weight:700;position:relative;z-index:1}
.feature p{color:var(--muted);font-size:.9rem;line-height:1.55;margin-top:.4rem;position:relative;z-index:1}
.feature .go{margin-top:1.1rem;font-size:.82rem;font-weight:700;display:inline-flex;align-items:center;gap:5px;position:relative;z-index:1;
  color:transparent;background:var(--grad);-webkit-background-clip:text;background-clip:text}

.steps{margin-top:2.6rem;display:flex;flex-direction:column;gap:1rem}
.step{display:flex;gap:1.3rem;align-items:flex-start;background:linear-gradient(160deg,var(--card),var(--card2));border:1px solid var(--line);border-radius:18px;padding:1.5rem 1.6rem}
.step .num{flex-shrink:0;width:46px;height:46px;border-radius:13px;background:var(--grad);color:#fff;font-family:'Anton',sans-serif;font-size:1.3rem;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px -8px rgba(var(--acc-rgb),.6)}
.step h4{font-size:1.08rem;font-weight:700}
.step p{color:var(--muted);font-size:.92rem;line-height:1.55;margin-top:.25rem}

.cta-band{position:relative;max-width:1100px;margin:1rem auto 5rem;padding:clamp(2.4rem,5vw,3.6rem) 1.6rem;border-radius:26px;text-align:center;overflow:hidden;
  background:var(--grad-soft);border:1px solid var(--line)}
.cta-band h2{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(1.7rem,4vw,2.8rem);letter-spacing:.01em}
.cta-band p{color:var(--muted);margin-top:.6rem}
footer{text-align:center;padding:2.2rem 1.6rem 3rem;color:var(--muted);font-size:.82rem;border-top:1px solid var(--line)}

/* ---- SCROLL REVEAL ---- */
.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---- GROUND TOGGLE (dark/light; accent stays purple) ---- */
.ground-toggle{position:fixed;right:18px;bottom:18px;z-index:9999;cursor:pointer;font:600 13px/1 'Sora',sans-serif;color:var(--ink);
  background:var(--card);border:1px solid var(--line);border-radius:999px;padding:10px 16px;box-shadow:0 10px 30px -12px rgba(0,0,0,.5)}

@media (max-width:860px){ .hero{grid-template-columns:1fr;text-align:left;min-height:auto} .inf-stage{order:-1} .nav-links{display:none} }
@media (prefers-reduced-motion:reduce){ .machine .rec,.inf-svg .belt-flow{animation:none} .reveal{opacity:1;transform:none;transition:none} .eyebrow .dot{animation:none} }

/* ============================================================
   CRE8 CUSTOM BRAND FONT — self-hosted custom-drawn face; replaces Anton
   (display) + Sora (body) on brand.css pages (home/login/pricing/reset).
   ============================================================ */
@font-face{font-family:'CRE8';src:url(data:font/woff2;base64,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) format('woff2');font-weight:400 700;font-style:normal;font-display:swap;ascent-override:85.8%;descent-override:14.2%;line-gap-override:0%}
/* body/UI text in the old face (Satoshi); display + nav in the custom CRE8 face */
body{font-family:'Satoshi','Sora',system-ui,sans-serif}
h1.hero-title,h2,h3,h4,.section-title,.cta-band h2,.step .num,.anton,.logo,.nav-link{font-family:'CRE8',sans-serif !important}
/* CTA buttons in the brand face too (Neo: buttons were rendering in a different font than the nav/headers) */
.btn,.pill-btn{font-family:'CRE8',sans-serif !important;letter-spacing:.01em}

/* ── Nav auth state (no flash) ────────────────────────────────────────────────
   The logged-in nav used to render in HTML and then get swapped by JS once
   /api/auth/me came back, so logged-out visitors saw the avatar + Upgrade flash
   on EVERY page load. Now both variants live in the markup and CSS picks one:
   <html data-auth="in|out">. The attribute is set synchronously in <head> from
   the last known state (localStorage), then confirmed by the fetch — so a repeat
   visit paints the right nav immediately. Until it's known, neither shows (an
   empty gap beats showing the wrong thing). */
html:not([data-auth]) .auth-in,
html:not([data-auth]) .auth-out{display:none !important}
html[data-auth="in"]  .auth-out{display:none !important}
html[data-auth="out"] .auth-in {display:none !important}

/* Discount badge — small pill tucked UNDER the Pricing label (Higgsfield style).
   Absolutely positioned so it never adds width to the nav or pushes its siblings. */
.nav-deal{position:relative;display:inline-flex;align-items:center;justify-content:center}
.deal-badge{position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);
  display:inline-flex;align-items:center;justify-content:center;line-height:1;white-space:nowrap;
  font-size:.475rem;font-weight:800;letter-spacing:.04em;padding:.1615rem .38rem;border-radius:999px;
  background:linear-gradient(120deg,#ff4fa3,#b14df0 75%);color:#fff;
  box-shadow:0 3px 10px -3px rgba(255,79,163,.9);pointer-events:none}

/* Nothing in the right-hand nav may shrink or wrap ("Sign up" was breaking onto
   two lines when the hover caret appeared), and the caret itself is absolutely
   positioned inside the link's own padding so hovering never shifts the layout. */
.navbar-right{flex:none}
.navbar-right>*{flex:none}
.pill-btn{white-space:nowrap}
.nav-link:hover::after{position:absolute;right:.2em;top:50%;margin-left:0;
  transform:translateY(-50%);vertical-align:baseline}
.btn{justify-content:center;text-align:center;line-height:1}
