:root{color-scheme:dark;--bg:#0b0c19;--card:#17182c;--card2:#20213a;--lav:#c7a5ff;--line:#51467e;--gold:#f2d084;--mint:#74ddac;--muted:#a7a1c4;--text:#f5edff;--pink:#ff7fbb}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}body{font-family:ui-sans-serif,system-ui,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;background:radial-gradient(ellipse at 50% 0%,#34224d 0,#121225 42%,#090b16 100%);color:var(--text);-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.44;cursor:not-allowed}#app{max-width:490px;margin:auto;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom);position:relative;background:linear-gradient(180deg,#20182eaa 0%,#0c1025ee 65%,#101026 100%);box-shadow:0 0 80px #000a}.topbar{height:60px;padding:9px 15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #65518a;background:#0d0c20af}.brand{display:flex;gap:9px;align-items:center}.brand-moon{font-family:Georgia,serif;color:#d8b9ff;font-size:37px;text-shadow:0 0 14px #b677fb}.eyebrow{letter-spacing:1.7px;color:#9387b4;font-size:8px}.brand-title{font-family:Georgia,serif;font-weight:900;font-size:21px;letter-spacing:1px;line-height:1.2;text-shadow:0 0 13px #c193ff66}.brand-title span{font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.2px}.iconbtn{height:37px;width:40px;border:1px solid #8071b1;background:#251f3e;border-radius:9px;font-size:20px}.game-root{padding:11px 12px 8px}.hud{height:91px;display:flex;gap:9px;align-items:stretch}.portrait{background:linear-gradient(155deg,#42315c,#171a31);width:74px;min-width:74px;display:flex;flex-direction:column;justify-content:center;align-items:center;border:2px solid #74609c;border-radius:10px}.portrait-face{font-size:35px;line-height:1.2;filter:drop-shadow(0 0 6px #c5b2fa)}.portrait-label{font-family:Georgia,serif;color:#d8c0fb;font-size:9px;letter-spacing:2px}.stat-main{flex:1;min-width:0}.statline{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;gap:4px;font-size:14px}.statline small{color:var(--lav);font-size:10px}.floor{color:var(--gold);white-space:nowrap}.meterrow{display:flex;align-items:center;gap:5px;height:20px}.meterrow>span{min-width:39px;font-size:10px;font-weight:800;color:#dfd1ef}.meterrow>b{font-size:10px;min-width:37px;text-align:right;font-variant-numeric:tabular-nums}.meter{height:9px;flex:1;background:#090c1e;border:1px solid #6f6490;overflow:hidden;border-radius:8px}.fill{height:100%;width:100%;transition:width .18s}.fill.hp{background:linear-gradient(90deg,#389e83,#83f5ae)}.fill.sp{background:linear-gradient(90deg,#586bd5,#92d6ff)}.fill.hunger{background:linear-gradient(90deg,#e28b4d,#ffdd79)}.hud-right{width:62px;display:flex;align-items:end;flex-direction:column;justify-content:space-around}.coin{display:flex;gap:4px;color:var(--gold);font-size:13px;align-items:center}.coin span{font-size:17px}.step{font-size:10px;color:var(--muted)}.worldbox{margin-top:8px;border:1px solid #5b5288;border-radius:12px;overflow:hidden;background:#0c1020;box-shadow:inset 0 0 20px #8a68ff20,0 7px 20px #0005}.dungeon-heading{height:42px;padding:5px 11px;display:flex;align-items:center;justify-content:space-between;background:#17172e}.dungeon-heading>div:first-child{display:flex;flex-direction:column}.dungeon-heading b{font-size:12px;color:#e8d6ff}.dungeon-heading span{font-size:10px;color:#a69dc2;margin-top:2px}.mini-wrap{width:38px;height:38px;border:1px solid #746aa0;border-radius:5px;background:#0c1424;overflow:hidden}#miniMap{display:block;width:100%;height:100%;image-rendering:pixelated}.mapframe{width:100%;position:relative;aspect-ratio:1/1;overflow:hidden;background:#101824;touch-action:none;user-select:none}#map{width:100%;height:100%;display:block;image-rendering:pixelated;image-rendering:crisp-edges}.toast{position:absolute;top:9px;left:50%;transform:translateX(-50%);background:#10112cdd;border:1px solid #b596fe;padding:5px 10px;border-radius:14px;color:#f1e2ff;white-space:nowrap;font-size:11px;pointer-events:none;opacity:0;transition:opacity .2s;box-shadow:0 0 15px #0009;max-width:95%;text-overflow:ellipsis;overflow:hidden}.toast.show{opacity:1}.turn-tag{position:absolute;bottom:7px;right:7px;font-size:9px;border-radius:6px;padding:4px 6px;background:#070a18bc;color:#d1b9f7;pointer-events:none}.message-strip{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;font-size:11px;color:#d6d5f5;background:#131326}.message-strip>span:first-child{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progressPill{flex-shrink:0;background:#342e53;color:#d5c1ff;border-radius:12px;padding:4px 7px;font-size:9px}.control-wrap{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px auto 10px;max-width:400px;min-height:132px}.dpad{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:138px;min-width:138px;height:138px;gap:3px;place-items:stretch}.pad{background:linear-gradient(160deg,#484279,#282747);border:2px solid #9180e5;border-radius:12px;box-shadow:inset 0 0 9px #9f8bff33,0 1px 9px #866cff44;color:#e9dcff;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;user-select:none}.pad:active{background:#8572cc;transform:scale(.95)}.pad.up{grid-column:2;grid-row:1}.pad.left{grid-column:1;grid-row:2}.pad.center{grid-column:2;grid-row:2;border-color:#48416f;font-size:19px}.pad.right{grid-column:3;grid-row:2}.pad.down{grid-column:2;grid-row:3}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:166px}.action{border:2px solid #7770af;border-radius:50%;width:78px;height:64px;max-width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1.1;box-shadow:inset 0 0 10px #7471d833,0 3px 8px #0005;background:radial-gradient(circle at 30% 20%,#45426f,#1d1b3d)}.action span{font-size:26px;color:#f9e9ff;line-height:1.1}.action b{font-size:11px;margin-top:4px}.action small{font-size:8px;color:#c0b3f2}.action.attack{border-color:#aa7fb4}.action.skill{border-color:#878deb}.action:active{transform:scale(.95);filter:brightness(1.2)}.quickbar{display:flex;align-items:center;gap:7px;margin:2px 1px}.quick{display:flex;gap:5px;align-items:center;padding:7px 8px;border:1px solid #615c87;background:#20213b;border-radius:10px}.quick span{font-size:19px}.quick small{font-size:10px;color:#e8def9;white-space:nowrap}.campbtn{margin-left:auto;padding:10px 9px;border:1px solid #9a77ab;background:#312347;color:#e6d3ff;border-radius:10px;font-size:10px;font-weight:700}.footnote{text-align:center;color:#8d7ba8;font-size:9px;letter-spacing:1px;margin-top:12px}.hidden{display:none!important}.modal-shade,.camp-screen{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#060811e9;backdrop-filter:blur(7px)}.modal-shade{padding:16px}.modal{background:linear-gradient(145deg,#2c2249,#17182d 70%);border:2px solid #8474be;box-shadow:0 18px 60px #000c,0 0 28px #7953b533;border-radius:17px;padding:25px 20px 20px;text-align:center;width:min(100%,405px);position:relative;max-height:90dvh;overflow-y:auto}.modal-close{position:absolute;top:11px;right:11px;background:#25243e;border:1px solid #766495;color:#eaddff;width:32px;height:32px;border-radius:10px}.modal-icon{font-size:41px;color:var(--gold);text-shadow:0 0 20px #c4a5fc}.modal h2{font-size:20px;margin:10px 0;color:#faedff}.modal p{color:#c9c1d8;font-size:13px;line-height:1.8;margin:8px 0}.modal .infobox{background:#121626;border:1px solid #46446b;border-radius:9px;padding:9px;font-size:12px;line-height:1.65;color:#d8c8eb;text-align:left}.modal-actions{display:grid;gap:8px;margin-top:18px}.modal-actions button,.primary{border-radius:11px;border:1px solid #b4a1f4;padding:12px 14px;background:linear-gradient(90deg,#7b5ab3,#533c8f);font-weight:800;font-size:14px;box-shadow:0 5px 15px #0005}.modal-actions button.secondary{background:#24203e;color:#d7cfeb;border-color:#72618a}.modal-actions button.danger{background:#492838;border-color:#b56783}.camp-screen{z-index:80;display:block;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 50% 4%,#49316c,#14152e 45%,#0d1024 100%)}.camp-content{max-width:490px;padding:28px 20px 38px;margin:0 auto}.camp-kicker{color:#ccb3ee;font-size:11px;letter-spacing:3px;text-align:center}.camp-content h1{font-family:Georgia,serif;font-size:28px;color:#f0dcff;text-align:center;margin:6px 0 7px;text-shadow:0 0 23px #cd9cff70}.camp-lead{text-align:center;color:#c1b7d3;font-size:13px;line-height:1.6;margin:0}.camp-yona{width:100%;height:122px;margin:10px auto 12px;display:flex;justify-content:center;align-items:center;border:1px solid #695586;border-radius:13px;background:radial-gradient(ellipse at 50% 90%,#574174,#201a36 55%,#151627)}#campArt{width:225px;height:120px;image-rendering:pixelated}.camp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 13px}.camp-stats>div{background:#1e203a;border:1px solid #5d5586;border-radius:9px;display:flex;flex-direction:column;padding:10px 6px;text-align:center}.camp-stats span{font-size:10px;color:#b4aac7}.camp-stats b{font-size:21px;color:#f8db9f;margin-top:3px}.primary{width:100%;display:flex;justify-content:space-between;align-items:center;font-size:17px;padding:14px}.primary span{font-size:11px;color:#eee2fc}.camp-section-title{display:flex;align-items:center;justify-content:space-between;margin:21px 0 9px;color:#f5e5ff;font-size:15px;font-weight:800}.camp-section-title small{font-size:9px;font-weight:400;color:#aa9bc7}.upgrade-list{display:grid;gap:8px}.upgrade{width:100%;background:#201b34;border:1px solid #685588;border-radius:11px;padding:11px 9px;display:flex;gap:11px;text-align:left;align-items:center}.upico{border-radius:10px;background:#3a2b52;width:43px;height:43px;display:flex;align-items:center;justify-content:center;font-size:26px}.upbody{flex:1;display:flex;flex-direction:column;gap:4px}.upbody strong{font-size:13px}.upbody small{font-size:10px;color:#bbb0d1}.upcost{color:#f3d289;font-size:12px;font-weight:800}.achievements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.achieve{background:#16182b;border:1px solid #575272;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px;font-size:11px;color:#bcb2ce}.achieve.done{border-color:#8f7ab9;color:#f1e4ff;background:#28233f}.achieve strong{font-size:12px}.achieve span{font-size:10px;line-height:1.4}.save-note{font-size:10px;line-height:1.8;color:#a49ab7;text-align:center;margin-top:20px}@media(max-width:365px){.game-root{padding:8px 8px}.hud{gap:6px}.portrait{width:62px;min-width:62px}.dpad{width:120px;min-width:120px;height:120px}.actions{width:148px;gap:5px}.action{width:70px;height:60px}.quick{padding:7px 5px}.campbtn{padding:9px 5px}.brand-title{font-size:19px}}@media(min-width:500px){.modal-shade,.camp-screen{padding-left:calc((100vw - 490px)/2);padding-right:calc((100vw - 490px)/2)}}

.portrait{overflow:hidden;position:relative}.portrait-face{display:block;width:100%;height:100%;background:url("assets/yona_portrait.webp") center/cover no-repeat;image-rendering:auto;filter:none}.portrait-label{display:none}

/* v0.2: arcade-powered exploration loop */
.points-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:9px 10px;background:linear-gradient(110deg,#392951,#202444);border:1px solid #9177bb;border-radius:10px;box-shadow:0 0 16px #a17bff14}
.points-bar-value{display:flex;align-items:baseline;gap:5px;white-space:nowrap;min-width:0}.points-bar-value>span{font-size:11px;color:#e1d1ff;font-weight:700}.points-bar-value strong{font-size:23px;font-weight:900;color:#ffd997;font-variant-numeric:tabular-nums}.points-bar-value small{color:#b8a7d7;font-size:10px}.points-bar-button{border:1px solid #b799ed;padding:9px 10px;border-radius:9px;background:linear-gradient(125deg,#6348a3,#3a2c71);font-size:10px;font-weight:750;white-space:nowrap;box-shadow:0 2px 8px #0004}.points-bar-button span:not(:empty){padding:1px 5px;border-radius:7px;background:#f5d48d;color:#282143;margin-left:3px}
.camp-adventure-panel{margin:10px 0 11px;padding:12px 13px;background:linear-gradient(125deg,#423060,#222643);border:1px solid #947bcb;border-radius:12px;display:flex;align-items:center;gap:10px;justify-content:space-between}.camp-adventure-panel>div{display:flex;flex-direction:column;gap:4px;min-width:0}.camp-adventure-panel span{font-size:11px;color:#d6c4ea}.camp-adventure-panel strong{color:#fbe0a4;font-size:17px}.camp-adventure-panel small{font-size:10px;color:#beb2da}.camp-adventure-panel button{border-radius:9px;background:#7b55bb;border:1px solid #bda2ee;padding:12px 9px;font-size:11px;font-weight:800;flex-shrink:0}
.camp-mission-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.camp-mission-preview>div{display:flex;flex-direction:column;gap:4px;background:#1f2039;border:1px solid #5a4e7c;border-radius:9px;padding:9px}.camp-mission-preview strong{font-size:11px}.camp-mission-preview span{font-size:10px;color:#c7b5e3}.camp-relics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.camp-relic{background:#20213a;border:1px solid #635780;border-radius:10px;padding:8px 4px;min-height:77px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.camp-relic em{font-style:normal;font-size:22px}.camp-relic span{font-size:9px;color:#e4d1ee;text-align:center}.camp-relic.locked{opacity:.39;filter:grayscale(1)}
.points-screen{position:fixed;inset:0;z-index:90;background:#070916ed;overflow-y:auto;overscroll-behavior:contain;backdrop-filter:blur(8px)}.points-content{max-width:490px;margin:0 auto;padding:20px 15px max(26px,env(safe-area-inset-bottom))}.points-screen-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.points-screen-top h1{font-size:25px;margin:7px 0 14px;color:#f5e3ff}.points-screen-top .camp-kicker{text-align:left;letter-spacing:1px}.close-points{width:42px;height:42px;border-radius:11px;background:#2a2543;border:1px solid #8069a5;font-size:18px}
.points-hero{background:linear-gradient(130deg,#3a275a,#202242 70%);border:1px solid #aa8cde;padding:14px 15px;border-radius:13px;text-align:center;box-shadow:0 4px 18px #0005}.points-hero>span{font-size:12px;color:#d7c2ff}.points-hero>div{line-height:1.15;color:#ffe1a1;margin:4px}.points-hero strong{font-size:53px;font-variant-numeric:tabular-nums}.points-hero em{font-size:15px;font-style:normal;color:#cbb7e7;margin-left:6px}.points-hero p{font-size:11px;line-height:1.7;color:#d2c7e5;margin:7px 0 0}.points-section-title{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:14px;font-weight:800;color:#f6e8ff;margin:18px 2px 8px}.points-section-title small{font-size:10px;color:#b6a3d2;font-weight:500}.points-hint{color:#b9acce;font-size:10px;line-height:1.6;margin:0 2px 9px}.demo-game-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.demo-game{display:flex;align-items:center;gap:8px;background:#24213d;border:1px solid #7465a0;border-radius:10px;padding:9px 8px;text-align:left;min-height:63px;transition:transform .1s}.demo-game:active{transform:scale(.98)}.demo-game .game-emoji{font-size:23px}.demo-game .game-label{display:flex;flex:1;flex-direction:column;gap:5px;min-width:0}.demo-game strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-game small{font-size:9px;color:#cbb9e4}.demo-game .game-reward{font-size:13px;color:#ffdd9c;white-space:nowrap;font-weight:850}.daily-note{text-align:center;padding:9px 0;font-size:10px;color:#ada1cc}.mission-list{display:grid;gap:8px}.mission{display:flex;align-items:center;gap:10px;justify-content:space-between;background:#201d38;border:1px solid #69588d;border-radius:10px;padding:11px 9px}.mission-info{min-width:0;flex:1}.mission-title{font-size:12px;font-weight:800}.mission-desc{font-size:10px;color:#afa6c5;margin:5px 0}.mission-meter{height:6px;background:#141226;border-radius:6px;overflow:hidden;width:100%;border:1px solid #4c456a}.mission-meter>div{height:100%;background:linear-gradient(90deg,#7966c1,#e8b8fb);border-radius:6px}.mission button{min-width:87px;font-size:11px;font-weight:800;border:1px solid #c6a5e7;background:#7252aa;padding:9px 7px;border-radius:8px}.mission button.ready{background:#d4b379;color:#24203d;border-color:#ffe5a2}.mission button:disabled{background:#29263d;border-color:#4a3f61;color:#8c86a2}.relic-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.relic{padding:10px 9px;border:1px solid #6c598b;background:#211e37;border-radius:10px;display:flex;gap:9px;align-items:center}.relic span{font-size:26px}.relic div{display:flex;flex-direction:column;gap:5px;min-width:0}.relic strong{font-size:11px}.relic small{font-size:9px;color:#b6aace}.relic.locked{opacity:.4}.points-legal{font-size:10px;line-height:1.65;margin:16px 2px 10px;color:#b3a7c9}.points-note{padding:9px 11px;border:1px solid #5d597d;background:#20223d;border-radius:9px;color:#e3d7f5;font-size:11px;text-align:center;min-height:32px}.points-continue{margin-top:13px}.points-continue span{font-size:10px}
@media(max-width:365px){.points-bar{padding:8px}.points-bar-value>span{font-size:10px}.points-bar-value strong{font-size:20px}.points-bar-button{font-size:9px;padding:8px 6px}.camp-adventure-panel{padding:9px}.camp-adventure-panel button{font-size:10px;padding:9px 7px}}


/* v0.3: battle feedback */
.battle-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:8px 10px;border:1px solid #5d5c87;border-radius:10px;background:linear-gradient(180deg,#161729,#101522)}
.battle-strip-left{display:flex;flex-direction:column;gap:2px;min-width:0}.battle-strip-left b{font-size:12px;color:#f5e3ff}.battle-strip-left small{font-size:10px;color:#b6acd0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-strip-right span{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:999px;background:#26294a;border:1px solid #7876ad;color:#ddd5f5;font-size:10px;font-weight:800;letter-spacing:.08em}.mapframe.battle-active{box-shadow:0 0 0 1px #8e6cff,0 0 24px #6b48ff44,inset 0 0 0 1px #d6a9ff22}.mapframe.hit-active{animation:yonaHitFlash .22s linear}.mapframe.enemy-hit{animation:yonaEnemyHit .18s linear}.action.attack.hot{box-shadow:0 0 0 2px #d6a7ff,0 0 18px #8d4fff66}.action.skill.hot{box-shadow:0 0 0 2px #91c7ff,0 0 18px #5e98ff55}.message-strip.combat{border-color:#8d6fd2;background:linear-gradient(180deg,#1d1730,#131725)}@keyframes yonaHitFlash{0%{filter:brightness(1)}50%{filter:brightness(1.35)}100%{filter:brightness(1)}}@keyframes yonaEnemyHit{0%{filter:brightness(1)}40%{filter:brightness(1.24)}100%{filter:brightness(1)}}

/* v0.4: targetable combat, companions, story progression */
.target-card{display:flex;align-items:center;gap:9px;width:100%;margin:8px 0 0;padding:8px 10px;min-height:53px;text-align:left;border-radius:10px;border:1px solid #69668b;background:linear-gradient(105deg,#211b39,#101729);color:#f6eaff;box-shadow:inset 0 1px 0 #ffffff0b}.target-card:active{transform:scale(.995)}
.target-icon{flex:0 0 34px;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#4e315d;font-size:22px}.target-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.target-copy strong{font-size:12px;color:#f8def9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-copy small{font-size:10px;color:#bfb3d2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-next{font-size:9px;color:#c3b1e4;white-space:nowrap}.target-meter{width:100%;max-width:190px;height:5px;border-radius:20px;background:#141126;overflow:hidden}.target-meter span{display:block;height:100%;width:0%;border-radius:20px;background:linear-gradient(90deg,#e56a9a,#ffbe9f);transition:width .15s}.target-card.selected{border-color:#bb85ed;background:linear-gradient(110deg,#3c2855,#171c31)}
.chapter-mini{font-size:9px;letter-spacing:1px;font-weight:700;color:#d3a6ff;margin-bottom:2px}.camp-chapter{text-align:center;font-size:11px;color:#dbc0ff;letter-spacing:.05em;margin:0 0 8px}.companion-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.companion{border:1px solid #6c608a;border-radius:11px;background:#21213d;display:flex;align-items:center;flex-direction:column;gap:5px;padding:10px 6px;min-height:117px}.companion .emoji{font-size:30px}.companion strong{font-size:11px}.companion small{font-size:9px;color:#d3bee5}.companion.active{background:linear-gradient(#473263,#28213d);border-color:#dab4fa;box-shadow:0 0 10px #9576d33d}.companion.locked{opacity:.45;filter:grayscale(.5)}.companion .equipped{font-size:10px;color:#f6d897;font-weight:800}
#map{touch-action:none}button{touch-action:manipulation}.action{user-select:none;-webkit-user-select:none}.dpad{user-select:none;-webkit-user-select:none}
@media (max-width:360px){.target-card{padding:7px 7px}.target-next{font-size:8px}.companion-list{gap:5px}.companion{padding:9px 4px}}

/* Phone gameplay mode: keep controls and the dungeon visible together on iPhone screens. */
@media(max-width:530px){
 body.is-playing .topbar{height:45px;padding:5px 12px}
 body.is-playing .brand-moon{font-size:27px}
 body.is-playing .brand-title{font-size:16px}
 body.is-playing .eyebrow{display:none}
 body.is-playing .iconbtn{width:32px;height:32px}
 body.is-playing .game-root{padding:5px 8px 9px}
 body.is-playing .hud{height:66px;gap:6px}
 body.is-playing .portrait{width:57px;min-width:57px;border-width:1px}
 body.is-playing .stat-main{padding:2px 0 0}
 body.is-playing .statline{margin-bottom:1px}
 body.is-playing .meterrow{margin-top:2px;margin-bottom:1px}
 body.is-playing .coin{font-size:11px}
 body.is-playing .points-bar{margin-top:5px;padding:5px 8px}
 body.is-playing .points-bar-value strong{font-size:18px}
 body.is-playing .points-bar-button{padding:6px 7px}
 body.is-playing .dungeon-heading{height:34px;padding:4px 8px}
 body.is-playing .chapter-mini{font-size:8px;margin-bottom:0}
 body.is-playing .mini-wrap{width:31px;height:31px}
 body.is-playing .mapframe{width:min(100%,max(255px, calc(100dvh - 515px)));max-width:352px;margin:0 auto}
 body.is-playing .message-strip{min-height:30px;padding:4px 7px;font-size:10px}
 body.is-playing .battle-strip{margin-top:5px;padding:5px 8px;min-height:28px}
 body.is-playing .battle-strip-left b{font-size:11px}
 body.is-playing .battle-strip-left small{font-size:9px}
 body.is-playing .target-card{margin-top:5px;padding:5px 8px;min-height:44px}
 body.is-playing .target-icon{height:29px;width:29px;flex-basis:29px;font-size:20px}
 body.is-playing .target-meter{height:4px}
 body.is-playing .control-wrap{margin:6px auto 5px;min-height:122px}
 body.is-playing .dpad{width:123px;min-width:123px;height:123px}
 body.is-playing .pad{font-size:19px;border-radius:9px}
 body.is-playing .actions{gap:5px;width:153px}
 body.is-playing .action{height:57px;width:72px}
 body.is-playing .action span{font-size:22px}
 body.is-playing .action b{font-size:10px;margin-top:2px}
 body.is-playing .quickbar{gap:5px;margin:0}
 body.is-playing .quick{padding:4px 6px}
 body.is-playing .quick span{font-size:16px}
 body.is-playing .campbtn{padding:6px 8px}
 body.is-playing .footnote{display:none}
}
@media(max-width:530px){
 body.is-playing .hud{height:80px}
 body.is-playing .statline{margin-bottom:2px;min-height:18px}
 body.is-playing .meterrow{height:18px;margin:0}
 body.is-playing .mapframe{width:min(100%,max(255px, calc(100dvh - 530px)))}
}
@media(max-width:530px){body.is-playing .chapter-mini{display:none}}

/* v0.5 easy controls + clear destination */
.nav-guide{margin-top:7px;min-height:66px;padding:8px;display:flex;align-items:center;gap:8px;background:linear-gradient(110deg,#343052,#1c2843);border:1px solid #b7a0e7;border-radius:12px;box-shadow:inset 0 0 14px #8571ff18}
.nav-arrow{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border-radius:12px;background:#262342;border:1px solid #9cebd7;font-size:29px;color:#a5ffe3;font-weight:900;text-shadow:0 0 12px #9cebd7bb}
.nav-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.nav-copy strong{font-size:12px;color:#f3e6ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-copy small{font-size:10px;color:#baddd7;line-height:1.35}
.nav-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.nav-actions button{min-height:44px;min-width:48px;border-radius:9px;border:1px solid #9b8fc4;font-size:10px;font-weight:800;line-height:1.15;background:#373056}.nav-autowalk{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 7px;color:#fff1be!important;background:linear-gradient(130deg,#7355a3,#514082)!important;border-color:#d3b7fd!important;min-width:64px!important;box-shadow:0 0 12px #956de355}.nav-autowalk span{font-size:10px}.nav-autowalk.moving{background:#895c35!important}.nav-mapbtn{padding:4px 6px}
.mini-wrap{padding:0;flex-shrink:0;cursor:pointer}.mini-wrap:active{border-color:#f2d789}.control-hint{text-align:center;font-size:10px;color:#c5b7dc;line-height:1.4;margin:5px 0 7px}.pad.center{background:#3a3860;border:1px solid #84bba6;border-radius:13px;font-size:20px;color:#b5ffe0;cursor:pointer}.pad.center:active{background:#4b8378}.pad{touch-action:none!important;user-select:none!important;-webkit-user-select:none!important}.pad:active{filter:brightness(1.22)}.pad.holding{background:#8c7de1;color:white;box-shadow:0 0 18px #c9b6ff88}
.full-map-overlay{position:fixed;inset:0;z-index:95;background:rgba(5,8,21,.94);backdrop-filter:blur(7px);padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));overflow:auto;display:flex;justify-content:center;align-items:center}.full-map-box{width:min(100%,450px);background:linear-gradient(160deg,#24213f,#111725);border:1px solid #b4a3de;border-radius:16px;padding:13px;box-shadow:0 20px 60px #000a}.full-map-head{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:10px}.full-map-head>div{display:flex;flex-direction:column;gap:5px}.full-map-head b{font-size:17px;color:#f2e1ff}.full-map-head small{font-size:11px;color:#c1ceea}.full-map-head button{width:40px;height:40px;border:1px solid #7f75a6;background:#322c52;border-radius:11px;font-size:20px}#fullMap{width:100%;display:block;background:#080d19;border-radius:8px;aspect-ratio:1/1;image-rendering:pixelated;border:1px solid #6b6492}.full-map-legend{font-size:12px;color:#c7c2e0;line-height:1.9;text-align:center}.full-map-box .primary{margin-top:9px}
.camp-quickstart{padding:11px 12px;margin:12px 0;border:1px solid #8679ad;border-radius:11px;background:#241f3d;color:#ddcbed;font-size:11px;line-height:1.85}.camp-quickstart b{color:#fff0bc}
@media(max-width:530px){
 body.is-playing .nav-guide{margin-top:5px;min-height:55px;padding:5px;gap:5px}
 body.is-playing .nav-arrow{height:42px;width:42px;flex-basis:42px;font-size:26px}
 body.is-playing .nav-copy strong{font-size:11px}
 body.is-playing .nav-copy small{font-size:9px}
 body.is-playing .nav-actions{gap:4px}
 body.is-playing .nav-actions button{min-height:42px;min-width:43px;font-size:9px}
 body.is-playing .nav-autowalk{min-width:58px!important}
 body.is-playing .mini-wrap{width:42px;height:34px}
 body.is-playing .dungeon-heading{height:37px}
 body.is-playing .mapframe{width:min(100%,max(255px,calc(100dvh - 584px)))}
 body.is-playing .control-hint{font-size:9px;margin:2px 0 4px}
 body.is-playing .dpad{width:142px;min-width:142px;height:142px}
 body.is-playing .pad{font-size:24px;border-width:2px;border-radius:12px}
 body.is-playing .control-wrap{min-height:142px;max-width:360px;margin:4px auto}
 body.is-playing .actions{width:155px}
 body.is-playing .action{height:64px;width:73px}
 body.is-playing .mapframe .turn-tag{font-size:9px}
}
@media(max-width:350px){body.is-playing .nav-arrow{width:35px;flex-basis:35px}.nav-guide{gap:4px}.nav-actions button{min-width:40px}.nav-copy strong{font-size:10px}.nav-copy small{font-size:9px}}
/* On short phones keep the actual gamepad visible without forcing a long scroll. */
@media(max-width:530px) and (max-height:740px){
  body.is-playing .game-root{padding-bottom:190px}
  body.is-playing .control-wrap{
    position:fixed;z-index:50;bottom:calc(5px + env(safe-area-inset-bottom));
    left:50%;transform:translateX(-50%);
    width:min(calc(100vw - 12px),440px);max-width:none;
    min-height:134px;margin:0;padding:5px 13px;
    justify-content:space-between;
    border:1px solid #796cb1;border-radius:18px;
    background:linear-gradient(160deg,rgba(22,22,45,.97),rgba(13,19,38,.97));
    box-shadow:0 0 18px #0b081b,0 10px 24px #080912bd;
  }
  body.is-playing .dpad{width:126px;min-width:126px;height:126px}
  body.is-playing .pad{font-size:22px}
  body.is-playing .actions{width:145px;gap:4px}
  body.is-playing .action{height:59px;width:68px}
  body.is-playing .control-hint{display:none}
  body.is-playing .target-card:not(.selected){display:none}
  body.is-playing .footnote{display:none}
  body.is-playing .quickbar{margin-top:12px}
}
