@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{color-scheme:dark;--bg:#0b151d;--panel:#13232c;--line:#34464e;--gold:#e9bd72;--text:#eff0e8;--muted:#a7b6bc}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 'DM Sans',Arial,sans-serif}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.4;cursor:not-allowed}[hidden]{display:none!important}a{color:inherit}#app{max-width:1440px;margin:auto;padding:0 35px}.hud{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);gap:20px}.wordmark{font-size:13px;letter-spacing:3px;text-decoration:none;font-weight:700}.wordmark span{display:block;font-size:9px;letter-spacing:2px;color:var(--gold);margin-top:4px}.hud-actions{display:flex;gap:8px}.hud-actions button,.rooms button,.text-button{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:5px;padding:9px 14px;font-size:12px}.hud-actions button:hover,.rooms button:hover{border-color:var(--gold)}#note-count{color:var(--gold)}.location-bar{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:20px 0}.location-bar span,.overline{font-size:10px;letter-spacing:2.5px;color:var(--gold)}h1{font:32px/1.2 'Libre Caslon Display',Georgia,serif;margin:6px 0}#objective{font-size:13px;color:var(--muted);max-width:420px;text-align:right;margin:0}.stage{position:relative;overflow:hidden;border:1px solid #485759;border-radius:8px;background:#060e15;isolation:isolate;aspect-ratio:16/9}#backdrop{display:block;width:100%;height:100%;object-fit:fill;transition:filter 1s;animation:arrive .65s ease}.stage.power-off #backdrop{filter:brightness(.68) saturate(.75)}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#071118c7,transparent 22%,transparent 85%,#07111844);box-shadow:inset 0 0 80px #05101955}.scene-caption{position:absolute;bottom:17px;left:22px;color:#e9e9df;font-size:12px;text-shadow:0 2px 5px #000}.point{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);border:0;background:transparent;color:#fff;display:flex;flex-direction:column;align-items:center;padding:7px;min-width:44px;min-height:44px}.point .orb{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#0a171cbb;border:1px solid #f2d4a0;box-shadow:0 0 0 5px #e9bd7222,0 0 25px #e9bd7244;font-size:17px;transition:.2s}.point:hover .orb,.point:focus-visible .orb{background:var(--gold);color:#12222b;transform:scale(1.15)}.point .point-label{margin-top:8px;background:#091821e8;padding:4px 10px;border-radius:4px;font-size:11px;white-space:nowrap;max-width:160px;box-shadow:0 2px 8px #0008}.point.done .orb{border-color:#8ac8ba;color:#8ac8ba}.rooms{display:flex;justify-content:center;gap:9px;padding:16px}.rooms button.active{background:var(--panel);border-color:var(--gold);color:var(--gold)}.bottom-bar{display:flex;align-items:center;gap:20px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:110px}.inventory-title{width:155px;flex-shrink:0}.inventory-title>span{font-size:10px;letter-spacing:2px;color:var(--gold)}.inventory-title small{display:block;font-size:11px;color:var(--muted);line-height:1.5;margin-top:5px}.inventory{display:flex;gap:10px;flex:1;flex-wrap:wrap}.item{background:#172a33;border:1px solid var(--line);border-radius:6px;color:var(--text);padding:8px 12px;min-width:80px;display:flex;align-items:center;gap:8px;font-size:11px}.item.selected{background:#3d3b2a;border-color:var(--gold)}.item.used{opacity:.55}.item svg{width:30px;height:30px;stroke:var(--gold);fill:none;stroke-width:1.7}.controls{font-size:11px;color:var(--muted);text-align:center;margin:13px 0 22px}.object-list{display:flex;flex-wrap:wrap;gap:8px;padding:15px;background:var(--panel)}.object-list button{background:transparent;border:1px solid var(--line);color:var(--text);padding:8px 12px;border-radius:5px}.toast{position:absolute;left:50%;bottom:60px;transform:translateX(-50%);max-width:85%;padding:11px 18px;border-radius:6px;background:#10262bf2;box-shadow:0 4px 25px #0008;color:#f1e5c8;text-align:center;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none}.toast.visible{opacity:1}.intro{position:fixed;inset:0;z-index:10;background:#09151d;overflow:auto}.intro-image{position:absolute;inset:0;background:url('assets/azotea.png') center/cover;animation:slowzoom 25s ease-out forwards}.intro-shade{position:absolute;inset:0;background:linear-gradient(90deg,#06121bf5 8%,#07151bd9 40%,#07151b33 100%)}.intro-content{position:relative;max-width:740px;padding:9vh 8vw}.series{font-size:11px;letter-spacing:4px;color:#c6cbc8;margin-top:30px}.intro h2{font:clamp(60px,7vw,102px)/.98 'Libre Caslon Display',Georgia,serif;letter-spacing:-2px;margin:20px 0 28px}.intro h2 em{color:var(--gold);font-weight:400}.intro-story{font-size:16px;line-height:1.9;color:#d0d7d6;max-width:490px}.gold-button{background:var(--gold);border:1px solid var(--gold);color:#12212b;padding:14px 24px;border-radius:5px;font-weight:700;display:inline-flex;gap:35px;align-items:center}.gold-button:hover{background:#f4d49c}.subtle{font-size:11px;color:var(--muted);margin-top:17px}dialog{color:var(--text);background:#13232c;border:1px solid #6e7668;border-radius:10px;padding:0;max-width:620px;width:calc(100% - 32px);max-height:88vh;box-shadow:0 25px 100px #000a}dialog::backdrop{background:#031016b8;backdrop-filter:blur(5px)}.modal-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:13px 22px}.modal-top>span{font-size:10px;letter-spacing:2px;color:var(--gold)}.modal-top button{background:transparent;border:0;color:var(--text);font-size:20px;padding:3px 7px}#modal-body,#ending-body{padding:25px 30px 30px}dialog h2{font:36px/1.1 'Libre Caslon Display',Georgia,serif;margin:0 0 18px}dialog p{color:#c5d0d1}dialog .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}dialog .actions button,.dialog-option{background:#213640;color:var(--text);border:1px solid #53656b;border-radius:5px;padding:11px 16px;text-align:left}.dialog-option{display:block;width:100%;margin-top:9px}.dialog-option:hover{border-color:var(--gold)}.artifact{background:#e9dfc7;color:#263a3c;padding:22px;transform:rotate(-1deg);border-radius:3px;margin:20px 0;font-family:Georgia,serif}.artifact p{color:inherit}.artifact .address{font-size:36px;letter-spacing:4px;border-top:1px solid #9e9e87;border-bottom:1px solid #9e9e87;padding:9px 0;margin:10px 0}.shift-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.shift-card{border:1px solid #697871;text-align:center;padding:12px 5px;background:#243b41;border-radius:5px}.shift-card span{display:block;font-size:30px;color:var(--gold)}.shift-card strong{font-size:26px}.shift-card small{display:block;color:var(--muted)}.dial-code{display:flex;gap:12px;justify-content:center;margin:22px}.dial-code input{width:64px;height:74px;background:#07161e;border:1px solid var(--gold);border-radius:7px;color:var(--gold);font-size:34px;text-align:center}.circuit{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:275px;margin:22px auto}.circuit button{height:70px;background:#101c24;border:1px solid #566971;color:#748890;border-radius:7px;font-size:24px}.circuit button.on{background:#e9bd72;color:#183038;box-shadow:0 0 18px #e9bd7238}.puzzle-label{font-size:12px;text-align:center;color:var(--muted)}.radio{border:1px solid #6b7f7b;border-radius:10px;background:#081820;padding:22px;margin:20px 0}.frequency{text-align:center;font:50px monospace;color:var(--gold);letter-spacing:4px}.radio input{width:100%;accent-color:var(--gold);margin:20px 0}.signal{height:40px;display:flex;align-items:center;justify-content:center;gap:5px}.signal i{width:4px;background:var(--gold);height:var(--h);border-radius:3px}.journal-entry{border-left:2px solid var(--gold);padding:3px 15px;margin:20px 0}.journal-entry h3{font-size:15px;margin:0}.journal-entry p{font-size:13px;margin:6px 0}.ending-art{width:calc(100% + 60px);margin:-25px -30px 22px;max-height:240px;object-fit:cover}.ending-kicker{letter-spacing:3px;font-size:10px;color:var(--gold)}footer{max-width:1440px;margin:0 auto;padding:14px 35px;font-size:10px;color:#83969c;border-top:1px solid #23353d}.intercom{display:flex;gap:17px;align-items:flex-start}.avatar{width:65px;height:65px;border:1px solid #526a70;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:#223d43;color:var(--gold);font:28px Georgia}.speech{font:18px/1.65 Georgia,serif}.stage.flash:after{content:'';position:absolute;inset:0;background:#f9e4aa;animation:flash .7s forwards;pointer-events:none}.progress-stripe{height:3px;background:linear-gradient(90deg,var(--gold) var(--progress),#25383e var(--progress));margin-bottom:15px}
@keyframes arrive{from{opacity:.3;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@keyframes slowzoom{from{transform:scale(1)}to{transform:scale(1.09)}}@keyframes flash{from{opacity:.6}to{opacity:0}}
@media(max-width:700px){#app{padding:0 12px}.hud{padding:13px 0;align-items:flex-start;gap:10px}.hud-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px}.hud-actions button{padding:6px 8px;font-size:10px}.wordmark{font-size:10px;letter-spacing:1px;min-width:130px}.wordmark span{font-size:8px}.location-bar{display:block;padding:13px 0}h1{font-size:27px}#objective{text-align:left;max-width:none;font-size:12px;margin-top:8px}.stage{aspect-ratio:4/3}#backdrop{object-fit:fill}.point .point-label{font-size:9px;padding:2px 5px}.point .orb{width:24px;height:24px;font-size:14px}.scene-caption{bottom:9px;left:10px;font-size:10px;max-width:90%}.rooms{padding:12px 0;gap:6px}.rooms button{font-size:11px;padding:9px}.bottom-bar{flex-wrap:wrap;gap:10px;padding:12px 0}.inventory-title{width:100%}.inventory-title small{display:inline;margin-left:10px}.inventory-title>span{font-size:9px}.inventory{gap:6px}.item{padding:7px;min-width:66px;font-size:10px}.item svg{width:23px;height:23px}.text-button{font-size:10px}#modal-body,#ending-body{padding:20px}.ending-art{width:calc(100% + 40px);margin:-20px -20px 20px}.intro-content{padding:10vh 7vw}.intro h2{font-size:65px}.intro-story{font-size:14px}.intro-shade{background:linear-gradient(90deg,#06121bef,#07151b88)}.toast{bottom:40px;width:90%;max-width:90%;font-size:12px}.shift-cards{gap:6px}footer{padding:12px}.controls{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.completed-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;margin:0 0 18px;background:#203b37;border:1px solid #7ea58e;border-radius:7px}.completed-banner strong{font-size:18px;color:#f0d49d}.completed-banner p{margin:4px 0;font-size:13px}.completed-banner small{color:#b4ccc3;font-size:11px}.completion-seal{display:grid;place-items:center;width:54px;height:54px;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-size:29px;margin:0 auto 15px;animation:completion-reveal .6s ease-out}#ending .ending-kicker,#ending #ending-title{text-align:center}#ending .ending-decision{color:var(--gold);text-align:center;font-size:15px}#ending h3{font:25px Georgia,serif;margin:24px 0 12px}.ending-closure{padding:12px 15px;border-left:3px solid var(--gold);background:#263b3c;font-weight:600}#ending .actions .gold-button{background:var(--gold);color:#12212b;border-color:var(--gold)}@keyframes completion-reveal{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@media(max-width:700px){.completed-banner{display:block;padding:15px}.completed-banner button{margin-top:12px;padding:10px 16px}}
