:root{color:#e8edf5;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#080d16;font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{background:radial-gradient(circle at 50% 25%,#153047 0%,#0000 55%),#080d16;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer;min-height:44px}button:disabled{cursor:wait;opacity:.6}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:4px;outline:3px solid #69e7d0}.site-header{justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;padding:24px;display:flex}.brand{letter-spacing:.12em;font-size:12px;font-weight:700}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}#admin-button{color:#c3cfde;background:0 0;border:1px solid #40516a;border-radius:8px;padding:10px 14px}#admin-button:hover{background:#172437}.header-create{color:#06251f;background:#69e7d0;border:1px solid #69e7d0;border-radius:8px;padding:10px 16px;font-weight:700}.header-create:hover{background:#91f2df}.landing{text-align:center;max-width:760px;margin:0 auto;padding:64px 24px 48px}.eyebrow{color:#69e7d0;letter-spacing:.14em;font-size:12px;font-weight:700;line-height:1.8}h1{letter-spacing:-.04em;margin:16px 0;font-size:clamp(36px,7vw,64px);line-height:1.1}h2{margin:0 0 24px;font-size:22px}.intro{color:#b5c3d5;max-width:480px;margin:0 auto;line-height:1.7}.join-card{text-align:left;background:#101b2b;border:1px solid #30415a;border-radius:16px;max-width:420px;margin:36px auto 24px;padding:28px}label{color:#c3cfde;margin-bottom:10px;font-size:14px;display:block}#room-code{color:#fff;text-align:center;letter-spacing:.14em;background:#080f1c;border:1px solid #50627b;border-radius:8px;width:100%;padding:16px;font-size:20px;font-weight:700}#room-code::placeholder{color:#94a4bb;letter-spacing:normal;font-size:16px;font-weight:400}.primary-button{color:#06251f;background:#69e7d0;border:none;border-radius:8px;width:100%;margin-top:16px;padding:14px;font-weight:700}.primary-button:hover{background:#91f2df}.secondary-button,#cancel-login{color:#c3cfde;background:0 0;border:1px solid #50627b;border-radius:8px;width:100%;margin-top:12px;padding:12px}.secondary-button:hover,#cancel-login:hover{background:#172437}#status-message{color:#c3cfde;margin:16px 0 0;font-size:14px;line-height:1.6}#status-message:empty,#admin-error:empty,#player-error:empty,#room-message:empty,.lobby-error:empty{display:none}.game-details{color:#a7b7cd;font-size:13px;line-height:1.8}#admin-dialog,#player-dialog{color:#e8edf5;background:#101b2b;border:1px solid #40516a;border-radius:16px;width:min(420px,100% - 32px);max-height:calc(100dvh - 32px);padding:28px;overflow-y:auto}#admin-dialog::backdrop,#player-dialog::backdrop{background:#000000bf}#admin-form input,#player-form input,#player-form select{color:#fff;background:#080f1c;border:1px solid #50627b;border-radius:8px;width:100%;min-height:48px;margin-bottom:20px;padding:14px}#admin-error,#player-error{color:#ffb4b4;font-size:14px;line-height:1.6}#player-room-info{color:#c3cfde;line-height:1.6}.colour-preview{align-items:center;gap:12px;display:flex}#colour-swatch{border:1px solid #94a4bb;border-radius:50%;flex-shrink:0;width:28px;height:28px}.lobby-section{border-top:1px solid #40516a;margin-top:24px;padding-top:20px}.player-lobby-card .lobby-section{border-top:none;margin-top:0;padding-top:0}.lobby-section h3{margin:0 0 16px;font-size:20px}.lobby-count{color:#69e7d0;font-weight:700}.lobby-state{color:#c3cfde;line-height:1.6}.lobby-players{margin:20px 0 0;padding:0;list-style:none}.lobby-players li{border-bottom:1px solid #30415a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 0;display:flex}.lobby-players strong{color:#e8edf5}.lobby-players span{color:#c3cfde;overflow-wrap:anywhere}.lobby-error{color:#ffb4b4;font-size:14px;line-height:1.6}.admin-mode .landing{max-width:1100px;padding-top:32px}.admin-mode h1{font-size:clamp(30px,5vw,44px)}.admin-mode .intro,.admin-mode .game-details,.admin-mode .player-lobby-card{display:none}.admin-dashboard{text-align:left;margin-top:40px}.dashboard-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.dashboard-heading h2{margin:0 0 8px;font-size:28px}.dashboard-heading p{color:#b5c3d5;margin:0;line-height:1.6}.room-total{color:#69e7d0;background:#12322f;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700}.admin-room-stack{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;display:grid}.admin-room-card{background:#101b2b;border:1px solid #30415a;border-radius:16px;min-width:0;padding:28px}.room-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.room-card-label{color:#a7b7cd;letter-spacing:.12em;margin:0 0 8px;font-size:12px;font-weight:700}.room-card-code{color:#69e7d0;letter-spacing:.12em;overflow-wrap:anywhere;margin:0;font-size:clamp(28px,5vw,36px)}.room-status-badge{color:#e8edf5;background:#203149;border:1px solid #40516a;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700}.room-card-date{color:#a7b7cd;margin:16px 0;font-size:13px;line-height:1.6}.room-card-facts{color:#c3cfde;flex-wrap:wrap;gap:10px 24px;font-size:14px;display:flex}.room-card-actions{border-top:1px solid #30415a;justify-content:flex-end;margin-top:24px;padding-top:20px;display:flex}.delete-room-button{color:#ffb4b4;background:#351b25;border:1px solid #854254;border-radius:8px;padding:10px 16px;font-weight:600}.delete-room-button:hover{background:#4a2432}.empty-rooms{color:#b5c3d5;padding:32px 0;line-height:1.7}#room-message{color:#c3cfde;line-height:1.6}@media (width<=760px){.admin-room-stack{grid-template-columns:1fr}}@media (width<=600px){.admin-mode .site-header{flex-wrap:wrap;align-items:flex-start}.admin-mode .header-actions{width:100%}.admin-room-card{padding:20px}}@media (width<=480px){.site-header{padding:16px}.brand{max-width:140px;line-height:1.6}.landing{padding-top:40px}.join-card,#admin-dialog,#player-dialog{padding:24px}}#settings-dialog{color:#e8edf5;background:#101b2b;border:1px solid #40516a;border-radius:16px;width:min(620px,100% - 32px);max-height:calc(100dvh - 32px);padding:28px;overflow-y:auto}#settings-dialog::backdrop{background:#000000bf}.settings-intro,.settings-note{color:#b5c3d5;line-height:1.6}.settings-note{font-size:13px}#settings-form h3{margin:28px 0 16px}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.settings-grid input{color:#fff;background:#080f1c;border:1px solid #50627b;border-radius:8px;width:100%;min-height:48px;padding:12px}#settings-preview{color:#69e7d0;line-height:1.6}#settings-error{color:#ffb4b4;line-height:1.6}#settings-error:empty{display:none}.room-card-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;line-height:1.6;display:grid}@media (width<=480px){.settings-grid,.room-card-facts{grid-template-columns:1fr}}.lobby-role-preview{color:#e8edf5;font-weight:600;line-height:1.6}.lobby-role-preview:empty{display:none}.player-lobby-card{max-width:680px}.round-info{margin-top:28px}.role-reveal{--role-accent:#78c7ff;--role-glow:#46a0ff38;isolation:isolate;border:1px solid var(--role-accent);background:radial-gradient(circle at 50% 30%, var(--role-glow), transparent 65%), #080f1c;text-align:center;border-radius:20px;margin-top:20px;padding:36px 24px;animation:.65s ease-out both role-card-enter;position:relative;overflow:hidden}.role-reveal--attacker{--role-accent:#ff8798;--role-glow:#ff415f3d}.role-reveal--defender{--role-accent:#78c7ff;--role-glow:#46a0ff38}.role-reveal-scan{z-index:-1;background:linear-gradient(transparent, var(--role-glow), transparent);pointer-events:none;width:100%;height:25%;animation:1.5s ease-in-out both role-scan;position:absolute;top:-30%;left:0}.role-reveal-kicker{color:var(--role-accent);letter-spacing:.18em;margin:0;font-size:11px;font-weight:700}.role-reveal-symbol{width:100px;height:100px;color:var(--role-accent);background:var(--role-glow);border:1px solid var(--role-accent);border-radius:50%;place-items:center;margin:28px auto 20px;animation:.85s ease-out .7s both role-symbol-reveal;display:grid}.role-reveal-symbol svg{width:60px;height:60px}.role-reveal-suspense{color:#b5c3d5;margin:0 0 20px;font-size:14px;line-height:1.6}.role-reveal-result{animation:.7s ease-out 1.4s both role-result-reveal}.role-reveal-lead{color:#c3cfde;letter-spacing:.2em;margin:0 0 8px;font-size:12px;font-weight:700}.role-reveal-title{color:var(--role-accent);letter-spacing:-.03em;text-shadow:0 0 24px var(--role-glow);margin:0;font-size:clamp(28px,6vw,46px);font-weight:900;line-height:1.15}.role-reveal-description{color:#e8edf5;max-width:360px;margin:20px auto 0;line-height:1.7}.role-reveal-privacy{color:var(--role-accent);letter-spacing:.05em;margin:24px 0 0;font-size:12px;font-weight:600}.role-reveal-details{color:#c3cfde;margin-top:20px;line-height:1.7}@keyframes role-card-enter{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes role-scan{0%{top:-30%}to{top:110%}}@keyframes role-symbol-reveal{0%{opacity:0;transform:scale(.6)rotate(-15deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes role-result-reveal{0%{opacity:0;filter:blur(8px);transform:translateY(14px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.role-reveal,.role-reveal-symbol,.role-reveal-result{animation:none}.role-reveal-scan{display:none}}.game-page-mode{background:#070b12}.identity-page{--identity-accent:#78c7ff;--identity-glow:#3c96ff2e;background:radial-gradient(ellipse at 50% 55%, var(--identity-glow), transparent 65%), #070b12;min-height:100dvh}.identity-page--attacker .identity-page{--identity-accent:#ff7187;--identity-glow:#ff2d5033}.identity-page--defender .identity-page{--identity-accent:#78c7ff;--identity-glow:#3c96ff2e}.identity-header{color:#a7b7cd;letter-spacing:.12em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 32px;font-size:12px;font-weight:700;display:flex}.identity-stage{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 90px);padding:48px 24px;display:flex}.identity-classification{color:var(--identity-accent);letter-spacing:.25em;font-size:11px;font-weight:700}.identity-player{color:#c3cfde;margin:14px 0 0;line-height:1.6}.identity-divider{background:var(--identity-accent);width:80px;height:2px;margin:36px 0;animation:.9s ease-out both identity-line}.identity-intro{color:#c3cfde;letter-spacing:.2em;margin:0 0 16px;font-size:12px;font-weight:700;animation:.6s ease-out .4s both identity-appear}.identity-title{color:var(--identity-accent);letter-spacing:-.055em;text-shadow:0 0 60px var(--identity-glow);margin:0;font-size:clamp(46px,12vw,130px);font-weight:900;line-height:1;animation:1.1s ease-out .9s both identity-title-reveal}.identity-description{color:#e8edf5;max-width:540px;margin:28px 0 0;font-size:17px;line-height:1.8;animation:.7s ease-out 1.6s both identity-appear}.identity-team{color:var(--identity-accent);margin-top:32px;line-height:1.7;animation:.7s ease-out 1.9s both identity-appear}.identity-team p:first-child{letter-spacing:.12em;font-size:11px;font-weight:700}.identity-reminder{color:#a7b7cd;margin-top:40px;font-size:12px;line-height:1.6;animation:.7s ease-out 2.1s both identity-appear}.identity-loading,.identity-error-panel{text-align:center;color:#c3cfde;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 90px);padding:32px;display:flex}.identity-loader{border:2px solid #30415a;border-top-color:#69e7d0;border-radius:50%;width:42px;height:42px;margin-bottom:20px;animation:1s linear infinite identity-spin}.identity-error-panel h1{font-size:clamp(28px,6vw,42px)}.identity-error-panel a{color:#69e7d0;margin-top:24px}@keyframes identity-spin{to{transform:rotate(360deg)}}@keyframes identity-line{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes identity-appear{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes identity-title-reveal{0%{opacity:0;filter:blur(16px);transform:scale(1.15)}to{opacity:1;filter:blur();transform:scale(1)}}@media (prefers-reduced-motion:reduce){.identity-page *{animation:none!important}}@media (width<=480px){.identity-header{padding:20px;font-size:10px}}.game-clock{text-align:center;margin:24px 0}.game-clock-label{color:#a7b7cd;letter-spacing:.15em;font-size:11px;font-weight:700}.game-clock-time{color:#e8edf5;font-variant-numeric:tabular-nums;margin:8px 0;font-size:40px;font-weight:800}.game-clock-status{color:#c3cfde;font-size:13px}.game-clock-error{color:#ffb4b4;font-size:13px;line-height:1.6}.game-clock-error:empty{display:none}.player-clock-container{max-width:420px;margin:0 auto;padding:0 24px}.game-clock-result{background:#101b2b;border:1px solid #40516a;border-radius:16px;padding:24px}.game-clock-result-label{color:#a7b7cd;letter-spacing:.2em;font-size:12px}.game-clock-winner{color:#69e7d0;margin:20px 0;font-size:clamp(30px,6vw,56px)}.game-clock-reason{color:#c3cfde;line-height:1.7}.game-page-mode .game-clock-result{z-index:100;background:#070b12fa;border:none;border-radius:0;place-items:center;min-height:100dvh;margin:0;display:grid;position:fixed;inset:0}.game-clock-result[hidden]{display:none!important}.game-clock-result:not([hidden]){isolation:isolate;animation:.65s ease-out both victory-screen-enter;overflow:hidden}.game-clock-result>div{z-index:1;text-align:center;position:relative}.game-clock-result:not([hidden]) .game-clock-result-label{animation:.6s ease-out .15s both victory-detail-enter}.game-clock-result:not([hidden]) .game-clock-winner{text-shadow:0 0 18px,0 0 48px;animation:.9s cubic-bezier(.16,1,.3,1) .25s both victory-title-enter,2.4s ease-in-out 1.15s infinite victory-glow}.game-clock-result:not([hidden]) .game-clock-reason{animation:.7s ease-out .75s both victory-detail-enter}.game-page-mode .game-clock-result>div{width:min(100%,760px);padding:24px}.game-page-mode .game-clock-winner{letter-spacing:.04em;font-size:clamp(38px,9vw,100px);font-weight:900;line-height:1.1}.game-page-mode .game-clock-result:not([hidden]):before{content:"";z-index:0;pointer-events:none;background:repeating-linear-gradient(#0000 0 7px,#ffffff08 8px,#0000 9px);animation:12s linear infinite victory-scan-lines;position:absolute;inset:-100%}@keyframes victory-screen-enter{0%{opacity:0}to{opacity:1}}@keyframes victory-title-enter{0%{opacity:0;filter:blur(12px);transform:translateY(28px)scale(1.18)}65%{opacity:1;filter:blur();transform:translateY(-4px)scale(.98)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes victory-detail-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes victory-glow{0%,to{text-shadow:0 0 12px,0 0 30px}50%{text-shadow:0 0 22px,0 0 65px}}@keyframes victory-scan-lines{0%{transform:translateY(0)}to{transform:translateY(90px)}}@media (prefers-reduced-motion:reduce){.game-clock-result:not([hidden]),.game-clock-result:not([hidden]) .game-clock-result-label,.game-clock-result:not([hidden]) .game-clock-winner,.game-clock-result:not([hidden]) .game-clock-reason,.game-page-mode .game-clock-result:not([hidden]):before{animation:none}}.headquarters[hidden],.identity-stage[hidden]{display:none!important}.headquarters-mode{background:#070c15}.headquarters-mode .identity-page{width:100%;max-width:none}.headquarters{color:#e8edf5;width:min(1200px,100% - 32px);margin:0 auto 48px}.headquarters-top{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.headquarters-eyebrow{color:#91a8c4;letter-spacing:.18em;font-size:10px;font-weight:800}.headquarters-top h1{margin:8px 0;font-size:clamp(24px,4vw,36px)}#headquarters-player,.headquarters-instruction{color:#b4c3d6;font-size:14px;line-height:1.6}.headquarters-continue{margin-top:24px}.headquarters-legend{color:#bdcadd;flex-wrap:wrap;gap:12px 20px;margin:20px 0;font-size:12px;display:flex}.headquarters-legend>span{align-items:center;gap:7px;display:inline-flex}.status-dot{background:var(--system-colour);border-radius:50%;width:8px;height:8px}.status-dot--incomplete{--system-colour:#94a3b8}.status-dot--in-progress{--system-colour:#f59e0b}.status-dot--secured{--system-colour:#10b981}.status-dot--sabotaged{--system-colour:#ef4444}.headquarters-map{background-color:#0b1320;background-image:linear-gradient(#44638512 1px,#0000 1px),linear-gradient(90deg,#44638512 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #26364c;border-radius:24px;grid-template-columns:minmax(0,1fr) 32px minmax(180px,.9fr) 32px minmax(0,1fr);padding:24px;display:grid}.headquarters-wing{gap:16px;display:grid}.headquarters-corridor{background:#213b5533;border-inline:1px dashed #35516d;justify-content:center;align-items:center;margin:14px 7px;display:flex}.headquarters-corridor span{writing-mode:vertical-rl;color:#66809e;letter-spacing:.22em;font-size:8px}.headquarters-hub{text-align:center;background:linear-gradient(160deg,#14263a,#0d1726);border:1px solid #365673;border-radius:20px;align-self:center;padding:28px 14px;box-shadow:0 0 35px #387fb51a}.headquarters-hub-symbol{color:#8cddf7;border:1px solid #62c4e8;border-radius:18px;place-items:center;width:64px;height:64px;margin:0 auto 20px;font-size:24px;font-weight:900;display:grid;box-shadow:0 0 24px #62c4e826}.headquarters-hub h2{margin:12px 0;font-size:20px}.headquarters-progress{color:#a7c8df;letter-spacing:.05em;font-size:11px;font-weight:800}.headquarters-progress-track{background:#23344b;border-radius:20px;height:7px;margin:20px 0;overflow:hidden}#headquarters-progress-fill{border-radius:inherit;background:#10b981;height:100%;transition:width .4s}.headquarters-hub-note{color:#a9b9cc;font-size:12px;line-height:1.7}[data-status=incomplete]{--system-colour:#94a3b8;--system-glow:#94a3b81f}[data-status=in-progress]{--system-colour:#f59e0b;--system-glow:#f59e0b29}[data-status=secured]{--system-colour:#10b981;--system-glow:#10b98129}[data-status=sabotaged]{--system-colour:#ef4444;--system-glow:#ef444429}.system-room{border:1px solid var(--system-colour);color:#e8edf5;width:100%;font:inherit;text-align:left;cursor:pointer;box-shadow:0 0 16px var(--system-glow);background:linear-gradient(145deg,#172334,#101925);border-radius:12px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:6px 12px;padding:16px;transition:transform .18s,box-shadow .18s,background .18s;display:grid;position:relative}.system-room:hover{box-shadow:0 0 26px var(--system-glow);background:#1b2b40;transform:translateY(-3px)}.system-room:focus-visible,.system-dialog-close:focus-visible{outline-offset:4px;outline:3px solid #8cddf7}.system-room-number{color:#8da1ba;letter-spacing:.15em;grid-column:1/-1;font-size:9px;font-weight:700}.system-room-symbol{border:1px solid var(--system-colour);width:42px;height:42px;color:var(--system-colour);border-radius:10px;place-items:center;font-size:13px;font-weight:900;display:grid}.system-room>.system-room-symbol{grid-row:2/4}.system-room-name{font-size:13px;font-weight:750;line-height:1.4}.system-room-status{color:var(--system-colour);letter-spacing:.08em;font-size:9px;font-weight:800}.system-dialog{box-sizing:border-box;border:1px solid var(--system-colour,#94a3b8);color:#e8edf5;background:#101b2b;border-radius:20px;width:min(480px,100% - 32px);max-height:calc(100dvh - 48px);padding:28px;overflow-y:auto;box-shadow:0 0 60px #00000080}.system-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#03070ed9}.system-dialog-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.system-dialog-close{color:#e8edf5;cursor:pointer;background:#17253a;border:1px solid #3b4d65;border-radius:8px;padding:8px 12px;font-size:16px}.system-dialog h2{margin-top:20px;font-size:26px}#system-dialog-description{color:#b5c5d9;font-size:14px;line-height:1.8}.system-dialog-notice{background:#142237;border:1px dashed #405570;border-radius:12px;margin:24px 0;padding:18px}.system-dialog-notice strong{font-size:13px}.system-dialog-notice p{color:#aabbd1;margin-bottom:0;font-size:12px;line-height:1.7}@media (width<=720px){.headquarters-top{flex-direction:column;align-items:flex-start}.headquarters-map{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding:14px}.headquarters-hub{box-sizing:border-box;grid-area:1/1/auto/-1;width:100%;padding:20px}.headquarters-corridor{display:none}.headquarters-wing{gap:14px}.headquarters-meeting-point{margin-top:18px;padding-top:16px}.system-room{grid-template-columns:minmax(0,1fr);justify-items:start;padding:12px}.system-room>.system-room-symbol{grid-row:auto}.system-room-name{font-size:12px}.system-room-status{font-size:8px}}@media (prefers-reduced-motion:reduce){.system-room,#headquarters-progress-fill{transition:none}.system-room:hover{transform:none}}.system-room-occupant{color:#c2d0e0;grid-column:1/-1;font-size:10px;line-height:1.5}.quiz-message{color:#ffcf8b;font-size:13px;line-height:1.7}.quiz-message:empty{display:none}.quiz-instructions{color:#bac9dc;margin:20px 0;font-size:13px;line-height:1.7}.quiz-question{border:1px solid #344961;border-radius:12px;min-width:0;margin:0 0 24px;padding:16px}.quiz-question legend{color:#e8edf5;padding:0 6px;font-size:14px;font-weight:700;line-height:1.6}.quiz-option{color:#c9d6e6;cursor:pointer;background:#152236;border:1px solid #314258;border-radius:9px;align-items:flex-start;gap:10px;margin-top:10px;padding:12px;font-size:13px;line-height:1.6;display:flex}.quiz-option:hover{border-color:#7299bd}.quiz-option:has(input:checked){background:#1b344b;border-color:#62c4e8}.quiz-option input{accent-color:#62c4e8;margin-top:4px}.task-quiz-form>button{width:100%;margin-bottom:20px}.quiz-result{border:1px solid;border-radius:12px;margin:24px 0;padding:20px;line-height:1.7}.quiz-result h3{margin-top:0}.quiz-result--passed{color:#10b981;background:#10b98114}.quiz-result--failed{color:#ef4444;background:#ef444414}.private-clues{background:#122035;border:1px solid #58789e;border-radius:14px;margin-top:24px;padding:20px}.private-clues h2{color:#a9d4fa;margin-top:0;font-size:18px}.private-clues p{color:#d0deef;font-size:14px;line-height:1.7}.sabotage-button{color:#ffe4e6;width:100%;font:inherit;cursor:pointer;background:#581c24;border:1px solid #ef4444;border-radius:10px;margin:16px 0;padding:14px 18px;font-weight:800}.sabotage-button:hover:not(:disabled){background:#7f1d2b;box-shadow:0 0 22px #ef444433}.sabotage-button:disabled{opacity:.5;cursor:not-allowed}.sabotage-button:focus-visible{outline-offset:3px;outline:3px solid #ffb4b4}.recovery-clock{color:#ff8b8b;font-variant-numeric:tabular-nums;text-align:center;background:#ef44441a;border:1px solid #ef4444;border-radius:10px;padding:12px;font-size:17px;font-weight:900}.recovery-clock[hidden]{display:none}.system-recovery-time{color:#ff9b9b;font-variant-numeric:tabular-nums;grid-column:1/-1;font-size:10px;font-weight:800}html:has(body.sabotage-alert-active):after{content:"";top:calc(0px - env(safe-area-inset-top,0px));right:calc(0px - env(safe-area-inset-right,0px));bottom:calc(0px - env(safe-area-inset-bottom,0px));left:calc(0px - env(safe-area-inset-left,0px));z-index:90;box-sizing:border-box;pointer-events:none;border:3px solid #ef4444bf;animation:2.4s ease-in-out infinite sabotage-edge-pulse;position:fixed;box-shadow:inset 0 0 35px #ef444473,inset 0 0 90px #ef444433}.sabotage-alert{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:95;box-sizing:border-box;color:#ffe4e6;text-align:center;pointer-events:none;background:#450a14f5;border:1px solid #ef4444;border-radius:12px;width:max-content;max-width:calc(100vw - 40px);padding:12px 18px;font-size:12px;font-weight:800;line-height:1.6;position:fixed;transform:translate(-50%);box-shadow:0 0 25px #ef444440}.sabotage-alert[hidden]{display:none!important}body.sabotage-alert-active{padding-bottom:calc(85px + env(safe-area-inset-bottom,0px))}.system-dialog.system-dialog--security-alert{border-color:#ef4444;box-shadow:0 0 35px #ef444440,0 0 60px #00000080}.system-dialog.system-dialog--security-alert::backdrop{background:#23050cd1;box-shadow:inset 0 0 70px #ef444440}@keyframes sabotage-edge-pulse{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){html:has(body.sabotage-alert-active):after{opacity:.8;animation:none}}.mission-controls{gap:12px;margin-top:24px;display:grid}.mission-controls button{width:100%}.mission-dialog{width:min(620px,100% - 32px)}.mission-dialog h2{margin:0;font-size:22px}.mission-dialog form{gap:12px;margin-top:16px;display:grid}.mission-dialog input{box-sizing:border-box;color:#e8edf5;width:100%;min-width:0;font:inherit;background:#091321;border:1px solid #405570;border-radius:9px;padding:13px 14px}.mission-dialog input:focus-visible{outline-offset:2px;outline:2px solid #62c4e8}.mission-puzzle-card{background:#142237;border:1px solid #405570;border-radius:14px;margin:18px 0;padding:20px}.mission-puzzle-card h3{margin-top:0;font-size:17px}.mission-puzzle-card p{color:#bfcee0;font-size:14px;line-height:1.7}.mission-puzzle--solved{border-color:#10b981}.mission-puzzle--solved .mission-puzzle-result{color:#6ee7b7;font-weight:800}.mission-passcode{color:#8cddf7;letter-spacing:.15em;text-align:center;background:#0b1726;border:1px solid #62c4e8;border-radius:12px;padding:20px;font-size:36px;font-weight:900}.mission-confidential-data{color:#d6eaff;white-space:pre-wrap;overflow-wrap:anywhere;background:#10233a;border:1px solid #4da6ff;border-radius:12px;margin-top:18px;padding:22px;line-height:1.8}.mission-dialog form[hidden],.mission-controls button[hidden]{display:none!important}#setting-confidential-data{box-sizing:border-box;color:#e8edf5;width:100%;font:inherit;resize:vertical;background:#0b1422;border:1px solid #405570;border-radius:10px;margin-top:10px;padding:14px;line-height:1.7;display:block}#setting-confidential-data::placeholder{color:#8396af}#setting-confidential-data:focus-visible{outline-offset:2px;outline:2px solid #62c4e8}.room-puzzle-button{width:100%;margin-top:20px;display:block}.room-puzzle-button[hidden]{display:none!important}.mission-progress{color:#9bc9f0;font-size:12px;font-weight:800;line-height:1.8}.mission-discovery{text-align:center;background:#10b98114;border:1px solid #10b981;border-radius:14px;padding:24px}.mission-discovery h3{color:#6ee7b7;font-size:30px}.mission-discovery p{color:#c5dfd5;line-height:1.7}.circuit-grid,.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:360px;margin:22px auto;display:grid}.circuit-tile,.memory-tile{aspect-ratio:1;color:#bce7ff;cursor:pointer;background:#101e30;border:1px solid #47627e;border-radius:10px;padding:0}.circuit-tile svg{width:100%;height:100%;display:block}.circuit-tile:hover:not(:disabled){background:#1b344b}.fragment-row{background:#142237;border:1px solid #405570;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;padding:14px;display:flex}.fragment-row p{color:#cbd9e9;margin:0;font-size:13px;line-height:1.7}.fragment-row>div{flex-shrink:0;gap:8px;display:grid}.cipher-wheels{gap:16px;margin:20px 0;display:grid}.cipher-wheel{background:#142237;border:1px solid #405570;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;display:grid}.cipher-wheel p{color:#bdcee1;grid-column:1/-1;margin:0;font-size:13px;line-height:1.7}.cipher-wheel strong{color:#8cddf7;text-align:center;font-size:20px}.memory-tile{font-size:24px;font-weight:800}.memory-tile--lit{background:#2f8aad;border-color:#a5e8ff;box-shadow:0 0 24px #62c4e873}.circuit-tile:focus-visible,.memory-tile:focus-visible{outline-offset:3px;outline:3px solid #8cddf7}.mission-dialog button:disabled{opacity:.5;cursor:not-allowed}.mission-dialog [data-puzzle-submit]{width:100%;margin-top:18px}.system-room--secret-mission{outline-offset:4px;outline:2px dashed #c084fc}.secret-mission-badge{color:#e9d5ff;background:#301849;border:1px solid #a855f7;border-radius:8px;grid-column:1/-1;margin-top:8px;padding:8px 10px;font-size:10px;font-weight:800;line-height:1.6;display:block}.meeting-clock{color:#69e7d0;font-variant-numeric:tabular-nums;text-align:center;margin:20px 0 6px;font-size:clamp(34px,9vw,50px);font-weight:900}.meeting-state,.meeting-message,.meeting-help,.meeting-end-count{color:#b5c5d9;font-size:13px;line-height:1.65}.meeting-state{text-align:center;margin:0}.meeting-message{color:#69e7d0;min-height:1.6em}.meeting-voting h3,.meeting-result h3{margin:22px 0 4px;font-size:16px}.meeting-help{margin:0 0 14px;font-size:12px}.meeting-player-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.meeting-player-option{overflow-wrap:anywhere;color:#e8edf5;text-align:left;background:#142237;border:1px solid #405570;border-radius:10px;min-height:48px;padding:10px 12px;font-size:13px}.meeting-player-option:hover:not(:disabled){background:#183044;border-color:#69e7d0}.meeting-player-option:disabled{cursor:default;opacity:.72}.meeting-abstain{width:100%;margin-top:10px}.meeting-dialog-actions{border-top:1px solid #2b4058;gap:10px;margin-top:20px;padding-top:16px;display:grid}.meeting-end-count{text-align:center;margin:0}.meeting-end-vote{width:100%}.meeting-result{background:#142237;border:1px solid #405570;border-radius:12px;margin-top:22px;padding:16px}.meeting-result[hidden],.meeting-voting[hidden],.meeting-end-vote[hidden]{display:none!important}.meeting-result h3{margin-top:0}.meeting-result-summary{color:#e8edf5;font-size:14px;line-height:1.7}.meeting-tallies{color:#b5c5d9;margin:14px 0 0;padding-left:20px;font-size:13px;line-height:1.8}@media (width<=520px){.meeting-player-list{grid-template-columns:minmax(0,1fr)}.meeting-dialog.system-dialog{padding:20px}}.play-again-button{margin-top:12px}.company-logbook{background:linear-gradient(145deg,#101b2b,#0b1320);border:1px solid #30445e;border-radius:18px;margin:28px 0 44px;padding:22px}.company-logbook-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.company-logbook-heading h2{margin:5px 0 0;font-size:clamp(20px,3vw,26px)}.company-logbook-count{color:#8cddf7;flex-shrink:0;font-size:12px;font-weight:700}.company-logbook-status{color:#aabbd1;margin:12px 0;font-size:13px}.company-logbook-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.company-logbook-entry{border-top:1px solid #26364c;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 16px;padding:12px 0;display:grid}.company-logbook-identity{color:#e8edf5;overflow-wrap:anywhere}.company-logbook-description{color:#aabbd1;font-size:13px}.company-logbook-time{color:#8cddf7;font-variant-numeric:tabular-nums;grid-area:1/2/span 2;font-size:13px;font-weight:700}@media (width<=520px){.company-logbook{padding:18px 14px}.company-logbook-entry{gap:4px 10px}}.company-logbook-open{margin:24px auto 0;display:block}.company-log-dialog{box-sizing:border-box;color:#e8edf5;background:#0b1320;border:1px solid #30445e;border-radius:20px;width:min(760px,100% - 32px);max-height:calc(100dvh - 48px);padding:24px;overflow-y:auto;box-shadow:0 0 60px #00000080}.company-log-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#03070ed9}.company-log-dialog-toolbar{justify-content:flex-end;margin-bottom:12px;display:flex}.company-log-dialog .company-logbook{margin:0}@media (width<=520px){.company-log-dialog{padding:18px 14px}}.game-clock-time--urgent{color:#ff4d4f;text-shadow:0 0 18px #ff4d4f8c;animation:1s ease-in-out infinite alternate low-time-pulse}.game-clock-warning{color:#ffd7d7;background:#7f1d1d59;border:1px solid #ff4d4f;border-radius:10px;width:fit-content;max-width:100%;margin:12px auto;padding:12px 18px;font-size:13px;font-weight:800;line-height:1.5;box-shadow:0 0 24px #ff4d4f2e}.game-clock-warning[hidden]{display:none!important}@keyframes low-time-pulse{0%{opacity:.78}to{opacity:1}}@media (prefers-reduced-motion:reduce){.game-clock-time--urgent{animation:none}}.monitor-room-button{flex:180px}.admin-monitor-dialog{box-sizing:border-box;color:#e8edf5;background:#0b1320;border:1px solid #405570;border-radius:20px;width:min(1120px,100% - 32px);max-height:calc(100dvh - 40px);padding:26px;overflow-y:auto;box-shadow:0 0 60px #00000080}.admin-monitor-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#03070edb}.admin-monitor-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.admin-monitor-header h2{margin:4px 0;font-size:clamp(22px,4vw,30px)}.admin-monitor-round,.admin-monitor-message{color:#aabbd1;font-size:13px}.admin-monitor-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.admin-monitor-fact{background:#101b2b;border:1px solid #30445e;border-radius:12px;gap:8px;padding:15px;display:grid}.admin-monitor-fact span{color:#9aacc2;letter-spacing:.08em;font-size:10px;font-weight:800}.admin-monitor-fact strong{font-size:18px}.admin-monitor-progress p{color:#bdcee1;margin:0 0 8px;font-size:12px}.admin-monitor-progress-track{background:#25354a;border-radius:999px;height:9px;overflow:hidden}.admin-monitor-progress-track>div{border-radius:inherit;background:#4da6ff;height:100%;transition:width .25s}.admin-monitor-columns{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px;margin-top:24px;display:grid}.admin-monitor-columns h3{margin:0 0 12px}.admin-monitor-tasks,.admin-monitor-players{gap:9px;display:grid}.admin-monitor-task,.admin-monitor-player{background:#101b2b;border:1px solid #30445e;border-radius:10px;gap:7px;padding:12px;display:grid}.admin-monitor-task{grid-template-columns:minmax(0,1fr) auto}.admin-monitor-task small{color:#aabbd1;grid-column:1/-1;line-height:1.5}.admin-monitor-task-status{color:#9aacc2;font-size:10px;font-weight:800}.admin-monitor-task--secured .admin-monitor-task-status{color:#6ee7b7}.admin-monitor-task--sabotaged .admin-monitor-task-status{color:#ff8a8a}.admin-monitor-task--in-progress .admin-monitor-task-status{color:#8cddf7}.admin-monitor-player-heading{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.admin-monitor-player small{color:#aabbd1;line-height:1.5}.admin-monitor-role{color:#8cddf7;flex-shrink:0;font-size:9px;font-weight:800}.admin-monitor-role--attacker{color:#ff8a8a}.admin-monitor-empty{color:#aabbd1;margin:0;padding:12px;font-size:13px}@media (width<=760px){.admin-monitor-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-monitor-columns{grid-template-columns:1fr}}@media (width<=480px){.admin-monitor-dialog{padding:18px 14px}.admin-monitor-task{grid-template-columns:1fr}.admin-monitor-task-status,.admin-monitor-task small{grid-column:1}}.meeting-fired-role{color:#ffb4bd;letter-spacing:.1em;margin:0;font-size:12px;font-weight:800}.meeting-firing{text-align:center;background:linear-gradient(145deg,#351d2a,#1d1d2d);border:1px solid #f871718c;border-radius:12px;margin:18px 0;padding:18px;overflow:hidden}.meeting-firing[hidden]{display:none!important}.meeting-firing-stamp{color:#ff6b6b;letter-spacing:.2em;margin:0 0 12px;font-size:12px;font-weight:900}.meeting-fired-identity{color:#f8fafc;margin:0;font-size:clamp(20px,5vw,28px);font-weight:800}.meeting-fired-role{color:#fca5a5;margin:10px 0 0;font-size:13px;font-weight:700}.meeting-firing--animate{animation:.7s ease-out both meeting-firing-reveal}@keyframes meeting-firing-reveal{0%{opacity:0;transform:scale(.82)translateY(16px)}65%{opacity:1;transform:scale(1.04)translateY(-3px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.meeting-firing--animate{animation:none}}.meeting-player-option--selected,.meeting-choice--selected{background:#153c3d;border-color:#69e7d0;box-shadow:0 0 0 2px #69e7d038}.meeting-player-option[aria-pressed=true],.meeting-abstain[aria-pressed=true]{border-color:#69e7d0}.meeting-confirm-vote{width:100%;margin-top:10px}.meeting-confirm-vote:disabled{opacity:.5;cursor:not-allowed}.meeting-return{text-align:center;background:linear-gradient(145deg,#153b3b,#17283a);border:1px solid #69e7d08c;border-radius:12px;margin:18px 0;padding:18px;overflow:hidden}.meeting-return[hidden]{display:none!important}.meeting-return-stamp{color:#69e7d0;letter-spacing:.2em;margin:0 0 12px;font-size:12px;font-weight:900}.meeting-return-message{color:#e8edf5;margin:0;font-size:15px;line-height:1.6}.meeting-return--animate{animation:.7s ease-out both meeting-return-reveal}@keyframes meeting-return-reveal{0%{opacity:0;transform:scale(.88)translateY(12px)}65%{opacity:1;transform:scale(1.03)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.meeting-return--animate{animation:none}}.game-clock-result-roster{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;width:min(100%,980px);margin:18px auto 0;display:grid}.game-clock-role-group{--team-accent:#69e7d0;--team-glow:#69e7d024;background:linear-gradient(145deg, var(--team-glow), transparent 65%), #101b2b;border:1px solid color-mix(in srgb, var(--team-accent) 38%, #40516a);border-radius:16px;min-width:0;padding:18px;animation:.65s ease-out both team-card-enter;overflow:hidden;box-shadow:0 12px 34px #00000038}.game-clock-role-group:first-child{--team-accent:#ff8798;--team-glow:#ff506e21;animation-delay:.15s}.game-clock-role-group:nth-child(2){--team-accent:#78c7ff;--team-glow:#46a0ff21;animation-delay:.28s}.game-clock-role-group h3{color:var(--team-accent);letter-spacing:.16em;align-items:center;gap:10px;margin:0 0 14px;font-size:13px;font-weight:900;display:flex}.game-clock-role-group h3:before{content:"";background:var(--team-accent);width:8px;height:8px;box-shadow:0 0 14px var(--team-accent);border-radius:50%}.game-clock-role-group ol{counter-reset:team-player;gap:9px;margin:0;padding:0;list-style:none;display:grid}.game-clock-role-player{color:#e8edf5;border:1px solid #ffffff12;border-left:3px solid var(--team-accent);counter-increment:team-player;background:#050b147a;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:11px 12px;transition:background .18s,border-color .18s,transform .18s;animation:.45s ease-out both team-player-enter;display:flex}.game-clock-role-player:before{color:var(--team-accent);content:counter(team-player, decimal-leading-zero);letter-spacing:.08em;flex:none;font-size:10px;font-weight:800}.game-clock-role-player:hover{border-color:color-mix(in srgb, var(--team-accent) 40%, transparent);background:#ffffff12;transform:translateY(-2px)}.game-clock-role-identity{overflow-wrap:anywhere;min-width:0;margin-right:auto;font-size:14px;font-weight:700}.game-clock-role-state{color:#ffb7c1;letter-spacing:.04em;background:#ff506e1f;border:1px solid #ff879847;border-radius:999px;flex:none;padding:4px 8px;font-size:10px;font-weight:800}@keyframes team-card-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes team-player-enter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@media (width<=640px){.game-clock-result-roster{grid-template-columns:1fr;gap:12px}.game-clock-role-group{padding:15px}}@media (prefers-reduced-motion:reduce){.game-clock-role-group,.game-clock-role-player{transition:none;animation:none}}@media (width<=640px){.game-page-mode .game-clock-result:not([hidden]){align-content:start;place-items:start center;padding:20px 12px 32px;overflow-y:auto}.game-page-mode .game-clock-result:not([hidden])>div{padding:16px 8px}.game-page-mode .game-clock-result-roster{margin-top:8px}}
