:root{--bg:#0b0f1a;--panel:#151b2b;--border:#2a3350;--text:#e8ecf6;--muted:#8a93ad;--accent:#d7263d;--accent-hover:#ef3b52;--error:#ff8a8a;color:var(--text);background:var(--bg);font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}#game{position:fixed;inset:0}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;width:min(360px,100vw - 32px);padding:28px 24px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #00000080}.panel[hidden],#hud[hidden]{display:none}h1{letter-spacing:.02em;text-align:center;margin:0 0 6px;font-size:28px}label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}input,button{font:inherit;border:1px solid var(--border);color:var(--text);background:var(--bg);border-radius:8px;padding:10px 12px;font-size:15px}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{cursor:pointer;background:#222a40}button:hover{background:#2b3550}button.primary{background:var(--accent);border-color:var(--accent);font-weight:600}button.primary:hover{background:var(--accent-hover)}.row{gap:8px;display:flex}.row input{flex:1;min-width:0}.code{text-transform:uppercase;letter-spacing:.2em;font-weight:600}.divider{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.error{min-height:1em;color:var(--error);margin:0;font-size:13px}#notice p{text-align:center;margin:0}#hud{border:1px solid var(--border);background:#151b2bd9;border-radius:10px;align-items:center;gap:12px;padding:8px 12px;font-size:14px;display:flex;position:fixed;top:12px;left:12px}#hud strong{letter-spacing:.15em}#hud button{padding:4px 10px;font-size:13px}#hud-count{color:var(--muted)}:root{--crew:#7fdcff;--impostor:#ff1f1f;--victory:#1f8cff;--outline:#05070d;--chunky-shadow:0 4px 0 #00000073;--pixel:Silkscreen, "Courier New", monospace;--text-outline:-2px -2px 0 var(--outline), 2px -2px 0 var(--outline), -2px 2px 0 var(--outline), 2px 2px 0 var(--outline), 0 3px 0 var(--outline)}[hidden]{display:none!important}#hud{z-index:10}.muted{color:var(--muted)}.crewmate{color:var(--crew)}.impostor{color:var(--impostor)}.overlay{z-index:20;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:16px;display:flex;position:fixed;inset:0}.title{font-family:var(--pixel);letter-spacing:.04em;margin:0;font-size:clamp(44px,10vw,120px);font-weight:700;line-height:1}.band{justify-content:center;width:100vw;padding:28px 16px 12px;display:flex}.band.blue{background:radial-gradient(60% 50% at 50% 55%,#46d2dc8c,#0000 70%)}.band.red{background:radial-gradient(60% 50% at 50% 55%,#dc141499,#0000 70%)}.lineup{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:8px 22px;max-width:960px;display:flex}.lineup figure{flex-direction:column;align-items:center;gap:6px;margin:0;display:flex}.lineup figcaption{text-shadow:0 2px 0 var(--outline);font-size:18px;font-weight:800}.lobby-bar{z-index:10;border:2px solid var(--border);width:max-content;max-width:calc(100vw - 32px);box-shadow:var(--chunky-shadow);background:#151b2beb;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:10px 12px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.lobby-bar .primary{padding:10px 28px;font-size:18px}.lobby-bar button:disabled{opacity:.45;cursor:not-allowed}.lobby-status{color:var(--muted);font-size:14px}.modal-backdrop{z-index:40;background:#0000008c;position:fixed;inset:0}.panel.settings{gap:4px;width:min(440px,100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto}.panel.settings h2{margin:0 0 4px}.setting{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:5px 0;display:flex}.setting-label{flex-direction:column;display:flex}.setting-label small{color:var(--error);font-size:12px}.setting output{text-align:center;min-width:76px;font-weight:800}.stepper{align-items:center;gap:6px;display:flex}.stepper button{width:34px;padding:4px 0;font-size:18px;line-height:1}.stepper button:disabled{opacity:.35}.switch{min-width:76px;font-weight:800}.switch.on{background:#1f6f4a;border-color:#2e9a68}.task-bar{z-index:10;width:min(560px,100vw - 24px);height:30px;box-shadow:inset 0 0 0 3px #c9ccd2, var(--chunky-shadow);background:#1f4a26;border:4px solid #2c3036;border-radius:4px;position:fixed;top:64px;left:12px;overflow:hidden}.task-bar:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 calc(25% - 2px),#11181a calc(25% - 2px) calc(25% + 2px),#0000 calc(25% + 2px) calc(50% - 2px),#11181a calc(50% - 2px) calc(50% + 2px),#0000 calc(50% + 2px) calc(75% - 2px),#11181a calc(75% - 2px) calc(75% + 2px),#0000 calc(75% + 2px));position:absolute;inset:3px}.task-bar-fill{background:#3ddc3d;height:100%;transition:width .5s}.task-bar span{letter-spacing:.08em;text-transform:uppercase;color:#fff;text-shadow:var(--text-outline);align-items:center;padding-left:10px;font-size:13px;font-weight:900;display:flex;position:absolute;inset:0}.task-list{z-index:10;align-items:flex-start;max-width:min(440px,100vw - 120px);display:flex;position:fixed;top:104px;left:0}.task-lines{color:#fff;background:#3c4048b8;padding:10px 14px;font-size:15px;font-weight:700}.task-list.collapsed .task-lines{display:none}.task-lines p{margin:2px 0}.task-line.doing{color:#ffe94d}.task-line.done{color:#4dff73}.ghost-note{color:#c6d0ff}.task-tab{writing-mode:vertical-rl;color:#fff;background:#3c4048b8;border:0;border-radius:0 6px 6px 0;padding:10px 4px;font-size:15px;font-weight:800}.place{z-index:9;color:#fff;text-shadow:var(--text-outline);pointer-events:none;white-space:nowrap;font-size:clamp(22px,3vw,34px);font-weight:800;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.actions{z-index:10;grid-template-areas:"vent sabotage kill"".report use";justify-content:end;gap:12px;display:grid;position:fixed;bottom:16px;right:16px}.action.use{grid-area:use}.action.report{grid-area:report}.action.kill{grid-area:kill}.action.vent{grid-area:vent}.action.sabotage{grid-area:sabotage}.action{color:#141a28;border:4px solid var(--outline);width:104px;height:104px;box-shadow:var(--chunky-shadow);text-transform:uppercase;letter-spacing:.04em;background:#e9edf5;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px;font-weight:900;display:flex;position:relative}.action:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.action:disabled{cursor:default;background:#c8cedc73;border-color:#05070d8c}.action:disabled>:not(.action-note){opacity:.4}.action.kill{color:#6e0d16;background:#ffd5d5}.action.report{color:#6b3b00;background:#ffe9c7}.action-label{font-size:14px}.action kbd{font:inherit;opacity:.6;font-size:11px;position:absolute;top:4px;left:6px}.action-note{color:#fff;text-shadow:var(--text-outline);text-transform:none;pointer-events:none;justify-content:center;align-items:center;font-size:32px;display:flex;position:absolute;inset:0}.action-note:empty{display:none}.intro{background:#000;gap:8px}.shh{font-family:var(--pixel);color:var(--impostor);font-size:clamp(48px,12vw,130px);font-weight:700;animation:1.4s forwards shh;position:absolute}.intro-role{opacity:0;flex-direction:column;align-items:center;gap:10px;animation:.6s 1.3s forwards fade-in;display:flex}.intro-role .title.impostor{text-transform:uppercase}.intro-role>p{margin:0;font-size:22px;font-weight:800}@keyframes shh{0%{opacity:0;transform:scale(.6)}20%,70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}@keyframes fade-in{to{opacity:1}}.end{background:#000;gap:8px}.victory{color:var(--victory)}.defeat{color:var(--impostor)}.end p{margin:0}.end-reason{font-size:20px;font-weight:700}.end-timer{color:var(--muted)}.killed{z-index:25;pointer-events:none;background:radial-gradient(circle,#78000abf,#000000f2);animation:.2s fade-in}.killed-inner{flex-direction:column;align-items:center;gap:12px;animation:.5s lunge;display:flex}.killed h2{color:#fff;text-shadow:var(--text-outline);margin:0;font-size:clamp(36px,7vw,64px);font-weight:900}@keyframes lunge{0%{transform:scale(1.6)}}.meeting-splash{background:radial-gradient(circle,#3a0a12,#000 75%)}.splash-inner{flex-direction:column;align-items:center;gap:20px;animation:.45s cubic-bezier(.2,1.6,.4,1) slam;display:flex}.meeting-splash .title{font-size:clamp(36px,7vw,92px)}.meeting-splash .emergency{color:var(--impostor)}.meeting-splash .reported{color:#ffd23f}.splash-figures{align-items:flex-end;gap:24px;display:flex}@keyframes slam{0%{opacity:0;transform:scale(2.2)}}.meeting{background:#04080edb;padding:2vh 2vw}.tablet{background:var(--frame,#23a447);border:5px solid var(--outline);border-radius:48px;width:min(1180px,100%);max-height:100%;padding:clamp(12px,2vw,26px);display:flex;box-shadow:inset 0 -10px #00000040,0 10px #00000080}.tablet-screen{text-align:left;background:#45484f;border:4px solid #2b2d31;border-radius:20px;flex-direction:column;flex:1;gap:12px;min-height:0;padding:clamp(10px,1.6vw,22px);display:flex;overflow-y:auto}.tablet-screen h2{text-align:center;color:#fff;text-shadow:0 3px #00000080;margin:0;font-size:clamp(26px,3.8vw,52px);font-weight:700}.tablet-note{text-align:center;color:#ffb3b3;margin:0;font-weight:800}.cards{grid-template-columns:repeat(3,1fr);gap:14px 3%;padding-top:10px;display:grid}@media (width<=900px){.cards{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.cards{grid-template-columns:1fr}}.card{background:#eef1f6;border-radius:4px;align-items:center;height:64px;padding-left:72px;display:flex;position:relative;box-shadow:4px 4px #0000004d}.card-figure{height:72px;position:absolute;bottom:0;left:4px;overflow:hidden}.card.votable{cursor:pointer}.card.votable:hover,.card.selected{background:#fffbe0}.card.dead{background:#9aa0aa}.card-name{text-align:center;color:#fff;min-width:0;text-shadow:var(--text-outline);text-overflow:ellipsis;white-space:nowrap;flex:1;padding-right:10px;font-size:clamp(16px,1.9vw,24px);font-weight:900;overflow:hidden}.card.dead .card-name{color:#d9dbe0}.stamp{color:#e01b2b;text-align:center;text-transform:uppercase;background:#fff;border:4px solid #e01b2b;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:10px;font-weight:900;line-height:1;display:flex;position:absolute;top:-10px;left:46px;transform:rotate(-14deg);box-shadow:0 2px #0000004d}.stamp.small{border-width:3px;flex:none;width:30px;height:30px;font-size:7px;position:static}.caller{color:#b5541a;background:#fff;border:3px solid #e01b2b;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;top:-10px;right:-8px}.caller svg{width:20px;height:20px}.voters{flex-wrap:wrap;gap:2px;display:flex}.card .voters{position:absolute;bottom:0;left:66px}.anon-voter .figure{filter:grayscale()brightness(.8)}.confirm{gap:8px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.skip-row .confirm{position:static;transform:none}.confirm button{color:#fff;border:4px solid var(--outline);border-radius:10px;width:52px;height:52px;padding:0;font-size:30px;font-weight:900}.confirm .yes{background:#3cbf55;box-shadow:0 0 0 3px #7dff8f}.confirm .no{background:#d8323d}.skip-row{flex-wrap:wrap;align-items:center;gap:12px;min-height:56px;margin-top:auto;display:flex}.skip{color:#1c1f25;letter-spacing:.06em;text-transform:uppercase;background:#b8bec9;border:0;border-radius:4px;padding:8px 18px;font-size:18px;font-weight:900;box-shadow:inset 0 -4px #00000040}.skip.chosen{background:#fff6c9}.skip:disabled{opacity:.55}.skipped-stamp{color:#e01b2b;text-transform:uppercase;background:#fff;border:4px solid #e01b2b;border-radius:8px;padding:4px 10px;font-size:16px;font-weight:900;line-height:1;transform:rotate(-3deg)}.meeting-timer{color:#fff;text-shadow:var(--text-outline);margin-left:auto;font-size:clamp(18px,2.4vw,32px);font-weight:900}.meeting-timer.urgent{color:#ff2b2b}.ejection{background:#000;overflow:hidden}.stars{background-image:radial-gradient(2.5px 2.5px at 10% 20%,#fff,#0000),radial-gradient(1.5px 1.5px at 30% 70%,#fff,#0000),radial-gradient(3px 3px at 55% 35%,#fff,#0000),radial-gradient(1.5px 1.5px at 75% 80%,#fff,#0000),radial-gradient(2.5px 2.5px at 90% 15%,#fff,#0000),radial-gradient(2px 2px at 45% 90%,#fff,#0000);background-size:360px 360px;animation:6s linear infinite stars;position:absolute;inset:0}.stars.far{opacity:.5;background-size:220px 220px;animation-duration:12s}@keyframes stars{to{background-position:-360px 0}}.drifter{animation:6.5s linear forwards drift;position:absolute;top:38%;left:0}@keyframes drift{0%{transform:translate(-140px)rotate(0)}to{transform:translate(calc(100vw + 140px))rotate(720deg)}}.eject-copy{position:relative}.eject-text{min-height:1.3em;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:clamp(24px,4vw,48px)}.eject-sub{min-height:1.3em;margin:10px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:clamp(18px,2.6vw,30px)}.chat-toggle{z-index:31;color:#2b2d31;width:60px;height:56px;box-shadow:var(--chunky-shadow);background:#c9ccd2;border:4px solid #2b2d31;border-radius:10px;justify-content:center;align-items:center;padding:0;display:flex;position:fixed;top:10px;right:12px}.chat-toggle.active{background:#43c7a6}.badge{color:#fff;background:#e01b2b;border:2px solid #fff;border-radius:999px;min-width:24px;padding:0 6px;font-size:13px;font-weight:900;line-height:20px;position:absolute;top:-10px;right:-10px}.chat{z-index:30;background:#969ca8e6;border:4px solid #2b2d31;border-radius:12px;flex-direction:column;width:min(820px,100vw - 100px);height:min(86vh,760px);padding:10px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.chat-list{flex-direction:column;flex:1;gap:8px;padding:4px;display:flex;overflow-y:auto}.bubble{color:#10141f;background:#fff;border-radius:6px;align-items:center;gap:12px;padding:8px 14px;display:flex;box-shadow:3px 3px #00000040}.bubble.mine{text-align:right;flex-direction:row-reverse}.bubble.ghost{opacity:.9;background:#dfe4f5}.bubble-text{min-width:0}.bubble strong{font-size:19px;font-weight:900}.bubble strong em{color:#5b6372;font-size:13px}.bubble p{overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:600}.bubble.system{margin:0 28px;padding:4px 14px}.bubble.system p{color:#18c22e;text-shadow:1px 1px #0a3d10;font-weight:900}.chat-form{grid-template-columns:1fr auto;gap:4px 8px;padding-top:8px;display:grid}.chat-counter{color:#1c1f25;grid-column:1/-1;justify-self:end;font-weight:800}.chat-input{color:#10141f;background:#fff;border:4px solid #2b2d31;border-radius:8px;min-width:0;padding:14px;font-size:18px}.chat-send{color:#fff;background:#6d727c;border:4px solid #2b2d31;border-radius:8px;padding:0 22px;font-size:18px;font-weight:800}@media (width<=600px){.action{width:78px;height:78px}.task-list{font-size:13px;top:96px}.chat{width:calc(100vw - 24px);height:calc(100vh - 90px);top:76px}}.chat-input:focus-visible{outline-offset:0;outline:3px solid #43c7a6}.task-bar span{z-index:1}.task-overlay{z-index:22;background:#0000008c}.task-panel{-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#5d6574,#3d4350);border:5px solid #1b1e24;border-radius:14px;flex-direction:column;align-items:center;gap:14px;width:min(560px,100%);max-height:100%;padding:18px 20px 22px;display:flex;position:relative;overflow-y:auto;box-shadow:inset 0 2px #ffffff26,0 10px #00000080}.task-panel header{align-items:baseline;gap:12px;width:100%;padding-left:48px;display:flex}.task-panel h2{color:#fff;margin:0;font-size:24px;font-weight:900}.task-room{color:#c9ced8;font-weight:700}.task-close{color:#fff;background:#d8323d;border:3px solid #1b1e24;border-radius:8px;width:40px;height:40px;padding:0;font-size:26px;font-weight:900;line-height:1;position:absolute;top:10px;left:10px}.task-body{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.task-complete{font-family:var(--pixel);color:#fff;background:#0000008c;border-radius:9px;justify-content:center;align-items:center;font-size:clamp(30px,6vw,46px);font-weight:700;animation:.2s fade-in;display:flex;position:absolute;inset:0}.mg-message{color:#fff;text-align:center;min-height:1.3em;margin:0;font-weight:800}.mg-message.bad{color:#ff8a8a;animation:.3s shake}.mg-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;display:flex}.mg-button{color:#fff;background:#3cbf55;border:4px solid #1b1e24;border-radius:10px;padding:10px 26px;font-size:18px;font-weight:900}.mg-button:disabled{opacity:.5}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.mg-wires{touch-action:none;width:min(420px,100%)}.mg-swipe{background:#2b3142;border-radius:12px;width:min(440px,100%);height:130px;padding:18px 4px;position:relative}.mg-reader{background:#11141a;height:14px;position:absolute;top:50%;left:0;right:0;box-shadow:0 0 0 3px #6a7386}.mg-card{cursor:grab;touch-action:none;color:#3b4559;background:linear-gradient(135deg,#f3f6fb,#cfd7e6);border:3px solid #1b1e24;border-radius:10px;align-items:flex-end;width:140px;height:92px;padding:8px;font-size:13px;font-weight:900;display:flex;position:relative}.mg-breakers{background:#2b3142;border-radius:12px;grid-template-columns:repeat(4,64px);gap:12px;padding:16px;display:grid}.mg-breaker{background:linear-gradient(#ff5a5a 50%,#7b1418 50%);border:4px solid #1b1e24;border-radius:8px;height:84px;padding:0}.mg-breaker.on{background:linear-gradient(#1b6b2a 50%,#57e06f 50%)}.mg-chute{background:#1f232c;border:4px solid #1b1e24;border-radius:10px;width:120px;height:200px;position:relative;overflow:hidden}.mg-trash-fill{background:repeating-linear-gradient(45deg,#7d6a43 0 12px,#5f5235 12px 24px);height:100%;position:absolute;bottom:0;left:0;right:0}.mg-lever{touch-action:none;background:#2b3142;border:4px solid #1b1e24;border-radius:24px;width:48px;height:200px;padding:0;position:relative}.mg-lever span{background:#e0283c;border:3px solid #1b1e24;border-radius:50%;width:32px;height:32px;transition:top .12s;position:absolute;top:6px;left:4px}.mg-lever.down span{top:152px}.mg-dial{opacity:.55;background:#1f232c;border:5px solid #6a7386;border-radius:50%;width:110px;height:110px;position:relative}.mg-dial.active{opacity:1;border-color:#ffd23f}.mg-dial.locked{opacity:1;border-color:#57e06f}.mg-dial.miss{border-color:#ff5a5a;animation:.3s shake}.mg-zone{background:conic-gradient(from -22deg at 50% 100%, #57e06f99 0 44deg, transparent 0);width:40px;height:50px;position:absolute;top:0;left:50%;transform:translate(-50%)}.mg-needle{transform-origin:50% 100%;background:#fff;border-radius:3px;width:6px;height:47px;position:absolute;top:8px;left:calc(50% - 3px)}.mg-steer{background:radial-gradient(circle,#10364a,#071a24);border:5px solid #6a7386;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.mg-target{border:3px dashed #57e06f;border-radius:50%;width:30px;height:30px;position:absolute}.mg-marker{cursor:grab;touch-action:none;background:#ffd23f;border:3px solid #1b1e24;border-radius:50%;width:28px;height:28px;position:absolute}.mg-marker.good{background:#57e06f}.mg-note{color:#3b3200;letter-spacing:.12em;background:#fff3a8;border-radius:4px;flex-direction:column;gap:4px;padding:14px 18px;font-size:28px;font-weight:900;display:flex;transform:rotate(-4deg);box-shadow:4px 4px #0000004d}.mg-note small{letter-spacing:.04em;font-size:12px}.mg-display{color:#57e06f;font-family:var(--pixel);letter-spacing:.2em;text-align:center;background:#0d2a1a;border:3px solid #1b1e24;border-radius:6px;margin-bottom:8px;padding:6px;font-size:28px;display:block}.mg-display.good{color:#b9ffc4}.mg-display.bad{color:#ff5a5a;animation:.3s shake}.mg-keys{grid-template-columns:repeat(3,56px);gap:6px;display:grid}.mg-keys button{color:#1b1e24;background:#d5dae3;border:3px solid #1b1e24;border-radius:8px;height:48px;padding:0;font-size:20px;font-weight:900}.mg-track{background:linear-gradient(#2b3142,#1f232c);border:4px solid #1b1e24;border-radius:10px;width:70px;height:240px;position:relative}.mg-line{background:#57e06f;height:4px;position:absolute;left:-10px;right:-10px;transform:translateY(50%)}.mg-handle{cursor:grab;touch-action:none;background:#ffd23f;border:3px solid #1b1e24;border-radius:6px;height:24px;position:absolute;left:4px;right:4px;transform:translateY(50%)}.mg-handle.good{background:#57e06f}.mg-grid{background:#1f232c;border-radius:10px;grid-template-columns:repeat(3,56px);gap:8px;padding:12px;display:grid}.mg-light{background:#26324a;border-radius:6px;height:56px}.mg-light.lit{background:#4fb4ff;box-shadow:0 0 18px #4fb4ff}.mg-pad{background:#b9c1cf;border:3px solid #1b1e24;border-radius:6px;height:56px;padding:0}.mg-pad.pressed{animation:.25s pad}@keyframes pad{50%{background:#4fb4ff}}.mg-folder{color:#3b2a00;text-align:center;background:#ffcf5c;border:3px solid #1b1e24;border-radius:4px 12px 8px 8px;width:110px;padding:26px 0 12px;font-weight:900}.mg-progress{background:#1f232c;border:4px solid #1b1e24;border-radius:6px;width:min(420px,100%);height:26px;overflow:hidden}.mg-progress-fill{background:linear-gradient(#55d36a,#2e9e42);width:0;height:100%}.mg-tank{background:#1f232c;border:5px solid #1b1e24;border-radius:14px;width:110px;height:220px;position:relative;overflow:hidden}.mg-tank-fill{background:linear-gradient(#ffd23f,#e0a100);height:0;position:absolute;bottom:0;left:0;right:0}.mg-hold{touch-action:none}.mg-hold.down{background:#2e9e42;transform:translateY(2px)}.mg-samples{background:#1f232c;border-radius:12px;gap:14px;padding:16px;display:flex}.mg-tube{background:linear-gradient(#0000 30%,#4fb4ff 30%);border:3px solid #c9ced8;border-radius:4px 4px 17px 17px;width:34px;height:120px;padding:0}.mg-samples.idle .mg-tube{background:linear-gradient(#0000 30%,#5d6574 30%)}.mg-tube.odd{background:linear-gradient(#0000 30%,#ff5a5a 30%)}.mg-tube.good{box-shadow:0 0 0 4px #57e06f}.mg-tube.bad{animation:.3s shake}.alarm{z-index:8;pointer-events:none;animation:1s ease-in-out infinite alarm;position:fixed;inset:0;box-shadow:inset 0 0 120px 30px #ff00008c}@keyframes alarm{50%{box-shadow:inset 0 0 60px 10px #ff000026}}.arrows{z-index:9;pointer-events:none;position:fixed;inset:0}.arrow{filter:drop-shadow(0 0 2px #000)drop-shadow(0 2px #000);transform-origin:22px 18px;border-top:18px solid #0000;border-bottom:18px solid #0000;border-left:44px solid #ff2b2b;width:0;height:0;position:absolute;top:-18px;left:-22px}.sabotage-line{color:#ff3b3b;font-weight:900}.sabotage-line.critical{animation:1s steps(2,start) infinite blink}@keyframes blink{to{visibility:hidden}}.light-switches{background:#2b3142;border-radius:12px;gap:14px;padding:18px;display:flex}.light-switch{background:#1b1f29;border:4px solid #1b1e24;border-radius:10px;width:56px;height:110px;padding:0;position:relative}.light-switch span{background:#6b7489;border-radius:6px;height:44px;transition:bottom .12s;position:absolute;bottom:6px;left:6px;right:6px}.light-switch.up{background:#19361f}.light-switch.up span{background:#57e06f;bottom:52px}.hand-pad{touch-action:none;background:radial-gradient(circle,#1f3b5c,#0d1a2a);border:6px solid #4fb4ff;border-radius:24px;width:180px;height:180px;padding:0;font-size:80px}.hand-pad.held{border-color:#57e06f;box-shadow:0 0 30px #57e06f}.wave canvas{background:#0d1a14;border:4px solid #1b1e24;border-radius:8px;width:min(420px,100%);height:120px}.tuner{accent-color:#d24ce0;width:min(420px,100%)}.mg-message.good{color:#7dff8f}.map-toggle{z-index:31;color:#2b2d31;width:60px;height:56px;box-shadow:var(--chunky-shadow);background:#c9ccd2;border:4px solid #2b2d31;border-radius:10px;justify-content:center;align-items:center;padding:0;display:flex;position:fixed;top:10px;right:84px}.map-overlay{z-index:21;background:#04080e8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.map-board{aspect-ratio:3/2;width:min(94vw,129vh);box-shadow:0 0 0 4px var(--outline), 0 10px 0 #00000080;background:#11202e;border:6px solid #2b6f8f;border-radius:18px;position:relative}.map-ship{opacity:.9;width:100%;height:100%;position:absolute;inset:0}.map-label{fill:#fff;text-anchor:middle;paint-order:stroke;stroke:#05070d;stroke-width:8px;font:900 44px Nunito,sans-serif}.map-markers{position:absolute;inset:0}.map-markers>*,.map-me{position:absolute;transform:translate(-50%,-50%)}.map-task{color:#1b1e24;background:#ffd23f;border:3px solid #1b1e24;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-weight:900;display:flex}.map-fix{background:#ff2b2b;border:3px solid #fff;border-radius:50%;width:26px;height:26px;animation:.9s ease-in-out infinite map-pulse}@keyframes map-pulse{50%{box-shadow:0 0 0 10px #ff2b2b59}}.map-me{pointer-events:none;border:3px solid #fff;border-radius:50%;width:22px;height:22px;box-shadow:0 0 0 3px #05070d}.map-sabotage{color:#ffd5d5;background:#3d1218;border:3px solid #ff3b3b;border-radius:12px;flex-direction:column;align-items:center;gap:0;padding:6px 10px 4px;font-size:13px;font-weight:900;line-height:1.1;display:flex}.map-sabotage svg{color:#ff3b3b;width:30px;height:30px}.map-sabotage:hover:not(:disabled),.map-door:hover:not(:disabled){background:#5a1a22}.map-sabotage:disabled,.map-door:disabled{opacity:.45}.map-door{color:#fff;background:#2b3142;border:3px solid #ff3b3b;border-radius:8px;padding:3px 9px;font-size:12px;font-weight:800}.map-close{z-index:1}#game{touch-action:none}.joystick{z-index:11;touch-action:none;background:#ffffff1f;border:4px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:150px;height:150px;display:flex;position:fixed;bottom:28px;left:28px}.joystick-knob{border:4px solid var(--outline);pointer-events:none;background:#ffffffbf;border-radius:50%;width:64px;height:64px}@media (pointer:coarse){.place{top:12px;bottom:auto}}.rotate-hint{display:none}@media (pointer:coarse) and (orientation:portrait){body.in-round .rotate-hint{z-index:50;color:#fff;text-align:center;background:#05070df0;justify-content:center;align-items:center;padding:32px;font-size:22px;font-weight:800;display:flex;position:fixed;inset:0}}@media (pointer:coarse){.action kbd{display:none}}@media (height<=500px){#hud{gap:8px;padding:4px 8px;font-size:12px;top:6px;left:6px}#hud button{padding:2px 6px;font-size:11px}.task-bar{width:min(420px,50vw);height:22px;top:42px}.task-bar span{font-size:10px}.task-list{max-width:46vw;top:70px}.task-lines{max-height:calc(100vh - 230px);padding:6px 10px;font-size:12px;overflow-y:auto}.task-tab{font-size:12px}.actions{gap:8px;bottom:10px;right:10px}.action{border-width:3px;border-radius:18px;width:74px;height:74px}.action svg{width:30px;height:30px}.action-label{font-size:11px}.action-note{font-size:24px}.joystick{width:120px;height:120px;bottom:18px;left:18px}.joystick-knob{width:52px;height:52px}.map-toggle,.chat-toggle{width:46px;height:44px;top:6px}.map-toggle{right:62px}.place{font-size:18px}}
