:root{
  color-scheme:dark;
  --bg:#0b0a12;--panel:#14121d;--panel2:#1b1826;--text:#fff9f5;--muted:#a9a3b3;
  --line:rgba(255,255,255,.10);--accent:#ff795b;--accent2:#ffb45b;--good:#8df0bd;--bad:#ff7385;
  --blob1:#71717a;--blob2:#27272a;--safe:env(safe-area-inset-bottom,0px)
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic UI","Yu Gothic",sans-serif;-webkit-font-smoothing:antialiased}
body{min-height:100dvh;overflow-x:hidden;background:
  radial-gradient(circle at 16% 4%,rgba(255,121,91,.12),transparent 29rem),
  radial-gradient(circle at 88% 90%,rgba(159,124,255,.10),transparent 34rem),var(--bg)}
button{font:inherit;color:inherit}button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.app{width:min(720px,100%);margin:auto;min-height:100dvh;padding:14px 14px calc(22px + var(--safe));position:relative}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;height:46px}
.brand{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:950;letter-spacing:.18em}.brand-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 20px rgba(255,121,91,.75)}
.brand span{color:#ff9b84}.icon-btn{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:999px;min-width:38px;height:38px;padding:0 13px;font-size:12px;color:#c6c1cc;font-weight:800;cursor:pointer}
.screen{display:none;animation:screenIn .28s ease both}.screen.active{display:block}
@keyframes screenIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hero{padding:32px 2px 10px}.kicker{font-size:12px;color:#ff947c;font-weight:950;letter-spacing:.18em;text-transform:uppercase;margin-bottom:13px}
h1{font-size:clamp(53px,15vw,91px);line-height:.87;letter-spacing:-.075em;margin:0;font-weight:950}.hero p{color:#c2bdc7;font-size:15px;line-height:1.8;margin:21px 0 0;max-width:560px}.hero strong{color:#fff}
.mini-demo{height:184px;margin:24px 0 19px;border:1px solid var(--line);border-radius:27px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));position:relative;overflow:hidden;display:grid;place-items:center}
.demo-word{position:absolute;top:17px;left:19px;color:#898391;font-size:12px;font-weight:850}.demo-hint{position:absolute;right:18px;bottom:16px;color:#ffad9a;font-size:12px;font-weight:850;letter-spacing:.08em}
.blob-wrap{position:relative;width:132px;height:132px;display:grid;place-items:center;filter:drop-shadow(0 22px 28px rgba(0,0,0,.32))}
.blob{width:112px;height:106px;border-radius:48% 52% 58% 42% / 55% 45% 55% 45%;background:linear-gradient(140deg,var(--blob1),var(--blob2));position:relative;transition:background .3s ease,border-radius .45s ease,transform .28s ease;animation:float 3.5s ease-in-out infinite}
.blob:before,.blob:after{content:"";position:absolute;width:8px;height:11px;border-radius:50%;background:rgba(255,255,255,.88);top:42px}.blob:before{left:34px}.blob:after{right:34px}.blob-mouth{position:absolute;left:50%;top:66px;transform:translateX(-50%);width:23px;height:10px;border-bottom:3px solid rgba(255,255,255,.72);border-radius:0 0 20px 20px;transition:.25s}.blob-name{position:absolute;inset:auto 0 -25px;text-align:center;font-size:12px;font-weight:950;letter-spacing:.08em;color:#fff;opacity:0;transform:translateY(6px);transition:.25s}.blob.named{transform:scale(1.05)}.blob.named + .blob-name{opacity:1;transform:none}
@keyframes float{50%{transform:translateY(-6px) rotate(2deg)}}
.mode-title{display:flex;justify-content:space-between;align-items:end;margin:24px 1px 10px}.mode-title h2{font-size:12px;letter-spacing:.14em;margin:0}.mode-title span{font-size:12px;color:#827c8b}
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-card{border:1px solid var(--line);background:linear-gradient(145deg,#191722,#111019);border-radius:21px;padding:16px;text-align:left;min-height:150px;cursor:pointer;position:relative;overflow:hidden;transition:.17s ease}.mode-card:active{transform:scale(.98)}.mode-card:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-48px;top:-43px;background:var(--glow,rgba(255,121,91,.14));filter:blur(1px)}.mode-card .num{font-size:12px;font-weight:900;letter-spacing:.14em;color:#9e98a7}.mode-card h3{font-size:23px;letter-spacing:-.04em;margin:20px 0 7px}.mode-card p{margin:0;color:#96909f;font-size:12px;line-height:1.6}.mode-card .arrow{position:absolute;right:14px;bottom:14px;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#100e16;font-weight:950;font-size:13px}
.history-strip{margin-top:12px;border:1px solid var(--line);border-radius:20px;padding:13px 15px;display:flex;gap:8px;align-items:center;justify-content:space-between;background:rgba(255,255,255,.025)}.history-strip .left{font-size:12px;color:#8f8997}.history-strip strong{color:#f7f1f8}.history-strip button{border:0;background:none;color:#ff9d87;font-weight:900;font-size:12px;cursor:pointer}
.notice{margin:16px 2px 0;color:#6f6977;font-size:12px;line-height:1.6}
/* game */
.game-shell{padding-top:6px}.game-head{display:flex;align-items:center;gap:10px}.close-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.03);cursor:pointer}.game-meta{flex:1}.game-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.stage-name{font-size:12px;font-weight:900;letter-spacing:.11em;color:#ff9f8b}.q-count{font-size:12px;color:#8b8493;font-variant-numeric:tabular-nums}.progress{height:5px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),#ffd05b);border-radius:999px;transition:width .25s ease}
.scorebar{display:flex;gap:7px;margin:13px 0 8px}.score-pill{border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:999px;padding:7px 10px;font-size:12px;color:#9993a1}.score-pill strong{color:#fff;margin-left:5px}.combo{color:#ffb45b!important}
.scene-card{position:relative;margin-top:12px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.065),rgba(255,255,255,.018));border-radius:28px;min-height:352px;overflow:hidden;padding:20px;display:flex;flex-direction:column}
.scene-card:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,121,91,.12),transparent 68%);left:-150px;bottom:-180px;pointer-events:none}.prompt-label{font-size:12px;color:#8c8594;letter-spacing:.13em;font-weight:900;text-transform:uppercase}.scene{font-size:clamp(21px,5.6vw,30px);line-height:1.45;letter-spacing:-.025em;font-weight:850;margin:12px 0 4px;min-height:74px;position:relative;z-index:1}.clue{font-size:12px;color:#aaa4b1;line-height:1.65;min-height:40px}.clue strong{color:#dad4df}
.game-blob-zone{flex:1;min-height:160px;display:grid;place-items:center;position:relative}.game-blob-zone .blob-wrap{transform:scale(1.04)}.moya{position:absolute;font-size:12px;color:#8d8794;animation:drift 2.8s ease-in-out infinite;opacity:.75}.moya:nth-child(1){left:13%;top:25%}.moya:nth-child(2){right:11%;top:40%;animation-delay:-1.1s}.moya:nth-child(3){left:22%;bottom:18%;animation-delay:-2s}@keyframes drift{50%{transform:translateY(-7px);opacity:.4}}
.timer{height:4px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden;margin-top:4px}.timer i{display:block;height:100%;width:100%;background:#fff;transform-origin:left;transform:scaleX(1);transition:none}.timer.warning i{background:#ff9d6e}
.answer-label{font-size:12px;font-weight:900;margin:16px 2px 9px;color:#d4cfd7}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.answer{min-height:58px;border-radius:17px;border:1px solid var(--line);background:linear-gradient(145deg,#1a1822,#121119);font-weight:850;font-size:14px;cursor:pointer;position:relative;overflow:hidden;padding:12px}.answer:active{transform:scale(.985)}.answer small{position:absolute;left:9px;top:7px;color:#615c68;font-size:12px;font-weight:900}.answer.correct{border-color:rgba(141,240,189,.62);background:rgba(72,191,132,.13);color:#bcf7d7}.answer.partial{border-color:rgba(255,197,94,.52);background:rgba(255,183,74,.10);color:#ffe0a0}.answer.wrong{border-color:rgba(255,115,133,.55);background:rgba(255,90,117,.10);color:#ffb8c1}.answer:disabled{cursor:default}
.feedback{position:fixed;left:50%;top:47%;z-index:40;transform:translate(-50%,-50%) scale(.9);pointer-events:none;text-align:center;opacity:0;transition:.15s}.feedback.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.feedback .big{font-size:46px;font-weight:950;letter-spacing:-.06em;text-shadow:0 9px 35px #000}.feedback .sub{display:inline-block;background:rgba(9,8,14,.88);border:1px solid var(--line);padding:8px 11px;border-radius:999px;font-size:12px;color:#ddd7e1;margin-top:4px}.feedback.good .big{color:#a5f6ca}.feedback.partial .big{color:#ffd278}.feedback.bad .big{color:#ff91a0}
.deep-banner{display:none;margin-top:9px;padding:11px 13px;border-radius:15px;border:1px solid rgba(179,144,255,.25);background:rgba(163,120,255,.08);font-size:12px;color:#d7c6ff;line-height:1.5}.deep-banner.show{display:block;animation:screenIn .2s ease both}
/* results */
.result-head{padding:32px 3px 16px}.result-head .rank{font-size:12px;color:#ff9e88;font-weight:950;letter-spacing:.14em}.result-head h2{font-size:54px;line-height:.9;letter-spacing:-.065em;margin:13px 0 12px}.result-head p{margin:0;color:#a8a2af;font-size:13px;line-height:1.7}.score-orb{width:160px;height:160px;border-radius:50%;margin:20px auto 24px;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 35% 25%,#ffb18f,#ff6d55 43%,#6c2845 100%);box-shadow:0 26px 70px rgba(255,92,75,.22),inset 0 0 0 1px rgba(255,255,255,.18)}.score-orb strong{font-size:49px;line-height:.9;letter-spacing:-.06em}.score-orb span{display:block;font-size:12px;letter-spacing:.14em;margin-top:6px;font-weight:900;opacity:.82}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metric{border:1px solid var(--line);border-radius:19px;background:rgba(255,255,255,.025);padding:14px}.metric b{display:block;font-size:24px;letter-spacing:-.04em;margin-top:7px}.metric span{font-size:12px;color:#817b88;font-weight:900;letter-spacing:.11em}.result-note{margin:12px 0;border:1px solid var(--line);border-radius:19px;padding:15px;color:#b8b2bf;font-size:12px;line-height:1.75}.result-note strong{color:#fff}.cta-row{display:grid;grid-template-columns:1fr 1.5fr;gap:9px;margin-top:12px}.cta{min-height:55px;border-radius:17px;border:1px solid var(--line);background:#17151e;font-weight:900;cursor:pointer}.cta.primary{border:0;background:#fff;color:#100e16}.cta:active{transform:scale(.985)}
/* dex */
.subhead{padding:25px 2px 9px}.subhead .ey{font-size:12px;letter-spacing:.15em;color:#ff967e;font-weight:950}.subhead h2{font-size:43px;letter-spacing:-.055em;margin:10px 0 9px}.subhead p{color:#928c9a;font-size:12px;line-height:1.6;margin:0}.dex-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:17px}.dex-card{border:1px solid var(--line);border-radius:19px;padding:13px;background:rgba(255,255,255,.025);min-height:113px;position:relative;overflow:hidden}.dex-card.locked{filter:saturate(.15);opacity:.48}.dex-ball{width:32px;height:32px;border-radius:45% 55% 58% 42%;background:linear-gradient(140deg,var(--c1),var(--c2));box-shadow:0 8px 18px rgba(0,0,0,.25)}.dex-card h3{font-size:16px;margin:9px 0 2px}.dex-card p{font-size:12px;color:#817b89;margin:0;line-height:1.5}.dex-count{position:absolute;right:11px;top:11px;font-size:12px;color:#77717f}.dex-summary{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:19px;padding:14px;margin-top:10px;background:rgba(255,255,255,.025)}.dex-summary b{font-size:26px}.dex-summary span{font-size:12px;color:#87808e}.back{margin-top:14px;width:100%}
/* rush */
.rush-clock{font-size:36px;font-weight:950;letter-spacing:-.05em;color:#fff}.rush-clock.warn{color:#ff9d75}.rush-card{min-height:300px}.rush-card .scene{font-size:28px;margin-top:20px}.rush-card .game-blob-zone{min-height:120px}.rush-answer{margin-top:12px}
.shake{animation:shake .25s ease}@keyframes shake{20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
@media(max-width:420px){.mode-grid{grid-template-columns:1fr}.mode-card{min-height:122px}.mode-card h3{margin-top:15px}.scene-card{min-height:330px}.game-blob-zone{min-height:140px}.answer{min-height:55px}.hero{padding-top:24px}.mini-demo{height:162px}.blob-wrap{transform:scale(.92)}.game-blob-zone .blob-wrap{transform:scale(.95)}.result-head h2{font-size:47px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
