html,body,#root{height:100%}:root{--bg: #e6e7ee;--text: #2c2c34;--muted: #6b6b76;--accent: #7c5cff;--accent-2: #ff5c8a;--shadow-light: #fff;--shadow-dark: #b8bac2;--radius: 1.1rem}:root[data-theme=dark]{--bg: #262a33;--text: #ecedf1;--muted: #9a9aa5;--accent: #9b82ff;--accent-2: #ff7aa2;--shadow-light: #2f3440;--shadow-dark: #1a1d24}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #262a33;--text: #ecedf1;--muted: #9a9aa5;--accent: #9b82ff;--accent-2: #ff7aa2;--shadow-light: #2f3440;--shadow-dark: #1a1d24}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;transition:background .2s,color .2s}code{font-size:.85em}.raised{background:var(--bg);box-shadow:6px 6px 12px var(--shadow-dark),-6px -6px 12px var(--shadow-light)}.pressed{background:var(--bg);box-shadow:inset 4px 4px 8px var(--shadow-dark),inset -4px -4px 8px var(--shadow-light)}button{font:inherit;cursor:pointer;background:var(--bg);color:var(--text);border:none;border-radius:.8rem;padding:.75rem 1.2rem;box-shadow:4px 4px 8px var(--shadow-dark),-4px -4px 8px var(--shadow-light);transition:box-shadow .1s,transform .1s,opacity .1s}button:hover:not(:disabled){transform:translateY(-1px)}button:active:not(:disabled){box-shadow:inset 3px 3px 6px var(--shadow-dark),inset -3px -3px 6px var(--shadow-light);transform:none}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}input{font:inherit;background:var(--bg);color:var(--text);border:none;border-radius:.7rem;padding:.75rem 1rem;box-shadow:inset 3px 3px 6px var(--shadow-dark),inset -3px -3px 6px var(--shadow-light);width:100%}input:focus{outline:2px solid var(--accent)}.app{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:1.5rem 1rem 3rem}.app__header{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:640px;margin-bottom:2rem}.app__header h1{margin:0;text-align:center;letter-spacing:-.035em;font-size:clamp(2.2rem,6vw,3.2rem);font-weight:700;background:linear-gradient(180deg,var(--text) 45%,var(--muted) 100%);background-clip:text;-webkit-background-clip:text;color:transparent}.subtitle{color:var(--muted);text-align:center;margin:0}.app__content{display:flex;flex-direction:column;gap:1.75rem;width:100%;max-width:640px}.theme-toggle{position:fixed;top:1.25rem;right:1.25rem;z-index:10;width:2.75rem;height:2.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;padding:0}.tabs{display:flex;gap:.4rem;padding:.4rem;border-radius:999px;background:var(--bg);box-shadow:inset 3px 3px 6px var(--shadow-dark),inset -3px -3px 6px var(--shadow-light)}.tab{background:none;color:var(--muted);border:none;border-radius:999px;padding:.55rem 1.35rem;font-size:.95rem;box-shadow:none;transition:box-shadow .15s,color .15s}.tab--active{background:var(--bg);color:var(--accent);font-weight:600;box-shadow:3px 3px 6px var(--shadow-dark),-3px -3px 6px var(--shadow-light)}.section-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:1rem;margin:0 0 .75rem}.solo-mode{display:flex;flex-direction:column;gap:1.75rem}.card-area{display:flex;justify-content:center}.card-view{border-radius:var(--radius);width:100%;min-height:220px;padding:2rem 2rem 2rem 2.5rem;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:1rem;justify-content:center}.card-view:before{content:"";position:absolute;top:0;bottom:0;left:0;width:.4rem;background:var(--accent-2)}.card-view h2{align-self:flex-start;margin:0;color:var(--accent-2);text-transform:uppercase;letter-spacing:.04em;font-size:1.1rem;font-weight:700}.card-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:100%}.card-choice{aspect-ratio:2 / 3;min-height:200px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;text-align:center;padding:1.5rem 1rem;font-size:1.05rem}@media (max-width: 520px){.card-choice-grid{grid-template-columns:1fr}.card-choice{aspect-ratio:unset;min-height:100px}}.card-view-empty{color:var(--muted);text-align:center;align-items:center;justify-content:center}.questions{color:var(--text);padding-left:1.2rem;margin:0;line-height:1.6;font-size:1.05rem}.deck-status{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;font-size:.9rem;display:flex}.deck-actions{display:flex;gap:.7rem}.online-entry,.lobby,.game-room{display:flex;flex-direction:column;gap:1.5rem}.online-mode{border-radius:var(--radius);text-align:center;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.wip-badge{color:var(--accent);font-size:1.1rem;font-weight:700}.online-form{border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.field{color:var(--muted);font-size:.85rem;display:flex;flex-direction:column;gap:.5rem}.input--code{text-transform:uppercase;letter-spacing:.2em;text-align:center;font-weight:700}.form-error{color:var(--accent-2);margin:0;font-size:.9rem}.primary-button,.ghost-button{border-radius:.8rem;padding:.8rem 1.2rem;font-size:1rem}.primary-button{color:var(--accent);font-weight:700}.ghost-button{color:var(--muted);font-size:.9rem}.primary-button--full{width:100%}.notice{color:var(--muted);border-radius:var(--radius);padding:1.25rem;text-align:center}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}.player-list li{display:flex;align-items:center;gap:.5rem;border-radius:999px;padding:.5rem .9rem;font-size:.9rem}.player-list li.is-you .name{color:var(--accent);font-weight:700}.player-list .score strong{color:var(--accent)}.player-list .score{color:var(--muted);font-variant-numeric:tabular-nums}.tag{text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;font-weight:700;color:var(--accent-2)}.lobby__code{border-radius:var(--radius);text-align:center;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:.4rem}.lobby__code span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}.lobby__code strong{color:var(--accent);letter-spacing:.3em;font-size:2.5rem}.lobby__code p{color:var(--muted);margin:0;font-size:.85rem}.lobby__actions{display:flex;flex-direction:column;align-items:center;gap:.75rem}.stage{border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:.9rem}.stage h3{margin:0;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:1rem}.vote-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.vote-header h2{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:1rem}.vote-timer{color:var(--muted);background:var(--bg);box-shadow:inset 2px 2px 4px var(--shadow-dark),inset -2px -2px 4px var(--shadow-light);border-radius:999px;padding:.3rem .8rem;font-weight:700;font-size:.8rem;white-space:nowrap}.vote-grid{display:flex;flex-wrap:wrap;gap:.6rem}.vote-chip{background:var(--bg);color:var(--text);border-radius:.8rem;padding:.7rem 1.1rem;font-size:.95rem}.vote-chip--selected{color:var(--accent);font-weight:700;box-shadow:inset 3px 3px 6px var(--shadow-dark),inset -3px -3px 6px var(--shadow-light)}.vote-chip__check{color:var(--accent);margin-left:.4rem}.vote-pending{margin-top:.25rem}.hint{color:var(--muted);font-size:.85rem;margin:0}.tally{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.tally__row{display:grid;grid-template-columns:minmax(9rem,auto) 1fr 2rem;align-items:center;gap:.75rem;font-size:.9rem}.tally__row .vote-chip{width:100%}.tally__bar-track{background:var(--bg);height:.6rem;border-radius:999px;box-shadow:inset 2px 2px 4px var(--shadow-dark),inset -2px -2px 4px var(--shadow-light);overflow:hidden}.tally__bar{background:var(--accent);height:100%;border-radius:999px;transition:width .3s}.answer-form .field input{color:var(--text);font-size:1rem}.reveal-row{border-top:1px solid var(--shadow-dark);padding-top:.9rem}.reveal-row .question{font-weight:600;margin:0 0 .5rem}.answer-pair{display:flex;justify-content:space-between;gap:1rem;color:var(--muted);flex-wrap:wrap}.answer-pair strong{color:var(--text)}.match-toggle{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.9rem;color:var(--muted)}.match-toggle input{box-shadow:none;width:auto;padding:0;accent-color:var(--accent)}
