:root{color-scheme:dark;--bg:#111312;--panel:#1b1e1b;--line:#343a32;--text:#e9e9dc;--muted:#a1a99b;--lime:#d4e88b;--red:#e89b87;--mono:Consolas,'Courier New',monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'Segoe UI',Arial,sans-serif;font-size:15px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}a{color:var(--lime)}button{cursor:pointer;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--text);padding:10px 14px;transition:background .15s,border-color .15s}button:hover{background:#30362a;border-color:#7e896d}button:disabled{opacity:.35;cursor:default}button.primary{background:var(--lime);border-color:var(--lime);color:#202713;font-weight:700}button.primary:hover{background:#e3f3b4}button.secondary{background:#252b23}button.quiet{font-size:12px;padding:7px 10px}button.danger{color:var(--red)}.wide{width:100%;margin-top:12px}header{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 36px;gap:20px}.brand{font-family:var(--mono);font-size:24px;letter-spacing:5px;text-decoration:none;color:var(--text);font-weight:700}.brand span{display:block;font-size:9px;letter-spacing:2.2px;color:var(--muted);margin-top:3px}.phase{display:flex;align-items:center;gap:14px;font-size:14px}.phase b{color:var(--lime);font:12px var(--mono);padding-left:14px;border-left:1px solid var(--line)}.status-dot{width:7px;height:7px;background:var(--lime);border-radius:50%;box-shadow:0 0 12px #d4e822}.header-right{display:flex;align-items:center;gap:18px}.header-right>span{font:10px var(--mono);color:var(--muted);letter-spacing:1px}.header-right .role-tag{border:1px solid var(--line);padding:6px 9px;color:var(--text)}main{max-width:1800px;margin:auto;padding:32px 36px 48px}.gm-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:28px}.gm-layout>aside{display:flex;flex-direction:column;gap:18px}.panel{border:1px solid var(--line);background:var(--panel);padding:23px;margin-bottom:20px;border-radius:4px}.gm-layout>aside>.panel{margin-bottom:0}.eyebrow{font:10px var(--mono);letter-spacing:1.8px;color:var(--muted);margin-bottom:16px}.muted{color:var(--muted)}.tiny,small{font-size:11px;color:var(--muted)}h1{font-size:42px;line-height:1.1;font-weight:500;margin:12px 0 25px}h2{font-size:24px;line-height:1.3;font-weight:500;margin:8px 0 18px}p{margin:12px 0}.tower-head{display:flex;justify-content:space-between;color:var(--muted);font:11px var(--mono);letter-spacing:1.8px;padding:1px 0 20px}.tower{border-top:1px solid var(--line);margin-bottom:25px}.floor{display:grid;grid-template-columns:83px minmax(0,1fr);padding:15px 0;border-bottom:1px solid var(--line);position:relative}.floor-number{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;color:var(--muted);padding-left:7px}.floor-number>span{font:9px var(--mono);letter-spacing:1.5px}.floor-number>b{font:32px var(--mono);font-weight:400;color:#8a927e}.floor-number em{font:8px var(--mono);color:var(--lime);margin-top:7px}.active-floor .floor-number{border-left:2px solid var(--lime);padding-left:5px}.active-floor .floor-number>b{color:var(--lime)}.floor-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.person{min-width:0;background:#1c201b;border:1px solid #30362d;border-radius:3px;overflow:hidden}.camera{position:relative;aspect-ratio:16/8.2;background:radial-gradient(ellipse at center,#30372c,#1a1f19);overflow:hidden}.camera video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0}.camera-empty{display:flex;align-items:center;justify-content:center;height:100%;flex-direction:column;gap:12px}.camera-empty span{font:36px var(--mono);color:#778367;border:1px solid #4d5843;width:68px;height:68px;border-radius:50%;text-align:center;line-height:66px}.camera-empty small{font:8px var(--mono);letter-spacing:1.5px;color:#748069}.camera.live video{opacity:1}.camera.live .camera-empty{opacity:0}.cam-name{position:absolute;left:12px;bottom:10px;font-size:12px;padding:2px 7px;background:#111c}.person .cam-name{display:none}.person-info{display:flex;align-items:center;justify-content:space-between;padding:11px 14px 5px;gap:8px}.person-name{font-size:16px;overflow-wrap:anywhere}.life{font:8px var(--mono);letter-spacing:1px;color:var(--lime)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:9px 14px 14px}.stats>span{font:9px var(--mono);color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:5px;justify-content:space-between}.stats b{font-size:12px;color:var(--text);font-weight:400}progress{width:100%;height:3px;border:0;appearance:none;background:#3b4236;border-radius:2px;margin-top:3px}progress::-webkit-progress-bar{background:#3b4236}progress::-webkit-progress-value{background:#bacb8d}progress::-moz-progress-bar{background:#bacb8d}.hunger progress::-webkit-progress-value{background:#c09e6f}.hunger progress::-moz-progress-bar{background:#c09e6f}.dead{opacity:.38;filter:grayscale(1)}.dead .life{color:var(--red)}.empty-bed{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:170px;color:#707b64;border:1px dashed var(--line)}.button-row{display:flex;gap:10px;margin-top:13px}.button-row>*{flex:1}.demo-row{display:flex;justify-content:space-between;margin-top:15px;gap:4px}.food-big{display:flex;align-items:center;gap:22px;font:64px var(--mono);color:var(--lime);line-height:1}.food-big>span{font:10px var(--mono);color:var(--muted);line-height:1.6;letter-spacing:1.2px}.food-controls{display:flex;gap:7px;margin:20px 0 12px;flex-wrap:wrap}.food-number{font:18px var(--mono);flex:1;padding:10px 8px;min-width:36px}.food-number:hover{background:var(--lime);color:#202713}.report-panel{background:#22281e;border-color:#4c573e}.report-floor{font:10px var(--mono);letter-spacing:2px;color:var(--lime)}.report-text{font-size:20px;line-height:1.55}.sealed{font:12px var(--mono);border-top:1px solid var(--line);margin-top:20px;padding-top:20px;color:var(--lime)}.sealed small{display:block;margin-top:8px}.lobby-tower{min-height:620px;padding:55px 50px;background:linear-gradient(120deg,#293123,#151914);border-bottom:1px solid var(--line)}.lobby-tower>span{font:11px var(--mono);letter-spacing:3px;color:var(--lime)}.lobby-tower strong{display:block;font-size:clamp(30px,3.2vw,56px);font-weight:400;line-height:1.2;margin:28px 0}.lobby-tower p{font-size:18px;color:var(--muted)}.lobby-lines{font:18px/2 var(--mono);color:#647154;margin-top:32px}.names-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.names-grid label{display:flex;align-items:center;gap:10px}.names-grid small{font-family:var(--mono)}input,select{background:#141813;border:1px solid var(--line);color:var(--text);padding:9px 10px;border-radius:3px;width:100%;min-width:0}label{display:block;color:var(--muted);font-size:12px}label input,label select{margin-top:5px}.settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:22px 0}.invite-list{margin-top:20px}.invite-list>label{padding:9px 0;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);justify-content:space-between}.invite-list a{white-space:nowrap}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.event-card p{color:#c2c8b8;line-height:1.7}.choice-list{display:flex;flex-direction:column;gap:9px;margin-top:24px}.choice-list button{text-align:left;padding:15px;background:#22291d}.choice-list strong{display:block;color:var(--lime);font-weight:500;font-size:15px;margin-bottom:6px}.choice-list span{display:block;color:var(--muted);font-size:12px;line-height:1.55}.locked{font:12px/1.6 var(--mono);color:var(--lime);padding:17px;background:#293221;border-left:2px solid var(--lime);margin-top:25px}.locked small{display:block;font:12px/1.6 'Segoe UI',sans-serif;margin-top:8px}.initiative{font:12px/2 var(--mono);color:var(--lime)}.journal{max-height:330px;overflow:auto;font-size:12px}.journal p{border-bottom:1px solid var(--line);padding:10px 0;margin:0}.journal small{font:10px var(--mono);margin-right:10px;color:var(--lime)}.journal em{font:11px/1.6 var(--mono);color:var(--muted)}.save-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:7px 0}.save-row>span{font:10px var(--mono);color:var(--muted)}.media #preview{width:100%;aspect-ratio:16/9;background:#111711;border:1px solid var(--line)}.media label{margin-top:12px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.player-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:28px;max-width:1150px;margin:0 auto}.my-card .stats{padding:10px 0 20px}.my-card .stats span{font-size:11px}.my-card .stats b{font-size:22px}.my-card progress{height:5px}.inventory{display:flex;gap:8px;flex-wrap:wrap;padding:12px 0}.inventory span{border:1px solid #526044;border-radius:3px;padding:4px 9px;font-size:12px;color:var(--lime)}.inventory small{align-self:center}.host-layout{padding-top:25px}.host-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:27px}.host-grid .floor{padding:9px 0;grid-template-columns:65px 1fr}.host-grid .tower-head{padding-bottom:11px}.host-grid .person{display:grid;grid-template-columns:minmax(160px,46%) 1fr;position:relative}.host-grid .camera{grid-row:span 2;aspect-ratio:16/9;min-height:110px}.host-grid .person-info{padding:14px 12px 0;flex-wrap:wrap}.host-grid .person-name{font-size:18px}.host-grid .stats{padding:8px 12px 12px;gap:9px;align-self:end}.host-grid .camera-empty{gap:5px}.host-grid .camera-empty span{width:46px;height:46px;font-size:24px;line-height:44px}.host-grid .camera-empty small{font-size:6px;letter-spacing:1px}.host-grid aside>.camera{margin:0 0 22px;aspect-ratio:16/9;border:1px solid var(--line)}.host-grid .report-text{font-size:18px}.host-grid .panel{padding:19px}.broadcast-order{font:11px/1.8 var(--mono);color:var(--muted)}.broadcast-order>span{font-size:9px;letter-spacing:2px}.host-grid .life{font-size:7px}.pause-banner{text-align:center;color:#241b0c;background:#d7bb7c;padding:8px;font:12px var(--mono)}.winner{padding:35px;background:linear-gradient(110deg,#d4e88b,#a4bc67);color:#242d19;margin-bottom:30px;border-radius:4px}.winner>span{font:11px var(--mono);letter-spacing:3px}.winner h1{font-size:60px;margin:15px 0}.winner small{color:#475831}.rules{position:fixed;inset:30px;max-width:730px;max-height:90vh;overflow:auto;background:#20261c;border:1px solid #71825a;color:var(--text);padding:35px;z-index:20;box-shadow:0 0 0 100vmax #000c;border-radius:4px}.rules p{font-size:14px;line-height:1.7;color:#c8d0bc}.login{max-width:460px;margin:10vh auto;padding:30px}.login h1{margin-top:45px;font-size:35px}.login p{color:var(--muted);margin:25px 0}.login button{width:100%;margin:20px 0}.login>a{font-size:12px}footer{display:flex;justify-content:space-between;padding:20px 36px;border-top:1px solid var(--line);color:#66715c;font:9px var(--mono);letter-spacing:1px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(120px);background:var(--lime);color:#27311d;padding:14px 22px;border-radius:4px;max-width:min(90vw,650px);transition:transform .2s;z-index:50;box-shadow:0 5px 40px #0008}#toast.show{transform:translateX(-50%) translateY(0)}.loading{padding:100px;font:25px var(--mono);letter-spacing:3px}.loading span{display:block;font:14px 'Segoe UI',sans-serif;color:var(--muted);margin-top:20px}
@media(min-width:1700px){.host-grid{grid-template-columns:minmax(0,1fr) 350px}.host-grid .camera{max-height:132px}.host-grid .floor{padding:9px 0}.host-layout{max-width:1920px}.host-grid .person-info{padding-top:18px}.host-grid .stats b{font-size:17px}.host-grid .stats{padding-bottom:18px}}
@media(max-width:1150px){header{padding:0 20px}.header-right #connection{display:none}main{padding:25px 20px}.gm-layout{grid-template-columns:minmax(0,1fr) 320px;gap:20px}.event-grid{grid-template-columns:1fr}.host-grid .person{display:block}.host-grid .camera{min-height:90px}.host-grid .person-name{font-size:14px}.host-grid{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.floor-pair{gap:10px}.stats{gap:8px}}
@media(max-width:800px){header{height:auto;min-height:88px;flex-wrap:wrap;padding:17px 18px;gap:12px}.brand{font-size:20px}.brand span{font-size:7px}.phase{font-size:12px}.header-right{width:100%;justify-content:space-between}.gm-layout,.host-grid,.player-grid{display:flex;flex-direction:column}.gm-layout>aside{order:-1}.gm-layout aside .panel:not(:first-child){margin-bottom:0}.tower-column{min-width:0}.event-grid{grid-template-columns:1fr}.floor{grid-template-columns:45px minmax(0,1fr)}.floor-number>b{font-size:22px}.floor-number>span{font-size:7px}.floor-number em{font-size:6px}.camera-empty span{width:42px;height:42px;font-size:22px;line-height:40px}.camera-empty small{font-size:6px;letter-spacing:0}.person-info{padding:8px 8px 4px;flex-wrap:wrap}.person-name{font-size:14px}.life{font-size:7px}.stats{padding:8px;gap:7px}.stats>span{font-size:7px}.stats b{font-size:10px}.settings-grid{grid-template-columns:1fr 1fr}.lobby-tower{min-height:480px;padding:35px 25px}.host-grid .person{display:block}.host-grid aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.host-grid aside>.camera{min-height:180px;margin:0}.host-grid aside .report-panel{grid-column:span 2}.host-grid .floor{grid-template-columns:45px 1fr}.host-grid .person-name{font-size:14px}.host-grid .stats{padding:10px 8px}.host-grid .panel{margin:0}.host-grid .camera{min-height:0}.rules{inset:15px;padding:25px}footer{padding:20px;font-size:8px}footer span{display:none}main{padding:22px 14px}.panel{padding:20px}.winner h1{font-size:42px}}

.timer-bar{display:flex;align-items:center;justify-content:center;gap:20px;border-bottom:1px solid var(--line);padding:8px 20px}.timer-bar>span{font:11px var(--mono);color:var(--lime)}.timer-bar small{font-size:10px}.roster summary{cursor:pointer;color:var(--lime);font-size:13px}.roster-row{padding:15px 0;border-bottom:1px solid var(--line)}.roster-row .stats{max-width:430px;padding:10px 0}.roster-row [data-online]{color:var(--muted);font:9px var(--mono);margin-left:15px}@media(max-width:800px){.timer-bar{flex-wrap:wrap;gap:5px;text-align:center}}

.confirm-panel{max-width:520px;height:max-content}.confirm-panel label{margin:20px 0}.confirm-panel .button-row{margin-top:22px}

/* Leave room for the final floor, host camera and morning fact at 1920×1080. */
.host-layout .winner{padding:20px;margin-bottom:16px}
.host-layout .winner h1{font-size:44px;margin:8px 0}
