@font-face{font-family:system-k;src:local("Pretendard"),local("Noto Sans KR"),local("Malgun Gothic")}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:#0d1a23;color:#f4e7c9;font-family:system-k,system-ui,sans-serif}button{font:inherit;color:inherit}button:focus-visible{outline:2px solid #f1c774;outline-offset:3px}#game{display:block;width:100%;height:100%;touch-action:none;background:#172b38}#vignette,#damage-flash{position:fixed;inset:0;pointer-events:none}#vignette{background:radial-gradient(circle at 50% 48%,transparent 52%,#07101875 100%)}#damage-flash{background:#8b1f18;opacity:0;transition:opacity .12s}.screen{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;background:linear-gradient(120deg,#0c1c28e8,#1e3b43b8);z-index:20;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))}.hidden{display:none!important}.boot-card,.title-card,.panel-card,.chapter-card-inner,.ending-card,.recovery-card{width:min(680px,92vw);margin:auto 0;flex:0 0 auto;padding:clamp(26px,5vw,54px);border:1px solid #d6b36d88;background:linear-gradient(150deg,#132a36f2,#1b3336ed);box-shadow:0 28px 80px #0008,inset 0 0 60px #d8ae5320;backdrop-filter:blur(12px)}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:#d9b975;font-size:12px;font-weight:800}.boot-card h1,.title-card h1{font-family:Georgia,"Nanum Myeongjo",serif;font-size:clamp(48px,9vw,92px);line-height:.92;margin:16px 0;color:#f2e3bc;text-shadow:0 6px 26px #000}.title-card h1 strong{color:#e6bd6e;font-weight:500}.lead,.title-card>p{line-height:1.75;color:#d9d1bb;max-width:520px}.title-actions{display:grid;gap:10px;margin:30px 0 18px;width:min(330px,100%)}button{border:1px solid #b69b69;background:#162a32d9;padding:12px 18px;border-radius:4px;cursor:pointer;transition:transform .15s,background .15s}button:hover{background:#29444a;transform:translateY(-1px)}button.primary{background:#d0aa63;color:#17232a;font-weight:900;border-color:#f1d391}#boot-progress{height:5px;background:#0a151c;margin-top:28px;overflow:hidden}#boot-progress span{display:block;height:100%;width:3%;background:#e1bd70;transition:width .25s}#boot-status{font-size:13px;color:#bdb8aa}#hud{position:fixed;left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));display:flex;align-items:flex-start;justify-content:space-between;z-index:5;pointer-events:none;text-shadow:0 2px 6px #000}.chapter{display:grid;gap:2px}.chapter span{font-size:11px;letter-spacing:.17em;color:#dfbd76}.chapter strong{font-size:18px}.vitals{position:absolute;left:50%;transform:translateX(-50%);width:min(340px,36vw);display:grid;gap:5px}.bar{height:13px;background:#081319c9;border:1px solid #e7d8b852;position:relative;overflow:hidden}.bar i{display:block;height:100%;transition:width .25s}.bar.hp i{background:linear-gradient(90deg,#85443b,#c87557)}.bar.mp i{background:linear-gradient(90deg,#3d6c80,#6da2a9)}.bar span{position:absolute;inset:-1px 5px auto auto;font-size:9px}.resources{display:flex;gap:13px;font-size:12px;background:#0b1a21a8;padding:7px 10px;border:1px solid #d7bd8652}#objective{position:fixed;left:max(18px,env(safe-area-inset-left));top:82px;z-index:5;width:min(320px,42vw);padding:10px 12px;background:#0a1821b5;border-left:2px solid #d6b367;pointer-events:none}#objective small{color:#d8b86f;font-size:10px;letter-spacing:.12em}#objective p{font-size:12px;line-height:1.45;margin:4px 0 0}#reticle{position:fixed;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);z-index:6;pointer-events:none}#reticle:before,#reticle:after{content:"";position:absolute;background:#f4e9cfcc}#reticle:before{left:8px;top:2px;width:1px;height:14px}#reticle:after{left:2px;top:8px;width:14px;height:1px}#interact-prompt{position:fixed;left:50%;bottom:22%;transform:translateX(-50%);z-index:7;padding:8px 12px;background:#10232be6;border:1px solid #d6b46e8c;font-size:13px;white-space:nowrap}kbd{background:#e4c47c;color:#16242b;padding:2px 6px;margin-right:7px;border-radius:2px;font-weight:900}#toast{position:fixed;left:50%;top:19%;transform:translateX(-50%);z-index:15;background:#10232bf0;border:1px solid #d8b871;padding:10px 16px;max-width:min(600px,85vw);text-align:center;box-shadow:0 8px 30px #0008}#dialogue{position:fixed;inset:0;z-index:14;display:flex;align-items:flex-end;justify-content:center;padding:0 5vw max(5vh,env(safe-area-inset-bottom));background:linear-gradient(transparent 50%,#07101690);pointer-events:auto}.dialogue-card{width:min(820px,94vw);min-height:150px;padding:22px 28px;background:#10242cef;border:1px solid #d6b46e;box-shadow:0 20px 50px #0009}.dialogue-card strong{display:block;color:#e5bd70;margin-bottom:8px}.dialogue-card p{font-size:clamp(15px,2vw,19px);line-height:1.65;margin:0 0 12px}.dialogue-card small{color:#aaa79e;font-size:10px}.dialogue-card button{margin:5px 6px 0 0}#combat-hud{position:fixed;inset:0;z-index:8;pointer-events:none}.enemy-card{position:absolute;top:14%;left:50%;transform:translateX(-50%);width:min(380px,60vw);text-align:center;text-shadow:0 2px 6px #000}.enemy-card strong{font-family:Georgia,"Nanum Myeongjo",serif;font-size:20px}.enemy-bar{height:8px;background:#100c0d;border:1px solid #d5b48c;margin:7px 0}.enemy-bar i{display:block;width:100%;height:100%;background:#b64f46;transition:width .15s}.enemy-card span{font-size:11px;color:#f0c58a}.combat-help{position:absolute;bottom:8%;left:50%;transform:translateX(-50%);display:flex;gap:8px}.combat-help span{background:#0b1b22cf;border:1px solid #bca06a66;padding:7px 9px;font-size:11px}.combat-help b{color:#e2bd71}#touch{display:none;position:fixed;inset:0;z-index:9;pointer-events:auto}#move-stick{position:absolute;left:max(25px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));width:128px;height:128px;border-radius:50%;background:#0c1b225c;border:1px solid #e7d3a34f;pointer-events:auto;touch-action:none}#move-stick:before{content:"";position:absolute;inset:30%;border:1px solid #fff3;border-radius:50%}#stick-knob{position:absolute;left:50%;top:50%;margin:-23px;width:46px;height:46px;border-radius:50%;background:#d6bd8a70;border:1px solid #f2deb0}#look-pad{position:absolute;right:0;top:0;width:58%;height:100%;pointer-events:auto;touch-action:none;z-index:1}#touch button{position:absolute;width:64px;height:64px;padding:0;border-radius:50%;pointer-events:auto;touch-action:none;z-index:2;background:#122a34a8;border-color:#e0c78b88;font-size:12px}#touch-interact{right:max(106px,env(safe-area-inset-right));bottom:max(108px,env(safe-area-inset-bottom))}#touch-attack{right:max(28px,env(safe-area-inset-right));bottom:max(58px,env(safe-area-inset-bottom))}#touch-resonate{right:max(28px,env(safe-area-inset-right));bottom:max(138px,env(safe-area-inset-bottom))}#touch-evade{right:max(104px,env(safe-area-inset-right));bottom:max(31px,env(safe-area-inset-bottom))}#touch-defend{right:max(104px,env(safe-area-inset-right));bottom:max(183px,env(safe-area-inset-bottom));width:52px!important;height:52px!important}#touch-lantern{right:max(178px,env(safe-area-inset-right));bottom:max(58px,env(safe-area-inset-bottom));width:52px!important;height:52px!important}#touch-menu{right:max(24px,env(safe-area-inset-right));top:max(22px,env(safe-area-inset-top));width:48px!important;height:48px!important}#panel{background:#071218c7;z-index:30}.panel-card{max-height:88vh;overflow:auto}.panel-close{float:right;font-size:24px;border:0;background:none;padding:2px 8px}.panel-card h2{font-family:Georgia,"Nanum Myeongjo",serif;font-size:30px}.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.menu-grid button{text-align:left}.item-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #fff1}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-grid label{display:grid;gap:5px;font-size:12px}.settings-grid input,.settings-grid select{width:100%;accent-color:#d5ae62;background:#10222a;color:#eee;border:1px solid #8e7b58;padding:8px}.chapter-card-inner,.ending-card{text-align:center;position:relative;z-index:1}.chapter-card-inner>*{position:relative;z-index:1}.chapter-card-inner button{z-index:3}.chapter-card-inner h2,.ending-card h2{font-family:Georgia,"Nanum Myeongjo",serif;font-size:clamp(34px,6vw,62px);color:#e9c77d}.chapter-card-inner p,.ending-card p{line-height:1.75}.ending-card #ending-choices{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:25px}#orientation{display:none;position:fixed;inset:0;z-index:50;background:#0d1d25f2;place-items:center;text-align:center;padding:25px}#orientation div{display:grid;gap:7px}#orientation strong{font-size:20px}#orientation span{color:#bbb}.has-touch #touch{display:block!important}.has-touch .combat-help{display:none}.left-handed #move-stick{left:auto;right:max(25px,env(safe-area-inset-right))}.left-handed #touch button{right:auto}.left-handed #touch-interact{left:max(106px,env(safe-area-inset-left))}.left-handed #touch-attack{left:max(28px,env(safe-area-inset-left))}.left-handed #touch-resonate{left:max(28px,env(safe-area-inset-left))}.left-handed #touch-evade{left:max(104px,env(safe-area-inset-left))}.left-handed #touch-defend{left:max(104px,env(safe-area-inset-left))}.left-handed #touch-lantern{left:max(178px,env(safe-area-inset-left))}@media(max-width:650px){#hud{left:10px;right:10px;top:8px}.vitals{top:38px;width:48vw}.resources{font-size:10px;gap:7px}.chapter strong{font-size:14px}#objective{top:75px;left:10px;width:58vw}.dialogue-card{padding:16px 18px;min-height:135px}.panel-card{padding:24px}.settings-grid{grid-template-columns:1fr}.combat-help{bottom:3%}}@media(max-height:480px){#objective{top:54px}.chapter span{display:none}.vitals{top:0}.dialogue-card{min-height:115px;padding:12px 18px}.dialogue-card p{font-size:14px}.enemy-card{top:9%}.title-card,.boot-card,.recovery-card{padding:16px 20px}.title-card h1,.boot-card h1{font-size:42px;margin:5px 0}.title-card>p,.boot-card .lead{margin:6px 0;line-height:1.4}.title-actions{margin:8px 0 6px;gap:5px}.title-actions button{padding:8px 12px}.screen{padding:8px;min-height:100%}.screen>*{margin-top:auto;margin-bottom:auto}}@media(orientation:portrait) and (pointer:coarse){#orientation{display:grid}.portrait-ok #orientation{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
