.mg-frame{color:#e8ecf4;-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#2b3140,#1a1e28);border:3px solid #0d0f14;border-radius:14px;flex-direction:column;width:100%;height:100%;font-family:inherit;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #4a5264,0 10px 30px #0009}.mg-title{letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px #000;background:linear-gradient(#3b4254,#2a2f3c);border-bottom:2px solid #0d0f14;flex:none;padding:.45em .8em;font-size:clamp(12px,2.6vmin,18px);font-weight:800}.mg-stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:2%;display:flex;position:relative}.mg-stage>svg,.mg-stage>canvas{touch-action:none;width:100%;height:100%;display:block}.mg-status{text-align:center;color:#b9c2d3;flex:none;min-height:1.8em;padding:.3em .8em .5em;font-size:clamp(11px,2.3vmin,16px);font-weight:700}.mg-status--good{color:#52f28a}.mg-status--bad{color:#ff5a5a}.mg-done-badge{letter-spacing:.08em;color:#52f28a;pointer-events:none;background:#0a1e12d9;border:4px solid #52f28a;border-radius:10px;padding:.4em 1em;font-size:clamp(18px,5vmin,36px);font-weight:900;animation:.35s cubic-bezier(.2,1.8,.4,1) both mg-stamp;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-6deg)}@keyframes mg-stamp{0%{opacity:0;transform:translate(-50%,-50%)rotate(-6deg)scale(2)}}.mg-progress{background:#0b0e14;border:2px solid #000;border-radius:6px;height:1.4em;position:relative;overflow:hidden}.mg-progress__fill{background:linear-gradient(#5cff8f,#1fae52);height:100%;transition:width .1s linear}.mg-progress__label{text-shadow:0 1px 2px #000;justify-content:center;align-items:center;font-size:.8em;font-weight:800;display:flex;position:absolute;inset:0}.mg-btn{font:inherit;letter-spacing:.05em;cursor:pointer;color:#fff;text-transform:uppercase;touch-action:none;border:2px solid #000;border-radius:8px;padding:.6em 1.2em;font-weight:800;transition:transform 60ms,filter .1s}.mg-btn:active,.mg-btn--active{filter:brightness(1.2);transform:translateY(2px)}.mg-btn:disabled{opacity:.45;cursor:default}.mg-btn--primary{background:linear-gradient(#3aa4ff,#1760c4);box-shadow:0 3px #0a2e63}.mg-btn--danger{background:linear-gradient(#ff5a5a,#b41c1c);box-shadow:0 3px #5a0b0b}.mg-btn--ghost{background:#2d3342;box-shadow:0 3px #11141b}.mg-clickable{cursor:pointer}.mg-grab{cursor:grab}.mg-grab:active{cursor:grabbing}@keyframes mg-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.mg-shake{animation:.12s linear 3 mg-shake}@keyframes mg-blink{50%{opacity:.3}}.mg-blink{animation:.8s steps(2,end) infinite mg-blink}.mg-transfer{flex-direction:column;justify-content:center;gap:6%;width:100%;height:100%;display:flex}.mg-transfer__svg{width:100%;height:auto;max-height:70%}.mg-transfer__controls{justify-content:center;display:flex}.mg-transfer__controls .mg-progress{width:80%}.mg-reactor{justify-content:center;align-items:center;gap:4%;width:100%;height:100%;display:flex}.mg-reactor__panel{aspect-ratio:.85;background:#1a1d24;border:2px solid #000;border-radius:8px;flex-direction:column;flex:1;gap:6%;max-width:48%;padding:4%;display:flex;box-shadow:inset 0 0 0 2px #333a48}.mg-reactor__lights{justify-content:space-between;gap:4%;display:flex}.mg-reactor__light{aspect-ratio:1;background:#1f2e25;border:1px solid #000;border-radius:50%;flex:1}.mg-reactor__light.on{background:#3bff6e;box-shadow:0 0 6px #3bff6e}.mg-reactor__light.bad{background:#ff3b3b;box-shadow:0 0 6px #ff3b3b}.mg-reactor__grid{flex:1;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:5%;display:grid}.mg-reactor__cell{background:#0b0f16;border:1px solid #000;border-radius:4px;transition:background 80ms}.mg-reactor__cell.lit{background:#3aa4ff;box-shadow:0 0 10px #3aa4ff}.mg-reactor__key{cursor:pointer;touch-action:none;background:linear-gradient(#c9d1de,#8d97a8);border:1px solid #000;border-radius:4px;padding:0}.mg-reactor__key:disabled{cursor:default;filter:brightness(.75)}.mg-reactor__key.pressed{background:#3aa4ff}.mg-reactor__key.bad{background:#ff5a5a}.mg-manifolds{background:#1b1f28;border:2px solid #000;border-radius:10px;grid-template-columns:repeat(5,1fr);gap:3%;width:100%;padding:5%;display:grid;box-shadow:inset 0 0 0 2px #3a4254}.mg-manifolds__btn{aspect-ratio:1;font:inherit;color:#1a2233;cursor:pointer;touch-action:none;background:linear-gradient(#e3e9f2,#a8b3c4);border:2px solid #000;border-radius:6px;font-size:clamp(14px,4.5vmin,30px);font-weight:900}.mg-manifolds__btn.on{color:#fff;background:linear-gradient(#7cc7ff,#2a7bd8);box-shadow:0 0 10px #3aa4ff}.mg-manifolds--wrong .mg-manifolds__btn{background:linear-gradient(#ff9a9a,#c63030)}.mg-sample{flex-direction:column;justify-content:center;align-items:center;gap:5%;width:100%;height:100%;display:flex}.mg-sample__screen{color:#5cff8f;text-align:center;background:#061410;border:2px solid #000;border-radius:6px;min-width:50%;padding:.2em 1em;font-family:monospace;font-size:clamp(16px,5vmin,34px);box-shadow:inset 0 0 12px #0a3a22}.mg-sample__rack{background:#1c2029;border:2px solid #000;border-radius:8px;justify-content:center;gap:3%;width:100%;padding:3% 4%;display:flex}.mg-sample__slot{touch-action:none;background:0 0;border:2px solid #0000;border-radius:6px;flex:1;max-width:18%;padding:2%}.mg-sample__slot svg{width:100%;height:auto;display:block}.mg-sample__slot.pickable{cursor:pointer}.mg-sample__slot.pickable:hover{border-color:#3aa4ff}.mg-sample__spin{animation:.7s linear infinite mg-sample-spin}@keyframes mg-sample-spin{to{transform:rotate(360deg)}}.mg-dist{flex-direction:column;justify-content:center;gap:4%;width:100%;height:100%;display:flex}.mg-dist__row{opacity:.7;background:#1a1e27;border:2px solid #000;border-radius:8px;align-items:center;gap:4%;padding:2% 3%;display:flex}.mg-dist__row.active{opacity:1;box-shadow:inset 0 0 0 2px #3a4254}.mg-dist__dial{width:22%;height:auto}.mg-dist__bar{background:#0b0e14;border:1px solid #000;border-radius:4px;flex:1;height:.9em}.mg-dist__bar.on{background:var(--c);box-shadow:0 0 8px var(--c)}.mg-dist__btn{font:inherit;text-transform:uppercase;color:#fff;cursor:pointer;touch-action:none;background:linear-gradient(#3aa4ff,#1760c4);border:2px solid #000;border-radius:6px;padding:.6em .8em;font-size:clamp(10px,2.2vmin,14px);font-weight:800}.mg-dist__btn:disabled{cursor:default;background:#2d3342}.mg-keypad{justify-content:center;align-items:center;gap:5%;width:100%;height:100%;display:flex}.mg-keypad__note{aspect-ratio:1;color:#333;text-align:center;background:#fff27a;flex-direction:column;flex:0 0 32%;justify-content:center;padding:4%;font-family:Comic Sans MS,Segoe Print,cursive;display:flex;transform:rotate(-4deg);box-shadow:2px 4px 8px #00000080}.mg-keypad__note-title{font-size:clamp(10px,2.2vmin,14px)}.mg-keypad__note-code{letter-spacing:.08em;font-size:clamp(16px,5vmin,30px);font-weight:700}.mg-keypad__device{background:#262b36;border:2px solid #000;border-radius:10px;flex-direction:column;flex:0 0 52%;gap:5%;padding:4%;display:flex}.mg-keypad__display{letter-spacing:.3em;text-align:center;color:#5cff8f;background:#06120c;border:2px solid #000;border-radius:6px;padding:.2em;font-family:monospace;font-size:clamp(16px,5vmin,30px)}.mg-keypad__display.bad{color:#ff5a5a;background:#2a0808}.mg-keypad__display.good{color:#fff;background:#1f7a3c}.mg-keypad__keys{grid-template-columns:repeat(3,1fr);gap:5%;display:grid}.mg-keypad__key{aspect-ratio:1.3;font:inherit;cursor:pointer;touch-action:none;color:#1b2230;background:linear-gradient(#e6ebf3,#a9b3c3);border:2px solid #000;border-radius:6px;font-size:clamp(12px,3.4vmin,22px);font-weight:800}.mg-keypad__key--clear{color:#fff;background:linear-gradient(#ff8080,#c62828)}.mg-keypad__key--ok{color:#fff;background:linear-gradient(#7dff9f,#1f9e4a)}:root{--ink:#05060f;--night:#121636;--night-2:#1c2150;--panel:#121636e0;--panel-edge:#2e3576;--honey:#ffc21a;--honey-deep:#d98e00;--cream:#f7f4ff;--muted:#a7acd6;--alarm:#ff3d3d;--crew:#6fe7ff;--good:#52e36a;--display:"Lilita One", "Arial Rounded MT Bold", system-ui, sans-serif;--body:"Nunito", system-ui, sans-serif;--outline:-2px -2px 0 var(--ink), 2px -2px 0 var(--ink), -2px 2px 0 var(--ink), 2px 2px 0 var(--ink), 0 3px 0 var(--ink);--outline-thin:-1px -1px 0 var(--ink), 1px -1px 0 var(--ink), -1px 1px 0 var(--ink), 1px 1px 0 var(--ink);--radius:14px;--hex:polygon(25% 3%, 75% 3%, 100% 50%, 75% 97%, 25% 97%, 0% 50%)}*{box-sizing:border-box}html,body,#app{background:var(--ink);width:100%;height:100%;color:var(--cream);font-family:var(--body);-webkit-font-smoothing:antialiased;touch-action:manipulation;-webkit-user-select:none;user-select:none;margin:0;font-weight:800;overflow:hidden}button,input,select{font:inherit;color:inherit}input{-webkit-user-select:text;user-select:text}:focus-visible{outline:3px solid var(--honey);outline-offset:2px}.display{font-family:var(--display);letter-spacing:.02em;text-shadow:var(--outline);font-weight:400}.panel{background:var(--panel);border:3px solid var(--ink);box-shadow:inset 0 0 0 2px var(--panel-edge), 0 6px 0 #00000073;border-radius:var(--radius);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn{border:3px solid var(--ink);background:var(--night-2);min-height:44px;box-shadow:inset 0 -4px 0 #00000059, 0 3px 0 var(--ink);font-family:var(--display);letter-spacing:.02em;text-shadow:var(--outline-thin);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-size:18px;transition:transform 80ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:inset 0 -2px 0 #00000059, 0 1px 0 var(--ink);transform:translateY(2px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--honey);color:var(--ink);text-shadow:none}.btn.danger{background:var(--alarm)}.btn.ghost{box-shadow:none;background:0 0}.btn.small{min-height:34px;padding:4px 12px;font-size:15px}.icon-btn{width:48px;height:48px;padding:0;font-size:22px}.field{border:3px solid var(--ink);background:var(--cream);width:100%;min-height:46px;color:var(--ink);border-radius:12px;padding:8px 14px;font-size:18px;font-weight:900}.field::placeholder{color:#8a8fb5}.scroll{scrollbar-width:thin;scrollbar-color:var(--panel-edge) transparent;overflow-y:auto}.close-x{z-index:3;border:3px solid var(--ink);background:var(--alarm);width:44px;height:44px;font-family:var(--display);cursor:pointer;text-shadow:var(--outline-thin);box-shadow:0 3px 0 var(--ink);border-radius:50%;font-size:22px;position:absolute;top:-14px;right:-14px}.badge{border:2px solid var(--ink);background:var(--alarm);border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:900;display:inline-flex}.toasts{z-index:100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{border:3px solid var(--ink);background:var(--alarm);box-shadow:0 4px 0 var(--ink);border-radius:12px;padding:10px 18px;font-weight:900;animation:.18s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.home{background:radial-gradient(ellipse at 50% 20%, #232a6b 0%, var(--night) 45%, var(--ink) 100%);grid-template-columns:minmax(0,420px) minmax(0,420px);grid-template-areas:"hero hero""card public";place-content:center;gap:24px;height:100%;padding:32px 16px;display:grid;position:relative;overflow-y:auto}.home-comb{pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='98' viewBox='0 0 56 98'%3E%3Cpath d='M28 66L0 50V16L28 0l28 16v34L28 66zM28 98L0 82V66l28 16 28-16v16L28 98z' fill='none' stroke='%23ffc21a' stroke-width='2'/%3E%3C/svg%3E");position:fixed;inset:0;-webkit-mask-image:radial-gradient(at 50% 30%,#000 10%,#0000 70%);mask-image:radial-gradient(at 50% 30%,#000 10%,#0000 70%)}.home-hero{text-align:center;z-index:1;flex-direction:column;grid-area:hero;align-items:center;gap:4px;display:flex}.home-hero .crewmate{animation:2.4s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(-8px)rotate(-3deg)}}.home-title{color:var(--honey);text-shadow:-4px -4px 0 var(--ink), 4px -4px 0 var(--ink), -4px 4px 0 var(--ink), 4px 4px 0 var(--ink), 0 10px 0 var(--ink);margin:0;font-size:clamp(64px,14vw,128px);line-height:.9}.home-tag{color:var(--muted);margin:8px 0 0;font-size:18px}.home-card,.public{z-index:1;flex-direction:column;gap:14px;padding:20px;display:flex}.home-card{grid-area:card}.home-label{color:var(--muted);margin-bottom:-8px;font-size:15px}.home-cta{min-height:56px;font-size:24px}.home-join{gap:10px;display:flex}.code-field{font-family:var(--display);letter-spacing:.3em;text-transform:uppercase;text-align:center;font-size:22px;font-weight:400}.color-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.color-swatch{aspect-ratio:1;cursor:pointer;background:#ffffff0f;border:3px solid #0000;border-radius:12px;place-items:center;padding:2px;display:grid}.color-swatch.selected{border-color:var(--honey);background:#ffc21a2e}.color-swatch.taken{opacity:.25;cursor:not-allowed}.public{grid-area:public;min-height:0;max-height:460px}.public-head{justify-content:space-between;align-items:center;display:flex}.public-head h2{margin:0;font-size:26px}.public-list{flex-direction:column;gap:8px;min-height:120px;display:flex}.public-empty{color:var(--muted);margin:12px 0}.public-row{border:3px solid var(--ink);background:var(--night-2);cursor:pointer;text-align:left;border-radius:12px;grid-template-columns:1fr auto auto auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.public-row:hover:not(:disabled){background:#283070}.public-host{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.public-map,.public-imp{color:var(--muted);font-size:14px}.public-count{font-family:var(--display);color:var(--honey)}@media (width<=880px){.home{grid-template-columns:minmax(0,460px);grid-template-areas:"hero""card""public";align-content:start}}.room{position:fixed;inset:0;overflow:hidden}.world{width:100%;height:100%;display:block;position:absolute;inset:0}.room-loading{place-items:center;font-size:40px;display:grid;position:absolute;inset:0}.hud{pointer-events:none;padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));position:absolute;inset:0}.hud>*{pointer-events:auto}.room-menu{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:40;align-items:flex-start;gap:8px;display:flex;position:absolute}.leave-confirm{align-items:center;gap:8px;padding:8px 10px;display:flex}.conn-badge{z-index:60;border:3px solid var(--ink);background:var(--honey);color:var(--ink);border-radius:20px;align-items:center;gap:8px;padding:8px 16px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.conn-dot{background:var(--ink);border-radius:50%;width:10px;height:10px;animation:.8s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}.modal-backdrop{z-index:30;pointer-events:auto;background:#03040c8c;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.modal{flex-direction:column;max-width:min(94vw,900px);max-height:92vh;padding:18px;animation:.16s ease-out pop;display:flex;position:relative}@keyframes pop{0%{opacity:0;transform:scale(.94)}}.modal-title{text-align:center;margin:0 0 12px;font-size:28px}.overlay-msg{text-align:center;margin:24px;font-size:20px}.overlay-msg.alarm,.alarm{color:var(--alarm)}.chat{flex-direction:column;gap:10px;height:100%;min-height:0;display:flex}.chat-list{flex-direction:column;flex:1;gap:8px;min-height:0;padding:4px;display:flex}.chat-empty,.chat-locked{color:var(--muted);text-align:center;margin:8px}.chat-system{text-align:center;color:var(--honey);margin:0;font-size:14px}.chat-msg{align-items:flex-start;gap:8px;display:flex}.chat-msg.mine{flex-direction:row-reverse}.chat-bubble{border:2px solid var(--ink);background:var(--cream);max-width:78%;color:var(--ink);border-radius:12px;flex-direction:column;padding:6px 12px;display:flex}.chat-msg.mine .chat-bubble{background:#fff2c4}.chat-msg.ghost .chat-bubble{opacity:.85;background:#aeb6e8}.chat-name{color:#4a4f78;font-size:12px}.chat-text{word-break:break-word;-webkit-user-select:text;user-select:text;font-weight:800}.chat-input{gap:8px;display:flex}.chat-drawer{z-index:25;width:min(380px,100vw - 32px);height:min(480px,70vh);padding:14px;position:absolute;bottom:16px;right:16px}.badge{margin-left:4px}.chat-btn{position:relative}.chat-btn .badge{position:absolute;top:-8px;right:-8px}.lobby-top{flex-wrap:wrap;align-items:stretch;gap:10px;max-width:calc(100% - 120px);display:flex}.room-code{cursor:pointer;flex-direction:column;align-items:flex-start;padding:6px 16px;display:flex}.room-code-label{color:var(--muted);font-size:12px}.room-code-value{letter-spacing:.12em;color:var(--honey);font-size:32px}.lobby-meta{align-items:center;gap:12px;padding:6px 14px;display:flex}.lobby-meta .display{font-size:24px}.lobby-map{color:var(--muted)}.player-list{width:220px;max-height:calc(100% - 220px);margin:0;padding:8px;list-style:none;position:absolute;top:110px;left:12px}.player-row{border-radius:8px;align-items:center;gap:8px;padding:4px 6px;display:flex}.player-row.offline{opacity:.4}.player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.crown{color:var(--honey);font-size:18px}.kick{color:var(--alarm);cursor:pointer;background:0 0;border:0;font-size:16px}.lobby-bottom{left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex;position:absolute}.lobby-bottom>*{pointer-events:auto}.lobby-start{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.start-btn{min-width:180px;min-height:64px;font-size:30px}.start-hint{color:var(--cream);text-shadow:var(--outline-thin);font-size:15px}.lobby-actions{flex-wrap:wrap;gap:8px;display:flex}.settings-modal{width:min(94vw,640px);height:min(86vh,720px)}.tabs{gap:6px;padding-bottom:8px;display:flex;overflow-x:auto}.tab{border:3px solid var(--ink);background:var(--night);color:var(--muted);cursor:pointer;border-radius:10px;flex:none;padding:6px 14px}.tab.active{background:var(--honey);color:var(--ink)}.settings-body{flex:1;min-height:0;padding:4px}.settings-group{flex-direction:column;display:flex}.setting-row{border-bottom:2px solid #ffffff0f;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:4px 6px;display:flex}.setting-label{flex:1}.setting-readonly{color:var(--honey)}.setting-select{border:3px solid var(--ink);background:var(--cream);min-height:38px;color:var(--ink);border-radius:10px;padding:4px 10px;font-weight:900}.stepper{align-items:center;gap:6px;display:flex}.stepper-btn{border:3px solid var(--ink);background:var(--night-2);width:36px;height:36px;font-family:var(--display);cursor:pointer;border-radius:50%;font-size:20px;line-height:1}.stepper-btn:disabled{opacity:.3}.stepper-value{text-align:center;min-width:56px;font-family:var(--display);color:var(--honey);font-size:20px}.toggle{border:3px solid var(--ink);cursor:pointer;background:#3a3f6e;border-radius:16px;width:58px;height:32px;position:relative}.toggle-knob{background:var(--cream);border-radius:50%;width:22px;height:22px;transition:transform .12s;position:absolute;top:2px;left:2px}.toggle.on{background:var(--good)}.toggle.on .toggle-knob{transform:translate(26px)}.map-blurb{color:var(--muted);font-size:15px}.role-settings{flex-direction:column;gap:12px;display:flex}.role-card{border:3px solid var(--ink);border-left:8px solid var(--role);background:#00000038;border-radius:12px;padding:10px 12px}.role-card-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.role-name{font-size:22px}.role-team{color:var(--muted);font-size:13px}.role-desc{color:var(--muted);margin:4px 0;font-size:14px;font-weight:600}.customize-modal{gap:14px;width:min(94vw,460px)}.customize-name{gap:8px;display:flex}@media (width<=640px){.player-list{display:none}.room-code-value{font-size:24px}.start-btn{min-width:130px;font-size:24px}}.task-panel{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));flex-direction:column;width:min(340px,58vw);max-height:46vh;padding:0;display:flex;position:absolute;overflow:hidden}.game-hud .task-panel{top:calc(max(12px, env(safe-area-inset-top)) + 44px)}.task-toggle{font-family:var(--display);text-align:left;text-shadow:var(--outline-thin);cursor:pointer;background:#ffffff14;border:0;padding:6px 12px;font-size:18px}.task-panel.collapsed{width:auto}.task-body{padding:6px 12px 10px;overflow-y:auto}.task-list{margin:0;padding:0;list-style:none}.task-line{text-shadow:var(--outline-thin);margin:2px 0;font-size:15px}.task-line.partial{color:var(--honey)}.task-line.done{color:var(--good)}.task-line.alarm{color:var(--alarm);animation:1s steps(2,end) infinite blink}.task-note{color:var(--muted);margin:2px 0 6px;font-size:14px}.task-note.imp{color:var(--alarm)}.task-bar{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));border:3px solid var(--ink);background:#2d3a2d;border-radius:8px;width:min(420px,100vw - 150px);height:34px;position:absolute;overflow:hidden}.task-bar-fill{background:repeating-linear-gradient(-45deg,#43d95a 0 12px,#36c24c 12px 24px);height:100%;transition:width .6s}.task-bar-label{text-shadow:var(--outline-thin);z-index:1;place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.hud-right-top{top:calc(max(12px, env(safe-area-inset-top)) + 58px);right:max(12px, env(safe-area-inset-right));flex-direction:column;gap:8px;display:flex;position:absolute}.ghost-tag{top:calc(max(12px, env(safe-area-inset-top)) + 56px);color:#cfd6ff;opacity:.8;font-size:22px;position:absolute;left:50%;transform:translate(-50%)}.sab-banner{top:calc(max(12px, env(safe-area-inset-top)) + 46px);border:3px solid var(--ink);color:var(--alarm);white-space:nowrap;background:#28080cd9;border-radius:12px;align-items:center;gap:14px;padding:6px 18px;font-size:22px;display:flex;position:absolute;left:50%;transform:translate(-50%);pointer-events:none!important}.sab-banner.critical{animation:1s steps(2,end) infinite blink}.sab-count{color:var(--cream);font-size:30px}.action-buttons{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));flex-flow:row-reverse wrap-reverse;justify-content:flex-start;align-items:flex-end;gap:6px;max-width:60vw;display:flex;position:absolute}.hex-btn{background:var(--ink);width:108px;height:96px;clip-path:var(--hex);cursor:pointer;color:var(--cream);border:0;padding:0;transition:transform 80ms,filter .12s;position:relative}.hex-btn:disabled{cursor:default;filter:grayscale(.9)brightness(.55)}.hex-btn.ready:active{transform:scale(.94)}.hex-face{clip-path:var(--hex);background:linear-gradient(#3a437f,#1c2150);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:4px}.tone-honey .hex-face{background:linear-gradient(180deg, #ffd65a, var(--honey-deep));color:var(--ink)}.tone-alarm .hex-face{background:linear-gradient(#ff6464,#b31919)}.hex-label{font-family:var(--display);letter-spacing:.02em;font-size:15px}.tone-default .hex-label,.tone-alarm .hex-label{text-shadow:var(--outline-thin)}.hex-cooldown{color:var(--cream);place-items:center;font-size:40px;display:grid;position:absolute;inset:0}.hex-key{font-family:var(--body);opacity:.7;font-size:10px;display:none;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}@media (hover:hover){.hex-key{display:block;top:8px;bottom:auto}}.hex-btn.glow{animation:.9s ease-in-out infinite glow}@keyframes glow{50%{filter:brightness(1.35)drop-shadow(0 0 12px #ff3d3d)}}.vent-arrows{flex-wrap:wrap;justify-content:center;gap:10px;display:flex;position:absolute;bottom:130px;left:50%;transform:translate(-50%)}.vent-arrow{gap:10px}.vent-arrow-glyph{color:var(--honey);font-size:22px;display:inline-block}.picker-modal{width:min(94vw,560px)}.picker-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;display:grid}.picker-card{border:3px solid var(--ink);background:var(--night-2);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px;display:flex}.picker-card:hover{background:#2c3576}.is-ghost .task-panel{opacity:.85}@media (width<=640px){.hex-btn{width:86px;height:76px}.hex-face .icon{width:28px;height:28px}.hex-label{font-size:12px}.task-panel{max-height:34vh}.sab-banner{top:calc(max(12px, env(safe-area-inset-top)) + 40px);font-size:16px}.vent-arrows{bottom:200px}}.minigame-modal{padding:14px}.minigame-modal .modal-title{display:none}.minigame-box{border:3px solid var(--ink);background:#20243b;border-radius:10px;width:min(92vw,80vh,620px);height:min(92vw,80vh,620px);position:relative;overflow:hidden}.mg-fallback{flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;font-size:22px;display:flex}.map-modal{width:min(96vw,1100px)}.schematic{border:3px solid var(--ink);background:#0d2a44;border-radius:10px;width:100%;height:auto;max-height:76vh;display:block}.sch-room,.sch-corridor{fill:#2e6f9e;stroke:#9fd8ff;stroke-width:.25px}.sch-corridor{fill:#265c85}.sch-label{fill:#e8f6ff;font-family:var(--display);paint-order:stroke;stroke:#05060f;stroke-width:.5px;pointer-events:none;font-size:2.1px}.sch-task{fill:var(--honey);font-family:var(--display);paint-order:stroke;stroke:var(--ink);stroke-width:.6px;font-size:4px;animation:1s steps(2,end) infinite blink}.sch-sab{fill:var(--alarm);stroke:var(--ink);stroke-width:.4px;animation:.7s steps(2,end) infinite blink}.sch-me{fill:var(--honey);stroke:var(--ink);stroke-width:.4px}.sch-admin-dot{fill:var(--cream);stroke:var(--ink);stroke-width:.3px}.sch-btn{cursor:pointer}.sch-btn rect{fill:#b31919;stroke:var(--ink);stroke-width:.5px}.sch-btn.door rect{fill:#6a6f88}.sch-btn .icon g{stroke:#fff}.sch-btn text{fill:#fff;font-family:var(--display);paint-order:stroke;stroke:var(--ink);stroke-width:.4px;font-size:2px}.sch-btn:hover rect,.sch-btn:focus-visible rect{fill:#ff4a4a}.sch-btn.door:hover rect{fill:#9aa0c0}.sch-btn.active rect{fill:#ff6b00}.sch-btn.disabled{cursor:not-allowed;opacity:.45}.door-glyph{fill:#2a2e44}.sch-btn text.door-cd{font-size:2.2px}.cams-modal{width:min(96vw,1000px)}.cam-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.cam-grid.n1{grid-template-columns:1fr}.cam-feed{aspect-ratio:16/10;border:3px solid var(--ink);background:#000;border-radius:8px;margin:0;position:relative;overflow:hidden}.cam-feed canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.cam-feed figcaption{text-shadow:var(--outline-thin);font-size:14px;position:absolute;bottom:6px;left:8px}.cam-rec{color:var(--alarm);font-size:12px;animation:1.2s steps(2,end) infinite blink;position:absolute;top:6px;right:8px}.vitals-modal{width:min(94vw,720px)}.battery{border:3px solid var(--ink);background:#1a1e3a;border-radius:6px;height:16px;margin-bottom:12px;overflow:hidden}.battery-fill{background:var(--good);height:100%;transition:width .1s linear}.vitals-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.vital{border:3px solid var(--ink);background:#0f2b1a;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:center;gap:2px 8px;padding:6px 10px;display:grid}.vital .crewmate{grid-row:span 2}.vital-line{grid-column:2/4;width:100%;height:24px}.vital-line path{fill:none;stroke:var(--good);stroke-width:3px}.vital.dead{background:#3a0f12}.vital.dead .vital-line path{stroke:var(--alarm)}.vital.disconnected{opacity:.5;background:#22243a}.vital.disconnected .vital-line path{stroke:var(--muted)}.vital-state{font-family:var(--display);font-size:14px}.meeting{background:#03040cb3;place-items:center;padding:12px;display:grid;position:absolute;inset:0}.tablet{width:min(98vw,1100px);height:min(94vh,720px);color:var(--ink);background:linear-gradient(#c9d3ea,#a8b4d4);border-radius:22px;flex-direction:column;padding:14px;display:flex;box-shadow:inset 0 0 0 6px #7d89ab,0 10px #00000080}.tablet-head{justify-content:center;align-items:center;margin-bottom:10px;display:flex;position:relative}.tablet-head h1{color:var(--cream);margin:0;font-size:clamp(22px,4vw,34px)}.tablet-chat-btn{display:none;position:absolute;right:0}.tablet-body{flex:1;grid-template-columns:1fr minmax(260px,340px);gap:12px;min-height:0;display:grid}.vote-grid-wrap{flex-direction:column;min-height:0;display:flex}.vote-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;gap:8px;min-height:0;display:grid;overflow-y:auto}.vote-card{border:3px solid var(--ink);background:#eef2fb;border-radius:12px;flex-direction:column;display:flex;position:relative}.vote-card.me{background:#fff5d1}.vote-card.selected{outline:4px solid var(--honey)}.vote-card.dead{background:#7d869e}.vote-card.dead .vote-name{text-decoration:line-through}.vote-card-main{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:6px 10px;display:flex}.vote-card-main:disabled{cursor:default}.vote-avatar{position:relative}.caller-icon{background:var(--honey);border:2px solid var(--ink);width:22px;height:22px;color:var(--ink);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-2px;right:-8px}.vote-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:18px;font-weight:900;overflow:hidden}.voted-badge{border:2px solid var(--ink);background:var(--good);border-radius:8px;padding:2px 8px;font-size:12px;transform:rotate(-6deg)}.vote-confirm{gap:6px;display:flex}.vote-card .vote-confirm{position:absolute;top:50%;right:8px;transform:translateY(-50%)}.confirm{border:3px solid var(--ink);cursor:pointer;width:38px;height:38px;color:var(--cream);border-radius:50%;font-size:18px}.confirm.yes{background:var(--good)}.confirm.no{background:var(--alarm)}.vote-chips{flex-wrap:wrap;gap:2px;padding:0 10px 6px;display:flex}.vote-chip{animation:.24s ease-out backwards chip-in}@keyframes chip-in{0%{transform:scale(0)}}.tablet-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.skip-row{align-items:center;gap:8px;display:flex}.skip-row .btn{color:var(--cream)}.skip-row .vote-chips{padding:0}.tablet-timer{color:var(--cream);font-size:22px}.tablet-chat{border:3px solid var(--ink);color:var(--cream);background:#2a3060;border-radius:12px;padding:10px}.tablet-ghost{text-align:center;margin:8px 0 0;font-size:14px}@media (width<=760px){.tablet-chat-btn{display:inline-flex}.tablet-body{grid-template-columns:1fr}.tablet-chat{display:none}.tablet-body.show-chat .tablet-chat{display:flex}.tablet-body.show-chat .vote-grid-wrap{display:none}.vote-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.meeting-splash{background:#3a0b12;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.meeting-splash.emergency{background:#1c1450}.splash-rays{background:repeating-conic-gradient(from 0deg, #ffffff14 0 10deg, transparent 10deg 20deg);animation:12s linear infinite spin;position:absolute;inset:-50%}@keyframes spin{to{transform:rotate(360deg)}}.splash-figures{align-items:flex-end;gap:24px;animation:.38s cubic-bezier(.2,1.6,.4,1) both slam;display:flex;position:relative}@keyframes slam{0%{opacity:0;transform:scale(2.2)}}.splash-title{color:var(--cream);text-align:center;margin:18px 0 0;font-size:clamp(36px,8vw,84px);animation:.38s cubic-bezier(.2,1.6,.4,1) .12s both slam;position:relative}.report .splash-title{color:#ffb0b0}.splash-sub{font-size:20px;position:relative}.intro{text-align:center;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex;position:absolute;inset:0}.intro-shush-text{margin:12px 0 0;font-size:clamp(48px,10vw,96px);animation:.38s cubic-bezier(.2,1.6,.4,1) both slam}.intro-reveal{background:radial-gradient(at 50% 80%,#6fe7ff59,#000 60%),#000}.intro-reveal.imp{background:radial-gradient(at 50% 80%,#ff282866,#000 60%),#000}.intro-role{margin:0;font-size:clamp(56px,12vw,120px);animation:.42s cubic-bezier(.2,1.6,.4,1) both slam}.intro-sub{margin:0;font-size:clamp(18px,3vw,26px)}.intro-reveal.imp .intro-sub{color:#ff9a9a}.intro-blurb{color:var(--muted);margin:0}.intro-lineup{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:4px;max-width:100%;margin-top:28px;display:flex}.intro-member{flex-direction:column;align-items:center;animation:.5s ease-out backwards rise;display:flex}.intro-member:nth-child(2n){animation-delay:80ms}.intro-member:nth-child(3n){animation-delay:.16s}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}.intro-name{text-shadow:var(--outline-thin);font-size:14px}.intro-member.me .intro-name{color:var(--honey);font-size:18px}.kill-splash{z-index:80;pointer-events:none;background:#0009;place-items:center;display:grid;position:absolute;inset:0}.kill-band{border-block:6px solid var(--alarm);background:#1a0508;justify-content:center;align-items:center;gap:40px;width:100%;height:260px;animation:1.6s both band;display:flex;position:relative;overflow:hidden}@keyframes band{0%{transform:scaleY(0)}12%,85%{transform:scaleY(1)}to{transform:scaleY(0)}}.kill-killer{animation:1.6s both lunge}@keyframes lunge{0%,20%{transform:translate(-60px)}40%,to{transform:translate(20px)}}.kill-slash{background:var(--cream);width:140%;height:10px;animation:1.6s both slash;position:absolute;transform:rotate(-12deg)scaleX(0)}@keyframes slash{0%,35%{opacity:1;transform:rotate(-12deg)scaleX(0)}45%{opacity:1;transform:rotate(-12deg)scaleX(1)}60%,to{opacity:0;transform:rotate(-12deg)scaleX(1)}}.kill-victim{opacity:0;animation:1.6s both fall}@keyframes fall{0%,40%{opacity:0;transform:translateY(-20px)}55%,to{opacity:1;transform:translateY(0)}}.ejection{background:#03040b;position:absolute;inset:0;overflow:hidden}.starfield{width:100%;height:100%;position:absolute;inset:0}.eject-body{animation:6.5s linear forwards drift;position:absolute;top:45%;left:-140px}@keyframes drift{to{left:calc(100% + 140px);transform:rotate(900deg)}}.eject-text{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex;position:absolute;inset:0}.eject-main{min-height:1.2em;margin:0;font-size:clamp(24px,5vw,48px)}.eject-sub{color:var(--muted);margin:0;font-size:clamp(16px,3vw,24px)}.end-screen{background:radial-gradient(ellipse at 50% 70%, color-mix(in srgb, var(--team) 40%, transparent), #000 65%);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex;position:absolute;inset:0;overflow-y:auto}.end-title{color:var(--team);margin:0;font-size:clamp(64px,14vw,140px);animation:.42s cubic-bezier(.2,1.6,.4,1) both slam}.end-reason{margin:0;font-size:20px}.end-lineup{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:6px;display:flex}.end-member{text-shadow:var(--outline-thin);flex-direction:column;align-items:center;font-size:14px;animation:.5s ease-out backwards rise;display:flex}.end-roles{width:min(480px,100%);max-height:30vh;margin:0;padding:8px 12px;list-style:none}.end-roles li{align-items:center;gap:8px;padding:3px 0;display:flex}.end-name{flex:1}.end-role{font-family:var(--display);text-shadow:var(--outline-thin)}.end-actions{align-items:center;gap:10px;display:flex}
