:root{color-scheme:dark;--bg:#0a0812;--ink:#f5eddf;--muted:#ae9fbb;--gold:#ffe546;--pink:#ff62b5;--line:#3c2a50}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Arial,sans-serif}button,a,canvas{touch-action:manipulation}button{font:inherit;color:var(--ink);background:#21152c;border:1px solid #523666;padding:9px 14px;border-radius:3px;cursor:pointer}button:hover{color:var(--gold);border-color:var(--gold)}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:3px}a{color:var(--gold);text-decoration:none}h1,h2,p{margin:0}button[hidden],[hidden]{display:none!important}header{display:flex;align-items:center;gap:30px;padding:16px 3vw;border-bottom:1px solid var(--line);background:linear-gradient(95deg,#1a1026,#0a0812)}.logo{font-size:25px;font-weight:900;letter-spacing:-1px;line-height:1}.logo em{display:block;font:italic 22px Georgia,serif;color:var(--pink);margin-top:5px;letter-spacing:0}.chapter{font:11px/1.5 monospace;letter-spacing:2px;color:var(--gold)}.chapter small{font-size:9px;color:var(--muted);letter-spacing:1px}header nav{display:flex;gap:8px;margin-left:auto;font-size:12px}#controlsButton{font-size:16px;padding:6px 14px}main{max-width:1730px;margin:auto;padding:18px 3vw 0}.location-bar{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:14px}.eyebrow{font:10px/1.6 monospace;letter-spacing:1.4px;text-transform:uppercase;color:var(--pink)}h1{font-size:clamp(21px,2.5vw,32px);letter-spacing:-.8px;line-height:1.2}.location-bar p{font-size:12px;max-width:340px;color:#cabbcd;text-align:right}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:25px}.world-stage{aspect-ratio:16/9;width:100%;position:relative;background:#0f0b1a;border:1px solid #5a3c74;overflow:hidden}canvas{display:block;width:100%;height:100%;outline-offset:-4px!important;cursor:crosshair}.npc-target,.portal-target,.map-target{position:absolute;background:transparent;border:1px solid transparent;padding:0;border-radius:3px}.npc-target span,.portal-target span,.map-target span{position:absolute;left:50%;top:0;transform:translateX(-50%);background:#0b0712e8;border:1px solid #aa872c;color:var(--gold);white-space:nowrap;padding:4px 7px;font:10px/1.25 Arial,sans-serif;opacity:0}.npc-target:hover,.npc-target:focus-visible{border-color:#ffe54680;background:#ffe54609}.npc-target:hover span,.npc-target:focus-visible span,.show-hints .npc-target span,.show-hints .portal-target span,.map-target span{opacity:1}.portal-target span{top:auto;bottom:0;border-color:#a85abe;color:#e2bef9}.portal-target:hover{border-color:#ca7bec}.map-target{width:30px;height:30px;border-radius:50%;transform:translate(-50%,-50%);background:#140d25c9;border:2px solid #d591ed;box-shadow:0 0 12px #b755e388}.map-target span{top:auto;bottom:32px;border-color:#b974d0;font-size:10px}.map-target.destination{border-color:var(--gold);box-shadow:0 0 15px #ffe54699}.map-target:nth-child(3n) span{left:auto;right:-12px;transform:none}.map-target:first-child span,.map-target:nth-child(3n + 1) span{left:-14px;transform:none}.show-hints .npc-target{border-color:#ffe5462e}#loadingPlate{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#0c0a15;color:var(--gold);font:18px monospace;z-index:8}#walkHint{position:absolute;left:18px;bottom:15px;max-width:calc(100% - 36px);font-size:11px;color:#f9efcf;background:#100b1de8;border-left:2px solid var(--gold);padding:7px 11px;pointer-events:none}#destinationPin{position:absolute;width:13px;height:7px;border:1px solid var(--gold);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.action-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:9px 0}.action-bar>span{font:11px monospace;color:#bfaaca}.action-bar>div{display:flex;gap:6px}.action-bar button{font-size:11px;padding:6px 10px}.action-bar button[aria-pressed=true]{color:var(--gold)}aside{padding:2px 0}aside h2{font:italic 27px Georgia,serif;color:var(--gold)}aside>p{font-size:12px;color:var(--muted);margin:6px 0 16px}.resident-button,.travel-button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0;font-size:13px}.resident-button strong,.travel-button strong{display:block}.resident-button small,.travel-button small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.resident-button.near small{color:var(--gold)}.travel-button.selected{color:var(--gold)}.pocket{border-top:1px solid var(--line);margin-top:22px;padding-top:15px}#inventoryList p{font-size:11px;margin-top:8px;color:#d0c1d5}.field-note{font-size:11px;color:#a995b4;line-height:1.6;margin-top:22px;border-left:2px solid #5a3c74;padding-left:12px}.dialogue-panel{padding:17px 20px;border:1px solid #845eac;margin-top:13px;background:linear-gradient(100deg,#22132d,#130e20)}.conversation-heading{display:flex;justify-content:space-between;align-items:center}.conversation-heading button{border:0;background:none;padding:0 6px;font-size:23px;color:#bd9bcf}.dialogue-panel>p{font:20px/1.45 Georgia,serif;margin:3px 0 17px;color:#fff4df}#conversationChoices{display:flex;flex-wrap:wrap;gap:8px}#conversationChoices button{font-size:12px;text-align:left;background:#251932}#conversationChoices .primary-choice{color:var(--gold);border-color:#84722e}footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:20px 0;font-size:10px;color:#8c7c99}footer a{color:#b7a3c8}dialog{padding:0;border:1px solid #795392;border-radius:7px;background:#100b1b;color:var(--ink);max-width:96vw;max-height:95vh;box-shadow:0 20px 100px #000d}dialog::backdrop{background:#05020bdf;backdrop-filter:blur(4px)}body:has(dialog[open]){overflow:hidden}#researchOverlay{width:96vw;height:95vh;overflow:hidden}#researchFrame{width:100%;height:100%;border:0;display:block}.frame-close{position:absolute;top:8px;right:12px;font-size:12px;z-index:4;color:var(--gold);background:#241925;border-color:#ac8244}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 19px;border-bottom:1px solid var(--line)}.dialog-top h2{font-size:18px}.dialog-top button{font-size:12px}#boardOverlay{width:1300px}#boardImage{display:block;width:100%;max-height:83vh;object-fit:contain;background:black}#helpOverlay{width:710px}.help-copy{padding:20px 24px}.help-copy p{margin-bottom:17px;font-size:14px;color:#dbcede}.help-copy b{color:var(--gold)}.help-copy .muted{color:var(--muted);font-size:12px}.help-copy #restartConfirm{color:var(--gold);margin-top:15px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1000px){.chapter{display:none}.game-layout{grid-template-columns:minmax(0,1fr) 205px;gap:18px}h1{font-size:24px}.location-bar p{font-size:11px;max-width:240px}.npc-target span,.portal-target span,.map-target span{font-size:8px}.action-bar button{font-size:10px;padding:5px 7px}.action-bar>span{font-size:10px}}
@media(max-width:740px){header{padding:14px;gap:10px}.logo{font-size:20px}.logo em{font-size:18px}header nav{gap:5px}header nav button{font-size:10px;padding:6px 8px}#controlsButton{font-size:13px;padding:4px 10px}main{padding:16px 12px 0}.location-bar{display:block}.location-bar p{text-align:left;max-width:none;margin-top:7px;font-size:11px}.game-layout{display:block}.world-stage{margin:0 -3px;width:calc(100% + 6px)}.npc-target span,.portal-target span{font-size:7px;padding:3px}.map-target{width:19px;height:19px}.map-target span{font-size:7px;bottom:22px;padding:3px}#walkHint{font-size:8px;left:7px;bottom:6px;padding:4px 6px}.action-bar{align-items:flex-start}.action-bar>div{flex-wrap:wrap;justify-content:flex-end}.action-bar>span{max-width:100px}aside{margin-top:20px}#residentList{display:flex;gap:12px;flex-wrap:wrap}.resident-button{width:calc(50% - 12px)}#travelList{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.pocket{margin-top:16px}#inventoryList{display:flex;gap:16px;flex-wrap:wrap}.dialogue-panel{padding:13px}.dialogue-panel>p{font-size:18px}#conversationChoices button{font-size:11px}.field-note{margin-top:14px}footer{font-size:9px}#researchOverlay{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0}.frame-close{top:7px;right:8px;font-size:10px;padding:6px 9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.music-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;margin:0 0 15px;background:#15101f;border:1px solid var(--line);border-radius:4px;font-size:11px}.music-now,.music-settings{display:flex;align-items:center;gap:12px}.music-now{min-width:0}.music-now button{font-size:11px;white-space:nowrap;padding:6px 11px}.music-now button[aria-pressed=true]{color:var(--gold);border-color:#96833d}.music-now span{color:#c7b8d3}.music-settings label{color:var(--muted)}.music-settings input{width:84px;accent-color:var(--gold);cursor:pointer}.music-settings output{min-width:28px;color:var(--gold);font-variant-numeric:tabular-nums}.music-settings select{max-width:190px;padding:6px 8px;font:11px Arial,sans-serif;color:var(--ink);background:#24182f;border:1px solid #58416b;border-radius:3px}.music-settings select:focus-visible,.music-settings input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media(max-width:740px){.music-bar{flex-wrap:wrap;padding:8px;gap:8px}.music-now{width:100%;justify-content:space-between}.music-now span{font-size:10px}.music-settings{width:100%;gap:8px}.music-settings select{flex:1;max-width:none;min-width:0}.music-settings input{width:70px}}

.case-journal{margin-top:22px;border:1px solid #49344f;background:#17101f;border-radius:5px;padding:12px}.case-journal summary{color:var(--gold);font-size:12px;font-weight:bold;cursor:pointer}.case-journal ol{padding:0;margin:16px 0;list-style:none}.case-journal li{display:flex;gap:9px;margin:13px 0;color:#9d8ba8;font-size:11px}.case-journal li>span{font:10px monospace;min-width:18px;margin-top:2px}.case-journal strong{font-size:11px;font-weight:normal}.case-journal small{display:block;font-size:9px;margin-top:3px}.case-journal .current{color:#ffcb7c}.case-journal .done{color:#91c9b2}.case-journal .done small{color:#9eaaab}.case-journal p{font-size:10px;color:#bdaac7;border-top:1px solid #49344f;padding-top:10px;margin-bottom:10px}.case-journal button{font-size:10px;padding:7px 9px;width:100%}#introOverlay{width:780px}.intro-art{padding:34px 34px 28px;background:linear-gradient(90deg,#140d23ee,#140d2388),url('world/assets/miami_map.png') center/cover}.intro-art h2{font-size:clamp(36px,7vw,58px);line-height:1;color:var(--gold);margin:20px 0}.intro-art h2 em{display:block;font:italic 32px Georgia,serif;color:var(--pink);margin-top:7px}.intro-art p{font:20px/1.5 Georgia,serif;color:#f9e1d4}.intro-body,.ending-body{padding:24px 34px}.intro-body p{font-size:14px;color:#d9cce1;margin-bottom:17px}.intro-body small{display:block;font-size:11px;line-height:1.5;color:#aa96b7}.intro-sound{font-size:13px}.intro-sound input{accent-color:var(--gold)}.intro-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.intro-actions button:first-child{color:#191021;background:var(--gold);border-color:var(--gold);font-weight:bold}.intro-actions button{font-size:13px}#endingOverlay{width:700px;background:linear-gradient(135deg,#241631,#100c20)}.ending-body h2{font-size:44px;line-height:1;color:var(--gold);margin:22px 0}.ending-body h3{font:italic 29px Georgia,serif;color:var(--pink);margin:16px 0}.ending-body #endingJoke{font:23px/1.5 Georgia,serif;margin:20px 0}.ending-body #endingSummary{font-size:13px;line-height:1.7;color:#c1accd}@media(max-width:740px){.intro-art,.intro-body,.ending-body{padding:24px}.intro-art p{font-size:18px}.case-journal ol{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.case-journal strong{font-size:12px}.case-journal small{font-size:10px}.ending-body h2{font-size:33px}}
