:root{--bg:#141a24;--panel:#1d2634;--ink:#e8ecf2;--muted:#8b97a8;--accent:#4b9fea}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;display:flex;flex-direction:column;align-items:center;min-height:100vh;touch-action:manipulation}header{text-align:center;padding:14px 16px 6px;position:relative;width:100%;max-width:520px}header h1{font-size:1.7rem;font-weight:800;letter-spacing:0.5px;color:var(--accent)}#status{color:var(--muted);font-size:0.85rem;margin-top:4px}#mute{position:absolute;right:14px;top:12px;padding:6px 10px;font-size:1.05rem;border-radius:10px}#hud{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;margin-bottom:8px}#hud[hidden]{display:none}#hud-left{display:flex;flex-direction:column;gap:5px}.pill{background:var(--panel);border-radius:999px;padding:4px 8px;font-size:0.72rem;color:var(--muted);white-space:nowrap;text-align:center}#cards{display:flex;gap:6px;justify-content:center;min-width:0}.card{position:relative;width:clamp(58px,18vw,86px);height:50px;perspective:300px}.card .face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:10px;font-weight:700;font-size:clamp(0.68rem,2.4vw,0.85rem);text-transform:capitalize;backface-visibility:hidden;transition:transform 0.45s ease}.card .back{background:linear-gradient(135deg,#2c3a4e,#1d2634);border:1px solid #35465e;color:var(--muted);font-size:1.2rem}.card .front{background:#f2f5fa;color:#1b2330;transform:rotateY(180deg);padding:2px 6px;text-align:center;line-height:1.1}.card.active .back,.card.solved .back,.card.failed .back{transform:rotateY(-180deg)}.card.active .front,.card.solved .front,.card.failed .front{transform:rotateY(0deg)}.card.active .front{outline:2px solid var(--accent)}.card .badge{position:absolute;top:-7px;right:-7px;width:22px;height:22px;border-radius:50%;display:none;align-items:center;justify-content:center;font-size:0.8rem;color:#fff}.card.solved .badge{display:flex;background:#2ecc71}.card.failed .badge{display:flex;background:#ff5a5a}#pie{width:40px;height:40px;border-radius:50%;background:conic-gradient(var(--accent) 100%,#0e1420 0);border:3px solid #0e1420;flex-shrink:0}#pie.low{animation:pie-pulse 1s infinite}@keyframes pie-pulse{50%{transform:scale(1.08)}}body.gaming #guesses{display:none}#avatar{flex-shrink:0;display:flex}#avatar svg{width:min(30vw,122px);height:auto}#av-mouthbox{transform-origin:45px 63px}#av-mouthbox.talking{animation:av-talk 0.22s infinite alternate ease-in-out}@keyframes av-talk{from{transform:scaleY(0.55)}to{transform:scaleY(1.25)}}#avatar svg.bounce{animation:av-bounce 0.55s infinite ease-in-out}@keyframes av-bounce{0%,100%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-26px) rotate(-10deg)}50%{transform:translateY(0) rotate(0deg)}75%{transform:translateY(-26px) rotate(10deg)}}#fx{position:fixed;inset:0;pointer-events:none;z-index:30}#avatar-row{display:flex;align-items:center;gap:10px;margin:2px 0 10px}#bubble{position:relative;flex:1;min-height:54px;display:flex;align-items:center;background:#ffffff;color:#1b2330;border-radius:14px;padding:9px 14px;font-size:0.95rem;box-shadow:0 3px 14px rgba(0,0,0,0.4);opacity:0;pointer-events:none;transition:opacity 0.18s ease}#bubble::before{content:"";position:absolute;left:-9px;top:50%;transform:translateY(-50%);border:10px solid transparent;border-right-color:#ffffff;border-left:none}#bubble.show{opacity:1}#modal{position:fixed;inset:0;background:rgba(10,14,20,0.75);display:flex;align-items:center;justify-content:center;z-index:10}#modal[hidden]{display:none}#modal-card{background:var(--panel);border-radius:16px;padding:24px 26px;text-align:center;display:flex;flex-direction:column;gap:14px;max-width:min(92vw,440px);max-height:86vh;overflow-y:auto}#modal-text{font-size:1.3rem;font-weight:700}body.over #hud,body.over #canvas-wrap,body.over #controls,body.over #guesses{display:none}#banner{display:flex;flex-direction:column;gap:14px;flex:1;min-height:62vh;background:var(--panel);border-radius:16px;padding:18px 16px}#banner[hidden]{display:none}#banner-title{text-align:center;font-size:1.45rem}#banner-brag{text-align:center;color:var(--accent);font-size:0.92rem;font-weight:600;margin-top:-6px}#banner-brag[hidden]{display:none}#banner-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;flex:1;align-content:center}#banner-btns{display:flex;gap:10px}#banner-btns button{flex:1;padding:13px 8px;font-size:1rem}.sum-cell{display:flex;flex-direction:column;gap:5px}.sum-card{position:relative;border-radius:8px;padding:6px 4px;font-size:0.72rem;font-weight:700;text-transform:capitalize;background:#f2f5fa;color:#1b2330;line-height:1.1}.sum-card .badge{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.65rem;color:#fff}.sum-cell.solved .badge{background:#2ecc71}.sum-cell.failed .badge{background:#ff5a5a}.sum-thumb{width:100%;aspect-ratio:1;border-radius:8px;background:#0e1420;object-fit:contain}div.sum-thumb{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:0.7rem}button.primary{background:var(--accent);border-color:var(--accent);color:#0b1524;font-weight:700}main{width:100%;max-width:520px;padding:10px 14px 24px}#canvas-wrap{width:100%;display:flex;justify-content:center}#pad{background:var(--panel);border-radius:14px;touch-action:none;cursor:crosshair}#controls{display:flex;gap:10px;justify-content:center;margin:12px 0}button{background:var(--panel);color:var(--ink);border:1px solid #2c3a4e;border-radius:10px;padding:10px 18px;font-size:0.95rem;cursor:pointer}button:active{background:#253145}#guesses{display:flex;flex-direction:column;gap:8px;min-height:130px}.guess{display:grid;grid-template-columns:2rem 6.5rem 1fr 3rem;align-items:center;gap:8px;background:var(--panel);border-radius:10px;padding:8px 12px;opacity:0.75}.guess.top{opacity:1;outline:1px solid var(--accent)}.guess .emoji{font-size:1.3rem}.guess .name{text-transform:capitalize}.guess .bar{background:#0e1420;border-radius:6px;height:10px;overflow:hidden}.guess .bar span{display:block;height:100%;background:var(--accent)}.guess .pct{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}#selftest table{margin-top:10px;border-collapse:collapse;font-size:0.85rem}#selftest td,#selftest th{border:1px solid #2c3a4e;padding:4px 10px}#selftest tr.ok td{color:#7ee08a}#selftest tr.bad td{color:#ff7a7a}footer{text-align:center;margin-top:14px;color:var(--muted);font-size:0.75rem}footer a{color:var(--muted);text-decoration:none}#ad-slot{min-height:0}#ad-slot ins{border-radius:10px;overflow:hidden}