/* $SPEED — pirate-anime × fighting-game. Phone-first. */
:root{
  --ink:#0b0b16; --ink2:#141a33; --navy:#0a1a3f; --sea:#0b4fb3; --sky:#2f8cff; --sky2:#8fd0ff;
  --red:#e3122d; --red2:#a30a1f; --gold:#ffc928; --gold2:#ff9f1c; --bolt:#fff04a; --pink:#ff7aa8;
  --paper:#f6ecd2; --paper2:#e8d6a8; --green:#3df27a;
  --o8: 3px 0 0 var(--ink),-3px 0 0 var(--ink),0 3px 0 var(--ink),0 -3px 0 var(--ink),2px 2px 0 var(--ink),-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink);
  --display:'Bangers',Impact,sans-serif; --heavy:'Dela Gothic One','Bangers',sans-serif; --jp:'Reggae One','Dela Gothic One',sans-serif;
  --pixel:'Press Start 2P',monospace; --body:'Rubik',system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1); --spring:cubic-bezier(.3,2,.5,1);
  --head:58px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--head)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--navy);color:#fff;font-family:var(--body);line-height:1.5;overflow-x:clip}
main,section,footer{overflow-x:clip;position:relative}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
kbd{font-family:var(--pixel);font-size:.6rem;background:#fff1;border:1px solid #fff4;border-radius:4px;padding:2px 5px}
:focus-visible{outline:3px solid var(--bolt);outline-offset:3px}

/* ---------- overlays ---------- */
.tone{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:radial-gradient(#000 1.2px,transparent 1.4px);background-size:6px 6px}
.grain{position:fixed;inset:-50%;z-index:61;pointer-events:none;opacity:.09;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain .5s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}}
.bolts{position:fixed;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}
.burst{position:fixed;inset:0;width:100%;height:100%;z-index:90;pointer-events:none}
.flash{position:fixed;inset:0;z-index:70;pointer-events:none;background:#fffbe0;opacity:0}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--ink);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);animation:0s linear 9s forwards ldFailsafe}
@keyframes ldFailsafe{to{opacity:0;visibility:hidden;pointer-events:none}}
.ld-page{position:absolute;inset:0;background:var(--paper);transform-origin:left center}
.ld-page--a{background:repeating-linear-gradient(90deg,#0000 0 2px,#0000 2px 9px),radial-gradient(circle at 50% 50%,#222 0 1px,transparent 1.5px) 0 0/7px 7px,var(--paper);opacity:0}
.ld-page--b{background:var(--red);opacity:0}
.ld-core{position:relative;display:grid;justify-items:center;gap:10px;text-align:center;padding:24px}
.ld-lines{position:absolute;left:50%;top:38%;width:180vmax;height:180vmax;translate:-50% -50%;opacity:.35;
  background:repeating-conic-gradient(from 0deg,#fff 0 .6deg,transparent .6deg 6deg);
  -webkit-mask:radial-gradient(circle,transparent 18%,#000 46%);mask:radial-gradient(circle,transparent 18%,#000 46%);
  animation:spin 30s linear infinite}
@keyframes spin{to{rotate:360deg}}
.ld-pfp{width:150px;height:150px;border-radius:50%;border:5px solid var(--gold);box-shadow:0 0 0 6px var(--ink),0 0 60px #ffc92888;object-fit:cover}
.ld-sfx{font-family:var(--jp);font-size:1.6rem;color:var(--bolt);margin:0;letter-spacing:.1em;text-shadow:var(--o8)}
.ld-title{font-family:var(--display);font-size:clamp(3.4rem,14vw,6.5rem);line-height:.9;margin:0;color:#fff;text-shadow:var(--o8),7px 7px 0 var(--red)}
.ld-bar{width:min(260px,70vw);height:12px;border:3px solid #fff;background:#000;padding:1px}
.ld-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--bolt));transform-origin:left;transform:scaleX(0)}
.ld-count{font-family:var(--pixel);font-size:.55rem;letter-spacing:.12em;color:#ffffffaa;margin:0}
.ld-start{margin-top:6px;font-family:var(--pixel);font-size:.8rem;background:none;border:0;color:var(--bolt);animation:blink 1s steps(2) infinite;padding:10px}
@keyframes blink{50%{opacity:0}}

/* ---------- HUD ---------- */
.hud{position:fixed;left:0;right:0;top:calc(var(--head) + 6px);z-index:40;display:flex;justify-content:space-between;align-items:flex-start;padding:0 10px;pointer-events:none}
.hud-l{display:flex;gap:6px;align-items:center;background:#0b0b16cc;border:2px solid #fff;padding:4px 8px 4px 4px;clip-path:polygon(0 0,100% 0,94% 100%,0 100%);backdrop-filter:blur(4px)}
.hud-pfp{position:relative}
.hud-pfp img{width:30px;height:30px;border-radius:50%;border:2px solid var(--gold);object-fit:cover}
.hud-pfp b{position:absolute;left:-2px;bottom:-6px;font-family:var(--pixel);font-size:.38rem;background:var(--red);padding:2px 3px;border:1px solid #fff;white-space:nowrap}
.hud-bars{display:grid;gap:3px;width:96px}
.hbar{display:flex;align-items:center;gap:4px;font-family:var(--pixel);font-size:.4rem}
.hbar span{width:14px}
.hbar i{flex:1;height:6px;background:#ffffff22;border:1px solid #fff8;overflow:hidden}
.hbar em{display:block;height:100%;transform-origin:left;transition:transform .4s var(--ease)}
.hbar--hp em{background:linear-gradient(90deg,var(--green),#b5ff5c)}
.hbar--xp em{background:linear-gradient(90deg,var(--gold2),var(--bolt));transform:scaleX(0)}
.hud-bounty{background:var(--paper);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--red);padding:3px 8px;text-align:right;rotate:2deg}
.hud-bounty small{display:block;font-family:var(--pixel);font-size:.38rem;letter-spacing:.1em}
.hud-bounty b{font-family:var(--display);font-size:1rem;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.combo{position:fixed;right:10px;top:42%;z-index:41;display:flex;align-items:center;gap:4px;pointer-events:none;opacity:0;transform:translateX(30px) skewX(-8deg)}
.combo b{font-family:var(--display);font-size:3rem;line-height:1;color:var(--bolt);text-shadow:var(--o8),4px 4px 0 var(--red)}
.combo span{font-family:var(--display);font-size:.9rem;line-height:1;text-shadow:var(--o8)}
.combo.is-on{opacity:1;transform:none;transition:.2s var(--spring)}
.toasts{position:fixed;left:50%;bottom:86px;translate:-50% 0;z-index:95;display:grid;gap:8px;width:min(92vw,360px);pointer-events:none}
.toast{display:flex;gap:10px;align-items:center;background:#0b0b16ee;border:2px solid var(--gold);padding:8px 12px;box-shadow:0 0 24px #ffc92855,4px 4px 0 var(--ink);
  clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}
.toast i{font-style:normal;font-size:1.4rem}
.toast small{display:block;font-family:var(--pixel);font-size:.45rem;color:var(--gold);letter-spacing:.1em}
.toast b{font-family:var(--display);font-size:1.15rem;letter-spacing:.04em}
@media (max-width:719px){.toast{padding:5px 10px}.toast i{font-size:1.1rem}.toast b{font-size:.98rem}.toasts{gap:5px}}

/* chapter title card */
.title-card{position:fixed;inset:0;z-index:80;display:grid;place-content:center;text-align:center;pointer-events:none;background:radial-gradient(circle,#0b0b16dd,#0b0b1600 70%)}
.title-card[hidden]{display:none}
.tc-kicker{font-family:var(--pixel);font-size:.6rem;color:var(--gold);letter-spacing:.2em;margin:0 0 6px}
.tc-title{font-family:var(--display);font-size:clamp(2.6rem,10vw,6rem);line-height:.9;margin:0;letter-spacing:.02em;text-shadow:var(--o8),6px 6px 0 var(--red)}
.tc-type{font-family:var(--pixel);font-size:.55rem;line-height:1.7;color:#fff;margin:14px auto 0;background:#0b0b16;border:2px solid #fff;padding:8px 12px;max-width:min(90vw,520px);min-height:2.4em}

/* ---------- header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;height:var(--head);z-index:50;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;
  background:linear-gradient(#0b0b16f0,#0b0b16c0);border-bottom:3px solid var(--ink);box-shadow:0 3px 0 var(--red)}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none}
.brand img{width:38px;height:38px;border-radius:50%;border:3px solid var(--gold);object-fit:cover}
.brand span{font-family:var(--display);font-size:1.6rem;letter-spacing:.04em;text-shadow:3px 3px 0 var(--red)}
.nav{display:none}
.head-cta{display:flex;gap:8px;align-items:center}

/* ---------- buttons ---------- */
.btn-slash{--c:var(--red);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 26px;text-decoration:none;
  font-family:var(--display);font-size:1.45rem;letter-spacing:.05em;color:#fff;background:var(--c);isolation:isolate;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 18px),calc(100% - 14px) 100%,0 100%,0 18px);
  text-shadow:2px 2px 0 var(--ink);transition:transform .18s var(--spring),filter .2s}
.btn-slash::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 38%,#fff9 46%,transparent 54%) -120% 0/250% 100% no-repeat;animation:shine 2.6s var(--ease) infinite}
.btn-slash::after{content:"";position:absolute;inset:4px;z-index:-1;border:2px solid #fff6;clip-path:inherit}
@keyframes shine{60%,100%{background-position:120% 0}}
.btn-slash:hover{transform:translateY(-3px) rotate(-1.5deg) scale(1.03);filter:brightness(1.12)}
.btn-slash:active{transform:scale(.96)}
.btn-slash--sm{min-height:38px;padding:0 16px;font-size:1.1rem}
.btn-coin{position:relative;display:inline-grid;place-items:center;width:54px;height:54px;border-radius:50%;text-decoration:none;font-size:1.5rem;font-weight:800;color:var(--ink);
  background:radial-gradient(circle at 35% 30%,#fff6c4,var(--gold) 40%,#c98700 75%,#8a5a00);border:3px solid var(--ink);
  box-shadow:inset 0 0 0 4px #ffe58a,inset 0 0 0 6px #b37800,3px 3px 0 var(--ink);transition:transform .5s var(--ease)}
.btn-coin:hover{transform:rotateY(360deg) scale(1.08)}
.btn-coin--sm{width:38px;height:38px;font-size:1.05rem;box-shadow:inset 0 0 0 3px #ffe58a,2px 2px 0 var(--ink)}
.btn-torn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;text-decoration:none;font-family:var(--display);font-size:1.2rem;letter-spacing:.05em;color:var(--ink);background:var(--paper);
  clip-path:polygon(0 6%,8% 0,18% 7%,30% 1%,42% 6%,55% 0,68% 7%,80% 2%,92% 6%,100% 0,98% 50%,100% 100%,88% 94%,76% 100%,63% 93%,50% 100%,37% 94%,24% 100%,12% 93%,0 100%,2% 50%);
  transition:transform .18s var(--spring)}
.btn-torn:hover{transform:rotate(2deg) scale(1.05)}
.btn-scroll{position:relative;font-family:var(--display);font-size:1.05rem;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:0;padding:8px 18px;border-radius:4px;
  box-shadow:inset 0 0 0 2px var(--ink);transition:transform .18s var(--spring)}
.btn-scroll::before,.btn-scroll::after{content:"";position:absolute;top:-4px;bottom:-4px;width:9px;border-radius:9px;background:linear-gradient(90deg,#8a5a2b,#d9a066,#8a5a2b);border:2px solid var(--ink)}
.btn-scroll::before{left:-6px}.btn-scroll::after{right:-6px}
.btn-scroll:hover{transform:scale(1.06)}
.btn-scroll.is-ok{background:var(--gold)}
.btn-start{font-family:var(--pixel);font-size:.7rem;letter-spacing:.08em;color:var(--ink);background:var(--bolt);border:3px solid var(--ink);padding:16px 18px;box-shadow:5px 5px 0 var(--red);
  clip-path:polygon(0 0,100% 0,100% 70%,96% 100%,0 100%);transition:transform .18s var(--spring);width:100%}
.btn-start:hover{transform:translate(-2px,-2px)}

/* ---------- CA scroll strip ---------- */
.ca-scroll{width:min(100%,460px);display:flex;align-items:center;gap:10px;background:#0b0b16;border:3px solid var(--paper);padding:7px 14px 7px 10px;max-width:100%;
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,8px 50%)}
.ca-label{font-family:var(--pixel);font-size:.55rem;color:var(--ink);background:var(--gold);padding:4px 6px}
.ca-val{flex:1;min-width:0;font-family:var(--pixel);font-size:.7rem;color:var(--bolt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- headings ---------- */
.eyebrow{font-family:var(--pixel);font-size:.55rem;letter-spacing:.16em;color:var(--gold);margin:0 0 8px}
.eyebrow--ink{color:var(--red)}
.h2{font-family:var(--display);font-size:clamp(3rem,13vw,7.5rem);line-height:.86;letter-spacing:.02em;margin:0;text-shadow:var(--o8),6px 6px 0 var(--red)}
.h2 span{color:var(--bolt)}
.h2--ink{color:#fff}
.h3{font-family:var(--display);font-size:clamp(2rem,7vw,3.4rem);line-height:.9;margin:0;text-shadow:var(--o8),4px 4px 0 var(--red)}
.h3 span{color:var(--bolt)}
.lede{font-size:1.02rem;color:#ffffffd9;max-width:46ch}
.sec-head{position:relative;z-index:2;padding:0 16px;margin-bottom:22px}
.ghost{position:absolute;top:10px;left:0;margin:0;white-space:nowrap;font-family:var(--display);font-size:clamp(7rem,30vw,22rem);line-height:.8;color:transparent;-webkit-text-stroke:2px #ffffff22;pointer-events:none;z-index:0}
.ghost--dark{-webkit-text-stroke-color:#0b0b1622}
.sfx{position:absolute;margin:0;font-family:var(--jp);color:var(--bolt);text-shadow:var(--o8),5px 5px 0 var(--red);pointer-events:none;z-index:3}

/* ---------- HERO ---------- */
.hero{min-height:100svh;padding:calc(var(--head) + 58px) 0 96px;background:linear-gradient(180deg,#0a2a7a 0%,#1660d8 45%,#59b3ff 100%);perspective:1200px;isolation:isolate}
.hero-sky{position:absolute;inset:-6%;z-index:-2;background:url(assets/img/speed-banner.webp) center/cover;filter:blur(14px) saturate(1.3);opacity:.45}
.speedlines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.sfx--a{right:4%;top:calc(var(--head) + 70px);font-size:clamp(1.6rem,6vw,4rem);rotate:12deg}
.sfx--b{left:52%;bottom:16%;font-size:clamp(2rem,8vw,5.5rem);rotate:-10deg;z-index:5}
.hero-inner{position:relative;display:grid;gap:14px;padding:0 16px;max-width:1360px;margin:0 auto}
.hero-copy{position:relative;z-index:4;display:grid;gap:12px;justify-items:start;min-width:0}
.hero-kicker{margin:0;font-family:var(--pixel);font-size:.5rem;letter-spacing:.1em;display:flex;align-items:center;gap:8px;text-shadow:2px 2px 0 var(--ink)}
.kick-chip{background:var(--red);border:2px solid #fff;padding:3px 5px}
.hero-title{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(4.6rem,23vw,13rem);line-height:.8;letter-spacing:.01em;display:grid;transform-style:preserve-3d}
.ht-line{display:block;color:#fff;text-shadow:var(--o8),7px 7px 0 var(--ink)}
.ht-line--red{color:var(--bolt);text-shadow:var(--o8),7px 7px 0 var(--red)}
.ht-line .ch{display:inline-block;will-change:transform}
.hero-sub{margin:0;font-size:1rem;max-width:34ch;font-weight:600;text-shadow:1px 1px 0 var(--ink),0 0 12px #0a2a7a}
.gold{color:var(--gold)}
.hero-panel{position:relative;width:100%;border:4px solid var(--ink);box-shadow:6px 6px 0 var(--ink),0 0 0 2px #fff inset;background:#000;rotate:-1.2deg;transform-style:preserve-3d;overflow:hidden}
.hero-banner{width:100%;aspect-ratio:3/1;object-fit:cover;transform:scale(1.04)}
.panel-sfx{position:absolute;right:8px;bottom:4px;font-family:var(--jp);font-size:1.5rem;color:#fff;text-shadow:var(--o8),3px 3px 0 var(--red);rotate:-8deg}
.panel-tone{position:absolute;inset:0;background:radial-gradient(#0003 1px,transparent 1.3px) 0 0/5px 5px;mix-blend-mode:multiply;pointer-events:none}
.hero-ctas{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.hero-art{position:absolute;right:-14px;top:-10px;width:60vw;max-width:300px;z-index:2;pointer-events:none}
.hero-cut{width:100%;filter:drop-shadow(5px 5px 0 var(--ink)) drop-shadow(0 0 22px #fff04a66);transform-origin:50% 90%}
.hero-ring{position:absolute;inset:6% 0 18% 6%;border-radius:50%;background:repeating-conic-gradient(var(--bolt) 0 4deg,transparent 4deg 14deg);opacity:.35;-webkit-mask:radial-gradient(circle,transparent 30%,#000 32%,#000 68%,transparent 70%);mask:radial-gradient(circle,transparent 30%,#000 32%,#000 68%,transparent 70%);animation:spin 18s linear infinite}
.hero-badge{display:none}
.press-start{position:absolute;left:50%;bottom:96px;translate:-50% 0;font-family:var(--pixel);font-size:.6rem;letter-spacing:.14em;text-decoration:none;color:#fff;text-shadow:2px 2px 0 var(--ink);animation:blink 1.1s steps(2) infinite;display:block}
.press-start i{font-style:normal}

/* ---------- rails ---------- */
.rails{position:relative;z-index:6;padding:26px 0;margin:-34px 0 -20px;overflow:clip}
.rail{overflow:hidden;white-space:nowrap;border-block:4px solid var(--ink);width:110%;margin-left:-5%}
.rail--red{background:var(--red);rotate:-2.4deg;box-shadow:0 6px 0 var(--ink)}
.rail--paper{background:var(--paper);color:var(--ink);rotate:1.6deg;margin-top:-6px}
.rail-track{display:inline-flex;will-change:transform}
.rail span{font-family:var(--display);font-size:clamp(1.4rem,4vw,2.4rem);letter-spacing:.05em;padding:6px 0;padding-right:.6em}
.rail--red span{text-shadow:2px 2px 0 var(--ink)}
.rail--paper span{font-family:var(--heavy);font-size:clamp(1rem,3vw,1.7rem)}

/* ---------- SELECT ---------- */
.select{padding:80px 0 70px;background:
  radial-gradient(circle at 30% 30%,#2a1c6b 0,transparent 55%),
  repeating-linear-gradient(135deg,#ffffff06 0 2px,transparent 2px 14px),
  linear-gradient(#0b0b16,#141a33)}
.sel-head{position:relative;z-index:2;padding:0 16px;margin-bottom:18px}
.sel-grid{position:relative;z-index:2;display:grid;gap:18px;padding:0 16px;max-width:1280px;margin:0 auto}
.sel-stage{position:relative;height:440px;border:4px solid #fff;background:linear-gradient(#1b2a6b,#0b0b16);overflow:hidden;
  clip-path:polygon(0 0,100% 0,100% 92%,92% 100%,0 100%);transform-style:preserve-3d}
.sel-spot{position:absolute;left:50%;top:-20%;width:140%;height:130%;translate:-50% 0;background:conic-gradient(from 160deg at 50% 0,transparent 0 10deg,#fff04a33 14deg 26deg,transparent 30deg);animation:sway 4s ease-in-out infinite alternate}
@keyframes sway{to{rotate:6deg}}
.sel-floor{position:absolute;left:50%;bottom:62px;width:80%;height:46px;translate:-50% 0;border-radius:50%;background:radial-gradient(#fff04a88,#ff9f1c33 50%,transparent 70%);box-shadow:0 0 40px #fff04a55}
.sel-char{position:absolute;left:50%;bottom:66px;height:86%;width:auto;max-width:90%;object-fit:contain;translate:-50% 0;filter:drop-shadow(6px 6px 0 #000) drop-shadow(0 0 18px #fff04a66);transform-origin:50% 100%}
.sel-sfx{position:absolute;right:10px;top:8px;margin:0;font-family:var(--jp);font-size:2.4rem;color:var(--bolt);text-shadow:var(--o8),4px 4px 0 var(--red);rotate:10deg}
.sel-plate{position:absolute;left:0;right:0;bottom:0;padding:8px 14px;background:linear-gradient(90deg,var(--red),#7a0716);border-top:3px solid #fff}
.sel-plate small{display:block;font-family:var(--pixel);font-size:.45rem;color:var(--gold)}
.sel-plate b{font-family:var(--display);font-size:1.8rem;line-height:1;letter-spacing:.03em}
.sel-plate span{display:block;font-family:var(--pixel);font-size:.45rem;color:#fffc}
.sel-side{display:grid;gap:14px;min-width:0}
.roster{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ro{position:relative;aspect-ratio:1;padding:0;border:3px solid #fff5;background:linear-gradient(160deg,#2a3c8f,#0b0b16);overflow:hidden;clip-path:polygon(10% 0,100% 0,90% 100%,0 100%);transition:translate .2s var(--spring),border-color .2s}
.ro img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.ro span{position:absolute;left:0;right:0;bottom:0;font-family:var(--pixel);font-size:.4rem;background:#000b;padding:3px 0}
.ro.is-on{border-color:var(--bolt);background:linear-gradient(160deg,var(--red),#2a0612);translate:0 -4px;box-shadow:0 0 0 2px var(--ink)}
.ro.is-on::after{content:"P1";position:absolute;top:2px;left:12%;font-family:var(--pixel);font-size:.45rem;color:var(--bolt);text-shadow:1px 1px 0 #000;animation:blink .6s steps(2) infinite}
.radar-card{display:grid;grid-template-columns:1fr;gap:6px;background:#0b0b16cc;border:3px solid #fff;padding:12px;box-shadow:6px 6px 0 var(--red)}
.radar{width:100%;max-width:300px;margin:0 auto;overflow:visible}
.radar-grid polygon{fill:none;stroke:#ffffff2a;stroke-width:1}
.radar-grid line{stroke:#ffffff22}
.radar-shape{fill:#fff04a55;stroke:var(--bolt);stroke-width:3;stroke-linejoin:round;filter:drop-shadow(0 0 8px #fff04a)}
.radar-labels text{font-family:var(--pixel);font-size:9px;fill:#fff;text-anchor:middle;dominant-baseline:middle}
.radar-labels text.v{fill:var(--gold);font-size:8px}
.stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.stats li{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;font-family:var(--pixel);font-size:.45rem}
.stats i{height:8px;background:#ffffff1c;border:1px solid #fff5}
.stats em{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold));transform-origin:left;transform:scaleX(var(--v,0));transition:transform .8s var(--ease)}

/* ---------- VS ---------- */
.vs{height:220vh;background:var(--ink)}
.vs-pin{position:sticky;top:0;height:100svh;overflow:hidden;perspective:1000px}
.vs-side{position:absolute;top:0;bottom:0;width:62%}
.vs-side img{position:absolute;inset:0}
.vs-side img{width:100%;height:100%;object-fit:cover}
.vs-side--l{left:0;background:var(--red);clip-path:polygon(0 0,100% 0,62% 100%,0 100%)}
.vs-side--l img{object-position:50% 18%;mix-blend-mode:normal}
.vs-side--r{right:0;clip-path:polygon(38% 0,100% 0,100% 100%,0 100%);background:#20003a}
.vs-side--r img{object-position:40% 30%;filter:saturate(1.2) contrast(1.1)}
.vs-side::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,#fff1 0 2px,transparent 2px 22px);mix-blend-mode:overlay}
.vs-name{position:absolute;left:12px;bottom:14%;max-width:calc(100vw - 24px);z-index:2}
.vs-name--r{left:auto;right:12px;bottom:auto;top:calc(var(--head) + 84px);text-align:right}
.vs-name small{font-family:var(--pixel);font-size:.55rem;background:var(--bolt);color:var(--ink);padding:3px 6px}
.vs-name b{display:block;font-family:var(--display);font-size:clamp(1.9rem,7vw,5.2rem);line-height:.9;text-shadow:var(--o8),5px 5px 0 var(--red)}
.vs-name--r b{text-shadow:var(--o8),5px 5px 0 #6b00b8}
.vs-name span{font-family:var(--pixel);font-size:.45rem;color:#fffc}
.vs-bolt{position:absolute;left:50%;top:-5%;width:24px;height:110%;translate:-50% 0;rotate:12deg;background:linear-gradient(var(--bolt),#fff,var(--bolt));box-shadow:0 0 30px 10px #fff04a,0 0 80px 20px #ff9f1c;clip-path:polygon(40% 0,100% 0,60% 38%,100% 38%,20% 100%,45% 55%,0 55%);transform-origin:50% 0}
.vs-mark{position:absolute;left:50%;top:50%;margin:0;translate:-50% -50%;font-family:var(--display);font-size:clamp(7rem,32vw,20rem);line-height:.8;color:var(--bolt);text-shadow:var(--o8),10px 10px 0 var(--red),0 0 60px #fff04a}
.vs-fight{position:absolute;left:50%;top:76%;margin:0;translate:-50% -50%;font-family:var(--display);font-size:clamp(3rem,13vw,8rem);color:#fff;text-shadow:var(--o8),6px 6px 0 var(--red);white-space:nowrap}
.vs-sfx{position:absolute;left:4%;top:calc(var(--head) + 50px);margin:0;font-family:var(--jp);font-size:clamp(1.6rem,6vw,3.4rem);color:#fff;text-shadow:var(--o8);writing-mode:vertical-rl}

/* ---------- MANIFESTO ---------- */
.manifesto{height:260vh;background:var(--ink)}
.mani-pin{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;align-content:center;padding:calc(var(--head) + 40px) 18px 20px}
.mani-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.25)}
.mani-shade{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,#0b0b16aa,#0b0b16f2 80%)}
.mani-kicker{position:relative;font-family:var(--pixel);font-size:.55rem;color:var(--gold);letter-spacing:.16em;margin:0 0 14px;max-width:1100px;margin-inline:auto;width:100%}
.mani-text{position:relative;margin:0 auto;max-width:1100px;font-family:var(--heavy);font-size:clamp(1.5rem,5.6vw,3.6rem);line-height:1.18;letter-spacing:-.01em}
.mani-text .w{opacity:.14;transition:none;display:inline-block}
.mani-text em{font-style:normal;color:var(--bolt);margin:0 .14em}

/* ---------- STORY / MANGA ---------- */
.story{padding:80px 0 90px;background:var(--paper);color:var(--ink);
  background-image:radial-gradient(#0b0b1614 1px,transparent 1.3px);background-size:7px 7px}
.story .h2{color:#fff}
.manga{position:relative;z-index:2;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:0 12px;max-width:1280px;margin:0 auto;perspective:1400px}
.pn{position:relative;margin:0;border:5px solid var(--ink);background:#000;overflow:hidden;transform-style:preserve-3d;box-shadow:6px 6px 0 var(--ink)}
.pn img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.pn:hover img{transform:scale(1.06)}
.pn::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-conic-gradient(from 0deg at 50% 50%,#fff0 0 3deg,#ffffff18 3deg 4deg);mix-blend-mode:overlay}
.pn--a{grid-column:1/-1;aspect-ratio:16/9;clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
.pn--b{grid-column:1/-1;aspect-ratio:16/9;clip-path:polygon(0 8%,100% 0,100% 100%,0 100%);margin-top:-18px}
.pn--c{grid-column:1/-1;aspect-ratio:16/9}
.pn--d{grid-column:1/4;aspect-ratio:3/4.4;clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}
.pn--e{grid-column:4/-1;aspect-ratio:3/4.4;clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);margin-left:-18px}
.bubble{position:absolute;z-index:2;left:8px;top:8px;max-width:62%;background:#fff;color:var(--ink);font-family:var(--display);font-size:clamp(.95rem,3.4vw,1.6rem);letter-spacing:.03em;line-height:1.05;padding:8px 12px;border:3px solid var(--ink);border-radius:50% / 40%;text-align:center}
.bubble::after{content:"";position:absolute;left:24%;bottom:-14px;border:9px solid transparent;border-top:14px solid var(--ink)}
.bubble--r{left:auto;right:8px}
.pn--e .bubble{left:auto;right:8px}
.pn-sfx{position:absolute;z-index:2;right:10px;bottom:4px;font-family:var(--jp);font-size:clamp(1.6rem,6vw,3.4rem);color:#fff;text-shadow:var(--o8),4px 4px 0 var(--red);rotate:-10deg}
.pn-sfx--y{color:var(--bolt)}
.pn--d .pn-sfx{left:10px;right:auto}

/* ---------- DASH ---------- */
.dash{height:520vh;background:#05122e}
.dash-pin{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate}
.dash-sky{position:absolute;inset:0 0 40% 0;background:url(assets/img/pano-sky.webp) 0 100%/auto 100% repeat-x;filter:saturate(1.1)}
.dash-sea{position:absolute;left:0;right:0;bottom:0;height:42%;background:url(assets/img/pano-sea.webp) 0 0/auto 100% repeat-x;box-shadow:0 -6px 18px #fff6}
.dash-trail{position:absolute;left:0;bottom:calc(16% + min(23vw,210px));height:clamp(18px,3vw,34px);width:0;background:linear-gradient(90deg,transparent,#ffc928 35%,#fff04a 70%,#fff 95%);border-radius:40px;box-shadow:0 0 22px 6px #fff04a99,inset 0 0 0 3px #fff8;transform-origin:left center}
.dash-lines{position:absolute;inset:0;pointer-events:none;opacity:0;background:repeating-linear-gradient(0deg,transparent 0 22px,#ffffffaa 22px 23px,transparent 23px 47px);
  -webkit-mask:linear-gradient(90deg,#000,transparent 70%);mask:linear-gradient(90deg,#000,transparent 70%);mix-blend-mode:overlay}
.dash-isles{position:absolute;left:0;top:calc(var(--head) + 120px);height:0;width:300%;will-change:transform}
.isle{position:absolute;left:calc(var(--x) * 1%);display:grid;justify-items:center;translate:-50% 0;background:var(--paper);color:var(--ink);border:3px solid var(--ink);padding:5px 12px;box-shadow:4px 4px 0 var(--red);rotate:-3deg;white-space:nowrap}
.isle b{font-family:var(--pixel);font-size:.45rem}
.isle span{font-family:var(--display);font-size:1.3rem;letter-spacing:.04em}
.isle.is-cut{animation:cut .5s var(--ease) forwards}
@keyframes cut{40%{clip-path:polygon(0 0,100% 0,100% 45%,0 60%)}100%{clip-path:polygon(0 0,100% 0,100% 45%,0 60%);transform:translateY(-20px) rotate(-8deg);opacity:0}}
.dash-slash{position:absolute;left:-10%;top:48%;width:120%;height:10px;background:linear-gradient(90deg,transparent,#fff,var(--bolt),#fff,transparent);box-shadow:0 0 30px 8px #fff04a;rotate:-14deg;transform:scaleX(0);opacity:0}
.dash-run,.dash-hit,.dash-win{position:absolute;left:0;bottom:16%;width:min(46vw,420px);filter:drop-shadow(5px 5px 0 #000) drop-shadow(0 0 24px #fff04a);will-change:transform}
.dash-hit,.dash-win{opacity:0}
.dash-win{left:50%;bottom:10%;width:min(58vw,440px);translate:-50% 0}
.dash-hud{position:absolute;left:12px;right:12px;top:calc(var(--head) + 96px);display:flex;align-items:flex-end;gap:12px;z-index:4}
.speedo{position:relative;width:120px;background:#0b0b16cc;border:3px solid #fff;padding:6px 6px 2px;text-align:center}
.speedo svg{width:100%;display:block}
.sp-track,.sp-fill{fill:none;stroke-width:10;stroke-linecap:round}
.sp-track{stroke:#ffffff22}
.sp-fill{stroke:var(--bolt);stroke-dasharray:158;stroke-dashoffset:158;filter:drop-shadow(0 0 4px var(--bolt))}
.speedo b{position:absolute;left:0;right:0;top:30px;font-family:var(--display);font-size:1.7rem;line-height:1;font-variant-numeric:tabular-nums}
.speedo small{font-family:var(--pixel);font-size:.4rem}
.dash-combo{background:var(--red);border:3px solid #fff;padding:4px 12px;text-align:center;rotate:-4deg}
.dash-combo b{display:block;font-family:var(--display);font-size:2.4rem;line-height:1;color:var(--bolt);text-shadow:var(--o8)}
.dash-combo small{font-family:var(--pixel);font-size:.4rem}
.dash-prog{flex:1;height:12px;border:3px solid #fff;background:#0b0b16aa;align-self:center}
.dash-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--bolt));transform-origin:left;transform:scaleX(0)}
.dash-sfx{position:absolute;right:6%;top:30%;margin:0;font-family:var(--jp);font-size:clamp(3rem,12vw,8rem);color:#fff;text-shadow:var(--o8),6px 6px 0 var(--red);opacity:0;z-index:3;rotate:-12deg}
.ko{position:absolute;inset:0;display:grid;place-content:center;text-align:center;opacity:0;z-index:5;pointer-events:none;background:radial-gradient(circle,#fff04a55,transparent 60%)}
.ko-big{margin:0;font-family:var(--display);font-size:clamp(6rem,30vw,18rem);line-height:.8;color:var(--bolt);text-shadow:var(--o8),10px 10px 0 var(--red),0 0 60px #fff}
.ko-stamp{margin:10px auto 0;font-family:var(--display);font-size:clamp(1.8rem,7vw,4rem);color:var(--red);border:6px solid var(--red);padding:2px 18px;background:#fff9;rotate:-8deg;letter-spacing:.06em;mix-blend-mode:normal}
.dash-hint{position:absolute;left:50%;bottom:92px;translate:-50% 0;margin:0;font-family:var(--pixel);font-size:.5rem;background:#0b0b16cc;padding:6px 10px;border:2px solid #fff;white-space:nowrap;z-index:4}

/* ---------- WANTED ---------- */
.wanted{padding:90px 0 80px;background:radial-gradient(circle at 30% 40%,#7a0716,#2a0612 60%,#0b0b16);perspective:1200px}
.wanted-wrap{position:relative;z-index:2;display:grid;gap:34px;padding:0 16px;max-width:1200px;margin:0 auto;align-items:center}
.poster{position:relative;width:min(100%,400px);margin:0 auto;padding:16px 18px 22px;color:#3a2410;text-align:center;transform-origin:50% 0;transform-style:preserve-3d;
  background:radial-gradient(circle at 20% 15%,#0000 0 40%,#7a4a1a22 70%),radial-gradient(circle at 85% 80%,#5a3a1033,transparent 40%),linear-gradient(180deg,#f2e2b8,#e3cb92);
  box-shadow:0 30px 60px #0009,0 0 0 2px #6b4a1f inset,0 0 0 8px #e8d6a8 inset,0 0 0 10px #6b4a1f88 inset;
  clip-path:polygon(0 1%,6% 0,20% 1.5%,40% 0,62% 1%,80% 0,100% 1.2%,99% 20%,100% 42%,99% 70%,100% 99%,82% 100%,60% 98.8%,38% 100%,18% 98.8%,0 100%,1% 70%,0 40%)}
.nail{position:absolute;left:50%;top:6px;width:16px;height:16px;translate:-50% 0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ddd,#555);box-shadow:0 2px 3px #0008;z-index:3}
.po-wanted{margin:6px 0 4px;font-family:'Dela Gothic One',serif;font-size:clamp(2.6rem,13vw,4.1rem);line-height:.9;letter-spacing:0;color:#3a2410}
.po-photo{border:3px solid #3a2410;padding:4px;background:#d6bd85}
.po-photo img{width:100%;aspect-ratio:4/3.4;object-fit:cover;object-position:50% 15%;filter:sepia(.35) contrast(1.05) saturate(.9)}
.po-doa{margin:8px 0 0;font-family:'Dela Gothic One',serif;font-size:1.05rem;letter-spacing:.32em}
.po-name{margin:0;font-family:var(--display);font-size:clamp(2.4rem,11vw,3.6rem);line-height:.95;letter-spacing:.05em}
.po-bounty{margin:2px 0 4px;display:flex;align-items:baseline;justify-content:center;gap:6px;font-family:'Dela Gothic One',serif}
.po-sym{font-size:1.6rem}
.po-bounty b{font-size:clamp(1.6rem,7.4vw,2.4rem);letter-spacing:.01em;font-variant-numeric:tabular-nums}
.po-bounty small{font-size:.8rem}
.po-fine{margin:0;font-size:.72rem;font-style:italic;opacity:.75}
.po-stamp{position:absolute;right:-4px;top:44%;margin:0;font-family:var(--display);font-size:2.1rem;line-height:.9;color:#c8102e;border:5px double #c8102e;padding:6px 10px;rotate:-16deg;mix-blend-mode:multiply;opacity:0}
.wanted-side{position:relative}
.charges{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:8px}
.charges li{display:flex;gap:10px;align-items:center;background:#0b0b1688;border-left:5px solid var(--gold);padding:8px 12px}
.charges b{font-family:var(--pixel);font-size:.6rem;color:var(--gold)}

/* ---------- MOVES ---------- */
.moves{padding:80px 0 80px;background:linear-gradient(#0b0b16,#14204f)}
.move-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 12px;max-width:1280px;margin:0 auto;perspective:1100px}
.move{position:relative;height:270px;padding:0;border:0;background:none;transform-style:preserve-3d;transition:transform .7s var(--ease)}
.move.is-flip{transform:rotateY(180deg)}
.mv-face{position:absolute;inset:0;display:grid;align-content:end;justify-items:start;gap:4px;padding:10px;text-align:left;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;border:3px solid #fff;
  clip-path:polygon(0 0,100% 0,100% 88%,86% 100%,0 100%)}
.mv-front{background:radial-gradient(circle at 50% 30%,#2f8cff,#0a1a3f 75%)}
.mv-front img{position:absolute;left:50%;top:6px;height:66%;width:auto;max-width:none;translate:-50% 0;filter:drop-shadow(4px 4px 0 #000);transition:transform .4s var(--spring)}
.move:hover .mv-front img{transform:scale(1.08) rotate(-3deg)}
.mv-name{position:relative;font-family:var(--display);font-size:1.4rem;line-height:1;letter-spacing:.03em;text-shadow:var(--o8)}
.mv-name em{font-style:normal;font-family:var(--pixel);font-size:.45rem;background:var(--red);padding:2px 4px;vertical-align:middle}
.mv-input{position:relative;font-family:var(--pixel);font-size:.55rem;color:var(--bolt);background:#000a;padding:3px 6px}
.mv-input i{font-style:normal;background:var(--red);color:#fff;padding:1px 4px;border-radius:50%}
.mv-dmg{position:relative;width:100%;height:8px;background:#fff2;border:1px solid #fff8}
.mv-dmg i{display:block;height:100%;width:calc(var(--d) * 100%);background:linear-gradient(90deg,var(--red),var(--bolt))}
.mv-back{transform:rotateY(180deg);background:#000;align-content:center;justify-items:center;text-align:center}
.mv-back img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.mv-back b{position:relative;font-family:var(--jp);font-size:2rem;color:var(--bolt);text-shadow:var(--o8),4px 4px 0 var(--red)}
.mv-back small{position:relative;font-size:.8rem;font-weight:600;text-shadow:1px 1px 0 #000;max-width:24ch}
.move--super .mv-front{background:radial-gradient(circle at 50% 30%,#ff9f1c,#7a0716 75%);border-color:var(--bolt);box-shadow:inset 0 0 30px #fff04a}

/* ---------- COIN ---------- */
.coin{padding:80px 0;background:radial-gradient(circle at 50% 40%,#3a2a05,#0b0b16 65%)}
.coin-grid{position:relative;z-index:2;display:grid;gap:20px;padding:0 16px;max-width:1200px;margin:0 auto;align-items:center}
.coin-stage{position:relative;height:min(92vw,520px)}
.coin-halo{position:absolute;inset:6%;border-radius:50%;background:repeating-conic-gradient(#ffc92833 0 5deg,transparent 5deg 15deg);animation:spin 26s linear infinite;-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%)}
.coin-canvas{position:relative;width:100%;height:100%;touch-action:pan-y;cursor:grab;display:block}
.coin-canvas:active{cursor:grabbing}
.coin-hint{position:absolute;left:50%;bottom:4px;translate:-50% 0;margin:0;font-family:var(--pixel);font-size:.5rem;color:var(--gold);animation:blink 1.4s steps(2) infinite;white-space:nowrap}
.coin-sfx{position:absolute;left:4px;top:10px;font-family:var(--jp);font-size:2.2rem;color:var(--gold);text-shadow:var(--o8);rotate:-12deg}
.item-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 0}
.item-stats div{background:#0b0b16;border:2px solid var(--gold);padding:8px 10px}
.item-stats dt{font-family:var(--pixel);font-size:.42rem;color:var(--gold)}
.item-stats dd{margin:2px 0 0;font-family:var(--display);font-size:1.3rem;letter-spacing:.04em}

/* ---------- MAP ---------- */
.map{padding:80px 0 80px;background:linear-gradient(#0b0b16,#0a2a5a 40%,#0b4fb3)}
.map-board{position:relative;margin:0 auto;width:calc(100% - 20px);max-width:1200px;aspect-ratio:16/9;border:4px solid var(--ink);box-shadow:8px 8px 0 var(--ink),0 0 0 3px #e8d6a8;rotate:-.6deg;transform-style:preserve-3d;background:#2a1a0a}
.map-img{width:100%;height:100%;object-fit:cover}
.map-route{position:absolute;inset:0;width:100%;height:100%}
.map-route path{fill:none;stroke:#c8102e;stroke-width:5;stroke-dasharray:14 10;stroke-linecap:round;filter:drop-shadow(1px 1px 0 #3a2410)}
.map-ship{position:absolute;left:0;top:0;width:clamp(30px,6vw,64px);height:auto;aspect-ratio:1;border-radius:50%;border:3px solid var(--gold);box-shadow:0 0 0 2px var(--ink),0 6px 14px #0008;object-fit:cover;translate:-50% -50%;z-index:3}
.pin{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);translate:-50% -50%;z-index:2}
.pin i{display:grid;place-items:center;width:clamp(22px,4vw,40px);aspect-ratio:1;border-radius:50%;font-style:normal;font-family:var(--display);font-size:clamp(.9rem,2vw,1.4rem);color:#fff;background:var(--red);border:3px solid var(--ink);box-shadow:0 0 0 3px #f6ecd2}
.pin--x i{background:var(--gold);color:var(--ink);animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.25);box-shadow:0 0 0 3px #f6ecd2,0 0 24px 6px var(--gold)}}
.isles{list-style:none;display:grid;gap:12px;padding:0 16px;margin:28px auto 0;max-width:1200px;counter-reset:i}
.isles li{position:relative;background:var(--paper);color:var(--ink);padding:14px 16px 12px;border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);
  clip-path:polygon(0 3%,10% 0,30% 2%,55% 0,80% 2.5%,100% 0,99% 50%,100% 100%,70% 98%,40% 100%,12% 98%,0 100%,1% 50%)}
.isles b{font-family:var(--display);font-size:1.35rem;letter-spacing:.03em}
.isles p{margin:2px 0 6px;font-size:.92rem}
.isles em{font-style:normal;font-family:var(--pixel);font-size:.5rem;background:var(--ink);color:var(--gold);padding:3px 6px}
.isles li:first-child em{background:var(--red);color:#fff}

/* ---------- BUY ---------- */
.buy{padding:80px 0 80px;background:linear-gradient(#0b4fb3,#0a1a3f 30%,#0b0b16)}
.steps{list-style:none;padding:0 16px;margin:0 auto;display:grid;gap:12px;max-width:1200px;perspective:1000px}
.step{position:relative;background:#fff;color:var(--ink);border:4px solid var(--ink);padding:16px 16px 14px 70px;box-shadow:6px 6px 0 var(--red);transform-style:preserve-3d}
.step::before{content:"";position:absolute;inset:0;background:radial-gradient(#0b0b1618 1px,transparent 1.3px) 0 0/6px 6px;pointer-events:none}
.st-n{position:absolute;left:12px;top:12px;width:44px;height:44px;display:grid;place-items:center;font-family:var(--display);font-size:1.8rem;color:#fff;background:var(--red);border:3px solid var(--ink);rotate:-8deg}
.step b{font-family:var(--display);font-size:1.5rem;letter-spacing:.03em}
.step p{margin:2px 0 0;font-size:.92rem}
.buy-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;padding:0 16px;margin:28px auto 0;max-width:1200px}
.ca-scroll--big{flex:1 1 100%;max-width:560px}
.tok{padding:0 16px;margin:56px auto 0;max-width:1200px}
.tok-head{margin-bottom:16px}
.tok-note{margin:8px 0 0;font-size:.92rem;color:#ffffffcc}
.tok-note b{color:var(--bolt)}
.tok-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tk{background:#0b0b16;border:3px solid #fff;padding:12px;box-shadow:4px 4px 0 var(--red);transform-style:preserve-3d}
.tk small{display:block;font-family:var(--pixel);font-size:.42rem;color:var(--gold);line-height:1.5}
.tk b{display:block;font-family:var(--display);font-size:clamp(1.3rem,5vw,2rem);letter-spacing:.03em}
.tk i{display:block;height:8px;background:#ffffff1c;border:1px solid #fff5}
.tk em{display:block;height:100%;width:calc(var(--v) * 100%);background:linear-gradient(90deg,var(--green),var(--bolt))}
.tok-fine{font-size:.78rem;color:#ffffff99;margin:12px 0 0}

/* ---------- FOOTER ---------- */
.foot{position:relative;padding:60px 0 120px;background:var(--red);overflow:clip;background-image:repeating-conic-gradient(from 0deg at 50% 100%,#ffffff12 0 4deg,transparent 4deg 10deg)}
.foot-ghost{position:absolute;left:50%;top:0;translate:-50% 0;margin:0;font-family:var(--display);font-size:clamp(9rem,42vw,34rem);line-height:.8;color:transparent;-webkit-text-stroke:3px #ffffff33;white-space:nowrap;pointer-events:none}
.foot-inner{position:relative;display:grid;gap:10px;padding:0 16px;max-width:1200px;margin:0 auto}
.foot-cut{width:min(64vw,320px);margin:0 auto;filter:drop-shadow(6px 6px 0 var(--ink))}
.foot-continue{margin:0;font-family:var(--display);font-size:1.4rem;letter-spacing:.06em;color:var(--bolt);text-shadow:2px 2px 0 var(--ink)}
.foot-title{margin:0;font-family:var(--display);font-size:clamp(4.4rem,20vw,9rem);line-height:.85;text-shadow:var(--o8),7px 7px 0 var(--ink)}
.foot-ctas{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.disclaimer{font-size:.82rem;line-height:1.55;color:#fff;background:#0b0b16cc;padding:12px 14px;border-left:5px solid var(--bolt)}
.eggs{font-size:.8rem;color:#ffffffcc;margin:0}
.copy{font-family:var(--pixel);font-size:.45rem;color:#ffffffaa;margin:0}

/* ---------- mobile dock ---------- */
.dock{position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:55;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;
  background:#0b0b16f0;border:3px solid #fff;padding:6px;box-shadow:0 0 0 2px var(--ink),5px 5px 0 var(--red)}
.dock-buy{display:grid;place-items:center;height:44px;padding:0 16px;font-family:var(--display);font-size:1.25rem;letter-spacing:.05em;text-decoration:none;background:var(--red);clip-path:polygon(8px 0,100% 0,100% calc(100% - 10px),calc(100% - 8px) 100%,0 100%,0 10px)}
.dock-ca{display:flex;align-items:center;gap:6px;min-width:0;height:44px;background:var(--paper);color:var(--ink);border:0;padding:0 10px;font-family:var(--pixel);font-size:.55rem}
.dock-ca small{background:var(--ink);color:var(--gold);padding:3px 4px;font-size:.45rem}
.dock-ca span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock-x{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;text-decoration:none;font-weight:800;color:var(--ink);background:radial-gradient(circle at 35% 30%,#fff6c4,var(--gold) 45%,#b37800);border:2px solid var(--ink)}

/* ---------- easter egg ---------- */
.egg{position:fixed;inset:0;z-index:96;display:grid;place-items:center;pointer-events:none;opacity:0}
.egg p{margin:0;font-family:var(--display);font-size:clamp(4rem,20vw,14rem);line-height:.85;text-align:center;color:var(--bolt);text-shadow:var(--o8),10px 10px 0 var(--red),0 0 80px #fff}
body.is-gold main,body.is-gold footer{filter:sepia(.4) saturate(1.6) hue-rotate(-10deg)}
body.is-shake main{animation:shake .4s linear}
@keyframes shake{20%{transform:translate(-6px,3px)}40%{transform:translate(5px,-4px)}60%{transform:translate(-4px,-2px)}80%{transform:translate(3px,4px)}}

/* ================= TABLET / DESKTOP ================= */
@media (min-width:720px){
  .move-grid{grid-template-columns:repeat(4,1fr);gap:16px;padding:0 20px}
  .move{height:340px}
  .tok-grid{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .isles{grid-template-columns:repeat(5,1fr)}
  .manga{grid-template-columns:repeat(12,1fr);gap:14px;padding:0 20px}
  .pn--a{grid-row:1;grid-column:1/8;aspect-ratio:auto;height:420px;clip-path:polygon(0 0,100% 0,92% 100%,0 100%)}
  .pn--b{grid-row:1;grid-column:7/-1;aspect-ratio:auto;height:420px;margin:0 0 0 -30px;clip-path:polygon(8% 0,100% 0,100% 100%,0 100%)}
  .pn--c{grid-column:1/6;height:560px;aspect-ratio:auto}
  .pn--c img{object-position:30% 50%}
  .pn--d{grid-column:6/9;height:560px;aspect-ratio:auto}
  .pn--e{grid-column:9/-1;height:560px;aspect-ratio:auto;margin-left:-26px}
}
@media (min-width:1024px){
  :root{--head:66px}
  .site-header{padding:0 28px}
  .nav{display:flex;gap:4px}
  .nav a{font-family:var(--display);font-size:1.15rem;letter-spacing:.06em;text-decoration:none;padding:6px 12px;transition:background .2s,transform .2s var(--spring)}
  .nav a:hover{background:var(--red);transform:skewX(-10deg)}
  .dock{display:none}
  .toasts{bottom:24px;left:auto;right:24px;translate:none}
  .hud{padding:0 24px}
  .hud-bars{width:160px}
  .hud-pfp img{width:40px;height:40px}
  .hbar i{height:9px}.hbar{font-size:.5rem}
  .hud-bounty b{font-size:1.5rem}
  .hero{min-height:100vh;padding:calc(var(--head) + 70px) 0 110px}
  .hero-inner{grid-template-columns:1.05fr .95fr;align-items:center;padding:0 40px;gap:20px}
  .hero-title{font-size:clamp(7rem,11.5vw,12rem)}
  .hero-sub{font-size:1.2rem}
  .hero-panel{max-width:640px}
  .hero-art{position:relative;right:auto;top:auto;width:100%;max-width:620px;justify-self:center}
  .hero-badge{display:block;position:absolute;left:-4%;top:6%;width:150px;rotate:-9deg;z-index:3}
  .hero-badge img{width:150px;height:150px;border-radius:50%;border:6px solid var(--gold);box-shadow:0 0 0 5px var(--ink),8px 8px 0 5px var(--red);object-fit:cover}
  .hero-badge span{position:absolute;left:50%;bottom:-12px;translate:-50% 0;font-family:var(--display);font-size:1.4rem;background:var(--paper);color:var(--ink);border:3px solid var(--ink);padding:0 10px;letter-spacing:.08em}
  .press-start{display:block;bottom:40px}
  .sfx--b{left:46%;bottom:12%}
  .rails{margin:-44px 0 -20px}
  .sel-head,.sec-head{padding:0 40px;max-width:1360px;margin-inline:auto}
  .sel-grid{grid-template-columns:1.1fr .9fr;gap:28px;padding:0 40px;max-width:1360px}
  .sel-stage{height:620px}
  .radar-card{grid-template-columns:1fr 1fr;align-items:center}
  .stats{grid-template-columns:1fr}
  .vs-name{left:40px}.vs-name--r{right:40px}
  .wanted-wrap{grid-template-columns:auto 1fr;gap:70px;padding:0 40px}
  .poster{width:420px}
  .coin-grid{grid-template-columns:1.1fr .9fr;padding:0 40px}
  .coin-stage{height:560px}
  .buy-bar{flex-wrap:nowrap}
  .ca-scroll--big{flex:1 1 auto}
  .foot-inner{grid-template-columns:auto 1fr;align-items:end;gap:40px;padding:0 40px}
  .foot{padding:90px 0 60px}
  .foot-cut{width:340px}
  .dash-hud{top:auto;bottom:28px;left:28px;right:28px}
  .dash-hint{bottom:auto;top:calc(var(--head) + 58px)}
  .speedo{width:150px}.speedo b{top:38px;font-size:2.2rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .grain{animation:none}
  .vs,.manifesto{height:auto}
  .vs-pin,.mani-pin{position:relative;height:auto;min-height:100svh}
  .mani-text .w{opacity:1}
  .dash{height:auto}
  .dash-pin{position:relative}
}
