/* EpicUltra fun sites */
:root{--bg:#0b1020;--bg2:#111a33;--card:#141e3a;--line:#253256;--text:#e8ecf8;--muted:#9aa6c4;--good:#34d399;--warn:#fbbf24;--bad:#f87171;--accent:#60a5fa;--ink:#0b1020;--radius:16px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,sans-serif;color-scheme:dark}
.site-spin{--accent:#f472b6}.site-trainle{--accent:#34d399}.site-qr{--accent:#60a5fa}.site-type{--accent:#fbbf24}
.site-button{--accent:#f87171}.site-countries{--accent:#a78bfa}.site-idle{--accent:#fb923c}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:radial-gradient(1200px 600px at 10% -10%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),radial-gradient(900px 500px at 110% 10%,#1d2a55,transparent 60%),var(--bg);
  color:var(--text);line-height:1.5;display:flex;flex-direction:column;min-height:100vh}
a{color:var(--accent)}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px clamp(14px,4vw,32px)}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:800;font-size:20px;letter-spacing:-.01em}
.logo{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--accent) 22%,var(--card));font-size:22px}
.who{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.who b{color:var(--text)}
.wrap{width:min(1000px,100% - 28px);margin:0 auto;flex:1;padding-bottom:30px}
.hero{text-align:center;padding:18px 0 8px}.hero h1{margin:0 0 6px;font-size:clamp(26px,5vw,40px);letter-spacing:-.02em}
.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}
.card{background:color-mix(in srgb,var(--card) 92%,transparent);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:14px 0;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.card h2{margin:0 0 10px;font-size:18px}
.grid{display:grid;gap:14px}.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:12px;padding:10px 16px;
  font:inherit;font-weight:650;cursor:pointer;text-decoration:none;transition:transform .08s,background .15s,border-color .15s}
.btn:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.btn.small{padding:6px 11px;font-size:13px;border-radius:10px}.btn.ghost{background:transparent}
.btn.danger{color:var(--bad)}
input,textarea,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;width:100%}
input:focus,textarea:focus,select:focus,.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:1px}
textarea{resize:vertical;min-height:120px}
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;background:var(--bg2);border:1px solid var(--line);font-size:12px;color:var(--muted)}
.stat{display:flex;flex-direction:column;align-items:center;padding:10px 14px;border-radius:12px;background:var(--bg2);min-width:92px}
.stat b{font-size:22px}.stat span{font-size:12px;color:var(--muted)}
table.board{width:100%;border-collapse:collapse;font-size:14px}
table.board td,table.board th{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left}
table.board th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
table.board td.n{text-align:right;font-variant-numeric:tabular-nums}
.tabs{display:inline-flex;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:3px;gap:3px}
.tabs button{all:unset;cursor:pointer;padding:6px 12px;border-radius:9px;font-size:14px;font-weight:600;color:var(--muted)}
.tabs button.on{background:var(--accent);color:var(--ink)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--card);border:1px solid var(--line);padding:10px 16px;border-radius:12px;z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.4);max-width:90vw}
.toast.bad{border-color:var(--bad)}
.foot{padding:18px clamp(14px,4vw,32px) 26px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;text-align:center}
.foot p{margin:10px 0 0}.foot a{color:var(--muted)}
.sites{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.sites a{color:var(--text);text-decoration:none;background:var(--bg2);border:1px solid var(--line);padding:5px 10px;border-radius:99px}
.sites a:hover{border-color:var(--accent)}
.here{display:inline-flex;align-items:center;gap:6px;margin-right:10px}
.here:empty{display:none}
.dot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(52,211,153,0)}100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}}
.hide{display:none!important}
@media (max-width:560px){.brand span:last-child{font-size:17px}.card{padding:14px}}

/* spin */
.wheel-box{position:relative;width:min(440px,100%);aspect-ratio:1;margin:0 auto}
.wheel-box canvas{width:100%;height:100%;display:block;transition:transform 5s cubic-bezier(.12,.75,.12,1)}
.wheel-pin{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-top:30px solid var(--text);filter:drop-shadow(0 3px 4px rgba(0,0,0,.5))}
.winner{font-size:clamp(22px,5vw,34px);font-weight:800;text-align:center;min-height:1.4em;margin:10px 0}
.saved-list{display:flex;flex-direction:column;gap:6px}
.saved-list .row{justify-content:space-between;background:var(--bg2);border-radius:10px;padding:6px 8px}

