/* =========================================================
   NYANODE — $NYAN
   palette sampled from the source art
   ========================================================= */
:root{
  --ink:#090e18;
  --ink-2:#120a24;
  --deep:#2e1660;
  --p3:#6123b2;
  --p2:#8c21f6;
  --p1:#b14cfa;
  --white:#ecf1ee;
  --green:#62c42d;
  --acid:#8cff3f;
  --mag:#e04cff;
  --f-px:"Silkscreen",ui-monospace,monospace;
  --f-disp:"Unbounded",system-ui,sans-serif;
  --f-mono:"Space Mono",ui-monospace,monospace;
  --pad:clamp(18px,4vw,64px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--ink);-webkit-text-size-adjust:100%}
html.has-smooth{scroll-behavior:auto}
main{overflow-x:clip}
body{background:var(--ink);color:var(--white);font-family:var(--f-mono);font-size:16px;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.is-loading{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
svg{width:1em;height:1em;flex:none}
::selection{background:var(--p2);color:var(--white)}

/* scanline + grain overlay on the whole page */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);
  mix-blend-mode:multiply;opacity:.55}

/* ================= PRELOADER ================= */
#loader{position:fixed;inset:0;z-index:1000;background:var(--ink);overflow:hidden}
#loaderCanvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
.loader-ui{position:absolute;left:var(--pad);bottom:var(--pad);z-index:3;font-family:var(--f-px)}
.loader-tag{display:inline-block;background:var(--green);color:var(--ink);padding:4px 10px;font-size:14px;letter-spacing:.08em;animation:blink 1s steps(2) infinite}
.loader-num{font-size:clamp(64px,14vw,190px);line-height:.9;color:var(--white);text-shadow:4px 0 var(--mag),-4px 0 var(--green);margin:10px 0 14px}
.loader-bar{width:min(420px,70vw);height:14px;border:3px solid var(--white);padding:2px;background:var(--ink)}
.loader-bar i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,var(--p1) 0 10px,transparent 10px 14px)}
.loader-cells{position:absolute;inset:0;display:grid;z-index:4;pointer-events:none}
.loader-cells i{background:var(--ink);transition:opacity .01s}
#loader.done{background:transparent}
#loader.done #loaderCanvas,#loader.done .loader-ui{opacity:0;transition:opacity .15s steps(2)}
#loader.gone{display:none}
@keyframes blink{50%{opacity:.35}}

/* ================= HEADER ================= */
.site-header{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--pad);transition:background .3s,padding .3s,border-color .3s;border-bottom:3px solid transparent}
.site-header.scrolled{background:#090e18;border-bottom-color:var(--p2);padding-top:10px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--f-px);font-weight:700;font-size:20px;letter-spacing:.04em}
.brand img{width:40px;height:40px;filter:drop-shadow(2px 2px 0 var(--p2))}
.nav{display:flex;gap:6px}
.nav a{font-family:var(--f-px);font-size:14px;padding:8px 12px;border:2px solid transparent;transition:.15s}
.nav a:hover{border-color:var(--white);background:var(--p2);box-shadow:3px 3px 0 var(--green)}
.socials{display:flex;align-items:center;gap:10px}
.px-icon{width:44px;height:44px;display:grid;place-items:center;background:var(--white);color:var(--ink);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--p2);font-size:20px;transition:transform .12s,box-shadow .12s,background .12s}
.px-icon:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--green);background:var(--acid)}
.px-icon:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--p2)}
.burger{display:none;width:44px;height:44px;border:3px solid var(--white);background:var(--p2);flex-direction:column;justify-content:center;align-items:center;gap:5px;position:relative;z-index:2}
.burger i{display:block;width:20px;height:3px;background:var(--white);transition:.2s}
.burger.on i:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.on i:nth-child(2){opacity:0}
.burger.on i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ================= BUTTONS ================= */
.btn-nyan{position:relative;display:inline-flex;align-items:center;gap:12px;font-family:var(--f-px);font-weight:700;font-size:clamp(16px,1.6vw,22px);letter-spacing:.03em;
  padding:18px 28px;background:var(--acid);color:var(--ink);border:4px solid var(--ink);box-shadow:0 0 0 3px var(--white),8px 8px 0 3px var(--p2);
  transition:transform .12s,box-shadow .12s;isolation:isolate}
