@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800;900&family=Noto+Serif+KR:wght@500;700&display=swap');
:root{color-scheme:dark;--ivory:#fff7df;--gold:#edca83;--mint:#94e4c2}*{box-sizing:border-box}body{margin:0;background:#243d40;color:var(--ivory);font-family:'Noto Sans KR',sans-serif;overflow:hidden}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}.grain,.vignette{position:fixed;inset:0;pointer-events:none}.vignette{background:radial-gradient(ellipse at 50% 40%,transparent 48%,#11251f4a 100%)}.grain{opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}.screen{position:fixed;inset:0;z-index:5;min-height:100svh}#title-screen{background:linear-gradient(90deg,#112322e6 0%,#14282e99 34%,#192f3410 72%);padding:40px 5.5vw;display:flex;flex-direction:column;justify-content:center}.brand{position:absolute;left:5.5vw;top:36px;display:flex;gap:18px;color:var(--ivory);text-decoration:none;letter-spacing:.2em;font-size:13px;font-weight:800}.brand span{color:#c0d4c2;font-size:9px;font-weight:500;padding-top:3px}.title-copy{max-width:560px}.eyebrow{font-size:10px;letter-spacing:.28em;color:var(--gold);font-weight:600;margin:0 0 24px}h1{font-family:'Noto Serif KR',serif;font-weight:700;font-size:clamp(70px,8vw,120px);line-height:1.15;letter-spacing:.12em;margin:0;text-shadow:0 3px 28px #051c2460}h1 span{display:block;font:500 22px 'Noto Sans KR',sans-serif;letter-spacing:.42em;margin:24px 0 32px}.intro{font-size:14px;line-height:2.1;color:#e2e9d9}.primary{border:1px solid #e4cd91;background:#eee4c3;color:#22392f;min-height:56px;padding:15px 24px;width:100%;display:flex;align-items:center;justify-content:space-between;font-weight:700;transition:background .2s,transform .2s}.title-copy .primary{max-width:330px;margin-top:30px}.primary:hover{background:#fff2cd;transform:translateY(-2px)}.load-track{width:min(330px,100%);height:2px;background:#bdb89533;margin-top:9px}.load-track i{display:block;background:var(--gold);height:100%;width:0;transition:width .3s}.muted{color:#c0cebb;font-size:11px;line-height:1.8}.text-button{background:transparent;border:0;padding:12px 0;color:#d6e6d7;font-size:12px;text-decoration:underline;text-underline-offset:6px}.edition{position:absolute;right:5vw;bottom:70px;text-align:right}.edition span{font-size:9px;letter-spacing:.25em;color:#f0db9f}.edition p{font:500 22px 'Noto Serif KR';letter-spacing:.12em}.edition small{font-size:10px;color:#d9e8d0}.desktop-hint{position:absolute;left:5.5vw;bottom:28px;font-size:10px;letter-spacing:.06em;color:#c8d8ca}.overlay{background:#12251bdc;backdrop-filter:blur(12px);display:grid;place-items:center;padding:24px;overflow:auto}.panel{width:min(460px,100%);padding:24px 10px;display:flex;flex-direction:column;gap:16px}.panel h2{font:500 32px 'Noto Serif KR';margin:0 0 12px;line-height:1.5}.panel p{font-size:13px;line-height:1.9;margin:0}.panel .eyebrow{font-size:10px}.panel a{font-size:12px;color:#d6dfcc;text-align:center}.secondary{background:transparent;border:1px solid #91ae9766;color:#e5efd5;padding:15px}.quality-label{font-size:11px;color:#c7d5bf;display:flex;flex-direction:column;gap:8px}select{background:#284235;color:var(--ivory);border:1px solid #8b9d8566;padding:12px;font-size:12px}.panel dl{margin:0;display:grid;gap:16px}.panel dl>div{border-bottom:1px solid #bcd3b221;padding-bottom:12px}.panel dt{font-size:13px;color:var(--gold);margin-bottom:6px}.panel dd{margin:0;font-size:12px;line-height:1.8;color:#dbe5d2}#hud{position:fixed;inset:0;pointer-events:none;z-index:2;text-shadow:0 2px 6px #0c221daa}.hud-top{display:flex;justify-content:space-between;align-items:flex-start;padding:max(24px,env(safe-area-inset-top)) 32px;background:linear-gradient(#0d302e75,transparent)}.hero-name{font-size:10px;letter-spacing:.15em;margin:0 0 6px;color:#e5ebd6}#hearts{font-size:22px;letter-spacing:3px;color:#f2ac95}.stamina-track{width:132px;background:#15342488;height:4px;border-radius:3px;margin-top:9px}.stamina-track i{display:block;height:100%;background:var(--mint);transition:width .1s}.quest{text-align:center;margin-top:4px}.quest>span{font-size:9px;letter-spacing:.15em;color:var(--gold)}.quest p{margin:7px 0;font-size:15px}.quest small{font-size:11px;color:#ddedd3}.top-actions{display:flex;gap:10px;pointer-events:auto}.top-actions button{background:#203e3277;border:1px solid #e2ead355;color:var(--ivory);border-radius:50%;width:40px;height:40px;font-size:19px;backdrop-filter:blur(4px)}.hud-bottom{position:absolute;left:30px;right:30px;bottom:max(22px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;gap:20px}.map-wrap{display:flex;flex-direction:column;align-items:center;gap:7px}.map-wrap canvas{width:132px;height:132px;border-radius:50%;border:1px solid #dbcea478;background:#1e3a2caa;box-shadow:0 0 0 5px #192f2355}.map-wrap span{font-size:10px;letter-spacing:.12em}.inventory{display:flex;flex-direction:column;padding-bottom:23px}.inventory span{font-size:9px;color:#dcecd0}.inventory strong{font:500 28px 'Noto Serif KR'}.inventory small{color:var(--gold);font-size:10px}#keyboard-hint{font-size:10px;letter-spacing:.03em;margin-left:auto;margin-bottom:8px}#objective-arrow{position:absolute;left:50%;top:19%;color:var(--gold);font-size:25px;opacity:.6}#toast{position:absolute;top:24%;left:50%;transform:translateX(-50%);width:max-content;max-width:80%;text-align:center;border-top:1px solid #e4d29188;border-bottom:1px solid #e4d29155;padding:14px 28px;background:#17332388;backdrop-filter:blur(8px);font-size:13px;line-height:1.8;opacity:0;transition:opacity .3s;pointer-events:none}#toast.visible{opacity:1}.interact{position:absolute;bottom:23%;left:50%;transform:translateX(-50%);padding:14px 24px;border:1px solid var(--gold);background:#23382de0;color:var(--ivory);pointer-events:auto;font-size:13px}.interact kbd{margin-left:15px;padding:2px 6px;border:1px solid #edd19b66}#boss-health{position:absolute;top:145px;left:50%;transform:translateX(-50%);width:min(380px,50%);text-align:center;font-size:11px;letter-spacing:.13em}#boss-health>div{height:4px;background:#253b34;margin-top:8px}#boss-health i{display:block;height:100%;background:#ebb091;width:100%}#hit-overlay{position:absolute;inset:0;box-shadow:inset 0 0 100px #9b28388c;opacity:0;transition:opacity .15s}#touch-controls{display:none;position:absolute;inset:0;pointer-events:none}#joystick{pointer-events:auto;touch-action:none;position:absolute;left:25px;bottom:55px;width:112px;height:112px;border-radius:50%;border:1px solid #e2edcb66;background:#12342e44}#joystick i{position:absolute;width:43px;height:43px;left:34px;top:34px;background:#dbe8cf77;border:1px solid #e9e8c599;border-radius:50%;pointer-events:none}.touch-actions{position:absolute;bottom:50px;right:20px;display:flex;align-items:flex-end;gap:10px;pointer-events:auto}.touch-actions button{touch-action:none;background:#183c32aa;border:1px solid #e5dfa977;color:var(--ivory);border-radius:50%;height:56px;width:56px;font-size:11px}.touch-actions button[data-action=attack]{width:70px;height:70px;background:#8f784199}.touch-actions small{font-size:8px;color:#c9ddc5}#end-stats{display:flex;gap:20px;border-top:1px solid #cfcea255;border-bottom:1px solid #cfcea255;padding:20px 0;margin:12px 0;font-size:13px;line-height:2}.end-panel h2{font-size:40px}
@media(pointer:coarse){#touch-controls{display:block}#keyboard-hint,.desktop-hint{display:none}.hud-bottom{bottom:190px}.map-wrap canvas{width:85px;height:85px}.inventory{padding-bottom:10px}.interact{bottom:190px}}
@media(max-width:700px){#title-screen{padding:90px 7vw 50px;justify-content:center;background:linear-gradient(90deg,#102c25db,#173c3290 58%,#18363244)}.brand{top:25px;left:7vw}.brand span{font-size:8px}h1{font-size:76px}h1 span{font-size:19px;margin:18px 0 22px}.eyebrow{font-size:8px;letter-spacing:.19em}.intro{font-size:12px}.title-copy .primary{margin-top:22px;min-height:52px}.edition{right:7vw;bottom:22px}.edition span{font-size:7px}.edition p{font-size:12px;margin:6px 0}.edition small{font-size:8px}.hud-top{padding:20px 18px}.quest{position:absolute;top:80px;left:20px;text-align:left}.quest p{font-size:12px}.quest small{font-size:10px}.top-actions button{width:34px;height:34px}.hud-bottom{left:18px;right:18px}.hero-name{font-size:9px}#hearts{font-size:18px}.stamina-track{width:116px}#boss-health{top:158px;width:60%}#toast{top:30%;font-size:12px;padding:12px 18px}.touch-actions{gap:7px;right:16px}.touch-actions button{width:46px;height:46px}.touch-actions button[data-action=attack]{width:61px;height:61px}#joystick{left:18px;width:100px;height:100px}#joystick i{left:28px;top:28px}.interact{font-size:11px;padding:12px 16px}.panel h2{font-size:28px}.panel dl{gap:9px}.panel dd{font-size:11px}.panel{padding:10px 0}}
@media(max-height:600px){.title-copy{margin-top:30px}h1{font-size:64px}h1 span{margin:10px 0 15px;font-size:16px}.intro{display:none}.title-copy .primary{margin-top:10px}.edition{bottom:30px}.eyebrow{margin-bottom:14px}.map-wrap canvas{width:85px;height:85px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
