:root{--desk: #181210;--desk-dark: #0e0a08;--paper: #3a3228;--paper-light: #44392e;--paper-dark: #302820;--paper-warm: #3e3428;--ink: #e8dcc0;--ink-light: #d4c8a8;--ink-faded: #bca888;--ink-ghost: #9a8c74;--red: #b83838;--red-light: rgba(184, 56, 56, .16);--red-medium: rgba(184, 56, 56, .28);--red-stamp: #c84040;--red-glow: rgba(184, 56, 56, .28);--blue: #3868a0;--blue-light: rgba(56, 104, 160, .18);--blue-medium: rgba(56, 104, 160, .3);--blue-stamp: #4878b0;--blue-glow: rgba(56, 104, 160, .28);--neutral-color: #8a7e6a;--neutral-light: rgba(138, 126, 106, .14);--assassin-color: #1a1a1a;--assassin-light: rgba(20, 20, 20, .12);--assassin-bg: #201010;--accent: #c07040;--accent-light: rgba(192, 112, 64, .22);--accent-dim: rgba(192, 112, 64, .12);--focus-ring: #e8a850;--success: #50a040;--warning: #c09030;--danger: #c04040;--border: #6a5e4c;--border-dark: #584c3a;--border-light: #7a6e5a;--font-display: "Playfair Display SC", "Georgia", serif;--font-typewriter: "Special Elite", "Courier New", monospace;--font-body: "Crimson Pro", "Georgia", serif;--radius-sm: 1px;--radius-md: 2px;--radius-lg: 3px;--radius-xl: 4px;--shadow-paper: 2px 3px 12px rgba(0,0,0,.22), 0 1px 3px rgba(0,0,0,.14);--shadow-card: 1px 1px 4px rgba(0,0,0,.18), 2px 2px 1px -1px rgba(0,0,0,.12);--shadow-elevated: 3px 4px 20px rgba(0,0,0,.28);--shadow-glow-red: 0 0 12px rgba(184,56,56,.25);--shadow-glow-blue: 0 0 12px rgba(56,104,160,.25);--bar-h: 52px;--sheet-radius: 8px;--sheet-shadow: 0 -4px 24px rgba(26,18,10,.35);--spring-ease: cubic-bezier(.34, 1.56, .64, 1);--spring-duration: .35s;--transition: .18s ease;--foxing: rgba(60, 46, 28, .15);--page-edge-dark: rgba(20, 16, 10, .5);--page-edge-burn: rgba(10, 8, 4, .6);--paper-grain-opacity: .08;--crease-color: rgba(40, 32, 20, .22);--body-stripe: rgba(10,8,6,.04);--body-vignette-a: rgba(30,22,14,.5);--body-vignette-b: rgba(20,16,10,.6);--body-grad-a: #1a140e;--body-grad-b: #14100c;--body-grad-c: #181410;--topbar-start: #8a7a5e;--topbar-mid: #7a6a4e;--topbar-end: #6e5e42;--topbar-border: #5a4a32;--statusbar-start: #6e5e42;--statusbar-mid: #5a4a32;--bottombar-start: #2e2620;--bottombar-mid: #262018;--bottombar-border: #3a3228;--btn-primary-bg: #8a7c60;--btn-primary-text: #14100c;--btn-primary-hover: #9a8c70;--btn-accent-hover: #d08048;--card-bg: #40362c;--card-text: #e8dcc0;--card-border: #5a4e40;--card-stripe: rgba(90,72,48,.05);--keycard-red-bg: rgba(184, 56, 56, .2);--keycard-red-border: rgba(184, 56, 56, .55);--keycard-red-shadow: rgba(184, 56, 56, .12);--keycard-red-text: #e08080;--keycard-blue-bg: rgba(56, 104, 160, .22);--keycard-blue-border: rgba(56, 104, 160, .55);--keycard-blue-shadow: rgba(56, 104, 160, .12);--keycard-blue-text: #80b0e0;--keycard-assassin-bg: rgba(30, 10, 10, .5);--keycard-assassin-border: rgba(160, 40, 40, .5);--keycard-assassin-shadow: rgba(30, 0, 0, .3);--keycard-assassin-text: #e06060;--revealed-red-start: #b05050;--revealed-red-end: #8a3838;--revealed-blue-start: #5888b8;--revealed-blue-end: #406890;--revealed-neutral-start: #b8b098;--revealed-neutral-end: #a09888;--revealed-assassin-start: #301818;--revealed-assassin-end: #140808;--revealed-assassin-border: #803030;--revealed-text: #fff;--revealed-neutral-text: #3a3020;--score-red-start: #c04040;--score-red-end: #e05050;--score-blue-start: #3868b0;--score-blue-end: #4888d0;--banner-text: rgba(232,220,192,.9);--banner-red: #f0a8a8;--banner-red-border: #d07070;--banner-blue: #a8c8f0;--banner-blue-border: #70a0d0;--banner-finished: #a8e098;--banner-finished-border: #70b858;--timer-label: rgba(232,220,192,.6);--timer-warn-border: #d8b848;--timer-warn-text: #e8c858;--timer-crit-border: #d06060;--timer-crit-text: #f08888;--tab-border: rgba(255,240,200,.25);--tab-bg: rgba(0,0,0,.22);--tab-text: rgba(232,220,192,.9);--tab-hover-bg: rgba(255,240,200,.18);--tab-hover-border: rgba(255,240,200,.4);--tab-hover-text: #f5ecd8;--tab-active-bg: rgba(255,240,200,.25);--tab-active-border: rgba(255,240,200,.45);--tab-active-shadow: rgba(255,240,200,.14);--tab-leave-border: rgba(192,64,64,.4);--tab-leave-text: rgba(240,160,160,.9);--tab-leave-hover-bg: rgba(192,64,64,.25);--tab-leave-hover-border: rgba(192,64,64,.55);--tab-leave-hover-text: #f0a8a8;--conn-text: rgba(232,220,192,.55);--conn-online-text: rgba(232,220,192,.75);--conn-online-dot: #60c048;--conn-online-glow: rgba(96,192,72,.5);--mode-tag-text: rgba(232,220,192,.85);--room-code-bg: rgba(0,0,0,.2);--room-code-border: rgba(255,240,200,.18);--overlay-bg: rgba(20,14,8,.82);--overlay-inset: rgba(255,240,200,.08);--backdrop-bg: rgba(20,14,8,.68);--marker-text: #e8dcc0;--marker-tentative-text: #bca888;--spy-select: rgba(192, 112, 64, .78);--spy-select-inner: rgba(192, 112, 64, .72);--spy-select-outer: rgba(192, 112, 64, .18);--spy-select-border: rgba(192, 112, 64, .6);--spy-select-highlight: rgba(232, 220, 192, .3);--fold-color: rgba(120,100,70,.22);--fold-color-strong: rgba(120,100,70,.38);--fold-color-v: rgba(120,100,70,.18);--fold-color-v-strong: rgba(120,100,70,.32);--fold-shadow: rgba(60,44,24,.1);--anim-accent: rgba(192,112,64,.15);--anim-highlight: rgba(192,112,64,.2);--danger-hover: rgba(192,64,64,.1);--success-tint: rgba(80,160,64,.18);--danger-tint: rgba(192,64,64,.18);--success-glow: rgba(96,192,72,.4);--voice-active-border: rgba(96,192,72,.4);--hover-tint: rgba(120,100,70,.1);--inset-glow: rgba(60,44,24,.15);--inset-glow-sm: rgba(60,44,24,.08);--stamp-neutral-x: rgba(180,160,120,.5);--stamp-white: rgba(255,255,255,.6);--stamp-assassin: rgba(255,100,100,.7)}html[data-theme=light]{--desk: #e8e0d4;--desk-dark: #d8d0c4;--paper: #f4efe6;--paper-light: #faf7f0;--paper-dark: #e8e2d6;--paper-warm: #f0e8da;--ink: #1e1810;--ink-light: #3a3020;--ink-faded: #5e5040;--ink-ghost: #8a7e6a;--red: #a83030;--red-light: rgba(168, 48, 48, .1);--red-medium: rgba(168, 48, 48, .18);--red-stamp: #b83838;--red-glow: rgba(168, 48, 48, .18);--blue: #1e4878;--blue-light: rgba(30, 72, 120, .1);--blue-medium: rgba(30, 72, 120, .18);--blue-stamp: #285888;--blue-glow: rgba(30, 72, 120, .18);--neutral-color: #7a7060;--neutral-light: rgba(122, 112, 96, .12);--assassin-color: #1a1a1a;--assassin-light: rgba(26, 26, 26, .08);--assassin-bg: #3a2020;--accent: #b86838;--accent-light: rgba(184, 104, 56, .15);--accent-dim: rgba(184, 104, 56, .08);--focus-ring: #6a3810;--success: #2a7a20;--warning: #a07818;--danger: #a83030;--border: #c8bca8;--border-dark: #b0a490;--border-light: #d8ceb8;--shadow-paper: 1px 2px 8px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-card: 1px 2px 4px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-elevated: 2px 3px 14px rgba(0,0,0,.14);--shadow-glow-red: 0 0 10px rgba(168,48,48,.18);--shadow-glow-blue: 0 0 10px rgba(30,72,120,.18);--sheet-shadow: 0 -4px 20px rgba(0,0,0,.1);--foxing: rgba(180, 160, 120, .1);--page-edge-dark: rgba(200, 190, 170, .25);--page-edge-burn: rgba(180, 170, 150, .18);--paper-grain-opacity: .03;--crease-color: rgba(160, 140, 110, .15);--body-stripe: rgba(180,170,150,.04);--body-vignette-a: rgba(200,190,170,.25);--body-vignette-b: rgba(190,180,160,.3);--body-grad-a: #efe8dc;--body-grad-b: #e8e0d4;--body-grad-c: #f0e8dc;--topbar-start: #c8b898;--topbar-mid: #b8a880;--topbar-end: #a89870;--topbar-border: #b0a080;--statusbar-start: #b8a880;--statusbar-mid: #a89870;--bottombar-start: #f0e8da;--bottombar-mid: #e8e0d0;--bottombar-border: #d0c4b0;--btn-primary-bg: #a89878;--btn-primary-text: #1e1810;--btn-primary-hover: #b8a888;--btn-accent-hover: #d07840;--card-bg: #f5f0e8;--card-text: #1a1408;--card-border: #b8a888;--card-stripe: rgba(140,120,90,.08);--keycard-red-bg: rgba(168, 48, 48, .1);--keycard-red-border: rgba(168, 48, 48, .35);--keycard-red-shadow: rgba(168, 48, 48, .06);--keycard-red-text: #a83030;--keycard-blue-bg: rgba(30, 72, 120, .1);--keycard-blue-border: rgba(30, 72, 120, .35);--keycard-blue-shadow: rgba(30, 72, 120, .06);--keycard-blue-text: #1e4878;--keycard-assassin-bg: rgba(26, 26, 26, .06);--keycard-assassin-border: rgba(26, 26, 26, .25);--keycard-assassin-shadow: rgba(26, 26, 26, .04);--keycard-assassin-text: #8a2020;--revealed-red-start: #c86060;--revealed-red-end: #a84040;--revealed-blue-start: #5080b8;--revealed-blue-end: #3868a0;--revealed-neutral-start: #c8c0a8;--revealed-neutral-end: #b8b098;--revealed-assassin-start: #4a2828;--revealed-assassin-end: #2a1010;--revealed-assassin-border: #8a3030;--revealed-text: #fff;--revealed-neutral-text: #3a3020;--score-red-start: #c04040;--score-red-end: #d85050;--score-blue-start: #3060a8;--score-blue-end: #4078c0;--banner-text: #3a3020;--banner-red: #a83030;--banner-red-border: #c06060;--banner-blue: #1e4878;--banner-blue-border: #5080b8;--banner-finished: #2a7a20;--banner-finished-border: #60a850;--timer-label: #8a7e6a;--timer-warn-border: #c8a840;--timer-warn-text: #907018;--timer-crit-border: #c06060;--timer-crit-text: #a83030;--tab-border: rgba(100,80,50,.25);--tab-bg: rgba(255,255,255,.45);--tab-text: #3a3020;--tab-hover-bg: rgba(255,255,255,.65);--tab-hover-border: rgba(100,80,50,.4);--tab-hover-text: #1e1810;--tab-active-bg: rgba(255,255,255,.7);--tab-active-border: rgba(100,80,50,.5);--tab-active-shadow: rgba(0,0,0,.06);--tab-leave-border: rgba(168,48,48,.3);--tab-leave-text: #a83030;--tab-leave-hover-bg: rgba(168,48,48,.08);--tab-leave-hover-border: rgba(168,48,48,.4);--tab-leave-hover-text: #c04040;--conn-text: #8a7e6a;--conn-online-text: #5e5040;--conn-online-dot: #2a8a18;--conn-online-glow: rgba(42,138,24,.4);--mode-tag-text: #5e5040;--room-code-bg: rgba(0,0,0,.05);--room-code-border: rgba(100,80,50,.2);--overlay-bg: rgba(180,170,150,.75);--overlay-inset: rgba(0,0,0,.04);--backdrop-bg: rgba(180,170,150,.65);--marker-text: #fff;--marker-tentative-text: #5e5040;--spy-select: rgba(184, 104, 56, .65);--spy-select-inner: rgba(184, 104, 56, .55);--spy-select-outer: rgba(184, 104, 56, .14);--spy-select-border: rgba(184, 104, 56, .5);--spy-select-highlight: rgba(60, 50, 30, .15);--fold-color: rgba(160,140,110,.2);--fold-color-strong: rgba(160,140,110,.35);--fold-color-v: rgba(160,140,110,.15);--fold-color-v-strong: rgba(160,140,110,.3);--fold-shadow: rgba(120,100,70,.08);--anim-accent: rgba(184,104,56,.12);--anim-highlight: rgba(184,104,56,.15);--danger-hover: rgba(168,48,48,.08);--success-tint: rgba(42,122,32,.12);--danger-tint: rgba(168,48,48,.12);--success-glow: rgba(42,138,24,.35);--voice-active-border: rgba(42,138,24,.4);--hover-tint: rgba(160,140,110,.1);--inset-glow: rgba(0,0,0,.05);--inset-glow-sm: rgba(0,0,0,.03);--stamp-neutral-x: rgba(60,50,30,.4);--stamp-white: rgba(255,255,255,.75);--stamp-assassin: rgba(200,40,40,.7)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:16px;line-height:1.55;color:var(--ink);background:var(--desk);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100dvh;overflow:hidden;background:repeating-linear-gradient(2deg,transparent 0px,transparent 2px,var(--body-stripe) 2px,var(--body-stripe) 3px),radial-gradient(ellipse at 30% 20%,var(--body-vignette-a) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,var(--body-vignette-b) 0%,transparent 50%),linear-gradient(160deg,var(--body-grad-a),var(--body-grad-b),var(--body-grad-c))}button{cursor:pointer;font:inherit}input,textarea{font:inherit}ul{list-style:none}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}button:focus-visible,.card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 16px;border:1px solid var(--border-dark);border-radius:var(--radius-md);background:var(--paper-dark);color:var(--ink);font-family:var(--font-typewriter);font-size:.88rem;white-space:nowrap;transition:all var(--transition);-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.04em}.btn:hover{background:var(--paper-warm);border-color:var(--ink-faded)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-loading{pointer-events:none;animation:btn-loading-pulse 1s ease-in-out infinite}@keyframes btn-loading-pulse{0%,to{opacity:.6}50%{opacity:.35}}.btn-primary{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-text)}.btn-primary:hover{background:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}.btn-secondary{background:transparent;border-color:var(--ink-faded);color:var(--ink)}.btn-secondary:hover{background:var(--accent-dim)}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--paper-light)}.btn-accent:hover{background:var(--btn-accent-hover);border-color:var(--btn-accent-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--ink-faded)}.btn-ghost:hover{color:var(--ink);background:var(--paper-warm);border-color:var(--border-light)}.btn-danger{color:var(--danger);border-color:transparent;background:transparent}.btn-danger:hover{background:var(--danger-hover)}.btn-lg{padding:11px 24px;font-size:.95rem}.btn-sm{padding:5px 11px;font-size:.82rem}.btn.active{background:var(--accent);border-color:var(--accent);color:var(--paper-light)}.btn-team{background:transparent;font-size:.85rem;padding:5px 12px;width:100%;min-height:32px}.btn-team.red{border-color:var(--red);color:var(--red)}.btn-team.red:hover{background:var(--red-light)}.btn-team.red.active{background:var(--red);color:var(--paper-light)}.btn-team.blue{border-color:var(--blue);color:var(--blue)}.btn-team.blue:hover{background:var(--blue-light)}.btn-team.blue.active{background:var(--blue);color:var(--paper-light)}.btn-role{background:transparent;border-color:var(--border);font-size:.78rem;padding:4px 10px;color:var(--ink-faded)}.btn-role.red{border-color:var(--red);color:var(--red)}.btn-role.red:hover{background:var(--red-light)}.btn-role.red.active{background:var(--red);color:var(--paper-light)}.btn-role.blue{border-color:var(--blue);color:var(--blue)}.btn-role.blue:hover{background:var(--blue-light)}.btn-role.blue.active{background:var(--blue);color:var(--paper-light)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--ink-faded);transition:all var(--transition)}.icon-btn:hover{background:var(--paper-warm);color:var(--ink);border-color:var(--border-light)}.icon-btn-danger:hover{color:var(--danger);background:var(--danger-hover)}input[type=text],input[type=number],input[type=url],textarea{width:100%;padding:8px 2px;background:transparent;border:none;border-bottom:1px solid var(--border-dark);border-radius:0;color:var(--ink);font-family:var(--font-typewriter);font-size:.95rem;transition:border-color var(--transition);outline:none}input:focus,textarea:focus{border-bottom-color:var(--ink)}input::placeholder,textarea::placeholder{color:var(--ink-ghost);font-style:italic;font-family:var(--font-body)}input[type=number]{width:56px;text-align:center;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-stepper{display:inline-flex;align-items:stretch;border:1px solid var(--border-dark);background:transparent}.number-stepper input[type=number]{border:none;width:36px;padding:4px 0;font-size:.95rem}.number-stepper input[type=number]:focus{border:none}.stepper-btn{display:flex;align-items:center;justify-content:center;width:28px;border:none;background:var(--paper-dark);color:var(--ink-faded);font-size:1rem;font-family:var(--font-typewriter);cursor:pointer;transition:all var(--transition);-webkit-user-select:none;user-select:none;padding:0;line-height:1}.stepper-btn:hover{background:var(--paper-warm);color:var(--ink)}.stepper-btn:active{transform:scale(.92)}.stepper-btn-down{border-right:1px solid var(--border)}.stepper-btn-up{border-left:1px solid var(--border)}.input-sm{padding:5px 2px;font-size:.78rem}.code-field{text-transform:uppercase;font-weight:400;letter-spacing:.2em;font-size:1.1rem;text-align:center}.join-screen{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px;animation:join-fade-in .7s ease-out}@keyframes join-fade-in{0%{opacity:0;transform:translateY(8px) rotate(-.3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}.join-card{position:relative;width:100%;max-width:420px;background:radial-gradient(circle at 15% 25%,var(--foxing) 0%,transparent 8%),radial-gradient(circle at 82% 18%,var(--foxing) 0%,transparent 6%),radial-gradient(circle at 70% 75%,var(--foxing) 0%,transparent 10%),radial-gradient(circle at 25% 85%,var(--foxing) 0%,transparent 7%),linear-gradient(175deg,var(--paper-light) 0%,var(--paper) 40%,var(--paper-dark) 100%);border:1px solid var(--border-dark);padding:44px 36px 30px;box-shadow:var(--shadow-elevated),inset 0 0 30px var(--inset-glow);overflow:hidden}.fold-line{position:absolute;pointer-events:none;z-index:1}.fold-line-h{top:50%;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,var(--fold-color) 20%,var(--fold-color-strong) 50%,var(--fold-color) 80%,transparent 100%);box-shadow:0 1px 2px var(--fold-shadow)}.fold-line-v{left:50%;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent 0%,var(--fold-color-v) 30%,var(--fold-color-v-strong) 50%,var(--fold-color-v) 70%,transparent 100%);box-shadow:1px 0 2px var(--fold-shadow)}.dossier-stamp{position:absolute;top:22px;right:-12px;font-family:var(--font-display);font-size:.8rem;font-weight:900;letter-spacing:.18em;color:var(--red);border:2.5px solid var(--red);padding:3px 14px;transform:rotate(12deg);opacity:.45;pointer-events:none;z-index:2}.document-number{font-family:var(--font-typewriter);font-size:.75rem;color:var(--ink-ghost);letter-spacing:.1em;margin-bottom:8px}.join-header{text-align:center;margin-bottom:28px;position:relative;z-index:2}.logo-title{font-family:var(--font-display);font-size:2.2rem;font-weight:900;letter-spacing:.15em;color:var(--ink);line-height:1;margin-bottom:8px}.logo-rule{width:60%;height:2px;margin:0 auto 14px;background:linear-gradient(90deg,transparent,var(--border-dark) 20%,var(--ink-faded) 50%,var(--border-dark) 80%,transparent)}.join-subtitle{font-family:var(--font-body);color:var(--ink-light);font-size:.95rem;font-style:italic;min-height:2.8em}.join-form{display:flex;flex-direction:column;gap:20px;position:relative;z-index:2}.field-group{display:flex;flex-direction:column;gap:4px}.field-label{font-family:var(--font-typewriter);font-size:.78rem;color:var(--ink-faded);text-transform:uppercase;letter-spacing:.1em}.join-row{display:flex;gap:10px;align-items:flex-end}.join-row input{flex:1}.join-actions{margin-top:6px}.join-actions .btn{width:100%}.join-note{font-family:var(--font-body);font-size:.85rem;color:var(--ink-ghost);text-align:center;line-height:1.4;font-style:italic;min-height:2.4em}.join-footer{margin-top:22px;padding-top:14px;border-top:1px solid var(--border-light);display:flex;justify-content:center;position:relative;z-index:2}.language-switch{display:flex;gap:4px}.lang-btn{padding:5px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--ink-ghost);font-family:var(--font-typewriter);font-size:.82rem;transition:all var(--transition)}.lang-btn:hover{color:var(--ink);border-color:var(--border-dark)}.lang-btn.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.room-screen{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:linear-gradient(175deg,var(--paper-light) 0%,var(--paper) 50%,var(--paper-dark) 100%);color:var(--ink)}.top-bar{padding:4px 12px;background:linear-gradient(90deg,var(--topbar-start) 0%,var(--topbar-mid) 50%,var(--topbar-end) 100%);border-bottom:2px solid var(--topbar-border);flex-shrink:0;z-index:10}.bottom-bar-status{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 10px;flex-shrink:0;background:linear-gradient(90deg,var(--statusbar-start) 0%,var(--statusbar-mid) 50%,var(--statusbar-start) 100%)}.bottom-bar{background:linear-gradient(90deg,var(--bottombar-start) 0%,var(--bottombar-mid) 50%,var(--bottombar-start) 100%);border-top:2px solid var(--bottombar-border);flex-shrink:0;z-index:10;padding:6px 10px}.score-bar{display:flex;width:100%;height:6px;border-radius:3px;overflow:hidden;background:var(--tab-bg);border:1px solid var(--border-dark)}.score-bar-red{background:linear-gradient(90deg,var(--score-red-start),var(--score-red-end));width:0%;transition:width .4s ease;border-radius:3px 0 0 3px}.score-bar-gap{flex:1}.score-bar-blue{background:linear-gradient(270deg,var(--score-blue-start),var(--score-blue-end));width:0%;transition:width .4s ease;border-radius:0 3px 3px 0}.turn-banner{font-family:var(--font-typewriter);font-size:.82rem;padding:2px 10px;transition:all .3s ease;color:var(--banner-text);line-height:1.3}.turn-banner.red{color:var(--banner-red);border-bottom:2px solid var(--banner-red-border)}.turn-banner.blue{color:var(--banner-blue);border-bottom:2px solid var(--banner-blue-border)}.turn-banner.finished{color:var(--banner-finished);border-bottom:2px solid var(--banner-finished-border)}.phase-timer{display:flex;align-items:center;gap:5px;padding:2px 8px;border:1px solid var(--room-code-border);background:var(--tab-bg);flex-shrink:0}.timer-label{font-family:var(--font-typewriter);font-size:.68rem;color:var(--timer-label);text-transform:uppercase}.timer-value{font-family:var(--font-typewriter);font-size:.88rem;color:var(--paper-light)}.phase-timer.warning-10{border-color:var(--timer-warn-border)}.phase-timer.warning-10 .timer-value{color:var(--timer-warn-text)}.phase-timer.warning-5{border-color:var(--timer-crit-border);animation:timer-pulse-critical .5s ease-in-out infinite}.phase-timer.warning-5 .timer-value{color:var(--timer-crit-text)}@keyframes timer-pulse-critical{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.05)}}.bar-tabs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.bar-tabs-center{display:flex;gap:4px;justify-content:center}.bar-tabs-right{display:flex;justify-content:flex-end;gap:6px}.bar-tab{position:relative;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 16px;border:1px solid var(--tab-border);border-radius:4px;background:var(--tab-bg);color:var(--tab-text);font-family:var(--font-typewriter);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;transition:all var(--transition);cursor:pointer;white-space:nowrap}.bar-tab:hover{background:var(--tab-hover-bg);border-color:var(--tab-hover-border);color:var(--tab-hover-text)}.bar-tab.active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-hover-text);box-shadow:0 0 8px var(--tab-active-shadow)}.bar-tab-icon{font-size:.95rem;line-height:1}.bar-tab-label{font-size:inherit;letter-spacing:inherit}.chat-badge{position:absolute;top:2px;right:2px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;background:var(--danger);color:#fff;font-family:var(--font-body);font-size:.55rem;font-weight:700;line-height:14px;text-align:center;pointer-events:none}.bar-tab-leave{border-color:var(--tab-leave-border);color:var(--tab-leave-text)}.bar-tab-leave:hover{background:var(--tab-leave-hover-bg);border-color:var(--tab-leave-hover-border);color:var(--tab-leave-hover-text)}.voice-dropdown{position:relative}.bar-tab-voice.in-voice{border-color:var(--voice-active-border);color:var(--conn-online-dot)}.voice-dropdown-menu{display:none;position:absolute;bottom:100%;right:0;min-width:160px;padding:8px 8px 12px;background:var(--paper-dark);border:1px solid var(--border);box-shadow:var(--shadow-elevated);flex-direction:column;gap:4px;z-index:20}.voice-dropdown.voice-active:hover .voice-dropdown-menu,.voice-dropdown.open .voice-dropdown-menu{display:flex}.voice-dropdown-menu .voice-peer-list{margin-top:4px}.bar-util{display:flex;align-items:center;gap:6px;flex-shrink:0}.room-code-val{font-family:var(--font-typewriter);font-size:.72rem;letter-spacing:.15em;color:var(--tab-text);background:var(--room-code-bg);padding:3px 8px;border:1px solid var(--room-code-border);line-height:1.3;cursor:pointer;transition:background var(--transition)}.room-code-val:hover{background:var(--tab-bg)}.mode-tag{font-family:var(--font-typewriter);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border:1px solid var(--room-code-border);background:var(--room-code-bg);color:var(--mode-tag-text);line-height:1.3}.mode-tag.blitz{border-color:var(--warning);color:var(--warning)}.conn-status{display:flex;align-items:center;gap:4px;flex-shrink:0}.conn-dot{width:6px;height:6px;border-radius:50%;background:var(--danger);flex-shrink:0}.conn-text{font-family:var(--font-typewriter);font-size:.58rem;text-transform:uppercase;letter-spacing:.04em;color:var(--conn-text)}.conn-status.online .conn-dot{background:var(--conn-online-dot);box-shadow:0 0 4px var(--conn-online-glow)}.conn-status.online .conn-text{color:var(--conn-online-text)}.team-panel{background:linear-gradient(175deg,var(--paper-light) 0%,var(--paper) 100%);border:1px solid var(--border);padding:10px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;box-shadow:inset 0 0 12px var(--inset-glow-sm)}.team-panel.team-red:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--red)}.team-panel.team-blue:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--blue)}.team-head{display:flex;align-items:center;gap:7px}.team-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.team-dot.red{background:var(--red)}.team-dot.blue{background:var(--blue)}.team-head h3{font-family:var(--font-display);font-size:.88rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;flex:1}.team-red .team-head h3{color:var(--red)}.team-blue .team-head h3{color:var(--blue)}.team-score{font-family:var(--font-typewriter);font-size:.9rem;color:var(--ink-faded)}.player-list{display:flex;flex-direction:column;gap:3px;min-height:20px;max-height:120px;overflow-y:auto;order:2}.team-player-item{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:var(--radius-sm);transition:background var(--transition)}.team-player-item:hover{background:var(--hover-tint)}.player-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-family:var(--font-typewriter);color:var(--paper-light);flex-shrink:0;text-transform:uppercase}.team-player-info{flex:1;min-width:0}.team-player-name{font-family:var(--font-body);font-size:.88rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-meta{display:flex;flex-wrap:wrap;gap:3px;margin-top:1px}.tag{font-family:var(--font-typewriter);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;padding:0 4px;border:1px solid var(--border-light);background:var(--paper);color:var(--ink-ghost)}.tag.host{color:var(--accent);border-color:var(--accent);background:var(--accent-light)}.tag.offline{color:var(--danger);border-color:var(--danger-tint);background:var(--danger-hover)}.tag.thinking{color:var(--accent);animation:thinking-pulse 1.2s ease-in-out infinite}@keyframes thinking-pulse{0%,to{opacity:1}50%{opacity:.3}}.team-empty{font-family:var(--font-body);font-size:.82rem;color:var(--ink-ghost);padding:6px;text-align:center;font-style:italic}.team-actions{display:flex;flex-direction:column;gap:5px;order:1}.role-row{display:flex;gap:3px}.role-row .btn{flex:1}.sidebar-actions{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:10px}.game-stage{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:10px 16px;flex:1;min-height:0;gap:10px;background:radial-gradient(ellipse at 50% 50%,transparent 55%,var(--page-edge-dark) 100%),linear-gradient(175deg,var(--paper-light) 0%,var(--paper-warm) 50%,var(--paper-dark) 100%);position:relative}.stage-layout{display:flex;gap:12px;max-width:1120px;margin:0 auto;width:100%;flex:1;min-height:0}.controls-strip{width:340px;flex-shrink:0;position:relative;z-index:1;display:flex;flex-direction:column;gap:6px;min-height:0;overflow:hidden}.inline-feed{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--border-dark);border-radius:var(--radius-lg);background:var(--paper-dark);overflow:hidden}.inline-feed-entries{flex:1;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:3px;font-size:.78rem}.inline-feed-form{display:flex;gap:4px;padding:6px 8px;border-top:1px solid var(--border-dark)}.inline-feed-form input{flex:1;background:var(--paper);border:1px solid var(--border-dark);border-radius:var(--radius-md);padding:4px 8px;font-family:var(--font-typewriter);font-size:.78rem;color:var(--ink)}.ctrl-placeholder{border:1px dashed var(--border-light);padding:16px;text-align:center;font-family:var(--font-typewriter);font-size:.8rem;color:var(--ink-ghost);opacity:.6;min-height:60px;display:flex;align-items:center;justify-content:center}.ctrl-panel{background:linear-gradient(175deg,var(--paper-light) 0%,var(--paper) 100%);border:1px solid var(--border);padding:12px 16px;animation:ctrl-slide-in .25s ease-out;position:relative}.ctrl-panel{transition:opacity .2s ease}.ctrl-panel.locked{opacity:.4;pointer-events:none}.ctrl-panel:before{content:"";position:absolute;top:-1px;left:8px;right:8px;height:3px;background:repeating-linear-gradient(90deg,var(--paper-dark) 0 2px,transparent 2px 4px,var(--border) 4px 5px,transparent 5px 8px);opacity:.7}@keyframes ctrl-slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ctrl-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ctrl-head h3{font-family:var(--font-display);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faded)}.ctrl-status{font-family:var(--font-body);font-size:.85rem;color:var(--ink-ghost);margin-bottom:6px;font-style:italic;min-height:1.3em;line-height:1.4}.hint-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.hint-form input[type=text]{flex:1 1 100%}.hint-form input[type=number]{width:52px}.hint-display-bar{font-family:var(--font-typewriter);font-size:clamp(.92rem,1rem + .35vw,1.15rem);text-align:center;color:var(--ink);padding:6px 0;line-height:1.3;letter-spacing:.04em;text-transform:uppercase;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.guess-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.selected-label{flex:1 1 100%;font-family:var(--font-body);font-size:.9rem;color:var(--ink-faded);font-style:italic}.result-text{font-family:var(--font-body);font-size:.95rem;color:var(--ink-light);margin-bottom:8px}.result-actions{display:flex;flex-wrap:wrap;gap:6px}.mvp-section{margin-top:8px}.board-area{flex:1;min-width:0;display:flex;justify-content:center;position:relative;z-index:1}.board-wrap{max-width:740px;width:100%;min-height:0;position:relative}.board{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;width:100%;perspective:900px}.card{position:relative;aspect-ratio:1.45;border:1px solid var(--card-border);background:repeating-linear-gradient(0deg,transparent 0px,transparent 2px,var(--card-stripe) 2px,var(--card-stripe) 3px),var(--card-bg);color:var(--card-text);cursor:default;overflow:hidden;transition:border-color .2s,box-shadow .2s,transform .2s;outline:none;transform-style:preserve-3d;box-shadow:var(--shadow-card)}.card-inner{width:100%;height:100%;transition:transform .5s ease;transform-style:preserve-3d;position:relative}.card-front,.card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px}.card-back{transform:rotateY(180deg)}.card-word{font-family:var(--font-typewriter);font-size:clamp(.6rem,1.5vw,.92rem);text-transform:uppercase;letter-spacing:.03em;text-align:center;word-break:break-word;line-height:1.2;color:var(--card-text)}.card-stamp-slot{position:absolute;top:3px;right:3px;width:22px;height:22px;opacity:.7}.card-stamp-slot svg{width:100%;height:100%}.card-markers{position:absolute;bottom:2px;left:2px;right:2px;display:flex;flex-wrap:wrap;gap:1px;justify-content:center;max-height:32px;overflow:hidden}.card-marker{font-family:var(--font-typewriter);font-size:.52rem;padding:0 3px;line-height:1.4;color:var(--marker-text)}.card-marker.red{background:var(--red)}.card-marker.blue{background:var(--blue)}.card-marker.neutral{background:var(--neutral-color)}.card-marker.tentative{opacity:.6;border:1px dashed currentColor;background:transparent;color:var(--marker-tentative-text)}.card.clickable{cursor:pointer;border-color:var(--card-border)}.card.clickable:hover{border-color:var(--accent);box-shadow:var(--shadow-elevated),0 0 6px var(--accent-dim);transform:translateY(-1px)}.card.clickable:active{transform:translateY(0) scale(.98)}.card.keycard.red{background:var(--keycard-red-bg);border:1.5px solid var(--keycard-red-border);box-shadow:inset 0 0 8px var(--keycard-red-shadow)}.card.keycard.red .card-word{color:var(--keycard-red-text)}.card.keycard.blue{background:var(--keycard-blue-bg);border:1.5px solid var(--keycard-blue-border);box-shadow:inset 0 0 8px var(--keycard-blue-shadow)}.card.keycard.blue .card-word{color:var(--keycard-blue-text)}.card.keycard.neutral{background:var(--card-bg);border:1.5px solid var(--border)}.card.keycard.assassin{background:var(--keycard-assassin-bg);border:2px solid var(--keycard-assassin-border);box-shadow:inset 0 0 8px var(--keycard-assassin-shadow)}.card.keycard.assassin .card-word{color:var(--keycard-assassin-text);font-weight:700}.card.revealed .card-inner{transform:rotateY(180deg)}.card.revealed.red{background:linear-gradient(145deg,var(--revealed-red-start),var(--revealed-red-end));border:2px solid var(--red);box-shadow:var(--shadow-glow-red)}.card.revealed.blue{background:linear-gradient(145deg,var(--revealed-blue-start),var(--revealed-blue-end));border:2px solid var(--blue);box-shadow:var(--shadow-glow-blue)}.card.revealed.neutral{background:linear-gradient(145deg,var(--revealed-neutral-start),var(--revealed-neutral-end));border:2px solid var(--neutral-color)}.card.revealed.assassin{background:linear-gradient(145deg,var(--revealed-assassin-start),var(--revealed-assassin-end));border:2px solid var(--revealed-assassin-border);box-shadow:var(--shadow-glow-red)}.card.revealed .card-word{color:var(--revealed-text);text-shadow:0 1px 2px rgba(0,0,0,.3);font-size:clamp(.55rem,1.4vw,.85rem)}.card.revealed.neutral .card-word{color:var(--revealed-neutral-text);text-shadow:none}.card.finished-reveal{border-style:dashed;opacity:.55}.card.finished-reveal.red{background:var(--red-light);border-color:var(--red)}.card.finished-reveal.blue{background:var(--blue-light);border-color:var(--blue)}.card.finished-reveal.neutral{background:var(--neutral-light);border-color:var(--neutral-color)}.card.finished-reveal.assassin{background:var(--assassin-light);border-color:var(--assassin-color)}.card.selected-for-guess:after{content:"";position:absolute;top:3px;right:3px;width:10px;height:10px;border-radius:50%;background:var(--warning);z-index:2}.card.spymaster-selected{outline:2px solid var(--spy-select);outline-offset:-2px;box-shadow:inset 0 0 0 1px var(--spy-select-inner),0 0 0 2px var(--spy-select-outer),2px 2px 8px #0000001f}.card.spymaster-selected:before{content:"";position:absolute;inset:3px;border:2px solid var(--spy-select-border);box-shadow:inset 0 0 0 1px var(--spy-select-highlight);pointer-events:none;z-index:2}.card.spymaster-selected.clickable:hover,.card.spymaster-selected.clickable:focus-visible{border-color:var(--spy-select);outline:2px solid var(--spy-select);outline-offset:-2px;box-shadow:inset 0 0 0 1px var(--spy-select-inner),0 0 0 2px var(--spy-select-outer),2px 2px 8px #0000001f;transform:translateY(-1px)}.card.placeholder .card-word{opacity:0}.card-stamp{display:inline-block}.stamp-red-bird svg path{fill:var(--stamp-white)}.stamp-blue-bird svg path{fill:var(--stamp-white)}.stamp-assassin-bird svg path{fill:var(--stamp-assassin)}.stamp-neutral-x:before{content:"×";font-size:1.1rem;font-weight:900;color:var(--stamp-neutral-x)}.colorblind-mode .card.revealed.red:after,.colorblind-mode .card.keycard.red:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(0,0,0,.1) 4px,rgba(0,0,0,.1) 6px);pointer-events:none}.colorblind-mode .card.revealed.blue:after,.colorblind-mode .card.keycard.blue:after{content:"";position:absolute;inset:0;background:radial-gradient(circle 2px,rgba(0,0,0,.12) 1px,transparent 1px);background-size:8px 8px;pointer-events:none}.colorblind-mode .card.revealed.neutral:after,.colorblind-mode .card.keycard.neutral:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,transparent 48%,rgba(0,0,0,.08) 48%,rgba(0,0,0,.08) 52%,transparent 52%),linear-gradient(90deg,transparent 48%,rgba(0,0,0,.08) 48%,rgba(0,0,0,.08) 52%,transparent 52%);background-size:10px 10px;pointer-events:none}.feed-entries{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;min-height:0;padding-bottom:4px}.feed-item{font-family:var(--font-body);font-size:.82rem;line-height:1.4;word-break:break-word;padding:3px 0}.feed-chat{display:flex;gap:6px}.feed-name{font-weight:600;color:var(--ink-faded);flex-shrink:0}.feed-name.red{color:var(--red)}.feed-name.blue{color:var(--blue)}.feed-text{color:var(--ink)}.feed-hint{font-family:var(--font-typewriter);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;border-left:3px solid var(--border)}.feed-hint.red{border-left-color:var(--red);color:var(--red)}.feed-hint.blue{border-left-color:var(--blue);color:var(--blue)}.feed-guess{font-family:var(--font-typewriter);font-size:.75rem;color:var(--ink-faded);padding-left:12px;border-left:2px solid var(--border-light)}.feed-guess.red{border-left-color:var(--red-stamp)}.feed-guess.blue{border-left-color:var(--blue-stamp)}.feed-turnend,.feed-gameend{font-family:var(--font-typewriter);font-size:.72rem;color:var(--ink-ghost);text-transform:uppercase;letter-spacing:.06em;padding:6px 0;border-top:1px dashed var(--border-light);margin-top:2px}.feed-gameend{color:var(--accent);font-weight:700}.chat-form{display:flex;gap:4px;margin-top:6px;flex-shrink:0}.chat-form input{flex:1;min-width:0;font-size:.82rem;padding:6px 8px;background:var(--paper);border:1px solid var(--border);color:var(--ink);font-family:var(--font-body)}.chat-form button{flex-shrink:0}.settings-block{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--border-light)}.settings-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.settings-label{display:block;font-family:var(--font-typewriter);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-ghost);margin-bottom:6px}.room-meta{display:flex;align-items:center;gap:8px;justify-content:center}.qr-wrap svg{border-radius:var(--radius-sm);width:120px;height:120px}.seal-wrap svg{opacity:.5;width:64px;height:64px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px}.mode-btn{padding:6px 8px;border:1px solid var(--border);border-radius:0;background:transparent;color:var(--ink-faded);font-family:var(--font-typewriter);font-size:.78rem;transition:all var(--transition)}.mode-btn:hover{border-color:var(--border-dark);color:var(--ink)}.mode-btn.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.mode-btn:disabled{opacity:.5;cursor:not-allowed}.blitz-config{display:flex;gap:10px;margin-top:6px}.blitz-field{display:flex;align-items:center;gap:4px;font-family:var(--font-typewriter);font-size:.78rem;color:var(--ink-faded)}.blitz-field input{width:52px;text-align:center}.mode-note{font-family:var(--font-body);font-size:.78rem;color:var(--ink-ghost);margin-top:5px;line-height:1.4;font-style:italic;min-height:2em}.toggle-row{display:flex;gap:3px}.toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 8px;border:1px solid var(--border);border-radius:0;background:transparent;color:var(--ink-ghost);font-family:var(--font-typewriter);font-size:.78rem;transition:all var(--transition)}.toggle-btn:hover{color:var(--ink);border-color:var(--border-dark)}.toggle-btn.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.pack-row{display:flex;gap:4px;align-items:flex-end}.pack-row input{flex:1}.toast{position:fixed;top:calc(48px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%) translateY(0);padding:10px 24px;background:var(--paper);border:1px solid var(--border-dark);color:var(--ink);font-family:var(--font-typewriter);font-size:.9rem;box-shadow:var(--shadow-elevated),inset 0 0 8px var(--inset-glow-sm);z-index:100;animation:toast-in .25s ease-out;max-width:90vw;text-align:center}.toast.toast-success{border-left:3px solid var(--success)}.toast.toast-error{border-left:3px solid var(--danger)}.toast.toast-info{border-left:3px solid var(--blue)}.toast.hidden{display:none!important}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:var(--overlay-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:overlay-in .2s ease-out}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.overlay-panel{position:relative;width:90%;max-width:620px;max-height:80vh;overflow-y:auto;background:radial-gradient(circle at 20% 30%,var(--foxing) 0%,transparent 8%),radial-gradient(circle at 75% 20%,var(--foxing) 0%,transparent 6%),radial-gradient(circle at 80% 70%,var(--foxing) 0%,transparent 7%),linear-gradient(175deg,var(--paper-light) 0%,var(--paper) 50%,var(--paper-dark) 100%);border:1px solid var(--border);padding:32px;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-elevated),inset 0 0 20px var(--overlay-inset)}.overlay-close{position:absolute;top:10px;right:10px;width:28px;height:28px;border:1px solid var(--border);background:var(--paper);color:var(--ink-faded);font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.overlay-close:hover{background:var(--paper-warm);color:var(--ink)}.overlay-content{color:var(--ink-light);font-family:var(--font-body);font-size:.95rem;line-height:1.6}.overlay-content h2{font-family:var(--font-display);font-size:1.1rem;font-weight:900;color:var(--ink);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid var(--border-dark)}.overlay-content hr{border:none;border-top:1px solid var(--border);margin:14px 0}.debrief-entry{padding:6px 0}.debrief-entry.hint.red{border-left:3px solid var(--red);padding-left:10px}.debrief-entry.hint.blue{border-left:3px solid var(--blue);padding-left:10px}.debrief-entry.guess.assassin{border-left:3px solid var(--danger);padding-left:10px}.debrief-entry.guess.red{border-left:2px solid var(--red);padding-left:10px;margin-left:14px}.debrief-entry.guess.blue{border-left:2px solid var(--blue);padding-left:10px;margin-left:14px}.debrief-entry.guess.neutral{border-left:2px solid var(--neutral-color);padding-left:10px;margin-left:14px}.debrief-turn{font-family:var(--font-typewriter);font-size:.72rem;color:var(--ink-ghost);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.debrief-divider{color:var(--ink-ghost);text-align:center;font-size:.88rem;font-style:italic;font-family:var(--font-body)}.debrief-conclusion{font-family:var(--font-body);font-size:1rem;color:var(--ink)}.debrief-classification{font-family:var(--font-typewriter);font-size:.72rem;color:var(--danger);letter-spacing:.12em;text-transform:uppercase}@media(max-width:720px){.mode-tag{display:none}}@media(max-width:720px)and (min-width:601px){.top-bar{padding:3px 10px}.bottom-bar{padding:5px 8px}.card-word{font-size:clamp(.6rem,2vw,.9rem)}.game-stage{gap:6px}.board{gap:5px}}@media(max-width:600px){.top-bar{padding:3px 8px}.bottom-bar{padding:4px 6px}.bar-tab-label{display:none}.bar-tab{width:44px;padding:6px 0;min-height:40px}.bar-tabs-center{gap:3px}.score-bar{height:5px}.turn-banner{font-size:.78rem;padding:2px 8px}.bar-util{gap:4px}.room-code-val{padding:2px 5px;font-size:.7rem}.mode-tag,.conn-text{display:none}.bottom-bar-status{padding:2px 0}.controls-strip{display:none}.game-stage{padding:4px 6px;gap:4px;justify-content:start}.stage-layout{flex-direction:column}.board-wrap{max-width:100%}.board{gap:4px}.card{aspect-ratio:1.3}.card-word{font-size:clamp(.65rem,3.2vw,.95rem)}#hint-section,#guess-section,#result-section{display:none;position:fixed;bottom:calc(var(--bar-h) + 32px + env(safe-area-inset-bottom,0px));left:calc(6px + env(safe-area-inset-left,0px));right:calc(6px + env(safe-area-inset-right,0px));z-index:15;border-radius:6px;box-shadow:var(--shadow-elevated);padding:10px 12px;background:var(--paper)}#hint-section:not(.hidden),#guess-section:not(.hidden),#result-section:not(.hidden){display:block}#hint-section .ctrl-head,#guess-section .ctrl-head{display:none}.hint-form{flex-wrap:wrap;gap:5px}.hint-form input[type=text]{flex:1 1 100%}.hint-display-bar{font-size:.92rem;letter-spacing:.02em;padding-right:4px;padding-left:4px}.guess-row{flex-wrap:wrap;gap:5px}.selected-label{width:100%}.result-actions{flex-direction:column;gap:5px}.result-actions .btn{width:100%}#sheet-teams .sheet-body{grid-template-columns:1fr}.team-panel{padding:6px}.join-screen{padding:16px}.join-card{padding:28px 20px 20px}.logo-title{font-size:1.8rem}.sheet-panel{min-width:0;width:100%;max-width:100%}.voice-dropdown-menu{bottom:100%}}@media(max-width:400px){.join-screen{padding:10px}.join-card{padding:22px 14px 18px}.logo-title{font-size:1.5rem}.card-word{font-size:clamp(.6rem,3.5vw,.9rem)}}.scene-lobby .board .card{opacity:.35;filter:grayscale(.7) sepia(.3)}.theatrical-mode .top-bar,.theatrical-mode .bottom-bar,.theatrical-mode .sheet-container{display:none!important}.theatrical-mode .turn-banner{font-size:1.3rem}.theatrical-mode .board{max-width:800px}.voice-btn{background:transparent;border:1px solid var(--border);color:var(--ink-faded);padding:5px 8px;font-family:var(--font-typewriter);font-size:.85rem;transition:all var(--transition)}.voice-btn:hover{border-color:var(--border-dark);color:var(--ink)}.voice-btn.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.board.phase-pulse{animation:board-phase-pulse .4s ease-out}@keyframes board-phase-pulse{0%{filter:brightness(1.08)}to{filter:brightness(1)}}.card.card-deal{opacity:0;animation:card-deal-in .3s ease-out forwards}@keyframes card-deal-in{0%{opacity:0;transform:translateY(8px) rotate(-1deg)}to{opacity:1;transform:translateY(0) rotate(0)}}.result-ctrl.result-flourish{animation:result-stamp-in .5s ease-out}@keyframes result-stamp-in{0%{opacity:0;transform:scale(1.02) rotate(-.3deg);box-shadow:0 0 0 0 transparent}40%{opacity:1;transform:scale(.99) rotate(.1deg);box-shadow:0 0 20px 4px var(--anim-accent)}to{transform:scale(1) rotate(0);box-shadow:none}}.turn-banner.banner-swap{opacity:0;transition:opacity .15s ease-out}.log-group.log-new{animation:log-slide-in .25s ease-out}@keyframes log-slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.team-player-item.player-new{animation:player-highlight .6s ease-out}@keyframes player-highlight{0%{background:var(--anim-highlight)}to{background:transparent}}.join-screen.fade-out{opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}.room-screen.fade-in{opacity:0;animation:room-fade-in .4s ease-out .1s forwards}@keyframes room-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.confirm-panel{max-width:380px;text-align:center}.confirm-message{font-family:var(--font-body);font-size:1rem;margin-bottom:1.25rem;color:var(--ink)}.confirm-actions{display:flex;gap:.75rem;justify-content:center}html.theme-transitioning{transition:background-color .4s ease-in-out,color .4s ease-in-out!important}html.theme-transitioning body,html.theme-transitioning .room-screen,html.theme-transitioning .join-card,html.theme-transitioning .top-bar,html.theme-transitioning .bottom-bar,html.theme-transitioning .bottom-bar-status,html.theme-transitioning .game-stage,html.theme-transitioning .card,html.theme-transitioning .card-word,html.theme-transitioning .sheet-panel,html.theme-transitioning .overlay-panel,html.theme-transitioning .team-panel,html.theme-transitioning .ctrl-panel,html.theme-transitioning .btn,html.theme-transitioning .bar-tab,html.theme-transitioning .turn-banner,html.theme-transitioning .toast,html.theme-transitioning .toggle-btn,html.theme-transitioning .lang-btn,html.theme-transitioning .voice-peer{transition:background .4s ease-in-out,background-color .4s ease-in-out,color .4s ease-in-out,border-color .4s ease-in-out,box-shadow .4s ease-in-out!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--paper-dark)}::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--border)}.voice-chat-btn.in-voice{background:var(--success);border-color:var(--success);color:var(--paper-light)}.voice-mute-btn.muted{color:var(--danger);border-color:var(--danger)}.voice-noise-btn.noise-active{color:var(--success);border-color:var(--success)}.team-player-item.speaking{box-shadow:0 0 0 2px var(--success),0 0 8px var(--success-glow)}.team-player-item.speaking .player-avatar{box-shadow:0 0 0 2px var(--success)}.tag.voice{background:var(--success-tint);color:var(--success);border-color:var(--success)}.tag.voice-muted{background:var(--danger-tint);color:var(--danger);border-color:var(--danger)}#voice-audio-container{display:none}.sheet-container{position:fixed;inset:0;z-index:30;pointer-events:none}.sheet-backdrop{position:absolute;inset:0;background:var(--backdrop-bg);opacity:0;pointer-events:none;transition:opacity .28s ease}.sheet-backdrop.visible{opacity:1;pointer-events:auto}.sheet-panel{position:absolute;bottom:0;left:50%;width:fit-content;min-width:320px;max-width:90vw;max-height:85vh;transform:translate(-50%,100%);pointer-events:none;display:flex;flex-direction:column;background:linear-gradient(175deg,var(--paper-light) 0%,var(--paper) 100%);border-top:2px solid var(--border-dark);border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;box-shadow:var(--sheet-shadow);overflow:hidden;will-change:transform}.sheet-panel.sheet-open{transform:translate(-50%);pointer-events:auto;transition:transform var(--spring-duration) var(--spring-ease)}.sheet-panel.sheet-closing{transform:translate(-50%,100%);pointer-events:none;transition:transform .25s ease-in}.sheet-handle{width:100%;padding:12px 0 8px;flex-shrink:0;cursor:grab;touch-action:none}.sheet-handle:after{content:"";display:block;width:36px;height:4px;background:var(--border-dark);border-radius:2px;margin:0 auto}.sheet-handle:active{cursor:grabbing}.sheet-body{flex:1;overflow-y:auto;padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:10px}#sheet-teams .sheet-body{display:grid;grid-template-columns:1fr 1fr;gap:10px}#sheet-teams .sidebar-actions{grid-column:1 / -1;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;padding-top:8px;border-top:1px solid var(--border-light)}#sheet-feed .sheet-body{max-height:60vh}.voice-controls{display:flex;align-items:center;gap:8px}.voice-toggles{display:flex;gap:4px}.voice-peer-list{display:flex;flex-direction:column;gap:6px}.voice-peer{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--paper-dark);border:1px solid var(--border)}.voice-peer.speaking{box-shadow:0 0 0 2px var(--success),0 0 6px var(--success-glow)}.voice-peer-name{font-family:var(--font-typewriter);font-size:.82rem;color:var(--ink);flex:1}.voice-peer-muted{font-family:var(--font-typewriter);font-size:.68rem;color:var(--danger);text-transform:uppercase;letter-spacing:.06em}.voice-volume-slider{width:80px;accent-color:var(--accent)}#sheet-settings .sheet-body{gap:12px}.sheet-title{font-family:var(--font-display);font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faded);padding-bottom:6px;border-bottom:1px solid var(--border);margin:0}#sheet-teams .sheet-title{grid-column:1 / -1}.feed-empty{display:flex;align-items:center;justify-content:center;flex:1;font-family:var(--font-body);font-size:.88rem;font-style:italic;color:var(--ink-ghost);padding:24px 12px;text-align:center}