.btn-nyan svg{font-size:1.3em}
.btn-nyan .ear{position:absolute;top:-22px;width:30px;height:22px;background:var(--white);clip-path:polygon(0 100%,35% 0,100% 100%);z-index:-1}
.btn-nyan .ear::after{content:"";position:absolute;inset:6px 7px 0;background:var(--acid);clip-path:polygon(0 100%,35% 10%,100% 100%)}
.btn-nyan .ear.l{left:14px}
.btn-nyan .ear.r{right:14px;transform:scaleX(-1)}
.btn-nyan:hover{transform:translate(-3px,-3px);box-shadow:0 0 0 3px var(--white),12px 12px 0 3px var(--p2)}
.btn-nyan:hover .ear{animation:earWiggle .35s steps(2) infinite}
.btn-nyan:active{transform:translate(5px,5px);box-shadow:0 0 0 3px var(--white),2px 2px 0 3px var(--p2)}
@keyframes earWiggle{50%{top:-26px}}
.btn-nyan.soon,.btn-px.soon,.map-btn.soon,.px-icon.soon{cursor:not-allowed}
.btn-nyan.soon::before{content:"SOON";position:absolute;right:-12px;top:-14px;background:var(--mag);color:var(--white);font-size:11px;padding:2px 6px;border:2px solid var(--ink);transform:rotate(8deg)}

.btn-px{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-px);font-weight:700;font-size:16px;padding:14px 20px;background:var(--p2);color:var(--white);border:3px solid var(--white);box-shadow:6px 6px 0 var(--ink),6px 6px 0 3px var(--green);transition:transform .12s,box-shadow .12s,background .12s}
.btn-px svg{font-size:20px}
.btn-px:hover{background:var(--p1);transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--ink),9px 9px 0 3px var(--green)}
.btn-px:active{transform:translate(4px,4px);box-shadow:2px 2px 0 var(--ink),2px 2px 0 3px var(--green)}

.ca-box{display:inline-flex;align-items:stretch;max-width:100%;border:3px solid var(--white);background:rgba(9,14,24,.85);font-family:var(--f-mono);font-size:14px;text-align:left;box-shadow:6px 6px 0 var(--p3);transition:transform .12s,box-shadow .12s}
.ca-box:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--p2)}
.ca-box:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--p3)}
.ca-lbl{font-family:var(--f-px);font-weight:700;background:var(--white);color:var(--ink);padding:12px 12px;display:grid;place-items:center}
.ca-val{padding:12px 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;color:var(--p1)}
.ca-ico{display:grid;place-items:center;padding:0 14px;background:var(--p2);font-size:18px}
.ca-ico .ic-ok{display:none}
.ca-box.ok .ca-ico{background:var(--green);color:var(--ink)}
.ca-box.ok .ic-ok{display:block}
.ca-box.ok .ic-copy{display:none}

