@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#111512;color:#efe9da;font-family:'DM Sans',sans-serif}button{cursor:pointer;font:inherit}button:focus-visible,a:focus-visible{outline:2px solid #efb257;outline-offset:5px}button:disabled{opacity:.5;cursor:wait}#world{width:100%;height:100%;position:relative}canvas{display:block;width:100%;height:100%;touch-action:none}.vignette,.grain{position:absolute;inset:0;pointer-events:none}.vignette{background:radial-gradient(ellipse at 52% 46%,transparent 32%,#080d1266 100%),linear-gradient(#05090b99,transparent 22%,transparent 76%,#05090bbb)}.grain{opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")}header{position:absolute;top:0;left:0;right:0;padding:26px 35px;display:flex;justify-content:space-between;align-items:center}header a{color:#eee9dd;text-decoration:none;font-size:14px;font-weight:700;letter-spacing:3px}header a span{display:block;font-size:9px;letter-spacing:4px;color:#baab91;margin-top:5px}.top-actions{display:flex;gap:10px}.top-actions button{border:1px solid #c9baa444;background:#10191566;color:#cec4b3;font-size:10px;letter-spacing:1.4px;padding:10px 14px;border-radius:2px}#hud{position:absolute;top:111px;left:35px;right:35px;display:flex;justify-content:space-between;pointer-events:none}.mission small,.stats small{display:block;color:#cfb27b;font-size:9px;letter-spacing:2px;margin-bottom:8px}.mission b{font-size:15px;font-weight:500}.mission>span{display:block;font-size:9px;letter-spacing:1.5px;color:#c0beb0;margin-top:10px}.stats{display:flex;gap:37px;text-align:right}.stats b{font:600 30px 'Barlow Condensed',sans-serif;letter-spacing:1px}.stats em{font:400 18px 'DM Sans',sans-serif;color:#999e94}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:23px;font-weight:400;color:#f4e8cb99;pointer-events:none}#prompt{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);font-size:13px;text-align:center;text-shadow:0 2px 4px #000;pointer-events:none}#hold{height:2px;background:#c3bdac33;width:200px;margin:12px auto}#hold i{display:block;height:100%;width:0;background:#f2b76c}#alert{position:absolute;bottom:100px;left:35px;width:130px;font-size:9px;letter-spacing:2px;color:#d2c9b5}#alert>div{height:3px;background:#ffffff22;margin-top:10px}#alert i{display:block;height:100%;width:0;background:#f7a16c}#toast{position:absolute;top:27%;left:50%;transform:translateX(-50%);padding:12px 22px;font-size:13px;letter-spacing:1px;opacity:0;background:#111a16b3;border:1px solid #b49d6255;border-radius:2px;pointer-events:none}#overlay{position:absolute;inset:0;background:linear-gradient(90deg,#0b1216ed,#0a1114ad 36%,#08111533 68%,transparent);display:flex;align-items:center;padding:100px 8%;z-index:3}#overlay.hidden{display:none}.intro{max-width:650px}.kicker{font-size:10px;letter-spacing:3px;color:#bfa678}h1{font:700 clamp(65px,8vw,118px)/.9 'Barlow Condensed',Impact,sans-serif;letter-spacing:-1.5px;margin:27px 0}h1 em{font-style:normal;color:#d9a967}.intro p{font-size:15px;line-height:1.85;color:#c9c8bc;margin:0 0 25px}.brief{display:flex;flex-direction:column;gap:12px;margin-bottom:28px;font-size:12px;color:#acae9f}.brief b{font-size:10px;color:#b98d57;margin-right:14px;font-weight:500}#start{padding:17px 27px;background:#d6a465;color:#171d1c;border:1px solid #e3bb7a;border-radius:2px;font-size:11px;font-weight:700;letter-spacing:2px;min-width:228px}#start:hover{background:#edbd7e}#subtext{display:block;margin-top:20px;font-size:8px;letter-spacing:2px;color:#a5a390}footer{position:absolute;bottom:25px;left:35px;right:35px;display:flex;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:1px;color:#c9c4b8;pointer-events:none}kbd{font:9px 'DM Sans',sans-serif;padding:5px 6px;margin:0 7px 0 17px;border:1px solid #ffffff35;border-radius:2px;background:#131c1a77}kbd:first-child{margin-left:0}#stance{color:#c9af82}.touch{display:none}#error{position:absolute;inset:35%;z-index:9;background:#161c18;padding:30px;color:white}@media(max-width:700px){header{padding:20px}header a{font-size:11px;letter-spacing:2px}header a span{font-size:7px}.top-actions button{font-size:8px;padding:8px}#hud{left:20px;right:20px;top:90px}.mission b{font-size:12px}.stats{gap:15px}.stats small{font-size:7px;max-width:85px}.stats b{font-size:25px}.mission>span{font-size:7px}#overlay{padding:100px 7%}h1{font-size:66px}.intro p{font-size:12px}.brief{font-size:11px}footer{left:20px;right:20px;bottom:20px}footer>span:first-child{display:none}#prompt{bottom:150px;width:80%;font-size:12px}#alert{bottom:230px;left:20px}.touch{display:flex;position:absolute;bottom:55px;left:20px;right:20px;justify-content:space-between;align-items:end}.touch>div:first-child{text-align:center}.touch button{background:#16221dbb;border:1px solid #baaa8e66;color:#eee5d4;min-width:42px;height:40px;margin:2px;border-radius:3px;touch-action:none;font-size:10px}.touch>div:last-child{display:flex;flex-direction:column}.touch .take{background:#b38954cc}.kicker{font-size:8px}#toast{width:80%;text-align:center;font-size:11px}}@media(pointer:coarse) and (min-width:701px){.touch{display:flex;position:absolute;bottom:60px;left:25px;right:25px;justify-content:space-between}.touch button{padding:16px;background:#18221aaa;color:white;border:1px solid #aaa;touch-action:none}footer{display:none}}

