/* ===== Grandiose Crime Vehicle — style.css ===== */
:root{
  --purple:#2b0a5e; --purple-2:#4a1590; --pink:#ff2e93; --orange:#ff8a1f; --gold:#ffd166;
  --teal:#18d6c8; --ink:#0c0618; --ink-2:#150a2b; --ink-3:#1f1040; --text:#f6eefe; --muted:#b9a8d6;
  --sunset:linear-gradient(135deg,var(--purple) 0%,var(--pink) 55%,var(--orange) 100%);
  --sunset-text:linear-gradient(180deg,#ffe36e 0%,var(--orange) 35%,var(--pink) 70%,#c23cff 100%);
  --radius:18px; --shadow:0 20px 50px -20px rgba(255,46,147,.45);
  --display:"Bungee",Impact,"Arial Black",sans-serif;
  --body:"Rubik",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --navh:68px;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--navh) + 12px)}
body{margin:0;background:var(--ink);color:var(--text);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold)}
h1,h2,h3{line-height:1.05;margin:0}
.wrap{width:min(1180px,92vw);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--ink);padding:8px 14px;border-radius:8px;z-index:100;font-weight:700}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
.display{font-family:var(--display);font-weight:400;letter-spacing:.01em;text-transform:uppercase}
.grad{background:var(--sunset-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font:700 .8rem/1 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--pink);margin:0 0 12px}
.lede{color:var(--muted);max-width:60ch;font-size:1.08rem;margin:14px 0 40px}
.muted{color:var(--muted)} .small{font-size:.85rem} .tiny{font-size:.78rem;color:var(--muted);margin:14px 0 0}
.hl{color:var(--ink);background:var(--gold);padding:0 .25em;border-radius:6px;transform:rotate(-2deg);display:inline-block}

