:root{color-scheme:dark;--paper:#e6e1d4;--gold:#c4ae76;--muted:#92938a;--line:#363830;--black:#10120f}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 35%,#34382f44,transparent 63%),#11130f;color:var(--paper);font-family:Arial,Helvetica,sans-serif;font-size:16px}body:before{position:fixed;inset:0;pointer-events:none;content:"";opacity:.10;background:repeating-linear-gradient(113deg,transparent 0 80px,#000 80px 120px);z-index:-1}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}header{height:80px;padding:0 4%;display:flex;align-items:center;border-bottom:1px solid #34362f;gap:32px}.brand{font-size:19px;letter-spacing:4px;color:var(--paper);text-decoration:none;font-weight:600;display:flex;align-items:center;gap:21px}.brand span{font-family:monospace;font-weight:400;font-size:12px;letter-spacing:2px;border-left:1px solid #5a5c52;padding-left:20px;color:var(--gold)}.edition{margin-left:auto;font-family:monospace;font-size:12px;letter-spacing:1.5px;color:#aaa99b}.edition span{margin-left:25px;color:#62665c}.top-actions{display:flex;gap:18px}.top-actions button{border:0;background:none;font:12px monospace;letter-spacing:1px;padding:8px}.top-actions b{font-weight:400;color:var(--gold);margin-left:6px}#help{border:1px solid #5d5e51;border-radius:50%;width:29px;height:29px;padding:0;font:16px Georgia}main{max-width:1500px;margin:auto;display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(250px,1fr);gap:clamp(25px,4vw,78px);padding:30px 4% 25px;align-items:center}.case-intro{max-width:330px;margin:auto}.eyebrow{font:11px monospace;letter-spacing:1.65px;color:var(--gold);line-height:1.7}.eyebrow i,.live-dot{display:inline-block;width:5px;height:5px;background:var(--gold);border-radius:50%;margin-right:8px}h1{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(64px,7.7vw,115px);font-weight:800;letter-spacing:-3px;line-height:.95;margin:28px 0 30px;text-shadow:1px 1px #fff1;transform:scaleY(1.06);transform-origin:left}h1 span{display:block;font:15px Georgia,serif;letter-spacing:4px;margin-top:16px;color:var(--gold)}.rule{width:38px;height:2px;background:var(--gold);margin-bottom:28px}.tagline{font:clamp(19px,1.8vw,25px)/1.5 Georgia,serif;margin-bottom:20px}.tagline em{color:var(--gold)}.synopsis{font-size:14px;line-height:1.8;color:#a1a395;max-width:280px}.case-file{position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:28px 0;padding:16px 0 8px}.small-label{font:10px monospace;letter-spacing:2px;color:var(--muted)}.file-no{float:right;color:#858b79;font:11px monospace;letter-spacing:1px}.case-file p{font:italic 15px/1.8 Georgia;color:#d2cdbc}.case-file p span{color:#7a8071}.desk-controls{display:grid;gap:12px}.desk-controls div{display:flex;gap:5px;align-items:center}.desk-controls span{font:10px monospace;letter-spacing:.5px;margin-left:7px;color:#96998b}kbd{display:inline-flex;min-width:27px;height:25px;align-items:center;justify-content:center;padding:0 6px;border:1px solid #4b4d43;box-shadow:0 2px #070907;font:11px monospace;color:#cbc9bc;background:#1b1e18;border-radius:3px}.inspired{margin-top:27px;font:12px/1.7 Georgia;color:#757c6c}.machine{width:clamp(370px,32vw,555px);background:linear-gradient(90deg,#0b0b09,#77796c 1%,#252923 2.8%,#22251f 97%,#77796c 99%,#0b0b09);padding:9px 12px 0;border:1px solid #6b6e5e;border-radius:7px 7px 18px 18px;box-shadow:0 20px 60px #000a,0 0 80px #d2cc9d08;align-self:center;position:relative}.backglass{height:clamp(110px,10vw,145px);position:relative;overflow:hidden;background:#0c0d0b;border:3px solid #080907;border-bottom:1px solid #777569}.backglass img{width:100%;height:100%;object-fit:cover;object-position:center 44%;filter:saturate(.9) contrast(1.05)}.backglass:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 50%,#ffffe015 51%,transparent 80%);box-shadow:inset 0 0 15px #0008}.glass-credit{position:absolute;bottom:0;left:0;right:0;background:#0a0b09e8;padding:5px 12px;font:9px monospace;letter-spacing:3px;color:#d4cdb6;display:flex;justify-content:space-between}.glass-credit span{font-size:8px;color:#b7a676}.screw{position:absolute;top:7px;width:5px;height:5px;background:linear-gradient(45deg,#7b7b6d 45%,#111 46% 56%,#77786b 57%);border-radius:50%}.screw.a{left:7px}.screw.b{right:7px}.scoreboard{background:#10110b;display:grid;grid-template-columns:2.2fr 1fr 1.2fr 1fr;padding:10px 10px 9px;border:3px solid #070906;border-top:1px solid #605e4c;box-shadow:inset 0 0 16px #000;gap:8px}.scoreboard>div{display:flex;flex-direction:column;gap:3px}.scoreboard span{font:8px monospace;letter-spacing:1.3px;color:#968d6d}.scoreboard strong{font:18px 'Courier New',monospace;font-weight:700;color:#e7bc71;text-shadow:0 0 8px #efab4550;font-variant-numeric:tabular-nums}.scoreboard .score-main strong{font-size:25px;line-height:1}.playfield{position:relative;border:3px solid #10120e;border-top:0;overflow:hidden;background:#1a1f19}canvas{display:block;width:100%;height:auto;touch-action:none;aspect-ratio:640/940}.apron{height:32px;display:flex;gap:8px;align-items:center;justify-content:space-around;border-top:1px solid #73735c;color:#a7a58f;font:7px monospace;letter-spacing:1px}.ball-save{color:#d9cba6;opacity:.22}.ball-save.active{opacity:1;text-shadow:0 0 9px #e6d9a6}.start-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(0deg,#080b08b8,#080b0840 80%);backdrop-filter:blur(1px)}.start-overlay[hidden]{display:none}.overlay-card{width:83%;text-align:center;padding:28px 10px 25px;border-top:1px solid #b8af8888;border-bottom:1px solid #b8af8888;background:linear-gradient(90deg,transparent,#0b0e0bec 10% 90%,transparent)}.overlay-card .small-label{color:#b3a987;font-size:8px;letter-spacing:1.4px}.overlay-card h2{font:36px/.98 Impact,'Arial Narrow',sans-serif;letter-spacing:1px;margin:24px 0 15px}.overlay-card p{font:italic 17px/1.55 Georgia;color:#c4c0ae;margin:0 0 22px}.overlay-card button,#helpDone,#resume{background:var(--gold);color:#181b13;border:1px solid #e0cb99;padding:15px 20px;font:11px monospace;letter-spacing:1px;font-weight:bold}.overlay-card button span{margin-left:25px}.space-hint{display:block;margin-top:14px;font:9px monospace;letter-spacing:1.4px;color:#a6a594}.paused{position:absolute;inset:0;background:#090b08d9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;font:18px Georgia}.paused[hidden]{display:none}.investigation{max-width:310px;margin:auto}.status-heading{display:flex;justify-content:space-between;align-items:center}.live-dot{box-shadow:0 0 6px #d7be7477;margin-right:0}.investigation h2{font:23px Impact,'Arial Narrow',sans-serif;letter-spacing:1px;margin:17px 0 9px}.investigation>p{font:13px/1.7 Georgia;color:#959b88;margin-top:0;max-width:250px;min-height:44px}.objectives{list-style:none;margin:22px 0 0;padding:0}.objectives li{display:flex;gap:12px;align-items:center;border-top:1px solid var(--line);padding:18px 0}.objective-icon{font:10px monospace;color:#686f5b}.objectives li div{flex:1}.objectives strong{display:block;font-size:13px;font-weight:400;color:#d1d2c3}.objectives li div span{display:block;font:10px/1.5 monospace;color:#777f6c;margin-top:6px}.objectives b{font-size:17px;font-weight:normal;color:#767e67}.objectives li.done b,.objectives li.done strong{color:var(--gold)}.objectives li.done .objective-icon{color:var(--gold)}.final-lock{display:flex;align-items:center;gap:13px;border:1px solid #54573d;margin-top:5px;padding:14px 12px;color:#b6a770;background:#a8a06107}.final-lock svg{width:31px}.final-lock span{font:17px Impact,'Arial Narrow',sans-serif;letter-spacing:2px}.final-lock small{display:block;font:8px monospace;letter-spacing:.5px;margin-top:5px;color:#7f856e}.final-lock.ready{box-shadow:0 0 18px #e8c17715;border-color:#dac482}.final-lock.ready small{color:#dbc68e}.ticker{margin-top:26px}.ticker p{min-height:43px;font:italic 14px/1.55 Georgia;color:#b3b7a4;margin-top:10px}.high-score{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-top:20px;margin-top:20px}.high-score>span{font:9px monospace;letter-spacing:1.4px;color:#a6aa97}.high-score small{display:block;font:7px monospace;color:#686f5d;margin-top:5px}.high-score strong{font:21px 'Courier New',monospace;font-weight:400;color:#b8b291}.pause-button{background:none;border:0;color:#929780;font:9px monospace;letter-spacing:1.5px;padding:0;margin-top:22px}footer{max-width:1500px;margin:auto;padding:0 4% 20px;display:flex;justify-content:space-between;color:#646b59;font:9px monospace;letter-spacing:1.6px}.mobile-controls{display:flex;border-top:1px solid #454839;margin:0 -7px;padding:5px 2px 9px;gap:5px}.mobile-controls button{flex:1;height:35px;background:linear-gradient(#303529,#20251c);border:1px solid #64694e;border-radius:3px;color:#ccc5a6;font:10px monospace;user-select:none;touch-action:none}.mobile-controls button span{font-size:8px}#launch{color:#e6d2a2}#nudge{flex:.7}.mobile-controls button.held{background:#90835b;color:#111}.close{position:absolute;right:16px;top:12px;background:none;border:0;font-size:28px}dialog{max-width:590px;width:90%;background:#1b1e17;color:var(--paper);border:1px solid #827853;padding:35px;max-height:85svh;line-height:1.65}dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}dialog h2{font:28px Georgia;margin:12px 0}dialog p,dialog dd{font-size:14px;color:#babdac}dialog dt{color:#d6c99f;font:17px Georgia;margin-top:20px}dialog dd{margin:5px 0}#helpDone{margin-top:20px}
@media(min-width:1200px) and (max-height:950px){main{padding-top:22px;gap:4vw}.machine{width:min(32vw,calc((100svh - 255px)*.681))}.backglass{height:110px}.case-file{margin:20px 0}.objectives li{padding:13px 0}.investigation h2{font-size:21px}.ticker{margin-top:20px}header{height:67px}.overlay-card h2{font-size:31px}}
@media(max-width:1100px){main{grid-template-columns:1fr auto;gap:30px;padding:25px}.case-intro{display:none}.machine{width:min(56vw,510px);grid-column:1;grid-row:1}.investigation{grid-column:2;grid-row:1;max-width:270px}.edition{display:none}.top-actions{margin-left:auto}header{padding:0 25px}.backglass{height:125px}}
@media(max-width:700px){header{height:62px;padding:0 16px;gap:10px}.brand{font-size:14px;letter-spacing:2px;gap:12px}.brand span{font-size:8px;letter-spacing:1px;padding-left:12px}.top-actions{gap:4px}.top-actions button{font-size:9px}main{display:flex;flex-direction:column;padding:15px 10px;gap:26px}.machine{width:min(100%,460px);padding:7px 8px 0}.backglass{height:105px}.scoreboard{padding:8px;gap:5px}.scoreboard strong{font-size:17px}.scoreboard span{font-size:7px}.scoreboard .score-main strong{font-size:23px}.investigation{width:min(100%,430px);max-width:none;padding:0 10px}.investigation>p{max-width:none;min-height:0}.objectives{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;margin-top:10px}.objectives li{padding:13px 0;gap:7px}.objectives li:last-child{grid-column:1/-1}.objectives strong{font-size:12px}.objectives li div span{font-size:9px}.final-lock{margin-top:5px}.ticker{margin-top:20px}.high-score{margin-top:12px}.mobile-controls{position:sticky;bottom:0;z-index:5;background:#24281e;padding:7px 4px 10px}.mobile-controls button{height:47px;font-size:11px}.apron{font-size:6px}.pause-button{font-size:11px;padding:5px 0}footer{font-size:7px;padding:10px 20px 20px}footer span:nth-child(2){display:none}.overlay-card{padding:22px 8px}.overlay-card h2{font-size:34px}.overlay-card button{padding:15px}.top-actions #help{width:26px;height:26px}.backglass img{object-position:center 45%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* The entire game fits the normal browser view automatically. */
header{height:42px;padding:0 16px;gap:16px}
.brand{font-size:14px;letter-spacing:2px}
.brand span{font-size:9px}
.edition{display:none}
.top-actions{margin-left:auto;gap:8px}
main{display:grid;max-width:none;grid-template-columns:minmax(0,1fr);gap:28px;padding:6px 4px 24px;justify-items:center;align-items:start}
.case-intro{display:none}
.machine{grid-column:1;grid-row:1;flex:none;width:min(100%,calc((var(--game-viewport,100svh) - 180px - env(safe-area-inset-bottom,0px))*.68085 + 20px));padding:3px 6px 0;border-radius:4px 4px 12px 12px}
.backglass{display:none}
.scoreboard{height:43px;padding:5px 8px;gap:6px}
.scoreboard .score-main strong{font-size:23px}
.scoreboard strong{font-size:17px}
.apron{height:18px}
.mobile-controls{position:static;height:50px;padding:4px 2px;margin:0;background:#24281e}
.mobile-controls button{height:41px;font-size:11px}
.mobile-controls button span{font-size:9px}
.investigation{grid-column:1;grid-row:2;max-width:820px;width:100%;margin:0;padding:0 16px}
.investigation>p{max-width:none;min-height:0}
.objectives{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.objectives li:last-child{grid-column:1/-1}
@media(min-width:1300px){.backglass{display:block;position:absolute;right:calc(100% + 24px);top:0;width:230px;height:170px}.backglass img{object-position:50% 50%}}
@media(max-width:700px){header{height:42px;padding:0 10px}.brand span{display:none}.top-actions{gap:3px}.objectives{column-gap:15px}.overlay-card{padding:14px 8px}.overlay-card h2{font-size:30px;margin:14px 0 10px}.overlay-card p{font-size:15px;margin-bottom:14px}.overlay-card button{padding:12px}.space-hint{margin-top:9px}}
@media(max-height:600px){.overlay-card{padding:10px 6px}.overlay-card .small-label,.overlay-card p,.space-hint{display:none}.overlay-card h2{font-size:24px;margin:8px 0 12px}.overlay-card button{padding:10px;font-size:10px}.overlay-card button span{margin-left:6px}.scoreboard span{letter-spacing:0}.mobile-controls button span{display:none}.apron>span{display:none}}

/* Restrained vintage color accents complement the monochrome city. */
:root{--gold:#d5b475}
body{background:radial-gradient(ellipse at 15% 35%,#7f403017,transparent 50%),radial-gradient(ellipse at 85% 50%,#3d7b9a1b,transparent 50%),#111310}
#leftFlipper{border-color:#a8685e;background:linear-gradient(#4e302c,#2d211f)}
#rightFlipper{border-color:#5c90aa;background:linear-gradient(#29434f,#1b2c34)}
#leftFlipper.held{background:#ae6558}#rightFlipper.held{background:#5b98b6}
#launch{border-color:#b99a5e;background:linear-gradient(#50432a,#2c281c)}
#obj-sf .objective-icon,#obj-sf.done strong{color:#d77b70}
#obj-la .objective-icon,#obj-la.done strong{color:#77b6d8}
#obj-poison.done strong,.ball-save.active{color:#8bd4ad}
