:root{--bg:#14123a;--bg2:#241f63;--card:#ffffff14;--card-border:#ffffff1f;--text:#f7f5ff;--muted:#a9a4d6;--accent:#ffb703;--accent-dark:#e07a00;--die:#fff3d6;--die-shadow:#c9a86a;--die-text:#1d1846;--good:#2ec27e;--bad:#ff5a6e;--dupe:#ffd23f;--radius:16px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(120% 80% at 50% 0%, var(--bg2), var(--bg) 70%) fixed, var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input{font:inherit;color:inherit}.app{max-width:480px;min-height:100dvh;margin:0 auto;padding:0 16px}.screen{flex-direction:column;gap:16px;padding-block:20px 32px;display:flex}.offline{inset:env(safe-area-inset-top,0px) 0 auto;z-index:10;text-align:center;background:var(--bad);color:#fff;padding:6px;font-size:14px;font-weight:700;position:fixed}h1,h2,h3{margin:0}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px;font-size:1rem}h2 small{text-transform:none;letter-spacing:0;font-weight:400}h3{color:var(--muted);margin-bottom:8px;font-size:.9rem;font-weight:600}.label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.75rem}.muted,.note{color:var(--muted)}.note{margin:10px 0 0;font-size:.85rem}.error{color:var(--bad);text-align:center;margin:0;font-weight:700}.btn{border:1px solid var(--card-border);background:var(--card);cursor:pointer;border-radius:999px;padding:12px 20px;font-weight:700;transition:transform .1s,filter .2s}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:linear-gradient(180deg, var(--accent), var(--accent-dark));color:#231400;border:0;box-shadow:0 4px #9a4f00}.btn.big{padding:16px;font-size:1.15rem}.btn.small{padding:8px 14px;font-size:.9rem}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:16px}.home{justify-content:center;min-height:100dvh}.home-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.mode-tabs{margin:0;overflow:visible}.mode-tabs .tab{padding:8px 18px}.profile-btn{cursor:pointer;border:1px solid var(--card-border);background:var(--card);width:42px;height:42px;color:var(--text);border-radius:50%;place-items:center;font-size:1.1rem;font-weight:900;display:grid}.profile-btn.on{background:linear-gradient(180deg, var(--accent), var(--accent-dark));color:#231400;border:0}.modal-backdrop{z-index:50;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--bg);flex-direction:column;gap:12px;width:min(100%,400px);max-height:90dvh;display:flex;position:relative;overflow-y:auto}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.6rem;position:absolute;top:6px;right:10px}.duel-list{flex-direction:column;gap:16px;display:flex}.duel-greeting{margin:0}.logo{justify-content:center;gap:6px;margin-bottom:4px;display:flex}.logo-die{background:var(--die);width:48px;height:48px;color:var(--die-text);box-shadow:0 4px 0 var(--die-shadow);transform:rotate(calc((var(--i) - 2.5) * 3deg));animation:pop .5s backwards calc(var(--i) * 60ms);border-radius:10px;place-items:center;font-size:30px;font-weight:900;display:grid}.tagline{text-align:center;color:var(--muted);margin:0 0 12px}.field{flex-direction:column;gap:6px;display:flex}.field span{color:var(--muted);font-size:.85rem}input{border:1px solid var(--card-border);background:#00000040;border-radius:12px;outline:none;width:100%;padding:14px;font-size:1.05rem}input:focus{border-color:var(--accent)}.divider{color:var(--muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.divider:before,.divider:after{content:"";background:var(--card-border);flex:1;height:1px}.join-row{gap:10px;display:flex}.code-input{text-align:center;letter-spacing:.3em;text-transform:uppercase;font-weight:800}.room-header{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.room-code{letter-spacing:.15em;color:var(--accent);font-size:3.2rem;font-weight:900;line-height:1.1}.players{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.players li{align-items:center;gap:10px;display:flex}.players li.me .name{font-weight:800}.players em{color:var(--muted);font-style:normal}.offline-player{opacity:.5}.avatar{background:hsl(var(--hue) 70% 60%);color:#14123a;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.avatar.big{width:52px;height:52px;font-size:1.4rem}.name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.badge{background:var(--accent);color:#231400;vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.7rem;font-weight:800}.badge.muted{background:var(--card-border);color:var(--text)}.count{color:var(--muted);font-size:.85rem}.settings{flex-direction:column;gap:12px;display:flex}.setting{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.choices{flex-wrap:wrap;gap:6px;display:flex}.choice{border:1px solid var(--card-border);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:.9rem;font-weight:700}.choice.active{background:var(--accent);color:#231400;border-color:var(--accent)}.choice:disabled{opacity:.35}.actions{flex-direction:column;gap:8px;display:flex}.actions.sticky{z-index:3;padding:12px 0 calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent, var(--bg) 30%);position:sticky;bottom:0}.waiting{text-align:center;color:var(--muted);margin:8px 0;animation:1.6s infinite pulse}.invite{align-items:center;gap:14px;display:flex}.invite h2{margin-bottom:4px}.invite .note{margin:0 0 6px}.qr{background:#fff;border-radius:10px;flex:none;width:120px;height:120px;overflow:hidden}.qr svg{width:100%;height:100%;display:block}.join-url{word-break:break-all;color:var(--accent);-webkit-user-select:all;user-select:all;margin:0;font-weight:800}.center{text-align:center}.countdown{text-align:center;min-height:100dvh;color:var(--muted);justify-content:center;align-items:center}.countdown-number{color:var(--accent);font-size:9rem;font-weight:900;line-height:1;animation:.6s pop}.game{-webkit-user-select:none;user-select:none;gap:12px;padding-top:12px}.game-header{justify-content:space-between;align-items:center;display:flex}.stat{flex-direction:column;display:flex}.stat strong{font-size:1.4rem}.stat.right{text-align:right}.timer{font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:900}.timer.urgent{color:var(--bad);animation:.5s infinite alternate pulse}.timebar{background:var(--card);border-radius:3px;height:6px;overflow:hidden}.timebar div{background:linear-gradient(90deg, var(--accent), var(--good));height:100%;transition:width .25s linear}.current-word{letter-spacing:.08em;border-radius:12px;place-items:center;height:44px;font-size:1.6rem;font-weight:900;transition:background .2s;display:grid}.current-word .hint{letter-spacing:0;color:var(--muted);font-size:.95rem;font-weight:400}.current-word.flash-good{color:var(--good)}.current-word.flash-bad{color:var(--bad);animation:.3s shake}.current-word.flash-dupe{color:var(--dupe)}.board{--pad:10px;--gap:8px;gap:var(--gap);padding:var(--pad);aspect-ratio:1;background:linear-gradient(160deg,#3a3394,#251f6b);border-radius:20px;width:100%;max-width:100%;display:grid;position:relative;box-shadow:inset 0 2px #ffffff26,0 10px 30px #00000059}.board.size-4{grid-template-columns:repeat(4,1fr)}.board.size-5{--gap:6px;grid-template-columns:repeat(5,1fr)}.board.size-6{--gap:5px;--pad:8px;grid-template-columns:repeat(6,1fr)}.board.interactive{touch-action:none;cursor:pointer}.board.small{--pad:6px;--gap:4px;border-radius:12px;max-width:180px}.die{z-index:1;background:var(--die);color:var(--die-text);box-shadow:0 4px 0 var(--die-shadow);border-radius:14%;place-items:center;font-size:clamp(1.4rem,9vw,2.6rem);font-weight:900;transition:transform 80ms,background .15s;display:grid;position:relative}.size-5 .die{font-size:clamp(1.1rem,7vw,2rem)}.size-6 .die{box-shadow:0 3px 0 var(--die-shadow);border-radius:12%;font-size:clamp(1rem,6vw,1.7rem)}.small.size-6 .die,.small.size-5 .die{font-size:.75rem}.small .die{box-shadow:0 2px 0 var(--die-shadow);font-size:.9rem}.die .multi{font-size:.8em}.die.selected{background:var(--accent);transform:scale(.94)}.die.selected.flash-good{background:var(--good);color:#fff}.die.selected.flash-bad{background:var(--bad);color:#fff}.die.selected.flash-dupe{background:var(--dupe)}.path-line{--inset:calc(var(--pad) - var(--gap) / 2);inset:var(--inset);width:calc(100% - 2 * var(--inset));height:calc(100% - 2 * var(--inset));z-index:2;pointer-events:none;position:absolute}.path-line polyline{fill:none;stroke:#1d18468c;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-width:10px}.small .path-line polyline{stroke-width:5px}.type-row{gap:8px;display:flex}.type-row input{text-transform:uppercase;padding:10px 14px}.word-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.word-chips li{letter-spacing:.03em;cursor:default;background:#ffffff1a;border-radius:999px;padding:4px 10px;font-size:.9rem;font-weight:700}.word-chips sup{color:var(--accent);margin-left:3px;font-size:.7em}.word-chips li.shared{box-shadow:inset 0 0 0 1px var(--dupe)}.word-chips li.active{background:var(--accent);color:#231400}.word-chips li.active sup{color:inherit}.results .word-chips li{cursor:pointer}.opponents{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:.85rem;display:flex}.end-round{align-self:center}.results-header{text-align:center}.results-header h1{margin:4px 0;font-size:2rem}.big-score{color:var(--accent);margin:0;font-size:2.6rem;font-weight:900}.big-score small{color:var(--muted);font-size:1rem}.ranking{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ranking li{align-items:center;gap:10px;display:flex}.ranking li.me{font-weight:800}.ranking .place{width:22px;color:var(--muted)}.ranking .delta{color:var(--good);font-size:.9rem}.ranking .total{text-align:right;width:40px;font-size:1.15rem}.tabs{gap:6px;margin-bottom:12px;display:flex;overflow-x:auto}.tab{border:1px solid var(--card-border);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-weight:700}.tab.active{background:var(--text);color:var(--bg)}.missed{flex-direction:column;align-items:center;gap:12px;margin-top:12px;display:flex}.final h1{text-align:center;margin-top:12px;font-size:1.9rem}.podium{justify-content:center;align-items:flex-end;gap:8px;display:flex}.podium-step{flex-direction:column;flex:1;align-items:center;gap:4px;max-width:120px;animation:.6s backwards rise;display:flex}.podium-step .name{text-align:center;max-width:100%}.podium-step.me .name{color:var(--accent);font-weight:900}.podium-step .step{color:#231400;background:var(--die);border-radius:12px 12px 0 0;place-items:center;width:100%;font-size:1.8rem;font-weight:900;display:grid}.place-1 .step{background:linear-gradient(#ffd23f,#e0a800);height:110px}.place-2 .step{background:linear-gradient(#e6e6f0,#a9a9c0);height:80px;animation-delay:.15s}.place-3 .step{background:linear-gradient(#f0a46b,#b86b2e);height:60px;animation-delay:.3s}.table-wrap{overflow-x:auto}.score-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.score-table th,.score-table td{text-align:right;border-bottom:1px solid var(--card-border);padding:6px 8px}.score-table th:first-child,.score-table td:first-child{text-align:left}.score-table tr.me td{color:var(--accent)}.center-screen{justify-content:center;min-height:100dvh}.center-screen h1{margin:4px 0;font-size:1.8rem}.center-tabs{justify-content:center;margin:0}.form{flex-direction:column;gap:12px;display:flex}.duel-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.duel-top h1{font-size:1.6rem}.duel-items{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.duel-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.duel-item:hover,.duel-item:focus-visible{background:#ffffff0f}.duel-item-text{flex-direction:column;flex:1;min-width:0;display:flex}.duel-item-text small{color:var(--muted)}.duel-score{font-variant-numeric:tabular-nums;font-weight:900}.duel-score.ahead{color:var(--good)}.duel-score.behind{color:var(--bad)}.versus{justify-content:space-around;align-items:center;gap:8px;display:flex}.versus-side{flex-direction:column;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.versus-side .name{text-align:center;max-width:100%}.versus-side strong{font-variant-numeric:tabular-nums;font-size:2rem}.versus-side.ahead strong{color:var(--accent)}.versus-vs{color:var(--muted);text-transform:uppercase;font-weight:800}.duel-rounds{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.duel-round{border:1px solid var(--card-border);cursor:pointer;background:0 0;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;display:flex}.duel-round:disabled{cursor:default;opacity:.7}.duel-round-score{font-variant-numeric:tabular-nums;font-weight:900}.duel-total{font-variant-numeric:tabular-nums;margin:0;font-size:2rem;font-weight:900}.duel-lead-text{color:var(--accent);margin:4px 0 0;font-weight:700}.word-chips.clickable li{cursor:pointer}@keyframes pop{0%{opacity:0;transform:scale(.3)}}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}@keyframes pulse{50%{opacity:.55}}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.replay{text-align:center;justify-content:center;align-items:center;min-height:100dvh}.replay-count{color:var(--muted);font-variant-numeric:tabular-nums;margin:4px 0 0}.replay-word{min-height:84px;animation:.3s pop}.replay-word strong{letter-spacing:.08em;font-size:2.2rem;display:block}.replay-finders{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:6px;display:flex}.chip-name{color:#fff;background:hsl(var(--hue) 55% 42%);border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:700}
