:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f3f0e7;--muted:#efefe5a8;--line:#ffffff29;--amber:#f1a949;--red:#e16045;--green:#8caa87;font-family:Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}html,body,#game{width:100%;height:100%;background:#111714;height:100dvh;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none}body.touch-mode{touch-action:none;overscroll-behavior:none;-webkit-touch-callout:none}button,input{font:inherit}button{color:inherit}#canvas-wrap,#canvas-wrap canvas{width:100%;height:100%;display:block;position:absolute;inset:0}#canvas-wrap{background:linear-gradient(#70838b,#c3bda7)}.hidden{display:none!important}.screen{z-index:50;background:radial-gradient(circle at 64% 24%,#93a8a63d,#0000 35%),linear-gradient(115deg,#090e0cf7,#131916d6);justify-content:center;align-items:center;display:none;position:absolute;inset:0}.screen--visible{display:flex}.screen:before{content:"";opacity:.14;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");position:absolute;inset:0}.boot-card{text-align:center;width:min(520px,100vw - 40px);position:relative}.eyebrow{color:var(--amber);letter-spacing:.32em;margin:0 0 18px;font-size:11px;font-weight:700}.boot-card h1{letter-spacing:-.08em;margin:0;font-size:clamp(64px,10vw,112px);font-weight:800;line-height:.72}.boot-card h1 span{color:#0000;-webkit-text-stroke:1px #ffffffa6}.subtitle{letter-spacing:.5em;color:var(--muted);margin:28px 0;padding-left:.5em;font-family:Gowun Batang,serif}.ticket{text-align:left;color:#171c19;clip-path:polygon(0 0,100% 0,100% 42%,98% 45%,100% 48%,100% 100%,0 100%,0 48%,2% 45%,0 42%);background:#e8e2d2;max-width:410px;margin:30px auto 18px;padding:20px 22px 15px}.ticket label{letter-spacing:.12em;color:#61665f;font-size:11px;font-weight:700;display:block}.ticket input{color:#151916;background:0 0;border:0;border-bottom:1px solid #a6a397;outline:none;width:100%;padding:8px 0 6px;font-size:20px}.ticket-route{color:#555b55;align-items:center;gap:10px;margin-top:14px;font-size:11px;display:flex}.ticket-route i{background:#9c9c90;flex:1;height:1px;position:relative}.ticket-route i:after{content:"▲";color:#b75e3f;position:absolute;top:-8px;right:42%}.primary,.ghost{cursor:pointer;border:0;transition:transform .18s,background .18s,color .18s}.primary{background:var(--amber);color:#161b18;letter-spacing:.05em;min-width:220px;padding:15px 24px;font-weight:800}.primary:hover,.ghost:hover{transform:translateY(-2px)}.fineprint{color:var(--muted);margin:18px 0 0;font-size:11px}.intro{z-index:30;opacity:0;pointer-events:none;text-shadow:0 2px 30px #0000008c;transition:opacity 1s,transform 1s;position:absolute;bottom:clamp(72px,12vh,150px);left:clamp(24px,7vw,100px);transform:translateY(14px)}.intro.visible{opacity:1;transform:none}.intro p{color:#f0b65e;letter-spacing:.16em;margin:0 0 9px;font-size:12px}.intro h2{margin:0;font-family:Gowun Batang,serif;font-size:clamp(30px,4vw,56px);font-weight:400;line-height:1.28}.hud{z-index:20;pointer-events:none;text-shadow:0 2px 12px #0000008c;justify-content:space-between;align-items:flex-start;padding:28px 34px;display:flex;position:absolute;inset:0}.hud-left{max-width:470px}#zone-kicker{letter-spacing:.18em;color:var(--amber);margin:0 0 6px;font-size:11px;font-weight:700}#objective{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:600}.altimeter{color:var(--muted);align-items:center;gap:9px;margin-top:12px;font-size:10px;display:flex}.altimeter i{background:#fff3;width:148px;height:2px;display:block}.altimeter b{background:#f3c677;width:0%;height:100%;transition:width .3s;display:block;box-shadow:0 0 10px #f3c677}.hud-right{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(90deg,#0b110fa8,#0b110f47);border-top:1px solid #f3be687a;border-bottom:1px solid #ffffff1f;gap:14px;padding:8px 13px 9px;display:flex}.item{grid-template-columns:auto 1fr;align-items:center;gap:1px 7px;min-width:56px;padding:0;display:grid;position:relative}.item+.item:before{content:"";background:#ffffff1c;width:1px;position:absolute;top:2px;bottom:2px;left:-8px}.item kbd{text-align:center;border:1px solid #ffffff59;grid-row:1/span 2;min-width:22px;padding:2px 4px;font:700 10px/16px sans-serif}.item span{color:var(--muted);font-size:9px}.item strong{font-size:11px}.item.active{color:#f2c270;text-shadow:0 0 12px #f2c270b3}.item.empty{opacity:.35}.prompt{z-index:26;opacity:0;border-left:2px solid var(--amber);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#f4f0e6;text-align:center;pointer-events:none;background:#0a0e0cc2;min-width:200px;max-width:min(620px,85vw);padding:9px 15px;font-size:12px;transition:opacity .2s,transform .2s;position:absolute;bottom:8%;left:50%;transform:translate(-50%,8px)}.prompt.visible{opacity:1;transform:translate(-50%)}.prompt kbd{color:var(--amber);border:1px solid #fff6;margin-right:7px;padding:1px 7px;font-weight:800;display:inline-block}.toast{z-index:40;opacity:0;border-left:2px solid var(--amber);text-align:left;background:linear-gradient(90deg,#0b100ee6,#0b100ead);max-width:min(560px,80vw);padding:10px 17px 11px;font-family:Gowun Batang,serif;transition:all .28s;position:absolute;top:17%;left:50%;transform:translate(-50%,-10px)}.toast.visible{opacity:1;transform:translate(-50%)}.clue{z-index:21;opacity:.75;pointer-events:none;background:linear-gradient(90deg,#0c100e85,#0000);border-left:1px solid #eec17380;width:min(340px,50vw);padding:12px 15px;position:absolute;bottom:30px;left:34px}.clue span{color:var(--amber);letter-spacing:.12em;font-size:9px}.clue p{color:#ffffffbf;margin:4px 0 0;font:400 12px/1.55 Gowun Batang,serif}.reticle{z-index:19;opacity:.45;pointer-events:none;width:18px;height:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.reticle:before,.reticle:after{content:"";background:#fff;position:absolute}.reticle:before{width:8px;height:1px;top:9px;left:5px}.reticle:after{width:1px;height:8px;top:5px;left:9px}.mobile-controls{z-index:32;pointer-events:none;display:none;position:absolute;inset:0}body.touch-mode .mobile-controls{display:block}.touch-look{z-index:1;pointer-events:auto;touch-action:none;position:absolute;inset:15% 0 22% 42%}.touch-look-hint{z-index:2;color:#ffffffb3;letter-spacing:.08em;background:linear-gradient(270deg,#0a0f0da8,#0000);border-right:1px solid #f1a9499e;margin:0;padding:5px 9px;font-size:9px;transition:opacity .8s;position:absolute;top:58%;right:24px;transform:translateY(-50%)}.touch-look-hint.used{opacity:0}.touch-menu{z-index:5;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;touch-action:manipulation;background:#0c110fa8;border:1px solid #ffffff3d;border-radius:50%;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;display:flex;position:absolute}.touch-menu i{background:#ffffffdb;width:3px;height:14px;display:block}.touch-move-wrap{z-index:4;left:max(17px,env(safe-area-inset-left));bottom:max(17px,env(safe-area-inset-bottom));text-align:center;width:128px;position:absolute}.touch-move{pointer-events:auto;touch-action:none;background:radial-gradient(circle,#141b174d,#080d0bad);border:1px solid #ffffff3d;border-radius:50%;width:116px;height:116px;margin:auto;transition:border-color .16s,box-shadow .16s;position:relative;box-shadow:inset 0 0 28px #00000038,0 8px 28px #00000029}.touch-move.is-running{border-color:#f1a949bd;box-shadow:inset 0 0 28px #f1a94914,0 0 18px #f1a94933}.touch-move-ring{border:1px dashed #ffffff29;border-radius:50%;position:absolute;inset:17px}.touch-move b{will-change:transform;background:radial-gradient(circle at 38% 32%,#ffffff47,#1d2621db);border:1px solid #ffffff61;border-radius:50%;width:50px;height:50px;margin:-25px 0 0 -25px;position:absolute;top:50%;left:50%;box-shadow:0 5px 16px #00000057}.touch-move-wrap>span{color:#ffffff9e;letter-spacing:.06em;text-shadow:0 1px 6px #000;margin-top:5px;font-size:8px;display:block}.touch-button{z-index:5;color:#f5f2e9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;touch-action:none;background:linear-gradient(145deg,#1f2823db,#090e0ccc);border:1px solid #ffffff47;flex-direction:column;justify-content:center;align-items:center;transition:transform 80ms,border-color .15s,background .15s,opacity .15s;display:flex;position:absolute;box-shadow:inset 0 1px #ffffff14,0 8px 28px #0000003d}.touch-button small{color:#ffffff94;letter-spacing:.08em;font-size:8px}.touch-button strong{margin-top:2px;font-size:12px}.touch-button.is-pressed{background:linear-gradient(145deg,#f1a949c2,#724620db);border-color:#ffd28b;transform:scale(.93)}.touch-button--jump{right:max(17px,env(safe-area-inset-right));bottom:max(17px,env(safe-area-inset-bottom));border-color:#f1a949ad;border-radius:50%;width:88px;height:88px}.touch-button--jump strong{color:#ffd18a;letter-spacing:.04em;font-size:14px}.touch-button--context{right:112px;bottom:max(73px,calc(env(safe-area-inset-bottom) + 73px));border-radius:8px;width:94px;min-height:54px}.touch-button--context.available{border-color:#f1a949b3}.touch-button--context:disabled{opacity:0;pointer-events:none}.touch-button--utility{right:128px;bottom:max(17px,env(safe-area-inset-bottom));border-radius:24px;width:62px;height:48px}.touch-button--utility.active{color:#ffe0a0;border-color:#f1a949;box-shadow:0 0 20px #f1a94947}.modal{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#070a099e;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal-card{text-align:center;background:#131a17;border:1px solid #ffffff26;width:min(560px,100vw - 34px);padding:30px;box-shadow:0 25px 80px #0000008c}.modal-card.compact{width:min(380px,100vw - 34px)}.modal-card h2{margin:0 0 22px;font:400 30px Gowun Batang,serif}.sign-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.sign-grid button{color:#f1eee5;cursor:pointer;background:#1c2521;border:1px solid #ffffff24;padding:15px 8px;font-size:11px}.sign-grid button:hover{border-color:var(--amber);background:#263029}.sign-grid span{color:var(--amber);margin-bottom:7px;font-size:24px;display:block}.ghost{color:var(--muted);background:0 0;border:1px solid #fff3;margin-top:12px;padding:11px 18px}.modal-card .primary,.modal-card .ghost{width:100%;margin-top:9px;display:block}.ghost.danger{color:#dc8d7c}.ending{z-index:70;background:#080c0b47;position:absolute;inset:0;overflow:hidden}.ending-sky{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:radial-gradient(circle at 50% 34%,#ad69341f,#0000 36%),linear-gradient(#0c12122e,#060908e0);position:absolute;inset:0}.credits{text-align:center;color:#f4f0e6;text-shadow:0 2px 18px #000,0 1px 2px #000;flex-direction:column;justify-content:center;align-items:center;padding:24px;animation:2.2s both credits-in;display:flex;position:absolute;inset:0}.ending-pre{color:#eab76d;letter-spacing:.12em;font-size:12px}.credits h2{margin:14px 0 48px;font:400 clamp(25px,4vw,52px)/1.55 Gowun Batang,serif}.credits h2 span{color:#ffffffb8}.credit-main p{color:#ffffffc2;letter-spacing:.3em;margin:0 0 8px;font-size:11px}.credit-main strong{letter-spacing:.1em;font-size:18px}.music-credit{color:#ffffffa8;letter-spacing:.08em;margin:36px 0 0;font-size:9px;line-height:1.6}.ghost.light{color:#fff;margin-top:18px}@keyframes credits-in{0%{opacity:0;transform:translateY(22px)}}.debug{z-index:100;color:#8fdb9a;white-space:pre;pointer-events:none;background:#000b;padding:6px 8px;font:10px monospace;position:absolute;bottom:8px;right:8px}.fatal{z-index:99;text-align:center;background:#0e1412;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex;position:absolute;inset:0}.fatal h2{font:400 34px Gowun Batang,serif}.fatal p{color:var(--muted)}@media (max-width:900px),(pointer:coarse){.screen{padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));overflow:auto}.boot-card{width:min(520px,100%)}.boot-card h1{font-size:clamp(58px,18vw,86px)}.ticket{margin-top:24px}.fineprint{line-height:1.55}.hud{padding:max(15px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.hud-left{max-width:calc(100vw - 28px)}#zone-kicker{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100vw - 70px);overflow:hidden}#objective{max-width:calc(100vw - 58px);font-size:13px;line-height:1.35}.altimeter{margin-top:8px}.altimeter i{width:min(32vw,128px)}.hud-right{left:max(14px,env(safe-area-inset-left));top:max(92px,calc(env(safe-area-inset-top) + 92px));background:linear-gradient(90deg,#0b110f94,#0b110f1f);border-top-color:#f3be6852;gap:8px;padding:5px 9px;display:flex;position:absolute}.item{align-items:center;gap:4px;min-width:34px;display:flex}.item+.item:before,.item kbd,.item span{display:none}.item:after{color:#ffffff94;order:-1;font-size:11px}#item-piton:after{content:"⌁"}#item-plank:after{content:"▰"}#item-lantern:after{content:"☼"}#item-sign:after{content:"⚑"}.item strong{font-size:10px}.clue{left:max(14px,env(safe-area-inset-left));top:max(130px,calc(env(safe-area-inset-top) + 130px));background:linear-gradient(90deg,#0c100e7a,#0000);width:auto;max-width:58vw;padding:5px 8px;bottom:auto}.clue p{display:none}.prompt{bottom:max(148px,calc(env(safe-area-inset-bottom) + 148px));width:max-content;min-width:0;max-width:calc(100vw - 78px);padding:7px 10px;font-size:10px;line-height:1.35}.prompt kbd{margin-right:5px;padding:1px 5px}.toast{top:max(176px,calc(env(safe-area-inset-top) + 176px));max-width:calc(100vw - 36px);padding:8px 12px;font-size:12px}.intro{left:max(22px,env(safe-area-inset-left));top:43%;bottom:auto;right:22px}.intro h2{max-width:310px;font-size:clamp(23px,7vw,30px);line-height:1.35}.intro p{font-size:10px}.reticle{display:none}.sign-grid{grid-template-columns:repeat(2,1fr)}.modal-card{max-height:calc(100dvh - max(34px,env(safe-area-inset-top)) - max(34px,env(safe-area-inset-bottom)));padding:22px;overflow:auto}.sign-grid button{min-height:72px;padding:10px 7px}.sign-grid span{margin-bottom:4px;font-size:20px}.credits h2{margin:10px 0 28px}.music-credit{margin-top:24px}}@media (orientation:landscape) and (max-height:560px){.boot-card{text-align:left;grid-template-rows:auto auto auto;grid-template-columns:.85fr 1.15fr;align-items:center;column-gap:34px;width:min(760px,100vw - 48px);display:grid}.boot-card .eyebrow{grid-area:1/1;margin:0 0 8px}.boot-card h1{grid-area:2/1;font-size:clamp(48px,9vw,68px)}.boot-card .subtitle{grid-area:3/1;margin:14px 0 0;padding:0}.boot-card .ticket{grid-area:1/2;width:100%;margin:0;padding:13px 18px 11px}.boot-card .primary{grid-area:2/2;width:100%;min-width:0;margin-top:8px;padding:12px 18px}.boot-card .fineprint{grid-area:3/2;margin:8px 0 0}.ticket input{font-size:17px}.ticket-route{margin-top:8px}.hud{padding:10px max(12px,env(safe-area-inset-right))}#objective{max-width:56vw}.hud-right{top:66px;left:max(12px,env(safe-area-inset-left))}.clue{display:none}.touch-menu{top:10px;right:max(12px,env(safe-area-inset-right));width:36px;height:36px}.touch-move-wrap{left:max(12px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));width:102px}.touch-move{width:94px;height:94px}.touch-move b{width:42px;height:42px;margin:-21px 0 0 -21px}.touch-move-ring{inset:14px}.touch-button--jump{right:max(12px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));width:72px;height:72px}.touch-button--context{right:94px;bottom:max(58px,calc(env(safe-area-inset-bottom) + 58px));width:88px;min-height:46px}.touch-button--utility{right:105px;bottom:max(8px,env(safe-area-inset-bottom));width:58px;height:42px}.touch-look-hint{right:20px}.prompt{bottom:max(14px,env(safe-area-inset-bottom));max-width:48vw}.toast{max-width:58vw;top:112px}.intro{top:38%;left:18%}.intro h2{font-size:22px}.modal-card{max-height:calc(100dvh - 20px)}.ending-pre,.music-credit{display:none}.credits h2{margin:6px 0 18px;font-size:22px}}@media (orientation:portrait) and (max-height:680px){.screen{padding-top:12px;padding-bottom:12px}.boot-card .eyebrow{margin-bottom:8px}.boot-card h1{font-size:52px}.boot-card .subtitle{margin:13px 0;font-size:13px}.boot-card .ticket{margin:12px auto 10px;padding:12px 18px 10px}.ticket input{padding:5px 0 4px;font-size:17px}.ticket-route{margin-top:8px}.boot-card .primary{padding:12px 18px}.boot-card .fineprint{margin-top:8px;font-size:9px}.hud{padding-top:10px}.hud-right{top:82px}.clue{display:none}.touch-menu{width:38px;height:38px;top:10px}.touch-move-wrap{width:108px;bottom:10px}.touch-move{width:98px;height:98px}.touch-move b{width:44px;height:44px;margin:-22px 0 0 -22px}.touch-move-ring{inset:14px}.touch-button--jump{width:78px;height:78px;bottom:10px}.touch-button--context{width:90px;min-height:48px;bottom:61px;right:101px}.touch-button--utility{width:58px;height:43px;bottom:9px;right:113px}.prompt{bottom:116px}.toast{top:132px}.intro{top:38%}.intro h2{max-width:270px;font-size:21px}.modal-card{padding:16px}.modal-card .eyebrow{margin-bottom:9px}.modal-card h2{margin-bottom:12px;font-size:25px}.sign-grid button{min-height:58px}.sign-grid span{font-size:17px}.ending-pre,.music-credit{display:none}.credits h2{margin:8px 0 22px;font-size:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
