/* ============================================================
   GREASY SCRIPTS — Carbon & Gold
   Palette sampled from the live Tebex storefront + brand banner.
   ============================================================ */

:root{
  --bg:          #0A0A0C;
  --bg-2:        #0D0D11;
  --panel:       #101014;
  --panel-2:     #14141A;
  --line:        #23232B;
  --line-gold:   rgba(255,212,0,.28);

  --gold:        #FFD400;   /* Tebex accent */
  --gold-deep:   #C9971B;
  --gold-light:  #FFE87A;
  --chrome:      #E8E8EC;

  --ink:         #0F172A;   /* text on gold */
  --fg:          #FFFFFF;
  --muted:       #8E8E9B;

  --grad-gold:   linear-gradient(180deg,#FFE87A 0%,#FFD400 42%,#C9971B 100%);
  --font:        'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mono:        ui-monospace, 'Cascadia Code', 'SF Mono', Consolas, 'Liberation Mono', monospace;

  --cut:         14px;      /* angular corner size */
  --wrap:        1200px;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--font);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

.wrap{ width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto; }
.narrow{ max-width:820px; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--gold); color:var(--ink); padding:.7rem 1.1rem; font-weight:800;
}
.skip:focus{ left:1rem; top:1rem; }

:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

/* ── Angular clip helper ─────────────────────────────────── */
.clip{
  clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
}

/* ============================================================
   BACKGROUND FX
   ============================================================ */
.fx{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }

.fx-grid{
  position:absolute; inset:-2px;
  background-image:
    linear-gradient(rgba(255,212,0,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,212,0,.045) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 90% 60% at 50% 0%, #000 20%, transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 90% 60% at 50% 0%, #000 20%, transparent 78%);
}

.fx-glow{
  position:absolute; left:50%; top:-30vh; transform:translateX(-50%);
  width:120vw; height:70vh;
  background:radial-gradient(ellipse at center, rgba(255,212,0,.10), transparent 62%);
}

.fx-streak{
  position:absolute; height:1px; width:38vw;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:.5; filter:blur(.4px);
  animation:streak 9s linear infinite;
}
.fx-streak--1{ top:16%; left:-40vw; animation-delay:0s; }
.fx-streak--2{ top:48%; left:-40vw; width:26vw; animation-delay:3.2s; opacity:.32; }
.fx-streak--3{ top:74%; left:-40vw; width:44vw; animation-delay:6s; opacity:.22; }

@keyframes streak{
  0%{ transform:translateX(0) rotate(-14deg); }
  100%{ transform:translateX(190vw) rotate(-14deg); }
}
@media (prefers-reduced-motion:reduce){ .fx-streak{ animation:none; opacity:.18; } }

main, .nav, .foot{ position:relative; z-index:1; }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:80;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  background:rgba(10,10,12,.72);
  border-bottom:1px solid var(--line);
  transition:border-color .3s, background .3s;
}
.nav.is-stuck{ border-bottom-color:var(--line-gold); background:rgba(10,10,12,.9); }

.nav-in{ display:flex; align-items:center; gap:1.5rem; height:72px; }

.brand{ display:flex; align-items:center; gap:.7rem; margin-right:auto; }
.brand img{ border-radius:6px; }
.brand-txt{ display:flex; flex-direction:column; line-height:1; letter-spacing:.14em; }
.brand-txt b{
  font-size:.95rem; font-weight:900; font-style:italic;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.brand-txt i{ font-size:.62rem; font-style:normal; font-weight:700; color:var(--chrome); letter-spacing:.34em; }

.nav-links{ display:flex; gap:1.9rem; }
.nav-links a{
  position:relative; font-size:.82rem; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted); transition:color .2s;
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:-7px; height:2px; width:0;
  background:var(--grad-gold); transition:width .25s ease;
}
.nav-links a:hover{ color:var(--fg); }
.nav-links a:hover::after{ width:100%; }

.burger{ display:none; background:none; border:0; padding:.4rem; cursor:pointer; }
.burger span{ display:block; width:22px; height:2px; background:var(--fg); margin:4px 0; transition:.25s; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  --cut:10px;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.95rem 1.9rem; font-size:.85rem; font-weight:800;
  letter-spacing:.09em; text-transform:uppercase; cursor:pointer;
  clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
  transition:transform .18s ease, box-shadow .25s ease, filter .2s ease;
  border:0;
}
.btn-sm{ padding:.65rem 1.25rem; font-size:.76rem; }
.btn-lg{ padding:1.15rem 2.6rem; font-size:.95rem; }