#dialogue{position:absolute;bottom:180px;left:50%;transform:translateX(-50%);max-width:80%;padding:12px 20px;background:#101513d9;border-left:2px solid #d6a465;color:#f4ead7;font-size:17px;line-height:1.5;opacity:0;transition:opacity .2s;pointer-events:none;text-align:center}#dialogue.visible{opacity:1}@media(max-width:700px){#dialogue{bottom:280px;width:88%;font-size:14px}.stats{gap:10px}.stats b{font-size:20px}}

#scan{position:absolute;right:35px;top:42%;width:290px;padding:20px 22px;border:1px solid #65daec99;border-left:3px solid #76eaff;background:repeating-linear-gradient(0deg,#13262ce8,#13262ce8 3px,#15313ae8 4px,#15313ae8 5px);box-shadow:0 0 35px #4ad9fc15;color:#a4efff;pointer-events:none}#scan[hidden]{display:none}#scan small{display:block;font-size:9px;letter-spacing:3px}#scan strong{display:block;font:600 35px 'Barlow Condensed',sans-serif;margin:12px 0 7px;color:#ebfcff}#scan b{display:block;font-size:11px;letter-spacing:1px}#scan span{display:block;font-size:11px;line-height:1.7;margin-top:14px;color:#bed2d6}@media(max-width:700px){#scan{top:29%;right:20px;width:220px;padding:12px}#scan strong{font-size:26px;margin:6px 0}#scan span{font-size:10px;margin-top:6px}}

