:root{--navy:#061936;--blue:#0b60b5;--win:#c0c0c0;--lime:#5eff65;--amber:#ffd82f;--red:#c62323;--ink:#0b0b0b}*{box-sizing:border-box}html{min-height:100%;background:#05080e}body{margin:0;min-height:100vh;padding:16px;background:radial-gradient(circle at 50% 20%,#233347 0,#101722 38%,#030507 100%);color:#111;font-family:"Courier New",monospace}.game-shell{position:relative;width:min(1100px,100%);margin:auto;background:var(--win);border:3px outset #eee;box-shadow:0 16px 60px #000;overflow:hidden}.titlebar{display:flex;align-items:center;justify-content:space-between;padding:5px 6px;background:linear-gradient(90deg,#000080,#1084d0);color:#fff;font-weight:bold}.titlebar-name{display:flex;align-items:center;gap:7px}.bank-icon{display:inline-grid;place-items:center;width:20px;height:20px;background:#ffd82f;color:#111;border:1px solid white}.close-button{display:grid;place-items:center;width:25px;height:23px;background:#c0c0c0;border:2px outset white;color:#000;text-decoration:none;font:bold 18px Arial}.intro-panel{padding:15px 20px 13px;border-bottom:2px groove white;background:#d7dce2}.preview-label{display:inline-block;margin:0 0 8px;padding:3px 7px;background:#fff3a5;border:1px solid #827400;font-size:11px}.intro-panel h1{margin:0 0 8px;color:#001b55;font:900 clamp(24px,4vw,42px)/1 Arial,sans-serif;letter-spacing:-1px}.intro-panel p{margin:5px 0;font-family:Arial,sans-serif}.status-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:8px;background:#111a25;color:#9ba9b6}.status-strip>div{padding:6px 10px;border:1px solid #35495b;background:#081019}.status-strip span{display:block;font-size:10px}.status-strip output{display:block;margin-top:4px;color:var(--lime);font-weight:bold;font-size:19px}.bank-scene{position:relative;height:440px;overflow:hidden;background:#9aa8ab;border:3px inset #eee}.office-wall{height:155px;background:linear-gradient(#d8d0ba,#bcb39d);border-bottom:8px solid #7a5639}.poster{position:absolute;top:30px;left:7%;padding:10px 15px;text-align:center;background:#f2ead1;border:8px solid #4d321d;box-shadow:3px 4px #0005;color:#102e55;font:bold 16px Georgia,serif;transform:rotate(-1deg)}.poster small{font:10px "Courier New",monospace;color:#222}.clock{position:absolute;top:22px;right:8%;width:70px;height:70px;border-radius:50%;background:#f4f1df;border:7px solid #684d35;box-shadow:2px 3px #0004}.clock span,.clock i{content:"";position:absolute;left:27px;top:8px;width:3px;height:22px;background:#222;transform-origin:bottom}.clock span{transform:rotate(23deg)}.clock i{transform:rotate(120deg);height:25px}.coffee{position:absolute;right:23%;top:44px;width:88px;height:90px;padding:12px 8px;background:#565c5c;border:3px outset #aaa;color:#fff;text-align:center;box-shadow:3px 4px #0004}.coffee b,.coffee small{display:block}.coffee-light{display:block;width:12px;height:12px;margin:8px auto;background:#39e850;border-radius:50%;box-shadow:0 0 9px #39e850}.coffee.off .coffee-light{background:#511;box-shadow:none}.desk{position:absolute;left:11%;right:11%;bottom:0;height:285px;background:linear-gradient(90deg,#85603e,#b98a59 20%,#966945 80%,#724c31);border-top:14px solid #633e27;box-shadow:0 -5px 12px #0005}.monitor{position:absolute;left:50%;top:-114px;width:430px;max-width:68%;transform:translateX(-50%)}.monitor-frame{padding:16px 18px 24px;background:#d1d0c6;border:5px outset white;border-radius:10px 10px 18px 18px;box-shadow:7px 8px 10px #0006}.monitor-screen{position:relative;height:220px;overflow:hidden;background:#d8d8d8;border:8px inset #ddd;font-family:Arial,sans-serif}.bank-app-title{display:flex;justify-content:space-between;padding:4px 7px;background:#000080;color:#fff;font:bold 11px Arial}.bank-app-title span{font-weight:normal}.bank-form{padding:8px}.bank-form label{display:grid;grid-template-columns:130px 1fr;align-items:center;margin:5px 0;font-size:10px}.bank-form input{width:100%;padding:4px;border:2px inset white;background:#fff;font:12px "Courier New",monospace}.transfer-row{display:flex;justify-content:flex-end;gap:6px;margin-top:7px}.transfer-row button{padding:4px 11px}.progress-box{margin:0 8px;padding:6px;background:#eee;border:2px inset #fff}.progress-label{display:flex;justify-content:space-between;font-size:9px}.progress-track{height:14px;margin-top:4px;border:2px inset white;background:#fff}.progress-track div{height:100%;width:0;background:repeating-linear-gradient(90deg,#000080 0 11px,#2a85d0 11px 14px)}.remote-cursor{position:absolute;left:18px;top:50px;z-index:4;color:#000;font-size:27px;line-height:1;filter:drop-shadow(1px 1px white);transform:rotate(-25deg);transition:left .55s cubic-bezier(.2,.8,.3,1),top .55s cubic-bezier(.2,.8,.3,1)}.screen-off{position:absolute;inset:22px 16px;z-index:5;display:none;place-items:center;background:#050505;color:#fff;text-align:center;font:bold 18px "Courier New",monospace}.screen-off small{font-size:11px}.monitor.off .screen-off{display:grid}.monitor-neck{width:72px;height:27px;margin:auto;background:#b8b7ad}.monitor-foot{width:150px;height:13px;margin:auto;background:#c7c6bc;border:3px outset white}.keyboard{position:absolute;left:50%;bottom:24px;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;width:300px;max-width:60%;padding:10px;transform:translateX(-50%) perspective(100px) rotateX(5deg);background:#c8c7bd;border:4px outset white}.keyboard span{height:10px;background:#aaa;border:1px outset white}.under-desk-button{position:absolute;left:12px;bottom:14px;padding:10px 12px;background:#c0c0c0;border:3px outset white;font:bold 12px "Courier New",monospace}.under-desk-button:active{border-style:inset}.scene-message{position:absolute;left:10px;right:10px;top:10px;z-index:8;padding:7px 10px;background:#fff8c9;border:2px solid #705b00;text-align:center;font-weight:bold}.alarm-light{position:absolute;right:20px;top:177px;width:25px;height:25px;border-radius:50%;background:#681414;border:4px solid #333}.alarm .alarm-light{background:red;box-shadow:0 0 25px 12px red;animation:flash .25s infinite alternate}.alarm{animation:scene-flash .5s 4}.cable-panel{background:#171513;border:5px inset #777;color:#eee}.cable-title{display:flex;justify-content:space-between;padding:8px 12px;background:#31302d;border-bottom:1px solid #777}.cable-title span{font-size:12px;color:#ffe66b}.cable-board{position:relative;height:360px;overflow:hidden;background:radial-gradient(circle at 50% 30%,#3b3933,#171513 65%)}.device-list,.plug-list{position:absolute;left:2%;right:2%;z-index:3;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.device-list{top:13px}.plug-list{bottom:12px}.device{min-height:58px;padding:8px 4px;background:#777;border:3px outset #aaa;color:#111;text-align:center;font:bold 11px Arial}.device.remote{background:#181818;color:#56ff5b;border-color:#777;text-shadow:0 0 5px #2f5}.device small{display:block;margin-top:4px;font:9px "Courier New",monospace}.plug{position:relative;min-height:55px;padding:26px 3px 4px;background:#aaa;border:3px outset #ddd;font:bold 10px Arial;cursor:pointer}.plug:before{content:"";position:absolute;left:50%;top:5px;width:22px;height:17px;transform:translateX(-50%);background:#222;border:4px solid #777;border-radius:3px}.plug:hover,.plug:focus{outline:3px solid #ffe75b;outline-offset:2px}.plug.pulled{opacity:.35;text-decoration:line-through}#cable-svg{position:absolute;inset:66px 0 70px;width:100%;height:224px;z-index:2}#cable-svg path{fill:none;stroke-width:12;stroke-linecap:round;stroke-linejoin:round;transition:opacity .2s}#cable-svg path.cut{opacity:.16;stroke-dasharray:12 12}.game-controls{display:flex;justify-content:center;gap:12px;padding:12px;border-top:2px outset white}.game-controls button,.result-window button,.dialog-body button{padding:10px 18px;border:3px outset white;background:#c0c0c0;font:bold 13px "Courier New",monospace}.start-button{background:#fff06a!important}.result-panel{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:15px;background:#000b}.result-panel[hidden]{display:none}.result-window{width:min(560px,100%);padding:3px;background:#c0c0c0;border:4px outset white;box-shadow:12px 14px #0007;text-align:center}.result-window h2{margin:0;padding:8px;background:linear-gradient(90deg,#000080,#1084d0);color:white;text-align:left;font-size:18px}.result-window p{padding:0 15px}.result-money{color:#005800;font:bold clamp(25px,5vw,42px) Arial}.result-window dl{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:15px}.result-window dl div{padding:8px;background:#ddd;border:2px inset white}.result-window dt{font-size:9px}.result-window dd{margin:5px 0 0;font-weight:bold}.result-window button{margin:5px 0 15px}dialog{width:min(520px,calc(100% - 20px));padding:3px;border:4px outset white;background:#c0c0c0;box-shadow:10px 12px #0008}dialog::backdrop{background:#0009}.dialog-title{display:flex;justify-content:space-between;align-items:center;padding:5px 7px;background:#000080;color:#fff;font-weight:bold}.dialog-title button{width:24px;height:22px;padding:0}.dialog-body{padding:12px;font-family:Arial,sans-serif}.dialog-body li{margin:7px 0}.memory-card,.abort-terminal{position:absolute;inset:23px 12px 8px;z-index:6;border:3px inset #888;background:#001400;color:#67ff67;font-family:"Courier New",monospace}.memory-card[hidden],.abort-terminal[hidden]{display:none}.memory-card{display:grid;place-content:center;gap:7px;text-align:center}.memory-card small{font-size:10px}.memory-card strong{font-size:48px;letter-spacing:12px;text-shadow:0 0 9px #3f6}.memory-card span{color:#d8ffd8;font-size:10px}.abort-terminal{padding:5px 8px;text-align:center}.abort-terminal h3{margin:0 0 2px;font-size:14px}.abort-terminal p{margin:2px auto 4px;max-width:340px;font-size:9px}.abort-terminal output{display:block;margin:2px auto 4px;color:#fff;font:bold 24px "Courier New",monospace;letter-spacing:5px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;width:min(230px,100%);margin:auto}.keypad button{min-height:23px;padding:1px 3px;border:2px outset white;background:#c0c0c0;color:#000;font:bold 11px Arial}.keypad button:active{border-style:inset}.keypad #code-confirm{background:#db3b32;color:#fff}.abort-terminal>small{display:block;margin-top:3px;font-size:8px;color:#ffe75b}footer{padding:7px 12px;background:#0c1520;color:#85919d;font-size:10px;text-align:center}@keyframes flash{to{background:#fff;box-shadow:0 0 30px 15px #fff}}@keyframes scene-flash{50%{filter:sepia(1) hue-rotate(-35deg) saturate(5)}}@media(max-width:700px){body{padding:0}.game-shell{border-width:0}.intro-panel{padding:12px}.intro-panel p{font-size:13px}.status-strip{grid-template-columns:repeat(2,1fr)}.status-strip output{font-size:16px}.bank-scene{height:400px}.office-wall{height:120px}.poster{left:3%;top:20px;font-size:12px}.coffee{right:4%;top:25px}.desk{left:3%;right:3%;height:270px}.monitor{top:-85px;width:410px;max-width:94%}.monitor-frame{padding:9px 9px 17px}.monitor-screen{height:205px}.bank-form label{grid-template-columns:95px 1fr}.keyboard{bottom:42px}.under-desk-button{left:50%;bottom:4px;width:92%;transform:translateX(-50%)}.cable-board{height:390px}.device-list,.plug-list{left:1%;right:1%;gap:3px}.device{padding:7px 2px;font-size:8px}.device small{font-size:7px}#cable-svg path{stroke-width:15}.plug{font-size:8px}.cable-title{display:block}.cable-title span{display:block;margin-top:3px}.game-controls{flex-direction:column;padding:9px}.game-controls button{width:100%}.result-window dl{grid-template-columns:1fr}.result-window dl div{display:flex;justify-content:space-between}.result-window dd{margin:0}.bank-app-title span{display:none}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.case-file{margin:0 12px 14px;border:3px inset #eee;background:#e8e5dc}.case-file-title{display:flex;align-items:center;gap:14px;padding:7px 10px;background:linear-gradient(90deg,#552000,#a44b09);color:#fff}.case-file-title span{padding:3px 6px;background:#ffd82f;color:#251000;font-size:10px;font-weight:bold}.case-file-title strong{font-size:16px}.case-file-body{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:14px;padding:14px}.case-story{font:15px/1.45 Arial,sans-serif}.case-story p{margin:0 0 10px}.case-story p:last-child{margin-bottom:0}.case-factcheck{padding:11px 12px;background:#d3dae2;border:2px inset #fff;font:13px/1.4 Arial,sans-serif}.case-factcheck h2{margin:0 0 8px;color:#001b55;font:bold 16px "Courier New",monospace}.case-factcheck p{margin:7px 0}.case-sources{padding-top:7px;border-top:1px solid #89939d}.case-sources a{color:#000080;font-weight:bold}.case-sources a:hover{background:#000080;color:#fff}@media(max-width:700px){.case-file{margin:0 7px 10px}.case-file-title{display:block}.case-file-title strong{display:block;margin-top:6px}.case-file-body{grid-template-columns:1fr;padding:10px}.case-story{font-size:14px}}.result-window.police-alert{position:relative;animation:police-window .42s steps(1,end) infinite}.result-window.police-alert:before{content:"BLÅLJUS · ENHET PÅ VÄG · BLÅLJUS";display:block;padding:7px 8px;background:#073cff;color:#fff;border:3px inset #fff;font:bold 12px "Courier New",monospace;letter-spacing:1px;text-shadow:1px 1px #000;animation:police-bar .42s steps(1,end) infinite}@keyframes police-window{0%,49%{box-shadow:0 0 45px 18px #075cff,12px 14px #0007}50%,100%{box-shadow:0 0 45px 18px #e00018,12px 14px #0007}}@keyframes police-bar{0%,49%{background:#073cff;color:#fff}50%,100%{background:#e00018;color:#fff}}.abort-terminal{padding:3px 7px}.abort-terminal h3{font-size:12px;line-height:1;margin:0 0 1px}.abort-terminal p{font-size:8px;line-height:1.1;margin:1px auto 2px}.abort-terminal output{font-size:21px;line-height:1;margin:1px auto 3px}.keypad{gap:2px}.keypad button{min-height:18px;line-height:1;padding:1px 3px}.abort-terminal>small{margin-top:2px;font-size:7px;line-height:1}.trace-start{cursor:grab;touch-action:none;user-select:none}.trace-start:active,.trace-start.tracing{cursor:grabbing;outline:3px solid #fff;outline-offset:2px}.plug[aria-disabled="true"]{cursor:default;pointer-events:none}.plug[aria-disabled="true"]:hover{outline:none}.trace-probe{position:absolute;z-index:7;width:30px;height:30px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;background:#ff303055;box-shadow:0 0 0 3px #111,0 0 12px #ff3030;pointer-events:none}.trace-probe span{position:absolute;inset:8px;border-radius:50%;background:#fff}.trace-probe.warning{border-color:#ffe12e;background:#ff000099;box-shadow:0 0 0 3px #111,0 0 16px #ff0000}.trace-probe.warning span{background:#ffe12e}@media(max-width:700px){.trace-probe{width:38px;height:38px}.trace-probe span{inset:11px}}#cable-svg .cable-outline{stroke-width:19}#cable-svg .cable-core{stroke-width:11}#cable-svg .cable-marker{stroke-width:11;stroke-dasharray:9 200;stroke-linecap:round}#cable-svg .cable.cut path{opacity:.16;stroke-dasharray:12 12}@media(max-width:700px){#cable-svg .cable-outline{stroke-width:23}#cable-svg .cable-core{stroke-width:14}#cable-svg .cable-marker{stroke-width:14;stroke-dasharray:10 200}}.denied-stamp[hidden]{display:none}.denied-stamp{position:absolute;left:50%;top:50%;z-index:12;width:88%;padding:13px 8px;transform:translate(-50%,-50%) rotate(-4deg);background:#c90000;color:#fff;border:5px double #fff;text-align:center;font:900 30px/1 "Courier New",monospace;letter-spacing:2px;text-shadow:2px 2px #500;box-shadow:5px 6px #0008;animation:denied-pop .18s steps(2,end)}.denied-stamp small{font-size:10px;letter-spacing:0}.monitor.abort-denied{animation:abort-shake .55s steps(2,end) 2}@keyframes denied-pop{0%{transform:translate(-50%,-50%) rotate(-4deg) scale(1.7)}100%{transform:translate(-50%,-50%) rotate(-4deg) scale(1)}}@keyframes abort-shake{0%,100%{margin-left:0}15%{margin-left:-12px}30%{margin-left:10px}45%{margin-left:-8px}60%{margin-left:7px}75%{margin-left:-4px}90%{margin-left:3px}}@media(max-width:700px){.denied-stamp{font-size:23px;padding:10px 5px}}
/* Highscore form */
.score-form[hidden]{display:none}.score-form{margin:12px 15px 6px;padding:10px;background:#ddd;border:2px inset #fff;text-align:left}.score-form label{display:block;margin-bottom:6px;font-weight:bold}.score-save-row{display:flex;gap:6px}.score-save-row input{min-width:0;flex:1;padding:8px;border:2px inset #fff;font:14px "Courier New",monospace}.score-save-row button{margin:0;padding:7px 10px}.score-form small{display:block;margin-top:6px}.score-form #score-status{margin:7px 0 0;padding:0;font-weight:bold}.score-form.is-saved{background:#cfe8cf}.score-form.is-error #score-status{color:#8b0000}@media(max-width:700px){.score-save-row{display:block}.score-save-row input,.score-save-row button{width:100%}.score-save-row button{margin-top:6px}}