/* ================= HERO ================= */
.hero{position:relative;height:100vh;height:100svh;min-height:620px;overflow:hidden;background:var(--ink)}
.hero-grid{position:absolute;inset:0;width:100%;height:100%}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 62% 70%,transparent 30%,rgba(9,14,24,.55) 70%,rgba(9,14,24,.95) 100%)}
.hero-word{position:absolute;inset:0;pointer-events:none;font-family:var(--f-disp);font-weight:900;line-height:.8;letter-spacing:-.04em}
.hero-word span{position:absolute;display:block;font-size:clamp(90px,19vw,340px);color:transparent;-webkit-text-stroke:2px rgba(236,241,238,.9);will-change:transform}
.hero-word span:first-child{z-index:2;top:12vh;left:calc(var(--pad) - .05em)}
.hero-word span:last-child{z-index:4;bottom:3vh;font-size:clamp(80px,15vw,280px);right:calc(var(--pad) - .05em);color:var(--white);-webkit-text-stroke:0;mix-blend-mode:difference}
.hero-cat{position:absolute;z-index:3;bottom:0;left:50%;width:min(125vh,86vw);transform:translateX(-38%);perspective:1200px}
.cat-tilt{transform-style:preserve-3d;will-change:transform;transition:transform .08s linear}
.cat-stack{position:relative;transform-origin:50% 100%}
.cat-stack img{width:100%;height:auto;user-select:none;-webkit-user-drag:none}
.cat-glow{position:absolute;inset:0;filter:blur(18px) brightness(0) drop-shadow(0 0 0 var(--green));opacity:.0}
.cat-base{position:relative;filter:drop-shadow(-10px 0 0 rgba(98,196,45,.35)) drop-shadow(10px 0 0 rgba(224,76,255,.28))}
.pupils{position:absolute;inset:0;-webkit-mask:url(../img/eye-mask.png) 0 0/100% 100% no-repeat;mask:url(../img/eye-mask.png) 0 0/100% 100% no-repeat}
.pupil{position:absolute;height:auto;will-change:transform;transition:scale .25s}
.hero.hungry .pupil{scale:1.9 1.05}
.hero-ui{position:absolute;z-index:5;left:var(--pad);bottom:clamp(28px,7vh,80px);display:flex;flex-direction:column;align-items:flex-start;gap:22px;max-width:min(520px,92vw)}
.ticker-chip{display:inline-flex;font-family:var(--f-px);font-weight:700;border:3px solid var(--white);background:var(--ink)}
.ticker-chip b{background:var(--p2);padding:6px 12px;font-size:22px}
.ticker-chip span{padding:6px 12px;font-size:13px;display:grid;place-items:center;color:var(--acid)}
.hero-ui .btn-nyan{margin-top:14px}
.scroll-hint{position:absolute;z-index:5;left:50%;top:92px;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--f-px);font-size:11px;color:var(--ink);mix-blend-mode:difference;color:var(--white)}
.scroll-hint i{width:14px;height:40px;border:2px solid currentColor;position:relative}
.scroll-hint i::after{content:"";position:absolute;left:2px;right:2px;top:3px;height:8px;background:currentColor;animation:sh 1.2s steps(4) infinite}
@keyframes sh{to{transform:translateY(20px)}}

/* ================= MARQUEE ================= */
.marquee{position:relative;z-index:6;background:var(--p2);border-block:4px solid var(--white);overflow:hidden;transform:rotate(-2deg) scale(1.04);margin:-24px 0 0;box-shadow:0 10px 0 var(--ink)}
.marquee-track{display:flex;align-items:center;gap:28px;width:max-content;padding:14px 0;will-change:transform}
.marquee span{font-family:var(--f-disp);font-weight:900;font-size:clamp(32px,5vw,64px);line-height:1;color:var(--white);text-shadow:4px 4px 0 var(--ink)}
.marquee span:nth-of-type(even){color:transparent;-webkit-text-stroke:2px var(--white);text-shadow:none}
.marquee img{width:clamp(40px,5vw,64px);height:auto}