/* A readable briefing and a dedicated, large control guide. */
#overlay{padding:90px 6% 76px;overflow-y:auto;align-items:center;background:linear-gradient(90deg,#0b1216f5,#0a1114e8 50%,#081115b8)}
.intro{max-width:1180px;width:100%;margin:auto;display:grid;grid-template-columns:minmax(270px,.8fr) minmax(450px,1.2fr);column-gap:55px;align-items:start}
.intro>*{grid-column:1}.intro .kicker{align-self:end}.intro h1{font-size:clamp(72px,8vw,112px);margin:22px 0}.intro #description{font-size:16px;line-height:1.8;max-width:400px}.intro #start{justify-self:start;min-height:54px;font-size:13px}.intro #subtext{font-size:10px;line-height:1.8}
.intro .brief{grid-column:2;grid-row:1 / span 6;margin:0;gap:23px;color:#dddace;font-size:14px}.brief h2{font:700 21px 'Barlow Condensed',sans-serif;letter-spacing:2px;color:#e7bc7b;margin:0 0 14px}.brief ol{padding-left:22px;margin:0;display:grid;gap:13px}.brief li{padding-left:6px;line-height:1.55}.brief li::marker{color:#d6a465;font-weight:700}.brief strong{color:#fff0d8;font-weight:600}
.controls-panel{padding:20px 22px;border:1px solid #cfa96c66;border-radius:4px;background:#15201ee8}.controls-panel h2 span{font:500 10px 'DM Sans',sans-serif;letter-spacing:1.3px;color:#b8b9ad;margin-left:12px}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}.control-grid>div{display:flex;align-items:center;gap:12px}.control-grid kbd{font-size:14px;font-weight:700;margin:0;min-width:86px;text-align:center;padding:11px 10px;background:#26332e;border:1px solid #c7b08488;box-shadow:0 3px 0 #080f0d;color:#fff1d4;white-space:nowrap}.control-grid span{font-size:13px;line-height:1.45}.control-grid small{display:block;color:#b2b7aa;font-size:11px}.intro .touch-tip{font-size:11px;line-height:1.6;color:#aeb9af;margin:18px 0 0}
footer{font-size:12px;letter-spacing:.6px}footer kbd{font-size:12px;padding:7px 8px;margin-left:12px}
@media(max-width:1100px){.intro{column-gap:28px;grid-template-columns:minmax(235px,.7fr) minmax(400px,1.3fr)}.intro h1{font-size:78px}.control-grid{grid-template-columns:1fr}.control-grid>div{gap:16px}.control-grid kbd{padding:8px 10px;min-width:100px}.intro .brief{font-size:13px}.brief ol{gap:9px}.controls-panel{padding:16px}.control-grid{gap:10px}}
@media(max-height:780px) and (min-width:901px){#overlay{align-items:flex-start}.intro .brief{gap:16px}.control-grid{gap:10px 16px}.brief ol{gap:9px}.controls-panel{padding:16px}.intro #description{font-size:14px}}
@media(max-width:900px){#overlay{padding:100px 6% 50px;align-items:flex-start}.intro{display:flex;flex-direction:column;gap:0;max-width:620px}.intro .kicker{align-self:start}.intro h1{font-size:76px;margin:20px 0}.intro #description{max-width:none;font-size:15px}.intro .brief{font-size:14px;margin-bottom:25px;width:100%}.control-grid{grid-template-columns:1fr 1fr}.intro #start{align-self:stretch}.intro #subtext{margin-top:14px}.controls-panel h2 span{display:block;margin:6px 0 0}.brief li{line-height:1.6}}
@media(max-width:520px){.control-grid{grid-template-columns:1fr}.control-grid kbd{font-size:15px;padding:11px;min-width:106px}.control-grid span{font-size:14px}.control-grid small{font-size:12px}.intro h1{font-size:68px}.brief h2{font-size:23px}.intro .brief{gap:22px}.control-grid{gap:14px}.controls-panel{padding:20px 16px}}

#arrival{position:absolute;inset:0;pointer-events:none;border-top:42px solid #060b0e;border-bottom:42px solid #060b0e;display:flex;align-items:end;justify-content:space-between;padding:30px 5%;background:linear-gradient(transparent 60%,#09131688);color:#f1d5a3;font-size:17px;letter-spacing:4px}#arrival[hidden]{display:none}#arrival small{display:block;font-size:9px;letter-spacing:2px;margin-top:10px;color:#d3c8b2}#skip-arrival{pointer-events:auto;background:#10191899;color:#eadcc5;border:1px solid #d0b78988;padding:12px 16px;font-size:10px;letter-spacing:1px}.arriving #hud,.arriving #crosshair,.arriving #prompt,.arriving #alert,.arriving footer,.arriving .touch,.arriving #pause,.arriving #dialogue{display:none}.arriving header{top:40px}@media(max-width:600px){#arrival{font-size:12px;letter-spacing:2px;gap:15px}#skip-arrival{font-size:9px;padding:10px}}

.intro h1.game-title{font-size:clamp(52px,6.3vw,88px)}@media(max-width:900px){.intro h1.game-title{font-size:clamp(52px,12vw,80px)}}

/* Keep the soundtrack player mounted without any visible video or metadata. */
#music{position:fixed;left:-10000px;top:0;width:300px;height:200px;overflow:hidden;clip-path:inset(50%);pointer-events:none}#music[hidden]{display:none}#music-frame,#music iframe{width:300px;height:200px;border:0}#music-status{display:none}

/* Phone controls stay clear of the aiming reticle and the browser safe areas. */
.touch{display:none!important;pointer-events:none;user-select:none;-webkit-user-select:none}.touch button{pointer-events:auto;-webkit-touch-callout:none}.touch button.pressed{background:#d6a465!important;color:#151d1b!important}
#world{height:100dvh}#overlay{overscroll-behavior:contain}#hud,#scan,#crosshair,#prompt,#alert,#dialogue,#toast,footer{pointer-events:none}
@media(pointer:coarse),(max-width:700px){
.in-game .touch{display:flex!important;bottom:max(18px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));z-index:2;align-items:end}
.touch button{min-width:52px;min-height:52px;margin:3px;padding:8px;font-size:16px;border-radius:8px;background:#14231dda;border:1px solid #e1be7b88;color:#fff1d8;touch-action:none}.touch>div:first-child{text-align:center}.touch>div:last-child{display:flex;flex-direction:column;gap:4px}.touch .take{min-width:88px;background:#a57438e8}.touch #crouch{font-size:13px}.top-actions button{min-height:44px;font-size:11px;padding:8px 10px}header{padding: max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}header a{font-size:11px;letter-spacing:1px}#hud{top:max(70px,calc(env(safe-area-inset-top) + 58px));left:16px;right:16px;gap:12px}.stats{gap:14px}.stats b{font-size:23px}.stats small,.mission small{font-size:9px}.mission b{font-size:12px}.mission>span{font-size:9px;line-height:1.4}#prompt{bottom:140px;width:90%;font-size:13px}#alert{bottom:165px;left:16px;font-size:10px;width:100px}#dialogue{bottom:205px;width:90%;font-size:14px;padding:8px}#scan{top:32%;right:12px;width:190px;padding:10px}#scan strong{font-size:25px}#scan b,#scan span{font-size:11px}footer{display:none}#toast{top:23%;width:88%;font-size:13px}.intro #start{order:0;margin:8px 0 18px;flex-shrink:0}.intro .brief{order:2}.intro #subtext{order:3}.intro h1{font-size:clamp(50px,12vw,76px)}.intro #description{font-size:14px}.control-grid{grid-template-columns:1fr}.touch-tip{font-size:14px!important}#overlay{padding:85px 6% 35px}.intro .kicker{font-size:10px}.controls-panel h2 span{font-size:12px}
}
@media(max-width:480px){#hud{flex-wrap:wrap}.mission{width:100%}.stats{text-align:left;gap:26px}.stats small{margin-bottom:3px}.mission small{display:none}.mission>span{margin-top:4px}#scan{top:35%;width:175px}#alert{bottom:182px}#prompt{bottom:135px}}
@media(pointer:coarse) and (max-height:500px){#hud{top:60px}.mission>span{margin-top:4px}#prompt{bottom:23px;width:46%;font-size:12px}#hold{width:140px;margin:7px auto}#alert{bottom:143px}#scan{top:115px;right:115px;width:180px}#scan span{line-height:1.25}#dialogue{bottom:152px;max-width:52%;font-size:12px}#toast{top:95px;width:50%;padding:7px}.stats b{font-size:22px}#arrival{border-width:20px}.arriving header{top:20px}}
