/* COINFT — light, airy, mint: white paper, Poppins headlines, pill chrome, one big green stage. */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500;600&display=swap');
:root{
  --bg:#ffffff; --panel:#f4f5f7; --panel2:#eceef2; --line:#e7e9ee; --line2:#d8dce3;
  --text:#0e1013; --ink2:#2b3038; --mute:#677080; --mute2:#9aa2ae;
  --mint:#5CF2B0; --mint2:#3fd98e; --mint-soft:#dcfbec; --green:#0e7a50; --green-h:#0a6643; --deep:#06281b;
  --gold:#f2b53a; --gold-soft:#fff4d9; --red:#d43f3a; --blue:#3b82f6;
  --r-xl:32px; --r-lg:24px; --r-md:18px; --r-sm:12px; --r:24px; --r2:12px;
  --sh-1:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.07); --sh-2:0 18px 40px -18px rgba(16,24,40,.28); --sh-3:0 40px 80px -40px rgba(16,24,40,.3);
  --pad:clamp(16px,3.4vw,32px); --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.56,.64,1);
  --head:'Poppins','Inter',system-ui,sans-serif; --body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace; --display:var(--head);
  /* legacy aliases used by inline styles across the pages and the 3D HUD */
  --paper:var(--bg); --paper2:var(--panel); --card:#fff; --card2:var(--panel); --dark:#0e1013; --dark2:#15181d; --ink:var(--line2);
  --orange:var(--green); --orange2:var(--mint-soft); --yellow:var(--gold); --yellow2:var(--gold-soft); --green2:var(--mint-soft); --sky:var(--blue); --sky2:var(--panel); --lilac:var(--gold-soft); --blue2:#e8f0fe;
  --shadow:var(--sh-1); --shadow-sm:var(--sh-1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.55 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:var(--mint);color:var(--deep)}
