@font-face{font-family:ODJ Kanit;font-style:normal;font-weight:400;font-display:swap;src:url(../assets/kanit-400.woff2)format("woff2")}@font-face{font-family:ODJ Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(../assets/kanit-500.woff2)format("woff2")}:root{color:#f2f5ee;font-synthesis:none;--teal:#8bffda;--line:#ffffff30;background:#081315;font-family:ODJ Kanit,sans-serif}*{box-sizing:border-box}body{margin:0}button,a,input,select{touch-action:manipulation}button,select{font:inherit;color:inherit}button{border:1px solid var(--line);cursor:pointer;background:#122528;padding:13px 19px}button:hover{border-color:var(--teal);color:var(--teal)}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}a:hover{color:var(--teal)}:focus-visible{outline:3px solid var(--teal);outline-offset:5px}[hidden]{display:none!important}#city-app{height:100svh;min-height:400px;position:relative;overflow:hidden}#city{touch-action:none;outline:none;width:100%;height:100%;display:block}.exit{z-index:6;letter-spacing:.05em;background:#081315bb;padding:10px 13px;font-size:12px;position:absolute;bottom:24px;right:30px}.intro{z-index:10;background:linear-gradient(90deg,#071316ee 5%,#07131688 55%,#07131622),url(../assets/poster.webp) 50%/cover;flex-direction:column;justify-content:space-between;padding:35px 5vw;display:flex;position:absolute;inset:0}.intro-top,.intro-bottom{letter-spacing:.12em;justify-content:space-between;align-items:center;font-size:11px;display:flex}.intro-top img{object-fit:contain;object-position:left;max-height:42px}.intro-copy{max-width:850px}.eyebrow{letter-spacing:.18em;color:var(--teal);font-size:10px;font-weight:500}.intro h1{letter-spacing:-.045em;margin:30px 0 25px;font-size:clamp(80px,13vw,190px);font-weight:500;line-height:.8;position:relative}.intro h1 span{color:var(--teal)}.intro h1 i{letter-spacing:0;vertical-align:top;margin-left:16px;font-size:16px;font-style:normal}.subtitle{letter-spacing:-.03em;font-size:clamp(18px,2.1vw,28px)}.intro-description{color:#c1cccb;margin:24px 0;font-size:14px;line-height:1.6}.intro-actions{gap:10px;display:flex}.primary{background:var(--teal);border-color:var(--teal);color:#071b19;font-weight:500}.primary:hover{color:#071b19;background:#fff}.intro-actions button{letter-spacing:.08em;padding:19px 27px;font-size:12px}.primary span{margin-left:35px}#load-status{color:#aebfbd;margin-top:18px;font-size:11px}.intro-bottom{gap:15px;padding-right:185px}.hud-top{pointer-events:none;justify-content:space-between;display:flex;position:absolute;top:25px;left:30px;right:30px}.hud-top strong{letter-spacing:-.07em;text-shadow:0 2px 12px #000;font-size:22px}.hud-top strong span{letter-spacing:.15em;margin-top:7px;font-size:9px;font-weight:400;display:block}.hud-top button{pointer-events:auto;background:#081315bb;font-size:10px}.hud-top button span{margin-left:18px}.objective{border-left:2px solid var(--teal);background:#071719bf;padding:12px 14px;position:absolute;top:104px;left:30px}#cores{color:#a3b5b2;gap:13px;margin-top:11px;font-size:10px;display:flex}#cores .got{color:var(--teal)}#toast{text-align:center;border-bottom:2px solid var(--teal);opacity:0;pointer-events:none;background:#081719ee;width:max-content;max-width:90%;padding:15px 22px;font-size:13px;transition:opacity .3s;position:absolute;top:24%;left:50%;transform:translate(-50%)}#toast.visible{opacity:1}#hint{white-space:nowrap;pointer-events:none;background:#071719dd;padding:13px 20px;font-size:11px;position:absolute;bottom:35px;left:50%;transform:translate(-50%)}#interact{text-align:left;background:#071719ee;border-color:#8bffda80;align-items:center;gap:15px;min-width:190px;font-size:12px;display:flex;position:absolute;bottom:120px;left:50%;transform:translate(-50%)}kbd{color:var(--teal);border:1px solid #8bffda80;padding:6px 9px;font-size:12px;display:inline-block}.map-wrap{background:#071719c9;border:1px solid #ffffff20;width:140px;padding:6px;position:absolute;bottom:25px;left:25px}.map-wrap canvas{width:100%;display:block}.map-wrap>span{letter-spacing:.12em;text-align:center;color:#a8bfba;padding-bottom:4px;font-size:8px;display:block}#asset-status{color:#aac0ba;font-size:9px;position:absolute;bottom:4px;left:190px}#touch-controls{display:none}dialog{color:#eff6f2;background:#0b1b1e;border:1px solid #44615b;width:600px;max-width:min(600px,94vw);max-height:88svh;padding:38px;overflow:auto;box-shadow:0 25px 100px #0009}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#020b10ae}dialog h2{letter-spacing:-.06em;margin:10px 0 15px;font-size:38px;line-height:1.03}dialog p{color:#bbceca;font-size:14px;line-height:1.6}.close{background:0 0;border:0;padding:7px;position:absolute;top:12px;right:12px}dialog .primary{margin-top:12px;padding:15px 20px;display:inline-block}.controls-list{grid-template-columns:1fr 1fr;gap:10px;margin:25px 0;display:grid}.controls-list div{border-top:1px solid var(--line);padding:12px 0;font-size:13px}.controls-list small{color:#a8bfba;margin-top:7px;display:block}.settings-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:15px 0;font-size:14px;display:flex}.settings-row select{background:#17332f;border:1px solid #43615a;padding:8px}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.settings-actions button{font-size:12px}.project-art{object-fit:contain;background:#152628;width:100%;max-height:32svh;margin-top:12px}.puzzle-status{min-height:28px;font-weight:700;color:var(--teal)!important}.terminal-buttons{grid-template-columns:1fr 1fr;gap:10px;display:grid}.terminal-buttons button{padding:24px 10px;font-size:16px}.terminal-buttons button.lit{background:var(--teal);color:#081315}.fragments{grid-template-columns:1fr 1fr;gap:4px;width:260px;height:260px;margin:20px auto;display:grid}.fragments button{background:#183d33;border:1px solid #6e9788;padding:0;overflow:hidden}.fragments .piece{background-size:200% 200%;width:100%;height:100%;transition:transform .2s;display:block}.signal{background:#18322c;height:35px;margin:26px 0;position:relative}.signal .zone{border-inline:1px solid var(--teal);background:#8bffda55;width:20%;height:100%;position:absolute;left:40%}.signal .needle{background:#fff;width:4px;height:47px;position:absolute;top:-6px;left:0}.signal-labels{color:#8ca79e;justify-content:space-between;font-size:11px;display:flex}.pipeline{grid-template-columns:repeat(4,1fr);gap:6px;margin:20px 0;display:grid}.pipeline button{height:65px;padding:0;font-family:monospace;font-size:30px;position:relative}.pipeline button.connected{border-color:var(--teal);background:#235e4f}.pipeline button small{font-size:8px;position:absolute;bottom:3px;left:5px}.fallback{z-index:9;background:linear-gradient(90deg,#081315f5,#081315be),url(../assets/poster.webp) 50%/cover;padding:15vh 8vw;position:absolute;inset:0}.fallback h2{letter-spacing:-.06em;font-size:clamp(30px,5vw,64px)}.fallback p{color:#c0d2cb;max-width:550px;line-height:1.6}.fallback nav{flex-wrap:wrap;gap:24px;margin-top:35px;display:flex}.fallback nav a{border-bottom:1px solid var(--teal);padding-bottom:10px}.reduced *{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (pointer:coarse){#touch-controls{display:block}#joystick{touch-action:none;background:#081b1766;border:1px solid #a9efd966;border-radius:50%;width:120px;height:120px;position:absolute;bottom:45px;left:25px}#joystick span{pointer-events:none;background:#a6efd366;border-radius:50%;width:48px;height:48px;position:absolute;top:35px;left:35px}.touch-actions{gap:10px;display:flex;position:absolute;bottom:55px;right:24px}.touch-actions button{background:#081b1788;border-radius:50%;width:52px;height:52px;padding:0;font-size:11px}#jump{font-size:24px}.map-wrap{width:100px;bottom:185px;left:20px}#hint{white-space:normal;text-align:center;max-width:60vw;font-size:9px;bottom:18px}#interact{min-width:0;max-width:58vw;padding:10px;font-size:11px;bottom:140px}.exit{font-size:9px;bottom:8px;right:10px}.hud-top{top:18px;left:20px;right:20px}.objective{padding:10px;top:88px;left:20px}.objective .eyebrow{font-size:8px}#cores{gap:8px;font-size:9px}#asset-status{display:none}}@media (max-width:600px){.intro{padding:27px 6vw 35px}.intro h1{letter-spacing:-.045em;font-size:24vw}.intro h1 i{display:none}.intro-top{font-size:9px}.intro-top img{width:110px}.intro-description{font-size:13px}.intro-bottom{padding:0;font-size:8px;display:block}.intro-bottom a{margin-top:13px;display:block}.intro-actions button{padding:17px 20px;font-size:10px}.intro-copy{margin-top:-15px}dialog{padding:32px 22px}dialog h2{font-size:31px}.controls-list{gap:8px}.fragments{width:220px;height:220px}.pipeline button{height:55px}.subtitle{font-size:19px}.eyebrow{font-size:9px}}@media (max-height:500px){.intro-description{display:none}.intro h1{margin:12px 0;font-size:80px}.intro{padding:20px 5vw}.intro-bottom{display:none}.intro-actions button{padding:12px 20px}.map-wrap{width:85px;bottom:20px}.objective{top:75px}.intro-copy,.subtitle{margin:10px 0}#hint{display:none}}