/* ================= ZOOM ================= */
.zoom{position:relative;height:320vh;margin-top:-10px}
.zoom-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--ink)}
.zoom-img{position:absolute;inset:0;background:url(../img/nyan-main.webp) center/cover no-repeat;transform-origin:45% 52%;will-change:transform,filter}
.zoom-grid{position:absolute;inset:0;background:url(../img/bg-grid.webp) center/cover;mix-blend-mode:screen;opacity:0;pointer-events:none}
.zoom-lines{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.zl{grid-area:1/1;font-family:var(--f-disp);font-weight:900;font-size:clamp(44px,10vw,170px);line-height:.9;text-align:center;letter-spacing:-.03em;color:var(--white);
  text-shadow:6px 6px 0 var(--ink),-3px 0 var(--mag),3px 0 var(--green);opacity:0;transform:scale(.9);padding:0 var(--pad)}
.zl-green{color:var(--acid)}
.zoom-meter{position:absolute;left:var(--pad);right:var(--pad);bottom:28px;height:10px;border:2px solid var(--white);background:rgba(9,14,24,.6)}
.zoom-meter i{display:block;height:100%;width:0;background:var(--acid)}

/* ================= SECTIONS ================= */
.sec{position:relative;padding:clamp(90px,12vw,170px) var(--pad);overflow:hidden}
.sec-head{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:clamp(30px,5vw,60px)}
.node-tag{font-family:var(--f-px);font-weight:700;font-size:14px;background:var(--acid);color:var(--ink);padding:4px 10px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--p2)}
.sec-head h2,.rm-head h2{font-family:var(--f-disp);font-weight:900;font-size:clamp(52px,10vw,150px);line-height:.85;letter-spacing:-.04em;color:var(--white);text-shadow:6px 6px 0 var(--p2)}

/* lore */
.lore{background:linear-gradient(180deg,rgba(9,14,24,1) 0%,rgba(9,14,24,.82) 35%,rgba(9,14,24,.92) 100%),url(../img/bg-grid-dim.webp) center/cover}
.lore-line{font-size:clamp(18px,2.2vw,30px);line-height:1.35;max-width:900px;margin-bottom:clamp(40px,6vw,80px);font-family:var(--f-mono)}
.lore-line em{font-style:normal;background:var(--p2);padding:0 8px;font-family:var(--f-px);font-weight:700}
.lore-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,36px);perspective:1400px}
.lcard{position:relative;border:4px solid var(--white);background:var(--ink);box-shadow:10px 10px 0 var(--p2);transform-style:preserve-3d}
.lcard img{width:100%;aspect-ratio:4/3.4;object-fit:cover}
.lcard figcaption{font-family:var(--f-px);font-weight:700;font-size:15px;padding:12px 14px;display:flex;gap:10px;align-items:center;border-top:4px solid var(--white);background:var(--ink)}
.lcard figcaption b{background:var(--white);color:var(--ink);padding:0 6px}
.lcard-mid{transform:translateY(40px)}
.lcard-mid.in{transform:translateY(40px)}

/* wide divider */
.wide{position:relative;height:clamp(260px,42vw,640px);overflow:hidden;border-block:4px solid var(--white)}
.wide-img{position:absolute;inset:-18% 0;background:url(../img/nyan-wide.webp) center/cover;will-change:transform}
.wide-word{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-family:var(--f-px);font-weight:700;font-size:clamp(14px,1.6vw,20px);letter-spacing:.3em;color:var(--acid);text-shadow:2px 2px 0 var(--ink)}