.btn-gold{ background:var(--grad-gold); color:var(--ink); box-shadow:0 0 0 rgba(255,212,0,0); }
.btn-gold:hover{ transform:translateY(-2px); box-shadow:0 10px 34px rgba(255,212,0,.3); filter:brightness(1.06); }

.btn-ghost{ background:transparent; color:var(--fg); box-shadow:inset 0 0 0 1px var(--line-gold); }
.btn-ghost:hover{ transform:translateY(-2px); box-shadow:inset 0 0 0 1px var(--gold), 0 10px 30px rgba(0,0,0,.5); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ padding:clamp(3.5rem,7vw,6.5rem) 0 0; }
.hero-in{ display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem; margin:0 0 1.1rem;
  font-size:.74rem; font-weight:800; letter-spacing:.24em; text-transform:uppercase; color:var(--gold);
}
.eyebrow .dot{ width:6px; height:6px; background:var(--gold); transform:rotate(45deg); }

h1{
  margin:0 0 1.3rem; font-weight:900; line-height:.92;
  font-size:clamp(2.6rem,6.4vw,4.9rem); letter-spacing:-.02em; text-transform:uppercase;
}
h1 span{ display:block; }
h1 .ln1{ color:var(--chrome); font-style:italic; }
h1 .ln2{
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent;
  font-style:italic;
}
h1 .ln3{ font-size:.38em; letter-spacing:.16em; color:var(--muted); font-weight:800; margin-top:.7rem; }

.lede{ margin:0 0 2rem; max-width:52ch; color:#B9B9C4; font-size:1.06rem; }
.lede b{ color:var(--gold); font-weight:700; }

.hero-cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:2.4rem; }

.hero-marks{ display:flex; flex-wrap:wrap; gap:1.6rem; list-style:none; margin:0; padding:0; }
.hero-marks li{
  display:flex; align-items:center; gap:.5rem;
  font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
}
.hero-marks svg{ width:16px; height:16px; fill:none; stroke:var(--gold); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* emblem */
.hero-art{ display:grid; place-items:center; }
.emblem-wrap{ position:relative; width:min(100%,400px); aspect-ratio:1; display:grid; place-items:center; }

/* Static glow sits BEHIND the emblem rather than as a drop-shadow filter on
   it. A drop-shadow on a large alpha PNG re-rasterises on every animation
   frame and stalls paint; a plain gradient costs nothing. */
.emblem-wrap::before{
  content:''; position:absolute; inset:8%;
  background:radial-gradient(circle at 50% 50%, rgba(255,212,0,.30), rgba(255,212,0,.06) 55%, transparent 72%);
  filter:blur(18px);
}

.emblem{
  /* logo-emblem.png is the supplied square logo with its black field
     knocked out to real alpha, so it sits on the hero glow cleanly. */
  position:relative;
  width:88%;
  will-change:transform;
  animation:float 7s ease-in-out infinite;
}
@keyframes float{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-14px); } }

.ring{ position:absolute; border-radius:50%; border:1px solid var(--line-gold); }
.ring--a{ inset:0; animation:spin 26s linear infinite; border-style:dashed; }
.ring--b{ inset:9%; border-color:rgba(255,212,0,.14); animation:spin 34s linear infinite reverse; }
@keyframes spin{ to{ transform:rotate(360deg); } }

@media (prefers-reduced-motion:reduce){
  .emblem,.ring{ animation:none; }
}

/* ticker */
.ticker{
  margin-top:clamp(3rem,6vw,5rem);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:linear-gradient(90deg,rgba(255,212,0,.05),transparent 30%,transparent 70%,rgba(255,212,0,.05));
  overflow:hidden; padding:.9rem 0;
}
.ticker-row{ display:flex; gap:2rem; width:max-content; animation:marquee 38s linear infinite; }
.ticker-row span{ font-size:.74rem; font-weight:800; letter-spacing:.22em; color:var(--muted); white-space:nowrap; }
.ticker-row i{ color:var(--gold); font-style:normal; font-size:.6rem; }
@keyframes marquee{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .ticker-row{ animation:none; } }

/* ============================================================
   SECTIONS
   ============================================================ */
.section{ padding:clamp(4rem,8vw,7rem) 0; }
.section--alt{ background:linear-gradient(180deg,transparent,var(--bg-2) 18%,var(--bg-2) 82%,transparent); }

