/* Poke Dank type system. All fonts SIL Open Font License 1.1 (Google Fonts), self-hosted, latin subset. */
@font-face{font-family:'Funnel Display';font-style:normal;font-weight:300 800;font-display:swap;src:url(../fonts/FunnelDisplay-VF.woff2) format('woff2')}
@font-face{font-family:'Funnel Sans';font-style:normal;font-weight:300 800;font-display:swap;src:url(../fonts/FunnelSans-VF.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/InstrumentSerif-400-italic.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/InstrumentSerif-400.woff2) format('woff2')}
@font-face{font-family:'Fragment Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/FragmentMono-400.woff2) format('woff2')}

:root{
  --ink:#0D0B14;--ink2:#13101C;--panel:#191623;--panel2:#211D2E;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.14);
  --text:#F5F3EE;--mute:#9C97AD;--dim:#6C6780;
  --lime:#14F195;--coral:#FF5E3A;--sun:#FFC93C;--aqua:#2EE6D6;--blue:#4C6FFF;--grape:#9945FF;
  --holo:linear-gradient(115deg,#9945FF 0%,#7B61FF 24%,#3D8BFF 46%,#00C2FF 64%,#14F195 86%,#7DFFC4 100%);
  --r:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--ink);color:var(--text);font-family:'Funnel Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
html,body{overflow-x:clip}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.d{font-family:'Funnel Display',sans-serif;letter-spacing:-.045em;font-weight:800;line-height:.92}
.ac{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;letter-spacing:-.015em;font-size:1.1em;line-height:.8;padding-right:.06em}
.wm b{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;letter-spacing:-.01em;font-size:1.12em;margin-left:1px}
.m{font-family:'Fragment Mono',monospace;font-size:12.5px;letter-spacing:.02em;color:var(--mute)}
.holo-text{background:linear-gradient(100deg,#9945FF 0%,#3D8BFF 30%,#00C2FF 50%,#14F195 75%,#7DFFC4 100%);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:holoShift 8s linear infinite}
@keyframes holoShift{to{background-position:200% 0}}
/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 26px;border-radius:999px;font-weight:600;font-size:15px;cursor:pointer;border:0;overflow:hidden;white-space:nowrap;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.btn:hover{transform:translateY(-2px)}
.btn-lime{background:var(--lime);color:#10120A;box-shadow:0 0 0 1px rgba(20,241,149,.5),0 10px 40px -8px rgba(20,241,149,.55),inset 0 -3px 0 rgba(0,0,0,.18)}
.btn-lime::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%);transform:translateX(-120%);animation:sheen 3.2s ease-in-out infinite}
@keyframes sheen{0%,55%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
.btn-holo{color:var(--text);background:linear-gradient(var(--ink2),var(--ink2)) padding-box,var(--holo) border-box;border:1.5px solid transparent}
.btn-holo:hover{box-shadow:0 10px 40px -10px rgba(153,69,255,.6)}
.btn-coral{background:var(--grape);color:#fff;box-shadow:0 10px 36px -8px rgba(153,69,255,.65),inset 0 -3px 0 rgba(0,0,0,.18)}
.btn-sm{height:40px;padding:0 18px;font-size:14px}
.chip{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:13px;color:var(--mute)}
.dot{width:8px;height:8px;border-radius:50%}
.grade{font-family:'Fragment Mono';font-size:11px;font-weight:500;padding:4px 8px;border-radius:7px;background:#fff;color:#111;letter-spacing:.02em}
.grade.g10{background:var(--lime)}
/* holo card */
.tcg{position:relative;border-radius:4.5%/3.3%;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.06)}
.tcg img{width:100%}
.tcg::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(153,69,255,.25) 40%,rgba(20,241,149,.25) 48%,rgba(0,194,255,.25) 56%,rgba(153,69,255,.25) 64%,transparent 72%);background-size:250% 250%;mix-blend-mode:color-dodge;animation:foil 6s ease-in-out infinite}
@keyframes foil{0%,100%{background-position:100% 100%}50%{background-position:0 0}}
/* reveal */
.rv{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.rv.in,.shot .rv{opacity:1;transform:none}
.shot *{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}

:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:8px}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input{font:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.btn[disabled],.btn.is-disabled{opacity:.45;pointer-events:none}
.btn-purple{background:var(--grape);color:#fff;box-shadow:0 10px 36px -8px rgba(153,69,255,.65),inset 0 -3px 0 rgba(0,0,0,.18)}
/* wallet modal + toast */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:rgba(5,4,10,.6);backdrop-filter:blur(8px);padding:20px}
.modal.open{display:flex}
.sheet-m{width:100%;max-width:420px;border-radius:28px;background:var(--panel);border:1px solid var(--line2);padding:26px;box-shadow:0 40px 80px -20px rgba(0,0,0,.7);animation:pop .35s cubic-bezier(.2,.8,.2,1)}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.98)}}
.sheet-m h3{font-size:30px}
.sheet-m p{color:var(--mute);font-size:14px;margin-top:8px;line-height:1.5}
.wl{display:flex;flex-direction:column;gap:8px;margin-top:20px}
.wl button{display:flex;align-items:center;gap:14px;height:62px;padding:0 16px;border-radius:18px;background:var(--panel2);border:1px solid var(--line);font-size:16px;font-weight:600;text-align:left;transition:.2s}
.wl button:hover{border-color:var(--line2);transform:translateY(-1px)}
.wl button img{width:34px;height:34px;border-radius:10px}
.wl button span{margin-left:auto;font-size:12px;font-weight:500;color:var(--dim)}
.wl button span.ok{color:var(--lime)}
.field{width:100%;height:52px;border-radius:16px;background:var(--ink2);border:1px solid var(--line2);color:var(--text);padding:0 16px;font-size:15px;margin-top:16px}
.mrow{display:flex;gap:8px;margin-top:18px}.mrow .btn{flex:1;justify-content:center}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(30px);opacity:0;z-index:300;padding:14px 20px;border-radius:16px;background:var(--panel2);border:1px solid var(--line2);font-size:14px;font-weight:500;box-shadow:0 20px 40px -10px rgba(0,0,0,.6);transition:.35s cubic-bezier(.2,.8,.2,1);pointer-events:none;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%)}
.toast.good{border-color:rgba(20,241,149,.5)}.toast.bad{border-color:rgba(255,94,58,.5)}
.skel{background:linear-gradient(90deg,var(--panel) 0%,var(--panel2) 50%,var(--panel) 100%);background-size:200% 100%;animation:sk 1.4s linear infinite}
@keyframes sk{to{background-position:-200% 0}}
.wal-btn{display:flex;align-items:center;gap:10px;height:42px;padding:0 14px 0 6px;border-radius:999px;background:linear-gradient(var(--panel),var(--panel)) padding-box,var(--holo) border-box;border:1.5px solid transparent;font-family:'Fragment Mono';font-size:13px;position:relative}
.wal-btn i{width:30px;height:30px;border-radius:50%;background:conic-gradient(from 40deg,#9945FF,#00C2FF,#14F195,#9945FF)}
.wmenu{position:absolute;right:0;top:50px;min-width:200px;border-radius:18px;background:var(--panel);border:1px solid var(--line2);padding:6px;display:none;z-index:60;box-shadow:0 20px 40px -10px rgba(0,0,0,.6)}
.wmenu.open{display:block}
.wmenu a,.wmenu button{display:flex;width:100%;height:40px;align-items:center;padding:0 12px;border-radius:12px;font-size:14px;font-family:'Funnel Sans'}
.wmenu a:hover,.wmenu button:hover{background:var(--panel2)}
.tcg img{height:auto}

.fld{position:relative;display:flex;align-items:center;flex:1;min-width:0;align-self:stretch}
.fld>input{flex:1;width:100%;min-width:0}
.fld .hint{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fld input:valid+.hint{visibility:hidden}
.code .fld .hint{left:17px;font-family:'Fragment Mono';font-size:15px;letter-spacing:.12em}
.fld .inp+.hint{left:15px;font-size:15px}