/* buy */
.buy{background:linear-gradient(180deg,rgba(9,14,24,.94),rgba(18,10,36,.9)),url(../img/bg-grid.webp) center/cover}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,28px);perspective:1200px}
.step{position:relative;background:var(--white);color:var(--ink);border:4px solid var(--ink);box-shadow:0 0 0 3px var(--white),10px 10px 0 3px var(--p2);padding:26px 22px 24px;min-height:250px;display:flex;flex-direction:column;gap:10px;transform-style:preserve-3d}
.step-n{position:absolute;top:-4px;right:-4px;font-family:var(--f-px);font-weight:700;font-size:22px;background:var(--ink);color:var(--acid);padding:4px 10px}
.step-ico{width:64px;height:64px;display:grid;place-items:center;background:var(--p2);color:var(--white);font-size:34px;border:3px solid var(--ink);margin-bottom:auto}
.step-ico img{width:52px;height:52px}
.step h3{font-family:var(--f-disp);font-weight:800;font-size:clamp(18px,1.7vw,24px);line-height:1.05;margin-top:22px}
.step p{font-size:14px;color:#3a3452}
.step-go{background:var(--acid)}
.step-go .step-ico{background:var(--ink)}
.buy-actions{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin-top:clamp(50px,6vw,80px)}

/* chart */
.chart{background:radial-gradient(60% 60% at 20% 40%,rgba(140,33,246,.28),transparent 70%),linear-gradient(180deg,#120a24,#090e18)}
.chart-wrap{display:grid;grid-template-columns:minmax(220px,.42fr) 1fr;gap:clamp(24px,4vw,64px);align-items:center}
.coin-stage{position:relative;height:clamp(260px,30vw,420px);display:grid;place-items:center;perspective:900px}
.coin{position:relative;width:clamp(190px,22vw,320px);aspect-ratio:1;transform-style:preserve-3d;animation:spin 7s linear infinite}
.coin-face{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;backface-visibility:hidden;border:8px solid var(--white);
  background:radial-gradient(circle at 35% 30%,var(--p1),var(--p2) 45%,var(--deep) 100%);box-shadow:inset 0 0 0 6px var(--ink),inset 0 0 0 10px var(--p1)}
.coin-face.front{transform:translateZ(12px)}
.coin-face.front img{width:74%;filter:drop-shadow(4px 4px 0 var(--ink))}
.coin-face.back{transform:rotateY(180deg) translateZ(12px);background:radial-gradient(circle at 35% 30%,var(--acid),var(--green) 50%,#2c6a14 100%)}
.coin-face.back span{font-family:var(--f-disp);font-weight:900;font-size:clamp(34px,4vw,58px);color:var(--ink)}
.coin-edge{position:absolute;inset:0;border-radius:50%;transform-style:preserve-3d}
.coin-edge::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--white);transform:translateZ(0)}
.coin-shadow{position:absolute;bottom:0;width:60%;height:18px;background:rgba(140,33,246,.45);filter:blur(10px);border-radius:50%;animation:shadow 7s linear infinite}
@keyframes spin{from{transform:rotateY(0) rotateX(8deg)}to{transform:rotateY(360deg) rotateX(8deg)}}
@keyframes shadow{0%,50%,100%{width:60%}25%,75%{width:12%}}
.crt{position:relative;border:4px solid var(--white);background:#05070d;box-shadow:12px 12px 0 var(--p2);padding:0 0 22px}
.crt-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--white);color:var(--ink);font-family:var(--f-px);font-weight:700;font-size:13px}
.crt-bar i{width:12px;height:12px;background:var(--ink)}
.crt-bar i:nth-child(2){background:var(--p2)}
.crt-bar i:nth-child(3){background:var(--green)}
.crt-bar span{margin-left:auto}
.crt-screen{position:relative;height:clamp(380px,46vw,560px);margin:16px;border:3px solid var(--p2);overflow:hidden;background:var(--ink)}
.chart-frame,.chart-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.no-signal{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.no-signal img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;animation:jitter 2.4s steps(3) infinite}
.no-signal div{position:relative;display:flex;flex-direction:column;gap:8px;align-items:center;font-family:var(--f-px)}
.no-signal b{font-size:clamp(34px,5vw,64px);background:var(--ink);padding:4px 16px;border:3px solid var(--white);text-shadow:3px 0 var(--mag),-3px 0 var(--green);animation:blink 1.4s steps(2) infinite}
.no-signal span{font-size:13px;background:var(--acid);color:var(--ink);padding:3px 10px}
.no-signal.hide{display:none}
.btn-dex{margin:0 16px}
@keyframes jitter{33%{transform:translate(-6px,2px)}66%{transform:translate(4px,-3px)}}

/* roadmap */
.roadmap{position:relative;background:linear-gradient(180deg,rgba(9,14,24,.9),rgba(9,14,24,.97)),url(../img/bg-grid-green.webp) center/cover}
.rm-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:90px 0 40px}
.rm-head{padding:0 var(--pad);display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-bottom:clamp(20px,4vh,44px)}
.rm-track{position:relative;display:flex;gap:clamp(24px,3vw,48px);padding:0 var(--pad);width:max-content;will-change:transform}
.rm-line{position:absolute;left:var(--pad);right:var(--pad);top:50%;height:8px;background:repeating-linear-gradient(90deg,rgba(236,241,238,.25) 0 12px,transparent 12px 20px);z-index:0}
.rm-line i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,var(--acid) 0 12px,transparent 12px 20px)}
.rm-card{position:relative;z-index:1;width:clamp(280px,32vw,440px);background:var(--ink);border:4px solid var(--white);box-shadow:10px 10px 0 var(--p2);padding:16px;display:flex;flex-direction:column;gap:10px;transform-style:preserve-3d}
.rm-card:nth-child(odd){margin-top:48px}
.rm-ph{font-family:var(--f-px);font-weight:700;font-size:13px;color:var(--ink);background:var(--acid);align-self:flex-start;padding:3px 8px}
.rm-img{border:3px solid var(--p2);overflow:hidden}
.rm-img img{width:100%;aspect-ratio:16/9;object-fit:cover}
.rm-card h3{font-family:var(--f-disp);font-weight:900;font-size:clamp(26px,3vw,40px);line-height:1}
.rm-card p{font-size:14px;color:#c7bfe0}
.rm-last{border-color:var(--acid);box-shadow:10px 10px 0 var(--green)}
.rm-progress{margin:clamp(20px,4vh,40px) var(--pad) 0;height:10px;border:2px solid var(--white)}
.rm-progress i{display:block;height:100%;width:0;background:var(--p1)}

/* footer / map */
.footer{position:relative;padding:clamp(90px,12vw,160px) var(--pad) 0;background:linear-gradient(180deg,#090e18 0%,#120a24 55%,#2e1660 100%);overflow:hidden}
.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
.map-btn{position:relative;display:flex;align-items:center;gap:16px;padding:clamp(18px,2.4vw,30px) 22px;background:var(--ink);border:4px solid var(--white);box-shadow:8px 8px 0 var(--p2);transition:transform .12s,box-shadow .12s,background .12s;overflow:hidden}
.map-btn::before{content:"";position:absolute;inset:0;background:url(../img/bg-grid.webp) center/300%;opacity:0;transition:opacity .2s;mix-blend-mode:screen}
.map-btn:hover::before{opacity:.45}
.map-btn:hover{transform:translate(-4px,-4px);box-shadow:12px 12px 0 var(--green);background:var(--p3)}
.map-btn:active{transform:translate(4px,4px);box-shadow:2px 2px 0 var(--p2)}
.mb-n{position:relative;font-family:var(--f-px);font-weight:700;font-size:16px;background:var(--acid);color:var(--ink);padding:4px 8px}
.mb-t{position:relative;font-family:var(--f-disp);font-weight:900;font-size:clamp(20px,2.4vw,34px);line-height:1;flex:1}
.map-btn svg{position:relative;font-size:28px;transition:transform .15s}
.map-btn:hover svg{transform:translateX(6px)}
.map-hot{background:var(--acid);color:var(--ink)}
.map-hot .mb-n{background:var(--ink);color:var(--acid)}
.map-hot:hover{background:var(--white)}
.foot-socials{display:flex;flex-wrap:wrap;gap:22px;margin-top:clamp(40px,5vw,60px)}
.ca-foot{margin-top:34px}
.peek{position:relative;margin-top:clamp(40px,6vw,80px);display:flex;justify-content:center;height:clamp(220px,34vw,520px)}
.peek img{position:absolute;bottom:0;width:min(1100px,96vw);height:auto;transform:translateY(40%);transition:transform .1s linear}
.peek-word{position:absolute;top:0;font-family:var(--f-disp);font-weight:900;font-size:clamp(80px,20vw,300px);line-height:.8;color:transparent;-webkit-text-stroke:2px rgba(236,241,238,.35);letter-spacing:-.05em}
.foot-bottom{position:relative;z-index:2;margin:0 calc(var(--pad) * -1);padding:16px var(--pad);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--ink);border-top:4px solid var(--white);font-size:12px;color:#a79fc2;font-family:var(--f-mono)}

/* ================= REVEAL / TILT ================= */
.reveal{opacity:0;transform:translateY(46px);transition:opacity .7s cubic-bezier(.2,.8,.2,1) var(--d,0s),transform .8s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.reveal.in{opacity:1;transform:none}
.lcard-mid.reveal.in{transform:translateY(40px)}
.tilt{transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .7s var(--d,0s),box-shadow .2s}
.tilt.tilting{transition:transform .08s linear,box-shadow .2s}
.tilt .tilt-shine{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.22),transparent 45%);opacity:0;transition:opacity .3s;z-index:3}
.tilt.tilting .tilt-shine{opacity:1}

/* toast + cursor */
.toast{position:fixed;left:50%;bottom:30px;z-index:200;transform:translate(-50%,calc(100% + 60px));font-family:var(--f-px);font-weight:700;background:var(--acid);color:var(--ink);border:3px solid var(--ink);box-shadow:5px 5px 0 var(--p2);padding:10px 18px;transition:transform .25s cubic-bezier(.2,.9,.3,1.4)}
.toast.show{transform:translate(-50%,0)}
.cursor-px{position:fixed;left:0;top:0;width:14px;height:14px;background:var(--acid);z-index:150;pointer-events:none;mix-blend-mode:difference;transform:translate(-50%,-50%);display:none}
@media (hover:hover) and (pointer:fine){.cursor-px{display:block}}

/* ================= RESPONSIVE ================= */
@media (max-width:1000px){
  .steps{grid-template-columns:repeat(2,1fr)}
  .chart-wrap{grid-template-columns:1fr}
  .coin-stage{height:280px}
  .map-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  .nav{position:fixed;inset:0;z-index:1;background:#090e18;flex-direction:column;justify-content:center;align-items:center;gap:14px;opacity:0;pointer-events:none;transition:opacity .2s}
  .nav.open{opacity:1;pointer-events:auto}
  .nav a{font-size:28px;padding:10px 20px}
  .burger{display:flex}
  .brand span{font-size:17px}
  .px-icon{width:40px;height:40px;font-size:18px}
  .hero{min-height:680px}
  .hero-cat{width:128vw;left:50%;transform:translateX(-48%)}
  .hero-word span:first-child{top:13vh}
  .hero-word span:last-child{bottom:auto;top:calc(13vh + 17vw)}
  .hero-ui{left:var(--pad);right:var(--pad);bottom:auto;top:calc(12vh + 40vw);align-items:flex-start;gap:16px}
  .ca-box{width:100%}
  .scroll-hint{display:none}
  .lore-cards{grid-template-columns:1fr;max-width:520px}
  .lcard-mid,.lcard-mid.reveal.in{transform:none}
  .rm-card:nth-child(odd){margin-top:0}
  .rm-card{width:78vw}
}
@media (max-width:560px){
  .steps{grid-template-columns:1fr}
  .step{min-height:0}
  .map-grid{grid-template-columns:1fr}
  .btn-nyan{padding:16px 20px}
  .ca-val{font-size:12px}
  .hero-cat{width:150vw;transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  .coin,.coin-shadow,.no-signal img,.loader-tag{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
}
