/* Wemojis shared styles. Game look: sky scene, grass hills, chunky outlined buttons, HUD bar. */
:root{
  --f-display:"Lilita One","ZCOOL KuaiLe","Noto Sans SC",system-ui,sans-serif;
  --f-zh:"ZCOOL KuaiLe","Noto Sans SC",system-ui,sans-serif;
  --f-body:"Nunito","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ink:#14201A;
  --sky-1:#6FD3FF; --sky-2:#E3F8FF; --cloud:#FFFFFF; --ray:rgba(255,255,255,.6);
  --hill-3:#9DEBAA; --hill-2:#5FDC76; --hill-1:#2FC84F;
  --paper:#F2FBEF; --band:#DDF5E0; --card:#FFFFFF; --text:#14201A; --muted:#566A5E; --line:rgba(20,32,26,.16);
  --green:#2DD84C; --green-ink:#0B7A2A; --yellow:#FFD23F; --orange:#FF9F43; --blue:#4DB3FF; --red:#FF5A4D;
  --t-common:#8FA39A; --t-rare:#3DA5FF; --t-epic:#9B6BFF; --t-legend:#FFB800;
  --nav:#F7F7F7; --chat:#EDEDED; --in:#FFFFFF; --in-text:#14201A; --out:#95EC69; --out-text:#0E1A10; --sys:#6E7873; --bezel:#14171A;
  --rp:#E5533A; --rp-gold:#F8DFA0;
  --foot:#14201A; --foot-text:#E6F3EA;
  --focus:#14201A;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --sky-1:#0E2342; --sky-2:#2A5584; --cloud:#6C8DB5; --ray:rgba(255,255,255,.12);
    --hill-3:#1F7048; --hill-2:#188A47; --hill-1:#12A04A;
    --paper:#0F1914; --band:#13241B; --card:#182A20; --text:#EAF7EE; --muted:#9DB4A5; --line:rgba(255,255,255,.16);
    --green-ink:#52E36E; --t-common:#A7B8AF; --t-rare:#6AB8FF; --t-epic:#B493FF; --t-legend:#FFCB3D;
    --nav:#1B241F; --chat:#111111; --in:#2C2C2C; --in-text:#EAEAEA; --out:#3EB575; --out-text:#06130B; --sys:#8C938F; --bezel:#050706;
    --foot:#0A120E; --focus:#FFD23F; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --sky-1:#0E2342; --sky-2:#2A5584; --cloud:#6C8DB5; --ray:rgba(255,255,255,.12);
  --hill-3:#1F7048; --hill-2:#188A47; --hill-1:#12A04A;
  --paper:#0F1914; --band:#13241B; --card:#182A20; --text:#EAF7EE; --muted:#9DB4A5; --line:rgba(255,255,255,.16);
  --green-ink:#52E36E; --t-common:#A7B8AF; --t-rare:#6AB8FF; --t-epic:#B493FF; --t-legend:#FFCB3D;
  --nav:#1B241F; --chat:#111111; --in:#2C2C2C; --in-text:#EAEAEA; --out:#3EB575; --out-text:#06130B; --sys:#8C938F; --bezel:#050706;
  --foot:#0A120E; --focus:#FFD23F; color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0;background:var(--paper);color:var(--text);font:600 16px/1.55 var(--f-body);overflow-x:clip}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
a{color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}
html.emoji-cursor,html.emoji-cursor *{cursor:none!important}
html.emoji-cursor input{cursor:text!important}
.wrap{width:100%;max-width:1180px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
section[id]{scroll-margin-top:90px}
.fine{margin:0;font-size:13px;color:var(--muted);font-weight:600}

/* ---------- buttons, panels ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.62em 1.15em;border:3px solid var(--ink);border-radius:16px;background:var(--yellow);color:var(--ink);font:400 20px/1 var(--f-display);text-decoration:none;box-shadow:0 6px 0 var(--ink);transition:transform .12s,box-shadow .12s;overflow:hidden;white-space:nowrap;isolation:isolate}
.btn::before{content:"";z-index:-1;position:absolute;left:10px;right:10px;top:4px;height:32%;border-radius:999px;background:rgba(255,255,255,.42);pointer-events:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 0 var(--ink)}
.btn:active{transform:translateY(5px);box-shadow:0 1px 0 var(--ink)}
.btn.green{background:var(--green)}
.btn.white{background:#fff}
.btn.blue{background:var(--blue)}
.btn.red{background:var(--red);color:#fff}
.btn.big{font-size:clamp(22px,3vw,30px);padding:.6em 1.35em;border-radius:20px;box-shadow:0 8px 0 var(--ink)}
.btn.big:hover{box-shadow:0 10px 0 var(--ink)}
.btn.big:active{box-shadow:0 1px 0 var(--ink);transform:translateY(7px)}
.btn.sm{font-size:16px;padding:.5em .9em;border-radius:12px;border-width:2.5px;box-shadow:0 4px 0 var(--ink)}
.btn.sm:hover{box-shadow:0 6px 0 var(--ink)}
.btn small{font:800 .5em var(--f-body);letter-spacing:.02em}
.btn svg{width:.9em;height:.9em;flex:none}
.btn:disabled{filter:grayscale(.5) brightness(.95);cursor:not-allowed}
.panel{background:var(--card);border:3px solid var(--ink);border-radius:24px;box-shadow:0 8px 0 var(--ink);padding:clamp(18px,3vw,28px)}
.h2{margin:0 0 .35em;text-align:center;font:400 clamp(36px,5.4vw,62px)/1.05 var(--f-display);color:#fff;-webkit-text-stroke:.14em var(--ink);paint-order:stroke fill;text-shadow:0 .07em 0 var(--ink);text-wrap:balance}
.h2 .zh{display:block;font-family:var(--f-zh)}
.h2 .en{display:block;font-size:.55em;margin-top:.1em}
.sec{padding-block:clamp(56px,8vw,96px);background-color:var(--paper);background-image:radial-gradient(var(--line) 1.6px,transparent 1.6px);background-size:24px 24px}
.sec.alt{background-color:var(--band)}
.note{margin:0 auto 1.25rem;padding:.5em 1em;width:fit-content;max-width:100%;border:2.5px solid var(--ink);border-radius:14px;background:var(--yellow);color:var(--ink);font-size:13.5px;font-weight:800;text-align:center}
.note span{display:block}

/* ---------- HUD ---------- */
.hud{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;height:0}
.hud-in{position:relative;padding-top:12px}
.hud-bar{display:flex;align-items:center;gap:12px;background:var(--card);border:3px solid var(--ink);border-radius:999px;padding:6px 8px 6px 14px;box-shadow:0 5px 0 var(--ink)}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;font:400 27px/1 var(--f-display);color:var(--text)}
.brand img{width:36px;height:36px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.brand:hover img{transform:rotate(-14deg) scale(1.15)}
.tabs-top{display:flex;gap:4px;margin-left:auto}
.tab{display:flex;align-items:center;gap:8px;padding:5px 14px 5px 8px;border:3px solid transparent;border-radius:999px;text-decoration:none;font:800 15px/1.1 var(--f-body);color:var(--text)}
.tab img{width:30px;height:30px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.tab:hover img{transform:scale(1.22) rotate(-8deg)}
.tab small{display:block;font-size:11px;font-weight:800;color:var(--muted)}
.tab.on{background:var(--yellow);border-color:var(--ink);color:var(--ink)}
.tab.on small{color:#5B4700}
.hud-right{display:flex;align-items:center;gap:8px}
.coinchip{display:flex;align-items:center;gap:6px;padding:3px 12px 3px 4px;border:2.5px solid var(--ink);border-radius:999px;background:var(--band);font:400 17px/1 var(--f-display);font-variant-numeric:tabular-nums}
.coin{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:2.5px solid var(--ink);background:var(--yellow);color:var(--ink);font:400 13px/1 var(--f-display)}
.wallet{padding:.45em .85em;font-size:16px}
.wallet .av{width:26px;height:26px;border-radius:50%;background:var(--yellow);border:2px solid var(--ink);padding:1px}
.wallet.on{background:#fff}
.netbad{border:2.5px solid var(--ink);border-radius:999px;background:var(--red);color:#fff;font:400 14px/1 var(--f-display);padding:.5em .9em;box-shadow:0 3px 0 var(--ink)}
.wmenu{position:absolute;right:max(16px,env(safe-area-inset-right,0px));top:76px;width:min(310px,calc(100vw - 32px));padding:10px;display:grid;gap:6px;background:var(--card);border:3px solid var(--ink);border-radius:20px;box-shadow:0 7px 0 var(--ink)}
.wmenu .who{display:flex;align-items:center;gap:10px;padding:4px 6px 8px;border-bottom:2px dashed var(--line)}
.wmenu .who img{width:40px;height:40px;border-radius:50%;background:var(--yellow);border:2.5px solid var(--ink);padding:2px}
.wmenu .who b{display:block;font-weight:800;font-size:15px}
.wmenu .who span{font-size:12.5px;color:var(--muted)}
.wmenu button,.wmenu a{display:block;padding:9px 12px;border-radius:12px;text-align:left;text-decoration:none;font-weight:800;font-size:14.5px}
.wmenu button:hover,.wmenu a:hover{background:var(--band)}
.dock{display:none}

/* ---------- wallet modal ---------- */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px;background:rgba(10,18,14,.62)}
.mcard{position:relative;width:min(420px,100%);display:grid;gap:12px}
.mcard h3{margin:0;font:400 30px/1.1 var(--f-display)}
.mcard h3 span{display:block;font:800 15px var(--f-body);color:var(--muted)}
.mcard .x{position:absolute;right:14px;top:8px;font-size:32px;line-height:1;color:var(--muted)}
.wopt{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:3px solid var(--ink);border-radius:16px;background:var(--card);box-shadow:0 4px 0 var(--ink);text-align:left;font:800 17px var(--f-body);transition:transform .12s,box-shadow .12s}
.wopt:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--ink)}
.wopt:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}
.wopt img{width:36px;height:36px;border-radius:10px}
.wopt i{margin-left:auto;font-style:normal;color:var(--muted);font-size:20px}
.wopt.busy{opacity:.6;pointer-events:none}
#wm-list{display:grid;gap:10px}

/* ---------- hero scene ---------- */
.scene{position:relative;overflow:hidden;height:clamp(660px,92vh,900px);background:linear-gradient(var(--sky-1),var(--sky-2) 74%);border-bottom:4px solid var(--ink)}
.rays{position:absolute;left:50%;top:38%;width:1500px;height:1500px;margin:-750px 0 0 -750px;border-radius:50%;background:repeating-conic-gradient(from 0deg,var(--ray) 0 7deg,transparent 7deg 15deg);-webkit-mask-image:radial-gradient(circle,#000 6%,transparent 64%);mask-image:radial-gradient(circle,#000 6%,transparent 64%);animation:spin 90s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.cloud{position:absolute;left:-260px;width:160px;height:50px;border-radius:50px;background:var(--cloud);opacity:.95;animation:drift linear infinite}
.cloud::before,.cloud::after{content:"";position:absolute;border-radius:50%;background:inherit}
.cloud::before{width:70px;height:70px;left:22px;top:-34px}
.cloud::after{width:54px;height:54px;left:84px;top:-22px}
@keyframes drift{to{transform:translateX(calc(100vw + 560px))}}
.c1{top:15%;scale:1.25;animation-duration:80s;animation-delay:-30s}
.c2{top:30%;scale:.8;animation-duration:110s;animation-delay:-80s}
.c3{top:9%;scale:.9;animation-duration:95s;animation-delay:-10s}
.c4{top:46%;scale:1.1;animation-duration:130s;animation-delay:-55s}
.spark{position:absolute;width:26px;height:26px;background:var(--yellow);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:twinkle 2.6s ease-in-out infinite}
@keyframes twinkle{0%,100%{transform:scale(.4) rotate(0);opacity:.5}50%{transform:scale(1) rotate(45deg);opacity:1}}
.hill{position:absolute;left:0;width:100%;pointer-events:none}
.hill path{stroke:var(--ink);stroke-width:4;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.hb{bottom:0;height:290px;z-index:1}.hb path{fill:var(--hill-3)}
.hm{bottom:0;height:200px;z-index:1}.hm path{fill:var(--hill-2)}
.hf{bottom:0;height:92px;z-index:3}.hf path{fill:var(--hill-1)}
.pile{position:absolute;inset:0;z-index:2;--pe:74px;--floor:66px;touch-action:pan-y}
.pe{position:absolute;left:0;top:0;width:var(--pe);height:var(--pe);will-change:transform;user-select:none;-webkit-user-drag:none;pointer-events:none}
.pe.st{top:auto}
.hero-center{position:absolute;left:0;right:0;top:0;z-index:4;display:flex;flex-direction:column;align-items:center;padding:clamp(84px,10vh,112px) 16px 0;text-align:center;pointer-events:none}
.hero-center .logo{width:min(500px,80vw,46vh);height:auto;filter:drop-shadow(0 10px 0 rgba(20,32,26,.25));animation:bob 4.2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}
.ribbon{margin-top:12px;padding:8px 26px 9px;background:var(--yellow);border:3px solid var(--ink);border-radius:14px;box-shadow:0 5px 0 var(--ink);color:var(--ink);font:400 clamp(21px,2.7vw,32px)/1.1 var(--f-zh);transform:rotate(-1.5deg)}
.ribbon em{display:block;font:800 .5em var(--f-body);font-style:normal;letter-spacing:.03em}
.start-row{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:20px;pointer-events:auto}
.floaty{position:absolute;z-index:3;width:clamp(54px,7.5vw,100px);height:auto;--r:8deg;animation:floaty 3.6s ease-in-out infinite;filter:drop-shadow(0 6px 0 rgba(20,32,26,.2));cursor:pointer}
.floaty.wig{animation:wig .6s ease-in-out}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(var(--r))}50%{transform:translateY(-16px) rotate(calc(var(--r) * -1))}}
@keyframes wig{0%,100%{transform:rotate(0)}20%{transform:rotate(-18deg) scale(1.15)}45%{transform:rotate(14deg) scale(1.15)}70%{transform:rotate(-8deg)}}
.f1{left:6%;top:30%;animation-delay:-.4s}.f2{left:17%;top:56%;--r:-10deg;animation-delay:-1.2s}
.f3{right:6%;top:28%;--r:-8deg;animation-delay:-.8s}.f4{right:16%;top:54%;animation-delay:-2s}
.f5{left:24%;top:16%;--r:12deg;animation-delay:-1.6s;width:clamp(44px,5.5vw,76px)}.f6{right:25%;top:15%;--r:-12deg;animation-delay:-2.4s;width:clamp(44px,5.5vw,76px)}
.hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:5;margin:0;padding:.25em 1em;border:2.5px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-size:13px;font-weight:800;white-space:nowrap;pointer-events:none}

/* ---------- quest map ---------- */
.quest{list-style:none;margin:7.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.node{position:relative;display:grid;justify-items:center;gap:4px;text-align:center}
.node:not(:last-child)::after{content:"";position:absolute;top:46px;left:calc(50% + 62px);width:calc(100% - 112px);border-top:6px dotted var(--ink);opacity:.45}
.orb{position:relative;width:92px;height:92px;border-radius:50%;background:var(--c);border:4px solid var(--ink);box-shadow:0 7px 0 var(--ink);display:grid;place-items:center;font:400 46px/1 var(--f-zh);color:var(--ink);transition:transform .15s,box-shadow .15s}
.orb::before{content:"";position:absolute;left:16%;top:10%;width:42%;height:26%;border-radius:50%;background:rgba(255,255,255,.5);transform:rotate(-24deg)}
.orb:hover{transform:translateY(-4px) scale(1.05)}
.orb:active{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}
.orb img{position:absolute;right:-14px;top:-16px;width:42px;height:42px;animation:floaty 3.2s ease-in-out infinite}
.node h3{margin:12px 0 0;font:400 24px/1.1 var(--f-display)}
.node p{margin:0;color:var(--muted);font-weight:800;font-size:14px}
.say{position:absolute;left:50%;bottom:calc(100% + 12px);width:min(210px,calc(50vw - 24px));padding:9px 12px;border:3px solid var(--ink);border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 4px 0 var(--ink);font-size:13.5px;font-weight:700;line-height:1.35;opacity:0;transform:translateX(-50%) scale(.8);transform-origin:bottom center;pointer-events:none;transition:opacity .18s,transform .18s;z-index:5}
.say span{display:block}
.say::after{content:"";position:absolute;left:50%;bottom:-9px;width:13px;height:13px;background:#fff;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0}
.node:hover .say,.node.open .say{opacity:1;transform:translateX(-50%) scale(1)}
@media (min-width:901px){.say{opacity:1;transform:translateX(-50%) scale(1)}.node:hover .say{transform:translateX(-50%) scale(1.05) rotate(-1.5deg)}}

/* ---------- perks + phone ---------- */
.chat-in{display:grid;grid-template-columns:minmax(0,420px) minmax(0,400px);justify-content:center;gap:clamp(28px,6vw,90px);align-items:center}
.perks{display:grid;gap:18px}
.perk{display:flex;align-items:center;gap:16px;padding:14px 20px 14px 14px;background:var(--card);border:3px solid var(--ink);border-radius:24px;box-shadow:0 7px 0 var(--ink);transition:transform .15s}
.perk:hover{transform:translateY(-3px) rotate(-.6deg)}
.perk img{width:72px;height:72px;flex:none;animation:floaty 3.4s ease-in-out infinite}
.perk b{display:block;font:400 clamp(24px,3vw,30px)/1.1 var(--f-display)}
.perk span{color:var(--muted);font-weight:800}
.phone-col{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:14px;min-width:0}
.link-btn{font-size:14px;font-weight:800;color:var(--muted);text-decoration:underline;text-underline-offset:3px}

.phone{width:min(340px,100%);background:var(--bezel);border:4px solid var(--ink);border-radius:48px;padding:10px;box-shadow:0 10px 0 var(--ink)}
.scr{position:relative;height:650px;border-radius:36px;overflow:hidden;background:var(--chat);display:flex;flex-direction:column;color:var(--text);font-weight:500}
.notch{position:absolute;top:9px;left:50%;width:86px;height:24px;border-radius:14px;background:#000;transform:translateX(-50%);z-index:6}
.sb{display:flex;justify-content:space-between;align-items:center;height:38px;padding:8px 24px 0;background:var(--nav);color:var(--in-text);font:800 13px var(--f-body)}
.sb svg{display:inline-block;vertical-align:middle}
.wnav{display:grid;grid-template-columns:64px 1fr 64px;align-items:center;padding:6px 12px 8px;background:var(--nav);color:var(--in-text);border-bottom:1px solid var(--line)}
.wnav .back{display:flex;align-items:center;gap:2px;font-size:14px}
.wnav .tt{text-align:center;line-height:1.25;min-width:0}
.wnav .tt b{display:block;font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wnav .tt small{color:var(--sys);font-size:11px}
.wnav .dots{justify-self:end;letter-spacing:2px;font-weight:800}
.chat{flex:1;min-height:0;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain;scrollbar-width:none}
.chat::-webkit-scrollbar{display:none}
.msg{display:flex;gap:8px;align-items:flex-start;animation:pop .22s ease-out both}
.msg.still{animation:none}
.msg.me{flex-direction:row-reverse}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
.av{width:36px;height:36px;flex:none;border-radius:6px;background:var(--green);display:grid;place-items:center;overflow:hidden}
.av img{width:30px;height:30px}
.av.you{background:var(--yellow)}
.bub{position:relative;max-width:76%;padding:9px 12px;border-radius:6px;background:var(--in);color:var(--in-text);font-size:14px;line-height:1.45;font-weight:600;overflow-wrap:anywhere}
.bub::before{content:"";position:absolute;top:13px;width:9px;height:9px;background:inherit;transform:rotate(45deg);border-radius:2px}
.them .bub::before{left:-4px}
.me .bub{background:var(--out);color:var(--out-text)}
.me .bub::before{right:-4px}
.bub .zh,.bub .en{display:block}
.bub .en{margin-top:2px;font-size:12.5px;color:color-mix(in srgb,currentColor 68%,transparent)}
.bub img.s{display:inline-block;width:20px;height:20px;vertical-align:-5px;margin:0 1px}
.stk{width:86px;height:86px}
.sys,.time{align-self:center;text-align:center;font-size:12px;color:var(--sys);animation:pop .22s ease-out both}
.sys{padding:2px 8px}
.typing .bub{display:flex;gap:4px;padding:13px 14px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--sys);animation:dot 1s infinite ease-in-out}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.rp{width:216px;border-radius:6px;overflow:hidden;background:var(--rp);color:#fff;text-align:left;box-shadow:0 2px 0 rgba(0,0,0,.12)}
.rp-top{display:flex;gap:10px;align-items:center;padding:12px}
.rp-coin{flex:none;width:38px;height:38px;border-radius:50%;background:var(--rp-gold);color:var(--rp);display:grid;place-items:center;font:400 22px/1 var(--f-zh)}
.rp-top b{display:block;font-weight:700;font-size:14px;line-height:1.3}
.rp-top small{display:block;font-size:12px;color:#FFE6DD}
.rp-foot{padding:4px 12px;font-size:11.5px;background:rgba(0,0,0,.16);color:#FFE6DD}
.rp.done{background:#E9A394;color:#4A170C}
.rp.done .rp-top small,.rp.done .rp-foot{color:#6B2A1B}
.rpo{position:absolute;inset:0;z-index:20;background:var(--rp);color:var(--rp-gold);display:flex;flex-direction:column;align-items:center;padding:64px 24px 28px;text-align:center}
.rpo .from{font-size:14px;margin:12px 0 2px}
.rpo .wish{font:400 24px/1.3 var(--f-zh);color:#fff;margin:0}
.rpo .wish-en{font-size:13px;margin:0 0 22px}
.rpcoin{width:92px;height:92px;border-radius:50%;background:var(--rp-gold);color:var(--rp);display:grid;place-items:center;font:400 52px/1 var(--f-zh);border:4px solid #fff3cf}
.rpcoin.spin{animation:flip 1s ease-in-out}
@keyframes flip{from{transform:rotateY(0)}to{transform:rotateY(1080deg)}}
.rpo .got{opacity:0;transform:translateY(10px);transition:opacity .4s,transform .4s;margin-top:22px}
.rpo.shown .got{opacity:1;transform:none}
.amt{font:400 48px/1 var(--f-display);color:#fff;font-variant-numeric:tabular-nums}
.amt small{font-size:.42em;margin-left:6px;color:var(--rp-gold)}
.rpo .demo{font-size:12px;margin:8px 0 0}
.rpo .btn{margin-top:auto}
.rpo .x{position:absolute;left:14px;top:46px;font-size:26px;line-height:1;color:var(--rp-gold)}
.chips{display:flex;gap:8px;padding:8px 10px;overflow-x:auto;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:var(--in);color:var(--in-text);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;white-space:nowrap}
.stkp{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 10px;max-height:0;overflow:hidden;background:var(--nav);transition:max-height .2s,padding .2s}
.stkp.open{max-height:170px;padding:10px}
.stkp button{display:grid;place-items:center;padding:6px;border-radius:8px}
.stkp button:hover{background:var(--line)}
.stkp img{width:52px;height:52px}
.bar{display:flex;align-items:center;gap:8px;padding:8px 10px 14px;background:var(--nav);border-top:1px solid var(--line)}
.bar svg{width:26px;height:26px;flex:none;fill:none;stroke:var(--in-text);stroke-width:1.6;stroke-linecap:round}
.bar input{flex:1;min-width:0;height:36px;border-radius:6px;border:0;background:var(--in);color:var(--in-text);padding:0 10px;font:600 14px var(--f-body)}
.bar input::placeholder{color:var(--sys)}
.bar .smile img{width:26px;height:26px}
.bar .send{background:var(--green);color:#0D1A10;font-size:13px;font-weight:800;border-radius:6px;padding:7px 10px}

/* ---------- tiers ---------- */
.tiers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:2.2rem}
.tcard{position:relative;display:grid;justify-items:center;gap:2px;padding:44px 12px 18px;border:3px solid var(--ink);border-radius:24px;background:color-mix(in srgb,var(--tier) 34%,#fff);box-shadow:0 8px 0 var(--ink);color:var(--ink);overflow:hidden;transition:transform .2s}
.tcard:hover{transform:translateY(-5px) rotate(-1deg)}
.tcard .rib{position:absolute;left:0;right:0;top:0;padding:5px 0;background:var(--tier);border-bottom:3px solid var(--ink);font:400 17px/1 var(--f-display);letter-spacing:.04em}
.tcard img{width:104px;height:104px;animation:floaty 3.4s ease-in-out infinite}
.tcard b{font:400 44px/1 var(--f-display)}
.tcard span{font-weight:800;font-size:14px}
.tcard[data-t="legend"]::after,.tcard[data-t="epic"]::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.6) 50%,transparent 62%);transform:translateX(-130%);animation:shine 3.6s ease-in-out infinite;pointer-events:none}
@keyframes shine{0%,55%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
.more{display:flex;justify-content:center;margin-top:2.4rem}

/* ---------- cta band ---------- */
.cta{position:relative;overflow:hidden;background:var(--green);border-top:4px solid var(--ink);padding-block:clamp(56px,8vw,88px);text-align:center}
.cta .rays{top:50%;opacity:.7}
.cta .floaty{z-index:1}
.cta .wrap{position:relative;z-index:2;display:grid;justify-items:center;gap:22px}
.cta .h2{margin:0}

/* ---------- sub-page head ---------- */
.pagehead{position:relative;overflow:hidden;padding:clamp(110px,16vw,150px) 0 clamp(44px,7vw,70px);background:linear-gradient(var(--sky-1),var(--sky-2));border-bottom:4px solid var(--ink);text-align:center}
.pagehead .cloud{animation-duration:90s}
.pagehead .wrap{position:relative;z-index:2}
.pagehead .h2{margin:0}
.pagehead .tag{display:inline-block;margin-top:14px;padding:.3em 1em;border:3px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-weight:800;font-size:14.5px;box-shadow:0 4px 0 var(--ink)}

/* ---------- collection ---------- */
.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 1.6rem}
.fchip{padding:.4em 1em;border:3px solid var(--ink);border-radius:999px;background:var(--card);color:var(--text);font:800 15px var(--f-body);box-shadow:0 4px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.fchip:hover{transform:translateY(-2px)}
.fchip em{font-style:normal;color:var(--muted);margin-left:3px;font-variant-numeric:tabular-nums}
.fchip[aria-pressed="true"]{background:var(--yellow);color:var(--ink);transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}
.fchip[aria-pressed="true"] em{color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}
.card{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;padding:34px 8px 12px;border:3px solid var(--ink);border-radius:20px;background:color-mix(in srgb,var(--tier) 22%,var(--card));box-shadow:0 5px 0 var(--ink);text-align:center;overflow:hidden;transform:perspective(700px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .15s ease-out,box-shadow .15s}
.card:hover{box-shadow:0 8px 0 var(--ink)}
.card::before{content:attr(data-tn);position:absolute;left:0;right:0;top:0;padding:3px 0;background:var(--tier);border-bottom:3px solid var(--ink);color:#14201A;font:400 14px/1.2 var(--f-display);letter-spacing:.05em}
.card img{width:80px;height:80px;margin-bottom:6px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.card:hover img{transform:scale(1.2) rotate(-6deg)}
.card .no{position:absolute;right:8px;top:30px;font-size:11px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.card b{font:400 20px/1.2 var(--f-zh);color:var(--text)}
.card i{font-style:normal;font-size:12.5px;font-weight:800;color:var(--muted)}
.card .w{margin-top:6px;padding:.1em .7em;border:2px solid var(--ink);border-radius:999px;background:var(--card);color:var(--text);font:400 15px/1.3 var(--f-display)}
.card[data-t="legend"]::after,.card[data-t="epic"]::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%);transform:translateX(-120%);pointer-events:none}
.card[data-t="legend"]:hover::after,.card[data-t="epic"]:hover::after{transform:translateX(120%);transition:transform .7s ease}
.sheet{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:rgba(10,18,14,.62)}
.sheet-card{position:relative;width:min(360px,100%);text-align:center}
.sheet-card .x{position:absolute;right:14px;top:8px;font-size:32px;line-height:1;color:var(--muted)}
.sh-no{font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
#sh-img,#mr-img{width:152px;height:152px;margin:6px auto 4px}
#sh-img.pat,#mr-img.pat{animation:wig .6s ease-in-out}
.sheet-card h3{margin:0;font:400 32px/1.15 var(--f-zh)}
.sheet-card h3 span{display:block;font:800 16px var(--f-body);color:var(--muted)}
.sh-tier{display:inline-block;margin:10px 0 4px;padding:.15em .9em;border:3px solid var(--ink);border-radius:999px;background:var(--tier);color:var(--ink);font:400 17px/1.3 var(--f-display)}
.sh-pat{min-height:1.6em;margin:6px 0 12px;font-size:13px;font-weight:700;color:var(--sys)}
.sh-row{display:flex;gap:12px;justify-content:center}

/* ---------- mint machine ---------- */
.mint-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,470px);gap:clamp(32px,6vw,80px);align-items:center}
.machine{position:relative;width:min(380px,100%);margin-inline:auto}
.dome{position:relative;width:100%;aspect-ratio:1;border-radius:50%;border:5px solid var(--ink);background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.8),rgba(255,255,255,.28) 46%,rgba(255,255,255,.12));overflow:hidden;z-index:1;--pe:52px}
.dome::after{content:"";position:absolute;left:14%;top:10%;width:26%;height:14%;border-radius:50%;background:rgba(255,255,255,.7);transform:rotate(-30deg);pointer-events:none}
.dome .pe{border:2.5px solid var(--ink);border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0,var(--cap,#FFD23F) 46%);padding:5px;box-shadow:inset -3px -4px 0 rgba(0,0,0,.14)}
.dome.shake{animation:shake .5s ease-in-out}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-10px) rotate(-2deg)}40%{transform:translateX(9px) rotate(2deg)}60%{transform:translateX(-7px)}80%{transform:translateX(5px)}}
.mbody{position:relative;margin-top:-30px;padding:54px 22px 26px;display:grid;justify-items:center;gap:14px;background:var(--red);border:5px solid var(--ink);border-radius:28px 28px 38px 38px;box-shadow:0 10px 0 var(--ink);z-index:0}
.mbody .slot{width:96px;height:14px;border:4px solid var(--ink);border-radius:999px;background:#2a0f0c}
.mbody .flap{width:100%;max-width:230px;height:64px;border:4px solid var(--ink);border-radius:18px 18px 28px 28px;background:linear-gradient(#3a1511,#220b09)}
.mbody .btn{width:100%;max-width:230px}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.checks li{display:flex;align-items:center;gap:12px;padding:10px 12px;border:3px solid var(--ink);border-radius:16px;background:var(--card);font-weight:800}
.checks .ok{flex:none;display:grid;place-items:center;width:30px;height:30px;border:3px solid var(--ink);border-radius:50%;background:var(--card);font:400 16px/1 var(--f-display);color:var(--ink)}
.checks li.done .ok{background:var(--green)}
.checks li.bad .ok{background:var(--red);color:#fff}
.checks .t{min-width:0}
.checks .t small{display:block;font-weight:700;color:var(--muted);font-size:12.5px;overflow-wrap:anywhere}
.checks .btn{margin-left:auto}
.steps-panel{display:grid;gap:18px}

/* ---------- dividends ---------- */
.dash{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,40px);align-items:stretch}
.player{display:grid;gap:16px;align-content:center}
.player .top{display:flex;align-items:center;gap:16px}
.player .pav{flex:none;width:88px;height:88px;border:4px solid var(--ink);border-radius:50%;background:var(--yellow);padding:8px;box-shadow:0 5px 0 var(--ink)}
.player h3{margin:0;font:400 28px/1.1 var(--f-display)}
.player .addr{font:700 14px ui-monospace,Menlo,Consolas,monospace;color:var(--muted);overflow-wrap:anywhere}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stat{padding:10px 12px;border:3px solid var(--ink);border-radius:16px;background:var(--band)}
.stat small{display:block;font-size:12px;font-weight:800;color:var(--muted)}
.stat b{display:block;font:400 22px/1.2 var(--f-display);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.netpill{display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:.2em .8em;border:2.5px solid var(--ink);border-radius:999px;background:var(--band);font-weight:800;font-size:13.5px}
.netpill i{width:10px;height:10px;border-radius:50%;background:var(--muted)}
.netpill.ok i{background:var(--green)}
.netpill.bad i{background:var(--red)}
.claim{position:relative;overflow:hidden;display:grid;gap:12px;justify-items:center;align-content:center;text-align:center;background:var(--rp);border:3px solid var(--ink);border-radius:24px;box-shadow:0 8px 0 var(--ink);padding:clamp(22px,4vw,34px);color:#fff}
.claim .rpcoin{animation:floaty 3s ease-in-out infinite}
.claim h3{margin:0;font:400 30px/1.1 var(--f-zh)}
.claim h3 span{display:block;font:800 14px var(--f-body);color:var(--rp-gold)}
.claim .amt{font-size:clamp(40px,6vw,56px)}
.claim .fine{color:#FFE6DD}
.claim .btn{background:var(--rp-gold)}
.cbox{display:grid;gap:20px;min-width:0}
.calc-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,56px);align-items:start}
.crow{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center}
.crow img{width:52px;height:52px}
.crow .cl b{display:block;font-weight:800;line-height:1.3}
.crow .cl span{font-size:13px;color:var(--muted);font-weight:700}
.crow .cl b::before{content:"";display:inline-block;width:12px;height:12px;border:2px solid var(--ink);border-radius:50%;background:var(--tier);margin-right:7px}
.step{display:flex;align-items:center;gap:6px}
.step button{width:38px;height:38px;border:3px solid var(--ink);border-radius:12px;background:var(--yellow);color:var(--ink);font:400 22px/1 var(--f-display);box-shadow:0 3px 0 var(--ink)}
.step button:active{transform:translateY(3px);box-shadow:0 0 0 var(--ink)}
.step output{min-width:2.2ch;text-align:center;font:400 24px var(--f-display);font-variant-numeric:tabular-nums}
.stack{display:flex;flex-wrap:wrap;align-items:center;min-height:50px;padding:10px 12px 10px 20px;border:3px dashed var(--line);border-radius:16px;background:var(--band)}
.stack img{width:34px;height:34px;margin-left:-8px;animation:pop .2s ease-out both}
.stack span{margin-left:8px;font-weight:800;font-size:14px;color:var(--muted)}
.rank{display:flex;align-items:center;gap:12px;padding:12px 16px;border:3px solid var(--ink);border-radius:18px;background:var(--yellow);color:var(--ink);box-shadow:0 5px 0 var(--ink)}
.rank b{font:400 28px/1 var(--f-zh)}
.rank span{font-weight:800}
.res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pool label{display:flex;justify-content:space-between;gap:10px;font-size:14.5px;font-weight:800;margin-bottom:8px}
.pool output{font-variant-numeric:tabular-nums}
.pool input{width:100%;accent-color:var(--green-ink);height:28px}
.est{font:400 clamp(34px,5vw,46px)/1.1 var(--f-display);font-variant-numeric:tabular-nums}
.est small{font:800 14px var(--f-body);color:var(--muted);margin-left:6px}

/* ---------- faq ---------- */
.faq{max-width:820px;margin-inline:auto}
.qa{background:var(--card);border:3px solid var(--ink);border-radius:24px;box-shadow:0 8px 0 var(--ink);overflow:hidden}
.qa details+details{border-top:3px dashed var(--line)}
.qa summary{list-style:none;display:flex;justify-content:space-between;gap:16px;padding:16px 20px;font-weight:800}
.qa summary::-webkit-details-marker{display:none}
.qa summary span{display:block;font-weight:700;font-size:13.5px;color:var(--muted)}
.qa summary::after{content:"+";flex:none;display:grid;place-items:center;width:30px;height:30px;border:3px solid var(--ink);border-radius:50%;background:var(--yellow);color:var(--ink);font:400 20px/1 var(--f-display);transition:transform .2s}
.qa details[open] summary::after{transform:rotate(45deg)}
.ans{padding:0 20px 18px;color:var(--muted);font-weight:700}
.ans p{margin:0 0 .5em;max-width:60ch}

/* ---------- footer ---------- */
.foot{background:var(--foot);color:var(--foot-text);border-top:4px solid var(--ink);padding-block:44px}
.foot-in{display:grid;gap:22px;justify-items:center;text-align:center}
.foot img.fl{width:150px;height:auto}
.links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.links a{padding:.45em 1em;border:2.5px solid rgba(255,255,255,.4);border-radius:999px;text-decoration:none;font-weight:800;font-size:15px}
.links a:hover{background:rgba(255,255,255,.12)}
.ca{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;align-items:center;font-size:14px;font-weight:700}
.ca code{padding:.4em .7em;border-radius:10px;background:rgba(255,255,255,.1);font:700 14px ui-monospace,Menlo,Consolas,monospace;overflow-wrap:anywhere;user-select:all}
.ca button{padding:.4em .9em;border:2.5px solid rgba(255,255,255,.4);border-radius:10px;font-size:14px;font-weight:800}

/* ---------- chrome ---------- */
.toast{position:fixed;left:50%;bottom:calc(30px + env(safe-area-inset-bottom,0px));z-index:120;transform:translate(-50%,16px);max-width:calc(100vw - 32px);padding:.65em 1.2em;border:3px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);box-shadow:0 5px 0 var(--ink);font-size:14.5px;font-weight:800;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.on{opacity:1;transform:translate(-50%,0)}
#fx{position:fixed;inset:0;z-index:190;pointer-events:none;overflow:hidden}
#fx img{position:absolute;pointer-events:none}
.cur{position:fixed;left:0;top:0;width:40px;height:40px;z-index:200;pointer-events:none;opacity:0;transition:opacity .15s;will-change:transform}
.cur.show{opacity:1}
.cur.hide{opacity:0!important}

@media (max-width:900px){
  .chat-in,.calc-in,.mint-grid,.dash{grid-template-columns:minmax(0,1fr)}
  .tiers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quest{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:64px;margin-top:3.5rem}
  .node:not(:last-child)::after{display:none}
  .tabs-top{display:none}
  .hud-right{margin-left:auto}
  .dock{display:flex;position:fixed;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:60;gap:4px;padding:6px;background:var(--card);border:3px solid var(--ink);border-radius:24px;box-shadow:0 5px 0 var(--ink)}
  .dock a{flex:1;display:grid;justify-items:center;gap:1px;padding:4px 0;border-radius:16px;text-decoration:none;font:800 11px/1.15 var(--f-body);color:var(--text)}
  .dock a img{width:30px;height:30px}
  .dock a.on{background:var(--yellow);color:var(--ink)}
  body{padding-bottom:96px}
  .toast{bottom:calc(100px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:620px){
  .brand{font-size:24px}
  .coinchip{display:none}
  .scene{height:clamp(600px,92vh,760px)}
  .f1{left:2%;top:34%}.f2{left:5%;top:50%}.f3{right:2%;top:33%}.f4{right:5%;top:50%}.f5,.f6{display:none}
  .grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:12px}
  .card{padding-top:32px}
  .card img{width:64px;height:64px}
  .card b{font-size:17px}
  .stats,.res{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .stats .stat:last-child,.res .stat:last-child{grid-column:1 / -1}
  .hint{display:none}
}
@media (max-width:420px){
  .tiers{gap:12px}
  .tcard img{width:84px;height:84px}
  .tcard b{font-size:36px}
  .quest{row-gap:70px}
}
/* ---------- additions ---------- */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.btn .av{width:1.1em;height:1.1em;border-radius:50%;background:var(--yellow);border:2px solid var(--ink);padding:1px}
.btn.sm small{font-size:12px}
.wopt .ico{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--yellow);border:2.5px solid var(--ink);font-size:18px;line-height:1}
.wopt{text-decoration:none;color:var(--text)}
.demo-row{display:flex;justify-content:center;margin-top:30px}
.checks .t b .en{font-weight:700;color:var(--muted);font-size:.85em}
.checks li .btn{text-decoration:none}
.sheet-card.panel{padding-top:34px}
@media (max-width:420px){.wallet .en{display:none}.hud-bar{gap:8px;padding-left:10px}}

/* ---------- page transition: iris wipe in the destination page's emoji ---------- */
.wm-p-home{--wi:url(assets/emoji/e00.png)}
.wm-p-mint{--wi:url(assets/emoji/e54.png)}
.wm-p-collection{--wi:url(assets/emoji/e04.png)}
.wm-p-dividends{--wi:url(assets/emoji/e56.png)}
.wipe,html.wm-enter::before{position:fixed;inset:0;z-index:400;pointer-events:none;background:var(--wi,none) center/92px no-repeat,var(--green)}
.wipe{clip-path:circle(0 at 50% 50%)}
html.wm-enter::before{content:"";animation:wm-in .62s .12s cubic-bezier(.7,0,.25,1) both}
@keyframes wm-in{from{clip-path:circle(150vmax at var(--wx,50%) var(--wy,50%))}to{clip-path:circle(0 at var(--wx,50%) var(--wy,50%))}}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .rays,.cloud,.floaty,.hero-center .logo,.orb img,.perk img,.tcard img,.spark,.tcard::after{animation:none!important}
  *{transition-duration:.01ms!important}
  .wipe,html.wm-enter::before{display:none!important}
}