h1,h2,h3,h4{font-family:var(--head);font-weight:600;margin:0;letter-spacing:-.03em;line-height:1.08}
h1{font-size:clamp(44px,5.5vw,78px);line-height:1.02;letter-spacing:-.04em} h2{font-size:clamp(32px,3.7vw,54px);line-height:1.06;letter-spacing:-.035em} h3{font-size:21px;line-height:1.15;letter-spacing:-.02em} h4{font-size:16px;letter-spacing:-.01em}
.orange,.cu{color:var(--green)} .green{color:var(--green)} .mute{color:var(--mute)} .ink2{color:var(--ink2)}
.mono{font-family:var(--mono);font-size:12px} .num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.mk{position:relative;white-space:nowrap;z-index:0} .mk::after{content:"";position:absolute;z-index:-1;left:-.06em;right:-.08em;bottom:.06em;height:.36em;border-radius:.1em;background:var(--mint);transform-origin:left;animation:mk .9s var(--ease) .5s both}
@keyframes mk{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.kicker{display:inline-flex;align-items:center;gap:9px;padding:8px 14px 8px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);font:500 13px/1 var(--body);color:var(--ink2);box-shadow:var(--sh-1)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;font:600 12px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--green)}
.eyebrow::before,.live{content:"";width:8px;height:8px;border-radius:50%;background:#16a34a;animation:ping 2s infinite;display:inline-block}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}70%{box-shadow:0 0 0 8px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
.sub{font-size:17px;color:var(--mute);margin:14px 0 0}
.tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 11px;font:600 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--panel);color:var(--ink2);border:1px solid var(--line)}
.tag.yellow{background:var(--gold-soft);color:#8a5b00;border-color:#f6dfa3} .tag.orange{background:var(--text);color:#fff;border-color:var(--text)} .tag.green{background:var(--mint-soft);color:var(--green);border-color:#bdf0d8} .tag.sky{background:var(--blue2);color:#1d4ed8;border-color:#c7dafc} .tag.flat{background:transparent}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border-radius:999px;border:1px solid transparent;background:var(--panel);color:var(--text);font:600 15px/1 var(--body);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:transform .15s var(--ease),background .15s,box-shadow .2s,border-color .15s,color .15s}
.btn:hover{transform:translateY(-1px)} .btn:active{transform:translateY(0)}
.btn.orange,.btn-primary{background:var(--green);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 8px 18px -8px rgba(14,122,80,.6)} .btn.orange:hover,.btn-primary:hover{background:var(--green-h)}
.btn.yellow{background:var(--mint);color:var(--deep)} .btn.yellow:hover{background:var(--mint2)}
.btn.green{background:var(--mint-soft);color:var(--green)}
.btn-white,.btn.ghost{background:#fff;border-color:var(--line2);box-shadow:var(--sh-1)} .btn-white:hover,.btn.ghost:hover{border-color:#bfc5ce}
.btn-ink{background:var(--text);color:#fff} .btn-ink:hover{background:#000}
.btn.sm,.btn-sm{height:40px;padding:0 16px;font-size:14px} .btn-lg{height:54px;padding:0 26px;font-size:16px} .btn-block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.card,.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);position:relative}
.panel{padding:24px}
.hide{display:none!important}
/* ---------------------------------------------------------------- nav: three floating pills */
.nav{position:fixed;top:14px;left:14px;right:14px;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;pointer-events:none}
.nav .nav-l,.nav .nav-r,.nav .tabs{pointer-events:auto;background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(1.8) blur(18px);backdrop-filter:saturate(1.8) blur(18px);border:1px solid rgba(14,16,19,.08);border-radius:999px;box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 14px 34px -16px rgba(16,24,40,.24)}
.nav .nav-l,.nav .nav-r{display:flex;align-items:center;gap:6px;height:62px;padding:0 7px;position:relative}
.nav .nav-l{justify-self:start} .nav .nav-r{justify-self:end}
.nav .brand{display:flex;align-items:center;gap:9px;height:44px;padding:0 14px 0 8px;border-radius:999px;font:600 16px/1 var(--head);letter-spacing:-.02em;color:var(--text)}
.nav .brand canvas{image-rendering:pixelated;width:30px;height:30px}
.nav .brand em{font-style:normal;color:var(--green)}
.tabs{position:relative;display:flex;gap:2px;padding:5px;height:62px;align-items:center}
.tabs a{position:relative;z-index:1;padding:9px 16px;border-radius:999px;font:500 14px/1 var(--body);color:var(--mute);transition:color .2s;white-space:nowrap} .tabs a.on,.tabs a:hover{color:var(--text)}
.tab-ind{position:absolute;z-index:0;top:9px;bottom:9px;left:0;width:0;border-radius:999px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.08),0 3px 8px rgba(16,24,40,.06);transition:transform .4s var(--ease),width .4s var(--ease),opacity .2s;opacity:0}
.nav .solpx{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px 0 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font:500 12px/1 var(--mono);color:var(--mute);white-space:nowrap} .nav .solpx::before{content:"";width:7px;height:7px;border-radius:50%;background:#16a34a}
.menu-btn{display:none;width:44px;height:44px;border-radius:999px;border:1px solid var(--line2);background:#fff;font-size:18px}
.nav .links{display:none}
@media(max-width:1000px){.nav{grid-template-columns:auto 1fr}.nav .tabs{display:none}.menu-btn{display:inline-flex;align-items:center;justify-content:center}.nav .solpx{display:none}.nav .links.open{display:flex;position:absolute;top:70px;right:0;min-width:240px;flex-direction:column;gap:2px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--sh-2);pointer-events:auto}.nav .links a{padding:13px 16px;border-radius:14px;font:500 15px/1 var(--body)}.nav .links a.on{background:var(--panel)}}
@media(max-width:480px){.nav{top:10px;left:10px;right:10px}.nav .brand span{display:none}.nav .wal{padding:0 12px;font-size:13px}}
body>.sec:first-of-type{padding-top:124px}
/* ---------------------------------------------------------------- hero */
.hero{position:relative;padding:clamp(124px,15vh,156px) 0 0;overflow:hidden;isolation:isolate}
.h-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.h-glow{position:absolute;border-radius:50%;filter:blur(70px)}
.h-glow.g1{width:820px;height:560px;left:50%;top:-260px;margin-left:-410px;background:radial-gradient(closest-side,rgba(92,242,176,.85),rgba(92,242,176,0));animation:g1 16s ease-in-out infinite alternate}
.h-glow.g2{width:620px;height:460px;left:62%;top:360px;background:radial-gradient(closest-side,rgba(242,181,58,.2),rgba(242,181,58,0));animation:g2 19s ease-in-out infinite alternate}
@keyframes g1{to{transform:translate(-40px,30px)}} @keyframes g2{to{transform:translate(60px,-40px)}}
.h-dots{position:absolute;inset:0;background-image:radial-gradient(rgba(14,16,19,.1) 1px,transparent 1.5px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse 72% 58% at 50% 32%,#000 25%,transparent 78%);mask-image:radial-gradient(ellipse 72% 58% at 50% 32%,#000 25%,transparent 78%)}
.h-float{position:absolute;inset:0}
.h-float .fl{position:absolute;width:76px;border-radius:16px;background:#fff;padding:6px;box-shadow:0 24px 40px -22px rgba(6,40,27,.5),0 0 0 1px rgba(0,0,0,.04);animation:fl 9s ease-in-out infinite;animation-delay:var(--d,0s);opacity:.95}
.h-float .fl img,.h-float .fl canvas{width:100%;aspect-ratio:1;border-radius:11px;image-rendering:pixelated;background:var(--panel)}
@keyframes fl{0%,100%{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-14px) rotate(var(--rot,0deg))}}
.h-copy{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.h-copy h1{margin:24px 0 20px;max-width:14ch}
.h-copy .lead{font-size:18px;color:var(--mute);max-width:620px;margin:0}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px;justify-content:center}
.h-show{margin-top:clamp(52px,7vh,76px);perspective:1700px}
.frame{position:relative;border-radius:30px;background:rgba(255,255,255,.92);padding:0 10px 10px;box-shadow:0 60px 110px -50px rgba(6,40,27,.5),0 0 0 1px rgba(14,16,19,.07)}
.fbar{display:flex;align-items:center;gap:12px;height:46px;padding:0 6px}
.fbar .dots{display:flex;gap:6px;padding-left:6px} .fbar .dots i{width:11px;height:11px;border-radius:50%;background:var(--line2)} .fbar .dots i:nth-child(1){background:#ff5f57} .fbar .dots i:nth-child(2){background:#febc2e} .fbar .dots i:nth-child(3){background:#28c840}
.furl{flex:1;max-width:360px;height:30px;margin:0 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:999px;background:var(--panel);font:500 12px/1 var(--mono);color:var(--mute)}
.chip-live{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.92);font:600 11px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text);box-shadow:var(--sh-1)} .chip-live i{width:7px;height:7px;border-radius:50%;background:#16a34a;animation:ping 2s infinite} .chip-live.sm{padding:6px 10px;font-size:10px}
.stage{position:relative;height:clamp(480px,46vw,620px);border-radius:26px;background:var(--mint);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);isolation:isolate}
.stage-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(6,40,27,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(6,40,27,.08) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 30%,transparent 100%);mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 30%,transparent 100%)}
.rings{position:absolute;left:50%;top:50%} .rings i{position:absolute;left:0;top:0;width:var(--s);height:var(--s);margin:calc(var(--s)/-2) 0 0 calc(var(--s)/-2);border-radius:50%;border:1.5px solid rgba(6,40,27,.16);animation:ring 7.5s ease-out infinite;animation-delay:var(--d,0s)}
@keyframes ring{0%{transform:scale(.82);opacity:0}30%{opacity:1}100%{transform:scale(1.12);opacity:0}}
.stage-top{position:absolute;z-index:3;top:16px;left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.stage-step{font:500 11.5px/1 var(--mono);color:var(--mute);background:#fff;padding:9px 12px;border-radius:999px;box-shadow:var(--sh-1);max-width:62%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.note{position:absolute;z-index:3;top:46%;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 20px 40px -20px rgba(6,40,27,.55);animation:notein .7s var(--spring) both}
.note.l{left:3%;transform:translateY(-50%) rotate(-3deg)} .note.r{right:3%;transform:translateY(-50%) rotate(3deg);animation-delay:.2s}
.note b{display:block;font:600 14px/1.2 var(--head)} .note small{display:block;font-size:12px;color:var(--mute)}
.note .ok{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:var(--mint-soft);color:var(--green);font-weight:700} .note .pc{height:34px;padding:0 10px;border-radius:12px;display:grid;place-items:center;background:var(--text);color:#fff;font:600 13px/1 var(--mono)}
@keyframes notein{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
.flow{position:absolute;z-index:2;left:50%;top:48%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:clamp(8px,1.2vw,16px);transition:opacity .35s} .flow.sw{opacity:0}
.fcoin{display:flex;flex-direction:column;align-items:center;gap:12px;width:clamp(120px,11vw,160px)}
.fcoin .ring{width:100%;aspect-ratio:1;border-radius:50%;padding:8px;background:linear-gradient(145deg,#ffffff,#d9f8ea 45%,#8fe9c3);box-shadow:0 30px 50px -24px rgba(6,60,38,.6),inset 0 1px 0 #fff,0 0 0 1px rgba(0,0,0,.05);animation:coinspin 6s ease-in-out infinite}
.fcoin .ring img,.fcoin .ring canvas{width:100%;height:100%;border-radius:50%;object-fit:cover;background:var(--panel);image-rendering:auto}
@keyframes coinspin{0%,100%{transform:rotateY(-14deg)}50%{transform:rotateY(14deg)}}
.coin-tag{font:600 14px/1 var(--mono);background:var(--text);color:#fff;padding:9px 13px;border-radius:999px;letter-spacing:.02em}
.beam{position:relative;width:clamp(36px,4.2vw,62px);height:40px;overflow:visible}
.beam::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:rgba(6,40,27,.25);border-radius:2px}
.beam i{position:absolute;top:50%;left:0;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(14,122,80,.18);animation:beam 1.8s linear infinite;animation-delay:var(--d,0s)}
@keyframes beam{from{left:0;opacity:0}15%{opacity:1}85%{opacity:1}to{left:100%;opacity:0}}
.fcards{position:relative;width:clamp(150px,14vw,200px);height:clamp(160px,15vw,214px)}
.nft-card{position:absolute;left:50%;top:50%;width:clamp(120px,11vw,156px);margin:calc(clamp(120px,11vw,156px) * -.62) 0 0 calc(clamp(120px,11vw,156px) * -.5);background:#fff;border-radius:22px;padding:9px 9px 10px;box-shadow:0 30px 50px -24px rgba(6,60,38,.55),0 0 0 1px rgba(0,0,0,.04);transform:rotate(var(--rot,0deg)) translate(var(--dx,0px),var(--dy,0px));transition:transform .7s var(--ease)}
.nft-card .nft-img{position:relative;aspect-ratio:1;border-radius:15px;overflow:hidden;background:var(--panel)} .nft-card img,.nft-card canvas{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.nft-card .nm{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font:600 11px/1 var(--mono);color:var(--ink2)} .nft-card .nm i{font-style:normal;color:var(--green);font-size:10px}
.fpay{width:clamp(130px,12vw,176px)}
.pay-card{padding:12px 14px;border-radius:18px;background:#fff;box-shadow:0 30px 50px -24px rgba(6,60,38,.55),0 0 0 1px rgba(0,0,0,.04)} .pay-card span{display:block;font:600 10px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mute)} .pay-card b{display:block;margin-top:6px;font:600 20px/1 var(--head);letter-spacing:-.03em;color:var(--green)} .pay-card small{display:block;margin-top:5px;font-size:11px;color:var(--mute)}
.stg-tip{position:absolute;z-index:3;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:7px 7px 7px 16px;border-radius:999px;background:var(--text);color:#fff;font-size:13px;white-space:nowrap;box-shadow:0 16px 30px -14px rgba(0,0,0,.5);max-width:calc(100% - 32px)} .stg-tip a{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:999px;background:var(--mint);color:var(--deep);font-weight:600;font-size:12px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px auto 0;max-width:1060px;padding:0}
.stats div{padding:18px 20px;border-radius:20px;background:#fff;border:1px solid var(--line)} .stats dt{font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)} .stats dd{margin:10px 0 0;font:600 clamp(24px,2.2vw,30px)/1 var(--head);letter-spacing:-.03em;font-variant-numeric:tabular-nums} .stats dd small{font:500 12px/1 var(--mono);color:var(--mute);margin-left:6px;letter-spacing:0}
@media(max-width:900px){.note{display:none}.stage{height:460px}.flow{flex-direction:column;gap:6px;top:50%}.beam{width:40px;height:34px;transform:rotate(90deg)}.fcards{height:150px}.stats{grid-template-columns:1fr 1fr}.h-float .fl{width:58px}}
@media(max-width:640px){.stage{height:640px}.flow{top:44%}.fpay{width:170px}.h-copy h1{font-size:clamp(40px,11.5vw,52px)}.cta .btn{flex:1 1 100%}.stg-tip{flex-direction:column;white-space:normal;text-align:center;border-radius:22px;padding:10px 12px 8px;gap:8px;font-size:12px;bottom:14px;width:calc(100% - 32px)}.h-float .fl:nth-child(n+3){display:none}.h-float .fl{width:54px;opacity:.85}.stats dt{font-size:10px}}
/* ---------------------------------------------------------------- sections */
.sec{padding:clamp(80px,9vw,128px) 0 0} .sec-head{margin-bottom:40px} .sec-head.center{text-align:center;max-width:760px;margin-left:auto;margin-right:auto} .sec-head.row{display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap;text-align:left}
.band{background:var(--panel)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.step{position:relative;display:flex;flex-direction:column;border-radius:30px;background:var(--panel);border:1px solid var(--line);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s}
.step:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.s-vis{position:relative;height:270px;margin:10px 10px 0;border-radius:22px;background:#fff;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(14,16,19,.05)}
.s-txt{padding:22px 26px 28px} .s-txt h3{margin:10px 0 8px} .s-txt p{margin:0;color:var(--mute);font-size:15px}
.s-n{display:inline-block;padding:6px 9px;border-radius:8px;background:#fff;border:1px solid var(--line);font:600 12px/1 var(--mono);color:var(--green)}
.step .n{width:46px;height:46px;border-radius:14px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font:600 13px/1 var(--mono);color:var(--green);flex:none}
.how-row{display:flex;gap:16px;align-items:flex-start} .how-row h3{margin-bottom:6px} .how-row p{margin:0;color:var(--mute);font-size:15px}
/* step visuals */
.s-wall{position:absolute;inset:24px 26px 64px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:10px} .s-wall canvas,.s-wall img{width:100%;height:100%;object-fit:cover;border-radius:12px;background:var(--panel);image-rendering:pixelated;box-shadow:var(--sh-1)}
.s-tag{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 7px;border-radius:999px;background:var(--text);color:#fff;font:500 12.5px/1 var(--body);white-space:nowrap} .s-tag i{width:20px;height:20px;border-radius:50%;background:var(--mint);color:var(--deep);display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:700}
.s-wallet{position:absolute;left:50%;top:46%;width:min(258px,84%);transform:translate(-50%,-50%);padding:12px;border-radius:20px;background:#fff;box-shadow:0 30px 56px -26px rgba(16,24,40,.5),0 0 0 1px rgba(14,16,19,.07);font-size:12px}
.s-wh{display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--line)} .s-wh i{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,#a78bfa,#6366f1)} .s-wh b{font-weight:600} .s-wh span{margin-left:auto;font:500 10px/1 var(--mono);color:var(--mute)}
.s-req{padding:12px 0 10px} .s-req span{display:block;font-size:11px;color:var(--mute)} .s-req b{display:block;font:600 13px/1.2 var(--head);margin:4px 0} .s-req small{font:500 10.5px/1 var(--mono);color:var(--green)}
.s-btns{display:flex;gap:6px} .s-btns span{flex:1;text-align:center;padding:9px 0;border-radius:10px;background:var(--panel);font-weight:600;font-size:12px} .s-btns .go{background:var(--green);color:#fff;position:relative;overflow:hidden} .s-btns .go::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.35);transform:translateX(-100%);animation:sheen 3.2s ease-in-out infinite}
@keyframes sheen{40%{transform:translateX(-100%)}70%{transform:translateX(100%)}100%{transform:translateX(100%)}}
.s-ok{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:7px 14px 7px 7px;border-radius:999px;background:#fff;box-shadow:var(--sh-2),0 0 0 1px rgba(0,0,0,.05);font-size:12px;white-space:nowrap} .s-ok i{width:22px;height:22px;border-radius:50%;background:var(--mint);color:var(--deep);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:12px} .s-ok b{display:block;font:600 12px/1.2 var(--head)} .s-ok small{color:var(--mute);font-size:11px}
.s-chart{position:absolute;left:0;top:30px;width:100%;height:132px}
.s-bubs{position:absolute;left:14px;right:14px;top:16px;display:flex;gap:6px;flex-wrap:wrap} .s-bubs span{padding:6px 10px;border-radius:999px;background:#fff;box-shadow:var(--sh-1),0 0 0 1px rgba(0,0,0,.04);font:600 11px/1 var(--mono)} .s-bubs .b{color:var(--green)} .s-bubs .s{color:var(--red)}
.s-split{position:absolute;left:14px;right:14px;bottom:14px;display:grid;grid-template-columns:1.7fr 1fr;gap:6px} .s-split div{padding:12px 14px;border-radius:14px} .s-split .you{background:var(--mint);color:var(--deep)} .s-split .us{background:var(--text);color:#fff} .s-split span{display:block;font:600 10px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;opacity:.75} .s-split b{display:block;margin-top:6px;font:600 17px/1 var(--head);letter-spacing:-.02em} .s-split b i{font:500 11px/1 var(--mono);font-style:normal;margin-left:4px;opacity:.75}
@media(max-width:900px){.steps{grid-template-columns:1fr}}
/* river of NFTs */
.river{position:relative;margin-top:clamp(96px,10vw,140px);display:grid;gap:16px;overflow:hidden;padding:10px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.river-row{display:flex;gap:16px;width:max-content;min-height:168px;animation:riv 110s linear infinite} .river-row.rev{animation-direction:reverse}
@keyframes riv{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.rv-card{width:150px;background:#fff;border-radius:20px;padding:8px 8px 10px;border:1px solid var(--line);box-shadow:var(--sh-1);flex:none} .rv-card img,.rv-card canvas{width:100%;aspect-ratio:1;border-radius:14px;object-fit:cover;image-rendering:pixelated;background:var(--panel)} .rv-card span{display:flex;justify-content:space-between;margin-top:8px;font:500 10.5px/1 var(--mono);color:var(--mute)} .rv-card span b{color:var(--green);font-weight:600}
/* coins grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.coin{display:flex;flex-direction:column;gap:12px;padding:9px 9px 14px;border-radius:22px;background:#fff;border:1px solid var(--line);transition:transform .3s var(--ease),box-shadow .3s,border-color .2s;position:relative}
.coin:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--line2)}
.coin .top{display:flex;gap:10px;align-items:center;padding:0 6px}
.coin .logo{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--panel);flex:none;border:1px solid var(--line)}
.coin .nm{font:600 15px/1.15 var(--head);letter-spacing:-.02em} .coin .tk{font:500 11px/1 var(--mono);color:var(--green);margin-top:4px}
.coin .desc{font-size:13px;color:var(--mute);min-height:38px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;padding:0 6px}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;order:-1} .strip canvas,.strip img{width:100%;aspect-ratio:1;border-radius:12px;image-rendering:pixelated;background:var(--panel)} .strip img:first-child{border-top-left-radius:16px} .strip img:last-child{border-top-right-radius:16px}
.coin .kv{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;border-top:1px solid var(--line);padding:10px 6px 0}
.kv .k{font:600 9.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)} .kv .v{font:600 13px/1.2 var(--head);margin-top:4px;letter-spacing:-.01em}
.coin .bot{display:flex;justify-content:space-between;align-items:center;font:500 10.5px/1 var(--mono);color:var(--mute);padding:0 6px}
.ribbon{position:absolute;top:14px;left:14px;z-index:1}
.bar{height:8px;border-radius:999px;background:var(--panel2);overflow:hidden} .bar i{display:block;height:100%;background:var(--green);border-radius:999px}
/* tape */
.tape{margin-top:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.tape-run{display:flex;width:max-content;animation:tape 70s linear infinite;min-height:46px;align-items:center} .tape-run span{display:inline-flex;align-items:center;gap:8px;padding:0 22px;font:500 12px/1 var(--mono);color:var(--mute);white-space:nowrap} .tape-run span b{color:var(--green);font-weight:600} .tape-run span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint2)}
@keyframes tape{to{transform:translateX(-50%)}}
/* split */
.split-panel{background:var(--panel);border-radius:var(--r-xl);padding:clamp(40px,5vw,72px) clamp(16px,3vw,48px)}
.split-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start;max-width:1060px;margin:0 auto}
.split-bar{display:flex;height:46px;border-radius:14px;overflow:hidden;font:600 12px/46px var(--mono);margin:10px 0 14px} .split-bar i{display:block;background:var(--mint);color:var(--deep);padding:0 14px;font-style:normal} .split-bar b{display:block;flex:1;background:var(--text);color:#fff;padding:0 14px;text-align:right}
.split-cards{display:grid;gap:10px;margin-top:18px} .split-cards>div{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:18px;background:#fff;border:1px solid var(--line)} .split-cards>div>div{flex:1;min-width:0} .split-cards i{width:36px;height:36px;border-radius:12px;background:var(--mint-soft);color:var(--green);display:grid;place-items:center;font-style:normal;font-weight:700;flex:none} .split-cards b{display:block;font:600 15px/1.2 var(--head);letter-spacing:-.01em} .split-cards p{margin:4px 0 0;font-size:14px;color:var(--mute)}
.txsim{background:var(--text);color:#d7e6de;border-radius:22px;padding:22px;font:500 12.5px/1.7 var(--mono);box-shadow:var(--sh-3)} .txsim .hd{display:flex;justify-content:space-between;align-items:center;color:var(--mute2);margin-bottom:10px;font-size:11px} .txsim .ok{color:var(--mint)} .txsim .row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid rgba(255,255,255,.08);padding:6px 0} .txsim .row span:last-child{color:#fff} .txsim .foot{display:flex;gap:18px;margin-top:12px;color:var(--mute2);font-size:11px;flex-wrap:wrap} .txsim .foot b{color:#fff;font-weight:600}
@media(max-width:900px){.split-grid{grid-template-columns:1fr}}
/* rules + faq */
.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:14px} .rule{padding:26px;border-radius:22px;background:var(--panel);transition:transform .3s var(--ease),background .3s} .rule:hover{background:var(--mint-soft);transform:translateY(-3px)} .rule i{display:inline-block;font:600 12px/1 var(--mono);color:var(--green);margin-bottom:14px;font-style:normal} .rule b{display:block;font:600 17px/1.2 var(--head);letter-spacing:-.02em} .rule p{margin:8px 0 0;font-size:14px;color:var(--mute)}
@media(max-width:900px){.rules{grid-template-columns:1fr 1fr}} @media(max-width:600px){.rules{grid-template-columns:1fr}}
.faq{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:1080px;margin:0 auto;align-items:start} @media(max-width:800px){.faq{grid-template-columns:1fr}}
.faq details{border-radius:18px;border:1px solid var(--line);background:#fff;transition:border-color .2s,box-shadow .2s;margin:0} .faq details[open]{border-color:var(--line2);box-shadow:var(--sh-2)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;font:600 16px/1.35 var(--head);cursor:pointer;list-style:none;letter-spacing:-.01em} .faq summary::-webkit-details-marker{display:none} .faq summary::after{content:"+";width:28px;height:28px;border-radius:50%;background:var(--panel);display:grid;place-items:center;font:500 18px/1 var(--body);color:var(--mute);flex:none} .faq details[open] summary::after{content:"–"}
.faq p{margin:0;padding:0 22px 20px;color:var(--mute);font-size:15px}
/* footer */
.foot{margin-top:clamp(80px,9vw,120px);border-top:1px solid var(--line)}
.foot .in{display:flex;flex-wrap:wrap;gap:22px 40px;align-items:center;justify-content:space-between;padding:36px 0 44px;font-size:13px;color:var(--mute)}
.foot .brand{font:600 18px/1 var(--head);letter-spacing:-.02em;color:var(--text)} .foot .brand em{font-style:normal;color:var(--green)}
.foot .in a{margin-right:18px;font-weight:500;color:var(--ink2)} .foot .in a:hover{color:var(--green)}
/* ---------------------------------------------------------------- forms + app bits (launch / link / token / dashboard) */
label.f{display:block;font-weight:600;font-size:13px;margin:16px 0 6px;color:var(--ink2)}
.inp{width:100%;border:1px solid var(--line2);border-radius:14px;background:#fff;color:var(--text);padding:12px 14px;outline:none;transition:border-color .15s,box-shadow .15s;font-size:15px}
.inp::placeholder{color:var(--mute2)} .inp:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(14,122,80,.12)} textarea.inp{min-height:96px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px} @media(max-width:700px){.row{grid-template-columns:1fr}}
.drop{border:1.5px dashed var(--line2);border-radius:18px;padding:26px;text-align:center;background:var(--panel);cursor:pointer;transition:border-color .15s,background .15s}
.drop:hover{border-color:var(--green);background:var(--mint-soft)} .drop img{width:96px;height:96px;object-fit:cover;margin:0 auto 10px;border-radius:18px}
.seg{display:inline-flex;padding:4px;border-radius:999px;background:var(--panel);flex-wrap:wrap;gap:2px}
.seg button{border:0;background:transparent;padding:9px 14px;border-radius:999px;font:500 13px/1 var(--body);color:var(--mute);transition:background .2s,color .2s} .seg button.on{background:#fff;color:var(--text);box-shadow:var(--sh-1)}
.stepper{display:flex;gap:6px;flex-wrap:wrap}
.stepper div{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;font:500 14px/1 var(--body);color:var(--mute);background:var(--panel);transition:background .3s,color .3s}
.stepper div b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:600 12px/1 var(--mono);background:#fff;color:var(--text)}
.stepper div.on{background:var(--text);color:#fff} .stepper div.on b{background:var(--mint);color:var(--deep)} .stepper div.done b{background:var(--mint-soft);color:var(--green)}
.pals{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
.pal{border:1px solid var(--line);border-radius:18px;background:#fff;padding:7px;text-align:center;position:relative;transition:transform .3s var(--ease),box-shadow .3s} .pal:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.pal canvas,.pal img{width:100%;aspect-ratio:1;image-rendering:pixelated;border-radius:12px;background:var(--panel)}
.pal .nm{font:500 11px/1 var(--mono);margin:8px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink2)} .pal .rar{position:absolute;top:12px;left:12px;font:600 9px/1 var(--mono);padding:4px 7px;border-radius:999px;background:var(--gold);color:#3a2600;text-transform:uppercase;letter-spacing:.05em}
.pal.minted{opacity:.55} .pal.minted .nm::after{content:" · minted"} .pal.mine{outline:2px solid var(--green);outline-offset:-1px}
.pal .buy{margin-top:7px;width:100%;height:34px;font-size:12px;padding:0 10px}
.stage-log{display:flex;flex-direction:column;gap:6px}
.st{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:16px;font-size:14px;background:var(--panel)}
.st .n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:600 11px/1 var(--mono);flex:none;background:#fff;color:var(--mute)}
.st.on{background:var(--mint-soft)} .st.on .n{background:var(--green);color:#fff} .st.done .n{background:var(--mint);color:var(--deep)} .st.err{background:#fde8e7;color:#7a1f1b}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.tile{border:1px solid var(--line);border-radius:20px;background:#fff;padding:16px 18px}
.tile .k{font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)} .tile .v{font:600 24px/1 var(--head);letter-spacing:-.03em;margin-top:9px;font-variant-numeric:tabular-nums} .tile .s{font-size:12px;color:var(--mute);margin-top:6px}
.tile.yellow{background:var(--gold-soft);border-color:#f6dfa3} .tile.green{background:var(--mint-soft);border-color:#bdf0d8} .tile.green .v{color:var(--green)} .tile.orange{background:var(--text);border-color:var(--text);color:#fff} .tile.orange .k,.tile.orange .s{color:rgba(255,255,255,.6)}
table{width:100%;border-collapse:collapse;font-size:14px} th{text-align:left;font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding:10px 8px;border-bottom:1px solid var(--line)} td{padding:11px 8px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink2)} tr:last-child td{border-bottom:0} td.num,th.num{text-align:right;font-family:var(--mono);font-size:13px}
.pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font:500 11.5px/1.4 var(--mono);background:var(--panel);color:var(--ink2);border:1px solid var(--line)} a.pill:hover{border-color:var(--green);color:var(--green)}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--text);color:#fff;padding:12px 18px;border-radius:999px;box-shadow:0 20px 50px -20px rgba(0,0,0,.6);font-size:14px;z-index:99;display:none;max-width:90vw;font-weight:500}
.toast.err{background:var(--red)}
.empty{padding:40px;text-align:center;color:var(--mute);border:1.5px dashed var(--line2);border-radius:22px;font-size:14px}
.feed{display:flex;flex-direction:column;gap:6px;font-size:14px} .feed .it{display:flex;gap:10px;padding:10px 12px;border-radius:14px;background:var(--panel);align-items:center} .feed .t{font:500 11px/1 var(--mono);color:var(--mute);flex:none;width:58px}
.two{display:grid;grid-template-columns:1.4fr 1fr;gap:24px} @media(max-width:900px){.two{grid-template-columns:1fr}}
.copy{cursor:pointer;border-bottom:1px dashed var(--mute2)} .copy:hover{color:var(--green)}
.chart{width:100%;height:220px;border-radius:18px;background:var(--panel);display:block}
.pick{display:flex;gap:12px;align-items:center;margin-top:12px;border-radius:20px;background:var(--panel);padding:12px 14px;min-height:62px;flex-wrap:wrap}
.pick img{width:48px;height:48px;border-radius:12px;image-rendering:pixelated;background:#fff}
.tabs-row{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;background:var(--panel)}
.tabs-row button{border:0;background:transparent;color:var(--mute);padding:10px 14px;border-radius:999px;font:500 14px/1 var(--body);cursor:pointer;white-space:nowrap} .tabs-row button.on{background:#fff;color:var(--text);box-shadow:var(--sh-1)}
.tabbody{padding:22px}
/* ---------------------------------------------------------------- THE FLOOR / THE ROOM (3D world HUD) — same paper, pills and cards as the rest */
.world{position:relative;width:100%;height:100%;min-height:560px;background:#f7fdfa;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none;color:var(--text)}
.world .w-gl{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;outline:none}
.world:fullscreen{width:100vw;height:100vh}
.w-top{position:absolute;top:14px;left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none;z-index:3}
.w-title{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 16px 0 14px;border-radius:999px;background:rgba(255,255,255,.82);backdrop-filter:saturate(1.8) blur(18px);-webkit-backdrop-filter:saturate(1.8) blur(18px);border:1px solid rgba(14,16,19,.08);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 14px 34px -16px rgba(16,24,40,.24);font:600 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--text)} .w-title .orange{color:var(--green)}
.w-live{width:8px;height:8px;border-radius:50%;background:#16a34a;animation:ping 2s infinite}
.w-count{font:600 10px/1 var(--mono);letter-spacing:.1em;color:var(--mute);text-transform:uppercase;background:var(--panel);padding:6px 9px;border-radius:999px}
.w-tools{display:flex;gap:8px;pointer-events:auto}
.w-btn,.w-back{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;white-space:nowrap;flex:none;border-radius:999px;border:1px solid rgba(14,16,19,.1);background:rgba(255,255,255,.82);backdrop-filter:saturate(1.8) blur(18px);-webkit-backdrop-filter:saturate(1.8) blur(18px);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 14px 34px -16px rgba(16,24,40,.24);color:var(--text);font:600 13px/1 var(--body);cursor:pointer;transition:transform .15s var(--ease),border-color .15s,background .15s}
.w-btn:hover,.w-back:hover{transform:translateY(-1px);border-color:#bfc5ce;background:#fff}
.w-feed{position:absolute;left:16px;bottom:16px;display:flex;flex-direction:column-reverse;gap:6px;max-width:min(440px,70vw);pointer-events:none;z-index:3}
.w-it{font-size:12.5px;line-height:1.35;color:var(--ink2);background:rgba(255,255,255,.94);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:14px;padding:8px 12px;animation:win .35s ease-out;box-shadow:var(--sh-1)}
.w-it.payout,.w-it.gold{border-left-color:var(--gold)} .w-it.fees{border-left-color:var(--blue)} .w-it.mint,.w-it.green{border-left-color:var(--green)} .w-it.orange,.w-it.launch,.w-it.live{border-left-color:var(--mint2)}
.w-it .w-t{font:500 10px/1 var(--mono);color:var(--mute);margin-right:8px}
@keyframes win{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.w-hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);font:500 12.5px/1 var(--body);color:#fff;background:var(--text);border-radius:999px;padding:11px 18px;white-space:nowrap;pointer-events:none;transition:opacity 1s;z-index:3;box-shadow:0 16px 30px -14px rgba(0,0,0,.5)}
.w-hint b{color:var(--mint)} .w-hint.fade{opacity:0}
.w-loading{position:absolute;inset:0;display:grid;place-items:center;font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);pointer-events:none;z-index:2}
.w-card{position:absolute;right:16px;top:70px;width:300px;max-width:calc(100vw - 32px);background:#fff;color:var(--text);border-radius:22px;border:1px solid var(--line);box-shadow:var(--sh-3);padding:14px;transform:translateX(24px);opacity:0;pointer-events:none;transition:transform .25s,opacity .25s;z-index:4}
.w-card.on{transform:none;opacity:1;pointer-events:auto}
.w-x{position:absolute;top:8px;right:10px;border:0;background:transparent;color:var(--mute);font-size:20px;cursor:pointer;line-height:1}
.w-ch{display:flex;gap:10px;align-items:center;padding-right:22px} .w-ch img{width:46px;height:46px;border-radius:50%;object-fit:cover;background:var(--panel)}
.w-nm{font:600 16px/1.1 var(--head);letter-spacing:-.02em} .w-tk{font:500 11px/1 var(--mono);color:var(--green);margin-top:4px}
.w-st{text-transform:uppercase;letter-spacing:.06em;font:600 9px/1 var(--mono);padding:4px 7px;border-radius:999px;background:var(--panel);color:var(--ink2)} .w-st.yellow,.w-st.orange{background:var(--mint-soft);color:var(--green)} .w-st.green{background:var(--mint);color:var(--deep)} .w-st.sky{background:var(--blue2);color:#1d4ed8}
.w-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0} .w-kv div{border-radius:12px;background:var(--panel);padding:8px 10px} .w-kv i{display:block;font:600 8.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-style:normal} .w-kv b{font:600 13px/1.3 var(--head)}
.w-th{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:12px} .w-th img{width:100%;aspect-ratio:1;border-radius:7px;image-rendering:pixelated;background:var(--panel);opacity:.6} .w-th img.m{opacity:1;outline:2px solid var(--green)}
.w-act{display:flex;gap:8px;flex-wrap:wrap} .w-foot{font-size:11px;color:var(--mute);margin-top:10px;line-height:1.4}
.world-room{height:68vh;min-height:520px;border-radius:26px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-3)}
.w-bar{position:absolute;top:66px;left:16px;display:flex;gap:8px;align-items:center;z-index:3;flex-wrap:wrap;max-width:calc(100vw - 32px)}
.w-bar .inp{background:rgba(255,255,255,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:rgba(14,16,19,.1);max-width:280px;height:44px;padding:0 16px;font-size:14px;border-radius:999px;box-shadow:0 14px 34px -16px rgba(16,24,40,.24)}
@media(max-width:860px){.w-card{top:auto;bottom:16px;right:16px;left:16px;width:auto}.w-feed{bottom:auto;top:66px;max-width:60vw}.w-feed .w-it:nth-child(n+4){display:none}.w-hint{display:none}.w-title{font-size:11px;white-space:nowrap;padding:0 12px}.w-count{display:none}.w-bar{top:66px;left:12px}.w-bar .inp{max-width:190px;font-size:13px}.w-feed{top:auto;bottom:14px;left:12px;right:12px;max-width:none}.w-feed .w-it:nth-child(n+3){display:none}.w-it{font-size:11.5px}.w-card{bottom:12px;left:12px;right:12px;padding:12px}.world-room{height:60vh;min-height:420px}}
.world-page{position:fixed;inset:0;height:100vh;height:100dvh;min-height:0}
.world-page .w-top{left:112px}
.w-back{position:fixed;top:14px;left:16px;z-index:5}
.world-page ~ .w-bar{position:fixed;top:68px;left:16px}
@media(max-width:860px){.world-page .w-top{left:12px;right:12px;top:66px}.world-page .w-title{height:40px}.world-page .w-btn{height:40px;padding:0 12px;font-size:12px}.w-back{left:12px;padding:0 14px;font-size:13px}.world-page ~ .w-bar{top:118px;left:12px}.world-page .w-feed{bottom:14px}}
/* ---------------------------------------------------------------- the opening: a tilted wall of NFTs in depth, one coin comes forward, flips into its NFT, a burst, an iris into the page */
#intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;background:radial-gradient(1000px 700px at 50% 50%,#eafdf4 0%,#f7fdfa 45%,#fbfdfc 75%);perspective:1400px;cursor:default}
html.no-intro #intro{display:none}
body.intro-on{overflow:hidden}
.i3-plane{position:absolute;left:50%;top:50%;display:grid;gap:18px;width:max-content;opacity:0;transform:translate(-50%,-50%) rotateX(26deg) rotateZ(-11deg) scale(1.2);transition:opacity 1.1s var(--ease),transform 3.4s cubic-bezier(.16,.7,.2,1)}
#intro.i3-go .i3-plane{opacity:1;transform:translate(-50%,-50%) rotateX(26deg) rotateZ(-11deg) scale(1)}
#intro.i3-focus .i3-plane{opacity:.3}
#intro.i3-leave .i3-plane{opacity:0;transform:translate(-50%,-50%) rotateX(26deg) rotateZ(-11deg) scale(1);transition:opacity .8s var(--ease) .1s,transform 1s var(--ease)}
.i3-row{display:flex;gap:18px;width:max-content;animation:i3run 38s linear infinite;will-change:transform}
.i3-row:nth-child(2n){animation-direction:reverse;animation-duration:44s} .i3-row:nth-child(3n){animation-duration:52s} .i3-row:nth-child(odd) .i3-c{opacity:.86}
@keyframes i3run{from{transform:translateX(16.6667%)}to{transform:translateX(-16.6667%)}}
.i3-c{flex:none;width:150px;height:150px;padding:6px;border-radius:22px;background:#fff;box-shadow:0 22px 44px -26px rgba(6,40,27,.5),0 0 0 1px rgba(14,16,19,.05);transition:transform .9s cubic-bezier(.6,0,.3,1),opacity .7s var(--ease)}
.i3-c img,.i3-c canvas{display:block;width:100%;height:100%;border-radius:16px;object-fit:cover;image-rendering:pixelated;background:#e8fbf2}
#intro.i3-leave .i3-c{transform:translateY(calc(var(--ri,0) * 64px)) scale(.94)}
.i3-light{position:absolute;inset:-20%;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.55) 47%,rgba(220,251,236,.35) 52%,transparent 60%);background-size:260% 100%;background-position:140% 0;opacity:0}
#intro.i3-go .i3-light{animation:i3light 2.4s cubic-bezier(.3,.1,.2,1) .25s forwards}
@keyframes i3light{0%{opacity:0;background-position:140% 0}20%{opacity:1}100%{opacity:0;background-position:-40% 0}}
.i3-veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(520px 420px at 50% 50%,rgba(251,253,252,.9),rgba(251,253,252,.55) 55%,rgba(251,253,252,0) 100%);opacity:0;transition:opacity 1s var(--ease)}
#intro.i3-focus .i3-veil{opacity:1} #intro.i3-leave .i3-veil{opacity:0}
.i3-center{position:absolute;z-index:2;left:50%;top:50%;width:300px;height:300px;margin:-150px 0 0 -150px;perspective:1100px}
.i3-center::before{content:"";position:absolute;inset:-42%;border-radius:50%;background:radial-gradient(closest-side,rgba(92,242,176,.55),rgba(92,242,176,.18) 55%,transparent 72%);opacity:0;transform:scale(.6);transition:opacity 1s var(--ease),transform 1.4s var(--ease);pointer-events:none}
#intro.i3-focus .i3-center::before{opacity:1;transform:scale(1);animation:i3halo 2.6s ease-in-out 1.2s infinite}
#intro.i3-flip-on .i3-center::before{background:radial-gradient(closest-side,rgba(242,181,58,.45),rgba(242,181,58,.14) 55%,transparent 72%)}
#intro.i3-leave .i3-center::before{animation:i3haloout .5s var(--ease) forwards}
.i3-center::after{content:"";position:absolute;inset:-10%;z-index:4;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(255,255,255,0) 70%);opacity:0;pointer-events:none}
#intro.i3-flip-on .i3-center::after{animation:i3flash .7s var(--ease) .32s}
@keyframes i3halo{50%{transform:scale(1.08);opacity:.8}} @keyframes i3haloout{from{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.35)}} @keyframes i3flash{0%{opacity:0;transform:scale(.6)}40%{opacity:.9}100%{opacity:0;transform:scale(1.25)}}
#intro.i3-spin .i3-center{animation:i3float 2.2s ease-in-out infinite} @keyframes i3float{50%{transform:translateY(-8px) rotate(-2deg)}}
.i3-flip{position:absolute;inset:0;z-index:2;opacity:0;transform:translateY(70px) scale(.5) rotateX(24deg);filter:blur(10px);transition:opacity .8s var(--ease),transform 1.2s var(--spring),filter .8s var(--ease)}
#intro.i3-focus .i3-flip{opacity:1;transform:none;filter:none;transition:opacity .8s var(--ease),transform 1.35s var(--spring),filter .8s var(--ease)}
#intro.i3-leave .i3-flip{opacity:0;transform:translateY(-14px) scale(.92);filter:blur(6px);transition:opacity .55s var(--ease),transform .8s var(--ease),filter .6s var(--ease)}
.i3-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.2s cubic-bezier(.45,1.45,.5,1)}
#intro.i3-flip-on .i3-in{transform:rotateY(180deg)}
.i3-face{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.i3-coinface{position:relative;width:100%;height:100%;border-radius:50%;padding:16px;overflow:hidden;background:conic-gradient(from 210deg,#d9fbea,#3fd98e,#eafff4,#0e7a50,#8ff7cb,#d9fbea);box-shadow:0 60px 90px -40px rgba(6,60,38,.7),inset 0 0 0 2px rgba(255,255,255,.6)}
.i3-coinface img,.i3-coinface canvas{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#e6fbf1;box-shadow:0 0 0 3px rgba(6,40,27,.25)}
.i3-coinface::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.75) 48%,transparent 60%);background-size:280% 100%;background-position:130% 0;mix-blend-mode:soft-light;pointer-events:none}
#intro.i3-glint .i3-coinface::after{animation:shine .9s var(--ease) forwards}
@keyframes shine{0%{background-position:130% 0}100%{background-position:-60% 0}}
.i3-card{transform:rotateY(180deg);padding:9px;border-radius:30px;background:#fff;box-shadow:0 60px 90px -44px rgba(6,40,27,.6),0 0 0 1px rgba(14,16,19,.06);overflow:hidden}
.i3-img{width:100%;height:100%;border-radius:22px;overflow:hidden;background:#e6fbf1} .i3-img img,.i3-img canvas{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.i3-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.7) 49%,transparent 60%);background-size:280% 100%;background-position:130% 0;pointer-events:none}
#intro.i3-flip-on .i3-card::after{animation:shine 1.3s var(--ease) .6s forwards} #intro.i3-spin .i3-card::after{animation:i3shine 2.2s var(--ease) .2s infinite}
@keyframes i3shine{0%{background-position:130% 0}60%,100%{background-position:-60% 0}}
.i3-fx{position:absolute;z-index:3;left:50%;top:50%;width:0;height:0;pointer-events:none}
.i3-burst i{position:absolute;left:-150px;top:-150px;width:300px;height:300px;border-radius:50%;border:2px solid rgba(63,217,142,.85);opacity:0}
#intro.i3-boom .i3-burst i{animation:i3ring 1.7s cubic-bezier(.15,.7,.3,1) forwards} #intro.i3-boom .i3-burst i:nth-child(2){animation-delay:.14s;border-color:rgba(242,181,58,.7)} #intro.i3-boom .i3-burst i:nth-child(3){animation-delay:.28s}
@keyframes i3ring{0%{opacity:.9;transform:scale(.92)}100%{opacity:0;transform:scale(3.4);border-width:1px}}
.i3-sparks i{position:absolute;left:0;top:0;width:22px;height:22px;margin:-11px;border-radius:7px;background:#fff;padding:2px;box-shadow:0 8px 14px -6px rgba(6,40,27,.55),0 0 0 1px rgba(14,16,19,.06);opacity:0} .i3-sparks i canvas{width:100%;height:100%;border-radius:5px;image-rendering:pixelated;display:block}
#intro.i3-boom .i3-sparks i{animation:i3spark 1.35s cubic-bezier(.12,.75,.25,1) var(--dl,0ms) forwards}
@keyframes i3spark{0%{opacity:0;transform:rotate(var(--a)) translateX(40px) scale(.35) rotateY(0)}14%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) translateY(26px) scale(.85) rotateY(540deg)}}
.i3-dust i{position:absolute;left:0;top:0;width:6px;height:6px;margin:-3px;border-radius:50%;background:var(--c,#5CF2B0);opacity:0}
#intro.i3-boom .i3-dust i{animation:i3dust 1.6s cubic-bezier(.1,.7,.2,1) var(--dl,0ms) forwards}
@keyframes i3dust{0%{opacity:0;transform:rotate(var(--a)) translateX(30px) scale(.4)}12%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) scale(1)}}
.i3-skip{position:absolute;z-index:3;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.85);border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--text);opacity:0;transition:opacity .6s .6s,transform .2s,background .2s}
#intro.i3-go .i3-skip{opacity:1} .i3-skip:hover{transform:scale(1.06);background:#fff} .i3-skip svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
#intro.out{pointer-events:none;animation:i3iris .95s cubic-bezier(.65,0,.25,1) forwards}
@keyframes i3iris{0%{clip-path:circle(150% at 50% 50%);opacity:1}100%{clip-path:circle(0% at 50% 50%);opacity:0;visibility:hidden}}
@media(max-width:640px){.i3-plane,.i3-row{gap:12px}.i3-c{width:96px;height:96px;padding:4px;border-radius:16px}.i3-c img,.i3-c canvas{border-radius:12px}.i3-center{width:190px;height:190px;margin:-95px 0 0 -95px}.i3-burst i{left:-95px;top:-95px;width:190px;height:190px}}
/* ---------------------------------------------------------------- reveals + stage tilt + magnetic buttons */
html.js .rv{opacity:0;transform:translateY(24px);transition:opacity .85s var(--ease),transform .85s var(--ease),filter .85s var(--ease);transition-delay:var(--d,0s)}
html.js h1.rv,html.js h2.rv{filter:blur(8px)}
html.js .rv.in{opacity:1;transform:none;filter:none}
html.js .sec-head .eyebrow.rv{transform:translateY(14px) scale(.96)} html.js .sec-head .eyebrow.rv.in{transform:none}
html.js .sec-head.center .sub.rv{transform:translateY(18px);clip-path:inset(0 0 40% 0);transition:opacity .85s var(--ease),transform .85s var(--ease),clip-path 1s var(--ease);transition-delay:var(--d,0s)} html.js .sec-head.center .sub.rv.in{clip-path:inset(0 0 -10% 0)}
html.js .mk::after{animation:none;transform:scaleX(0);transition:transform .9s var(--ease) .5s} html.js h1.in .mk::after{transform:scaleX(1)}
html.js .frame{transform-origin:50% 0;transform:rotateX(calc(var(--tilt,0) * 18deg)) scale(calc(1 - var(--tilt,0) * .06)) translateY(calc(var(--tilt,0) * 24px));will-change:transform}
html.js .frame.rv{transform:rotateX(14deg) translateY(40px) scale(.96)} html.js .frame.rv.in{transform:rotateX(calc(var(--tilt,0) * 18deg)) scale(calc(1 - var(--tilt,0) * .06)) translateY(calc(var(--tilt,0) * 24px))}
.mag{transition:translate .25s var(--ease),transform .15s var(--ease),background .15s,box-shadow .2s}
@media(prefers-reduced-motion:reduce){#intro{display:none}html.js .rv{opacity:1;transform:none;filter:none;transition:none}.i3-row,.h-float .fl,.rings i,.beam i{animation:none}}

/* wallet picker */
.wm{position:fixed;inset:0;z-index:95;background:rgba(14,16,19,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .18s}
.wm.on{opacity:1}
.wm-in{position:relative;width:100%;max-width:400px;background:#fff;border-radius:28px;padding:26px 22px 18px;box-shadow:0 60px 120px -40px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.04);transform:translateY(10px) scale(.98);transition:transform .22s var(--ease)}
.wm.on .wm-in{transform:none}
.wm-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:0;background:var(--panel);color:var(--text);font-size:18px;cursor:pointer} .wm-x:hover{background:var(--panel2)}
.wm-head{text-align:center;padding:0 10px 18px} .wm-logo{font:800 14px/1 var(--head);letter-spacing:-.03em;color:var(--text)} .wm-logo em{font-style:normal;color:var(--green)}
.wm-head h3{margin:12px 0 0;font:600 24px/1.1 var(--head);letter-spacing:-.025em} .wm-head p{margin:8px 0 0;color:var(--mute);font-size:14px}
.wm-list{display:grid;gap:8px}
.wm-opt{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px 10px 10px;border-radius:18px;border:1px solid var(--line);background:#fff;color:var(--text);text-decoration:none;cursor:pointer;font:inherit;text-align:left;transition:background .15s,border-color .15s,transform .15s var(--ease)}
.wm-opt:hover,.wm-opt:focus-visible{background:var(--panel);border-color:var(--line2);transform:translateY(-1px);outline:0}
.wm-ic{flex:none;width:40px;height:40px;border-radius:12px;display:block;object-fit:cover;background:var(--panel)} .wm-ic-txt{display:grid;place-items:center;font:700 16px/1 var(--head);background:var(--mint-soft);color:var(--green)}
.wm-nm{font:600 15px/1 var(--body);letter-spacing:-.01em;flex:1}
.wm-tag{font:500 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--green);background:var(--mint-soft);padding:6px 8px;border-radius:999px}
.wm-arr{color:var(--mute2);font-size:14px}
.wm-foot{margin-top:16px;text-align:center;font:500 11px/1.4 var(--mono);color:var(--mute)}

/* $COINFT contract address bar */
.cabar{display:inline-flex;align-items:center;gap:0;max-width:100%;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);padding:4px 4px 4px 14px;font:500 12px/1 var(--mono);transition:border-color .2s,box-shadow .2s}
.cabar.ok{border-color:var(--mint2);box-shadow:0 0 0 4px var(--mint-soft)}
.cab-l{flex:none;font:600 10px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--green);padding-right:10px;border-right:1px solid var(--line);margin-right:10px}
.cab-a{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:none;padding:8px 0;font:500 12.5px/1 var(--mono);color:var(--text);cursor:copy;text-align:left;letter-spacing:.01em}
.cab-c,.cab-p{flex:none;height:32px;padding:0 12px;border-radius:999px;border:0;font:600 11.5px/32px var(--body);cursor:pointer;text-decoration:none;margin-left:6px}
.cab-c{background:var(--panel);color:var(--text)} .cab-c:hover{background:var(--panel2)}
.cab-p{background:var(--text);color:#fff} .cab-p:hover{background:var(--deep)}
.cabar.sm{padding-left:12px} .cabar.sm .cab-a{font-size:11.5px} .cabar.sm .cab-c,.cabar.sm .cab-p{height:28px;line-height:28px;padding:0 10px;font-size:11px}
.foot-ca{flex:1 1 100%;order:3}
.h-ca{margin-top:18px}
@media(max-width:640px){.cabar{flex-wrap:wrap;border-radius:22px;padding:10px 12px;gap:8px}.cab-l{border:0;margin:0;padding:0;flex:1 1 100%}.cab-a{flex:1 1 100%;padding:4px 0;white-space:normal;word-break:break-all;line-height:1.4}.cab-c,.cab-p{margin-left:0}}
