:root{color:#172033;background:#000;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--surface: #ffffff;--surface-soft: #f8fafc;--line: #d2dbe4;--ink-muted: #52677b;--ink-strong: #172033;--accent: #24505a;--own-number: #be123c;--own-number-soft: #fff1f2;--own-number-line: #fb7185}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#000}body:has(.rooms-view),body:has(.room-detail-view),body:has(.empty-view){background:#000}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(20px,4vw,56px);background:#111827;color:#f9fafb}.brand{display:inline-flex;align-items:center;min-width:0;gap:12px}.brand-mark{width:40px;height:40px;border:1px solid #64748b;border-radius:8px;background:#f9fafb;object-fit:cover}.brand strong,.brand small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand small{color:#cbd5e1;font-size:12px}.topbar-actions{display:flex;align-items:center;flex:0 0 auto;gap:10px}.account-profile-menu{position:relative;display:inline-flex}.profile-menu-button,.profile-option-button{display:inline-grid;place-items:center;border:1px solid #64748b;border-radius:8px;padding:0;background:#1f2937}.profile-menu-button{width:40px;height:40px}.profile-menu-button img,.profile-option-button img{width:100%;height:100%;border-radius:inherit;object-fit:cover}.profile-menu-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:20;display:flex;width:310px;flex-direction:column;gap:14px;border:1px solid #334155;border-radius:8px;padding:16px;background:#111827;box-shadow:0 20px 52px #00000047}.topbar-menu-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #475569;border-radius:10px;padding:0;background:#1f2937;color:#f8fafc;font:inherit;font-size:1.05rem;font-weight:700;box-shadow:inset 0 1px #ffffff14}.topbar-menu-button:hover{border-color:#e0b15a;background:#273449;color:#f2cf7f}.topbar-story-button{min-height:38px;border:1px solid #475569;border-radius:10px;padding:0 12px;background:#1f2937;color:#f8fafc;font:inherit;font-size:.9rem;font-weight:800;box-shadow:inset 0 1px #ffffff14}.topbar-story-button:hover{border-color:#e0b15a;background:#273449;color:#f2cf7f}.profile-menu-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.profile-menu-heading>div{min-width:0}.profile-menu-heading p,.profile-menu-heading small{display:block;margin:0}.profile-menu-heading p{color:#f8fafc;font-weight:800}.profile-menu-heading small{margin-top:3px;overflow:hidden;color:#94a3b8;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.profile-logout-button{flex:0 0 auto;border:1px solid #475569;border-radius:999px;padding:5px 9px;background:#1f2937;color:#cbd5e1;font-size:12px;font-weight:700}.profile-logout-button:hover{border-color:#e0b15a;color:#f2cf7f}.selected-portrait-button{display:flex;align-items:center;gap:12px;width:100%;border:1px solid #334155;border-radius:8px;padding:10px;background:#1f2937;color:#f8fafc;text-align:left}.selected-portrait-button img{width:58px;height:58px;flex:0 0 auto;border:1px solid #64748b;border-radius:8px;object-fit:cover}.selected-portrait-button span,.selected-portrait-button small{display:block}.selected-portrait-button small{margin-top:4px;color:#94a3b8}.portrait-menu-panel{position:absolute;top:calc(100% + 10px);right:320px;z-index:21;display:grid;width:178px;grid-template-columns:repeat(2,72px);gap:10px;border:1px solid #334155;border-radius:8px;padding:12px;background:#111827;box-shadow:0 20px 52px #00000047}.profile-option-button{width:72px;height:96px}.profile-option-button.selected{border-color:#f2cf7f;box-shadow:0 0 0 2px #f2cf7f4d}.profile-display-name-form{display:grid;gap:7px}.profile-display-name-form label{color:#cbd5e1;font-size:12px;font-weight:800}.profile-display-name-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.profile-display-name-form input{min-width:0;border:1px solid #475569;border-radius:6px;padding:9px 10px;background:#0f172a;color:#f8fafc}.profile-display-name-form .secondary-button{min-height:0;padding:8px 12px}.profile-stats{display:grid;gap:9px;border-top:1px solid #334155;padding-top:12px}.profile-stats-heading{display:flex;align-items:center;justify-content:space-between;color:#f8fafc;font-size:13px}.profile-stats-heading span{color:#f2cf7f;font-size:12px;font-weight:800}.profile-stats dl{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0}.profile-stats dl div{display:grid;gap:3px;border-radius:6px;padding:8px 4px;background:#1f2937;text-align:center}.profile-stats dt{color:#94a3b8;font-size:11px}.profile-stats dd{margin:0;color:#f8fafc;font-size:16px;font-weight:800}.profile-menu-error{margin:2px 0 0;color:#fecdd3;font-size:12px;line-height:1.35}.profile-menu-success{margin:2px 0 0;color:#bbf7d0;font-size:12px;line-height:1.35}.profile-delete-account-button{align-self:flex-start;border:1px solid #7f1d1d;border-radius:999px;padding:5px 9px;background:#1f1315;color:#fecdd3;font-size:12px;font-weight:800}.profile-delete-account-button:hover:not(:disabled){border-color:#fca5a5;background:#2b171a;color:#fee2e2}.profile-delete-account-button:disabled{cursor:wait;opacity:.6}.empty-view{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:48px 0}.prologue-view{display:grid;width:min(960px,calc(100% - 32px));margin:0 auto;padding:16px 0 48px;place-items:center}.prologue-panel{display:grid;justify-items:center;width:100%;padding:0;color:#f8fafc;text-align:center}.prologue-panel .eyebrow{margin-bottom:18px;color:#d6aa55}.prologue-image{display:block;width:min(840px,100%);max-height:min(58vh,520px);border-radius:12px;object-fit:contain;background:#000;box-shadow:0 24px 70px #0000007a}.prologue-narration{display:grid;gap:6px;width:100%;margin-top:22px;color:#dbe4f0;font-size:clamp(.95rem,2.6vw,1.12rem);line-height:1.7}.prologue-narration p{margin:0}.prologue-actions{display:flex;justify-content:center;gap:10px;margin-top:24px}.room-detail-view{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:16px 0}.rooms-view{width:min(1040px,calc(100% - 32px));margin:0 auto;padding:12px 0;color:#f8fafc}.rooms-view .section-heading{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:16px;min-height:72px}.rooms-view .eyebrow{margin-bottom:4px;color:#d6aa55}.rooms-view h1{margin-bottom:0;color:#fff7df;font-size:42px;line-height:.95}.rooms-view .section-heading .summary-strip{display:flex;align-items:center;justify-content:flex-start;width:auto;min-height:0;margin:0;gap:16px}.rooms-view .section-heading .summary-strip div{flex:0 0 auto;min-width:0;border:0;border-radius:0;padding:0;background:transparent;box-shadow:none;justify-content:flex-start}.rooms-view .section-heading .summary-strip div+div{border-left:0}.rooms-view .button-label-compact{display:none}.rooms-view .section-heading>.primary-button{grid-column:4}.rooms-view .primary-button{border:1px solid #e0b15a;background:linear-gradient(180deg,#f2cf7f,#a86b16);color:#111827}.rooms-view .secondary-button{border:1px solid #6b5a37;background:#161b24;color:#fff7df}.rooms-view .error-message{color:#fca5a5}.rooms-view .session-note{color:#a9b6c6}.rooms-view .session-note span{color:#d1b574}.rooms-view .summary-strip div,.rooms-view .loading-panel,.rooms-view .active-room-banner,.rooms-view .room-card,.rooms-view .empty-list-message{border-color:#3b3428;background:#0c1118eb;box-shadow:0 20px 52px #0000003d}.rooms-view .summary-strip strong{color:#f2cf7f}.rooms-view .summary-strip span,.rooms-view .active-room-banner span,.rooms-view .room-card p,.rooms-view .game-type-label{color:#a9b6c6}.rooms-view .active-room-banner strong,.rooms-view .room-card-row h2{color:#fff7df}.rooms-view .status-pill{border:1px solid #6b5a37;background:#d6aa5524;color:#f2cf7f}.rooms-view .icon-button{border:1px solid #e0b15a;background:#f2cf7f;color:#111827}.rooms-view .icon-button:disabled{border-color:#3f4652;background:#27303d;color:#7f8a99}.rooms-view .loading-panel{color:#fff7df}.rooms-view .loading-spinner{background:repeating-conic-gradient(from 0deg,#f2cf7f 0deg 18deg,transparent 18deg 24deg,#4b5563 24deg 42deg,transparent 42deg 48deg)}.rooms-view .empty-list-message{border-style:dashed;color:#a9b6c6}.rooms-view .modal-panel{border:1px solid #3b3428;background:#0c1118;color:#f8fafc}.rooms-view .field-group,.rooms-view .field-group input{color:#f8fafc}.rooms-view .field-group input{border-color:#3f4652;background:#111827}.rooms-view .field-group input::placeholder{color:#6f7b8a}.rooms-view .game-type-description{margin:0;color:#e8c879;font-size:.92rem;font-weight:800;line-height:1.45}.rooms-view .segmented-control label,.rooms-view .segmented-control-placeholder{border-color:#3f4652;background:#111827;color:#cbd5e1}.rooms-view .segmented-control label.selected{border-color:#e0b15a;background:#d6aa552e;color:#fff7df}.rooms-view .segmented-control-placeholder:disabled{border-color:#303743;background:#0f151e;color:#596575}.room-detail-view{color:#f8fafc}.room-detail-view .eyebrow{color:#d6aa55}.room-detail-view h1,.room-detail-view h2,.room-detail-view h3,.room-detail-view .panel-heading h2{color:#fff7df}.room-detail-view .room-meta,.room-detail-view .nomination-help,.room-detail-view .result-panel p,.room-detail-view .empty-message{color:#a9b6c6}.room-detail-view .primary-button{border:1px solid #e0b15a;background:linear-gradient(180deg,#f2cf7f,#a86b16);color:#111827}.room-detail-view .secondary-button{border:1px solid #6b5a37;background:#161b24;color:#fff7df}.room-detail-view .danger-button{border:1px solid #b85b4e;background:#3b1513;color:#fecaca}.room-detail-view .error-message{color:#fca5a5}.room-detail-view .nomination-panel,.room-detail-view .result-panel,.room-detail-view .participant-panel,.room-detail-view .chat-panel{border-color:#3b3428;background:#0c1118f0;box-shadow:0 20px 52px #00000042}.room-detail-view .room-layout{grid-template-columns:minmax(0,1fr)}.room-detail-view .timer-badge{color:#f2cf7f}.room-detail-view .panel-heading span,.room-detail-view .final-reveal-heading span,.room-detail-view .vote-summary span{border:1px solid #6b5a37;background:#d6aa5524;color:#f2cf7f}.room-detail-view .own-number-banner{border-color:#e0b15a;background:#d6aa5524;color:#fff7df}.room-detail-view .own-number-banner strong{color:#f2cf7f}.room-detail-view .own-number-banner span{border-left-color:#6b5a37}.room-detail-view .nomination-option{border-color:#3f4652;background:#111827;color:#dbe4ea}.room-detail-view .nomination-option.selected{border-color:#e0b15a;background:#d6aa552e;color:#fff7df}.room-detail-view .participant-focus-card{border-color:#3f4652;background:#111827;color:#f8fafc}.room-detail-view .participant-focus-card.selectable{cursor:pointer}.room-detail-view .participant-focus-card.selected{border-color:#e0b15a;background:#d6aa552e;box-shadow:0 0 0 2px #e0b15a33}.room-detail-view .participant-focus-card.own{border-color:#e0b15a}.room-detail-view .participant-focus-card.inactive{border-color:#303743;background:#151a23;color:#7f8a99}.room-detail-view .participant-focus-card.inactive.selectable{cursor:pointer}.room-detail-view .participant-focus-card.inactive.selected{border-color:#e0b15a;background:#5e4d2f8a;box-shadow:0 0 0 2px #e0b15a33}.room-detail-view .participant-focus-card.inactive .participant-focus-avatar{filter:grayscale(1) brightness(.48) contrast(1.12);opacity:.72}.room-detail-view .participant-focus-card.inactive .participant-focus-meta strong,.room-detail-view .participant-focus-card.inactive small{color:#7f8a99}.room-detail-view .participant-focus-meta strong{color:#fff7df}.room-detail-view .participant-focus-meta em{border:1px solid #e0b15a;border-radius:999px;padding:2px 7px;color:#f2cf7f;font-size:12px;font-style:normal;font-weight:900}.room-detail-view .participant-final-role{border:1px solid #4b5563;border-radius:999px;padding:2px 7px;background:#4b556347;color:#dbe4ea;font-size:12px;font-weight:900}.room-detail-view .participant-final-role.mafia{border-color:#b85b4e;background:#b85b4e2e;color:#fecaca}.room-detail-view .participant-focus-card small{color:#a9b6c6}.room-detail-view .participant-focus-card input{accent-color:#d6aa55}.room-detail-view .participant-avatar{border-color:#3f4652;background:#202835}.room-detail-view .participant-group-heading{color:#cbd5e1}.room-detail-view .participant-group-heading strong{background:#d6aa5529;color:#f2cf7f}.room-detail-view .participant-group-heading.inactive{color:#7f8a99}.room-detail-view .participant-group-heading.inactive strong{background:#27303d;color:#9ca3af}.room-detail-view .participant-row{border-color:#3f4652;background:#111827}.room-detail-view .participant-row strong,.room-detail-view .participant-row span{color:#f8fafc}.room-detail-view .participant-row small{color:#8f9cad}.room-detail-view .participant-row.inactive{background:#202835;color:#7f8a99}.room-detail-view .participant-row.inactive strong,.room-detail-view .participant-row.inactive span{color:#9ca3af}.room-detail-view .participant-row.own{border-color:#e0b15a;background:#d6aa5529}.room-detail-view .participant-row.own .participant-number{color:#f2cf7f}.room-detail-view .participant-row.own .participant-avatar{border-color:#e0b15a}.room-detail-view .participant-row.inactive.own{background:#b85b4e29}.room-detail-view .message-row{border-color:#27303d;border-left-color:#3f4652;background:#111827}.room-detail-view .message-row strong,.room-detail-view .message-row p{color:#f8fafc}.room-detail-view .message-row.own{border-color:#6b5a37;border-left-color:#e0b15a;background:#d6aa5524}.room-detail-view .message-row.own .message-number{color:#f2cf7f}.room-detail-view .message-row.system{border-color:#876a32;border-left-color:#f2cf7f;background:#533d17eb}.room-detail-view .message-row.system p{color:#fff7df}.room-detail-view .message-progress{background:#ffffff1f}.room-detail-view .message-progress span{background:linear-gradient(90deg,#b88631,#f2cf7f,#b88631)}.room-detail-view .message-row.system.help p{white-space:pre-line}.room-detail-view .message-form input{border-color:#3f4652;background:#070b11;color:#f8fafc;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.room-detail-view .message-form input::placeholder{color:#6f7b8a}.room-detail-view .message-form input:not(:disabled){border-color:#f2c76b;background:#0c1118;box-shadow:0 0 0 2px #f2c76b42,0 0 18px #f2c76b29}.room-detail-view .message-form input:not(:disabled)::placeholder{color:#d1b574}.room-detail-view .message-form input:focus-visible{outline:2px solid #ffe29a;outline-offset:2px;box-shadow:0 0 0 3px #f2c76b57,0 0 24px #f2c76b38}.room-detail-view .message-form input:disabled{border-color:#2b3340;background:#070b11;color:#64748b;cursor:not-allowed}.room-detail-view .final-reveal-row{border-color:#3f4652;background:#111827}.room-detail-view .final-reveal-row.mafia{border-color:#b85b4e;background:#b85b4e24}.room-detail-view .final-reveal-row span{color:#f8fafc}.room-detail-view .final-reveal-row small{color:#a9b6c6}.empty-view{display:grid;align-content:center;justify-items:center;color:#f8fafc;text-align:center}.empty-view .eyebrow{color:#d6aa55}.empty-view h1{max-width:760px;color:#fff7df}.empty-view .error-message{color:#fca5a5}.login-view{display:grid;width:100%;margin:0 auto;min-height:calc(100vh - 76px);padding:32px 12px 12px;grid-template-rows:1fr auto;place-items:start center;background:#000}.login-panel{display:grid;justify-items:center;width:min(720px,100%);color:#f8fafc;text-align:center}.login-title-image{display:block;width:min(460px,86vw);border-radius:8px;animation:login-title-fade-in 1.5s ease-out both;box-shadow:0 28px 80px #000000b8}@keyframes login-title-fade-in{0%{opacity:0}to{opacity:1}}.login-copy{width:min(620px,100%)}.login-view .eyebrow{color:#d6aa55}.login-view h1{color:#fff7df}.login-view .intro{margin-top:24px;color:#cbd5e1}.login-view .login-actions{display:grid;justify-content:center;justify-items:center;gap:10px;grid-template-columns:repeat(2,minmax(220px,auto))}.google-auth-button{display:inline-flex;align-items:center;min-height:44px;min-width:220px;justify-content:flex-start;gap:10px;border:1px solid #8e918f;border-radius:8px;padding:0 12px;background:#fff;color:#1f1f1f;font-family:Roboto,Arial,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;text-decoration:none;cursor:pointer}.google-auth-button:hover:not(:disabled),.google-auth-button:focus-visible{background:#fff;color:#1f1f1f}.google-auth-button__icon{display:inline-grid;flex:0 0 auto;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff}.google-auth-button__icon svg{display:block;width:18px;height:18px}.login-view .error-message{grid-column:1 / -1;max-width:520px;margin:2px 0 0}.login-view .login-caution{grid-column:1 / -1;max-width:560px;margin:0;color:#94a3b8;font-size:.78rem;line-height:1.55}.login-view .notice{width:min(620px,100%);color:#94a3b8}.login-footer{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;width:min(720px,100%);padding-top:20px;color:#64748b;font-size:.75rem;line-height:1.5;text-align:center}.login-footer-links{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:6px 12px}.login-footer-links a{color:#cbd5e1;text-decoration:underline;text-underline-offset:3px}.login-footer-links a:hover,.login-footer-links a:focus-visible{color:#f8fafc}.legal-view,.signup-view{width:min(1120px,100%);margin:0 auto;padding:32px 16px 56px;color:#e5e7eb}.legal-view__header,.signup-view__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.legal-view__header h1,.signup-view__header h1{color:#f8fafc}.signup-view__intro{margin:0;color:#94a3b8;line-height:1.6}.agreement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.agreement-panel{display:grid;min-height:540px;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #334155;border-radius:8px;background:#0b111a}.agreement-panel__title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #253144;background:#111827}.agreement-panel__title h2{margin:0;color:#f8fafc}.agreement-panel__title a{color:#f4c76e;font-weight:700;text-decoration:none}.agreement-panel__body{overflow:auto;padding:18px}.agreement-check{display:flex;align-items:center;gap:10px;padding:16px 18px;border-top:1px solid #253144;background:#101722;color:#f8fafc;font-weight:700}.agreement-check input{width:18px;height:18px;accent-color:#d6aa55}.signup-actions{display:grid;justify-content:center;justify-items:center;gap:10px;margin-top:20px}.signup-actions .primary-button:disabled,.google-auth-button:disabled{cursor:not-allowed;opacity:.54}.markdown-document{border:1px solid #334155;border-radius:8px;background:#0b111a;padding:24px;color:#dbe3ef;line-height:1.75}.agreement-panel__body .markdown-document{border:0;border-radius:0;background:transparent;padding:0}.markdown-document__h1{margin:0 0 20px;color:#f8fafc;font-size:32px;line-height:1.15}.markdown-document__h2{margin:28px 0 10px;color:#f8fafc;font-size:22px;line-height:1.25}.markdown-document__h3{margin:22px 0 8px;color:#e5e7eb;font-size:17px}.markdown-document__paragraph{margin:0 0 12px}.markdown-document__list{margin:0 0 14px;padding-left:22px}.markdown-document__list li+li{margin-top:6px}.markdown-document__code{overflow:auto;margin:0 0 14px;padding:12px;border-radius:8px;background:#030712;color:#e5e7eb;white-space:pre-wrap}.markdown-document__table-wrap{overflow:auto;margin:0 0 18px}.markdown-document__table{width:100%;min-width:640px;border-collapse:collapse}.markdown-document__table th,.markdown-document__table td{border:1px solid #334155;padding:8px 10px;text-align:left;vertical-align:top}.markdown-document__table th{background:#111827;color:#f8fafc}.eyebrow{margin:0 0 8px;color:#49606f;font-size:13px;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:14px;font-size:clamp(36px,6vw,64px);line-height:1}h2{margin-bottom:6px;font-size:20px}.intro{color:#405467;font-size:17px;line-height:1.65}.login-actions,.section-heading,.room-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.login-actions{justify-content:flex-start;margin-top:12px;flex-wrap:wrap}.primary-button,.secondary-button,.danger-button,.ghost-button,.icon-button{border:0;border-radius:8px;font-weight:700}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;text-align:center;text-decoration:none}.primary-button{background:#111827;color:#f9fafb}.secondary-button{background:#dbe4ea;color:#172033}.signup-submit-button{border:1px solid #f8fafc;background:#f8fafc;color:#111827;box-shadow:0 10px 28px #f8fafc29}.signup-submit-button:hover:not(:disabled),.signup-submit-button:focus-visible{background:#f8fafc;color:#111827}.danger-button{min-height:44px;padding:0 18px;background:#f4d7d5;color:#8a1f15}.ghost-button{padding:8px 10px;background:transparent;color:#f9fafb}.icon-button{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;background:#172033;color:#fff;font-size:18px}.icon-button:disabled{cursor:not-allowed;background:#cbd5df;color:#6b7c8f}.notice,.error-message,.session-note{margin-top:18px;color:#52677b;line-height:1.6}.error-message{color:#b42318}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr);margin-top:28px}.summary-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.summary-strip div{display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:#ffffffe0}.summary-strip strong,.summary-strip span{display:inline-flex;align-items:center}.summary-strip strong{font-size:18px;line-height:1}.summary-strip span{color:var(--ink-muted);font-size:14px;font-weight:800}.loading-panel{display:grid;place-items:center;gap:18px;min-height:260px;margin-top:28px;border:1px solid var(--line);border-radius:8px;background:#ffffffe0;color:#334155}.loading-panel strong{font-size:28px;font-weight:800;letter-spacing:0}.loading-spinner{width:112px;height:112px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#111827 0deg 18deg,transparent 18deg 24deg,#d1d5db 24deg 42deg,transparent 42deg 48deg);-webkit-mask:radial-gradient(circle,transparent 0 45%,#000 46% 100%);mask:radial-gradient(circle,transparent 0 45%,#000 46% 100%);animation:loading-spin 1s steps(96) infinite}.empty-list-message{margin:0;border:1px dashed #cbd5e1;border-radius:8px;padding:24px;background:#ffffffb8;color:var(--ink-muted);font-weight:800;text-align:center}@keyframes loading-spin{to{transform:rotate(360deg)}}.active-room-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:18px;border:1px solid #b8c8d5;border-radius:8px;padding:14px 16px;background:#f1f6f8}.active-room-banner div{min-width:0}.active-room-banner strong,.active-room-banner span{display:block}.active-room-banner strong{overflow-wrap:anywhere}.active-room-banner span{margin-top:4px;color:var(--ink-muted);font-weight:700}.room-detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px}.room-title-row{display:flex;align-items:center;min-width:0;gap:10px}.room-detail-header h1{overflow:hidden;margin:0;font-size:24px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.room-meta{flex:0 0 auto;margin:0;color:#52677b;font-size:14px;font-weight:700}.own-number-banner{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 0;border:1px solid var(--own-number-line);border-radius:999px;padding:6px 10px;background:var(--own-number-soft);color:#7f1d1d;font-size:14px;font-weight:800}.own-number-banner strong{color:var(--own-number);font-size:18px}.room-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.room-layout{display:grid;grid-template-columns:minmax(240px,.36fr) minmax(0,.64fr);gap:24px;margin-top:28px}.nomination-panel,.result-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:20px;border:1px solid #d2dbe4;border-radius:8px;padding:18px;background:#fff}.result-panel h2,.nomination-panel h2{margin-bottom:0}.own-number-banner span{border-left:1px solid var(--own-number-line);padding-left:8px}.vote-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.vote-summary span{border:1px solid #d2dbe4;border-radius:999px;padding:4px 10px;background:#f5f8fb;color:#33475b;font-size:13px}.final-reveal{margin-top:16px}.final-reveal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.final-reveal-heading h3{margin:0;font-size:16px}.final-reveal-heading span{border:1px solid #d2dbe4;border-radius:999px;padding:4px 10px;color:#33475b;font-size:13px;font-weight:800}.final-reveal-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.final-reveal-row{display:grid;gap:2px;border:1px solid #d2dbe4;border-radius:8px;padding:10px;background:#f8fbfd}.final-reveal-row.mafia{border-color:#f0b7b7;background:#fff7f7}.final-reveal-row span{color:#172633;font-weight:900}.final-reveal-row small{color:#52677b}.nomination-help{margin:6px 0 0;color:#52677b;font-size:14px;line-height:1.55}.nomination-panel{display:grid;align-items:stretch;justify-content:stretch}.participant-focus-panel{gap:16px;width:100%}.participant-focus-layout{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-height:0}.participant-focus-roster{display:grid;align-content:start;gap:16px;min-width:0}.participant-focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.participant-focus-slot{display:grid;min-width:0}.participant-focus-chat{height:clamp(460px,calc(100vh - 330px),700px);border:0;border-left:1px solid #3b3428;border-radius:0;padding:0 0 0 18px;background:transparent;box-shadow:none}.participant-focus-chat .message-list{margin:16px 0}.participant-focus-chat-stack{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;border-left:1px solid #3b3428;padding-left:18px}.participant-focus-chat-stack .chat-panel{border:0;border-radius:0;padding:0;background:transparent;box-shadow:none}.participant-focus-chat-stack .participant-focus-chat{border-left:0;padding-left:0}.mafia-night-chat{padding-bottom:14px!important;border-bottom:1px solid #3b3428!important}.mafia-night-chat .message-list{min-height:96px;max-height:160px;margin:12px 0}.participant-focus-chat-stack.night-only{grid-template-rows:minmax(0,1fr)}.participant-focus-chat-stack.night-only .mafia-night-chat{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:clamp(460px,calc(100vh - 330px),700px);padding-bottom:0!important;border-bottom:0!important}.participant-focus-chat-stack.night-only .mafia-night-chat .message-list{max-height:none}.mafia-night-chat .panel-heading h2:after{content:" 비밀";color:#f6c86b;font-size:12px;letter-spacing:.08em}.participant-focus-card{display:grid;align-content:start;justify-items:center;min-height:214px;gap:10px;border:1px solid #dbe4ea;border-radius:8px;padding:12px;background:#f8fafc;font-weight:800}.participant-focus-card-empty{border-color:#303947;background:#111827b8;box-shadow:inset 0 0 0 1px #ffffff05}.participant-focus-avatar{width:min(116px,100%);height:126px;border:1px solid #dbe4ea;border-radius:8px;background:#f8fafc;object-fit:contain}.participant-focus-body{display:grid;justify-items:center;gap:5px;width:100%}.participant-focus-meta{display:flex;align-items:center;justify-content:center;gap:8px;min-height:28px;font-size:18px;line-height:1}.participant-focus-meta input,.participant-focus-card-abstain input{width:18px;height:18px;margin:0}.participant-focus-card small{text-align:center;line-height:1.4}.participant-focus-card-abstain{align-content:center;min-height:120px}.nomination-grid{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px}.nomination-option{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:112px;min-height:46px;gap:10px;border:1px solid #dbe4ea;border-radius:8px;padding:12px;background:#f8fafc;font-weight:800}.nomination-option.selected{border-color:#24505a;background:#e6f0f2}.night-action-grid,.target-card-grid{align-items:stretch;gap:14px}.night-action-option,.target-card-option{flex-direction:column;justify-content:flex-start;min-width:132px;min-height:154px;gap:10px;padding:12px 14px}.night-action-option .night-action-avatar,.target-card-option .target-card-avatar{width:clamp(82px,14vw,104px);height:auto;max-height:124px;border-radius:8px;object-fit:contain}.night-action-meta,.target-card-meta{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:28px;font-size:18px;line-height:1}.night-action-meta input,.target-card-meta input{width:18px;height:18px;margin:0;accent-color:#d6aa55}.participant-avatar{width:34px;height:34px;flex:0 0 auto;border:1px solid #cbd5e1;border-radius:8px;background:#eef2f6;object-fit:cover}.result-panel p{margin-bottom:0;color:#52677b}.room-bottom-actions{display:flex;justify-content:flex-end;margin-top:16px}.participant-panel,.chat-panel{border:1px solid #d2dbe4;border-radius:8px;background:#fff}.participant-panel{padding:18px}.chat-panel{display:grid;height:clamp(520px,calc(100vh - 320px),720px);min-height:0;grid-template-rows:auto 1fr auto;padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading span{border-radius:999px;padding:5px 9px;background:#eef2f6;color:#49606f;font-weight:800}.chat-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.participant-list{display:grid;gap:16px;margin-top:16px}.participant-group{display:grid;gap:10px}.participant-group-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#243447;font-size:13px;font-weight:800}.participant-group-heading strong{border-radius:999px;padding:3px 8px;background:#e6f0f2;color:#24505a;font-size:12px}.participant-group-heading.inactive{margin-top:4px;color:#64748b}.participant-group-heading.inactive strong{background:#edf1f5;color:#64748b}.participant-row{display:grid;grid-template-columns:42px 48px 1fr;gap:4px 12px;align-items:center;border:1px solid #dbe4ea;border-radius:8px;padding:12px;background:#f8fafc;min-height:74px}.participant-row strong{font-size:24px}.participant-row .participant-avatar{grid-row:span 2;width:42px;height:42px}.participant-row span{font-weight:800;overflow-wrap:anywhere}.participant-row small{color:#65778a}.participant-row.inactive{background:#edf1f5;color:#64748b}.participant-row.own{border-color:var(--own-number-line);background:var(--own-number-soft)}.participant-row.own .participant-number{color:var(--own-number)}.participant-row.inactive.own{background:#ffe4e6}.message-list{display:flex;flex-direction:column;gap:10px;min-height:0;margin:18px 0;overflow:auto;overscroll-behavior:contain}.message-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:start;border:1px solid transparent;border-left:4px solid transparent;border-radius:8px;padding:12px;background:#eef2f6}.message-row strong{color:#172033}.message-row.own{border-color:#fecdd3;border-left-color:var(--own-number-line);background:var(--own-number-soft)}.message-row.own .message-number{color:var(--own-number)}.message-row.pending{opacity:.78}.message-row p{margin:0;line-height:1.5;overflow-wrap:anywhere}.message-content{display:grid;min-width:0;gap:10px}.message-notify-image{display:block;width:min(100%,640px);height:auto;border-radius:8px}.message-progress{position:relative;height:6px;overflow:hidden;border-radius:999px;background:#b4530929}.message-progress span{position:absolute;inset-block:0;width:38%;border-radius:inherit;background:linear-gradient(90deg,#b45309,#f4c152,#b45309);animation:message-progress-slide 1.2s ease-in-out infinite}@keyframes message-progress-slide{0%{transform:translate(-110%)}to{transform:translate(295%)}}.message-row.system{grid-template-columns:minmax(0,1fr);border-color:#f4c152;border-left-color:#b45309;background:#fff3c4}.message-row.system p{color:#5f370e;font-weight:800}.empty-message{color:#65778a}.message-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.message-form input{min-width:0;min-height:44px;border:1px solid #cbd5e1;border-radius:8px;padding:0 14px;color:#172033}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:#11182799;z-index:20}.modal-panel{display:grid;gap:18px;width:min(440px,100%);border-radius:8px;padding:24px;background:#fff;box-shadow:0 24px 80px #1118273d}.leaderboard-backdrop{z-index:40;padding:20px}.leaderboard-panel{display:grid;width:min(880px,100%);max-height:min(720px,calc(100vh - 40px));gap:18px;border:1px solid #475569;border-radius:10px;padding:22px;overflow:hidden;background:#0c1118;color:#f8fafc;box-shadow:0 26px 80px #00000073}.leaderboard-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.leaderboard-header h2{margin:0;font-size:28px}.leaderboard-description{max-width:560px;margin:6px 0 0;color:#9aa7b8;font-size:.9rem;font-weight:700;line-height:1.45}.leaderboard-close-button{display:grid;width:38px;height:38px;place-items:center;border:1px solid #475569;border-radius:8px;background:#1f2937;color:#f8fafc;font-size:24px;line-height:1}.leaderboard-loading,.leaderboard-empty{margin:0;padding:42px 16px;color:#94a3b8;text-align:center}.leaderboard-loading{display:grid;gap:16px;justify-items:center}.leaderboard-loading strong{color:#cbd5e1;font-size:15px}.leaderboard-progress{position:relative;width:min(360px,100%);height:6px;overflow:hidden;border-radius:999px;background:#f2cf7f21}.leaderboard-progress span{position:absolute;inset-block:0;width:38%;border-radius:inherit;background:linear-gradient(90deg,#b45309,#f2cf7f,#b45309);animation:message-progress-slide 1.2s ease-in-out infinite}.leaderboard-table-wrap{max-height:526px;overflow:auto;border:1px solid #334155;border-radius:8px}.leaderboard-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.leaderboard-table th,.leaderboard-table td{border-bottom:1px solid #263244;padding:12px 14px;text-align:center;white-space:nowrap}.leaderboard-table th{position:sticky;top:0;z-index:1;background:#111827;color:#94a3b8;font-size:12px}.leaderboard-table tbody tr:last-child td{border-bottom:0}.leaderboard-table tbody tr:hover{background:#172033}.leaderboard-table .leaderboard-top-rank{background:#f2cf7f0f}.leaderboard-rank{color:#f2cf7f;font-size:16px;font-weight:900}.leaderboard-player{display:flex;align-items:center;min-width:180px;gap:10px;text-align:left}.leaderboard-player img{width:36px;height:36px;flex:0 0 auto;border:1px solid #64748b;border-radius:7px;object-fit:cover}.leaderboard-player strong{overflow:hidden;max-width:320px;text-overflow:ellipsis}.game-alert-modal p:not(.eyebrow){margin-bottom:0;color:#405467;line-height:1.6;white-space:pre-line}.field-group{display:grid;gap:8px;color:#243447;font-weight:800}.field-group input{min-height:44px;border:1px solid #cbd5e1;border-radius:8px;padding:0 14px;color:#172033}.field-group legend{padding:0}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.segmented-control label,.segmented-control-placeholder{display:grid;place-items:center;min-height:44px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#34495c;font:inherit;cursor:pointer}.segmented-control label.selected{border-color:var(--accent);background:#e6f0f2;color:#172033}.segmented-control-placeholder:disabled{border-color:#dbe4ea;background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.segmented-control input{position:absolute;opacity:0;pointer-events:none}.game-type-label{display:inline-flex;margin-top:4px;color:#52677b;font-weight:800}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.room-list{display:grid;gap:12px}.room-card{border:1px solid #d2dbe4;border-radius:8px;background:#fff}.room-card{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;overflow:hidden;padding:18px}.room-card-row{display:flex;align-items:center;justify-content:space-between;min-width:0;overflow:hidden;flex:1 1 auto;gap:16px}.room-card-row h2{flex:1 1 auto;min-width:0;max-width:100%;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-card-meta{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;min-width:0;gap:10px;overflow:hidden;white-space:nowrap}.room-card p{margin-bottom:0;color:#5a6f82}.status-pill{flex:0 0 auto;border-radius:999px;padding:5px 9px;background:#e6f0f2;color:#24505a;font-size:12px;font-weight:800}.empty-view{min-height:calc(100vh - 76px)}@media(max-width:760px){.section-heading,.dashboard-grid{align-items:stretch}.section-heading{flex-direction:column}.rooms-view .section-heading{grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:58px}.rooms-view .section-title{min-width:0}.rooms-view .eyebrow{margin-bottom:2px;font-size:11px;white-space:nowrap}.rooms-view h1{font-size:28px;white-space:nowrap}.rooms-view .section-heading .summary-strip{min-width:0;min-height:0;gap:10px}.rooms-view .section-heading .summary-strip div{gap:3px;padding:0}.rooms-view .section-heading .summary-strip span{font-size:11px;white-space:nowrap}.rooms-view .section-heading .summary-strip strong{font-size:16px}.rooms-view .section-heading .primary-button{min-height:44px;padding:0 12px;font-size:13px;white-space:nowrap}.rooms-view .button-label-wide{display:none}.rooms-view .button-label-compact{display:inline}.room-detail-header{align-items:center}.room-detail-header .room-title-row h1{display:none}.room-detail-header .room-title-row{flex:0 0 auto}.topbar{gap:12px;padding:14px 16px}.brand{flex:1 1 auto}.brand-mark{flex:0 0 auto}.topbar-actions{justify-content:flex-end}.profile-menu-panel{width:min(310px,calc(100vw - 32px))}.portrait-menu-panel{top:calc(100% + 326px);right:0;max-height:calc(100vh - 360px);overflow:auto}.leaderboard-backdrop{align-items:center;padding:16px}.leaderboard-panel{width:min(100%,880px);max-height:calc(100vh - 32px);border:1px solid #475569;border-radius:10px;padding:18px 14px}.dashboard-grid,.summary-strip,.room-layout{grid-template-columns:1fr}.participant-focus-layout{grid-template-columns:minmax(0,1fr);gap:10px;overflow:visible}.participant-focus-panel{gap:10px;margin-top:8px;padding:10px}.participant-focus-roster{gap:8px}.participant-focus-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.participant-focus-roster>.panel-heading{gap:8px}.participant-focus-roster>.panel-heading>span{padding:3px 7px;font-size:10px;white-space:nowrap}.participant-focus-roster .own-number-banner{display:flex;max-width:calc(100vw - 64px);min-height:28px;gap:6px;margin-top:4px;padding:4px 7px;overflow-x:auto;flex-wrap:nowrap;font-size:10px;white-space:nowrap;scrollbar-width:none}.participant-focus-roster .own-number-banner::-webkit-scrollbar{display:none}.participant-focus-roster .own-number-banner strong{font-size:12px}.participant-focus-roster .own-number-banner span{padding-left:6px}.participant-focus-card{min-height:80px;gap:3px;padding:5px 3px}.participant-focus-avatar{width:42px;height:44px;border-radius:6px}.participant-focus-body{gap:2px}.participant-focus-meta{min-height:16px;gap:3px;font-size:14px}.participant-focus-meta input,.participant-focus-card-abstain input{width:14px;height:14px}.room-detail-view .participant-focus-meta em{display:none}.room-detail-view .participant-final-role{padding:1px 3px;font-size:8px}.participant-focus-card small{font-size:10px;line-height:1.1}.participant-focus-card-abstain{min-height:80px;padding:5px}.participant-focus-card-abstain strong{font-size:11px}.participant-focus-card-abstain small{display:none}.participant-focus-roster>.primary-button{min-height:36px;padding:0 12px;font-size:13px}.participant-focus-chat{height:clamp(280px,calc(100dvh - 360px),520px);min-height:280px;border-left:0;border-top:0;padding:0}.participant-focus-chat-stack{border-left:0;padding-left:0}.mafia-night-chat .message-list{max-height:140px}.participant-focus-chat-stack.night-only .mafia-night-chat{height:clamp(280px,calc(100dvh - 360px),520px);min-height:280px}.participant-focus-chat-stack.night-only .mafia-night-chat .message-list{max-height:none}.participant-focus-chat .panel-heading h2{font-size:16px}.participant-focus-chat .panel-heading span{padding:3px 7px;font-size:11px}.participant-focus-chat .message-list{margin:8px 0}.room-actions{justify-content:flex-start}.result-panel{align-items:flex-start;flex-direction:column}.message-form{grid-template-columns:minmax(0,1fr) 64px;gap:8px}.message-form .primary-button{width:64px;min-height:44px;padding:0 10px;white-space:nowrap}.login-view .login-actions{grid-template-columns:minmax(220px,1fr)}.login-view .google-auth-button,.signup-actions .google-auth-button{width:min(320px,100%)}.empty-view{padding:32px 0}h1{font-size:40px}}@media(max-width:420px){.rooms-view .section-heading{grid-template-columns:auto auto minmax(0,1fr) auto;gap:6px}.rooms-view .eyebrow{display:none}.rooms-view h1{font-size:24px}.rooms-view .section-heading .summary-strip{gap:6px}.rooms-view .section-heading .summary-strip span{font-size:10px}.rooms-view .section-heading .primary-button{padding:0 9px;font-size:12px}}