.sec-head{ margin-bottom:3rem; max-width:70ch; }
.sec-head h2, .split-copy h2, .cta h2{
  margin:0 0 .9rem; font-size:clamp(1.9rem,4vw,2.9rem); font-weight:900;
  line-height:1.05; letter-spacing:-.015em; text-transform:uppercase;
}
.sec-sub{ margin:0; color:var(--muted); font-size:1.02rem; }

/* ── Pillars ─────────────────────────────────────────────── */
.pillars{ padding:clamp(3rem,6vw,4.5rem) 0; }
.pillar-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }

.pillar{
  --cut:16px;
  padding:2rem 1.5rem; background:var(--panel);
  box-shadow:inset 0 0 0 1px var(--line);
  clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
  transition:transform .25s ease, box-shadow .25s ease, background .25s;
}
.pillar:hover{ transform:translateY(-6px); background:var(--panel-2); box-shadow:inset 0 0 0 1px var(--line-gold); }
.pillar h3{ margin:1.1rem 0 .5rem; font-size:.95rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.pillar p{ margin:0; color:var(--muted); font-size:.9rem; }

.hex{
  width:52px; height:58px; display:grid; place-items:center;
  background:linear-gradient(180deg,rgba(255,212,0,.14),rgba(255,212,0,.03));
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
}
.hex svg{ width:22px; height:22px; fill:none; stroke:var(--gold); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

/* ── Product cards ───────────────────────────────────────── */
.cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1.5rem; }

.card{
  --cut:18px;
  position:relative; display:flex; flex-direction:column;
  background:var(--panel); box-shadow:inset 0 0 0 1px var(--line);
  clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
  transition:transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s;
}
.card:hover{ transform:translateY(-8px); box-shadow:inset 0 0 0 1px var(--line-gold), 0 26px 60px rgba(0,0,0,.6); }

.card-media{ position:relative; aspect-ratio:16/10; overflow:hidden; background:#08080A; }
.card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.card:hover .card-media img{ transform:scale(1.06); }
.card-media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(10,10,12,.92));
}

.tag{
  position:absolute; top:1rem; left:1rem; z-index:2;
  padding:.32rem .7rem; font-size:.64rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase;
  background:var(--grad-gold); color:var(--ink);
}
.tag--soon{ background:#26262E; color:var(--muted); }

.card-body{ padding:1.5rem; display:flex; flex-direction:column; flex:1; gap:.8rem; }
.card-body h3{ margin:0; font-size:1.18rem; font-weight:800; letter-spacing:-.01em; }
.card-body p{ margin:0; color:var(--muted); font-size:.9rem; flex:1; }

.card-meta{ display:flex; flex-wrap:wrap; gap:.4rem; }
.card-meta span{
  padding:.26rem .6rem; font-size:.66rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); box-shadow:inset 0 0 0 1px var(--line);
}

.card-foot{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.4rem; }
.price{ font-size:1.5rem; font-weight:900; color:var(--gold); letter-spacing:-.02em; }
.price small{ font-size:.7rem; font-weight:700; color:var(--muted); letter-spacing:.1em; }

.card--soon{ opacity:.62; }
.card--soon .card-media{ display:grid; place-items:center; aspect-ratio:16/10; }
.card--soon .ghost{
  font-size:3.4rem; font-weight:900; font-style:italic; color:#1B1B22; letter-spacing:-.03em;
}

/* ── Split / code window ─────────────────────────────────── */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.split-copy p{ color:var(--muted); }

