:root{--bg:#090711;--panel:#12101c;--panel2:#191625;--line:#2a2638;--text:#f6f3fa;--muted:#aaa4b6;--violet:#c9a7ff;--rose:#ff9cb0;--green:#67e0ae;--danger:#ff9d9d;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}html,body{margin:0;min-width:280px;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:radial-gradient(900px 600px at 50% -220px,#292044 0,var(--bg) 70%);-webkit-text-size-adjust:100%}body{min-height:100dvh}button,input{font:inherit}button{color:inherit}.hidden{display:none!important}.app-shell{width:min(100%,1080px);min-height:100dvh;margin:auto;position:relative;padding-top:var(--safe-t)}.topbar{height:76px;padding:14px clamp(18px,4vw,42px);display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(255,255,255,.06)}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:0;background:none;padding:8px 0;cursor:pointer;min-height:48px}.brand b{font-family:Georgia,serif;font-size:21px}.brand span{font-size:10px;color:var(--violet);letter-spacing:.13em;text-transform:uppercase;font-weight:700}.room-pill{border:1px solid var(--line);border-radius:999px;padding:9px 12px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px;white-space:nowrap}.status-dot{width:8px;height:8px;background:var(--green);border-radius:50%;box-shadow:0 0 12px var(--green);display:inline-block;flex:0 0 auto}.view{display:none;min-height:calc(100dvh - 76px);padding:clamp(22px,5vw,60px) clamp(18px,5vw,60px) calc(24px + var(--safe-b));animation:in .22s ease}.view.active{display:flex;flex-direction:column}@keyframes in{from{opacity:0;transform:translateY(5px)}}.hero{margin:auto 0 44px;text-align:center}.eyebrow{margin:0 0 12px;color:var(--violet);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800}.hero h1{font:700 clamp(38px,7vw,72px)/1.02 Georgia,serif;letter-spacing:-.045em;margin:0 auto 20px;max-width:800px}.lede,.section-head p,.panel>p{color:var(--muted);font-size:clamp(15px,2vw,18px);line-height:1.55;margin:0}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:780px;width:100%;margin:0 auto auto}.mode-card{min-height:112px;padding:22px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel2),var(--panel));border-radius:20px;text-align:left;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;cursor:pointer;transition:.18s transform,.18s border-color}.mode-card:hover,.mode-card:focus-visible{transform:translateY(-2px);border-color:#5d4f7a;outline:0}.mode-card.accent{border-color:#4e3d6b;background:linear-gradient(145deg,#211834,var(--panel))}.mode-icon{font-size:25px;color:var(--violet)}.mode-card b{display:block;font-size:17px;margin-bottom:5px}.mode-card small{display:block;color:var(--muted);font-size:13px;line-height:1.35}.arrow{color:var(--muted);font-size:20px}.panel{width:100%;max-width:760px;margin:auto;background:rgba(18,16,28,.84);border:1px solid var(--line);border-radius:24px;padding:clamp(22px,5vw,42px);box-shadow:0 24px 80px #0007}.panel.narrow{max-width:540px}.panel.centered{text-align:center}.section-head{margin-bottom:28px}.section-head h2,.panel h2{font:700 clamp(28px,4vw,38px)/1.1 Georgia,serif;margin:0 0 12px}.two-inputs{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;color:var(--muted);font-size:13px;font-weight:700;margin-bottom:18px}input{display:block;width:100%;height:52px;margin-top:8px;border-radius:13px;padding:0 15px;border:1px solid var(--line);background:#0d0b14;color:var(--text);font-size:16px;outline:none}input:focus{border-color:var(--violet);box-shadow:0 0 0 3px #c9a7ff1b}.primary,.secondary{border:0;border-radius:14px;min-height:52px;padding:13px 20px;font-weight:800;cursor:pointer;transition:.15s transform,.15s opacity;width:100%}.primary{background:var(--violet);color:#160f22}.secondary{background:var(--panel2);border:1px solid var(--line)}.primary:hover,.secondary:hover{transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.divider{height:34px;display:flex;align-items:center;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.13em}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.divider span{padding:0 12px}.join-row{display:grid;grid-template-columns:1fr 112px;gap:10px}.code-input{text-align:center;text-transform:uppercase;letter-spacing:.22em;font-size:22px;font-weight:900;margin:0}.form-error{min-height:22px;color:var(--danger)!important;font-size:13px!important;margin-top:10px!important}.big-code{font-size:clamp(50px,12vw,78px);font-weight:900;letter-spacing:.18em;margin:4px 0 20px;color:var(--violet);padding-left:.18em}.copy-btn{width:auto;min-width:150px;margin:24px auto 0}.game-view{justify-content:center;gap:16px}.game-meta{width:min(100%,800px);margin:0 auto;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.game-meta div{display:flex;gap:8px}.game-meta div span{border:1px solid var(--line);padding:6px 9px;border-radius:999px}.question-card{width:min(100%,800px);margin:0 auto;background:rgba(18,16,28,.9);border:1px solid var(--line);border-radius:24px;padding:clamp(20px,5vw,46px)}.turn-line{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted);font-weight:700;margin-bottom:22px}.question-card h2{font:700 clamp(24px,4.5vw,40px)/1.22 Georgia,serif;margin:0 0 clamp(24px,4vw,38px);overflow-wrap:anywhere}.options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.option{min-width:0;min-height:130px;border:1px solid #373147;background:linear-gradient(145deg,#1b1728,#12101c);border-radius:18px;padding:20px;text-align:left;display:flex;align-items:flex-start;gap:14px;cursor:pointer;transition:.16s border-color,.16s transform,.16s background}.option:hover,.option:focus-visible{border-color:var(--violet);transform:translateY(-2px);outline:none}.option.selected{border-color:var(--violet);background:#2a1e3b}.option span{width:31px;height:31px;border-radius:50%;background:#29233a;color:var(--violet);display:grid;place-items:center;flex:0 0 auto}.option b{font-size:clamp(15px,2vw,18px);line-height:1.45;overflow-wrap:anywhere}.waiting-note{color:var(--muted);text-align:center;margin:20px 0 0;line-height:1.5}.shield{font-size:46px;color:var(--violet);margin-bottom:22px}.reveal-view{justify-content:center;gap:22px}.result-head{text-align:center}.result-head h1{font-size:clamp(50px,10vw,82px);line-height:1;margin:0 0 10px;color:var(--green);letter-spacing:-.04em}.result-head.split h1{color:var(--rose)}.result-head p:last-child{color:var(--muted);margin:0}.reveal-card{width:min(100%,800px);margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:clamp(20px,4vw,34px)}.reveal-card>h2{font:700 clamp(19px,3vw,27px)/1.3 Georgia,serif;margin:0 0 20px}.reveal-choice{display:grid;grid-template-columns:32px 1fr;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.reveal-choice>span{color:var(--violet);font-weight:900}.voters{grid-column:2;color:var(--muted);font-size:13px}.next-btn{width:min(100%,800px);margin:0 auto}.connection-toast{position:fixed;left:50%;bottom:calc(18px + var(--safe-b));transform:translateX(-50%);padding:11px 17px;border-radius:999px;background:#251f31;border:1px solid #40374f;font-size:13px;z-index:10;box-shadow:0 10px 30px #0009;white-space:nowrap}
@media(max-width:680px){.topbar{height:66px}.view{min-height:calc(100dvh - 66px)}.mode-grid,.options{grid-template-columns:1fr}.mode-card{min-height:92px;padding:17px}.question-card{padding:20px}.option{min-height:104px;padding:17px}.two-inputs{grid-template-columns:1fr}.hero{margin:8vh 0 32px}.hero h1{font-size:clamp(36px,12vw,54px)}.join-row{grid-template-columns:1fr 100px}}
@media(max-width:360px){.view{padding-left:13px;padding-right:13px}.topbar{padding-left:14px;padding-right:14px}.room-pill{padding:7px 9px}.mode-card{grid-template-columns:34px 1fr auto;gap:9px}.panel{padding:18px;border-radius:19px}.big-code{font-size:46px}.question-card{border-radius:18px}.option{min-height:92px}}
@media(min-width:900px) and (min-height:720px){.game-view,.reveal-view{padding-top:38px;padding-bottom:50px}.question-card{min-height:500px;display:flex;flex-direction:column;justify-content:center}.question-card h2{font-size:39px}.option{min-height:150px}}
@media(max-height:650px){.view{justify-content:flex-start;padding-top:18px}.hero{margin:4px 0 22px}.mode-card{min-height:82px}.panel{margin:0 auto}.question-card h2{margin-bottom:18px}.option{min-height:88px}.result-head h1{font-size:48px}.reveal-view{gap:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.category-picker{position:relative;border:1px solid var(--line);border-radius:14px;margin:0 0 18px;padding:14px 12px 12px}.category-picker legend{padding:0 6px;color:var(--muted);font-size:13px;font-weight:800}.category-picker legend span{color:var(--violet);font-weight:700;margin-left:5px}.category-actions{position:absolute;right:10px;top:-14px;display:flex;gap:4px;background:var(--panel);padding:2px 4px}.category-actions button{border:0;background:none;color:var(--muted);font-size:11px;font-weight:800;padding:5px;cursor:pointer}.category-actions button:hover,.category-actions button:focus-visible{color:var(--text);outline:0}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.category-chip{min-width:0;min-height:36px;border:1px solid var(--line);border-radius:10px;background:#0d0b14;color:var(--muted);font-size:11px;font-weight:750;line-height:1.15;padding:7px 8px;cursor:pointer;overflow-wrap:anywhere}.category-chip.selected{border-color:#8168a9;background:#281d39;color:var(--text);box-shadow:inset 0 0 0 1px #c9a7ff22}.category-chip:focus-visible{outline:2px solid var(--violet);outline-offset:1px}
@media(max-width:380px){.category-grid{gap:5px}.category-chip{font-size:10px;padding:6px}.category-picker{padding-left:9px;padding-right:9px}}