/* Buttons */
.btn{--bg:var(--sunset);display:inline-flex;align-items:center;gap:.5em;padding:14px 26px;border-radius:999px;background:var(--bg);color:#fff;text-decoration:none;font:400 1rem/1 var(--display);letter-spacing:.03em;box-shadow:0 10px 30px -8px rgba(255,46,147,.7),inset 0 -3px 0 rgba(0,0,0,.25);transition:transform .2s,box-shadow .2s,filter .2s;border:0;cursor:pointer}
.btn:hover{transform:translateY(-2px) scale(1.03);filter:saturate(1.2);box-shadow:0 16px 40px -8px rgba(255,138,31,.8)}
.btn--ghost{background:transparent;border:2px solid rgba(255,255,255,.35);box-shadow:none}
.btn--ghost:hover{border-color:var(--pink);box-shadow:none}
.btn--small{padding:10px 16px;font-size:.8rem}

/* Nav */
.nav{position:sticky;top:0;z-index:50;height:var(--navh);background:rgba(12,6,24,.6);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid rgba(255,255,255,.06);transition:background .3s}
.nav.is-scrolled{background:rgba(12,6,24,.9)}
.nav__inner{width:min(1240px,94vw);margin-inline:auto;height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.brand__mark{font:400 1.05rem/1 var(--display);padding:8px 10px;border-radius:10px;background:var(--sunset);color:#fff;box-shadow:var(--shadow)}
.brand__name{font:400 .95rem/1 var(--display);letter-spacing:.02em}
.nav__links{list-style:none;display:flex;align-items:center;gap:6px;margin:0;padding:0}
.nav__links a:not(.btn){color:var(--text);text-decoration:none;font-weight:500;padding:8px 12px;border-radius:999px;transition:background .2s,color .2s}
.nav__links a:not(.btn):hover,.nav__links a.is-active{background:rgba(255,46,147,.16);color:#fff}
.nav__toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;padding:10px}
.nav__toggle span{display:block;height:3px;margin:5px 0;background:var(--text);border-radius:3px;transition:transform .25s,opacity .25s}
.nav__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Hero */
.hero{position:relative;overflow:hidden;padding:48px 0 0;background:radial-gradient(1200px 600px at 70% 110%,rgba(255,138,31,.45),transparent 60%),radial-gradient(900px 500px at 10% 0%,rgba(255,46,147,.35),transparent 60%),linear-gradient(180deg,var(--purple) 0%,#3d0c6e 45%,var(--ink) 100%)}
.hero__sun{position:absolute;width:520px;aspect-ratio:1;border-radius:50%;right:-120px;top:40px;background:repeating-linear-gradient(180deg,#ffd166 0 14px,transparent 14px 22px),linear-gradient(180deg,#ffd166,var(--pink));-webkit-mask:linear-gradient(180deg,#000 45%,transparent 100%);mask:linear-gradient(180deg,#000 45%,transparent 100%);opacity:.28;filter:blur(1px)}
.hero__grid{position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(transparent 0 96%,rgba(255,46,147,.55) 96%) 0 0/100% 40px,linear-gradient(90deg,transparent 0 98%,rgba(255,46,147,.4) 98%) 0 0/60px 100%;transform:perspective(500px) rotateX(60deg);transform-origin:bottom;-webkit-mask:linear-gradient(transparent,#000 70%);mask:linear-gradient(transparent,#000 70%);opacity:.5}
.hero__inner{position:relative;width:min(1240px,94vw);margin-inline:auto;display:grid;grid-template-columns:1.35fr 1fr;gap:40px;align-items:center;padding-bottom:56px}
.hero__art{border-radius:22px;overflow:hidden;box-shadow:0 30px 80px -20px rgba(255,46,147,.6),0 0 0 2px rgba(255,255,255,.08);transform:rotate(-1.2deg);transition:transform .5s}
.hero__art:hover{transform:rotate(0) scale(1.01)}
.hero__copy h1{font-size:clamp(2.6rem,5.6vw,4.8rem);display:flex;flex-direction:column;filter:drop-shadow(0 4px 0 rgba(0,0,0,.55)) drop-shadow(0 10px 30px rgba(255,46,147,.5))}
.tagline{font-size:1.2rem;margin:18px 0 26px;color:#f0e2ff}
.tagline strong{color:#fff}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px}
.ca{margin-top:22px;display:inline-flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border-radius:999px;background:rgba(0,0,0,.35);border:1px dashed rgba(255,255,255,.25);max-width:100%}
.ca__label{font:400 .85rem var(--display);color:var(--gold)}
.ca__value{font:500 .95rem ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ca__copy{background:rgba(255,255,255,.1);color:#fff;border:0;border-radius:999px;padding:6px 14px;font:700 .8rem var(--body);cursor:pointer}
.ca__copy:hover{background:var(--pink)}

.marquee{position:relative;background:var(--sunset);color:#fff;font:400 1.05rem/1 var(--display);padding:14px 0;overflow:hidden;transform:rotate(-1.2deg) scale(1.03);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.marquee__track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.marquee__track span{white-space:nowrap;padding-right:1em}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Sections */
.section{padding:clamp(72px,10vw,120px) 0;position:relative}
.section--alt{background:linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 20%,var(--ink-2) 80%,var(--ink) 100%)}
.section--alt::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 300px at 85% 20%,rgba(255,46,147,.12),transparent 70%),radial-gradient(600px 300px at 5% 90%,rgba(255,138,31,.10),transparent 70%);pointer-events:none}
.h2{font-size:clamp(2.2rem,5vw,3.6rem);background:var(--sunset-text);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}

/* Plan */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:22px;counter-reset:s}
.step{position:relative;background:linear-gradient(160deg,var(--ink-3),var(--ink-2));border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:28px;overflow:hidden;transition:transform .3s,border-color .3s}
.step__num{font:400 3.2rem/1 var(--display);background:var(--sunset-text);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.9}
.step h3{font:400 1.25rem/1.15 var(--display);margin:14px 0 10px;text-transform:uppercase}
.step p{margin:0;color:var(--muted)}
.endings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}
.ending{border-radius:12px;padding:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.ending strong{display:block;margin-bottom:4px}
.ending p{font-size:.92rem}
.ending--good{border-color:rgba(24,214,200,.45);background:rgba(24,214,200,.07)}
.ending--bad{border-color:rgba(255,138,31,.5);background:rgba(255,138,31,.07)}

/* Fees */
.fees{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;position:relative}
.promise{margin-top:24px;padding:28px;border-radius:var(--radius);background:linear-gradient(var(--ink-2),var(--ink-2)) padding-box,var(--sunset) border-box;border:2px solid transparent;box-shadow:var(--shadow)}
.promise__big{font:400 clamp(1.3rem,2.4vw,1.75rem)/1.25 var(--display);margin:0 0 18px;text-transform:uppercase}
.promise__list{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.promise__list li{padding-left:30px;position:relative;color:#e8dcfa}
.promise__list li::before{content:"★";position:absolute;left:0;top:0;color:var(--gold)}
.prorata{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:28px}
.prorata__title{font:400 1.2rem var(--display);text-transform:uppercase;margin-bottom:14px}
.prorata__formula{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px}
.chip{padding:8px 14px;border-radius:999px;font-weight:700;font-size:.95rem}
.chip--a{background:rgba(255,46,147,.2);color:#ff9cca;border:1px solid rgba(255,46,147,.5)}
.chip--t{background:rgba(255,138,31,.2);color:#ffc28a;border:1px solid rgba(255,138,31,.5)}
.chip--w{background:var(--sunset);color:#fff}
.op{font:400 1.4rem var(--display);color:var(--muted)}
.prorata__note{color:var(--muted);margin:8px 0 20px}
.holders{display:grid;gap:14px}
.holder{display:grid;grid-template-columns:1fr auto;grid-template-areas:"meta share" "bar bar";gap:6px 12px;align-items:center}
.holder__meta{grid-area:meta;font-size:.92rem}
.holder__meta span{color:var(--muted);margin-left:6px}
.holder__share{grid-area:share;font:400 1rem var(--display);color:var(--gold);min-width:4ch;text-align:right}
.holder__bar{grid-area:bar;height:14px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}
.holder__bar span{display:block;height:100%;width:var(--w);border-radius:inherit;background:linear-gradient(90deg,var(--pink),var(--orange));transition:width .6s cubic-bezier(.2,.8,.2,1)}
.holder--you .holder__bar span{background:linear-gradient(90deg,var(--teal),var(--gold))}
.holder--you .holder__meta b{color:var(--teal)}
.sliders{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.sliders label{display:grid;gap:6px;font-weight:500;font-size:.9rem}
.sliders output{font:400 .9rem var(--display);color:var(--teal);margin-left:6px}
input[type=range]{width:100%;accent-color:var(--pink);height:28px}

/* Cast */
.cast{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;perspective:1000px}
.card{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;width:100%;height:100%;border-radius:var(--radius);overflow:hidden;background:var(--ink-3);border:1px solid rgba(255,255,255,.08);transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .2s ease-out,box-shadow .3s,border-color .3s;position:relative}
.card::after{content:"";position:absolute;inset:0;background:radial-gradient(400px circle at var(--mx) var(--my),rgba(255,255,255,.18),transparent 45%);opacity:0;transition:opacity .3s;pointer-events:none}
.card:hover,.card:focus-visible{box-shadow:0 25px 50px -15px rgba(255,46,147,.6);border-color:rgba(255,46,147,.6)}
.card:hover::after{opacity:1}
.card:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.card img{aspect-ratio:16/9;width:100%;object-fit:cover;transition:transform .5s}
.card:hover img{transform:scale(1.06)}
.card__body{display:flex;flex-direction:column;gap:4px;padding:16px 18px 20px;flex:1}
.card__role{font:700 .7rem/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--pink)}
.card__name{font:400 1.15rem/1.1 var(--display);text-transform:uppercase;color:#fff}
.card__blurb{color:var(--muted);font-size:.93rem;line-height:1.45}

/* Roadmap */
.road{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;position:relative}
.road::before{content:"";position:absolute;left:0;right:0;top:-18px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--teal) 0 25%,var(--pink) 25% 50%,rgba(255,255,255,.15) 50%)}
.phase{position:relative;padding:26px;border-radius:var(--radius);background:linear-gradient(160deg,var(--ink-3),var(--ink-2));border:1px solid rgba(255,255,255,.08)}
.phase::before{content:"";position:absolute;top:-26px;left:26px;width:20px;height:20px;border-radius:50%;background:var(--ink);border:4px solid rgba(255,255,255,.25)}
.phase--live::before{border-color:var(--teal);box-shadow:0 0 0 6px rgba(24,214,200,.2)}
.phase--next::before{border-color:var(--pink)}
.phase__tag{display:inline-block;font:700 .72rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--muted)}
.phase--live .phase__tag{background:rgba(24,214,200,.15);color:var(--teal)}
.phase--next .phase__tag{background:rgba(255,46,147,.15);color:#ff8cc3}
.phase--locked{border-style:dashed;opacity:.85}
.phase--locked .phase__tag{background:rgba(255,138,31,.15);color:var(--orange)}
.phase h3{font:400 1.2rem/1.15 var(--display);text-transform:uppercase;margin:14px 0 8px}
.phase p{margin:0;color:var(--muted);font-size:.95rem}

/* Fee Tracker */
.tracker{background:linear-gradient(160deg,var(--ink-3),var(--ink-2));border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:28px;position:relative;overflow:hidden}
.tracker__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.badge{display:inline-flex;align-items:center;gap:10px;margin:0;padding:10px 16px;border-radius:999px;font:700 .85rem/1.3 var(--body);letter-spacing:.06em;text-transform:uppercase}
.badge strong{font:400 .95rem/1 var(--display);letter-spacing:.03em}
.badge--locked{background:rgba(255,138,31,.12);border:1px solid rgba(255,138,31,.55);color:#ffc28a}
.badge--locked strong{color:var(--gold)}
.badge__dot{width:10px;height:10px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,138,31,.25);flex:none}
.tracker__badge-note{color:var(--muted);font-size:.9rem;margin:12px 0 22px;max-width:75ch}
.pill{display:inline-flex;align-items:center;gap:8px;margin:0;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);font:700 .75rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pill__dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}
[data-state="live"] .pill{color:var(--teal);border-color:rgba(24,214,200,.45)}
[data-state="live"] .pill__dot{background:var(--teal);animation:blink 1.6s ease-in-out infinite}
[data-state="loading"] .pill{color:var(--gold)} [data-state="loading"] .pill__dot{background:var(--gold);animation:blink .8s ease-in-out infinite}
[data-state="error"] .pill{color:#ff8cc3;border-color:rgba(255,46,147,.5)} [data-state="error"] .pill__dot{background:var(--pink)}
@keyframes blink{50%{opacity:.3}}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0}
.stat{display:flex;flex-direction:column;gap:4px;padding:18px;border-radius:14px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.08);min-width:0}
.stat dt{font:700 .72rem/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--pink)}
.stat dd{margin:0}
.stat dd:not(.stat__note){font:400 clamp(1.4rem,2.6vw,1.9rem)/1.1 var(--display);color:#fff;overflow-wrap:anywhere}
.stat dd small{font:700 .8rem var(--body);color:var(--muted);letter-spacing:.08em}
.stat__note{color:var(--muted);font-size:.85rem;line-height:1.45}
.stat--hero{grid-column:1/-1;background:linear-gradient(rgba(21,10,43,.92),rgba(21,10,43,.92)) padding-box,var(--sunset) border-box;border:2px solid transparent;box-shadow:var(--shadow)}
.stat--hero dd:not(.stat__note){font-size:clamp(2rem,5vw,3.2rem);background:var(--sunset-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat--hero dd small{-webkit-text-fill-color:var(--muted)}
.stat--muted{border-style:dashed}
.addrs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px;margin:18px 0 0;font-size:.88rem}
.addrs div{min-width:0}
.addrs dt{color:var(--muted);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.addrs dd{margin:2px 0 0;font:500 .88rem ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tracker__status{margin:18px 0 0;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);color:#e8dcfa;font-size:.92rem}
[data-state="error"] .tracker__status{border-color:rgba(255,46,147,.45);background:rgba(255,46,147,.08)}
.tracker__form{margin-top:22px}
.tracker__form label{display:block;font-weight:500;font-size:.92rem;margin-bottom:8px}
.tracker__row{display:flex;flex-wrap:wrap;gap:10px}
.tracker__row input{flex:1 1 280px}

/* Forms (shared) */
.field{display:grid;gap:6px;margin-bottom:16px}
.field label,.verify legend{font-weight:500;font-size:.95rem}
.tracker input[type=text],.wl-form input:not([type=checkbox]){width:100%;min-height:48px;padding:12px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.35);color:var(--text);font:500 1rem var(--body);transition:border-color .2s,box-shadow .2s}
.tracker input[type=text]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92rem}
.tracker input::placeholder,.wl-form input::placeholder{color:rgba(185,168,214,.6)}
.tracker input:focus,.wl-form input:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,46,147,.25)}
input[aria-invalid="true"]{border-color:var(--pink)!important;background:rgba(255,46,147,.08)!important}
.hint{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}
.field__err{margin:0;color:#ff8cc3;font-size:.85rem;font-weight:700}
.field__err:empty{display:none}
.req{color:var(--pink)} .opt{color:var(--muted);font-weight:400;font-size:.85em}

/* Whitelist */
.wl{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:start;position:relative}
.wl .lede{margin-bottom:28px}
.wl-count{padding:24px 28px;border-radius:var(--radius);background:linear-gradient(var(--ink-2),var(--ink-2)) padding-box,var(--sunset) border-box;border:2px solid transparent;box-shadow:var(--shadow);margin-bottom:28px}
.wl-count__num{margin:0;font:400 clamp(2.4rem,6vw,3.8rem)/1 var(--display)}
.wl-count__num #wl-claimed{background:var(--sunset-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.wl-count__cap{color:var(--muted);font-size:.55em}
.wl-count__label{margin:6px 0 14px;font:700 .8rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--pink)}
.wl-count__bar{height:14px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}
.wl-count__bar span{display:block;height:100%;width:var(--w,0%);border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width .8s cubic-bezier(.2,.8,.2,1)}
.wl__facts{margin-bottom:22px}
.wl__roadmap{margin:0;color:var(--muted);font-size:.92rem;line-height:1.7}
.wl__roadmap .phase__tag{margin-right:8px;vertical-align:1px}
.wl__roadmap strong{color:var(--text)}
.wl-form{background:linear-gradient(160deg,var(--ink-3),var(--ink-2));border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:28px;position:relative;overflow:hidden}
.wl-form__title{font:400 1.3rem var(--display);text-transform:uppercase;margin-bottom:18px}
.wl-form__errors{margin:0 0 18px;padding:12px 16px;border-radius:12px;background:rgba(255,46,147,.1);border:1px solid rgba(255,46,147,.5);font-size:.9rem}
.wl-form__errors ul{margin:6px 0 0;padding-left:18px}
.wl-form__errors a{color:#ff8cc3}
.verify{margin:4px 0 16px;padding:16px;border-radius:14px;border:1px dashed rgba(255,255,255,.2);display:grid;gap:12px}
.verify legend{padding:0 6px}
.verify__row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.verify__code{font:700 1.1rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--gold);padding:8px 14px;border-radius:10px;background:rgba(0,0,0,.35);border:1px solid rgba(255,209,102,.35)}
.verify .field{margin:0}
.field--check{grid-template-columns:auto 1fr;align-items:start;gap:4px 12px}
.field--check input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--pink)}
.field--check label{font-weight:500}
.field--check .field__err{grid-column:2}
.wl-form__submit{width:100%;justify-content:center;margin-top:6px}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;filter:none}
.wl-form__result{margin:14px 0 0;font-weight:700}
.wl-form__result:empty{display:none}
.wl-form__result.is-ok{color:var(--teal)} .wl-form__result.is-info{color:var(--gold)} .wl-form__result.is-err{color:#ff8cc3}
.wl-form__result button{all:unset;cursor:pointer;color:var(--gold);text-decoration:underline;font-weight:500;margin-left:6px}
.wl-form__result button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* Footer */
.footer{border-top:1px solid rgba(255,255,255,.08);padding:56px 0 40px;background:linear-gradient(180deg,var(--ink),#07030f)}
.footer__inner{display:grid;grid-template-columns:auto 1fr;gap:24px 40px;align-items:center}
.footer__brand{display:flex;align-items:center;gap:14px}
.footer__brand p{margin:0;font-family:var(--display);font-size:.95rem;line-height:1.4}
.footer__brand .muted{font-family:var(--body);font-size:.85rem}
.socials{list-style:none;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin:0;padding:0}
.socials a{display:inline-block;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.18);color:var(--text);text-decoration:none;font-weight:500;transition:background .2s,border-color .2s}
.socials a:hover{background:rgba(255,46,147,.18);border-color:var(--pink)}
.disclaimer{grid-column:1/-1;margin:8px 0 0;padding:16px 18px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);color:var(--muted);font-size:.85rem;line-height:1.55}
.disclaimer strong{color:var(--text)}
.footer .small{grid-column:1/-1;margin:0}

/* Lightbox */
.lightbox{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);width:100%;color:var(--text)}
.lightbox::backdrop{background:rgba(8,3,18,.86);backdrop-filter:blur(6px)}
.lightbox[open]{animation:pop .25s ease-out}
@keyframes pop{from{opacity:0;transform:scale(.96)}}
.lightbox__frame{position:relative}
.lightbox figure{margin:0;border-radius:20px;overflow:hidden;background:var(--ink-2);box-shadow:0 30px 80px rgba(255,46,147,.35)}
.lightbox img{width:100%;aspect-ratio:16/9;max-height:72vh;object-fit:cover;background:var(--ink-3)}
.lightbox figcaption{display:flex;flex-direction:column;gap:4px;padding:18px 22px 22px}
.lb-name{font:400 1.6rem/1.1 var(--display);text-transform:uppercase}
.lb-btn{position:absolute;z-index:2;border:0;cursor:pointer;color:#fff;background:rgba(12,6,24,.7);width:48px;height:48px;border-radius:50%;font-size:1.6rem;line-height:1;display:grid;place-items:center;transition:background .2s}
.lb-btn:hover{background:var(--pink)}
.lb-close{top:12px;right:12px;font-size:1.1rem}
.lb-prev,.lb-next{top:calc(50% - 60px)}
.lb-prev{left:12px} .lb-next{right:12px}

/* Toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,40px);opacity:0;background:var(--sunset);color:#fff;padding:12px 20px;border-radius:999px;font-weight:700;box-shadow:var(--shadow);transition:.3s;z-index:200;pointer-events:none;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* Reveal */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}

/* ===== Art backgrounds ===== */
.hero__bg{position:absolute;inset:-8% 0 0 0;background:url(img/web/bg-chase-1920.webp) center 40%/cover no-repeat;opacity:.55;will-change:transform}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,10,94,.55) 0%,rgba(30,8,60,.55) 50%,var(--ink) 100%),radial-gradient(900px 500px at 75% 50%,rgba(12,6,24,.55),transparent 70%)}
.section--art{overflow:hidden;isolation:isolate;background:var(--ink)}
.section--art > .wrap{position:relative;z-index:1}
.sbg{position:absolute;inset:-14% 0;z-index:-1;background:center/cover no-repeat;opacity:0;transition:opacity .9s ease;will-change:transform}
.sbg.is-loaded{opacity:1}
.sbg--flip{transform:scaleX(-1)}
.sbg--low{background-position:center 70%}
.sbg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--ink) 0%,rgba(12,6,24,.74) 22%,rgba(12,6,24,.66) 50%,rgba(12,6,24,.78) 80%,var(--ink) 100%),radial-gradient(1100px 600px at 50% 50%,rgba(12,6,24,.35),transparent 70%)}
#tracker .sbg::after{background:linear-gradient(180deg,var(--ink) 0%,rgba(12,6,24,.82) 20%,rgba(12,6,24,.8) 80%,var(--ink) 100%)}
.section--art .lede{color:#d9cbef;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.section--art .eyebrow{text-shadow:0 2px 10px rgba(0,0,0,.7)}

/* Crew feature banner */
.crew{position:relative;background:var(--ink);overflow:hidden}
.crew__fig{margin:0;position:relative}
.crew__fig img{width:100%;aspect-ratio:16/9;max-height:92vh;object-fit:cover;object-position:center 35%}
.crew__fig::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,var(--ink) 0%,transparent 14%,transparent 62%,rgba(12,6,24,.85) 88%,var(--ink) 100%)}
.crew__cap{position:relative;margin-top:-170px;padding-bottom:40px;z-index:1}
.crew__cap p:not(.eyebrow){max-width:52ch;color:#efe4ff;margin:10px 0 18px;text-shadow:0 2px 10px rgba(0,0,0,.8)}
.crew__cap .h2{filter:drop-shadow(0 4px 0 rgba(0,0,0,.6))}

/* ===== Box system: every box gets its own theme ===== */
.bx{--a:#ff2e93;--b:#ff8a1f;--pat:none;--base:rgba(17,8,36,.93);position:relative;overflow:hidden;isolation:isolate;border-radius:var(--radius);
  background:linear-gradient(90deg,var(--a),var(--b)) top/100% 4px no-repeat,var(--pat),linear-gradient(160deg,color-mix(in srgb,var(--a) 17%,#160a2e) 0%,var(--base) 62%);
  border:1px solid color-mix(in srgb,var(--a) 42%,transparent);
  box-shadow:0 18px 40px -24px color-mix(in srgb,var(--a) 75%,transparent),inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
body .bx.reveal.in{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s,opacity .7s}
.bx__ico{position:absolute;top:16px;right:16px;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#0c0618;
  background:linear-gradient(135deg,var(--a),var(--b));box-shadow:0 8px 20px -6px color-mix(in srgb,var(--a) 80%,transparent);transition:transform .45s cubic-bezier(.2,.8,.2,1);z-index:1}
.bx__ico svg{width:24px;height:24px}
.bx :is(h3,dt,.step__num,.promise__big,.wl-count__num,.prorata__title,.wl-form__title,.tracker__top){padding-right:58px}
.bx .tracker__top{padding-right:60px}
.bx :is(.stat__note,dd){padding-right:0}

/* themes */
.t-teal{--a:#18d6c8;--b:#3be8a0;--pat:radial-gradient(color-mix(in srgb,var(--a) 22%,transparent) 1.4px,transparent 1.6px) 0 0/16px 16px}
.t-gold{--a:#ffd166;--b:#ff8a1f;--pat:repeating-conic-gradient(from 0deg at 100% 0%,rgba(255,209,102,.07) 0 5deg,transparent 5deg 12deg)}
.t-magenta{--a:#ff2e93;--b:#c23cff;--pat:repeating-linear-gradient(135deg,rgba(255,46,147,.07) 0 10px,transparent 10px 22px)}
.t-sunset{--a:#ff8a1f;--b:#ff2e93;background:radial-gradient(500px 220px at 100% 0%,rgba(255,138,31,.22),transparent 70%) padding-box,linear-gradient(160deg,#2a0f4c,#150a2b) padding-box,var(--sunset) border-box;border:2px solid transparent}
.t-blueprint{--a:#4cc9ff;--b:#18d6c8;--pat:linear-gradient(rgba(76,201,255,.09) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(76,201,255,.09) 1px,transparent 1px) 0 0/24px 24px;--base:rgba(8,16,40,.94)}
.t-steel{--a:#9aa7ff;--b:#c23cff;--pat:repeating-linear-gradient(0deg,rgba(255,255,255,.028) 0 1px,transparent 1px 4px);--base:rgba(14,10,34,.95)}
.t-bullion{--a:#ffd166;--b:#ff8a1f;background:repeating-conic-gradient(from 0deg at 0% 100%,rgba(255,209,102,.06) 0 4deg,transparent 4deg 10deg) padding-box,linear-gradient(160deg,#2b1640,#150a2b) padding-box,linear-gradient(135deg,#ffe36e,#ff8a1f,#ff2e93) border-box;border:2px solid transparent}
.t-aqua{--a:#18d6c8;--b:#4cc9ff;--pat:linear-gradient(rgba(24,214,200,.08) 1px,transparent 1px) 0 0/100% 18px}
.t-violet{--a:#a66bff;--b:#ff2e93;--pat:radial-gradient(rgba(166,107,255,.22) 1.2px,transparent 1.4px) 0 0/12px 12px}
.t-blue{--a:#4c8dff;--b:#18d6c8;--pat:repeating-radial-gradient(circle at 0 100%,rgba(76,141,255,.08) 0 2px,transparent 2px 14px)}
.t-ember{--a:#ff8a1f;--b:#ff4d4d;--pat:radial-gradient(260px 120px at 100% 100%,rgba(255,77,77,.16),transparent 70%);border-style:dashed}
.t-lime{--a:#3be8a0;--b:#18d6c8;--pat:radial-gradient(circle at 100% 0,rgba(59,232,160,.18),transparent 55%)}
.t-pink{--a:#ff2e93;--b:#ff8cc3;--pat:repeating-linear-gradient(45deg,rgba(255,46,147,.07) 0 6px,transparent 6px 18px)}
.t-indigo{--a:#c23cff;--b:#4c8dff;--pat:linear-gradient(90deg,rgba(194,60,255,.14) 0 6px,transparent 6px) 0 0/100% 100%,repeating-linear-gradient(180deg,transparent 0 10px,rgba(255,255,255,.06) 10px 16px) 8px 0/6px 100% no-repeat}
.t-hazard{--a:#ff8a1f;--b:#ffd166;--pat:repeating-linear-gradient(-45deg,rgba(255,138,31,.12) 0 12px,transparent 12px 24px);border-style:dashed}
.t-ticket{--a:#ffd166;--b:#18d6c8;background:radial-gradient(circle at 0 50%,var(--ink) 12px,transparent 13px) padding-box,radial-gradient(circle at 100% 50%,var(--ink) 12px,transparent 13px) padding-box,linear-gradient(160deg,#2b1a3e,#150a2b) padding-box,linear-gradient(90deg,#ffd166,#18d6c8) border-box;border:2px solid transparent}
.t-dossier{--a:#e0c3ff;--b:#ff2e93;--pat:repeating-linear-gradient(180deg,transparent 0 27px,rgba(224,195,255,.07) 27px 28px);padding:24px 24px 22px}
.t-og{--a:#ff4d4d;--b:#ff8a1f;--pat:radial-gradient(circle at 100% 50%,rgba(255,77,77,.16),transparent 60%);padding:18px 70px 18px 18px;border-radius:14px}
.t-og .bx__ico{top:50%;margin-top:-20px;width:40px;height:40px}
.t-marina{--a:#18d6c8;--b:#4c8dff;--pat:repeating-radial-gradient(ellipse at 50% 120%,rgba(24,214,200,.06) 0 3px,transparent 3px 18px);--base:rgba(10,14,36,.94)}
.t-marina:focus-within{border-color:rgba(24,214,200,.8);box-shadow:0 0 0 1px rgba(24,214,200,.4),0 24px 60px -24px rgba(24,214,200,.6)}
.t-key{--a:#ffd166;--b:#3be8a0;--pat:none;border:1px dashed rgba(255,209,102,.45);border-radius:14px;background:rgba(255,209,102,.04)}
.t-key .bx__ico{width:36px;height:36px;border-radius:10px;top:12px;right:12px}
.t-key .bx__ico svg{width:18px;height:18px}
.t-key > legend{float:left;width:100%;padding:0 50px 0 0}
.t-warn{--a:#ff4d4d;--b:#ffd166;--pat:repeating-linear-gradient(-45deg,rgba(255,209,102,.05) 0 10px,transparent 10px 20px);padding-right:76px!important}
.t-warn-soft{--a:#ffd166;--b:#ff2e93}

/* hover effects (one flavour per box) */
body .bx.hv-lift:hover{transform:translateY(-6px);box-shadow:0 28px 50px -22px color-mix(in srgb,var(--a) 90%,transparent);border-color:var(--a)}
body .bx.hv-tilt:hover{transform:translateY(-4px) rotate(-1deg);border-color:var(--a)}
body .bx.hv-glow:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--a) 70%,transparent),0 0 46px -6px color-mix(in srgb,var(--a) 75%,transparent)}
.bx.hv-shine::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.14) 50%,transparent 65%);transform:translateX(-110%);transition:transform .8s ease;pointer-events:none}
body .bx.hv-shine:hover{transform:translateY(-3px);border-color:var(--a)}
.bx.hv-shine:hover::after{transform:translateX(110%)}
.bx.hv-scan{background-size:100% 4px,100% 4px,auto}
.bx.hv-scan:hover{animation:scan 1.2s linear infinite}
@keyframes scan{to{background-position:top,0 8px,0 0}}
body .bx.hv-dash:hover{border-color:var(--a);transform:translateY(-3px);border-style:solid}
body .bx.hv-stripe:hover{animation:stripes 1s linear infinite;border-color:var(--a)}
@keyframes stripes{to{background-position:top,34px 0,0 0}}
.hv-lift:hover .bx__ico{transform:rotate(180deg) scale(1.08)}
.hv-tilt:hover .bx__ico{transform:rotate(12deg) scale(1.1)}
.hv-glow:hover .bx__ico{transform:scale(1.15)}
.hv-shine:hover .bx__ico{transform:translateY(-4px)}
.hv-dash:hover .bx__ico,.hv-stripe:hover .bx__ico{transform:rotate(-12deg)}
.hv-scan:hover .bx__ico svg{animation:spin 2s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* click effects */
.ripple{position:absolute;border-radius:50%;pointer-events:none;transform:scale(0);opacity:.45;background:radial-gradient(circle,var(--a) 0%,transparent 70%);animation:ripple .65s ease-out forwards;z-index:0}
@keyframes ripple{to{transform:scale(1);opacity:0}}
body .bx.is-clicked{animation:press .3s ease}
@keyframes press{40%{transform:scale(.975)}}
body .ck-shake.is-clicked{animation:shake .45s ease}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.ck-flip.is-clicked .bx__ico{animation:flip .6s ease}
@keyframes flip{to{transform:rotateY(360deg)}}
.ck-stamp.is-clicked::after{content:"SAVE THE DATE?";position:absolute;right:18px;bottom:14px;font:400 .8rem var(--display);color:var(--gold);border:2px solid var(--gold);padding:4px 8px;border-radius:6px;transform:rotate(-8deg);animation:stamp .6s ease forwards;pointer-events:none}
@keyframes stamp{from{opacity:0;transform:rotate(-8deg) scale(1.8)}to{opacity:.9;transform:rotate(-8deg) scale(1)}}

/* per-box tweaks */
.step.bx,.phase.bx{background-color:transparent}
.t-teal .step__num{background:linear-gradient(180deg,#a8fff4,#18d6c8);-webkit-background-clip:text;background-clip:text}
.t-gold .step__num{background:linear-gradient(180deg,#fff2b8,#ff8a1f);-webkit-background-clip:text;background-clip:text}
.ending{transition:transform .25s,box-shadow .25s}
.ending--good:hover{transform:translateY(-3px);box-shadow:0 10px 24px -10px rgba(24,214,200,.7)}
.ending--bad:hover{transform:translateY(-3px) rotate(.6deg);box-shadow:0 10px 24px -10px rgba(255,138,31,.7)}
.stat.bx{border-radius:14px}
.stat.bx dt{color:var(--a)}
.stat.bx .bx__ico{width:38px;height:38px;border-radius:11px;top:14px;right:14px}
.stat.bx .bx__ico svg{width:20px;height:20px}
.stat--hero.bx .bx__ico{width:52px;height:52px}
.phase.bx .phase__tag{background:color-mix(in srgb,var(--a) 16%,transparent);color:var(--a)}
.phase.bx h3{padding-right:0;margin-top:18px}
.phase.bx .bx__ico{width:40px;height:40px;top:14px;right:14px}
.phase.bx .bx__ico svg{width:20px;height:20px}
.phase.bx{overflow:visible}
.phase.bx.hv-shine::after{border-radius:inherit;overflow:hidden;clip-path:inset(0 round var(--radius))}
.phase--planned::before{border-color:#c23cff}
.phase--locked{opacity:1}
.wl__facts.bx{margin-bottom:22px}
.wl__facts.bx ul{padding-right:50px}
.wl-form.bx .wl-form__title{color:#bff7f2}
.tracker__status{position:relative;z-index:1}

/* cast cards: each with its own accent */
.cast li:nth-child(1) .card{--a:#18d6c8} .cast li:nth-child(2) .card{--a:#ff2e93}
.cast li:nth-child(3) .card{--a:#3be8a0} .cast li:nth-child(4) .card{--a:#ffd166}
.cast li:nth-child(5) .card{--a:#a66bff} .cast li:nth-child(6) .card{--a:#ff8cc3}
.cast li:nth-child(7) .card{--a:#ff4d4d} .cast li:nth-child(8) .card{--a:#4cc9ff}
.cast .card{border-color:color-mix(in srgb,var(--a) 35%,transparent);background:linear-gradient(180deg,var(--ink-3),color-mix(in srgb,var(--a) 12%,var(--ink-2)))}
.cast .card::before{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--a);z-index:1;transform:scaleX(.25);transform-origin:left;transition:transform .4s}
.cast .card:hover::before,.cast .card:focus-visible::before{transform:scaleX(1)}
.cast .card .card__role{color:var(--a)}
.cast .card:hover,.cast .card:focus-visible{border-color:var(--a);box-shadow:0 25px 50px -15px color-mix(in srgb,var(--a) 70%,transparent)}
.cast .card:active{transform:scale(.97)}

/* footer */
.footer{position:relative;overflow:hidden}
.footer::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--teal),var(--pink),var(--orange),var(--gold));opacity:.8}
.footer::after{content:"";position:absolute;inset:auto -10% -60% -10%;height:120%;background:radial-gradient(closest-side,rgba(255,46,147,.12),transparent);pointer-events:none}
.footer__inner{position:relative;z-index:1}
.so{transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}
.socials a.so:hover{transform:translateY(-3px)}
.socials a.so:active{transform:scale(.95)}
.so--x{border-color:rgba(255,255,255,.4)} .socials .so--x:hover{background:#fff;color:#0c0618;border-color:#fff}
.so--tg{border-color:rgba(76,141,255,.5)} .socials .so--tg:hover{background:rgba(76,141,255,.25);border-color:#4c8dff;box-shadow:0 8px 20px -8px #4c8dff}
.so--pump{border-color:rgba(59,232,160,.5)} .socials .so--pump:hover{background:rgba(59,232,160,.2);border-color:#3be8a0;box-shadow:0 8px 20px -8px #3be8a0}
.so--dex{border-color:rgba(255,209,102,.5)} .socials .so--dex:hover{background:rgba(255,209,102,.18);border-color:#ffd166;box-shadow:0 8px 20px -8px #ffd166}
.disclaimer.bx .bx__ico{width:40px;height:40px;top:14px;right:14px}
.disclaimer.bx .bx__ico svg{width:20px;height:20px}

/* ===== NFT collection ===== */
.nft-sec{background:radial-gradient(900px 400px at 15% 0%,rgba(194,60,255,.16),transparent 70%),radial-gradient(800px 400px at 90% 100%,rgba(24,214,200,.12),transparent 70%),linear-gradient(180deg,var(--ink),#110725 50%,var(--ink));overflow:hidden}
.nft-bar{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:stretch;margin:-10px 0 26px}
.nft-note{margin:0;padding:16px 18px;font-size:.92rem;color:#e8dcfa;border-radius:14px}
.nft-note strong{color:var(--gold)}
.nft-ctrl{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:flex-end}
.nft-count{margin:0 auto 0 0;font:400 1.6rem/1 var(--display)}
.nft-count b{font-weight:400;background:var(--sunset-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.nft-count__label{display:block;font:700 .7rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin-bottom:6px}
.nft-count .muted{font-size:.6em}
.nft-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.nft{all:unset;box-sizing:border-box;cursor:pointer;aspect-ratio:1;perspective:600px;border-radius:12px;display:block}
.nft:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.nft__in{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.3,1.3,.5,1)}
.nft.is-up .nft__in{transform:rotateY(180deg)}
.nft__f,.nft__b{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.nft__f{--h:300;display:grid;place-items:center;align-content:center;gap:2px;text-align:center;
  background:repeating-linear-gradient(45deg,hsl(var(--h) 80% 60% / .1) 0 6px,transparent 6px 12px),radial-gradient(circle at 50% 35%,hsl(var(--h) 85% 45% / .55),transparent 70%),linear-gradient(160deg,#25104a,#120828);
  border:1px solid hsl(var(--h) 80% 65% / .45);transition:transform .25s,box-shadow .25s,border-color .25s}
.nft__f::before{content:"?";font:400 1.9rem/1 var(--display);background:linear-gradient(180deg,#fff,hsl(var(--h) 90% 70%));-webkit-background-clip:text;background-clip:text;color:transparent}
.nft__f span{font:700 .68rem/1 var(--body);letter-spacing:.06em;color:#e8dcfa}
.nft:hover .nft__f{border-color:hsl(var(--h) 90% 70%);box-shadow:0 0 18px -2px hsl(var(--h) 90% 60% / .7);transform:translateY(-3px)}
.nft:active .nft__f{transform:scale(.94)}
.nft__b{transform:rotateY(180deg);background:#1a0c36;border:2px solid var(--rc,#b9a8d6)}
.nft__b img{width:100%;height:100%;object-fit:cover}
.nft__b i{position:absolute;left:4px;bottom:4px;font:700 .55rem/1 var(--body);font-style:normal;letter-spacing:.06em;text-transform:uppercase;padding:3px 5px;border-radius:5px;background:rgba(12,6,24,.85);color:var(--rc)}
.nft[data-r="rare"]{--rc:#4cc9ff} .nft[data-r="legendary"]{--rc:#ffd166} .nft[data-r="common"]{--rc:#c9b8e6}
.nft[data-r="legendary"] .nft__f{border-width:2px}
.nft[data-r="legendary"].is-up .nft__b{box-shadow:0 0 16px rgba(255,209,102,.6)}
.nft-more{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:22px}
.nft-sentinel{height:1px}
.nft-scroll{max-height:min(72vh,700px);overflow:auto;padding:16px;border-radius:16px;scrollbar-color:var(--pink) transparent;overscroll-behavior:auto}
.nft-scroll.bx{background-attachment:local,local,scroll}
.nft-badge{align-self:flex-start;font:700 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;padding:7px 10px;border-radius:999px;border:1px solid currentColor}
.nft-badge[data-r="common"]{color:#c9b8e6} .nft-badge[data-r="rare"]{color:#4cc9ff} .nft-badge[data-r="legendary"]{color:#ffd166}
.nft-modal{border:0;padding:0;background:transparent;color:var(--text);max-width:min(760px,94vw);width:100%}
.nft-modal::backdrop{background:rgba(8,3,18,.86);backdrop-filter:blur(6px)}
.nft-modal[open]{animation:pop .25s ease-out}
.nft-modal__card{position:relative;display:grid;grid-template-columns:1fr 1fr;border-radius:20px;overflow:hidden;background:linear-gradient(160deg,#25104a,#120828);border:2px solid var(--rc,#c9b8e6);box-shadow:0 30px 80px rgba(194,60,255,.35)}
.nft-modal__card img{width:100%;aspect-ratio:1;object-fit:cover;height:100%}
.nft-modal__body{display:flex;flex-direction:column;gap:12px;padding:26px 24px}
.nft-modal__copy{margin:0;color:var(--muted);font-size:.92rem}
.nft-modal__nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto}
@media (max-width:1000px){.nft-bar{grid-template-columns:1fr}.nft-ctrl{justify-content:flex-start}}
@media (max-width:600px){
  .nft-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}
  .nft-scroll{padding:10px}
  .nft__f::before{font-size:1.5rem}
  .nft__f span{font-size:.6rem}
  .nft-modal__card{grid-template-columns:1fr}
  .nft-modal__card img{max-height:52vh}
  .crew__cap{margin-top:-60px}
  .crew__fig img{aspect-ratio:4/3}
  .hero__bg{opacity:.45;background-image:url(img/web/bg-chase-960.webp)}
  .bx__ico{width:40px;height:40px;top:14px;right:14px}
  .t-dossier{padding:20px}
}
@media (prefers-reduced-motion:reduce){.sbg,.hero__bg{transform:none!important}.nft__in{transition:none}}

/* ===== Click-triggered character pop-ups ===== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
[data-pop]{cursor:pointer}
.ending[data-pop]{position:relative}
.tap-hint{position:absolute;right:12px;bottom:10px;font:700 .62rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--a,var(--gold));opacity:.75;padding:5px 8px;border-radius:999px;border:1px solid currentColor;pointer-events:none;animation:hintPulse 2.4s ease-in-out infinite;z-index:1}
.ending .tap-hint{position:static;display:inline-block;margin-top:8px;animation:none}
.ending--good .tap-hint{color:var(--teal)} .ending--bad .tap-hint{color:var(--orange)}
@keyframes hintPulse{50%{opacity:.35;transform:translateY(-2px)}}
[data-pop].is-popped{outline:2px solid var(--a,var(--gold));outline-offset:3px}
.stat .tap-hint{bottom:8px;right:10px}

.pop{--cs:98px;position:absolute;z-index:60;pointer-events:none;border-radius:var(--radius);transition:opacity .25s}
.pop::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 50% 100%,rgba(255,46,147,.28),transparent 70%),rgba(10,5,22,.78);animation:fadeIn .25s ease both}
.pop--mini{--cs:76px}
.pop.out{opacity:0}
@keyframes fadeIn{from{opacity:0}}
.pop__row{position:absolute;left:0;right:0;bottom:6px;display:flex;justify-content:center;align-items:flex-end;padding:0 8px}
.pop__close{pointer-events:auto;position:absolute;top:8px;right:8px;z-index:5;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font:700 .95rem/1 var(--body);cursor:pointer}
.pop__close:hover{background:var(--pink)}
.ch{position:relative;width:var(--cs);margin:0 -6px;flex:none;animation:popIn .75s cubic-bezier(.28,1.65,.5,1) both;animation-delay:var(--d,0ms);transform-origin:50% 100%}
.ch:nth-child(even){z-index:1}
@keyframes popIn{0%{opacity:0;transform:translateY(70%) scale(.3)}60%{opacity:1}100%{transform:none}}
.ch__in{display:block;animation:bob 1.4s ease-in-out infinite alternate;animation-delay:calc(var(--d,0ms) + 750ms);transform-origin:50% 100%}
@keyframes bob{to{transform:translateY(-5px) rotate(1.5deg)}}
.npc{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 6px 8px rgba(0,0,0,.45))}
.ch--pfp .ch__in{width:var(--cs);height:var(--cs);border-radius:50%;overflow:hidden;border:3px solid var(--gold);box-shadow:0 0 0 3px rgba(12,6,24,.8),0 10px 24px rgba(255,46,147,.5);margin-bottom:10px}
.ch--pfp img{width:100%;height:100%;object-fit:cover}
.bubble{position:absolute;left:50%;bottom:calc(100% + 6px);transform-origin:50% 100%;translate:-50% 0;background:#fff;color:#1a0c36;font:700 .74rem/1.25 var(--body);padding:7px 10px;border-radius:12px;white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.4);animation:bubbleIn .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--d,0ms) + 380ms);z-index:3}
.bubble::after{content:"";position:absolute;left:50%;top:100%;margin-left:-6px;border:6px solid transparent;border-top-color:#fff}
.bubble--l{translate:-80% 0} .bubble--l::after{left:80%}
.bubble--r{translate:-20% 0} .bubble--r::after{left:20%}
.bubble--hi{bottom:calc(100% + 44px)}
@keyframes bubbleIn{from{opacity:0;transform:scale(.3)}}
/* prop animations (SVG groups rotate around the shoulder via viewBox origin) */
.p-wheel{animation:wheel 1.1s ease-in-out infinite alternate}
@keyframes wheel{from{transform:rotate(-28deg)}to{transform:rotate(28deg)}}
.p-raise{animation:raise .9s cubic-bezier(.3,1.5,.5,1) both,wave 1.2s ease-in-out 1s infinite alternate}
@keyframes raise{from{transform:rotate(70deg)}}
@keyframes wave{to{transform:rotate(-8deg)}}
.p-cheer{animation:cheer .5s ease-in-out infinite alternate}
@keyframes cheer{to{transform:translateY(-6px)}}
.p-swing{animation:swing .8s cubic-bezier(.6,0,.4,1) infinite}
@keyframes swing{0%,100%{transform:rotate(-35deg)}45%{transform:rotate(30deg)}55%{transform:rotate(26deg)}}
/* fx: coin counter */
.fx-coins{position:absolute;top:14px;left:14px;display:flex;align-items:flex-end;gap:10px;animation:fadeIn .3s .2s both}
.fx-coins__stack{position:relative;width:34px;height:88px}
.coin{position:absolute;left:0;width:34px;height:10px;border-radius:50%;background:linear-gradient(180deg,#ffe36e,#d99a1a);border:1px solid #8a5a00;bottom:calc(var(--k) * 8px);animation:coinDrop .45s cubic-bezier(.5,0,.6,1.6) both;animation-delay:calc(300ms + var(--k) * 260ms)}
@keyframes coinDrop{from{opacity:0;transform:translateY(-120px)}}
.fx-coins__num{font:400 1.8rem/1 var(--display);color:var(--gold);text-shadow:0 3px 0 rgba(0,0,0,.5)}
.fx-coins__num small{display:block;font:700 .62rem/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:#e8dcfa}
/* fx: gavel */
.fx-gavel{position:absolute;top:8px;right:46px;width:92px;transform-origin:85% 90%;animation:slam .7s cubic-bezier(.7,0,.9,.4) .35s both}
@keyframes slam{0%{transform:rotate(-75deg);opacity:0}20%{opacity:1}80%{transform:rotate(10deg)}100%{transform:rotate(0)}}
.fx-bam{position:absolute;top:70px;right:22px;font:400 1.3rem/1 var(--display);color:var(--gold);text-shadow:0 3px 0 #000;animation:bam .5s cubic-bezier(.3,1.8,.5,1) 1s both}
@keyframes bam{from{opacity:0;transform:scale(.2) rotate(-20deg)}}
.shake{animation:shake2 .45s ease}
@keyframes shake2{20%{transform:translate(-7px,3px)}40%{transform:translate(6px,-4px)}60%{transform:translate(-4px,2px)}80%{transform:translate(3px,-1px)}}
/* fx: cash rain + confetti */
.fx-rain{position:absolute;inset:-160px 0 0 0;overflow:hidden;border-radius:0 0 var(--radius) var(--radius)}
.bill{position:absolute;left:var(--x);top:var(--y);width:34px;height:17px;border-radius:3px;background:linear-gradient(135deg,#7bd88f,#2f9e57);border:1px solid #1d6b3a;color:#0f3d20;font:700 .7rem/15px var(--body);text-align:center;animation:fall var(--t) linear var(--dl) infinite;transform:rotate(var(--r))}
.conf{position:absolute;left:var(--x);top:var(--y);width:7px;height:11px;background:var(--c);animation:fall var(--t) linear var(--dl) infinite;transform:rotate(var(--r))}
@keyframes fall{from{transform:translateY(calc(-1 * var(--y) - 30px)) rotate(var(--r))}to{transform:translateY(560px) rotate(calc(var(--r) + 540deg))}}
/* fx: blueprint + sparks */
.fx-blue{position:absolute;top:14px;left:14px;right:56px;height:42%;border-radius:12px;border:1px solid rgba(160,210,255,.6);background:linear-gradient(rgba(160,210,255,.14) 1px,transparent 1px) 0 0/14px 14px,linear-gradient(90deg,rgba(160,210,255,.14) 1px,transparent 1px) 0 0/14px 14px,#123a7a;animation:bpIn .5s cubic-bezier(.3,1.5,.5,1) .1s both;overflow:hidden}
@keyframes bpIn{from{opacity:0;transform:scaleY(.2) rotate(-3deg)}}
.fx-blue svg{position:absolute;inset:8px 10px 18px;width:calc(100% - 20px);height:calc(100% - 26px)}
.fx-blue path{fill:none;stroke:#cfe6ff;stroke-width:2;stroke-dasharray:400;stroke-dashoffset:0;animation:draw 1.6s ease .4s both}
@keyframes draw{from{stroke-dashoffset:400}}
.fx-blue span{position:absolute;left:10px;bottom:5px;font:700 .58rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:#cfe6ff}
.sparks{position:absolute;right:-2px;top:6%;width:2px;height:2px}
.sparks i{position:absolute;width:3px;height:9px;border-radius:2px;background:#ffd166;box-shadow:0 0 6px #ff8a1f;opacity:0;animation:spark .8s ease-out infinite;animation-delay:calc(var(--d,0ms) + 340ms);transform:rotate(var(--a)) translateY(0)}
@keyframes spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}100%{opacity:0;transform:rotate(var(--a)) translateY(-26px)}}
/* fx: sparkle burst for minis */
.fx-burst{position:absolute;left:50%;top:40%;width:0;height:0}
.fx-burst i{position:absolute;font-style:normal;font-size:1rem;animation:burst 1.1s ease-out both;animation-delay:calc(200ms + var(--k) * 60ms);opacity:0}
@keyframes burst{0%{opacity:0;transform:translate(0,0) scale(.3)}30%{opacity:1}100%{opacity:0;transform:translate(var(--bx),var(--by)) scale(1.1)}}

/* ===== Scroll HUD: road + lowrider + wanted stars ===== */
.hud{position:fixed;left:0;right:0;top:var(--navh);z-index:49;pointer-events:none}
.hud__road{position:relative;height:6px;background:repeating-linear-gradient(90deg,rgba(255,209,102,.55) 0 14px,transparent 14px 28px) 0 50%/100% 1.5px no-repeat,rgba(12,6,24,.85)}
.hud__fill{position:absolute;inset:0;background:linear-gradient(90deg,var(--teal),var(--pink),var(--orange));transform:scaleX(0);transform-origin:left;opacity:.9}
.hud__car{position:absolute;left:0;top:-15px;width:54px;height:22px;will-change:transform}
.hud__car svg{display:block;transition:transform .25s}
.hud__car.rev svg{transform:scaleX(-1)}
.hud__car.hop svg{animation:hop .35s ease}
.hud__car.rev.hop svg{animation:hopR .35s ease}
@keyframes hop{40%{transform:translateY(-5px)}}
@keyframes hopR{0%,100%{transform:scaleX(-1)}40%{transform:scaleX(-1) translateY(-5px)}}
.hud__wanted{position:absolute;right:12px;top:14px;display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(12,6,24,.78);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(6px)}
.hud__label{font:400 .62rem/1 var(--display);letter-spacing:.08em;color:#e8dcfa}
.stars{display:flex;gap:3px}
.star{position:relative;width:15px;height:15px;display:block;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:rgba(255,255,255,.22)}
.star b{position:absolute;inset:0;background:linear-gradient(180deg,#fff2b8,#ffb81f);transform:scale(0);transition:transform .2s}
.star.lit{animation:starFlash .5s ease}
@keyframes starFlash{50%{transform:scale(1.45)}}

/* floaters (desktop only, created by JS) */
.floaters{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.floater{position:absolute;top:0;left:var(--x);width:var(--s);opacity:.22;will-change:transform}
.floater svg{display:block;width:100%;height:auto;animation:sway var(--t) ease-in-out infinite alternate}
@keyframes sway{from{transform:rotate(-14deg)}to{transform:rotate(14deg) translateX(8px)}}

/* entrances: staggered reveals + headings */
.js .reveal{transition-delay:calc(var(--i,0) * 90ms)}
body .bx.reveal.in{transition-delay:calc(var(--i,0) * 90ms)}
.js .reveal.done,body .bx.reveal.in.done{transition-delay:0s}
.js .reveal.rv-l{transform:translateX(-36px) rotate(-2deg)}
.js .reveal.rv-r{transform:translateX(36px) rotate(2deg)}
.js .reveal.rv-z{transform:scale(.88)}
.js .reveal.in{transform:none}
.h2{position:relative}
.js .section .h2,.js .crew .h2{opacity:0;transform:translateY(36px) skewY(5deg) scale(.92)}
.js .section .h2.in,.js .crew .h2.in{animation:headIn .9s cubic-bezier(.2,1.35,.4,1) forwards}
@keyframes headIn{to{opacity:1;transform:none}}
.h2::after{content:"";position:absolute;left:0;bottom:-8px;width:100%;height:4px;border-radius:4px;background:var(--sunset);transform:scaleX(1);transform-origin:left;transition:transform .8s cubic-bezier(.2,.8,.2,1) .35s}
.js .section .h2:not(.in)::after,.js .crew .h2:not(.in)::after{transform:scaleX(0)}
.js .section .eyebrow,.js .crew .eyebrow{opacity:0;transform:translateX(-24px);transition:opacity .6s,transform .6s}
.js .section .eyebrow.in,.js .crew .eyebrow.in{opacity:1;transform:none}
@media (max-width:600px){
  .pop{--cs:64px} .pop--mini{--cs:56px}
  .bubble{font-size:.68rem;padding:6px 8px}
  .hud__wanted{right:8px;top:12px;padding:5px 8px}
  .star{width:12px;height:12px}
  .hud__car{width:44px} .hud__car svg{width:44px;height:18px}
  .fx-gavel{width:72px}
}
@media (prefers-reduced-motion:reduce){
  .js .section .h2,.js .crew .h2,.js .section .eyebrow,.js .crew .eyebrow{opacity:1!important;transform:none!important}
  .h2::after{transform:scaleX(1)!important}
  .fx-rain .bill,.fx-rain .conf{transform:rotate(var(--r))}
  .sparks,.fx-burst{display:none}
}

/* Reveal failsafe (CSS-only): if JS never marks an element .in, show it anyway after 4.5 s */
@keyframes revealFailsafe{to{opacity:1;transform:none}}
.js .reveal:not(.in),.js .section .h2:not(.in),.js .crew .h2:not(.in),.js .section .eyebrow:not(.in),.js .crew .eyebrow:not(.in){animation:revealFailsafe .6s ease 4.5s forwards}
@media print{.js .reveal,.js .h2,.js .eyebrow{opacity:1!important;transform:none!important}}
@media (max-width:820px){
  .hud{z-index:51}
  .hud__wanted{top:calc((var(--navh) - 26px) / 2 - var(--navh));right:auto;left:50%;transform:translateX(-50%)}
}

/* Responsive */
@media (max-width:1180px){
  .brand__name{display:none}
  .nav__links a:not(.btn){padding:8px 10px}
}
@media (max-width:1000px){
  .hero__inner{grid-template-columns:1fr;gap:28px;text-align:center}
  .hero__ctas{justify-content:center}
  .hero__copy h1{align-items:center}
  .steps{grid-template-columns:1fr 1fr}
  .step--split{grid-column:1/-1}
  .fees,.wl{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .cast{grid-template-columns:repeat(2,1fr)}
  .road{grid-template-columns:1fr 1fr;gap:40px 22px}
  .road::before{display:none}
}
@media (max-width:820px){
  .nav__toggle{display:block}
  .nav__links{position:fixed;inset:var(--navh) 0 auto 0;flex-direction:column;align-items:stretch;padding:16px 4vw 24px;background:rgba(12,6,24,.97);border-bottom:1px solid rgba(255,255,255,.08);transform:translateY(-120%);transition:transform .3s;z-index:-1}
  .nav__links.open{transform:none}
  .nav__links a:not(.btn){padding:14px;font-size:1.05rem}
  .nav__links .btn{justify-content:center;margin-top:8px}
  .brand__name{display:none}
}
@media (max-width:600px){
  body{font-size:16px}
  .steps,.cast,.road,.sliders,.endings,.stats,.addrs{grid-template-columns:1fr}
  .tracker,.wl-form{padding:20px}
  .tracker__row .btn{flex:1;justify-content:center}
  .badge{border-radius:14px}
  .footer__inner{grid-template-columns:1fr}
  .socials{justify-content:flex-start}
  .lb-prev,.lb-next{top:auto;bottom:-60px}
  .lb-prev{left:calc(50% - 56px)} .lb-next{right:calc(50% - 56px)}
  .lightbox{margin-top:5vh}
  .hero__sun{width:320px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
}

/* ===== Whitelist: honeypot, crew card, lookup ===== */
.wl-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.wl-card-zone{margin-top:72px;position:relative}
.wl-card-head{margin-bottom:28px}
.wl-card-title{font-size:clamp(1.8rem,4vw,2.6rem);background:var(--sunset-text);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.wl-card-head .lede{margin-bottom:0}
.wl-card-grid{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:40px;align-items:start}
.wl-card-slot{min-height:120px;perspective:1100px}
.wl-card-empty{margin:0;padding:22px;border-radius:var(--radius);border:2px dashed rgba(255,255,255,.2);color:var(--muted);background:rgba(12,6,24,.55)}
.t-wallet{--a:#c23cff;--b:#18d6c8;--pat:radial-gradient(circle at 0 100%,rgba(24,214,200,.16),transparent 55%),repeating-linear-gradient(90deg,transparent 0 22px,rgba(194,60,255,.06) 22px 23px);padding:24px;max-width:520px}
.wl-lookup__title{font:400 1.2rem var(--display);text-transform:uppercase;margin:0 0 16px;padding-right:58px}
.wl-lookup input{width:100%;min-height:48px;padding:12px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.35);color:var(--text);font:500 1rem var(--body)}
.wl-lookup input:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,46,147,.25)}

.gcard{--c1:#ff2e93;--c2:#ff8a1f;--glow:rgba(255,46,147,.55);position:relative;border-radius:22px;padding:18px 18px 16px;color:var(--text);isolation:isolate;overflow:hidden;
  background:linear-gradient(160deg,#2a0e55 0%,#160a2e 60%,#0c0618 100%) padding-box,linear-gradient(135deg,var(--c1),var(--c2),#c23cff) border-box;border:3px solid transparent;
  box-shadow:0 30px 60px -28px var(--glow),0 0 0 1px rgba(255,255,255,.06) inset;transform-style:preserve-3d}
.gcard--holder{--c1:#18d6c8;--c2:#4c8dff;--glow:rgba(24,214,200,.5)}
.gcard--priority{--c1:#ffd166;--c2:#ff2e93;--glow:rgba(255,209,102,.55)}
.gcard--inactive{--c1:#6c5a8c;--c2:#3b2d57;--glow:rgba(120,100,160,.35);filter:saturate(.45)}
.gcard--pending{--c1:#ff8a1f;--c2:#c23cff;--glow:rgba(194,60,255,.45)}
.gcard::before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 14px),radial-gradient(circle at 85% 0,color-mix(in srgb,var(--c1) 30%,transparent),transparent 55%)}
.gcard::after{content:"";position:absolute;inset:-40% -60%;z-index:2;pointer-events:none;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.22) 50%,transparent 60%);transform:translateX(-60%)}
.gcard.is-in{animation:gcardIn .9s cubic-bezier(.2,.8,.2,1) both}
.gcard.is-in::after{animation:gcardShine 1.6s ease .5s 1 both}
.gcard--priority.is-in::after{animation:gcardShine 1.6s ease .5s 1 both,gcardShine 3.4s ease 3s infinite}
@keyframes gcardIn{from{opacity:0;transform:rotateY(-70deg) translateY(24px) scale(.92)}to{opacity:1;transform:none}}
@keyframes gcardShine{from{transform:translateX(-60%)}to{transform:translateX(60%)}}
.gcard__top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.gcard__brand{font:400 .85rem var(--display);letter-spacing:.06em;color:var(--c1)}
.gcard__tier{font:700 .72rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;padding:7px 12px;border-radius:999px;color:#0c0618;background:linear-gradient(90deg,var(--c1),var(--c2))}
.gcard__avatar{width:min(220px,62%);aspect-ratio:1;margin:0 auto 12px;border-radius:50%;overflow:hidden;border:4px solid var(--c1);box-shadow:0 0 0 4px rgba(0,0,0,.35),0 14px 30px -10px var(--glow);background:#150a2b}
.gcard__avatar svg{display:block;width:100%;height:100%}
.gcard__alias{font:400 clamp(1.15rem,3.6vw,1.45rem)/1.15 var(--display);text-transform:uppercase;text-align:center;margin:0 0 6px;overflow-wrap:anywhere}
.gcard__stars{display:flex;justify-content:center;gap:4px;margin:0 0 14px;font-size:1.25rem;line-height:1}
.gcard__stars .on{color:var(--gold);text-shadow:0 0 10px rgba(255,209,102,.7)}
.gcard__stars .off{color:rgba(255,255,255,.2)}
.gcard__stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
.gcard__stats div{padding:9px 11px;border-radius:12px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08);min-width:0}
.gcard__stats dt{font:700 .62rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.gcard__stats dd{margin:0;font:700 .98rem/1.2 var(--body);overflow-wrap:anywhere}
.gcard__stats .wide{grid-column:1/-1}
.gcard__trend{display:inline-block;margin-left:6px;font-size:.85rem}
.gcard__trend.up{color:var(--teal)} .gcard__trend.down{color:#ff6b8f} .gcard__trend.flat{color:var(--muted)}
.gcard__msg{margin:0 0 12px;font-size:.82rem;color:var(--gold)}
.gcard__msg:empty{display:none}
.gcard__foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.gcard__wallet{font:600 .72rem ui-monospace,Menlo,monospace;color:var(--muted)}
.gcard__btns{display:flex;flex-wrap:wrap;gap:8px}
.gcard__btns .btn{font-size:.8rem;padding:8px 14px;min-height:40px}
.gcard__upd{margin:10px 0 0;font-size:.7rem;color:var(--muted);text-align:center}
@media (max-width:900px){.wl-card-grid{grid-template-columns:1fr}.wl-card-slot{max-width:420px;margin-inline:auto;width:100%}}
@media (prefers-reduced-motion:reduce){.gcard.is-in,.gcard.is-in::after{animation:none!important}.gcard::after{display:none}}

.ca__links{margin-top:10px;font-size:.85rem}.ca__links a{color:var(--gold);text-decoration:underline}.ca__links a:hover{color:var(--pink)}
.ca-foot{font:500 .8rem ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;color:inherit}.ca__copy--sm{padding:3px 10px;font-size:.72rem;margin-left:6px}