/* trainle */
.tl-board{display:grid;gap:6px;justify-content:center;margin:10px 0}
.tl-row{display:grid;grid-template-columns:repeat(5,clamp(44px,14vw,60px));gap:6px}
.tl-cell{aspect-ratio:1;display:grid;place-items:center;font-size:clamp(20px,6vw,30px);font-weight:800;border:2px solid var(--line);border-radius:10px;text-transform:uppercase;background:var(--bg)}
.tl-cell.s0{background:#2a334f;border-color:#2a334f}.tl-cell.s1{background:#c49a17;border-color:#c49a17;color:#111}.tl-cell.s2{background:#16a34a;border-color:#16a34a}
.tl-cell.typed{border-color:var(--muted)}
.kb{display:flex;flex-direction:column;gap:6px;align-items:center;margin-top:10px}
.kb div{display:flex;gap:5px}
.kb button{all:unset;cursor:pointer;min-width:clamp(26px,8vw,40px);height:52px;display:grid;place-items:center;border-radius:8px;background:#36415f;font-weight:700;font-size:15px;padding:0 4px;user-select:none}
.kb button.wide{min-width:clamp(48px,13vw,66px);font-size:13px}
.kb button.s0{background:#1f2740;color:#6b7699}.kb button.s1{background:#c49a17;color:#111}.kb button.s2{background:#16a34a}
.dist div{display:flex;align-items:center;gap:6px;margin:3px 0}.dist i{display:block;height:20px;background:var(--accent);border-radius:5px;min-width:22px;text-align:right;padding-right:6px;font-style:normal;color:var(--ink);font-weight:700;font-size:13px}

/* qr */
.qr-out{display:grid;place-items:center;background:#fff;border-radius:14px;padding:14px;min-height:240px}
.qr-out canvas{max-width:100%;height:auto;image-rendering:pixelated}
.colors{display:flex;gap:12px}.colors input{height:44px;padding:4px}

/* type */
.words{font-size:clamp(18px,3.4vw,24px);line-height:1.7;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;height:calc(1.7em * 3);overflow:hidden;position:relative;user-select:none;color:var(--muted)}
.words span{margin-right:.2em;border-radius:4px;padding:0 1px}
.words .ok{color:var(--good)}.words .no{color:var(--bad);text-decoration:underline}.words .cur{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--text)}
.type-in{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:20px}
.big-n{font-size:46px;font-weight:800;line-height:1}

/* button */
.the-button{all:unset;cursor:pointer;width:min(280px,70vw);aspect-ratio:1;border-radius:50%;margin:16px auto;display:grid;place-items:center;
  background:radial-gradient(circle at 35% 30%,#ff8a8a,#dc2626 55%,#7f1d1d);box-shadow:0 14px 0 #5b1414,0 24px 40px rgba(0,0,0,.5);font-size:22px;font-weight:900;color:#fff;letter-spacing:.06em;
  text-shadow:0 2px 0 rgba(0,0,0,.3);transition:transform .05s,box-shadow .05s;user-select:none;-webkit-tap-highlight-color:transparent}
.the-button:active,.the-button.down{transform:translateY(10px);box-shadow:0 4px 0 #5b1414,0 10px 20px rgba(0,0,0,.5)}
.counter{font-size:clamp(40px,10vw,72px);font-weight:900;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.badge{padding:6px 12px;border-radius:99px;background:var(--bg2);border:1px solid var(--line);font-size:13px;opacity:.45}
.badge.got{opacity:1;border-color:var(--accent)}

/* countries */
.c-list{display:flex;flex-direction:column;gap:6px}
.c-row{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;padding:6px 8px;border-radius:10px;background:var(--bg2)}
.c-row .bar{height:6px;border-radius:99px;background:var(--accent);margin-top:4px}
.c-row.me{outline:2px solid var(--accent)}
.flag{font-size:24px}
.tap{all:unset;cursor:pointer;display:grid;place-items:center;width:min(240px,64vw);aspect-ratio:1;border-radius:28px;margin:10px auto;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 70%,#fff 0%),#5b3fb8);
  font-size:clamp(60px,18vw,96px);box-shadow:0 12px 0 #3b2780,0 20px 40px rgba(0,0,0,.45);user-select:none;-webkit-tap-highlight-color:transparent}
.tap:active,.tap.down{transform:translateY(8px);box-shadow:0 4px 0 #3b2780}

/* idle */
.idle-top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.coins{font-size:clamp(30px,7vw,46px);font-weight:900;font-variant-numeric:tabular-nums}
.run-btn{all:unset;cursor:pointer;padding:16px 26px;border-radius:16px;background:var(--accent);color:var(--ink);font-weight:900;font-size:18px;box-shadow:0 8px 0 #9a4a10;user-select:none}
.run-btn:active{transform:translateY(6px);box-shadow:0 2px 0 #9a4a10}
.shop{display:flex;flex-direction:column;gap:8px}
.item{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:12px;background:var(--bg2);border:1px solid var(--line)}
.item .em{font-size:30px;text-align:center}.item .nm{font-weight:700}.item .sub{font-size:12px;color:var(--muted)}
.item.locked{opacity:.45}.item.cant .btn{opacity:.6}
table.board tr.you td{color:var(--accent);font-weight:700}table.board td .pill{margin-left:6px;font-size:11px;padding:0 7px}
