:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f1f4ff;background-color:#060a14;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#18203a,#060a14 50%);color:#f1f4ff}.site-footer{position:fixed;bottom:0;left:0;right:0;text-align:center;padding:8px 16px;font-size:.78rem;color:#a0b4ff73;z-index:10;pointer-events:none}.site-footer a{color:#a0b4ff8c;text-decoration:none;pointer-events:all;transition:color .15s}.site-footer a:hover{color:#a0b4ffe6}.site-footer-sep{margin:0 6px}#app{width:100%;height:100vh;overflow:hidden;position:relative}.hud-top{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;pointer-events:none}.phase-block{display:flex;align-items:center;gap:10px;pointer-events:auto}.role-block{display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:auto}.role-buttons{display:flex;align-items:center;gap:10px}.player-nickname-badge{font-size:.78rem;color:#d1e0ffcc;letter-spacing:.04em;padding:3px 10px;background:#070e21a6;border:1px solid rgba(173,188,255,.2);border-radius:999px;pointer-events:none;min-height:1.2em}.phase-block{padding:8px 12px;border:1px solid rgba(173,188,255,.22);background:#070e21bf;border-radius:10px}#roundLabel{font-weight:700}#phaseLabel{font-size:.85rem;letter-spacing:.06em;padding:3px 8px;border-radius:999px;color:#d0dcff;background:#6278b673}#phaseLabel.day{color:#10213a;background:#cde0fff2}.layout{width:100%;height:100%;display:grid;grid-template-columns:290px 1fr}.main-panel{min-height:0;display:grid;grid-template-rows:1fr auto}.sidebar{height:100%;padding:80px 14px 14px;background:#070d1be6;border-right:1px solid rgba(138,154,216,.22);overflow-y:auto}.sidebar h2{margin:0 0 12px;font-size:1.1rem}.players-list{display:grid;gap:8px;margin-bottom:12px}.player-row{border:1px solid rgba(152,169,234,.22);background:#0b1631a6;border-radius:10px;padding:9px;display:flex;align-items:center;justify-content:space-between;gap:8px}.player-row:hover{border-color:#c8d6ffb3;background:#14234cd9}.player-row.highlighted{border-color:#dce8fff2;background:#283c78f2;box-shadow:0 0 0 1px #d2e1ff66,0 0 18px #537fff8c}.actions{display:flex;gap:6px}.ui-btn{border-radius:10px;border:1px solid rgba(154,169,235,.45);background:#2c3c72b3;color:#f4f7ff;font-size:.9rem;font-weight:700;padding:8px 11px;cursor:pointer;transition:background .18s ease,transform .18s ease,border-color .18s ease}.ui-btn:hover{background:#3f5393db;border-color:#c4d0ffb8;transform:translateY(-1px)}.ui-btn:active{transform:translateY(0)}.ui-btn:disabled{opacity:.38;cursor:not-allowed}.ui-btn.small{font-size:.75rem;padding:6px 8px}.ui-btn.danger{background:#822332bf;border-color:#ec768a6b}.ui-btn.danger:hover{background:#a12e42d1;border-color:#fcabb894}.ui-btn.full{width:100%}.scene-root{min-height:0;position:relative;overflow:hidden}.scene-root canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.chat-row{display:flex;border-top:1px solid rgba(138,154,216,.24);padding-bottom:34px}.chat-panel{flex:1;min-width:0;background:#080f1feb;padding:10px 12px;display:grid;gap:10px}.messages-box{height:130px;overflow-y:auto;border:1px solid rgba(152,169,234,.26);border-radius:10px;background:#070d1db8;padding:10px;display:grid;gap:6px;align-content:start}.message-line{font-size:.88rem;color:#dbe4ff}.chat-form{display:grid;grid-template-columns:1fr auto;gap:8px}.chat-input{width:100%;border-radius:10px;border:1px solid rgba(154,169,235,.4);background:#0c1831e6;color:#f4f7ff;padding:8px 10px;font-size:.9rem}.chat-input:focus{outline:2px solid rgba(161,183,255,.45);outline-offset:1px}.hidden{display:none!important}.role-label-display{display:inline-block;padding:6px 14px;background:#2c3c72bf;border:1px solid rgba(160,180,255,.4);border-radius:10px;color:#f1f4ff;font-size:.9rem;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 2px 8px #0003}.role-picker-backdrop{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#040914ad;padding:16px}.role-picker-backdrop.hidden{display:none}.role-picker-modal{width:min(320px,100%);border:1px solid rgba(161,180,241,.42);border-radius:14px;background:#091226f5;box-shadow:0 18px 35px #00000059;padding:14px}.role-picker-modal h3{margin:0 0 12px;font-size:1rem}.role-picker-actions{display:grid;gap:8px}.role-option-btn.active{background:#5c7ac9f2;border-color:#d3e0fff2}.lobby-screen{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;gap:24px;background:radial-gradient(circle at top,#18203a,#060a14 60%);padding:20px}.lobby-card{width:min(480px,92vw);border:1px solid rgba(154,172,240,.28);border-radius:18px;background:#091125eb;box-shadow:0 24px 48px #00000073;padding:36px 32px 28px;display:grid;gap:24px}.lobby-avatar-card{width:min(380px,92vw);border:1px solid rgba(154,172,240,.28);border-radius:18px;background:#091125eb;box-shadow:0 24px 48px #00000073;padding:24px 20px 20px;display:grid;gap:16px;max-height:calc(100vh - 40px);overflow-y:auto}.lobby-avatar-card--locked .lobby-avatar-controls{pointer-events:none;opacity:.45}.lobby-avatar-card--locked .lobby-avatar-copy:after{content:" Appearance locked — already submitted to the contract.";color:#8cd28ccc}.lobby-title{margin:0;font-size:2rem;font-weight:800;letter-spacing:.04em;text-align:center;background:linear-gradient(135deg,#a8c0ff,#e0c8ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.lobby-subtitle{margin:-16px 0 0;text-align:center;font-size:.8rem;letter-spacing:.12em;color:#b4c3f08c;text-transform:uppercase}.lobby-wallet-section,.lobby-game-section{display:grid;gap:14px}.lobby-address{font-size:.75rem;font-family:monospace;color:#b4c8ffa6;word-break:break-all;text-align:center;min-height:1.1em}.lobby-proxy-badge[hidden],.lobby-associate-section[hidden]{display:none!important}.lobby-proxy-badge{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:#b478ff33;border:1px solid rgba(180,120,255,.45);color:#d2aaffe6}.lobby-associate-section{display:grid;gap:10px;padding:12px;border-radius:10px;background:#643cb41f;border:1px solid rgba(160,100,255,.25)}.lobby-associate-copy{margin:0;font-size:.8rem;color:#c8b4ffcc;line-height:1.45;text-align:center}.lobby-associate-copy strong{color:#dcbeff}.lobby-row{display:grid;grid-template-columns:1fr auto;gap:8px}.lobby-input{border-radius:10px;border:1px solid rgba(154,169,235,.4);background:#0c1831e6;color:#f4f7ff;padding:8px 12px;font-size:.95rem}.lobby-input:focus{outline:2px solid rgba(161,183,255,.45);outline-offset:1px}.lobby-game-info{border:1px solid rgba(138,160,220,.25);border-radius:12px;background:#0e1a37b3;padding:12px 14px;display:grid;gap:6px}.lobby-game-info[hidden]{display:none}.lobby-game-row{display:flex;justify-content:space-between;font-size:.9rem;color:#c8d7ffcc}.lobby-game-row strong{color:#f1f4ff}.lobby-countdown{font-variant-numeric:tabular-nums}.lobby-section-title{margin:0;font-size:.9rem;font-weight:700;letter-spacing:.04em;color:#d8e4ffeb}.lobby-active-games{display:grid;gap:10px}.lobby-game-tile{border:1px solid rgba(138,160,220,.25);border-radius:10px;background:#0e1a37b3;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}.lobby-game-tile-info{display:flex;flex-direction:column;gap:4px}.lobby-game-tile-id{font-size:.85rem;font-weight:700;color:#c8d7ffe6}.lobby-game-tile-status{font-size:.78rem;color:#b4c8ffb3}.lobby-game-tile-nick{font-size:.75rem;color:#a0b4f099}.lobby-btn--rejoin{font-size:.8rem;padding:6px 10px}.lobby-avatar-panel{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;align-items:center}.lobby-avatar-copy{margin:6px 0 0;font-size:.84rem;line-height:1.45;color:#becef5b8}.lobby-avatar-preview{width:100%;height:280px;border-radius:12px;border:1px solid rgba(154,169,235,.24);background:radial-gradient(circle at 50% 24%,rgba(115,147,255,.18),transparent 48%),linear-gradient(180deg,#122146f5,#080e1df5);overflow:hidden}.avatar-preview-canvas{width:100%;height:100%;display:block}.lobby-avatar-controls{display:grid;gap:12px}.lobby-avatar-group{display:grid;gap:8px}.lobby-avatar-label{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#b4c8ffad}.lobby-swatch-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.lobby-style-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.lobby-swatch-btn{width:100%;min-height:42px;border-radius:10px;border:1px solid rgba(154,169,235,.34);background:linear-gradient(180deg,#ffffff14,#ffffff05);box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--swatch-color) 88%,#18203a);cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.lobby-swatch-btn:hover{transform:translateY(-1px);border-color:#d2dfffb3}.lobby-swatch-btn--selected{border-color:#e6eefff5;box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--swatch-color) 88%,#18203a),0 0 0 2px #b4cdff57}.lobby-style-btn{width:100%;min-height:42px;border-radius:10px;border:1px solid rgba(154,169,235,.34);background:#122043eb;color:#e6eeffe6;font-size:.78rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.lobby-style-btn:hover{transform:translateY(-1px);border-color:#d2dfffb3;background:#1c2f5cf5}.lobby-style-btn--selected{border-color:#e6eefff5;background:#4967c2eb;box-shadow:0 0 0 2px #b4cdff57}.lobby-avatar-shuffle-btn{margin-top:4px}.lobby-btn{width:100%}.lobby-btn--primary{background:#506ec8cc;border-color:#a0beff8c}.lobby-btn--primary:hover{background:#6487e1e6;border-color:#c8dcffbf}.lobby-btn--secondary{background:#323c6499;border-color:#788cc866;font-size:.85rem}.lobby-btn--secondary:hover{background:#465582bf;border-color:#a0b4ff99}.lobby-title-actions{display:flex;justify-content:center;margin-bottom:4px}.lobby-title-actions .lobby-btn{width:auto;padding:5px 16px}.return-to-lobby-btn{margin-top:8px;font-size:.8rem;opacity:.75}.return-to-lobby-btn:hover{opacity:1}.lobby-status{margin:0;font-size:.83rem;color:#b4c8ffb3;text-align:center;min-height:1.2em}.lobby-status--error{color:#ff828ce6}.lobby-start-hint{margin:4px 0 0;font-size:.75rem;color:#a0b4e68c;text-align:center;line-height:1.4}.lobby-find-hint{margin:-4px 0 0;font-size:.75rem;color:#a0b4e68c;line-height:1.4}.lobby-nickname-hint{margin:2px 0 0;font-size:.72rem;color:#a0b4e680;line-height:1.35}.lobby-rules-row{display:flex;justify-content:center;margin-top:12px}.lobby-rules-btn{font-size:.85rem}.rules-modal-backdrop{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}.rules-modal-backdrop[hidden]{display:none}.rules-modal{position:relative;background:#080c1cf7;border:1px solid rgba(120,150,255,.35);border-radius:14px;padding:32px 36px 28px;width:min(560px,100%);max-height:80vh;overflow-y:auto;box-shadow:0 20px 56px #000000d9,0 0 80px #5064ff14;color:#d0dcff;display:grid;gap:20px}.rules-modal-close{position:absolute;top:14px;right:16px;background:transparent;border:none;color:#b4c8ff8c;font-size:1rem;cursor:pointer;padding:4px 8px;border-radius:6px;line-height:1;transition:color .15s,background .15s}.rules-modal-close:hover{color:#c8d8ff;background:#6482ff26}.rules-modal-title{margin:0;font-size:1.35rem;font-weight:800;color:#c8d8ff;letter-spacing:.03em}.rules-section{display:grid;gap:8px}.rules-section-heading{margin:0;font-size:.9rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#c8dcffd9;border-bottom:1px solid rgba(100,130,255,.2);padding-bottom:4px}.rules-body{margin:0;font-size:.88rem;color:#c8dcffbf;line-height:1.55}.rules-role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.rules-role-card{border:1px solid rgba(100,130,255,.2);border-radius:10px;background:#0e1a37b3;padding:10px 12px;display:grid;gap:4px}.rules-role-card[hidden]{display:none}.has-tooltip{position:relative;cursor:help}.has-tooltip:not(.tooltip-icon){text-decoration:underline dotted rgba(160,180,255,.4);text-underline-offset:3px;text-decoration-thickness:1px}.has-tooltip[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#080c1cf7;border:1px solid rgba(120,150,255,.35);border-radius:7px;color:#d0dcff;font-size:.75rem;font-weight:400;line-height:1.5;padding:7px 11px;width:max-content;max-width:230px;white-space:normal;pointer-events:none;box-shadow:0 4px 18px #0000008c;opacity:0;transition:opacity .12s ease .08s;z-index:500;text-decoration:none}.has-tooltip[data-tooltip]:hover:after{opacity:1}.phase-help-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:#7896ff2e;border:1px solid rgba(120,150,255,.45);color:#b4d2ffd9;font-size:.62rem;font-weight:800;cursor:help;user-select:none;flex-shrink:0}.phase-help-icon[data-tooltip]:after{bottom:auto;top:calc(100% + 8px);left:0;transform:none}.phase-label-row{display:flex;align-items:center;gap:5px}.rules-role-icon{font-size:1.4rem}.rules-role-name{font-size:.85rem;color:#e0e8ff;font-weight:700}.rules-role-desc{margin:0;font-size:.78rem;color:#bed2ffa6;line-height:1.45}.rules-win-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.rules-win-card{border-radius:10px;padding:10px 12px;display:grid;gap:4px;font-size:.82rem;line-height:1.45}.rules-win-card p{margin:0;color:#c8dcffb3}.rules-win-village{background:#1e3c1e80;border:1px solid rgba(80,160,80,.3)}.rules-win-wolves{background:#3c141480;border:1px solid rgba(160,60,60,.3)}.rules-win-icon{font-size:1.3rem}@media(max-width:600px){.rules-role-grid,.rules-win-row{grid-template-columns:1fr}.rules-modal{padding:24px 20px 20px}}.lace-install-backdrop{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:300}.lace-install-backdrop[hidden]{display:none}.lace-install-modal{background:#080c1cf7;border:1px solid rgba(120,150,255,.35);border-radius:14px;padding:36px 40px;width:min(420px,92vw);text-align:center;box-shadow:0 20px 56px #000000d9,0 0 80px #5064ff14;color:#d0dcff}.lace-install-icon{font-size:2.8rem;margin-bottom:12px}.lace-install-title{font-size:1.25rem;font-weight:700;margin:0 0 16px;color:#c8d8ff}.lace-install-body{font-size:.9rem;color:#c8dcffcc;margin:0 0 10px;line-height:1.55}.lace-install-actions{display:flex;gap:10px;justify-content:center;margin-top:24px}.lace-install-cta{background:#4a6cf7;color:#fff;text-decoration:none;border:none;border-radius:6px;padding:9px 20px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.lace-install-cta:hover{background:#3a5ce0}.lace-install-dismiss{background:transparent;border:1px solid rgba(160,180,255,.35);color:#c8dcffb3;text-decoration:none;border-radius:6px;padding:9px 20px;font-size:.9rem;cursor:pointer;transition:border-color .15s,color .15s}.lace-install-dismiss:hover{border-color:#a0b4ffa6;color:#c8d8ff}.midnight-choice-modal .midnight-choice-actions{display:flex;flex-direction:column;gap:12px;margin-top:22px}.midnight-choice-actions-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.midnight-choice-actions-row .ui-btn{flex:1 1 140px;min-width:min(100%,160px);justify-content:center}.midnight-choice-cancel{background:transparent;border:none;color:#b4c8ff8c;font-size:.85rem;padding:6px 12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.midnight-choice-cancel:hover{color:#c8dcffd9}@media(max-width:980px){.layout{grid-template-columns:230px 1fr}.ui-btn{padding:7px 10px}.messages-box{height:110px}.lobby-screen{flex-direction:column;gap:16px;padding:16px}.lobby-card,.lobby-avatar-card{width:min(560px,94vw)}.lobby-avatar-panel{grid-template-columns:1fr}}@media(max-width:600px){.lobby-card,.lobby-avatar-card{width:100%;padding:24px 20px}}.vote-confirm-backdrop{position:absolute;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:200}.vote-confirm-backdrop.hidden{display:none}.vote-confirm-modal{background:#0e1628;border:1px solid rgba(100,140,220,.4);border-radius:10px;padding:1.75rem 2rem;min-width:280px;max-width:400px;color:#f1f4ff;box-shadow:0 8px 32px #0009}.vote-confirm-modal h3{margin:0 0 .75rem;font-size:1.1rem;color:#c8d8ff}.vote-confirm-modal p{margin:0 0 .5rem;font-size:.9rem;color:#c8dcffcc}.vote-confirm-actions{display:flex;gap:.75rem;margin-top:1.25rem}.vote-confirm-actions .ui-btn{flex:1}@keyframes vtx-dot-pulse{0%,to{transform:scale(1);box-shadow:0 0 #5082ff8c}50%{transform:scale(1.25);box-shadow:0 0 0 6px #5082ff00}}.vote-tx-progress{margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(100,140,220,.2);display:flex;flex-direction:column;gap:7px}.vote-tx-progress.hidden{display:none}.vote-tx-steps{display:flex;align-items:flex-start;flex-wrap:wrap;row-gap:8px}.vote-tx-step{display:flex;align-items:center;gap:7px;flex-shrink:0}.vote-tx-connector{flex:1;min-width:12px;height:1px;background:#648cdc33;margin:0 5px 14px;align-self:center}.vote-tx-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:#648cdc2e;border:1px solid rgba(100,140,220,.28)}.vote-tx-step-active .vote-tx-dot{background:#4a7af4;border-color:#4a7af4;animation:vtx-dot-pulse 1.6s ease-in-out infinite}.vote-tx-step-done .vote-tx-dot{background:#4ade80;border-color:#4ade80}.vote-tx-step-body{display:flex;flex-direction:column;gap:2px}.vote-tx-step-label{font-size:.78rem;font-weight:600;color:#b4c8ff66;line-height:1}.vote-tx-step-active .vote-tx-step-label,.vote-tx-step-done .vote-tx-step-label{color:#c8d8ff}.vote-tx-step-hint{display:none;font-size:.7rem;color:#5a8af8;font-weight:500}.vote-tx-step-active .vote-tx-step-hint{display:block}.vote-tx-elapsed{font-size:.72rem;color:#b4c8ff66}.vote-tx-flavor{font-size:.78rem;font-style:italic;color:#b4c8ff8c;min-height:1.1em}.vote-tx-reassurance{font-size:.75rem;color:#8cb4ffe6;padding:5px 8px;border-radius:6px;border:1px solid rgba(80,130,220,.3);background:#2850b426;font-weight:500}.vote-tx-reassurance.hidden{display:none}.vote-status-bar{padding:.35rem .5rem;font-size:.78rem;color:#b4c8ffa6;text-align:center;border-top:1px solid rgba(100,140,220,.15);margin-top:.25rem}.vote-status-bar.hidden{display:none}.round-timer-bar{padding:.35rem .5rem;font-size:.78rem;color:#b4c8ffa6;text-align:center;border-top:1px solid rgba(100,140,220,.15);margin-top:.25rem}.round-timer-bar.hidden{display:none}.round-timer-label{font-variant-numeric:tabular-nums}.ui-btn.small.accuse-btn{background:#2850b480;border-color:#5082dc99;color:#c8d8ff}.ui-btn.small.accuse-btn:hover{background:#3264d2a6}.vote-btn.voted{opacity:.38;text-decoration:line-through;cursor:default;pointer-events:none}@keyframes vote-bump{0%{transform:scale(1);color:inherit}40%{transform:scale(1.22);color:#60a5fa}to{transform:scale(1);color:inherit}}.vote-count-bump{display:inline-block;animation:vote-bump .4s ease-out forwards}@keyframes waiting-pulse{0%,to{opacity:1}50%{opacity:.45}}.waiting-label{animation:waiting-pulse 1.5s ease-in-out infinite;color:#a5b4fc}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;flex-direction:column;gap:.5rem;z-index:9999;pointer-events:none}.toast{pointer-events:auto;padding:.65rem 1rem;border-radius:8px;font-size:.85rem;font-weight:500;max-width:280px;border:1px solid transparent;box-shadow:0 4px 16px #00000073;cursor:pointer;opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease}.toast-visible{opacity:1;transform:translateY(0)}.toast-hiding{opacity:0;transform:translateY(8px)}.toast-success{background:#166534eb;border-color:#22c55e80;color:#bbf7d0}.toast-error{background:#7f1d1deb;border-color:#ef444480;color:#fecaca}.toast-info{background:#1e3a8aeb;border-color:#60a5fa73;color:#bfdbfe}@keyframes announcement-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes announcement-out{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.95)}}.announcement-overlay{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:8888;pointer-events:none}.announcement-overlay.hidden{display:none}.announcement-visible .announcement-text{animation:announcement-in .35s ease-out forwards}.announcement-hiding .announcement-text{animation:announcement-out .4s ease-in forwards}.announcement-text{background:#0a0f23eb;border:1px solid rgba(165,180,252,.35);border-radius:14px;padding:1.4rem 2.5rem;font-size:1.4rem;font-weight:700;color:#e0e7ff;text-align:center;white-space:nowrap;box-shadow:0 8px 40px #000000b3;letter-spacing:.02em}.werewolf-chat-panel{border-left:1px solid rgba(180,40,40,.4);background:#140505f2}.werewolf-chat-label{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#e05555;padding:2px 0 4px}.werewolf-chat-panel .messages-box{border-color:#b4323259;background:#0f0404cc}.werewolf-chat-panel .message-line{color:#f4b8b8}.werewolf-chat-panel .chat-input{border-color:#b43c3c80;background:#190808eb;color:#fde8e8}.werewolf-chat-panel .chat-input:focus{outline-color:#dc505080}.werewolf-send-btn{background:#8c1e1ed9!important;border-color:#c83c3c80!important;color:#fde8e8!important}.werewolf-send-btn:hover{background:#b42828e6!important}.leaderboard-backdrop{position:fixed;inset:0;background:#0000009e;z-index:1490}.leaderboard-backdrop.hidden{display:none}.leaderboard-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(860px,calc(100vw - 40px));max-height:min(76vh,700px);background:#060a14f2;border:1px solid rgba(100,130,255,.3);border-radius:12px;box-shadow:0 20px 56px #000000d9,0 0 80px #5064ff14;z-index:1500;display:flex;flex-direction:column;font-size:14px}.leaderboard-panel.hidden{display:none}.leaderboard-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(100,130,255,.2);font-weight:600;font-size:14px;color:#c8d8ff}.leaderboard-close-btn{background:none;border:none;color:#89b;cursor:pointer;font-size:15px;padding:0 4px}.leaderboard-close-btn:hover{color:#f1f4ff}.leaderboard-scroll{overflow-y:auto;flex:1}.leaderboard-table{width:100%;border-collapse:collapse;color:#d0dcff}.leaderboard-table th{padding:7px 10px;text-align:left;font-size:11px;color:#7888aa;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(100,130,255,.15);position:sticky;top:0;background:#0a1023fa}.leaderboard-table td{padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.04)}.leaderboard-table tr:hover td{background:#6482ff12}.lb-rank{color:#7888aa;width:28px}.lb-nick{font-weight:600;color:#c8d8ff}.lb-addr{font-family:monospace;font-size:12px;color:#a0b4ff}.lb-pts{font-weight:700;color:#ffd96e;text-align:right}.lb-wins,.lb-rounds{text-align:center;color:#b0c4ff}.leaderboard-loading,.leaderboard-error,.leaderboard-empty{text-align:center;padding:20px;color:#67a}.leaderboard-toggle-btn{width:100%;margin-top:12px;padding:8px 10px;font-size:13px}.game-end-backdrop{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:2000}.game-end-backdrop.hidden{display:none}.game-end-modal{background:#080c1cf7;border:1px solid rgba(120,150,255,.35);border-radius:14px;padding:36px 44px;min-width:360px;max-width:580px;max-height:85vh;overflow-y:auto;text-align:center;box-shadow:0 20px 56px #000000d9,0 0 80px #5064ff14;color:#d0dcff}.game-end-title{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#67a;margin-bottom:10px}.game-end-winner{font-size:26px;font-weight:700;margin-bottom:4px;line-height:1.2}.game-end-winner-wolf{color:#e05050;text-shadow:0 0 24px rgba(220,60,60,.5)}.game-end-winner-village{color:#6ee09a;text-shadow:0 0 24px rgba(80,200,120,.4)}.game-end-winner-draw{color:#c8b85e;text-shadow:0 0 24px rgba(200,184,94,.4)}.game-end-divider{height:1px;background:#6482ff2e;margin:22px 0 18px}.game-end-score-title{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#7888aa;margin-bottom:14px}.game-end-score-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.game-end-score-row{display:flex;justify-content:space-between;font-size:14px;color:#c0cfee}.game-end-score-win span:last-child{color:#ffd96e;font-weight:600}.game-end-score-dim{opacity:.38}.game-end-score-total{margin-top:8px;padding-top:8px;border-top:1px solid rgba(100,130,255,.18);font-weight:700;font-size:16px;color:#e8efff}.game-end-score-total span:last-child{color:#ffd96e}.game-end-no-wallet{font-size:13px;color:#67a;line-height:1.5;padding:0 8px}.game-end-leaderboard-section{text-align:center}.game-end-leaderboard-scroll{max-height:220px;overflow-y:auto;margin-top:8px}.game-end-leaderboard-table{width:100%;border-collapse:collapse;font-size:12px}.game-end-leaderboard-table th{position:sticky;top:0;background:#080c1cfa;color:#67a;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:6px 8px;text-align:left;border-bottom:1px solid rgba(100,130,255,.18)}.game-end-leaderboard-table td{padding:5px 8px;color:#b0c0e8;text-align:left}.game-end-leaderboard-table tr:hover td{background:#6482ff0f}.game-end-leaderboard-loading{text-align:center;color:#67a;padding:18px 0;font-size:13px}.game-end-lobby-btn{background:#5082ff2e;border-color:#5082ff66}.game-end-lobby-btn:hover{background:#5082ff4d}.game-end-actions{display:flex;gap:10px;justify-content:center;margin-top:24px}.elimination-backdrop{position:fixed;inset:0;background:#000000ad;display:flex;align-items:center;justify-content:center;z-index:1900}.elimination-backdrop.hidden{display:none}.elimination-modal{background:#120a16f7;border:1px solid rgba(200,60,80,.5);border-radius:14px;padding:32px 40px;min-width:340px;max-width:480px;text-align:center;box-shadow:0 20px 56px #000000d9,0 0 80px #c8283c26;color:#f1d9df}.elimination-skull{font-size:44px;line-height:1;margin-bottom:10px}.elimination-title{font-size:22px;font-weight:700;margin:0 0 14px;color:#f89;letter-spacing:.02em}.elimination-body{font-size:15px;line-height:1.5;margin:8px 0}.elimination-body-dim{color:#a89ba0;font-size:13px}.elimination-actions{margin-top:22px;display:flex;justify-content:center}.role-label-display.dead{background:#46141cd9;border-color:#dc50648c;color:#ffb8c2}.sound-toggle-btn{position:fixed;bottom:1.5rem;left:1.5rem;width:50px;height:50px;border-radius:50%;border:2px solid rgba(154,169,235,.5);background:#2c3c72d9;color:#f4f7ff;font-size:1.4rem;cursor:pointer;transition:background .18s ease,transform .18s ease,border-color .18s ease,box-shadow .18s ease;z-index:100;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0006}.sound-toggle-btn:hover{background:#3f5393f2;border-color:#c4d0ffcc;transform:scale(1.08);box-shadow:0 6px 20px #00000080}.sound-toggle-btn:active{transform:scale(.98)}.sound-toggle-btn.muted{border-color:#ec768a99;background:#822332cc}.sound-toggle-btn.muted:hover{background:#a12e42e6;border-color:#fcabb8cc}.sound-toggle-btn .sound-icon{pointer-events:none;user-select:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.sound-toggle-btn.music-off{border-color:#c8aa5080;background:#5a4b1ecc}.sound-toggle-btn.music-off:hover{background:#6e5c26e6;border-color:#f0d278b3}.audio-settings-backdrop{position:fixed;inset:0;background:#000000a6;display:flex;align-items:flex-end;justify-content:flex-start;padding:0 0 5.5rem 1.5rem;z-index:500}.audio-settings-backdrop.hidden{display:none}.audio-settings-modal{background:#0e1628;border:1px solid rgba(100,140,220,.4);border-radius:14px;padding:1.5rem 1.75rem;min-width:260px;max-width:320px;color:#f1f4ff;box-shadow:0 8px 32px #0009}.audio-settings-title{margin:0 0 1.25rem;font-size:1rem;color:#c8d8ff;letter-spacing:.04em}.audio-settings-section{display:flex;flex-direction:column;gap:10px}.audio-settings-row{display:flex;align-items:center;justify-content:space-between}.audio-settings-label{font-size:.9rem;color:#c8d8ffd9;font-weight:600}.audio-settings-divider{height:1px;background:#6482ff2e;margin:1rem 0}.audio-settings-actions{margin-top:1.25rem}.audio-toggle-switch{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.audio-toggle-switch input{opacity:0;width:0;height:0;position:absolute}.audio-toggle-track{position:absolute;inset:0;background:#3c508c99;border:1px solid rgba(100,140,220,.3);border-radius:999px;transition:background .2s ease,border-color .2s ease}.audio-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#a0b4ff99;border-radius:50%;transition:transform .2s ease,background .2s ease}.audio-toggle-switch input:checked+.audio-toggle-track{background:#3c78dcbf;border-color:#78aaff99}.audio-toggle-switch input:checked+.audio-toggle-track:after{transform:translate(18px);background:#a8c8ff}.audio-track-list{display:grid;gap:6px}.audio-track-btn{text-align:left;font-weight:400;opacity:.6;transition:opacity .15s ease,background .18s ease,border-color .18s ease,transform .18s ease}.audio-track-btn.active{background:#5c7ac9f2;border-color:#d3e0fff2;opacity:1;font-weight:700}