.checks{ list-style:none; margin:1.6rem 0 2rem; padding:0; display:grid; gap:.85rem; }
.checks li{ position:relative; padding-left:1.9rem; color:#C3C3CE; font-size:.94rem; }
.checks li::before{
  content:''; position:absolute; left:0; top:.42rem; width:10px; height:10px;
  background:var(--grad-gold); transform:rotate(45deg);
}

.win{
  --cut:14px;
  background:#0B0B0F; box-shadow:inset 0 0 0 1px var(--line), 0 30px 70px rgba(0,0,0,.65);
  clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
  overflow:hidden;
}
.win-bar{
  display:flex; align-items:center; gap:.45rem; padding:.85rem 1.1rem;
  background:#0E0E13; border-bottom:1px solid var(--line);
}
.win-bar .d{ width:10px; height:10px; border-radius:50%; }
.d1{ background:#FF5F57; } .d2{ background:#FEBC2E; } .d3{ background:#28C840; }
.win-bar span{ margin-left:.6rem; font-family:var(--mono); font-size:.72rem; color:var(--muted); }

.code{ margin:0; padding:1.5rem; overflow-x:auto; font-family:var(--mono); font-size:.82rem; line-height:1.75; color:#C9C9D4; }
.code .c{ color:#5C6370; font-style:italic; }
.code .k{ color:var(--gold); font-weight:600; }
.code .fn{ color:#FFE87A; }
.code .s{ color:#98C379; }
.code .v{ color:#9AB8FF; }

/* ── Chips ───────────────────────────────────────────────── */
.chips{ display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:1.6rem; }
.chip{
  padding:.6rem 1.15rem; font-size:.8rem; font-weight:700; letter-spacing:.05em;
  background:var(--panel); box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow .2s, color .2s, transform .2s;
}
.chip:hover{ box-shadow:inset 0 0 0 1px var(--line-gold); color:var(--gold); transform:translateY(-2px); }
.note{ margin:0; color:var(--muted); font-size:.88rem; max-width:66ch; }

/* ── FAQ ─────────────────────────────────────────────────── */
.faq{ display:grid; gap:.8rem; }
.faq details{
  background:var(--panel); box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow .2s;
}
.faq details[open]{ box-shadow:inset 0 0 0 1px var(--line-gold); }
.faq summary{
  cursor:pointer; list-style:none; padding:1.15rem 1.4rem;
  font-weight:700; font-size:.98rem; display:flex; justify-content:space-between; align-items:center; gap:1rem;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:'+'; color:var(--gold); font-size:1.3rem; font-weight:400; line-height:1; transition:transform .25s;
}
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq p{ margin:0; padding:0 1.4rem 1.3rem; color:var(--muted); font-size:.92rem; }

/* ── CTA ─────────────────────────────────────────────────── */
.cta{ padding:clamp(4rem,8vw,7rem) 0; text-align:center; }
.cta-in{
  --cut:24px;
  padding:clamp(2.8rem,6vw,4.5rem) 2rem;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255,212,0,.12), transparent 62%),
    var(--panel);
  box-shadow:inset 0 0 0 1px var(--line-gold);
  clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
}
.cta p{ margin:0 0 2rem; color:var(--muted); }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{ border-top:1px solid var(--line); background:var(--bg-2); padding:3.5rem 0 0; }
.foot-in{ display:grid; grid-template-columns:1.2fr 1fr; gap:3rem; align-items:start; }
.foot-logo{ width:min(100%,420px); opacity:.92; }

.foot-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.foot-cols h4{
  margin:0 0 1rem; font-size:.72rem; font-weight:800; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold);
}
.foot-cols a{ display:block; margin-bottom:.6rem; font-size:.9rem; color:var(--muted); transition:color .2s; }
.foot-cols a:hover{ color:var(--fg); }

.foot-legal{
  margin-top:3rem; padding:1.6rem 0; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}
.foot-legal p{ margin:0; font-size:.82rem; color:var(--muted); }
.foot-legal .small{ font-size:.75rem; opacity:.7; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  .hero-in{ grid-template-columns:1fr; text-align:center; }
  .hero-copy{ order:2; }
  .hero-art{ order:1; }
  .emblem-wrap{ width:min(100%,280px); }
  .eyebrow,.hero-cta,.hero-marks{ justify-content:center; }
  .lede{ margin-inline:auto; }
  .pillar-grid{ grid-template-columns:repeat(2,1fr); }
  .split{ grid-template-columns:1fr; gap:2.5rem; }
  .foot-in{ grid-template-columns:1fr; }
}

@media (max-width:720px){
  .burger{ display:block; }
  .nav-links{
    position:absolute; top:72px; left:0; right:0; flex-direction:column; gap:0;
    background:rgba(10,10,12,.97); border-bottom:1px solid var(--line-gold);
    max-height:0; overflow:hidden; transition:max-height .3s ease;
  }
  /* vh rather than a fixed px so adding nav items can't clip the menu */
  .nav-links.open{ max-height:70vh; overflow-y:auto; }
  .nav-links a{ padding:1.05rem 1.25rem; border-bottom:1px solid var(--line); }
  .nav-links a::after{ display:none; }
  .nav-in .btn-sm{ display:none; }
  .pillar-grid{ grid-template-columns:1fr; }
  .foot-cols{ grid-template-columns:1fr 1fr; }
  .foot-legal{ flex-direction:column; }
}
