@font-face{font-family:Samim;src:url(/assets/samim-fd.woff2)format('woff2');font-display:swap}:root{color-scheme:light;--ink:#28233e;--muted:#676177;--teal:#6342ba;--line:#e5dfef;--paper:#fff;--header-height:84px;--dock-height:80px;--clock-height:0px;--radius:18px;--shadow:0 8px 30px #35205e0b}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-padding-top:calc(var(--header-height) + var(--clock-height) + 28px);scroll-padding-bottom:calc(var(--dock-height) + 24px)}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at top right,#e9e2fa,transparent 55%),#f5f3f9;color:var(--ink);font:16px/1.8 Samim,Tahoma,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button,input,select,summary{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #9066dc;outline-offset:3px}h1,h2,h3,p{overflow-wrap:anywhere}h2{font-size:24px;line-height:1.6}h3{font-size:18px}p{margin:8px 0 16px;color:var(--muted)}.game-shell{max-width:1080px;margin:auto;padding:calc(var(--header-height) + var(--clock-height) + 32px + env(safe-area-inset-top,0px))24px calc(var(--dock-height) + 32px + env(safe-area-inset-bottom,0px))}.topbar{position:fixed;z-index:100;top:env(safe-area-inset-top,0px);inset-inline:0;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px max(20px,calc((100vw - 1032px)/2));background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.brand{display:flex;gap:12px;align-items:center;margin-inline-end:auto}.brand-mark{display:grid;place-items:center;width:44px;height:44px;background:#6342ba;color:#fff;border-radius:14px;font-size:28px;font-weight:700}.brand h1{font-size:19px;line-height:1.3;margin:0}.brand small{font-size:12px;color:var(--muted)}.status-chip,.tag{display:inline-block;padding:6px 12px;border-radius:12px;background:#eee8fa;color:#543592;font-size:13px}.status-chip.offline{background:#fff0e8;color:#98471a}#header-actions{display:flex;flex-wrap:wrap;gap:8px}#header-actions:empty{display:none}#header-actions .button{font-size:13px;padding:8px 12px;min-height:44px}.hero{padding:32px;margin-bottom:24px;border:1px solid #ded3f0;border-radius:24px;background:linear-gradient(115deg,#eae2fb,#fff9e8);box-shadow:var(--shadow)}.hero-copy{max-width:650px}.eyebrow{color:#6842af;font-size:14px;font-weight:700}.hero h2{font-size:clamp(28px,4vw,44px);margin:12px 0;line-height:1.6}.hero h2 em{font-style:normal;color:#6342ba}.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.facts span{font-size:13px;background:#ffffffb8;border:1px solid #e5dcee;border-radius:30px;padding:4px 12px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:32px;min-height:240px;box-shadow:var(--shadow)}.panel h2,.panel h3{margin:0 0 8px}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.section-head>div{min-width:0}.sub{color:var(--muted);font-size:14px}.letter{display:grid;place-items:center;flex:none;width:64px;height:64px;border-radius:18px;background:#fff0c6;color:#61421a;font-size:36px;font-weight:700}.round-clock{position:fixed;z-index:101;top:calc(var(--header-height) + env(safe-area-inset-top,0px) + 6px);left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);width:max-content;padding:8px 18px;background:#fff0c6;color:#513912;border:1px solid #e7cf8c;border-radius:14px;font-size:16px;line-height:1.5;font-weight:700;text-align:center;box-shadow:var(--shadow);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:10px 20px;background:#6342ba;color:#fff;border:1px solid transparent;border-radius:12px;font-weight:700;font-size:15px;line-height:1.6;text-align:center;transition:background .15s,transform .15s}.button.secondary{background:#f1ecfa;color:#563394;border-color:#dfd4ef}.button.danger{background:#fff1f1;color:#a52d42;border-color:#f0cbd2}.button:disabled{opacity:.5;cursor:not-allowed}.button:active:not(:disabled){transform:translateY(1px)}@media(hover:hover){.button:hover:not(:disabled){filter:brightness(.95)}}.actions,.join-row,.code-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:20px}.panel>.button{margin:8px 0}.mode-menu{display:grid;gap:12px;max-width:720px}.mode-menu .button{justify-content:flex-start;padding:20px 24px;font-size:18px;min-height:68px;border-radius:16px}.mode-description{font-size:14px;margin:0 4px 16px}#action-dock{position:fixed;z-index:102;bottom:0;inset-inline:0;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;padding:12px max(16px,calc((100vw - 1032px)/2))calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 30px #35205e0b}#action-dock .button{flex:1 1 150px;max-width:400px;margin:0}#action-dock .tag{font-size:14px}.grid,.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.field{min-width:0}.field label{display:block;font-weight:700;font-size:14px;margin-bottom:8px}.field input,.field select,.join-row input,.code-input{width:100%;min-height:50px;padding:10px 14px;border:1px solid #cec4df;border-radius:12px;background:#fff;color:var(--ink);font-size:16px}.field input{scroll-margin-block:180px 140px}.field input::placeholder{color:#82798f}.field small{font-size:13px;color:var(--muted)}.guest-field{max-width:460px;margin:20px 0}.room-settings{display:grid;gap:20px;padding:24px;margin:24px 0;background:#f8f6fc;border:1px solid var(--line);border-radius:18px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.category-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.check-option{display:flex;align-items:center;gap:10px;font-size:14px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:12px;min-height:48px;cursor:pointer}.check-option input,.choice input{width:20px;height:20px;accent-color:#6342ba;flex:none}.code-input{max-width:190px;text-align:center;direction:ltr;letter-spacing:.12em}.players{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.player{padding:8px 14px;background:#f4f1f9;border:1px solid var(--line);border-radius:12px;font-size:14px;overflow-wrap:anywhere}.player.host{background:#fff4d6;border-color:#ead8a5}.room-list,.ballot,.vote-list{display:grid;gap:12px}.room-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:16px}.notice{margin:0 0 20px;padding:14px 18px;background:#fff4d6;border:1px solid #e9d59c;border-radius:14px;font-size:14px}.notice:empty{display:none}.notice.error{background:#fff0f0;border-color:#edc3cb;color:#a52d42}.divider{height:1px;background:var(--line);margin:24px 0}.ballot-card{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}.vote-help{padding:14px 18px;background:#f3effb;border-radius:12px;font-size:14px}.vote-row,.choice{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;background:#f8f6fc;border-radius:12px;min-width:0}.vote-answer{display:grid;gap:4px;min-width:0}.vote-answer small{color:var(--muted);font-size:13px}.vote-answer strong,.choice span{overflow-wrap:anywhere}.vote-toggle{flex:none;min-height:48px;min-width:105px;padding:8px 12px;border:1px solid #edbac6;border-radius:12px;background:#fff0f3;color:#a52d42;font-weight:700}.vote-toggle.is-valid{background:#eaf6ef;color:#246443;border-color:#afd6bf}.vote-toggle:disabled{opacity:.6;cursor:not-allowed}.own-answers{margin-top:24px}.scores{display:grid;gap:10px;margin:0 0 24px}.scores h3{font-size:18px;padding-bottom:8px}.score-row{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px 20px;border:1px solid var(--line);border-radius:14px;background:#f9f7fc}.score-row span{overflow-wrap:anywhere;min-width:0}.score-row strong{color:#6342ba;flex-shrink:0;font-variant-numeric:tabular-nums}.scores:not(.round-history)>.score-row:first-of-type{background:#fff5d9;border-color:#e7d194}.room-total{padding:20px;border:1px solid #ddd0f2;border-radius:18px;background:#faf7ff}.opinion-details{font-size:14px}.opinion-details summary{cursor:pointer;padding:8px 0}.footer{text-align:center;color:var(--muted);font-size:13px;padding:24px}.footer span{color:#805abb;margin:0 6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:650px){.game-shell{padding-inline:12px}.topbar{padding:10px 16px;gap:8px}.brand small{display:none}.brand h1{font-size:17px}.brand-mark{width:36px;height:36px;font-size:24px}.status-chip{font-size:12px;padding:5px 8px}#header-actions:not(:empty){width:100%;justify-content:flex-end}.hero{padding:24px 20px;margin-bottom:16px}.panel{padding:20px 16px;border-radius:20px}.section-head{gap:12px;margin-bottom:20px}.section-head h2{font-size:21px}.grid,.choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-grid{grid-template-columns:1fr}.category-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.room-settings{padding:16px}.letter{width:52px;height:52px;font-size:30px}.score-row{padding:14px 12px;font-size:14px;gap:12px}.score-row strong{font-size:14px}.ballot-card{padding:14px}.room-total{padding:14px}.mode-menu .button{font-size:16px;padding:16px}.vote-row{padding:12px;gap:10px}.vote-toggle{min-width:96px;font-size:14px}#action-dock{gap:8px;padding-top:10px}#action-dock .button{flex-basis:110px;font-size:14px;padding:10px}.footer{padding:20px 8px}body[data-screen=writing] .section-head .letter{display:none}}@media(max-width:380px){.grid,.choices,.category-choices{grid-template-columns:1fr}.score-row{flex-wrap:wrap}.room-row{flex-wrap:wrap}.status-chip{max-width:145px}.vote-row{flex-wrap:wrap}.vote-toggle{margin-inline-start:auto}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.public-rooms{margin-top:2rem}.public-rooms input[type=search]{min-width:0;flex:1}.public-room-row{padding:1rem;margin-block:1rem;border:1px solid var(--border,#8886);border-radius:1rem}.public-room-row h3{margin:0}