:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;background:#090c16;color:#f4f6ff;--line:#2d354c;--cyan:#36e1ef;--lime:#d2fa40;--muted:#a4adc3}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.38;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}a{color:inherit;text-decoration:none}button{border:0;color:inherit}h1,h2,h3,p{margin:0}p{line-height:1.55;color:var(--muted)}[hidden]{display:none!important}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:0 4%}.brand{display:flex;align-items:center;gap:7px;font-weight:900;font-size:16px}.brand>span:last-child{font-weight:400;color:#a4adc3}.brand-mark{background:var(--lime);color:#0c1626;font-weight:900;padding:8px;transform:skewY(-8deg);margin-right:6px}.top-caption{font-size:9px;letter-spacing:2px;color:#8b97b3}#service-status{margin-left:auto;font-size:11px;color:var(--cyan)}main{max-width:1660px;padding:0 4%;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 0 24px}.eyebrow{color:var(--lime);font-size:9px;font-weight:700;letter-spacing:2px}h1{font-size:32px;letter-spacing:-1px;margin-top:10px}.head-actions{display:flex;gap:10px}.secondary,.accent{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 15px;border:1px solid #46516b;border-radius:6px;background:#151b2b;font-size:11px;font-weight:600;white-space:nowrap}.accent{background:var(--cyan);border-color:var(--cyan);color:#09202b}.secondary:hover:not(:disabled){border-color:var(--cyan)}.connection-panel{display:flex;align-items:center;gap:22px;border:1px solid var(--line);border-radius:10px;padding:17px 20px;background:#111725;margin-bottom:20px;min-height:88px}label{display:block;color:#b0bdd7;font-size:10px}input,select{display:block;width:100%;background:#080e1d;color:#f0f4ff;border:1px solid #39465f;padding:10px 12px;border-radius:5px;margin-top:7px;min-height:38px;font-size:12px}.connection-panel>label{width:226px;flex-shrink:0}.connection-description{border-left:1px solid var(--line);padding-left:22px}.connection-description strong{font-size:12px;color:var(--cyan)}.connection-description p{font-size:11px;margin-top:5px}#connect-form{display:flex;align-items:end;gap:8px}#connect-form label{min-width:150px;max-width:200px}.connection-panel:has(#connect-form:not([hidden])){flex-wrap:wrap}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.stage-shell{border:1px solid #3b4363;border-radius:12px;overflow:hidden;background:#080b1c;box-shadow:0 20px 70px #0005}.arena{position:relative;width:100%;aspect-ratio:1.35;min-height:540px;overflow:hidden;background:#080b20}.arena canvas{position:absolute;inset:0;width:100%;height:100%}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#070a2070,transparent 45%),linear-gradient(0deg,#080c21ee,transparent 34%)}.game-heading{position:absolute;top:28px;left:28px;max-width:45%;pointer-events:none}.game-heading>span{font-size:8px;letter-spacing:2px;color:#bdcaee}.game-heading h2{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(36px,4.5vw,68px);font-style:italic;line-height:.98;letter-spacing:-1px;margin-top:14px;text-shadow:3px 5px #18234b}.stage-meta{position:absolute;right:26px;top:26px;text-align:right}.source-badge{display:inline-block;background:#111e35eb;border:1px solid var(--cyan);color:var(--cyan);font-size:8px;font-weight:bold;letter-spacing:1px;border-radius:3px;padding:7px 9px}.source-badge.preview{color:#ffe072;border-color:#cf9f43;background:#382b13e8}.source-badge.offline{color:#ffa0a0;border-color:#f07575}.timer{margin-top:16px}.timer span{display:block;font-size:8px;color:#b0bdd7;letter-spacing:1px}.timer strong{display:block;font-family:Impact,'Arial Black',sans-serif;font-size:38px;margin-top:4px}.scene-score{position:absolute;right:26px;top:150px;display:flex;gap:10px;flex-direction:column;align-items:flex-end;pointer-events:none}.score-chip{background:#111a30cc;border:1px solid #64729270;border-radius:6px;padding:8px 12px;font-size:12px;color:#dfe8ff}.score-chip.red{border-color:#ff7a4580;color:#ffab7c}.score-chip.blue{border-color:#22d9f280;color:#6eeafa}.score-chip strong{font-size:22px;margin-left:8px;font-weight:900}.stage-caption{background:#111829;padding:13px 18px;display:flex;gap:18px;font-size:9px;color:#b2bfd6}.stage-caption span:first-child{color:var(--lime);margin-right:auto;letter-spacing:1px}.command-bar{position:absolute;bottom:24px;left:26px;right:26px;border:1px solid #ffffff2d;border-left:3px solid var(--lime);border-radius:6px;background:#0c1425e8;padding:12px 16px;display:grid;gap:6px}.command-bar>span{font-size:8px;letter-spacing:2px;color:var(--lime)}.command-bar>strong{font-size:20px;letter-spacing:.3px}.command-bar small{color:#bdcae4;font-size:10px;line-height:1.5}.phase{position:absolute;left:26px;bottom:135px;border:1px solid #9ea7cc4d;border-radius:8px;background:#121a32d9;padding:10px 14px;max-width:70%}.phase>span{font-size:10px;color:#d7e7ff}.phase>strong{color:var(--lime);margin-left:18px;font-size:16px}.votes{display:flex;gap:12px;margin-top:9px;font-size:10px;color:#a6caef}.scene-toast{position:absolute;left:50%;top:57%;transform:translate(-50%,-50%);border:1px solid #74c9df88;background:#111b34ed;padding:11px 16px;border-radius:8px;max-width:75%;min-width:200px;pointer-events:none;box-shadow:0 8px 30px #0006}.scene-toast b{display:block;color:var(--cyan);font-size:11px;margin-bottom:5px}.scene-toast span{display:block;font-size:11px;line-height:1.4}.side-panel{display:grid;gap:16px}.round-panel,.chat-panel,.players-panel{background:#111725;border:1px solid var(--line);border-radius:10px;padding:20px}.round-panel h3{font-size:21px;margin:13px 0 10px;letter-spacing:-.5px}.round-panel p{font-size:12px}.round-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:19px}.primary{grid-column:1/-1;border-radius:6px;background:var(--lime);color:#18220a;font-weight:800;padding:16px;font-size:13px;box-shadow:0 3px 0 #6d8a19}.primary:hover:not(:disabled){background:#e1ff74}details{margin-top:18px;font-size:11px;color:var(--muted)}summary{cursor:pointer;padding:5px 0}details label{margin-top:12px}details p{margin-top:10px;font-size:11px!important}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h3{font-size:14px}.section-heading>span{font-size:9px;color:#9caac5}#chat-source{color:#ffd979;border:1px solid #6e5d2a;padding:4px 6px;border-radius:3px;font-size:8px}.chat-panel{padding:17px}.chat-panel ol{padding:0;margin:12px 0 0;list-style:none;max-height:330px;overflow:auto;scrollbar-color:#3b4b70 #111725}.chat-item{border-top:1px solid #283247;padding:11px 0;display:grid;grid-template-columns:1fr auto;gap:5px}.chat-item b{font-size:11px;overflow-wrap:anywhere}.chat-item time{font-size:8px;color:#8092b4}.chat-item p{grid-column:1/-1;font-size:12px;color:#e2eaff;overflow-wrap:anywhere;line-height:1.4}.chat-item small{grid-column:1/-1;font-size:9px;color:#91a3bf}.chat-item.accepted small{color:var(--cyan)}.empty{font-size:11px;line-height:1.6;color:#8997b0;padding:14px 0}.library-heading{margin:29px 0 15px}.library-heading h3{font-size:19px;margin-top:9px}.game-library{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.game-card{position:relative;text-align:left;border:1px solid #34405b;background:#111725;border-radius:8px;overflow:hidden;padding:0}.game-card.active{border-color:var(--lime);box-shadow:0 0 0 1px #d2fa4033}.game-card canvas{width:100%;height:135px;display:block;pointer-events:none}.game-card .card-num{position:absolute;top:12px;left:12px;font-size:10px;color:#c4d4f3;z-index:1}.game-card .selected{position:absolute;top:10px;right:10px;font-size:7px;padding:4px 6px;background:var(--lime);color:#18220a;border-radius:3px;display:none;z-index:1}.game-card.active .selected{display:block}.card-info{border-top:1px solid #ffffff10;padding:13px}.card-info strong{display:block;font-size:12px}.card-info small{display:block;font-size:10px;color:#94a8ca;margin-top:7px}.players-panel{margin-top:20px}.players{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.player{display:flex;align-items:center;gap:10px;background:#192238;border-radius:6px;padding:10px;min-width:0}.player .avatar{background:#29395b;color:#e2eeff;display:grid;place-items:center;width:30px;height:30px;border-radius:5px;flex-shrink:0;font-weight:bold;font-size:12px}.player .avatar.red{background:#613b29;color:#ffb68d}.player .avatar.blue{background:#155267;color:#85ecff}.player div{min-width:0}.player b{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player small{display:block;font-size:9px;color:#a0b0cc;margin-top:4px}.player>strong{margin-left:auto;color:var(--lime);font-size:15px}.connection-note{border-top:1px solid var(--line);padding-top:15px;margin-top:24px;max-width:1100px}.connection-note p{font-size:11px}.error{padding:13px 16px;border:1px solid #a84d65;background:#351b2a;border-radius:6px;color:#ffc7d4;font-size:12px;line-height:1.5;margin-bottom:15px}footer{max-width:1660px;margin:25px auto 0;padding:23px 4%;display:flex;justify-content:space-between;color:#7788a6;font-size:8px;letter-spacing:1px}.result{position:absolute;inset:0;background:#070b1be8;z-index:4;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}.result>span{font-size:10px;letter-spacing:3px;color:var(--lime)}.result h3{font-family:Impact,'Arial Black',sans-serif;font-size:42px;max-width:480px;line-height:1.15;margin:20px 0}.result p{font-size:12px}dialog{max-width:430px;width:calc(100% - 40px);background:#111b2e;border:1px solid #506080;border-radius:12px;color:#eef4ff;padding:25px}dialog::backdrop{background:#040816bb}dialog h3{font-size:23px;margin:16px 0 12px}dialog p{font-size:13px}dialog form>div{display:flex;justify-content:end;gap:10px;margin-top:25px}.portrait .arena{width:360px;max-width:100%;aspect-ratio:9/16;min-height:0;margin:auto}.stage-shell.portrait{background:repeating-linear-gradient(135deg,#0d1424 0 1px,#080c18 1px 12px)}.portrait .game-heading{left:18px;top:22px}.portrait .game-heading h2{font-size:38px}.portrait .game-heading>span{font-size:7px;letter-spacing:1px}.portrait .stage-meta{right:18px;top:22px}.portrait .source-badge{font-size:7px;padding:5px}.portrait .timer strong{font-size:30px}.portrait .scene-score{top:145px;right:18px}.portrait .score-chip{font-size:9px;padding:6px 8px}.portrait .score-chip strong{font-size:16px}.portrait .command-bar{bottom:28px;left:18px;right:18px}.portrait .command-bar>strong{font-size:17px}.portrait .phase{bottom:140px;left:18px;max-width:90%}.portrait .scene-toast{top:55%;max-width:85%}.portrait .result h3{font-size:34px}.overlay-only .topbar,.overlay-only .page-head,.overlay-only .connection-panel,.overlay-only .side-panel,.overlay-only .stage-caption,.overlay-only .library-heading,.overlay-only .game-library,.overlay-only .players-panel,.overlay-only .connection-note,.overlay-only footer{display:none}.overlay-only main{max-width:none;padding:0}.overlay-only .workspace{display:block}.overlay-only .stage-shell{border:0;border-radius:0}.overlay-only .arena{height:100dvh;min-height:0;aspect-ratio:auto}.overlay-only .stage-shell.portrait .arena{width:min(100vw,56.25dvh);height:100dvh;aspect-ratio:9/16}.overlay-only .error{position:fixed;top:0;left:0;right:0;z-index:5;margin:0;border-radius:0}.overlay-only .command-bar{bottom:7%}.overlay-only .phase{bottom:calc(7% + 110px)}
.game-library{grid-template-columns:repeat(5,minmax(0,1fr))}
.sound-panel{border:1px solid #765638;border-radius:10px;padding:17px;background:linear-gradient(135deg,#30202d,#171b2e)}
.sound-panel h3{color:#ffdb8a}.sound-panel .section-heading button{font-size:10px;padding:7px 9px}
.sound-panel p{font-size:11px;margin:10px 0;line-height:1.5}.sound-panel>label{margin-top:12px}
.sound-panel .volume-label{display:flex;justify-content:space-between}.sound-panel output{color:#ffdc7e}
.sound-panel input[type=range]{padding:0;accent-color:#ffd06d;cursor:pointer;margin-top:0}
.sound-panel small{display:block;color:#cbb9bf;font-size:10px;line-height:1.6}
.sound-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0}
.sound-buttons button{padding:10px 6px;background:#4a2d3d;border-color:#94605b;color:#ffe4ac;flex-direction:column;gap:4px;white-space:normal;text-align:center}.sound-buttons button small{font-size:9px;font-weight:400;color:#e2bca1}
.settings-panel{border:1px solid #4d4566;background:#171829;border-radius:12px;padding:22px;margin-top:22px}.settings-panel p{font-size:11px;margin:10px 0 16px}.settings-panel h4{font-size:13px;margin:20px 0 12px}.settings-panel fieldset{border:0;padding:0;margin:0;min-width:0}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.settings-checks{display:flex;flex-wrap:wrap;gap:18px;margin:18px 0}.settings-checks label{display:flex;align-items:center;gap:7px}.settings-checks input{width:16px;height:16px;min-height:0;margin:0;accent-color:var(--lime)}.rule-action{display:flex;align-items:center;gap:8px;min-width:0}.rule-action select{flex:1}.rule-action input{width:68px}.rule-unit{font-size:10px;color:#c3b7db;width:42px}.gift-rule{display:grid;grid-template-columns:minmax(140px,1fr) minmax(260px,2fr) auto;gap:10px;align-items:center;margin-bottom:10px}.default-gift-label{margin-top:20px}#gift-default{max-width:470px}.settings-panel fieldset:disabled{opacity:.6}.stage-shell[data-game="halay"] .votes{flex-direction:column;gap:4px;font-size:9px}.stage-shell[data-game="halay"] .phase{max-width:58%;padding:8px}.settings-panel>h3{color:#ffdb8a}
@media(max-width:760px){.settings-grid{grid-template-columns:1fr}.gift-rule{grid-template-columns:1fr auto}.gift-rule>input{grid-column:1/-1}.settings-panel{padding:16px}.rule-action{gap:5px}}
.music-panel{max-width:900px}.music-panel form{display:flex;gap:12px;align-items:end;margin-top:16px}.music-panel form label{flex:1}.music-panel #music-screen{width:100%;min-width:200px;height:270px;max-width:640px;background:#090c16;margin:16px 0}.music-panel iframe{display:block;width:100%;height:270px;border:0}.music-controls{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.music-panel input[type=range]{max-width:400px;accent-color:#ffbd67;padding:0}.music-panel .volume-label{display:flex;gap:15px}.music-panel .volume-label output{color:#ffdc7e}#silence-all{width:100%;margin-bottom:12px;border-color:#bd5265;color:#ffbdc5}
.stage-shell[data-game="halay"] .scene-toast{display:none}
.timer strong.untimed{font-size:24px;letter-spacing:0}
.gift-observed{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}.gift-observed:empty{display:none}.gift-observed button{white-space:normal;text-align:left}
.stage-shell[data-game="halay"] .vignette{background:linear-gradient(180deg,#141323ad,transparent 33%),linear-gradient(0deg,#191222a6,transparent 28%)}
.stage-shell[data-game="halay"] .game-heading h2{color:#ffe5a3;text-shadow:3px 5px #7b3044}
.stage-shell[data-game="halay"] .phase{background:#2b1929e6;border-color:#c78d5680;max-width:50%;top:24%;bottom:auto;padding:9px 11px}
.stage-shell[data-game="halay"] .phase>span{overflow-wrap:anywhere}
.stage-shell[data-game="halay"] .scene-toast{top:38%;left:24%;min-width:0;width:180px;max-width:45%;padding:8px 12px;transform:translate(-35%,-50%);background:#3b2336ed;border-color:#efb96880}
.stage-shell[data-game="halay"] .scene-toast b{color:#ffda7e}
.stage-shell[data-game="halay"] .command-bar{border-left-color:#ffd06d;background:#251d2ceb}
.stage-shell[data-game="halay"] .command-bar>strong{font-size:clamp(13px,1.6vw,20px)}
@media(min-width:1500px){.arena{min-height:650px}.workspace{grid-template-columns:minmax(0,1fr) 325px}.chat-panel ol{max-height:390px}}
@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 265px;gap:14px}.arena{min-height:540px}.game-heading h2{font-size:40px}.scene-score{top:160px}.connection-panel{gap:14px}.connection-description{padding-left:14px}.top-caption{display:none}.command-bar>strong{font-size:17px}.game-card canvas{height:115px}.players{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.topbar{height:65px;padding:0 18px}.brand{font-size:13px}#service-status{font-size:9px}main{padding:0 16px}.page-head{align-items:start;flex-direction:column;padding-top:24px}h1{font-size:27px}.head-actions{width:100%}.head-actions>*{flex:1;padding:11px}.connection-panel{align-items:stretch;flex-direction:column;padding:16px}.connection-panel>label{width:100%}.connection-description{border-left:0;border-top:1px solid var(--line);padding:12px 0 0}.connection-panel:has(#connect-form:not([hidden])){flex-wrap:nowrap}#connect-form{flex-wrap:wrap}#connect-form label{min-width:100%;max-width:none}#connect-form button{flex:1}.workspace{grid-template-columns:1fr}.arena{min-height:560px}.game-heading{left:20px;top:24px}.game-heading h2{font-size:40px}.stage-meta{right:20px;top:24px}.scene-score{right:20px}.side-panel{grid-template-columns:1fr}.chat-panel ol{max-height:245px}.game-library{grid-template-columns:1fr 1fr}.game-card canvas{height:130px}.players{grid-template-columns:1fr 1fr}.library-heading>span{display:none}.library-heading h3{font-size:18px}.command-bar{left:18px;right:18px}.phase{left:18px;max-width:85%}.stage-caption{font-size:8px;padding:12px;gap:10px}.result h3{font-size:34px}footer{padding:22px 16px;font-size:7px;gap:15px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
