:root{--ink:#f3ead1;--muted:#b3bb9b;--gold:#e2c27c;--dark:#13291f;--ui-scale:1;color-scheme:dark;font-family:system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#10221a;color:var(--ink);touch-action:none;overscroll-behavior:none}body{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #a9966655;background:#263e2e;color:var(--ink);border-radius:10px;padding:12px 19px;font-weight:700;transition:background .15s,transform .15s}button:hover{background:#3b5339}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f1d489;outline-offset:4px}button:disabled{cursor:default;opacity:.45}.primary{background:var(--gold);color:#243326;border-color:#f9dfa4;box-shadow:0 5px 0 #8b73483d}.primary:hover{background:#f2d58f}.danger{color:#f3b49e;border-color:#aa705a77;background:#593e31}.ghost{background:#10271b66;border-color:#bfac7955}.eyebrow{font-size:10px;letter-spacing:.18em;color:#c3b47d;font-weight:800}.muted{color:var(--muted)}[hidden]{display:none!important}#game{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}#title-screen{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#10241df5 0%,#10241dde 27%,#10241d22 70%,transparent 100%)}.title-brand{position:absolute;top:34px;left:5.5vw;display:flex;align-items:center;gap:13px;font-size:12px;letter-spacing:.16em;color:#d8c997}.title-brand img{width:34px;height:34px}.title-content{position:absolute;left:7%;top:50%;transform:translateY(-44%);width:43%;max-width:510px;pointer-events:auto}.chapter-pill{display:inline-block;border:1px solid #c5b07655;border-radius:30px;font-size:12px;padding:8px 13px;letter-spacing:.08em;color:#ddd2aa;background:#1a3424aa}.title-content h1{font-size:clamp(38px,5.2vw,76px);line-height:1.13;letter-spacing:-.06em;margin:23px 0;color:#f1e7c6;font-weight:900}.title-content h1 em{font-style:normal;color:#e3c17a}.title-content p{font-size:15px;line-height:1.8;max-width:340px;color:#c2c7ab;margin:0 0 29px}.title-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:340px}.title-actions .primary{grid-column:1/-1;font-size:17px;padding:15px}.title-actions .subtle{grid-column:1/-1;background:none;border:none;color:#aeb89b;font-size:12px}.title-footer{position:absolute;bottom:24px;left:5.5vw;right:5.5vw;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#a6b08c;letter-spacing:.04em}#hud{position:fixed;inset:0;pointer-events:none;font-size:calc(12px*var(--ui-scale))}.status-panel{position:absolute;left:max(16px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));width:270px;background:#15291ee8;border:1px solid #b9b17b44;border-radius:12px;padding:11px 13px;box-shadow:0 7px 25px #05170f33}.status-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px}.status-top strong{font-size:calc(14px*var(--ui-scale))}#money{color:#efd48d;font-variant-numeric:tabular-nums}.health-track{height:19px;position:relative;border-radius:6px;background:#17291e;overflow:hidden;border:1px solid #a6bd7944}#health-fill{height:100%;background:linear-gradient(90deg,#7f9d53,#b0c66c);transition:width .15s}.health-track span{position:absolute;inset:0;text-align:center;font-size:11px;line-height:17px;color:#fff8dc;font-weight:800;text-shadow:1px 1px #304728}.equipment{display:flex;justify-content:space-between;gap:6px;margin-top:7px;font-size:11px;color:#d6cba3}#stats{color:#a4b593;font-size:10px}.cooldown-track{height:3px;background:#38513b;margin-top:8px;border-radius:3px;overflow:hidden}#cooldown-fill{height:100%;background:#d2b679}#attack-status{font-size:10px;color:#b7b997;line-height:1.6;margin-top:3px}.location{position:absolute;left:50%;top:19px;transform:translateX(-50%);text-align:center;display:flex;flex-direction:column;gap:6px;white-space:nowrap}.location strong{font-size:14px;text-shadow:1px 2px #12251d}.location .eyebrow{font-size:8px}#pause-button{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));pointer-events:auto;width:40px;height:38px;padding:0;background:#1d3428e6;font-size:17px}#map-panel{position:absolute;right:15px;top:65px;width:142px;background:#142a21dc;border:1px solid #a7ad7433;border-radius:10px;text-align:center;overflow:hidden}#minimap{width:100%;height:auto;display:block}#map-count{font-size:9px;color:#b7bc99;display:block;padding-bottom:8px}#item-strip{position:absolute;top:154px;left:17px;display:flex;gap:3px;max-width:280px;flex-wrap:wrap}.hud-item{width:29px;height:29px;background:#1a3025dd;border:1px solid #a5ad7944;border-radius:7px}.hud-item canvas{width:27px;height:27px}#boss-panel{position:absolute;left:50%;top:69px;transform:translateX(-50%);width:38%;max-width:480px;padding:8px 12px;background:#182b20dd;border-radius:9px;border:1px solid #c09a5d66}.boss-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:7px;color:#f0d6a0}.boss-track{height:7px;border-radius:5px;overflow:hidden;background:#362e23}#boss-fill{height:100%;background:linear-gradient(90deg,#ae754a,#dfb265)}#interaction{position:absolute;left:50%;bottom:17%;transform:translateX(-50%);padding:9px 16px;border:1px solid #d7c88b77;background:#192e22ec;border-radius:30px;color:#eee0b5;font-size:12px;text-align:center;max-width:85%}#toast{position:absolute;left:50%;bottom:6%;transform:translateX(-50%);padding:11px 18px;border-radius:10px;background:#1b3023eb;border:1px solid #b1b27d44;max-width:640px;width:max-content;max-width:min(640px,88vw);font-size:12px;line-height:1.6;text-align:center;color:#d8dbb8}#touch-controls{position:fixed;inset:0;pointer-events:none;z-index:3}.touch-zone{position:absolute;top:45%;bottom:0;pointer-events:auto;touch-action:none}.touch-zone span{position:absolute;bottom:58px;left:30%;border:1px solid #c9cc9c33;border-radius:50%;width:76px;height:76px;text-align:center;line-height:76px;background:#253a2522;color:#c9d3b15c;font-size:12px}#left-zone{left:0;width:46%}#right-zone{left:50%;width:50%}#right-zone span{left:18%}.stick{position:fixed;width:94px;height:94px;margin:-47px 0 0 -47px;border-radius:50%;background:#aabb7122;border:2px solid #e9d79766;pointer-events:none}.stick i{position:absolute;width:38px;height:38px;left:26px;top:26px;background:#dfd59d77;border:1px solid #efe2b9bb;border-radius:50%}.touch-button{position:absolute;pointer-events:auto;touch-action:none;display:grid;place-items:center;border-radius:50%;padding:0;color:#efe1b7;background:#20392bd9;border:2px solid #c7b77877;font-size:calc(14px*var(--ui-scale))}.touch-button.held{background:#ae985b;color:#192b1c}#attack-button{right:max(20px,env(safe-area-inset-right));bottom:max(29px,env(safe-area-inset-bottom));width:calc(78px*var(--ui-scale));height:calc(78px*var(--ui-scale));box-shadow:0 0 0 8px #c6b1760c}#interact-button{right:max(27px,env(safe-area-inset-right));bottom:126px;width:calc(61px*var(--ui-scale));height:calc(61px*var(--ui-scale));font-size:12px}#overlay{position:fixed;inset:0;z-index:10;background:#07180fbd;display:flex;justify-content:center;align-items:center;padding:18px;backdrop-filter:blur(5px);touch-action:auto}.dialog{width:min(960px,100%);max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain;background:linear-gradient(140deg,#2b4231,#1a2e22);border:1px solid #9f9f685e;border-radius:21px;box-shadow:0 22px 90px #0005;padding:28px;position:relative;touch-action:pan-y}.dialog.narrow{max-width:580px}.dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.dialog-head h2{font-size:27px;letter-spacing:-.035em;margin:8px 0 10px}.dialog-head p{font-size:13px;line-height:1.7;color:#b9c4a6;margin:0}.close-button{width:35px;height:35px;padding:0;flex:none;background:#183022;font-size:19px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}.choice-card{border:1px solid #9eaa713f;background:#142c21a0;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;padding:17px}.choice-card.current{border-color:#dfc68399;background:#3b4d30}.choice-card .preview{width:100%;height:120px;object-fit:contain;display:block;margin:0 auto 5px}.choice-card h3{font-size:20px;letter-spacing:-.04em;margin:0 0 7px}.choice-card .badge{font-size:10px;letter-spacing:.06em;color:#dcc58b;margin-bottom:7px}.choice-card p{font-size:12px;color:#b8c4a6;line-height:1.7;min-height:63px;margin:8px 0 15px}.choice-card .numbers{font-size:12px;display:flex;flex-wrap:wrap;gap:5px 11px;color:#e4dab4;padding-top:9px;border-top:1px solid #a8b17a29}.choice-card button{margin-top:auto;width:100%;padding:10px 6px;font-size:13px}.choice-card.locked{background:#12271b}.choice-card.locked .preview{opacity:.7}.dialog-foot{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}.copy{font-size:14px;line-height:1.9;color:#cfdbc0}.copy strong{color:#e7d6a0}.control-table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.5}.control-table th,.control-table td{text-align:left;padding:12px 9px;border-bottom:1px solid #a8b37c25}.control-table th{color:#dfc68a}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-group{border:1px solid #9da87b3b;padding:17px;border-radius:13px;background:#142b2080}.settings-group h3{margin:0 0 18px;font-size:15px;color:#e3cf98}.setting{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:12px;margin:14px 0;color:#ced5b8}.setting input[type=range]{width:50%;accent-color:#dbbd79;touch-action:auto}.setting input[type=checkbox]{accent-color:#dbbd79;width:18px;height:18px}.setting select{padding:5px;background:#2c432c;border:1px solid #9baa7155;border-radius:5px}.button-row{display:flex;gap:9px;flex-wrap:wrap}.button-row button{font-size:12px;padding:10px 12px}.settings-grid .wide{grid-column:1/-1}.award{text-align:center;padding:10px 16px}.award>.preview{width:230px;height:160px;display:block;margin:auto}.award h2{font-size:29px;color:#eed38e;margin:8px 0 16px}.award p{font-size:14px;line-height:1.8;color:#d2d9ba}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.result-grid div{padding:15px;background:#132c20;border:1px solid #a5ad7338;border-radius:10px}.result-grid small{display:block;color:#b4bd9b;font-size:11px}.result-grid strong{display:block;font-size:24px;margin-top:8px;color:#eed495}.result-items{display:flex;gap:8px;flex-wrap:wrap}.item-chip{font-size:11px;background:#31492e;border:1px solid #8fa06f44;border-radius:20px;padding:7px 11px}.chapter-card{padding:27px;border:1px solid #c3bc7a55;border-radius:15px;background:radial-gradient(ellipse at top right,#7b8f4a66,transparent),#233c2a}.chapter-card h3{font-size:34px;margin:12px 0}.chapter-card p{font-size:14px;line-height:1.8;color:#c4ceaa}#boot{position:fixed;inset:0;background:#142c23;display:grid;place-items:center;z-index:30;color:#d9cc98}#fatal{position:fixed;bottom:10px;left:10px;right:10px;background:#5f3229;color:#ffe3c8;padding:15px;z-index:50;font-size:13px}
@media(max-width:900px){.cards.four{grid-template-columns:repeat(2,1fr)}.dialog{padding:21px}.status-panel{width:238px}.location{top:17px}.location .eyebrow{display:none}#boss-panel{width:34%;top:47px}#map-panel{width:110px;top:60px}#item-strip{top:148px}}
@media(max-height:520px) and (orientation:landscape){.title-brand{top:16px}.title-content{top:49%;transform:translateY(-43%)}.title-content h1{font-size:40px;margin:12px 0}.title-content p{font-size:12px;margin-bottom:15px}.chapter-pill{font-size:10px;padding:5px 10px}.title-actions{gap:6px}.title-actions button{padding:8px;font-size:11px}.title-actions .primary{padding:10px;font-size:14px}.title-footer{bottom:10px;font-size:9px}.title-brand{font-size:10px}.status-panel{width:215px;top:8px;left:8px;padding:8px 10px}.status-top{margin-bottom:4px}.status-top strong{font-size:12px}.health-track{height:15px}.health-track span{line-height:13px;font-size:9px}.equipment{font-size:10px;margin-top:4px}.cooldown-track{margin-top:5px}#attack-status{font-size:9px}#item-strip{top:119px;left:9px}.location{top:10px}.location strong{font-size:12px}#map-panel{width:90px;right:9px;top:52px}#pause-button{right:9px;top:8px;width:33px;height:32px}#map-count{font-size:8px}#boss-panel{top:37px;width:36%;padding:5px 9px}.boss-label{font-size:10px;margin-bottom:4px}#toast{bottom:3%;font-size:10px;padding:7px 12px;max-width:55vw}#interaction{bottom:14%;font-size:10px;padding:7px 12px}.touch-zone span{bottom:25px;width:67px;height:67px;line-height:67px}#attack-button{width:66px;height:66px;bottom:16px;right:17px}#interact-button{bottom:95px;right:21px;width:56px;height:56px}.dialog{max-height:calc(100dvh - 20px);padding:17px}.dialog-head{margin-bottom:13px}.dialog-head h2{font-size:22px;margin:4px 0 6px}.choice-card{padding:12px}.choice-card .preview{height:84px}.choice-card p{min-height:45px;font-size:11px}.dialog-foot{margin-top:15px}}
@media(max-width:620px) and (orientation:portrait){.title-brand{top:23px;left:7%;font-size:10px}.title-content{left:7%;width:86%;top:45%;max-width:430px}.title-content h1{font-size:57px}.title-content p{font-size:14px;max-width:310px}.title-content .title-actions{max-width:330px}.title-footer{font-size:9px;left:7%;right:7%;bottom:21px;display:block;line-height:2}#title-screen{background:linear-gradient(90deg,#10241df5,#10241da8 70%,#10241d33)}.status-panel{top:12px;left:10px;width:calc(100% - 113px);max-width:300px;padding:10px}.status-top strong{font-size:13px}.location{top:153px;left:50%}.location strong{font-size:13px}#item-strip{top:182px;left:12px;max-width:calc(100% - 24px)}#map-panel{top:63px;right:9px;width:94px}#pause-button{top:12px;right:12px}.equipment{font-size:10px}#stats{font-size:9px}#boss-panel{top:218px;width:72%;padding:7px 10px}.boss-label{font-size:10px}#toast{bottom:208px;max-width:90%;font-size:11px;padding:8px 12px}#interaction{bottom:258px;font-size:11px;white-space:nowrap}.touch-zone{top:56%}.touch-zone span{bottom:62px;left:28%}#right-zone span{left:2%;bottom:76px}#attack-button{bottom:35px;right:16px;width:73px;height:73px}#interact-button{bottom:131px;right:22px;width:58px;height:58px}.cards,.cards.four{grid-template-columns:1fr}.choice-card{display:grid;grid-template-columns:100px 1fr;column-gap:13px;padding:14px}.choice-card .preview{grid-column:1;grid-row:1/6;height:115px;width:100px;margin:auto}.choice-card .badge,.choice-card h3,.choice-card .numbers,.choice-card p,.choice-card button{grid-column:2}.choice-card h3{font-size:18px}.choice-card p{min-height:0;font-size:11px;margin:8px 0 10px}.choice-card .numbers{font-size:11px}.choice-card button{font-size:12px;padding:8px}.choice-card .badge{font-size:9px}.dialog{border-radius:15px;padding:18px;max-height:calc(100dvh - 20px)}#overlay{padding:10px}.dialog-head{gap:8px;margin-bottom:15px}.dialog-head h2{font-size:23px}.dialog-head p{font-size:12px}.settings-grid{grid-template-columns:1fr;gap:12px}.dialog-foot button{flex:1;padding:11px;font-size:12px}.result-grid{gap:7px}.result-grid div{padding:12px 8px}.result-grid strong{font-size:20px}.control-table{font-size:10px}.control-table th,.control-table td{padding:10px 5px}.award{padding:5px}.award h2{font-size:24px}.award p{font-size:12px}.chapter-card{padding:20px}.chapter-card h3{font-size:28px}}

/* Cinematic controls stay in CSS pixels: captions remain readable on phones. */
#opening{position:fixed;inset:0;z-index:20;background:#090d0c;touch-action:manipulation;user-select:none;overflow:hidden}
#opening-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.opening-top{position:absolute;inset:max(22px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) auto max(28px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:16px}
#opening-label{font-size:12px;letter-spacing:.13em;color:#d1ba83;text-shadow:0 2px 8px #000}
.opening-top>div{display:flex;gap:9px}.opening-top button{font-size:12px;background:#121915b8;border:1px solid #b9a97777;padding:10px 17px;border-radius:30px;color:#e7dcb8;backdrop-filter:blur(8px)}
.opening-caption{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(840px,88%);min-height:108px;padding:18px 28px 12px;background:linear-gradient(100deg,#101a18ed,#101816da);border:1px solid #bca76b3b;border-left:3px solid #c4a965;border-radius:3px 13px 13px 3px;box-shadow:0 10px 40px #0005;pointer-events:none}
#opening-speaker{font-size:12px;color:#dfbd74;letter-spacing:.16em}.opening-caption p{font-size:clamp(16px,1.5vw,22px);line-height:1.65;color:#f4edd9;margin:9px 0 13px;min-height:2.9em;word-break:keep-all;overflow-wrap:anywhere;letter-spacing:.01em}.opening-caption small{display:block;text-align:right;color:#a0aa99;font-size:10px}
.opening-track{position:absolute;bottom:0;left:0;right:0;height:2px;background:#d7c18110}.opening-track i{display:block;height:100%;background:#d5b56d;box-shadow:0 0 9px #f3da8a77}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:620px) and (orientation:portrait){.opening-top{inset:max(18px,env(safe-area-inset-top)) 16px auto;align-items:flex-start;gap:12px;flex-direction:column}.opening-top>div{align-self:flex-end}.opening-top button{padding:9px 14px;font-size:11px}#opening-label{font-size:10px}.opening-caption{bottom:max(25px,env(safe-area-inset-bottom));width:91%;padding:17px 18px 14px;min-height:170px}.opening-caption p{font-size:16px;min-height:5em;line-height:1.8;margin-top:12px}.opening-caption small{font-size:9px}#opening-speaker{font-size:11px}}
@media(max-height:520px) and (orientation:landscape){.opening-top{inset:12px 18px auto}#opening-label{font-size:9px}.opening-top button{padding:6px 11px;font-size:10px}.opening-caption{bottom:12px;min-height:0;padding:9px 17px;width:76%}.opening-caption p{font-size:14px;min-height:1.6em;margin:5px 0}#opening-speaker{font-size:9px}.opening-caption small{font-size:8px}}
