:root{--bg:#12171a;--panel:#1c2428;--panel-edge:#33423f;--text:#e8e4d8;--muted:#a9b0a8;--amber:#f0a830;--red:#e0433a;--green:#6cc070;--focus:#ffd166;--series-1:#3987e5;--font-pixel:"Press Start 2P", ui-monospace, monospace;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:16px/1.5 var(--font-body);margin:0}a{color:var(--amber)}button,input,textarea{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.pixel{image-rendering:pixelated}header.top{border-bottom:2px solid var(--panel-edge);flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 16px;display:flex}header.top .brand{font-family:var(--font-pixel);color:var(--amber);font-size:14px;text-decoration:none}header.top nav{flex-wrap:wrap;gap:4px 16px;display:flex}header.top nav a{color:var(--text);text-decoration:none}header.top nav a[aria-current=page]{color:var(--amber);text-decoration:underline}main{max-width:860px;margin:0 auto;padding:16px}h1,h2{font-family:var(--font-pixel);line-height:1.4}h1{color:var(--amber);font-size:20px}h2{font-size:14px}.panel{background:var(--panel);border:2px solid var(--panel-edge);margin:16px 0;padding:16px}.btn{border:2px solid var(--amber);color:var(--text);cursor:pointer;background:0 0;padding:10px 14px;text-decoration:none;display:inline-block}.btn.primary{background:var(--amber);color:#1a1206;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.brief .goal{margin:0 0 4px;font-size:18px;font-weight:600}.brief .time{color:var(--muted);margin:0 0 12px}.brief ol,.brief ul{margin:4px 0 12px;padding-left:22px}.brief li{margin:4px 0}.progress{border:2px solid var(--panel-edge);background:#0c1012;height:14px}.progress>span{background:var(--green);height:100%;display:block}.progress-label{color:var(--muted);margin-top:4px;font-size:14px}.help{color:var(--muted);font-size:14px}details.faq summary{cursor:pointer}details.faq dt{margin-top:8px;font-weight:600}details.faq dd{color:var(--muted);margin:0 0 4px}.map{width:100%;max-width:768px;margin:16px auto;position:relative}.map img{width:100%;height:auto;display:block}.map .room{align-items:flex-start;display:flex;position:absolute}.map .room.mine{outline:3px solid var(--amber);outline-offset:1px}.map .room:before{content:"";background:#04060a00;transition:background .6s;position:absolute;inset:0}.map .room.dark:before{background:#04060ab8}.map .room.breach-1:before{background:#dc282852}.map .room.breach-2:before{background:#dc282870}.map .room.breach-3:before{background:#dc28288f}.map .room.breach:before{animation:1.6s ease-in-out infinite alarm}@keyframes alarm{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.map .room.breach:before{animation:none}}.map .label .breach-label{color:#ff8a80;font-weight:600}.map .label{background:#0a0c0ecc;flex-direction:column;gap:2px;max-width:100%;padding:2px 6px 3px;font-size:12px;line-height:1.2;display:flex;position:relative}.map .label .name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.map .bar{background:#333;height:4px;display:block}.map .bar>span{background:var(--green);height:100%;display:block}table.scores{border-collapse:collapse;width:100%;max-width:768px;margin:0 auto}table.scores caption{text-align:left;color:var(--muted);padding-bottom:8px;font-size:14px}table.scores th,table.scores td{text-align:left;border-bottom:1px solid var(--panel-edge);padding:6px 8px}.chat{grid-template-columns:96px 1fr;align-items:start;gap:12px;display:grid}.portrait{width:96px;height:96px;transition:filter .3s}.portrait.gloat{filter:drop-shadow(0 0 8px var(--red)) brightness(1.2);animation:.4s 2 shake}.portrait.defeated{filter:grayscale()brightness(.55)}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.portrait.gloat{animation:none}}.bubble{border-left:4px solid var(--red);background:#0f1416;margin:0 0 8px;padding:10px 12px}.bubble.me{border-left-color:var(--amber);margin-left:24px}.actions{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:12px 0;display:grid}.feedback{border-left:4px solid var(--muted);background:#0f1416;padding:10px 12px}.feedback.correct{border-left-color:var(--green)}.feedback.partial{border-left-color:var(--amber)}.feedback.wrong{border-left-color:var(--red)}.say{gap:8px;display:flex}.say input{min-width:0;color:var(--text);border:2px solid var(--panel-edge);background:#0c1012;flex:1;padding:10px}.blocked{border-left:4px solid var(--red);background:#2a1414;padding:10px 12px}.tutorial{max-width:640px;margin:40px auto}.toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.toolbar select,.search input{color:var(--text);border:2px solid var(--panel-edge);background:#0c1012;padding:8px}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0 20px;display:grid}.tile{border:2px solid var(--panel-edge);background:#0f1416;padding:12px}.tile-value{font-size:28px;font-weight:700;line-height:1.1}.tile-label{color:var(--muted);font-size:14px}.bars{margin:8px 0 20px;padding:0;list-style:none}.bars li{grid-template-columns:minmax(120px,220px) 1fr 14ch;align-items:center;gap:10px;padding:4px 0;display:grid}.bars li:hover .bar-fill{filter:brightness(1.2)}.bar-label{font-size:14px}.bar-track{background:#0f1416;height:12px}.bar-fill{background:var(--series-1);border-radius:0 4px 4px 0;height:100%;display:block}.bar-value{color:var(--text);text-align:right;min-width:7ch;font-size:14px}.table-scroll{overflow-x:auto}table.data{border-collapse:collapse;width:100%;margin:8px 0 12px;font-size:14px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--panel-edge);white-space:nowrap;padding:6px 8px}table.data th{color:var(--muted);font-weight:600}.search{margin:8px 0;display:block}pre.code{border:2px solid var(--panel-edge);background:#0c1012;padding:10px;font-size:13px;overflow-x:auto}@media (width<=520px){.bars li{grid-template-columns:1fr 14ch}.bars .bar-track{grid-area:2/1/auto/-1}}.tutorial .dots{color:var(--muted)}.tutorial-images{gap:12px;margin:16px 0;display:grid}.tutorial-images figure{margin:0}.tutorial-images img{border:2px solid var(--panel-edge);width:100%;height:auto;display:block}.tutorial-images figcaption{color:var(--muted);margin-top:4px;font-size:14px}@media (width<=520px){.chat{grid-template-columns:1fr}.map .label{padding:1px 4px 2px;font-size:10px}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.field{width:100%;max-width:420px;color:var(--text);border:2px solid var(--panel-edge);background:#0c1012;padding:10px}.map .resident-slot{position:absolute}.map .resident{cursor:pointer;background:0 0;border:0;width:100%;height:100%;padding:0;display:block}.map .resident img{width:100%;height:100%;display:block}.map .resident:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.map .resident.asleep img{filter:brightness(.55)}.map .resident.asleep:after{content:"z";font:600 10px/1 var(--font-pixel);color:#9fb4c8;animation:2.4s ease-in-out infinite snore;position:absolute;top:-40%;right:-20%}.map .resident.me img{filter:drop-shadow(1px 0 0 var(--amber)) drop-shadow(-1px 0 0 var(--amber)) drop-shadow(0 1px 0 var(--amber)) drop-shadow(0 -1px 0 var(--amber))}.map .resident.selected img{filter:drop-shadow(0 0 3px #fff)}.map .you-tag{background:var(--amber);color:#1a1206;white-space:nowrap;pointer-events:none;padding:0 4px;font:700 9px/1.5 system-ui,sans-serif;animation:1.4s ease-in-out infinite bob;position:absolute;bottom:104%;left:50%;transform:translate(-50%)}.map .you-tag:after{content:"";border:3px solid #0000;border-top-color:var(--amber);position:absolute;top:100%;left:50%;transform:translate(-50%)}.map .thought{z-index:3;color:#1c1f24;text-align:center;pointer-events:none;background:#f4f1e8;border:2px solid #0b0d10;width:max-content;max-width:150px;padding:3px 6px;font:600 10px/1.25 system-ui,sans-serif;animation:.2s ease-out pop;position:absolute;bottom:112%;left:50%;transform:translate(-50%)}.map .thought:after{content:"";background:#f4f1e8;border:2px solid #0b0d10;width:4px;height:4px;position:absolute;top:100%;left:50%;transform:translate(-50%,2px)}.map .thought.dream{color:#2b3440;background:#c9d3dd}.map .resident-card{z-index:5;background:var(--panel);border:2px solid var(--amber);white-space:nowrap;align-items:center;gap:8px;padding:8px 28px 8px 8px;font-size:13px;line-height:1.35;display:flex;position:absolute;bottom:110%;left:50%;transform:translate(-50%)}.map .resident-card img{width:39px;height:51px}.map .resident-card div{flex-direction:column;display:flex}.map .resident-card .close{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;position:absolute;top:2px;right:4px}@keyframes snore{0%{opacity:0;transform:translateY(4px)}50%{opacity:1}to{opacity:0;transform:translateY(-6px)}}@keyframes bob{50%{transform:translate(-50%,-2px)}}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.6)}}@media (prefers-reduced-motion:reduce){.map .resident.asleep:after,.map .you-tag,.map .thought{animation:none}}.avatar-picker .picker-grid{grid-template-columns:180px 1fr;align-items:start;gap:16px;margin:12px 0 16px;display:grid}.avatar-picker .preview{border:2px solid var(--panel-edge);background:#0c1012;flex-direction:column;align-items:center;gap:12px;padding:16px;display:flex}.avatar-picker .preview img{width:130px;height:170px}.avatar-picker .controls{gap:12px;display:grid}.avatar-picker .part-label{color:var(--muted);margin-bottom:4px;font-size:14px;display:block}.avatar-picker .stepper{grid-template-columns:auto 9rem auto;justify-content:start;align-items:center;gap:4px 8px;display:grid}.avatar-picker .stepper .part-label{grid-column:1/-1}.avatar-picker .stepper .value{text-align:center}.avatar-picker .stepper .btn{padding:4px 12px}.avatar-picker [role=radiogroup]{flex-wrap:wrap;gap:6px;display:flex}.avatar-picker .swatch{border:2px solid var(--panel-edge);cursor:pointer;width:32px;height:32px;padding:0}.avatar-picker .swatch.on{outline:3px solid var(--amber);outline-offset:1px}@media (width<=560px){.avatar-picker .picker-grid{grid-template-columns:1fr}.avatar-picker .stepper{grid-template-columns:auto 7rem auto}}.rules ol{padding-left:20px}.rules li{margin:6px 0}button.link{color:var(--amber);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.w1-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.w1-head h2{margin:0}.defences{align-items:center;gap:3px;display:flex}.defences-label{color:var(--muted);margin-right:6px;font-size:13px}.defences .block{background:#6f7c80;border:2px solid #2a3336;width:14px;height:14px}.defences .block.cracked{background:linear-gradient(135deg, #3a2222 45%, var(--red) 46%, var(--red) 54%, #3a2222 55%);border-color:#5a1d1a}.w1.hit{animation:.5s ease-out hit}@keyframes hit{0%{transform:translate(0);box-shadow:inset 0 0 0 999px #e0433a59}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}to{transform:translate(0);box-shadow:inset 0 0 0 999px #e0433a00}}.bubble.breach{border-left-color:var(--red);color:#ffb3ad;font-style:italic}.dummy-file{color:#1c1f24;cursor:grab;background:#e9e4d6;border:2px solid #0b0d10;max-width:560px;margin:12px 0;padding:0}.dummy-file[draggable=false]{cursor:default}.dummy-file figcaption{background:#c9c2ae;border-bottom:2px solid #0b0d10;padding:4px 8px;font:600 13px/1.3 ui-monospace,Menlo,monospace}.dummy-file figcaption:before{content:"📄 "}.dummy-file pre{white-space:pre-wrap;word-break:break-word;margin:0;padding:8px;font:13px/1.5 ui-monospace,Menlo,monospace}.dummy-file .secret{font:inherit;color:inherit}.dummy-file button.secret{cursor:pointer;background:#e0433a26;border:1px dashed #b3261e;padding:0 2px}.dummy-file button.secret.off{color:#0000;background:#0b0d10;border-color:#0b0d10}.dummy-file button.secret:focus-visible{outline:2px solid var(--focus)}.redact-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px;display:flex}.redact-bar p{flex:100%;margin:0}.targets{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0;display:grid}.target{text-align:left;color:var(--text);border:2px dashed var(--panel-edge);cursor:pointer;font:inherit;background:#0f1416;flex-direction:column;gap:4px;padding:12px;display:flex}.target strong{font-size:15px}.target span{color:var(--muted);font-size:13px}.target.share{border-color:#7a2e2a}.target:hover,.target:focus-visible,.target.over{border-style:solid;border-color:var(--amber);background:#1a2023}.target.share.over,.target.share:hover{border-color:var(--red)}@media (prefers-reduced-motion:reduce){.w1.hit{animation:none}}.badges h2 .count{color:var(--muted);font:14px var(--font-body);margin-left:8px}.badges ul{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.badges li{border:2px solid var(--panel-edge);opacity:.6;background:#0f1416;align-items:flex-start;gap:8px;padding:8px;display:flex}.badges li.earned{opacity:1;border-color:var(--amber)}.badges .mark{color:var(--amber);font-size:20px;line-height:1}.badges strong{display:block}.badges .how{color:var(--muted);font-size:13px;display:block}.fix-list li{margin:6px 0}.fix-list button.link{margin-left:10px;font-size:14px}.mark-form{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 10px;display:flex}.mark-form label{color:var(--muted);flex:100%;font-size:14px}.mark-form input{min-width:0;color:var(--text);border:2px solid var(--panel-edge);background:#0c1012;flex:260px;padding:8px}.marks li.rejected{color:#ffb3ad}.panel.done{border-color:var(--green)}table.data tr.file-todo td:first-child{box-shadow:inset 4px 0 0 var(--amber)}table.data tr.file-todo td:last-child{color:var(--amber);font-weight:600}table.data tr.file-done td,table.data tr.file-done a{color:var(--muted)}main.home{max-width:none;padding:8px 16px 16px}main.wide{max-width:1180px}header.top .who{color:var(--text);margin-left:auto;font-size:14px;position:relative}header.top .who summary{cursor:pointer;border:2px solid var(--panel-edge);align-items:center;gap:8px;padding:4px 8px;list-style:none;display:flex}header.top .who summary::-webkit-details-marker{display:none}header.top .who summary img{width:20px;height:26px}header.top .who .menu{z-index:20;background:var(--panel);border:2px solid var(--panel-edge);flex-direction:column;min-width:180px;display:flex;position:absolute;top:calc(100% + 4px);right:0}header.top .who .menu a,header.top .who .menu button{color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;padding:10px 12px;text-decoration:none}header.top .who .menu a:hover,header.top .who .menu button:hover{background:#26302f}.stage{width:min(100%,100vh - 72px,1100px);margin:0 auto;position:relative}.stage-map{position:relative}.stage .map{max-width:none;margin:0}.hud{z-index:6;position:absolute}.hud-mission{flex-direction:column;align-items:flex-start;gap:6px;max-width:46%;display:flex;top:8px;left:8px}.mission-chip{border:2px solid var(--amber);color:var(--text);background:#0a0c0ed1;gap:2px;padding:8px 12px;text-decoration:none;display:grid}.mission-chip .kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.mission-chip strong{font-family:var(--font-pixel);color:var(--amber);font-size:12px;line-height:1.5}.mission-chip .go{background:var(--amber);color:#1a1206;justify-self:start;margin-top:4px;padding:2px 8px;font-size:13px;font-weight:600}.mission-chip:hover .go,.mission-chip:focus-visible .go{background:var(--focus)}.score-chip{border:2px solid var(--panel-edge);color:var(--text);background:#0a0c0ed1;padding:4px 10px;font-size:13px;text-decoration:none}.score-chip strong{color:var(--amber)}.room-chip{margin:0}.hud-controls{border:2px solid var(--panel-edge);background:#0a0c0ed1;align-items:center;gap:6px;padding:4px;display:flex;top:8px;right:8px}.hud-btn{width:34px;height:34px;color:var(--text);border:2px solid var(--panel-edge);cursor:pointer;background:#1a2023;place-items:center;padding:0;display:grid}.hud-btn[aria-pressed=true]{color:var(--amber);border-color:var(--amber)}.hud-volume input{width:90px;accent-color:var(--amber)}.hud-status{width:max-content;max-width:calc(100% - 16px);color:var(--muted);text-align:center;background:#0a0c0ed1;margin:0;padding:3px 10px;font-size:13px;bottom:6px;left:50%;transform:translate(-50%)}@media (width<=640px){.stage,.stage-map{flex-direction:column;gap:8px;width:100%;display:flex}.hud{max-width:none;position:static;transform:none}.hud-controls{order:-1;align-self:flex-end}.hud-status{width:auto}}.tabs{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.tab{color:var(--text);border:2px solid var(--panel-edge);cursor:pointer;font:inherit;background:#0f1416;padding:6px 12px}.tab[aria-pressed=true]{border-color:var(--amber);color:var(--amber)}.score-bar{vertical-align:middle;background:#333;width:80px;height:8px;margin-right:8px;display:inline-block}.score-bar>span{background:var(--green);height:100%;display:block}table.scores tr.mine td{color:var(--amber)}.progress-total{font-size:18px}.progress-total strong{font-family:var(--font-pixel);color:var(--amber);font-size:20px}.missions{gap:6px;margin:0;padding:0;list-style:none;display:grid}.missions li{border:2px solid var(--panel-edge);background:#0f1416;grid-template-columns:80px 1fr auto auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.missions li.open{border-color:var(--amber)}.missions li.upcoming{opacity:.7}.missions .week,.missions .state{color:var(--muted);font-size:13px}.missions .pts{font-weight:600}@media (width<=560px){.missions li{grid-template-columns:1fr auto}.missions .week,.missions .state{display:none}}.mission-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.mission-layout.brief-hidden{grid-template-columns:minmax(0,1fr) auto}.mission-aside{max-height:calc(100vh - 24px);position:sticky;top:12px;overflow-y:auto}.mission-aside .panel{margin-top:8px}.mission-aside .brief h1{font-size:15px}.brief-toggle{width:100%;padding:6px 10px;font-size:14px}.mission-layout.brief-hidden .brief-toggle{width:auto}.mission-main>.panel:first-child{margin-top:0}@media (width<=900px){.mission-layout,.mission-layout.brief-hidden{grid-template-columns:1fr}.mission-aside{order:-1;max-height:none;position:static;overflow:visible}}.tab-list{flex-wrap:wrap;gap:6px;margin:16px 0 0;display:flex}.tab-item{text-align:left;color:var(--text);border:2px solid var(--panel-edge);cursor:pointer;font:inherit;background:#0f1416;border-bottom:0;gap:2px;padding:8px 14px;display:grid}.tab-item[aria-selected=true]{background:var(--panel);border-color:var(--amber);color:var(--amber)}.tab-item.done .tab-title{color:var(--green)}.tab-title{font-weight:600}.tab-note{color:var(--muted);font-size:12px}.panel.tab-panel{border-top-color:var(--amber);margin-top:0}.tab-panel h2:first-child{margin-top:0}.tab-panel .how{color:var(--muted)}.scan-bar{z-index:4;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:0;display:flex;position:sticky;top:0}.scan-bar>div{flex:240px}.scan-points{font-family:var(--font-pixel);color:var(--amber);margin-right:4px;font-size:18px}.scan-bar .scan-status{flex:100%;margin:0}.scan-bar .scan-status:empty{display:none}.rules-card ol{margin:8px 0}.supply-code{border-left:4px solid var(--amber);background:#0f1416;padding:8px 12px}.supply-code strong{letter-spacing:3px;color:var(--amber);font-family:ui-monospace,Menlo,monospace;font-size:22px}.supply-code .help{display:block}.w1-head .w1-count{color:var(--muted);font-size:14px}.w1>h2{margin:6px 0 10px}.w1-summary{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.w1-summary li{border-left:4px solid var(--muted);background:#0f1416;padding:8px 12px}.w1-summary li.correct{border-color:var(--green)}.w1-summary li.partial{border-color:var(--amber)}.w1-summary li.wrong{border-color:var(--red)}.w1-summary strong{font-family:var(--font-pixel);margin-right:6px;font-size:16px}.board-controls{flex-wrap:wrap;justify-content:space-between;gap:0 16px;display:flex}table.scores tr.gap td{color:var(--muted);text-align:center;padding:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.map .room-ambience{pointer-events:none;position:absolute;inset:0;overflow:hidden}.map .room-ambience img{max-width:none;image-rendering:pixelated;position:absolute}.map .room-ambience .lamps{filter:blur(1.5px)brightness(1.6);mix-blend-mode:screen;opacity:.85}.map .room-ambience .cone{mix-blend-mode:screen;clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);position:absolute;transform:translate(-50%)}.map .room-ambience .cone.warm{background:linear-gradient(#ffcd784d,#ffbe6e00)}.map .room-ambience .cone.grow{background:linear-gradient(#e66eff47,#e66eff00)}.map .room-ambience.flicker .cone,.map .room-ambience.flicker .lamps,.map .room-ambience.flicker .fill,.map .room-ambience.flicker .screens{animation:.7s step-end flicker}.map .room-ambience.flicker:after{content:"";background:#04060a73;animation:.7s step-end flicker-dark;position:absolute;inset:0}@keyframes flicker{0%{opacity:.1}12%{opacity:1}22%{opacity:0}32%{opacity:.9}50%{opacity:.2}64%{opacity:1}86%{opacity:.4}to{opacity:1}}@keyframes flicker-dark{0%{opacity:1}12%{opacity:0}22%{opacity:1}32%{opacity:.1}50%{opacity:.8}64%{opacity:0}86%{opacity:.5}to{opacity:0}}.map .room-ambience .screens{filter:blur(1px)brightness(1.5);mix-blend-mode:screen;opacity:.45;animation:5s ease-in-out infinite shimmer}.map .room-ambience .screens.flash{animation:.26s ease-out screen-flash}@keyframes shimmer{0%,to{opacity:.4}40%{opacity:.6}43%{opacity:.3}46%{opacity:.6}70%{opacity:.5}}@keyframes screen-flash{0%{opacity:1;filter:blur(1.5px)brightness(3)}30%{opacity:1}to{opacity:.45}}.map .room-ambience .fill{mix-blend-mode:screen;opacity:.22;background:radial-gradient(currentColor,#0000 62%);width:130%;height:170%;animation:6s ease-in-out infinite breathe;position:absolute;transform:translate(-50%,-50%)}.map .room-ambience .fill.flash{animation:.45s ease-out fill-flash}@keyframes breathe{0%,to{opacity:.18}50%{opacity:.3}}@keyframes fill-flash{0%{opacity:.2}15%{opacity:.75}35%{opacity:.3}50%{opacity:.6}to{opacity:.2}}.map .room-ambience .led{animation:1.5s step-end infinite blink;position:absolute;box-shadow:0 0 4px 2px}.map .room-ambience .led.flash{animation:.45s step-end burst}@keyframes burst{0%,40%,80%{opacity:1}20%,60%{opacity:.1}}@keyframes blink{0%,60%{opacity:1}61%,to{opacity:.15}}.map .room-ambience .mote{background:#fff4dc;border-radius:50%;width:3px;height:3px;animation:10s ease-in-out infinite drift;position:absolute;box-shadow:0 0 4px 1px #ffe4b4d9}.map .room-ambience .mote.path1{animation-name:drift-b}.map .room-ambience .mote.path2{animation-name:drift-c}@keyframes drift{0%{opacity:0;transform:translate(0)}20%{opacity:1}50%{transform:translate(14px,-10px)}80%{opacity:.85}to{opacity:0;transform:translate(24px,4px)}}@keyframes drift-b{0%{opacity:0;transform:translate(0)}25%{opacity:1}50%{transform:translate(-11px,-6px)}75%{opacity:.9;transform:translate(-18px,5px)}to{opacity:0;transform:translate(-26px,-3px)}}@keyframes drift-c{0%{opacity:0;transform:translate(0)}30%{opacity:1;transform:translate(5px,-12px)}60%{transform:translate(-5px,-22px)}to{opacity:0;transform:translate(3px,-32px)}}.map .room-ambience .wisp{filter:blur(1px);background:linear-gradient(90deg,#e1e9f200,#e1e9f257,#e1e9f200);border-radius:50%;width:45%;height:6px;animation:18s ease-in-out infinite wisp;position:absolute;left:0}.map .room-ambience .wisp.back{animation-name:wisp-back}@keyframes wisp{0%{opacity:0;transform:translate(-40%)scaleY(1)}20%{opacity:1}50%{transform:translate(120%)scaleY(1.6)}80%{opacity:.8}to{opacity:0;transform:translate(260%)scaleY(1)}}@keyframes wisp-back{0%{opacity:0;transform:translate(260%)}20%{opacity:1}50%{transform:translate(120%)scaleY(1.6)}80%{opacity:.8}to{opacity:0;transform:translate(-40%)}}.map .room-ambience .vent-puff{background:radial-gradient(#e1e8f08c,#e1e8f000 70%);border-radius:50%;width:10px;height:7px;margin-left:-5px;animation:7s ease-out infinite puff;position:absolute}@keyframes puff{0%{opacity:0;transform:translate(0)scale(.4)}12%{opacity:1}to{opacity:0;transform:translate(-22px,26px)scale(3.2)}}.map .shaft{overflow:hidden}.map .shaft .updraft{background:#e1e8f0e6;border-radius:50%;width:3px;height:3px;animation:10s linear infinite updraft;position:absolute;top:100%;box-shadow:0 0 3px #d2deebb3}@keyframes updraft{0%{opacity:0;top:100%;transform:translate(0)}10%{opacity:.8}50%{transform:translate(4px)}90%{opacity:.6}to{opacity:0;top:-2%;transform:translate(-3px)}}.map .room-ambience .emergency{mix-blend-mode:screen;background:radial-gradient(at top,#ff322847,#ff322800 70%);width:18%;height:60%;animation:3.2s ease-in-out infinite emergency;position:absolute;transform:translate(-50%)}@keyframes emergency{0%,to{opacity:.25}50%{opacity:1}}.map .room-ambience [class^=fx-]{position:absolute}.map .room-ambience .fx-screen{mix-blend-mode:screen;overflow:hidden}.map .room-ambience .fx-scan{background:linear-gradient(90deg,#5affe100,#96ffeb8c,#5affe100);width:22%;animation:4.5s linear infinite scan;top:0;bottom:0;left:0}@keyframes scan{0%{transform:translate(-100%)}70%,to{transform:translate(460%)}}.map .room-ambience .fx-track{overflow:visible}.map .room-ambience .fx-packet{background:#ff7ad9;width:4px;height:3px;margin-left:-2px;animation:4.4s linear infinite packet;top:-1px;box-shadow:0 0 5px 2px #ff5ad2bf}@keyframes packet{0%{opacity:0;left:0}8%{opacity:1}92%{opacity:1}to{opacity:0;left:100%}}.map .room-ambience .fx-drip{background:#aad7fff2;border-radius:50%/30% 30% 70% 70%;width:3px;height:4px;animation:4s ease-in infinite drip;left:-1px;box-shadow:0 0 3px #aad7ffcc}@keyframes drip{0%,40%{opacity:.9;top:0;transform:scale(.4)}55%{transform:scale(1)}88%{opacity:1;top:100%;transform:scale(1)}92%{opacity:.8;top:100%;transform:scale(2.6,.4)}to{opacity:0;top:100%;transform:scale(3.4,.2)}}.map .room-ambience .fx-glow{mix-blend-mode:screen;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;animation:3s ease-in-out infinite glow}.map .room-ambience .fx-glow.warm{background:radial-gradient(circle,#ffd78ce6,#ffbe6e00 70%)}.map .room-ambience .fx-glow.cool{background:radial-gradient(#beebff8c,#beebff00 70%);width:26px;height:30px;margin:-15px 0 0 -13px}.map .room-ambience .fx-glow.cyan{background:radial-gradient(circle,#5af0ff,#5af0ff00 65%)}.map .room-ambience .fx-glow.amber{background:radial-gradient(circle,#ffbe32f2,#ffaa2800 70%);width:22px;height:22px;margin:-11px 0 0 -11px}.map .room-ambience .fx-glow.slow{animation-duration:6s}.map .room-ambience .fx-glow.late{animation-delay:-2.5s}.map .room-ambience .fx-glow.blink{animation:1.6s step-end infinite beacon}@keyframes glow{0%,to{opacity:.55}50%{opacity:1}}@keyframes beacon{0%,50%{opacity:1}51%,to{opacity:.1}}.map .room-ambience .fx-tank{overflow:hidden}.map .room-ambience .fx-bubble{background:#d7fafff2;border-radius:50%;width:2px;height:2px;animation:2.8s ease-in infinite bubble;bottom:0;box-shadow:0 0 2px #d7faffe6}@keyframes bubble{0%{opacity:0;bottom:0;transform:translate(0)}15%{opacity:1}50%{transform:translate(1px)}to{opacity:.2;bottom:100%;transform:translate(-1px)}}.map .room-ambience .fx-sparks{width:0;height:0}.map .room-ambience .fx-flare{mix-blend-mode:screen;background:radial-gradient(circle,#fff0c8f2,#ffaa3c66 35%,#ff962800 70%);border-radius:50%;width:30px;height:30px;margin:-15px 0 0 -15px;animation:5.5s step-end infinite flare}@keyframes flare{0%{opacity:1}3%{opacity:.5}6%{opacity:1}9%{opacity:.6}12%{opacity:1}16%,to{opacity:0}}.map .room-ambience .fx-spark{opacity:0;background:#ffe7a0;width:2px;height:2px;animation:5.5s ease-out infinite spark;box-shadow:0 0 3px 1px #ffbe50e6}@keyframes spark{0%{opacity:1;transform:translate(0)}10%{transform:translate(var(--dx), var(--dy));opacity:.9}16%{transform:translate(calc(var(--dx) * 1.3), calc(var(--dy) + 9px));opacity:0}to{opacity:0}}.map .room-ambience .fx-rings{width:0;height:0}.map .room-ambience .fx-ring{border:1px solid #78ffaae6;border-radius:50%;width:30px;height:30px;margin:-15px 0 0 -15px;animation:3s ease-out infinite ring}@keyframes ring{0%{opacity:1;transform:scale(.1)}to{opacity:0;transform:scale(1.3)}}.map .room-ambience .fx-trace{fill:none;stroke-width:1.2px;vector-effect:non-scaling-stroke;width:200%;height:100%;position:absolute;top:0;left:0;overflow:visible}.map .room-ambience .fx-trace path{vector-effect:non-scaling-stroke;stroke-width:1.5px;stroke-linejoin:round}.map .room-ambience .fx-trace.green path{stroke:#7dff9e;filter:drop-shadow(0 0 1px #7dff9e)}.map .room-ambience .fx-trace.green{animation:1.4s linear infinite carrier}@keyframes carrier{to{transform:translate(-50%)}}.map .room-ambience .fx-trace.ecg{width:100%}.map .room-ambience .fx-trace.ecg path{stroke:#7dff9e;filter:drop-shadow(0 0 1px #7dff9e);stroke-dasharray:50 50;animation:1.8s linear infinite ecg}@keyframes ecg{0%{stroke-dashoffset:50px}to{stroke-dashoffset:-50px}}.map .room-ambience .fx-steam{background:radial-gradient(circle,#f5f5f5f2,#f0f0f000 70%);border-radius:50%;width:9px;height:9px;margin-left:-4px;animation:4.2s ease-out infinite steam}@keyframes steam{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1}60%{opacity:.6;transform:translate(3px,-9px)scale(1.4)}to{opacity:0;transform:translate(-2px,-17px)scale(2.2)}}.map .room-ambience .fx-cell{mix-blend-mode:screen;border-radius:40%;width:26px;height:34px;margin:-17px 0 0 -13px;animation:.95s ease-in-out infinite cell,7s step-end infinite arc}.map .room-ambience .fx-cell.purple{background:radial-gradient(#d76effd9,#d76eff00 70%)}.map .room-ambience .fx-cell.cyan{background:radial-gradient(#6ee6ffd9,#6ee6ff00 70%);animation-delay:-.45s,-3.2s}@keyframes cell{0%,to{opacity:.45}50%{opacity:.85}}@keyframes arc{0%,94%{filter:none}95%{filter:brightness(2.4)}96%{filter:none}97%{filter:brightness(2)}98%,to{filter:none}}.map .room-ambience .cone.sway{transform-origin:50% 0;animation:5s ease-in-out infinite sway}@keyframes sway{0%,to{transform:translate(-50%)rotate(-4deg)}50%{transform:translate(-50%)rotate(4deg)}}.map .room-ambience .cone.low{opacity:.5}.map .room-ambience .cone.pulse{animation:4s ease-in-out infinite grow-pulse}@keyframes grow-pulse{0%,to{opacity:.75}50%{opacity:1;filter:brightness(1.3)}}.map.still .room-ambience .fx-packet,.map.still .room-ambience .fx-drip,.map.still .room-ambience .fx-bubble,.map.still .room-ambience .fx-spark,.map.still .room-ambience .fx-flare,.map.still .room-ambience .fx-ring,.map.still .room-ambience .fx-steam,.map.still .room-ambience .fx-scan{display:none}.map .room-hit{cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.map .room-hit:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}.map .room.listening:after{content:"";pointer-events:none;border:2px solid #78dcffd9;position:absolute;inset:0}.map .room .label{pointer-events:none}.map .room.listening .label .name:before{content:"♪ ";color:#9fe3ff}.map .robots{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.map .robot-bubbles{pointer-events:none;width:100%;height:19.9219%;position:absolute;top:0;left:0;overflow:hidden}.map .robot-bubbles .robot-anchor,.map .robots .robot{position:absolute}.map .robots .robot img{width:100%;height:100%}.map .robots.night .robot img,.map .robots.dusk .robot img{filter:brightness(.75)drop-shadow(0 0 2px #ff4632b3)}.map .robot.hop img{animation:.6s ease-out infinite robot-hop}@keyframes robot-hop{0%,to{translate:0}40%{translate:0 -40%}}.map .robot.glitch img{animation:.3s step-end infinite robot-glitch}@keyframes robot-glitch{0%{filter:hue-rotate(90deg);translate:1px}25%{opacity:.5;translate:-2px}50%{filter:invert();translate:0 1px}75%{opacity:.8;translate:2px -1px}to{translate:0}}.map .robot.knock img{animation:.3s ease-in-out infinite robot-knock}@keyframes robot-knock{50%{translate:12%}}.map .robot.drone img{animation:1.6s ease-in-out infinite robot-bob}@keyframes robot-bob{50%{translate:0 -18%}}.map .robot-beam{transform-origin:0;clip-path:polygon(0 45%,100% 0,100% 100%,0 55%);mix-blend-mode:screen;background:linear-gradient(90deg,#ffdc5abf,#ffdc5a00);width:260%;height:110%;animation:1.4s ease-in-out infinite alternate robot-sweep;position:absolute;top:30%;left:50%}.map .robot-beam.down{transform-origin:50% 0;clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);background:linear-gradient(#ffdc5a99,#ffdc5a00);width:220%;height:320%;animation:1.8s ease-in-out infinite alternate robot-search;top:70%;left:50%;transform:translate(-50%)}@keyframes robot-sweep{0%{transform:rotate(-12deg)}to{transform:rotate(14deg)}}@keyframes robot-search{0%{transform:translate(-50%)rotate(-18deg)}to{transform:translate(-50%)rotate(18deg)}}.map .robot-bubble{color:#7dffb0;text-align:center;background:#0d1417;border:2px solid #7dffb0;width:max-content;max-width:170px;padding:3px 6px;font:600 10px/1.25 ui-monospace,Menlo,Consolas,monospace;animation:.2s ease-out pop;position:absolute;bottom:115%;left:50%;transform:translate(-50%)}.map .robot-bubble.below{top:115%;bottom:auto}.map .robot-bubble.from-left{left:0;transform:none}.map .robot-bubble.from-right{left:auto;right:0;transform:none}.map .robot-bubble.thinking:after{content:"";animation:1.2s steps(4,end) infinite robot-dots}@keyframes robot-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@media (width<=560px){.map .robot-bubble{max-width:120px;font-size:9px}}.map .sky{pointer-events:none;position:absolute;top:0;left:0;right:0;overflow:hidden}.map .sky>*{position:absolute}.map .sky-tint{transition:background 4s;inset:0}.map .sky-tint.day{background:#fff5e10d}.map .sky-tint.dawn{background:linear-gradient(#785aa04d,#ff966e59)}.map .sky-tint.dusk{background:linear-gradient(#3c286e66,#ff6e3c59)}.map .sky-tint.night{background:linear-gradient(#04081ec7,#0c12308c)}.map .sky-tint.overcast,.map .sky-tint.rain{box-shadow:inset 0 0 0 999px #282c3440}.map .sky-tint.storm{box-shadow:inset 0 0 0 999px #14161e73}.map .sky-tint.ash{box-shadow:inset 0 0 0 999px #78645038}.map .star{background:#eef3ff;width:2px;height:2px;animation:4s ease-in-out infinite twinkle}@keyframes twinkle{0%,to{opacity:.2}50%{opacity:1}}.map .drop{width:2px;animation:.65s linear infinite fall;top:0}.map .drop:before{content:"";background:linear-gradient(#d7e8ff00,#e1eefff2);width:2px;height:11px;position:absolute;bottom:0;box-shadow:0 0 3px #c8dcff8c}.map .drop.heavy:before{height:15px}@keyframes fall{0%{opacity:1;transform:translateY(-100%)rotate(8deg)}72%{opacity:1;transform:translate(-8px)rotate(8deg)}72.1%,to{opacity:0;transform:translate(-8px)rotate(8deg)}}.map .drop.heavy{animation-name:fall-heavy}@keyframes fall-heavy{0%{opacity:1;transform:translateY(-100%)rotate(14deg)}72%{opacity:1;transform:translate(-16px)rotate(14deg)}72.1%,to{opacity:0;transform:translate(-16px)rotate(14deg)}}.map .splash{opacity:0;border:2px solid #e1eefff2;border-bottom:0;border-radius:50% 50% 0 0;width:12px;height:6px;margin-top:-6px;animation:.65s linear infinite splash;box-shadow:0 -1px 3px #c8dcff66}.map .splash.heavy{width:16px;height:7px;margin-top:-7px}.map .splash:before,.map .splash:after{content:"";background:#e6f0fff2;width:2px;height:2px;position:absolute;top:-4px}.map .splash:before{left:-4px}.map .splash:after{right:-4px}@keyframes splash{0%,71.9%{opacity:0;transform:translate(-50%)scale(.2)}72%{opacity:1;transform:translate(-50%)scale(.35)}86%{opacity:.9}to{opacity:0;transform:translate(-50%)scale(1.25)translateY(-1px)}}.map .wet{background:linear-gradient(90deg,#bed2f026,#d2e1fa80,#bed2f026) 0 0/40% 100%;height:2px;animation:3s linear infinite sheen;left:0;right:0}.map .wet.vault{right:auto}@keyframes sheen{0%{background-position:0 0}to{background-position:250% 0}}.map .ash{background:#cfc6ba;border-radius:50%;width:2px;height:2px;animation:9s linear infinite ash;top:-4%}@keyframes ash{0%{opacity:.9;transform:translate(0)}to{opacity:0;transform:translate(24px,220px)}}.map .lightning{opacity:0;background:radial-gradient(at 30% 0,#ebf0fff2,#c8d7ff59 60%,#c8d7ff1a);inset:0}.map .lightning.on{animation:.65s ease-out lightning}@keyframes lightning{0%{opacity:0}8%{opacity:1}20%{opacity:.15}30%{opacity:.85}to{opacity:0}}.map .searchlight{transform-origin:50% 100%;clip-path:polygon(40% 0,60% 0,55% 100%,45% 100%);mix-blend-mode:screen;background:linear-gradient(#ff3c3c00,#ff464638);width:8%;height:160%;animation:14s ease-in-out infinite alternate sweep;bottom:0;left:80%}@keyframes sweep{0%{transform:rotate(-55deg)}to{transform:rotate(40deg)}}.map .beacon{background:#ff4d4d;width:2px;height:2px;animation:2s step-end infinite beacon;top:27%;left:51.4%;box-shadow:0 0 4px 2px #ff3c3c99}.map .beacon.bright{box-shadow:0 0 8px 4px #ff3c3ccc}.map .soil{pointer-events:none;background:radial-gradient(70% 65% at 50% 45%,#06040a80,#030206d1);position:absolute;left:0;right:0}.map .wall-shadow{pointer-events:none;clip-path:inset(0 -30px -30px);position:absolute;box-shadow:0 0 14px 7px #000000b3}.map .shaft{pointer-events:none;background:linear-gradient(90deg,#00000040,#0000 30% 70%,#00000040);position:absolute;box-shadow:inset 0 0 8px 3px #0000008c}.map .room{box-shadow:inset 0 7px 8px -4px #0000008c,inset 0 -4px 6px -3px #0006,inset 7px 0 8px -6px #00000073,inset -7px 0 8px -6px #00000073}.map .room-ambience .vignette{mix-blend-mode:multiply;position:absolute;inset:0}.map .resident-slot:before{content:"";pointer-events:none;background:radial-gradient(#00000080,#0000 70%);height:12%;position:absolute;top:83%;left:8%;right:8%}.map .far-sky{inset:0;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.map .cloud-track{width:100%;animation:120s linear infinite cloud-drift;position:absolute;left:0}.map .cloud-track img{display:block}@keyframes cloud-drift{0%{transform:translate(-40%)}to{transform:translate(100%)}}.map .storm-front{animation:90s ease-in-out infinite alternate gather;position:absolute;inset:0}@keyframes gather{0%{opacity:.2}to{opacity:1}}.map .smoke{inset:0}.map .smoke>*{position:absolute}.map .smoke .churn{width:100%;height:100%;inset:0}.map .smoke .churn.a{opacity:.55;animation:6s step-end infinite churn-a}.map .smoke .churn.b{opacity:.4;filter:brightness(1.18);animation:8s step-end infinite churn-b}@keyframes churn-a{0%{transform:translate(0)}25%{transform:translate(.39%,-1.96%)}50%{transform:translate(.78%,-1.96%)}75%{transform:translate(.39%)}}@keyframes churn-b{0%{transform:translate(.39%)}33%{transform:translate(-.39%,-1.96%)}66%{transform:translateY(-3.92%)}}.map .smoke .puff-track{width:3.5%;margin-left:-1.75%;animation:11s linear infinite rise}.map .smoke .puff-track img{width:100%;display:block}@keyframes rise{0%{opacity:0;transform:translate(0)scale(.5)}10%{opacity:.95}to{opacity:0;transform:translate(90%,-620%)scale(2.4)}}.map .smoke .puff-track.windy{animation-name:rise-windy}@keyframes rise-windy{0%{opacity:0;transform:translate(0)scale(.5)}10%{opacity:.95}to{opacity:0;transform:translate(420%,-380%)scale(2.2)}}.map .gust{background:linear-gradient(90deg,#dce1eb00,#dce1eb73,#dce1eb00);height:1px;animation:2.5s ease-in infinite gust;left:0}@keyframes gust{0%{opacity:0;transform:translate(-120%)}15%{opacity:1}to{opacity:0;transform:translate(1400%)}}.map .fog-layer{--fog:214, 219, 225;inset:0}.map .fog-layer.dawn{--fog:214, 204, 214}.map .fog-layer.dusk{--fog:206, 180, 170}.map .fog-layer.night{--fog:92, 104, 126}.map .fog-layer>*{position:absolute}.map .fog{background:linear-gradient(rgba(var(--fog), .3), rgba(var(--fog), .55) 55%, rgba(var(--fog), .82));inset:0}.map .fog-bank{background:radial-gradient(ellipse at center, rgba(var(--fog), .75), rgba(var(--fog), 0) 70%);filter:blur(3px);border-radius:50%;width:70%;height:45%;animation:60s linear infinite fog-bank;left:0}.map .fog-bank.front{background:radial-gradient(ellipse at center, rgba(var(--fog), .9), rgba(var(--fog), 0) 70%);width:85%;height:55%}@keyframes fog-bank{0%{transform:translate(-80%)}to{transform:translate(160%)}}.map .ground-fog{background:linear-gradient(rgba(var(--fog), 0), rgba(var(--fog), .9) 70%);filter:blur(2px);height:30%;animation:12s ease-in-out infinite alternate ground-fog;bottom:0;left:-10%;right:-10%}@keyframes ground-fog{0%{transform:translate(-3%)scaleY(.9)}to{transform:translate(3%)scaleY(1.1)}}.map .mist{background:rgba(var(--fog), .9);width:3px;height:3px;box-shadow:0 0 3px rgba(var(--fog), .8);border-radius:50%;animation:9s ease-in-out infinite mist}@keyframes mist{0%{opacity:0;transform:translate(0)}30%{opacity:1}50%{transform:translate(14px,-4px)}70%{opacity:.8}to{opacity:0;transform:translate(28px,2px)}}.map.still .room-ambience *,.map.still .room-ambience:after,.map.still .sky *,.map.still .resident:after,.map.still .you-tag{animation:none!important}.map.still .room-ambience .mote,.map.still .room-ambience .wisp,.map.still .room-ambience .vent-puff,.map.still .updraft,.map.still .gust,.map.still .mist{display:none}.map.still .shaft *,.map.still .storm-front,.map.still .cloud-track,.map.still .smoke *{animation:none!important}.map.still .smoke .puff-track{display:none}.map .room-props{pointer-events:none;position:absolute;inset:0}.map .room-props .prop{position:absolute}.map .room-props .prop-body,.map .room-props svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.map .room-props .prop-body{filter:drop-shadow(0 0 .5px #fff8cc8c);animation:.5s steps(4,end) both prop-in}.map .room-props .prop.film .prop-body{opacity:.72;filter:none}.map .room-props .prop.selected .prop-body{filter:drop-shadow(0 0 1px #fff8ccf2)drop-shadow(0 0 3px #e9b04099)}@keyframes prop-in{0%{opacity:0;transform:translateY(-30%)}to{opacity:1;transform:none}}.map .prop-slot{z-index:2;position:absolute}.map .prop-hit{cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:-2px}.map .prop-hit:hover,.map .prop-hit:focus-visible{outline-offset:1px;outline:1px dashed #fff8cc99}.map .prop-card{z-index:5;background:var(--panel);border:2px solid var(--amber);flex-direction:column;gap:2px;width:max-content;max-width:220px;padding:8px 24px 8px 10px;font-size:12px;line-height:1.35;animation:.15s ease-out pop;display:flex;position:absolute;bottom:115%;left:50%;transform:translate(-50%)}.map .prop-card.below{top:115%;bottom:auto}.map .prop-card .help{color:var(--muted);font-size:inherit;margin:0}.map .prop-card .close{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;position:absolute;top:2px;right:4px}.map .room-props .prop{--d:calc(var(--k,1) * 2.5s)}.map .room-props .frame-a{animation:prop-frame-a calc(var(--d) * .3) steps(1) infinite calc(var(--d) * .3 * var(--p) * -1)}.map .room-props .frame-b{animation:prop-frame-b calc(var(--d) * .3) steps(1) infinite calc(var(--d) * .3 * var(--p) * -1)}.map .room-props .pan-a{animation:prop-frame-a calc(var(--d) * 7) steps(1) infinite calc(var(--d) * 7 * var(--p) * -1)}.map .room-props .pan-b{animation:prop-frame-b calc(var(--d) * 7) steps(1) infinite calc(var(--d) * 7 * var(--p) * -1)}.map .room-props .blink{animation:prop-frame-a calc(var(--d) * 1.4) steps(1) infinite calc(var(--d) * 1.4 * var(--p) * -1)}.map .room-props .blink-slow{animation:prop-frame-a calc(var(--d) * 4) steps(1) infinite calc(var(--d) * 4 * var(--p) * -1)}.map .room-props .pulse{animation:prop-pulse calc(var(--d) * 2.4) ease-in-out infinite calc(var(--d) * 2.4 * var(--p) * -1)}.map .room-props .glint{animation:prop-glint var(--cy) steps(1) infinite calc(var(--cy) * var(--p) * -1)}.map .room-props .eye-1,.map .room-props .eye-2,.map .room-props .eye-3{animation:prop-frame-3 calc(var(--d) * 1.5) steps(1) infinite}.map .room-props .eye-1{animation-delay:calc(var(--d) * -1.5 * var(--p))}.map .room-props .eye-2{animation-delay:calc(var(--d) * -1.5 * var(--p) - var(--d))}.map .room-props .eye-3{animation-delay:calc(var(--d) * -1.5 * var(--p) - var(--d) * .5)}.map .room-props .pan-b,.map .room-props .frame-b,.map .room-props .glint,.map .room-props .eye-2,.map .room-props .eye-3{opacity:0}@keyframes prop-frame-a{0%{opacity:1}50%{opacity:0}}@keyframes prop-frame-b{0%{opacity:0}50%{opacity:1}}@keyframes prop-frame-3{0%{opacity:1}33.3%{opacity:0}}@keyframes prop-pulse{0%,to{opacity:.15}50%{opacity:.9}}@keyframes prop-glint{0%,92%{opacity:0}94%{opacity:1}97%{opacity:0}}.map .room-props .patrol{animation:prop-patrol calc(var(--d) * 18) linear infinite calc(var(--d) * 18 * var(--p) * -1)}.map .room-props .patrol .prop-body{animation:prop-in .5s steps(4) both, prop-hover calc(var(--d) * .8) steps(1) infinite}@keyframes prop-patrol{0%,14%{transform:none}24%,38%{transform:translateX(calc(var(--pw) * 17))}48%,62%{transform:translateX(calc(var(--pw) * 34))}72%,86%{transform:translateX(calc(var(--pw) * 17))}96%,to{transform:none}}@keyframes prop-hover{0%{translate:0}50%{translate:0 calc(var(--ph) * -1)}}.map .room-props .walk{animation:prop-walk calc(var(--d) * 12) steps(48) infinite calc(var(--d) * 12 * var(--p) * -1)}@keyframes prop-walk{0%{transform:translate(0)}48%{transform:translateX(calc(var(--pw) * 12))}50%{transform:translateX(calc(var(--pw) * 12)) scaleX(-1)}98%{transform:translate(0)scaleX(-1)}to{transform:translate(0)}}.map .room-props .drawn{clip-path:inset(0 var(--open) 0 0);animation:prop-draw calc(var(--d) * 16) ease-in-out infinite calc(var(--d) * 16 * var(--p) * -1)}@keyframes prop-draw{0%,30%{clip-path:inset(0 var(--open) 0 0)}40%,75%{clip-path:inset(0)}85%,to{clip-path:inset(0 var(--open) 0 0)}}.map .room-props .shake .prop-body{animation:prop-in .5s steps(4) both, prop-shake var(--cy) steps(1) infinite calc(var(--cy) * var(--p) * -1)}@keyframes prop-shake{0%,84%,to{translate:0}86%{translate:calc(var(--pw) * -.5) 0}88%{translate:calc(var(--pw) * .5) 0}90%{translate:0 calc(var(--ph) * -.5)}92%{translate:calc(var(--pw) * .5) 0}94%{translate:0}}.map .room-props .ring .prop-body{transform-origin:50% 0;animation:prop-in .5s steps(4) both, prop-ring var(--cy) ease-out infinite calc(var(--cy) * var(--p) * -1)}@keyframes prop-ring{0%,80%,to{rotate:0deg}83%{rotate:18deg}86%{rotate:-15deg}89%{rotate:10deg}92%{rotate:-6deg}95%{rotate:2deg}}.map .room-props .glow{background:radial-gradient(circle, var(--c) 0%, transparent 70%);mix-blend-mode:screen;pointer-events:none;opacity:.6;border-radius:50%;position:absolute}.map .room-props .beat-pulse{animation:prop-glow-pulse calc(var(--d) * 2.6) ease-in-out infinite calc(var(--d) * 2.6 * var(--p) * -1)}.map .room-props .beat-breathe{animation:prop-glow-pulse calc(var(--d) * 5) ease-in-out infinite calc(var(--d) * 5 * var(--p) * -1)}.map .room-props .beat-blink{animation:prop-glow-blink calc(var(--d) * 1.6) steps(1) infinite calc(var(--d) * 1.6 * var(--p) * -1)}.map .room-props .beat-flicker{animation:prop-glow-flicker calc(var(--d) * 1.9) steps(1) infinite calc(var(--d) * 1.9 * var(--p) * -1)}.map .room-props .beat-strobe{animation:prop-glow-strobe var(--cy) linear infinite calc(var(--cy) * var(--p) * -1)}@keyframes prop-glow-pulse{0%,to{opacity:.25}50%{opacity:.85}}@keyframes prop-glow-blink{0%{opacity:.9}50%{opacity:.1}}@keyframes prop-glow-flicker{0%{opacity:.7}13%{opacity:.25}21%{opacity:.9}37%{opacity:.4}52%{opacity:.8}66%{opacity:.3}80%{opacity:.95}}@keyframes prop-glow-strobe{0%,80%,to{opacity:.1}83%{opacity:1}87%{opacity:.3}90%{opacity:.9}95%{opacity:.2}}.map .room-props .beam{transform-origin:50% 0;background:linear-gradient(color-mix(in srgb, var(--c) 55%, transparent), transparent);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);mix-blend-mode:screen;pointer-events:none;rotate:var(--from);position:absolute}.map .room-props .move-pan{animation:prop-beam-pan calc(var(--d) * 7) ease-in-out infinite calc(var(--d) * 7 * var(--p) * -1)}.map .room-props .move-sweep{animation:prop-beam-sweep calc(var(--d) * 2.4) ease-in-out infinite alternate calc(var(--d) * 2.4 * var(--p) * -1)}.map .room-props .move-scan{opacity:0;animation:prop-beam-scan var(--cy) ease-in-out infinite calc(var(--cy) * var(--p) * -1)}.map .room-props .move-flash{opacity:0;animation:prop-beam-flash var(--cy) steps(1) infinite calc(var(--cy) * var(--p) * -1);rotate:0deg}.map .room-props .move-patrol{animation:prop-beam-patrol calc(var(--d) * 18) linear infinite calc(var(--d) * 18 * var(--p) * -1)}@keyframes prop-beam-pan{0%,40%{rotate:var(--from)}50%,90%{rotate:var(--to)}to{rotate:var(--from)}}@keyframes prop-beam-sweep{0%{rotate:var(--from)}to{rotate:var(--to)}}@keyframes prop-beam-scan{0%,78%,to{opacity:0;rotate:var(--from)}80%{opacity:1;rotate:var(--from)}88%{opacity:1;rotate:var(--to)}96%{opacity:1;rotate:var(--from)}98%{opacity:0}}@keyframes prop-beam-flash{0%,80%{opacity:0}82%,96%{opacity:1}}@keyframes prop-beam-patrol{0%{opacity:1;rotate:var(--from)}7%{rotate:var(--to)}14%{opacity:1;rotate:var(--from)}15%,23%{opacity:0}24%{opacity:1;rotate:var(--from)}31%{rotate:var(--to)}38%{opacity:1;rotate:var(--from)}39%,47%{opacity:0}48%{opacity:1;rotate:var(--from)}55%{rotate:var(--to)}62%{opacity:1;rotate:var(--from)}63%,71%{opacity:0}72%{opacity:1;rotate:var(--from)}79%{rotate:var(--to)}86%{opacity:1;rotate:var(--from)}87%,95%{opacity:0}96%,to{opacity:1;rotate:var(--from)}}.map .room-props .sheen .prop-body>svg:first-child{animation:prop-sheen var(--cy) ease-in-out infinite calc(var(--cy) * var(--p) * -1)}@keyframes prop-sheen{0%,82%,to{filter:brightness()}88%{filter:brightness(1.45)}94%{filter:brightness()}}.map .room-props .spin{animation:prop-frame-a calc(var(--d) * .4) steps(1) infinite}.map .room-props .busy .glow{opacity:1;animation-duration:calc(var(--d) * .6)}.map .room-props .bit{width:var(--pw);height:var(--ph);opacity:0;background:var(--c);position:absolute}.map .room-props .bit.shred{animation:prop-drop var(--cy) linear infinite}.map .room-props .bit.sparks{animation:prop-burst var(--cy) linear infinite}.map .room-props .bit.dust{animation:prop-drop var(--cy) linear infinite}.map .room-props .bit.embers{animation:prop-rise calc(var(--d) * 2.6) linear infinite}.map .room-props .bit.bubbles{width:calc(var(--pw) * .8);height:calc(var(--ph) * .8);animation:prop-rise calc(var(--d) * 2) linear infinite;border-radius:50%}.map .room-props .bit.steam{filter:blur(.6px);animation:prop-steam calc(var(--d) * 4.5) ease-out infinite;border-radius:50%}.map .room-props .busy .bit{animation-duration:calc(var(--d) * 1.2)}@keyframes prop-burst{0%,80%{opacity:0;transform:none}81%{opacity:1;transform:none}86%{opacity:1;transform:translate(calc(var(--dx) * 100%), calc(var(--dy) * 100%))}97%{opacity:1;transform:translate(calc(var(--dx) * 150%), calc(var(--fall) * 100%))}to{opacity:0;transform:translate(calc(var(--dx) * 150%), calc(var(--fall) * 100%))}}@keyframes prop-drop{0%,80%{opacity:0;transform:none}82%{opacity:1;transform:none}97%{opacity:1;transform:translate(calc(var(--dx) * 100%), calc(var(--dy) * 100%))}to{opacity:0;transform:translate(calc(var(--dx) * 100%), calc(var(--dy) * 100%))}}@keyframes prop-rise{0%{opacity:0;transform:none}10%{opacity:1}to{opacity:0;transform:translate(calc(var(--dx) * 100%), calc(var(--dy) * 100%))}}@keyframes prop-steam{0%{opacity:0;transform:scale(1)}15%{opacity:.55}to{opacity:0;transform:translate(calc(var(--dx) * 100%), calc(var(--dy) * 100%)) scale(3)}}.map.still .room-props *,.map.still .room-props .prop{animation:none!important}.map.still .room-props .bit,.map.still .room-props .move-scan,.map.still .room-props .move-flash,.map.still .room-props .move-patrol{opacity:0}@media (prefers-reduced-motion:reduce){.map .room-props *,.map .room-props .prop{animation:none!important}.map .room-props .bit,.map .room-props .move-scan,.map .room-props .move-flash,.map .room-props .move-patrol{opacity:0}}.w1-head .w1-sound{margin-left:auto}
