@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@600;800;900&family=Nunito:wght@400;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=Cormorant+Garamond:wght@500;600;700&display=swap";:root{--bg-dark:#0a0d14;--panel-bg:#0f172ae0;--panel-border:#38bdf840;--wolf-red:#ef4444;--villager-green:#10b981;--seer-purple:#8b5cf6;--gold-accent:#f59e0b}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0}body,html{background-color:var(--bg-dark);color:#f8fafc;width:100%;height:100%;font-family:Nunito,sans-serif;overflow:hidden}#canvas-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}#ui-root{z-index:10;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.interactive{pointer-events:auto}.top-bar{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;align-items:center;gap:16px;padding:10px 24px;display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px -5px #00000080}.day-badge{color:var(--gold-accent);background:#f59e0b26;border:1px solid #f59e0b4d;border-radius:999px;padding:4px 12px;font-family:Cinzel,serif;font-size:15px;font-weight:800}.phase-text{letter-spacing:.5px;color:#f1f5f9;font-size:16px;font-weight:800}.timer-badge{color:#fff;background:#ef4444;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;font-weight:800;animation:1s infinite alternate pulse;display:flex;box-shadow:0 0 12px #ef444480}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.08)}}.camera-bar{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:370px;display:flex;position:absolute;top:20px;right:24px}.camera-hint{text-align:right;color:#c0cad5;text-shadow:0 1px 4px #000;pointer-events:none;flex-basis:100%;font-size:11px}.camera-bar .btn-icon[aria-pressed=true]{color:#f1e5d5;background:#344353;border-color:#cfb18a}.camera-bar .btn-icon:disabled{opacity:.45;cursor:not-allowed}.camera-bar .btn-icon:focus-visible{outline-offset:3px;outline:2px solid #cfb18a}#canvas-container canvas{touch-action:none;cursor:grab}#canvas-container canvas:active{cursor:grabbing}.top-bar{max-width:calc(100% - 780px)}.phase-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.day-badge,.timer-badge{flex-shrink:0}@media (width<=1100px){.top-bar{justify-content:center;width:calc(100% - 24px);max-width:calc(100% - 24px);top:12px}.camera-bar{gap:5px;max-width:330px;top:88px;right:12px}}@media (width<=760px){.camera-bar{max-width:240px}.camera-bar .btn-icon{padding:8px;font-size:11px}.camera-hint{font-size:10px}}.btn-icon{background:var(--panel-bg);border:1px solid var(--panel-border);color:#cbd5e1;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;transition:all .2s}.btn-icon:hover{color:#fff;background:#1e293b;border-color:#38bdf8}.role-btn-container{position:absolute;bottom:24px;left:24px}.btn-role-card{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1e1b4b,#312e81);border:1px solid #6366f1;border-radius:12px;align-items:center;gap:10px;padding:12px 20px;font-size:15px;font-weight:800;transition:transform .2s;display:flex;box-shadow:0 8px 20px #6366f14d}.btn-role-card:hover{transform:translateY(-2px)}.action-panel{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);text-align:center;border-radius:16px;max-width:90vw;padding:16px 24px;display:none;position:absolute;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 15px 35px #0009}.action-title{color:#38bdf8;margin-bottom:12px;font-family:Cinzel,serif;font-size:17px;font-weight:800}.target-list{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.btn-target{color:#f1f5f9;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;transition:all .2s}.btn-target:hover{color:#0f172a;background:#38bdf8;border-color:#38bdf8}.btn-target.selected{color:#fff;background:#ef4444;border-color:#ef4444}.chat-container{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;flex-direction:column;width:340px;height:280px;display:flex;position:absolute;bottom:24px;right:24px;overflow:hidden;box-shadow:0 10px 25px #00000080}.chat-header{background:#0f172a99;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:800;display:flex}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:10px 14px;font-size:13px;display:flex;overflow-y:auto}.chat-msg{word-break:break-word;line-height:1.4}.chat-msg .sender{margin-right:4px;font-weight:800}.chat-msg.system{color:var(--gold-accent);font-style:italic}.chat-input-bar{background:#0f172a66;border-top:1px solid #ffffff14;gap:6px;padding:8px 10px;display:flex}.chat-input{color:#fff;background:#0f172a;border:1px solid #334155;border-radius:8px;outline:none;flex:1;padding:6px 10px;font-size:13px}.btn-send{color:#0f172a;cursor:pointer;background:#38bdf8;border:none;border-radius:8px;padding:6px 12px;font-weight:800}.emotes-bar{background:#0f172a4d;border-top:1px solid #ffffff0d;gap:4px;padding:4px 10px;display:flex}.btn-emote{color:#cbd5e1;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:6px;padding:3px 8px;font-size:11px;transition:all .15s}.btn-emote:hover{color:#fff;background:#334155}.voice-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#0f172ad9;border:1px solid #38bdf859;border-radius:12px;flex-direction:column;gap:6px;min-width:260px;padding:10px 14px;display:flex;position:absolute;top:90px;right:20px;box-shadow:0 10px 25px #00000080}.room-badge{color:#94a3b8;cursor:pointer;background:#1e293b99;border:1px dashed #38bdf84d;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;transition:all .2s;display:flex}.room-badge:hover{color:#e2e8f0;background:#38bdf826;border-color:#38bdf8}.room-badge strong{color:#38bdf8;letter-spacing:.5px}.voice-controls{align-items:center;gap:8px;margin-top:4px;display:flex}.btn-voice-icon{color:#e2e8f0;cursor:pointer;background:#1e293b;border:1px solid #475569;border-radius:8px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-voice-icon:hover{background:#334155;border-color:#38bdf8}.btn-voice-icon.muted{color:#fca5a5;background:#7f1d1d;border-color:#ef4444}.vu-meter-container{background:#0f172a;border:1px solid #334155;border-radius:6px;flex:1;height:12px;position:relative;overflow:hidden}.vu-meter-bar{background:linear-gradient(90deg,#10b981,#f59e0b,#ef4444);border-radius:6px;width:0%;height:100%;transition:width 80ms ease-out}.voice-story-status{color:#38bdf8;margin-top:2px;font-size:11px;font-weight:600;line-height:1.3}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;background:#000000bf;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.modal-card{text-align:center;background:#0f172a;border:1px solid #38bdf8;border-radius:20px;width:440px;max-width:90vw;padding:32px;box-shadow:0 20px 40px #000c}.modal-title{color:var(--gold-accent);margin-bottom:12px;font-family:Cinzel,serif;font-size:26px;font-weight:900}.modal-subtitle{color:#94a3b8;margin-bottom:24px;font-size:14px}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444,#b91c1c);border:none;border-radius:12px;width:100%;padding:14px;font-size:16px;font-weight:800;transition:transform .15s;box-shadow:0 6px 18px #ef444466}.btn-primary:hover{transform:translateY(-2px)}.role-card-display{text-align:center;background:linear-gradient(#1e1b4b,#0f172a);border:2px solid #818cf8;border-radius:16px;margin-bottom:20px;padding:24px}.role-icon{margin-bottom:10px;font-size:48px}.role-name{margin-bottom:6px;font-family:Cinzel,serif;font-size:24px;font-weight:900}.role-team{border-radius:999px;margin-bottom:14px;padding:3px 12px;font-size:12px;font-weight:800;display:inline-block}.team-wolf{color:#f87171;background:#ef444433;border:1px solid #ef4444}.team-villager{color:#34d399;background:#10b98133;border:1px solid #10b981}.role-desc{color:#cbd5e1;font-size:13.5px;line-height:1.5}[hidden]{display:none!important}.hall-card{text-align:left;width:960px;max-height:92vh;padding:28px;overflow-y:auto}.hall-card .modal-title,.hall-card .modal-subtitle{text-align:center}.hall-label{color:#94a3b8;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:800;display:block}.hall-field{flex:1;margin-bottom:12px}.hall-field .chat-input{width:100%;padding:10px;font-size:14px}.hall-profile{align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.hall-language{flex:none;width:170px}.hall-customize{color:#fff;background:linear-gradient(135deg,#312e81,#4338ca);border-color:#818cf8;margin-bottom:12px;padding:11px 16px}.hall-error{color:#fca5a5;background:#ef444426;border:1px solid #ef4444;border-radius:10px;margin-bottom:12px;padding:10px 14px;font-size:13px;font-weight:700}.hall-columns{grid-template-columns:1.35fr 1fr;gap:18px;display:grid}.hall-section-head{color:var(--gold-accent);justify-content:space-between;align-items:center;margin-bottom:10px;font-family:Cinzel,serif;font-size:14px;font-weight:800;display:flex}.hall-count{color:#94a3b8;font-family:Nunito,sans-serif;font-size:12px}.hall-rooms,.hall-create{background:#0f172a99;border:1px solid #ffffff14;border-radius:14px;padding:14px}.room-list{flex-direction:column;gap:10px;max-height:420px;display:flex;overflow-y:auto}.room-empty{color:#94a3b8;text-align:center;border:1px dashed #334155;border-radius:12px;padding:40px 12px;font-size:13px}.room-card{background:#111a2e;border:1px solid #263046;border-radius:12px;align-items:center;gap:12px;padding:10px;transition:border-color .15s;display:flex}.room-card:hover{border-color:#38bdf8}.room-card.invited{border-color:var(--gold-accent);box-shadow:0 0 14px #f59e0b59}.map-thumb{background-position:50%;background-size:cover;border:1px solid #334155;border-radius:8px;flex:none;width:84px;height:56px}.map-thumb-default{background:radial-gradient(circle at 50% 60%,#f97316 0 8%,#3f2a1d 9% 26%,#47423c 27% 52%,#1f2e1e 53%)}.room-card-info{flex:1;min-width:0}.room-card-title{align-items:center;gap:8px;font-size:14px;display:flex}.room-card-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-status{border-radius:999px;flex:none;padding:2px 8px;font-size:10.5px;font-weight:800}.status-waiting{color:#34d399;background:#10b9812e}.status-playing{color:#f87171;background:#ef44442e}.status-ended{color:#cbd5e1;background:#94a3b82e}.room-card-meta{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;margin:3px 0 6px;font-size:12px;overflow:hidden}.room-seats{align-items:center;gap:4px;display:flex}.seat-dot{border:1px solid #475569;border-radius:50%;width:10px;height:10px}.seat-dot.taken{background:#38bdf8;border-color:#38bdf8}.seat-count{color:#e2e8f0;margin-left:6px;font-size:12px;font-weight:800}.btn-join-room{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981,#047857);border:none;border-radius:10px;flex:none;padding:10px 14px;font-size:13px;font-weight:800}.btn-join-room:disabled{color:#94a3b8;cursor:not-allowed;background:#334155}.map-picker{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.map-card{text-align:left;color:#e2e8f0;cursor:pointer;background:#111a2e;border:1px solid #263046;border-radius:12px;align-items:center;gap:10px;padding:8px;transition:border-color .15s;display:flex}.map-card:hover{border-color:#38bdf8}.map-card.selected{border-color:var(--gold-accent);box-shadow:0 0 12px #f59e0b4d}.map-card-info strong{font-size:13px;display:block}.map-card-info small{color:#94a3b8;margin-top:2px;font-size:11.5px;line-height:1.35;display:block}.hall-note{color:#94a3b8;text-align:center;margin-top:10px;font-size:11.5px;line-height:1.4}.room-panel{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;flex-direction:column;gap:10px;width:270px;max-height:calc(100vh - 120px);padding:12px 14px;display:flex;position:absolute;top:20px;left:24px;overflow-y:auto;box-shadow:0 10px 25px #00000080}.room-panel-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.room-panel-name{color:#f1f5f9;font-family:Cinzel,serif;font-size:15px;font-weight:800}.room-panel-meta{color:#94a3b8;margin-top:2px;font-size:11.5px;line-height:1.4}.room-role-badge{color:#7dd3fc;background:#38bdf826;border-radius:999px;flex:none;padding:3px 8px;font-size:11px;font-weight:800}.room-role-badge.is-host{color:#fbbf24;background:#f59e0b2e}.host-controls{flex-direction:column;gap:8px;display:flex}.host-controls .chat-input{width:100%;padding:8px}.host-buttons{gap:6px;display:flex}.host-buttons .btn-icon{flex:1}.btn-small{padding:10px;font-size:14px}.btn-primary:disabled{box-shadow:none;color:#94a3b8;cursor:not-allowed;background:#334155;transform:none}.room-wait-note{color:#fbbf24;font-size:12px;line-height:1.4}.room-wait-note:empty{display:none}.moderator-ledger{border-top:1px solid #ffffff14;flex-direction:column;gap:3px;padding-top:8px;display:flex}.ledger-title{color:#fbbf24;margin-bottom:4px;font-size:12px;font-weight:800}.ledger-row{background:#1e293b99;border-radius:6px;justify-content:space-between;gap:8px;padding:3px 6px;font-size:12px;display:flex}.ledger-row span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ledger-row span:last-child{color:#7dd3fc;flex:none;font-weight:800}.ledger-row.wolf span:last-child{color:#f87171}.ledger-row.dead{opacity:.5}.btn-leave{color:#fca5a5;border-color:#ef444466}@media (width<=820px){.hall-columns{grid-template-columns:1fr}.hall-profile{flex-direction:column;align-items:stretch}.hall-language{width:auto}.room-panel{width:calc(100vw - 32px);top:70px;left:16px}}.customizer-section{background:#0f172a80;border:1px solid #ffffff14;border-radius:12px;margin-bottom:16px;padding:12px}.customizer-label{color:#38bdf8;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:800;display:block}.option-grid{flex-wrap:wrap;gap:8px;display:flex}.btn-opt{color:#cbd5e1;cursor:pointer;text-align:center;background:#1e293b;border:1px solid #334155;border-radius:8px;flex:1;min-width:100px;padding:8px 10px;font-size:12px;font-weight:700;transition:all .15s}.btn-opt:hover{color:#fff;background:#334155}.btn-opt.selected{color:#fff;background:linear-gradient(135deg,#0284c7,#0369a1);border-color:#38bdf8;box-shadow:0 0 10px #38bdf866}.color-swatch-list{align-items:center;gap:10px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;transition:transform .15s,border-color .15s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:#fff;transform:scale(1.2);box-shadow:0 0 12px #fffc}.model-grid .model-opt{flex-direction:column;align-items:center;gap:4px;min-width:96px;max-width:120px;display:flex}.model-grid .model-opt img{object-fit:cover;background:#0f172a;border-radius:6px;width:72px;height:72px}.customizer-hint{color:#64748b;margin-top:6px;font-size:11px;display:block}.character-preview-wrap{z-index:2;background:#15202d;border:1px solid #ffffff20;border-radius:10px;margin-bottom:10px;position:sticky;top:0;overflow:hidden}#customizer-modal .modal-card{scroll-padding-top:230px}.character-preview{background:#15202d;width:100%;height:210px}.character-preview canvas{cursor:grab;width:100%;height:100%;display:block}.character-preview-status{color:#d2d8e1;pointer-events:none;font-size:11px;position:absolute;bottom:10px;left:12px;right:12px}.customizer-appearance-note{color:#a8b4c5;margin-bottom:16px;font-size:12px;line-height:1.6}.role-portrait{object-fit:cover;background:#0f172a;border:1px solid #334155;border-radius:12px;width:160px;height:160px;margin:0 auto 10px;display:block}.role-setup{flex-direction:column;gap:6px;display:flex}.setup-row{color:#cbd5e1;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.host-controls .setup-row .chat-input{width:auto;padding:4px 6px}.setup-roles{grid-template-columns:1fr 1fr;gap:4px;display:grid}.setup-role{color:#e2e8f0;cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.room-deck{color:#a5b4fc;font-size:12px;line-height:1.4}.room-deck:empty{display:none}.btn-target:disabled{opacity:.4;cursor:not-allowed}.btn-target:disabled:hover{color:#f1f5f9;background:#1e293b;border-color:#334155}.btn-target.btn-confirm{color:#fbcfe8;border-color:#f472b6}.btn-target.btn-hang.selected{background:#ef4444;border-color:#ef4444}.btn-target.btn-spare.selected{background:#10b981;border-color:#10b981}.action-note{color:#6ee7b7;padding:6px 0;font-size:13px}.chat-channel-tag{border-radius:6px;margin-right:6px;padding:1px 6px;font-size:11px;font-weight:800;display:inline-block}.chat-msg.channel-wolf .chat-channel-tag{color:#fca5a5;background:#ef444433}.chat-msg.channel-ghost .chat-channel-tag{color:#cbd5e1;background:#94a3b833}.chat-msg.channel-ghost{opacity:.8;font-style:italic}.chat-input.channel-wolf{border-color:#ef444499}.chat-input.channel-ghost{border-color:#94a3b899}.chat-input:disabled,.btn-send:disabled,.btn-emote:disabled{opacity:.45;cursor:not-allowed}.role-extra{text-align:left;background:#1e293bb3;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:13px;line-height:1.5}.role-extra[hidden]{display:none}.role-extra-title{color:#c4b5fd;font-weight:800}.role-extra-wolf{color:#f87171}.role-extra-lover{color:#f9a8d4;font-weight:700}.game-over-card{max-height:92vh;overflow-y:auto}.game-log-title{color:#94a3b8;text-align:left;margin-bottom:6px;font-size:13px;font-weight:800}.game-log{text-align:left;background:#0f172ab3;border-radius:8px;max-height:220px;margin-bottom:16px;padding:8px 10px;font-size:12px;overflow-y:auto}.game-log[hidden],.game-log-title[hidden]{display:none}.log-header{color:#fbbf24;margin-top:6px;font-weight:800}.log-header:first-child{margin-top:0}.log-line{color:#cbd5e1;padding-left:10px}.ledger-log{max-height:160px;margin-bottom:0}.role-btn-container{gap:8px;display:flex}.btn-rules{box-shadow:none;background:linear-gradient(135deg,#1f2937,#374151);border-color:#64748b}.rules-card{text-align:left;width:560px;max-width:calc(100vw - 32px);max-height:88vh;overflow-y:auto}.rules-content{color:#e2e8f0;margin-bottom:16px;font-size:13px;line-height:1.55}.rules-content p{margin:0 0 8px}.rules-content ul{margin:0 0 8px;padding-left:18px}.rules-content li{margin-bottom:4px}.rules-heading{color:#fbbf24;margin:12px 0 4px;font-weight:800}#lobby-modal .btn-join-room.btn-watch{color:#e7d3cf;background:0 0;border:1px solid #ad8580}#btn-take-seat[hidden],.btn-role-card[hidden],.mobile-panel-controls{display:none}@media (width>=821px) and (width<=1100px){.room-panel{top:88px}.voice-bar{top:160px}}@media (width<=820px){.top-bar{gap:8px;width:calc(100% - 24px);max-width:calc(100% - 24px);padding:10px 12px;top:12px}.camera-bar{z-index:25;max-width:none;top:86px;left:12px;right:12px}.voice-bar{min-width:0;max-width:min(260px,100% - 24px);padding:8px;top:155px;right:12px}.room-badge{min-width:0;font-size:11px}#txt-room-code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.in-room .mobile-panel-controls{z-index:35;gap:6px;display:flex;position:absolute;bottom:16px;right:12px}.mobile-panel-controls button{padding:10px 12px}.mobile-panel-controls button[aria-expanded=true]{background:#344353;border-color:#cfb18a}.room-panel:not([data-mobile-open=true]),.chat-container:not([data-mobile-open=true]){display:none}.room-panel{z-index:30;width:min(320px,100% - 24px);max-height:calc(100dvh - 225px);top:155px;left:12px}.chat-container{z-index:30;width:min(340px,100% - 24px);height:min(320px,100dvh - 235px);bottom:70px;right:12px}.role-btn-container{bottom:16px;left:12px}.role-btn-container .btn-role-card{padding:8px;font-size:11px}.action-panel{max-width:calc(100% - 24px);bottom:72px}.voice-bar{flex-direction:row;align-items:center;gap:4px;max-width:calc(100% - 24px);padding:4px 6px}.voice-bar .room-badge{max-width:110px;padding:4px 6px}.voice-bar .room-badge>span{display:none}.voice-bar .voice-controls{gap:4px;margin-top:0}.voice-bar .btn-voice-icon{padding:5px 7px;font-size:11px}.voice-bar .vu-meter-container{flex:0 0 26px;height:8px}.voice-bar .voice-story-status{display:none}}.setup-rules{grid-template-columns:1fr;gap:4px;display:grid}.tension-vignette{pointer-events:none;z-index:5;opacity:0;width:100%;height:100%;transition:opacity .5s ease-in-out;position:absolute;top:0;left:0;box-shadow:inset 0 0 100px #dc262666}.tension-vignette.active{opacity:.55;animation:1.8s ease-in-out infinite heartbeatPulse}.tension-vignette.critical{opacity:.75;animation:1.2s ease-in-out infinite heartbeatPulse;box-shadow:inset 0 0 110px #ef444473}@media (prefers-reduced-motion:reduce){.tension-vignette.active,.tension-vignette.critical{animation:none}}@keyframes heartbeatPulse{0%{box-shadow:inset 0 0 70px #b91c1c40}35%{box-shadow:inset 0 0 110px #dc26268c}50%{box-shadow:inset 0 0 80px #b91c1c4d}65%{box-shadow:inset 0 0 120px #ef444499}to{box-shadow:inset 0 0 70px #b91c1c40}}@keyframes heartbeatPanic{0%{box-shadow:inset 0 0 90px #dc262666}40%{box-shadow:inset 0 0 150px #ef4444cc}60%{box-shadow:inset 0 0 110px #dc262680}80%{box-shadow:inset 0 0 160px #f87171e6}to{box-shadow:inset 0 0 90px #dc262666}}.poltergeist-bar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;background:#0f172ad9;border:1px solid #38bdf866;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;animation:3s ease-in-out infinite floatSubtle;display:flex;position:absolute;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0009,0 0 16px #38bdf840}@keyframes floatSubtle{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-4px)}}.poltergeist-title{color:#38bdf8;align-items:center;gap:6px;margin-right:4px;font-family:Cinzel,serif;font-size:13px;font-weight:800;display:flex}.btn-poltergeist{color:#e2e8f0;cursor:pointer;background:#1e293bb3;border:1px solid #38bdf84d;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:700;transition:all .2s;display:inline-flex}.btn-poltergeist:hover{background:#38bdf840;border-color:#38bdf8;transform:translateY(-2px);box-shadow:0 0 12px #38bdf866}.btn-poltergeist:active{transform:translateY(0)}.btn-poltergeist.active-toggle{color:#fff;background:#0284c7;border-color:#38bdf8;box-shadow:0 0 14px #38bdf899}.mvp-banner{flex-wrap:wrap;justify-content:center;gap:12px;margin:14px 0 18px;display:flex}.mvp-badge{text-align:center;background:#1e293bd9;border:1px solid #f59e0b66;border-radius:12px;min-width:130px;padding:8px 14px;box-shadow:0 4px 12px #0000004d}.mvp-title{color:#f59e0b;letter-spacing:.5px;text-transform:uppercase;font-size:11px;font-weight:800}.mvp-name{color:#f8fafc;margin-top:2px;font-size:14px;font-weight:800}.notebook-panel{z-index:30;color:#e2e8f0;background:#0f172af0;border:1px solid #94a3b859;border-radius:12px;flex-direction:column;gap:6px;width:min(440px,100% - 32px);max-height:72vh;padding:12px 14px;font-size:12px;display:flex;position:absolute;top:90px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000080}.notebook-panel[hidden]{display:none}.notebook-head{justify-content:space-between;align-items:center;font-size:14px;display:flex}.notebook-section-title{color:#fbbf24;letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font-size:11px;font-weight:700}.notebook-timeline{min-height:60px;max-height:30vh;padding-right:4px;overflow-y:auto}.notebook-header{color:#93c5fd;margin-top:6px;font-weight:700}.notebook-line{border-left:2px solid #94a3b84d;padding:2px 0 2px 10px;line-height:1.45}.notebook-line.private{color:#e9d5ff;border-left-color:#a855f7}.notebook-empty,.notebook-hint{color:#94a3b8;font-style:italic}.notebook-notes{flex-direction:column;gap:4px;max-height:28vh;padding-right:4px;display:flex;overflow-y:auto}.notebook-player{grid-template-columns:minmax(90px,1fr) auto minmax(90px,1.2fr);align-items:center;gap:6px;display:grid}.notebook-player.dead{opacity:.55}.notebook-player-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notebook-tags{gap:2px;display:flex}.notebook-tag{opacity:.45;cursor:pointer;background:0 0;border:1px solid #94a3b84d;border-radius:6px;width:26px;height:24px}.notebook-tag.active{opacity:1;background:#fbbf242e;border-color:#fbbf24}.notebook-input{color:#e2e8f0;background:#02061799;border:1px solid #94a3b84d;border-radius:6px;min-width:0;padding:4px 6px;font-size:12px}#btn-notebook.active-toggle{border-color:#fbbf24}.ping-menu{z-index:40;background:#0f172af2;border:1px solid #94a3b866;border-radius:10px;flex-direction:column;gap:4px;min-width:150px;padding:8px;display:flex;position:fixed;box-shadow:0 8px 24px #00000080}.ping-menu[hidden]{display:none}.ping-menu-title{color:#cbd5e1;padding:0 2px 2px;font-size:11px}.btn-ping{text-align:left;color:#f1f5f9;cursor:pointer;background:#33415599;border:1px solid #0000;border-radius:7px;padding:6px 10px;font-size:13px}.btn-ping:hover,.btn-ping:focus-visible{background:#475569cc;border-color:#fbbf24}#lobby-modal .hall-character-row{align-items:center;gap:10px;margin:14px 0 6px;display:flex}#lobby-modal .hall-character-name{color:var(--hall-paper);flex:1;font-size:13px}#lobby-modal .hall-check{color:var(--hall-muted);cursor:pointer;align-items:center;gap:8px;margin:4px 0 12px;font-size:12px;display:flex}#lobby-modal .room-pin-input{text-align:center;letter-spacing:.1em;flex:none;width:72px;padding:6px 8px}.room-pin-row .chat-input{width:110px}@media (width<=820px){.notebook-panel{border-radius:14px 14px 0 0;width:100%;max-height:70vh;top:auto;bottom:0;left:0;transform:none}}.settings-card{text-align:left;width:min(460px,100vw - 32px);max-height:86vh;overflow-y:auto}.settings-title{color:#f8fafc;margin-bottom:8px;font-size:18px;font-weight:800}.settings-body{flex-direction:column;gap:6px;display:flex}.settings-section{color:#fbbf24;letter-spacing:.05em;text-transform:uppercase;margin-top:10px;font-size:11px;font-weight:700}.settings-row{color:#e2e8f0;cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;font-size:13px;display:grid}.settings-row.settings-range{grid-template-columns:minmax(0,1fr) minmax(110px,160px) 30px}.settings-row input[type=range]{accent-color:#fbbf24;width:100%}.settings-row output{text-align:right;color:#94a3b8;font-variant-numeric:tabular-nums}.settings-row input[type=checkbox]{accent-color:#fbbf24;width:18px;height:18px}.settings-row select{width:auto;padding:4px 6px}.settings-hint{color:#94a3b8;margin-top:10px;font-size:11px;font-style:italic}.settings-actions{justify-content:space-between;gap:8px;margin-top:12px;display:flex}#lobby-modal .hall-heading-actions{align-items:center;gap:8px;display:flex}#lobby-modal{--hall-ink:#1c2530;--hall-paper:#e9e1d5;--hall-muted:#a2a8b3;--hall-line:#ffffff16;--hall-brass:#cfb18a;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--hall-paper);background:#141c26;padding:28px;font-family:Be Vietnam Pro,sans-serif}#lobby-modal .hall-card{background:var(--hall-ink);text-align:left;border:1px solid #ffffff12;border-radius:12px;grid-template-columns:minmax(300px,.85fr) minmax(0,1.4fr);width:1320px;max-width:100%;height:min(840px,100dvh - 56px);max-height:none;padding:0;display:grid;overflow:hidden;box-shadow:0 24px 80px #0004}.hall-story{isolation:isolate;background:#26303c url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='700'%20height='1100'%20viewBox='0%200%20700%201100'%3e%3cdefs%3e%3clinearGradient%20id='sky'%20x2='0'%20y2='1'%3e%3cstop%20stop-color='%23252c3c'/%3e%3cstop%20offset='.6'%20stop-color='%23414253'/%3e%3cstop%20offset='1'%20stop-color='%231b2733'/%3e%3c/linearGradient%3e%3clinearGradient%20id='moon'%20x2='.8'%20y2='1'%3e%3cstop%20stop-color='%23d8b59b'/%3e%3cstop%20offset='1'%20stop-color='%23ae6e68'/%3e%3c/linearGradient%3e%3clinearGradient%20id='fog'%20x2='0'%20y2='1'%3e%3cstop%20stop-color='%23737582'%20stop-opacity='.25'/%3e%3cstop%20offset='1'%20stop-color='%23737582'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cg%20id='pine'%3e%3cpath%20d='M0%200-25%2075-12%2071-40%20117-22%20113-53%20161-7%20151-7%20182H7V151L53%20161%2022%20113%2040%20117%2012%2071%2025%2075Z'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='url(%23sky)'%20d='M0%200h700v1100H0z'/%3e%3cg%20fill='%23d6cbc0'%20opacity='.45'%3e%3ccircle%20cx='60'%20cy='80'%20r='1.2'/%3e%3ccircle%20cx='520'%20cy='128'%20r='1'/%3e%3ccircle%20cx='447'%20cy='69'%20r='1.4'/%3e%3ccircle%20cx='612'%20cy='290'%20r='1.2'/%3e%3ccircle%20cx='130'%20cy='320'%20r='1'/%3e%3ccircle%20cx='359'%20cy='199'%20r='1'/%3e%3ccircle%20cx='600'%20cy='54'%20r='1'/%3e%3c/g%3e%3ccircle%20cx='420'%20cy='437'%20r='144'%20fill='url(%23moon)'/%3e%3cg%20fill='%23805957'%20opacity='.16'%3e%3ccircle%20cx='447'%20cy='365'%20r='35'/%3e%3ccircle%20cx='357'%20cy='433'%20r='24'/%3e%3ccircle%20cx='477'%20cy='480'%20r='46'/%3e%3ccircle%20cx='371'%20cy='518'%20r='28'/%3e%3c/g%3e%3cpath%20d='m0%20635%20100-61%2094%2030%2090-59%20112%2064%2098-23%20104%2044%20102-68v538H0Z'%20fill='%23343c4a'/%3e%3cg%20fill='%23293340'%3e%3cuse%20href='%23pine'%20transform='translate(53%20483)%20scale(1.35)'/%3e%3cuse%20href='%23pine'%20transform='translate(146%20565)'/%3e%3cuse%20href='%23pine'%20transform='translate(611%20468)%20scale(1.5)'/%3e%3cuse%20href='%23pine'%20transform='translate(524%20560)%20scale(.8)'/%3e%3cuse%20href='%23pine'%20transform='translate(245%20587)%20scale(.7)'/%3e%3c/g%3e%3cpath%20d='M0%20744q150-70%20330-13t370-40v128H0'%20fill='url(%23fog)'/%3e%3cg%20fill='%231b2832'%3e%3cuse%20href='%23pine'%20transform='translate(-8%20455)%20scale(2.5)'/%3e%3cuse%20href='%23pine'%20transform='translate(690%20485)%20scale(2.1)'/%3e%3cuse%20href='%23pine'%20transform='translate(94%20679)%20scale(1.3)'/%3e%3cuse%20href='%23pine'%20transform='translate(567%20684)%20scale(1.2)'/%3e%3c/g%3e%3c!--%20The%20village:%20crooked%20rooflines%20and%20a%20single%20lit%20window.%20--%3e%3cg%20fill='%2317212c'%3e%3cpath%20d='m151%20840%2049-67%2064%2067h-12v87h-89v-87Zm117-28%2044-60%2044%2060h-10v111h-69V812Zm84%2034%2055-78%2065%2078h-14v82h-97v-82Z'/%3e%3cpath%20d='M302%20775v-83l12-35%2012%2035v83Z'/%3e%3c/g%3e%3cpath%20d='M194%20846h15v23h-15z'%20fill='%23c29b70'%20opacity='.8'/%3e%3cpath%20d='M0%20929q200-68%20355-11t345-32v214H0Z'%20fill='%23131e27'/%3e%3c!--%20A%20watchful%20wolf%20on%20the%20ridge,%20cut%20as%20one%20silhouette.%20--%3e%3cpath%20d='m404%20924-8-30-17-28-2-31%2014-30%203-29%2015%2020%2014-13%204%2029%2017%2017-8%2012-17%203-3%2031%2015%2028%2013%2027%2024%2016-4%208-38-9-17-25-4%2030-16%207-3-7%2010-15-5-27-17%2019-18%2011-6-5%2023-26Z'%20fill='%23101a23'/%3e%3cpath%20d='m406%20818%205%201-4%203Z'%20fill='%23d9b68b'/%3e%3cpath%20d='M0%201025q280-67%20700-17v92H0Z'%20fill='%23101a23'/%3e%3c/svg%3e") 50%/cover;flex-direction:column;padding:34px 38px;display:flex;position:relative}.hall-brand{color:#eee4d7;align-items:center;gap:12px;font-family:Cormorant Garamond,Georgia,serif;font-size:28px;font-weight:700;line-height:1;text-decoration:none;display:flex}.hall-brand svg{fill:none;width:33px;height:39px;stroke:var(--hall-brass);stroke-width:1.5px}.hall-brand-sub{color:#c0bdbe;margin-top:7px;font-family:Be Vietnam Pro,sans-serif;font-size:10px;font-weight:400;display:block}.hall-story-copy{margin-top:62px}.hall-story-copy h1{letter-spacing:-1.8px;white-space:pre-line;text-shadow:0 3px 24px #25303d;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(48px,4.6vw,70px);font-weight:600;line-height:.98}.hall-story-copy p{color:#ccc9cc;max-width:260px;margin-top:20px;font-size:13px;line-height:1.85}.hall-story-footer{color:#b3b7bb;align-items:center;gap:14px;margin-top:auto;padding-top:32px;display:flex}.hall-story-footer p{white-space:pre-line;font-size:11px;line-height:1.8}.hall-moon-mark{color:var(--hall-brass);font-family:Georgia,serif;font-size:35px}.hall-main{scrollbar-width:thin;scrollbar-color:#5e626b transparent;flex-direction:column;min-width:0;padding:38px 40px 22px;display:flex;overflow-y:auto}.hall-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:30px;display:flex}.hall-heading h2{font-family:Cormorant Garamond,Georgia,serif;font-size:36px;font-weight:600;line-height:1.1}.hall-heading p{max-width:350px;color:var(--hall-muted);margin-top:9px;font-size:12px;line-height:1.8}#lobby-modal button,#lobby-modal input,#lobby-modal select{font-family:inherit}#lobby-modal .btn-icon{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:#d0cbc4;white-space:nowrap;background:0 0;border-color:#ffffff24;border-radius:6px;font-size:11px;font-weight:500}#lobby-modal .btn-icon:hover{border-color:var(--hall-brass);color:#fff;background:#ffffff08}#lobby-modal .hall-rules{padding:9px 12px}#lobby-modal .hall-profile{border:1px solid var(--hall-line);background:#ffffff04;border-radius:8px;grid-template-columns:minmax(0,1fr) 134px;align-items:end;gap:0 16px;margin:0 0 24px;padding:20px;display:grid}#lobby-modal .hall-field{min-width:0;margin-bottom:14px}#lobby-modal .hall-language{width:auto}#lobby-modal .hall-label{letter-spacing:0;color:#bbbcc2;margin-bottom:8px;font-family:inherit;font-size:11px;font-weight:500}#lobby-modal .chat-input{color:#eee7de;-webkit-user-select:text;user-select:text;height:43px;box-shadow:none;background:#161e28;border:1px solid #ffffff1c;border-radius:5px;padding:11px 12px;font-size:12px}#lobby-modal .chat-input::placeholder{color:#77808d}#lobby-modal .hall-customize{color:var(--hall-brass);text-underline-offset:4px;border:0;grid-column:1/-1;justify-self:start;margin:0;padding:0;font-size:11px;text-decoration:underline}.hall-tabs{border-bottom:1px solid var(--hall-line);gap:28px;margin-bottom:22px;display:flex}.hall-tabs button{color:var(--hall-muted);cursor:pointer;background:0 0;border:0;padding:0 0 13px;font-size:13px;position:relative}.hall-tabs button[aria-selected=true]{color:var(--hall-paper)}.hall-tabs button[aria-selected=true]:after{content:"";background:var(--hall-brass);height:2px;position:absolute;bottom:-1px;left:0;right:0}#lobby-modal .hall-columns{flex:1;display:block}#lobby-modal .hall-rooms,#lobby-modal .hall-create{background:0 0;border:0;border-radius:0;padding:0}#lobby-modal .hall-section-head{color:#b6b8be;margin-bottom:16px;font-family:inherit;font-size:11px;font-weight:400}#lobby-modal .hall-count{font:inherit;color:var(--hall-brass)}#lobby-modal .room-list{gap:12px;max-height:390px}#lobby-modal .room-empty{border:1px solid var(--hall-line);background:#161e2855;border-radius:8px;padding:35px 24px 32px}.hall-empty-art{width:96px;height:76px;color:var(--hall-brass);margin:0 auto 18px;display:block}.hall-empty-title{color:var(--hall-paper);font-family:Cormorant Garamond,Georgia,serif;font-size:26px;font-weight:600;display:block}.hall-empty-copy{max-width:310px;color:var(--hall-muted);margin:10px auto 22px;font-size:12px;line-height:1.9}#lobby-modal .hall-empty-action{color:var(--hall-brass);cursor:pointer;background:#cfb18a0a;border:1px solid #cfb18a66;border-radius:5px;padding:11px 24px;font-size:12px}.hall-map-heading{justify-content:space-between;align-items:baseline;gap:10px;display:flex}#hall-selected-map{color:var(--hall-brass);font-size:10px}#lobby-modal .map-picker{scrollbar-width:thin;scrollbar-color:#5e626b transparent;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;max-height:252px;margin:0 -2px 18px;padding:2px;display:grid;overflow-y:auto}#lobby-modal .map-card{color:#c0c3ca;box-shadow:none;background:#18212c;border:1px solid #ffffff1c;border-radius:6px;flex-direction:column;gap:0;padding:0;display:flex;position:relative;overflow:hidden}#lobby-modal .map-card .map-thumb{background-color:#293b48;border:0;border-radius:0;width:100%;height:65px}#lobby-modal .map-card-info{width:100%;padding:7px 8px}#lobby-modal .map-card-info strong{font-size:9px;font-weight:500;line-height:1.5}#lobby-modal .map-card-info small{display:none}#lobby-modal .map-card.selected{border-color:var(--hall-brass);color:#f2e2cc;background:#393b3c}#lobby-modal .map-card.selected:after{content:"✓";text-align:center;background:var(--hall-brass);color:#202630;border-radius:50%;width:18px;height:18px;font-size:12px;position:absolute;top:5px;right:5px}#lobby-modal .map-card:hover{border-color:#d1b896}#lobby-modal .map-thumb-default{background:#29373a url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='700'%20height='1100'%20viewBox='0%200%20700%201100'%3e%3cdefs%3e%3clinearGradient%20id='sky'%20x2='0'%20y2='1'%3e%3cstop%20stop-color='%23252c3c'/%3e%3cstop%20offset='.6'%20stop-color='%23414253'/%3e%3cstop%20offset='1'%20stop-color='%231b2733'/%3e%3c/linearGradient%3e%3clinearGradient%20id='moon'%20x2='.8'%20y2='1'%3e%3cstop%20stop-color='%23d8b59b'/%3e%3cstop%20offset='1'%20stop-color='%23ae6e68'/%3e%3c/linearGradient%3e%3clinearGradient%20id='fog'%20x2='0'%20y2='1'%3e%3cstop%20stop-color='%23737582'%20stop-opacity='.25'/%3e%3cstop%20offset='1'%20stop-color='%23737582'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cg%20id='pine'%3e%3cpath%20d='M0%200-25%2075-12%2071-40%20117-22%20113-53%20161-7%20151-7%20182H7V151L53%20161%2022%20113%2040%20117%2012%2071%2025%2075Z'/%3e%3c/g%3e%3c/defs%3e%3cpath%20fill='url(%23sky)'%20d='M0%200h700v1100H0z'/%3e%3cg%20fill='%23d6cbc0'%20opacity='.45'%3e%3ccircle%20cx='60'%20cy='80'%20r='1.2'/%3e%3ccircle%20cx='520'%20cy='128'%20r='1'/%3e%3ccircle%20cx='447'%20cy='69'%20r='1.4'/%3e%3ccircle%20cx='612'%20cy='290'%20r='1.2'/%3e%3ccircle%20cx='130'%20cy='320'%20r='1'/%3e%3ccircle%20cx='359'%20cy='199'%20r='1'/%3e%3ccircle%20cx='600'%20cy='54'%20r='1'/%3e%3c/g%3e%3ccircle%20cx='420'%20cy='437'%20r='144'%20fill='url(%23moon)'/%3e%3cg%20fill='%23805957'%20opacity='.16'%3e%3ccircle%20cx='447'%20cy='365'%20r='35'/%3e%3ccircle%20cx='357'%20cy='433'%20r='24'/%3e%3ccircle%20cx='477'%20cy='480'%20r='46'/%3e%3ccircle%20cx='371'%20cy='518'%20r='28'/%3e%3c/g%3e%3cpath%20d='m0%20635%20100-61%2094%2030%2090-59%20112%2064%2098-23%20104%2044%20102-68v538H0Z'%20fill='%23343c4a'/%3e%3cg%20fill='%23293340'%3e%3cuse%20href='%23pine'%20transform='translate(53%20483)%20scale(1.35)'/%3e%3cuse%20href='%23pine'%20transform='translate(146%20565)'/%3e%3cuse%20href='%23pine'%20transform='translate(611%20468)%20scale(1.5)'/%3e%3cuse%20href='%23pine'%20transform='translate(524%20560)%20scale(.8)'/%3e%3cuse%20href='%23pine'%20transform='translate(245%20587)%20scale(.7)'/%3e%3c/g%3e%3cpath%20d='M0%20744q150-70%20330-13t370-40v128H0'%20fill='url(%23fog)'/%3e%3cg%20fill='%231b2832'%3e%3cuse%20href='%23pine'%20transform='translate(-8%20455)%20scale(2.5)'/%3e%3cuse%20href='%23pine'%20transform='translate(690%20485)%20scale(2.1)'/%3e%3cuse%20href='%23pine'%20transform='translate(94%20679)%20scale(1.3)'/%3e%3cuse%20href='%23pine'%20transform='translate(567%20684)%20scale(1.2)'/%3e%3c/g%3e%3c!--%20The%20village:%20crooked%20rooflines%20and%20a%20single%20lit%20window.%20--%3e%3cg%20fill='%2317212c'%3e%3cpath%20d='m151%20840%2049-67%2064%2067h-12v87h-89v-87Zm117-28%2044-60%2044%2060h-10v111h-69V812Zm84%2034%2055-78%2065%2078h-14v82h-97v-82Z'/%3e%3cpath%20d='M302%20775v-83l12-35%2012%2035v83Z'/%3e%3c/g%3e%3cpath%20d='M194%20846h15v23h-15z'%20fill='%23c29b70'%20opacity='.8'/%3e%3cpath%20d='M0%20929q200-68%20355-11t345-32v214H0Z'%20fill='%23131e27'/%3e%3c!--%20A%20watchful%20wolf%20on%20the%20ridge,%20cut%20as%20one%20silhouette.%20--%3e%3cpath%20d='m404%20924-8-30-17-28-2-31%2014-30%203-29%2015%2020%2014-13%204%2029%2017%2017-8%2012-17%203-3%2031%2015%2028%2013%2027%2024%2016-4%208-38-9-17-25-4%2030-16%207-3-7%2010-15-5-27-17%2019-18%2011-6-5%2023-26Z'%20fill='%23101a23'/%3e%3cpath%20d='m406%20818%205%201-4%203Z'%20fill='%23d9b68b'/%3e%3cpath%20d='M0%201025q280-67%20700-17v92H0Z'%20fill='%23101a23'/%3e%3c/svg%3e") 50% 70%/cover}#lobby-modal .btn-primary{box-shadow:none;color:#171f29;background:#ad8580;border:1px solid #c6a09a;border-radius:5px;padding:13px 18px;font-size:12px;font-weight:600;transition:background .15s}#lobby-modal .btn-primary:hover{background:#c49a92;transform:none}#lobby-modal .hall-note{text-align:left;color:var(--hall-muted);margin-top:11px;font-size:10px;line-height:1.8}.hall-footer{border-top:1px solid var(--hall-line);color:#929ba7;flex-wrap:wrap;justify-content:space-between;gap:12px 22px;margin-top:24px;padding-top:20px;font-size:10px;display:flex}.hall-footer span{align-items:center;gap:7px;display:flex}.hall-footer span:before{content:"";background:#a5ad9c;border-radius:50%;width:4px;height:4px}#lobby-modal :focus-visible{outline-offset:4px;outline:2px solid #e4c69f}#lobby-modal .room-card{background:#18212c;border-color:#ffffff1c;border-radius:6px}#lobby-modal .room-card-meta{color:var(--hall-muted)}#lobby-modal .btn-join-room{color:#171f29;background:#ad8580;border-radius:5px}#lobby-modal .btn-join-room:disabled{color:#99a1ac;background:#303a47}#lobby-modal .seat-dot.taken{background:var(--hall-brass);border-color:var(--hall-brass)}@media (width>=1500px){.hall-story-copy{margin-top:80px}.hall-main{padding:44px 48px 26px}}@media (width>=721px) and (height<=880px){.hall-main{padding-top:28px;padding-bottom:20px}.hall-heading{margin-bottom:20px}#lobby-modal .hall-profile{margin-bottom:18px;padding:15px 18px}.hall-tabs{margin-bottom:16px}#lobby-modal .map-picker{max-height:200px}#lobby-modal .room-empty{padding:24px}.hall-empty-art{height:60px;margin-bottom:12px}.hall-footer{margin-top:18px;padding-top:16px}}@media (width<=1050px){#lobby-modal{padding:18px}#lobby-modal .hall-card{grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);height:calc(100dvh - 36px)}.hall-story,.hall-main{padding:28px}.hall-story-copy h1{font-size:54px}#lobby-modal .map-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){#lobby-modal{padding:0}#lobby-modal .hall-card{border:0;border-radius:0;height:100dvh;display:block;overflow-y:auto}.hall-story{background-position:50% 44%;min-height:240px;padding:22px 24px}.hall-brand{font-size:24px}.hall-brand svg{height:32px}.hall-story-copy{margin-top:28px}.hall-story-copy h1{white-space:pre-line;max-width:300px;font-size:44px}.hall-story-copy p{max-width:240px;margin-top:10px;font-size:11px}.hall-story-footer{display:none}.hall-main{padding:25px 24px;overflow:visible}.hall-heading{margin-bottom:22px}.hall-heading h2{font-size:32px}#lobby-modal .hall-profile{grid-template-columns:minmax(0,1fr) 115px;gap:0 12px;padding:16px}#lobby-modal .map-picker{max-height:310px}#lobby-modal .room-empty{padding:24px 18px}#lobby-modal .room-card{flex-wrap:wrap;gap:8px}#lobby-modal .room-card .map-thumb{width:58px}#lobby-modal .room-card-info{min-width:150px}}@media (prefers-reduced-motion:reduce){#lobby-modal *,#lobby-modal :after{transition:none;animation:none}}#customizer-modal.wardrobe-overlay{--wd-ink:#1c2530;--wd-ink-deep:#151d27;--wd-card:#222c38;--wd-paper:#e9e1d5;--wd-muted:#a2a8b3;--wd-line:#ffffff14;--wd-brass:#cfb18a;--wd-ember:#f08a3c;color:var(--wd-paper);background:#080b10c7;padding:24px;font-family:Be Vietnam Pro,sans-serif}#customizer-modal button,#customizer-modal input{font-family:inherit}.wardrobe{border:1px solid var(--wd-line);background:var(--wd-ink);text-align:left;border-radius:12px;grid-template-columns:minmax(300px,.9fr) minmax(0,1.3fr);width:1180px;max-width:100%;height:min(780px,100dvh - 48px);display:grid;overflow:hidden;box-shadow:0 24px 80px #000a}.wardrobe-stage{background:radial-gradient(ellipse 70% 40% at 50% 92%, #7a3d1626 0%, transparent 70%), linear-gradient(180deg, #212c3a 0%, var(--wd-ink-deep) 100%);border-right:1px solid var(--wd-line);flex-direction:column;min-height:0;padding:26px 28px 22px;display:flex}.wardrobe-head h2{color:#eee4d7;font-family:Cormorant Garamond,Georgia,serif;font-size:34px;font-weight:600;line-height:1.05}.wardrobe-head p{color:var(--wd-muted);margin-top:8px;font-size:13px;line-height:1.55}#customizer-modal .wardrobe-preview{border:1px solid var(--wd-line);background:radial-gradient(circle at 50% 88%,#f9731633 0%,#0000 38%),radial-gradient(circle at 50% 35%,#2c3b4e 0%,#121922 72%);border-radius:10px;flex:1;min-height:240px;margin:18px 0 10px;position:relative;overflow:hidden}#customizer-modal .character-preview{background:0 0;width:100%;height:100%}.wardrobe-nameplate{pointer-events:none;text-shadow:0 2px 12px #000;flex-direction:column;gap:2px;display:flex;position:absolute;bottom:14px;left:16px}.wardrobe-family{letter-spacing:1.4px;text-transform:uppercase;color:var(--wd-brass);font-size:11px;font-weight:600}.wardrobe-nameplate strong{font-family:Cormorant Garamond,Georgia,serif;font-size:28px;font-weight:600;line-height:1.05}#customizer-modal .character-preview-status{text-align:right;color:#c9ced6;max-width:60%;font-size:11px;inset:12px 14px auto auto}.wardrobe-drag-hint{color:var(--wd-muted);text-align:center;font-size:12px}.wardrobe-stage-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.wardrobe-ghost-btn{color:var(--wd-paper);cursor:pointer;background:#ffffff08;border:1px solid #fff2;border-radius:8px;align-items:center;gap:6px;padding:9px 14px;font-size:13px;transition:border-color .15s,background .15s;display:inline-flex}.wardrobe-ghost-btn:hover{border-color:var(--wd-brass);background:#cfb18a14}.wardrobe-ghost-btn[aria-pressed=true]{border-color:var(--wd-ember);color:#ffd9b8;background:#f08a3c22}.wardrobe-ghost-btn:focus-visible,.wardrobe-tabs [role=tab]:focus-visible,.wardrobe-card:focus-visible,.wardrobe-chip:focus-visible,.item-tile:focus-visible,.tint-swatch:focus-visible,#customizer-modal .btn-opt:focus-visible{outline:2px solid var(--wd-brass);outline-offset:2px}.wardrobe-panel{flex-direction:column;min-height:0;display:flex}.wardrobe-tabs{border-bottom:1px solid var(--wd-line);gap:2px;padding:16px 24px 0;display:flex;overflow-x:auto}.wardrobe-tabs [role=tab]{color:var(--wd-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;padding:12px 14px;font-size:14px;font-weight:500}.wardrobe-tabs [role=tab]:hover{color:var(--wd-paper)}.wardrobe-tabs [role=tab][aria-selected=true]{color:var(--wd-paper);border-bottom-color:var(--wd-brass)}.wardrobe-panes{scrollbar-color:#ffffff2a transparent;flex:1;min-height:0;padding:18px 24px 24px;overflow-y:auto}.wardrobe-pane[hidden]{display:none}.wardrobe-hint{color:var(--wd-muted);margin-bottom:16px;font-size:13px;line-height:1.55}.wardrobe-field{margin-bottom:20px}.wardrobe-label{letter-spacing:1.2px;text-transform:uppercase;color:var(--wd-brass);margin-bottom:9px;font-size:11px;font-weight:600;display:block}#customizer-modal.is-model .wardrobe-custom-only,#customizer-modal:not(.is-model) .wardrobe-model-only{display:none}.wardrobe-filters{flex-wrap:wrap;gap:6px;display:flex}.wardrobe-chip{color:#cfd3da;cursor:pointer;background:0 0;border:1px solid #ffffff1c;border-radius:999px;padding:6px 12px;font-size:12px}.wardrobe-chip:hover{border-color:var(--wd-brass)}.wardrobe-chip[aria-pressed=true]{background:var(--wd-brass);border-color:var(--wd-brass);color:var(--wd-ink);font-weight:600}.wardrobe-count{color:var(--wd-muted);margin:12px 0 10px;font-size:12px}.wardrobe-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px;display:grid}.wardrobe-card{aspect-ratio:3/4;border:1px solid var(--wd-line);background:radial-gradient(circle at 50% 30%, #324256, var(--wd-card) 75%);color:var(--wd-paper);cursor:pointer;border-radius:10px;padding:0;transition:transform .15s,border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.wardrobe-card:hover{border-color:#cfb18a80;transform:translateY(-2px)}.wardrobe-card[aria-pressed=true]{border-color:var(--wd-brass);box-shadow:0 0 0 3px #cfb18a40,0 8px 22px #0007}.wardrobe-card img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.wardrobe-card .card-name{text-align:center;background:linear-gradient(#0000,#0b0f15e6 60%);padding:22px 8px 8px;font-size:12px;font-weight:600;line-height:1.25;position:absolute;bottom:0;left:0;right:0}.wardrobe-card .card-family{border-radius:50%;width:8px;height:8px;position:absolute;top:7px;left:7px;box-shadow:0 0 0 2px #0008}.wardrobe-card .card-placeholder{opacity:.55;place-items:center;font-size:30px;display:grid;position:absolute;inset:0}.wardrobe-card.custom-card .card-placeholder{opacity:1;padding-bottom:36px;font-size:34px}.wardrobe-card.custom-card small{color:var(--wd-muted);margin-top:2px;font-size:10px;font-weight:400;display:block}.card-family.f-villager{background:#84cc16}.card-family.f-werewolf{background:#ef4444}.card-family.f-seer{background:#a78bfa}.card-family.f-witch{background:#34d399}.card-family.f-hunter{background:#f59e0b}.card-family.f-bodyguard{background:#60a5fa}.card-family.f-legend{background:var(--wd-brass)}.card-family.f-classic{background:#94a3b8}.item-grid,#customizer-modal .option-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.item-tile,#customizer-modal .btn-opt{border:1px solid var(--wd-line);background:var(--wd-card);color:#d9dde3;text-align:center;cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:78px;padding:10px 6px;font-size:12px;font-weight:500;line-height:1.3;transition:border-color .15s,background .15s;display:flex}.item-tile .tile-icon{font-size:24px;line-height:1}.item-tile:hover,#customizer-modal .btn-opt:hover{background:#273342;border-color:#cfb18a80}.item-tile[aria-pressed=true],#customizer-modal .btn-opt.selected{border-color:var(--wd-brass);color:var(--wd-paper);box-shadow:none;background:#cfb18a1f}#customizer-modal .wolf-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}#customizer-modal .wolf-grid .btn-opt{min-height:96px;font-size:13px}.tint-row,#customizer-modal .color-swatch-list{flex-wrap:wrap;gap:8px;display:flex}.tint-swatch,#customizer-modal .color-swatch{cursor:pointer;border:2px solid #ffffff1f;border-radius:50%;width:32px;height:32px;padding:0;transition:transform .12s;position:relative}.tint-swatch:hover,#customizer-modal .color-swatch:hover{transform:scale(1.1)}.tint-swatch[aria-pressed=true],#customizer-modal .color-swatch.selected{border-color:var(--wd-paper);box-shadow:0 0 0 3px var(--wd-brass);transform:none}.tint-swatch.original{background:repeating-linear-gradient(135deg,#3a4656 0 5px,#232c38 5px 10px)}.tint-swatch.original:after{content:"↺";color:var(--wd-paper);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.tint-swatch.picker{background:conic-gradient(#ef4444,#f59e0b,#84cc16,#22d3ee,#6366f1,#d946ef,#ef4444)}.tint-swatch.picker input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.wardrobe-footer{border-top:1px solid var(--wd-line);background:#19212b;justify-content:flex-end;align-items:center;gap:10px;padding:14px 24px;display:flex}#customizer-modal .wardrobe-save{background:var(--wd-brass);width:auto;color:var(--wd-ink);box-shadow:none;border-radius:8px;padding:11px 22px;font-size:14px;font-weight:700}#customizer-modal .wardrobe-save:hover{background:#dcc29f;transform:none}@media (width<=860px){#customizer-modal.wardrobe-overlay{padding:0}.wardrobe{border-radius:0;grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;height:100dvh}.wardrobe-stage{border-right:none;border-bottom:1px solid var(--wd-line);padding:14px 16px 12px}.wardrobe-head h2{font-size:24px}.wardrobe-head p,.wardrobe-drag-hint{display:none}#customizer-modal .wardrobe-preview{flex:none;height:34dvh;min-height:200px;margin:10px 0 0}.wardrobe-stage-actions{margin-top:10px}.wardrobe-tabs{padding:4px 12px 0}.wardrobe-panes{padding:14px 16px 18px}.wardrobe-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.wardrobe-footer{padding:10px 16px}}@media (prefers-reduced-motion:reduce){.wardrobe-card,.tint-swatch,#customizer-modal .color-swatch{transition:none}.wardrobe-card:hover{transform:none}}
