
:root{--ink:#405571;--muted:#79899c;--lavender:#9285b3;--line:#dce7ea;--paper:#fffffff0;--mint:#9ecdc7}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:14px/1.65 "Yu Gothic",Meiryo,sans-serif;background:#eef5f6}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #d7e1e7;border-radius:10px;background:#fff;color:var(--ink);padding:10px 16px;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#edf1fa;transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #91b8db;outline-offset:3px}button.primary{color:white;background:linear-gradient(110deg,#8c80ae,#728fb5);border:0;padding:14px 24px;box-shadow:0 5px 15px #7b87a626}button.primary:hover{background:#8177a4}.primary span{margin-left:25px}.secondary{background:#f5f8fb}.quiet{border:0;background:transparent}.small,small{font-size:11px}.muted{color:var(--muted)}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500}h1{font-family:"Yu Mincho",serif;font-size:30px;letter-spacing:.07em;line-height:1.6;margin-bottom:5px}h2{font-size:20px}h3{font-size:15px}a{color:inherit;text-decoration:none}.sea-light{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 10% 0,#e2eef1,transparent 45%),radial-gradient(ellipse at 100% 50%,#eee9f5,transparent 50%)}.topbar{height:88px;padding:0 4%;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);background:#ffffffc9}.brand{display:flex;align-items:center;gap:12px;font:24px "Yu Mincho",serif;color:#6c7796}.brand small{display:block;letter-spacing:.24em;font:9px/2 sans-serif;margin-top:7px}.preview-label{font-size:11px;border:1px solid #d4dce5;padding:3px 10px;border-radius:20px;color:var(--muted)}#wallet{margin-left:auto;display:flex;gap:25px;color:#777592}#wallet span small{margin-left:4px;color:var(--muted)}#game{max-width:1500px;padding:0 4% 60px;margin:auto}.nav{display:flex;gap:25px;padding:18px 0;margin-bottom:15px;border-bottom:1px solid var(--line)}.nav button{background:transparent;border:0;border-radius:0;padding:10px 6px;color:var(--muted)}.nav button.active{color:#655f8f;border-bottom:2px solid #9285b3}.adventure-grid{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:26px}.main-panel,.side-panel{min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px}.section-heading small,.eyebrow,.collection-note>small,.help>small{font-size:9px;letter-spacing:.22em;color:#8c96aa}.section-heading h2{font-size:17px;margin:0}.pill{display:inline-block;font-size:11px;border:1px solid #d7e2e5;border-radius:20px;padding:5px 12px;background:#ffffff80;white-space:nowrap}.side-panel{margin-top:13px;border-left:1px solid var(--line);padding-left:25px}#scene{position:relative;isolation:isolate;overflow:hidden;min-height:420px;border:1px solid #d1e2e6;border-radius:24px;background:radial-gradient(ellipse at 50% 5%,#ffffffce 0,transparent 50%),linear-gradient(#cee8ef,#b0d7dc 65%,#c9dfde);box-shadow:0 12px 35px #7593a318}.rays{position:absolute;inset:0;z-index:-1;background:repeating-conic-gradient(from 168deg at 50% -40%,transparent 0deg 6deg,#fff2 7deg 9deg,transparent 10deg 16deg);opacity:.7}.sea-floor{position:absolute;bottom:-70px;left:-10%;width:120%;height:180px;border-radius:50%;background:linear-gradient(#e8ebdbb0,#dae9e5);z-index:-1}.sea-floor:before,.sea-floor:after{content:'✧';position:absolute;color:#f2e0e6;font-size:220px;bottom:20px;text-shadow:35px -35px 0 #c2b7d866,-35px 5px 0 #afd3cb;left:0;transform:rotate(-15deg)}.sea-floor:after{left:auto;right:20px;transform:rotate(15deg);font-size:180px}.scene-caption{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:11px;color:#617b89;letter-spacing:.08em}.town-copy{padding:35px 35px 0;position:relative;z-index:2}.town-copy>span{font-size:10px;letter-spacing:.2em;color:#63838f}.town-copy h2{font:25px/1.7 "Yu Mincho",serif;margin:12px 0;color:#476576}.town-copy p{font-size:11px;color:#65808b}#town-party{display:flex;justify-content:center;position:absolute;bottom:30px;left:12%;right:3%;height:230px;align-items:flex-end}#town-party img{width:22%;min-width:0;object-fit:contain;filter:drop-shadow(0 14px 5px #60898a20);margin-left:-5%}#town-party img:nth-child(2n){transform:translateY(-18px)}#town-party img:first-child{width:25%;z-index:1}#map{display:block;width:100%;height:auto;max-height:510px;aspect-ratio:1.5;object-fit:contain}.action-row{display:flex;gap:10px;align-items:center;justify-content:center;padding:20px 0;flex-wrap:wrap}.dpad{display:flex;gap:5px}.dpad button{font-size:18px;width:42px;padding:6px}#party-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.mini-member{display:flex;gap:3px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:8px 8px 8px 0;min-width:0}.mini-member>img{width:65px;height:80px;object-fit:contain}.mini-member>div{flex:1;min-width:0}.mini-member strong{display:block;font-size:12px;white-space:nowrap}.mini-member strong small{font-weight:400;color:var(--muted)}.mini-member span{display:block;font-size:10px;color:var(--muted)}.mini-member small{font-size:9px}.bar{height:5px;background:#e9eff0;border-radius:9px;overflow:hidden;margin:6px 0 3px}.bar i{display:block;width:var(--fill);height:100%;background:linear-gradient(90deg,#88bcb1,#b4d9c2);transition:width .25s}.bar.xp i{background:#b0a2d2}.fainted{opacity:.55}#journal p{font-size:12px;padding:12px 0;border-bottom:1px solid #dde7e7;margin:0;line-height:1.9}#journal p:first-child{color:#625780}#journal p:nth-child(n+6){color:#93a0aa}.collection-note{margin-top:28px;border:1px solid #dfe6e8;border-radius:14px;padding:20px 16px;background:#ffffff8c}.collection-note h3{font-family:"Yu Mincho",serif;margin-top:8px}.collection-note p{font-size:10px;color:var(--muted);margin-top:15px;margin-bottom:0}#collection-count{display:flex;gap:24px}#collection-count span{font-size:11px}#collection-count strong{font-size:23px;color:#8b80ad;font-weight:400}#collection-count small{display:block;color:var(--muted)}.battle-caption{text-align:center;padding:25px 10px 5px;letter-spacing:.12em}.battle-caption small{display:block;font-size:10px;color:#64808c;margin-top:5px}#enemies{display:flex;justify-content:center;align-items:center;padding:15px 25px 40px;gap:8px;min-height:315px}.enemy{border:1px solid transparent;background:transparent;max-width:32%;width:260px;padding:10px 5px}.enemy:hover:not(:disabled){background:#ffffff25}.enemy.selected{border:1px solid #f8f7ff80;background:#ffffff18}.enemy>span{display:block;font-size:12px;min-height:34px}.enemy img{width:100%;height:195px;object-fit:contain;filter:drop-shadow(0 15px 5px #60898a25)}.enemy.defeated{opacity:.15}.enemy .bar{width:70%;margin:5px auto}.enemy .bar i{background:#c79cac}.enemy small{font-size:10px}.filters{display:flex;align-items:center;gap:20px;margin:20px 0;flex-wrap:wrap}.filters label{display:flex;align-items:center;gap:10px;font-size:12px}.filters select{min-width:130px}input,select{border:1px solid #d6e0e7;background:#ffffffd9;border-radius:8px;padding:10px;color:var(--ink);width:100%}.item-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.item-card{background:#ffffffe3;border:1px solid #dce6e9;border-radius:16px;overflow:hidden}.item-image{height:190px;background:radial-gradient(ellipse at center,#f8fafd,#e8f0f2);position:relative;padding:15px;text-align:center}.item-image img{height:100%;max-width:100%;object-fit:contain}.item-image>span{position:absolute;left:12px;top:10px;font-size:10px;color:#7e8a9a;z-index:1}.item-body{padding:15px}.item-body>small{font-size:10px;color:var(--muted)}.item-body h3{font-size:14px;margin:5px 0 10px}.stats{font-size:11px;color:#778598;line-height:1.9}.item-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.item-actions button{font-size:11px;padding:7px}.quality-3{border-color:#b9acd8}.quality-4{border-color:#d3b570}.quality-4 .item-image{background:radial-gradient(#fff8dc,#eeedf5)}.quality-3 .item-image{background:radial-gradient(#f5edff,#e8edf4)}.empty{grid-column:1/-1;text-align:center;padding:70px;color:var(--muted)}.undiscovered img{filter:brightness(0) opacity(.12)}.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.member-card{background:#ffffffe0;border:1px solid var(--line);border-radius:20px;overflow:hidden}.member-card>div:last-child{padding:22px}.member-portrait{height:235px;position:relative;text-align:center;background:radial-gradient(#fff,#e6edf5);padding:10px}.member-portrait img{height:100%;max-width:100%;object-fit:contain}.member-portrait>span{position:absolute;bottom:15px;right:20px;font-size:12px}.member-card h2{margin:4px 0 10px}.member-card h3{margin:15px 0 5px;font-size:14px}.member-card p{font-size:12px}.member-card .secondary{display:block;width:100%;margin-top:15px}.help{max-width:800px;padding:20px}.help h2{margin-top:35px}.help p{line-height:2.1}#login{max-width:1150px;display:grid;grid-template-columns:1.2fr 1fr;gap:70px;margin:65px auto;padding:0 30px}.welcome{position:relative;min-height:650px}.welcome h1{font-size:42px;margin:20px 0}.welcome>p{color:#8190a3;line-height:2}.welcome img{position:absolute;width:330px;bottom:5px;left:40px;filter:drop-shadow(0 10px 20px #b9b7d030)}.auth-card{padding:30px 35px;background:#fffffff0;border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 60px #77879d0c}.auth-card h2{font:24px "Yu Mincho",serif;margin-bottom:10px}.auth-card label,dialog label{display:block;margin-bottom:14px;font-size:12px}.auth-card input,.auth-card select,dialog input,dialog select{display:block;margin-top:5px}.auth-card button{width:100%;margin:5px 0}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.trait{font-size:11px;color:#7b7399;line-height:1.9;background:#f5f3f9;padding:10px;border-radius:8px}details{margin:10px 0}summary{cursor:pointer;font-size:12px;margin-bottom:12px}dialog{border:1px solid var(--line);border-radius:18px;padding:28px;width:min(460px,92vw);color:var(--ink)}dialog::backdrop{background:#31435570;backdrop-filter:blur(3px)}dialog button{width:100%;margin-top:8px}#toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);padding:14px 25px;border-radius:14px;background:#435571f5;color:#fff;box-shadow:0 6px 25px #24385430;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;z-index:10}#toast.show{opacity:1;transform:translate(-50%,0)}.busy button{pointer-events:none}.busy{cursor:progress}@media(min-width:1500px){#scene{min-height:470px}#town-party{height:270px}}@media(max-width:1050px){.adventure-grid{grid-template-columns:minmax(0,1fr)}.side-panel{border:0;padding:15px 0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.side-panel>.section-heading{grid-column:1/-1;margin:0}.collection-note{margin-top:0}.item-grid{grid-template-columns:repeat(3,1fr)}.member-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.topbar{height:72px;padding:0 15px;gap:8px;flex-wrap:wrap}.brand{font-size:18px}.brand small{font-size:7px}.preview-label{font-size:9px;padding:2px 5px}#wallet{font-size:11px;gap:8px}#wallet small{display:none}#logout{font-size:10px;padding:4px}#game{padding:0 14px 35px}.nav{gap:8px;overflow-x:auto;white-space:nowrap;margin-bottom:8px;padding:10px 0}.nav button{font-size:11px}h1{font-size:24px}.section-heading{margin:15px 0}.section-heading small{font-size:8px}.pill{font-size:9px;padding:4px 8px}#scene{min-height:345px;border-radius:16px}.town-copy{padding:22px 20px}.town-copy h2{font-size:21px}#town-party{height:170px;bottom:30px;left:7%;right:0}#party-strip{grid-template-columns:repeat(2,1fr)}.mini-member>img{width:52px;height:66px}.mini-member strong{font-size:11px}.action-row{gap:7px;padding:14px 0}.action-row button{font-size:11px;padding:10px 12px}.dpad button{width:36px;padding:6px;font-size:17px}#map{min-height:340px}#enemies{padding:20px 5px;gap:0;min-height:240px}.enemy{max-width:33%;padding:5px 2px}.enemy img{height:145px}.enemy>span{font-size:9px;min-height:35px}.battle-caption{font-size:12px}.battle-caption small{font-size:9px}.side-panel{display:block}.collection-note{margin-top:20px}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.item-image{height:145px;padding:20px 8px 5px}.item-body{padding:10px}.item-body h3{font-size:12px}.item-actions button{font-size:10px;padding:6px 2px}.member-grid{grid-template-columns:1fr}.member-card{display:grid;grid-template-columns:130px 1fr}.member-portrait{height:100%;padding-top:25px}.member-portrait img{height:auto;width:130px}.member-card>div:last-child{padding:15px}.member-card h2{font-size:18px}.filters{gap:10px}.filters label{font-size:10px}#login{grid-template-columns:1fr;margin:25px auto;gap:20px;padding:0 18px}.welcome{min-height:240px}.welcome h1{font-size:28px}.welcome img{width:175px;left:auto;right:-5px;bottom:-15px}.welcome>p{font-size:11px}.eyebrow{font-size:7px}.auth-card{padding:22px}.empty{padding:40px 15px}.help{padding:10px 0}.help h1{font-size:22px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

progress.bar{display:block;width:100%;border:0;appearance:none}progress.bar::-webkit-progress-bar{background:#e9eff0;border-radius:9px}progress.bar::-webkit-progress-value{background:linear-gradient(90deg,#88bcb1,#b4d9c2);border-radius:9px}progress.bar::-moz-progress-bar{background:#9bcbb6}progress.xp::-webkit-progress-value{background:#b0a2d2}.enemy progress.bar::-webkit-progress-value{background:#c79cac}


#enemies:has(>.enemy:nth-child(2):last-child) .enemy{max-width:44%;width:320px}#enemies:has(>.enemy:only-child) .enemy{max-width:65%;width:380px}#enemies:has(>.enemy:only-child) .enemy img{height:235px}@media(max-width:650px){.sea-floor:before{font-size:110px;opacity:.45}.sea-floor:after{font-size:100px;opacity:.45}#enemies:has(>.enemy:only-child) .enemy img{height:200px}#enemies:has(>.enemy:nth-child(2):last-child) .enemy img{height:165px}}

.enemy{position:relative}.damage-float{position:absolute!important;left:35%;top:35%;font:bold 28px Georgia,serif!important;color:#8b6178;text-shadow:0 2px 3px white;pointer-events:none;animation:damage-rise .8s ease-out forwards}.enemy.hit img{animation:enemy-hit .28s ease-in-out}@keyframes damage-rise{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}@keyframes enemy-hit{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@media(prefers-reduced-motion:reduce){.enemy.hit img{animation:none}.damage-float{animation:none}}

.google-login{display:block;text-align:center;text-decoration:none;margin:24px 0;}

#treasure-dialog{--rarity:#91a3ae;--rarity-bg:#eff3f4}
#treasure-dialog[data-quality="2"]{--rarity:#699fb9;--rarity-bg:#edf7fc}
#treasure-dialog[data-quality="3"]{--rarity:#a48ac4;--rarity-bg:#f5effd}
#treasure-dialog[data-quality="4"]{--rarity:#c9a24d;--rarity-bg:#fff6d9}
#treasure-dialog .treasure-portrait{position:relative;width:min(320px,100%);aspect-ratio:1;margin:0 auto 15px;border:3px solid var(--rarity);border-radius:18px;background:radial-gradient(circle,#fff 15%,var(--rarity-bg));box-shadow:inset 0 0 0 5px #ffffffb0,0 5px 15px #53677915;overflow:hidden}
#treasure-dialog .treasure-portrait:after{content:'';position:absolute;inset:7px;border:1px solid var(--rarity);border-radius:10px;opacity:.45;pointer-events:none}
#treasure-dialog .treasure-portrait img{display:block;width:100%;height:100%;object-fit:contain;padding:18px;filter:drop-shadow(0 8px 6px #53677922)}
#treasure-dialog .rarity-label{position:absolute;top:10px;left:12px;z-index:1;border-radius:10px;padding:3px 10px;background:var(--rarity-bg);color:#56617b;border:1px solid var(--rarity);font-size:11px}

#toast{top:12px;bottom:auto;transform:translate(-50%,-12px);font-size:12px;max-width:min(90vw,500px);padding:10px 16px}#toast.show{transform:translate(-50%,0)}#toast.in-scene{position:absolute;top:12px;max-width:85%;width:max-content}
#supplies{max-width:760px;margin:0 auto}#supply-summary{padding:8px 12px;border-radius:10px;background:#ffffffa8;color:var(--muted);font-size:12px}#supply-list .inventory-entry{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:74px;margin:8px 0;padding:8px 12px;text-align:left;background:#fffdf7;border:1px solid #d5e2df}#supply-list .inventory-entry>img{width:56px;height:56px;object-fit:contain}#supply-list .inventory-entry>span{min-width:0}#supply-list .inventory-entry strong,#supply-list .inventory-entry small{display:block}#supply-list .inventory-entry small{color:var(--muted)}#supply-list .inventory-entry>b{font-size:11px;white-space:nowrap;color:#72899a}.supply-empty{padding:24px;border:1px dashed #c9d9dd;border-radius:12px;text-align:center;color:var(--muted)}#supply-detail .equipment-large{width:min(180px,100%);height:min(180px,28dvh)}
body.in-dungeon #scene-caption{display:none}
#scene .treasure-reveal{position:absolute;top:8px;width:min(280px,85%);padding:8px 14px 12px}#scene .treasure-art{height:135px}#scene .treasure-reveal>strong{font-size:14px}
.codex-filter{display:flex;gap:10px;align-items:center;margin:12px 0}.codex-filter select{max-width:160px}
#codex-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px;margin:18px 0;border:1px solid #d2e1e3;border-radius:20px;background:linear-gradient(115deg,#f9f7e8,#eaf4f4,#eee9f9)}#codex-summary>div:first-child{flex:1}#codex-summary h2{margin:5px 0;font-size:22px}#codex-summary strong{font-size:28px;color:#8576a7}#codex-summary small,#codex-summary p{font-size:11px}#codex-summary p{margin:5px 0 0}#codex-summary progress{display:block;width:100%;height:8px}
.collection-seals{display:grid;grid-template-columns:1fr 1fr;gap:8px}.collection-seals span{padding:12px;border:1px dashed #c6cbd2;border-radius:50%;font-size:11px;color:#a0a6b2}.collection-seals .earned{background:#fff2c9;color:#9b7a42;border:1px solid #dbbc73}
#codex-shelves{display:grid;grid-template-columns:repeat(10,1fr);gap:7px;margin:15px 0 22px}#codex-shelves button{padding:10px 3px}#codex-shelves strong,#codex-shelves span{display:block;font-size:11px}#codex .selected{background:#e8e0f2;border-color:#b8a6cd}
#codex-cards .codex-entry{padding:0;text-align:left;color:var(--ink)}#codex-cards .item-body{padding:12px}#codex-cards .item-body p,#codex-cards .item-body small{font-size:11px}#codex-cards .item-body h3{min-height:2.6em}
#codex-detail{max-height:90dvh;overflow:auto;width:min(520px,94vw)}.codex-portrait{height:240px;text-align:center;background:radial-gradient(#fffdf0,#e6eef5);border-radius:15px;margin-bottom:15px}.codex-portrait img{height:100%;max-width:100%;object-fit:contain}#codex-detail p{font-size:13px}#codex-detail-close{min-height:44px}
@media(max-width:650px){#codex-shelves{grid-template-columns:repeat(5,1fr)}#codex-summary{padding:15px;gap:10px}#codex-summary h2{font-size:17px}.collection-seals{gap:5px}.collection-seals span{padding:8px}.codex-portrait{height:220px}}

.treasure-reveal{position:fixed;z-index:80;top:22%;left:50%;width:min(300px,85vw);transform:translateX(-50%);border:2px solid #e4d8b2;border-radius:24px;background:#fffff5f5;padding:12px 18px 20px;text-align:center;pointer-events:none;box-shadow:0 12px 60px #72879266;overflow:hidden;animation:treasure-notice 2.6s both}
.treasure-reveal>small,.treasure-reveal>strong,.treasure-reveal>span{display:block;position:relative}.treasure-reveal>small{color:#a78c57;font-size:11px}.treasure-reveal>strong{font-size:17px;margin:5px 0;color:#716184}.treasure-reveal>span{font-size:12px;color:#859199}
.treasure-art{position:relative;height:155px}.treasure-shell{position:absolute;width:130px;height:130px;bottom:0;left:50%;margin-left:-65px}.treasure-shell.closed{animation:chest-close .4s forwards}.treasure-shell.opened{animation:chest-open .5s both}.treasure-item{position:absolute;left:50%;top:0;width:105px;height:105px;margin-left:-52px;object-fit:contain;filter:drop-shadow(0 0 15px #fff0a5);animation:treasure-rise .75s .2s both}.treasure-rays{position:absolute;inset:-70px;background:repeating-conic-gradient(from 0deg,#f5dfaf33 0deg 12deg,transparent 12deg 30deg);animation:treasure-rays 8s linear infinite}
@keyframes chest-close{0%,70%{opacity:1}100%{opacity:0}}@keyframes chest-open{0%,60%{opacity:0}100%{opacity:1}}@keyframes treasure-rise{from{opacity:0;transform:translateY(45px) scale(.4)}to{opacity:1;transform:none}}@keyframes treasure-rays{to{transform:rotate(90deg)}}@keyframes treasure-notice{0%{opacity:0;transform:translate(-50%,12px) scale(.9)}12%,85%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-8px)}}
@media(prefers-reduced-motion:reduce){.treasure-reveal,.treasure-rays,.treasure-item,.treasure-shell{animation:none!important}.treasure-shell.closed{display:none}}
.command-member{display:flex;align-items:center;gap:15px;padding:5px 0 10px;font-size:13px}.command-member img{width:85px;height:100px;object-fit:contain}.command-choices{display:grid;gap:8px}.command-choices>p{margin:0;font-size:13px}.command-choices button{min-height:52px;margin:0;text-align:left;padding:10px 14px}.command-choices button small{float:right;font-size:11px}.command-choices button span{display:block;font-size:11px;margin-top:5px;line-height:1.5}.command-choices button:disabled{opacity:.5}

#levelup-dialog{width:min(500px,94vw);max-height:90dvh;overflow-y:auto;background:linear-gradient(145deg,#fffdf0,#f0f7fc);border-color:#dbcda8;padding:20px;animation:levelup-arrive .4s ease-out}
.levelup-heading{text-align:center;color:#8a759f}.levelup-heading>small{letter-spacing:.3em;color:#a88b51}.levelup-heading h2{font-size:20px;margin:8px 0 18px}
.levelup-member{border-top:1px solid #e3dfd9;padding:12px 0}.levelup-person{display:flex;align-items:center;gap:12px}.levelup-person img{width:68px;height:78px;object-fit:contain;filter:drop-shadow(0 0 12px #eadba0)}.levelup-person h3{margin:0;font-size:16px}.levelup-person strong{color:#9a7848;font-size:21px}.levelup-stats{font-size:11px;margin:5px 0 10px;line-height:1.8}
.learned-ability{padding:10px 12px;background:#f2edfc;border:1px solid #e1d6f1;border-radius:10px;margin:7px 0}.learned-ability>small{color:#9a789d;font-size:10px}.learned-ability h3{margin:3px 0;color:#756292}.learned-ability p{font-size:12px;margin:0}#levelup-close{min-height:48px}
@keyframes levelup-arrive{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){#levelup-dialog{animation:none}}
.item-description{font-size:11px;line-height:1.7;color:#718397}.set-description{font-size:11px;line-height:1.7;color:#746590;background:#f2eef7;padding:8px;border-radius:8px}.floor-record{padding:12px 0;border-top:1px solid #dce5eb}

body.in-battle .battle-member{overflow:hidden;isolation:isolate;background:#f9fcff}
body.in-battle .battle-member img.card-backdrop{position:absolute;z-index:-1;right:-8px;top:-15px;width:95px;height:120px;object-fit:contain;opacity:.2;pointer-events:none}
body.in-battle .battle-member>div{width:100%;text-shadow:0 1px 2px #fff}
#strategy-dialog{width:min(540px,96vw);max-height:94dvh;overflow:auto;padding:18px}
.strategy-order{padding:12px 0;border-bottom:1px solid #dbe5ec;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.strategy-order>strong{grid-column:1/-1;font-size:13px}.strategy-order strong small{display:block;font-weight:400}.strategy-order label{margin:0;font-size:11px}.strategy-order select{font-size:16px;padding:8px}.order-note{grid-column:1/-1;font-size:11px;margin:0;color:#7b7594}
#strategy-form>button{min-height:44px}#battle-actions #strategy-open{order:-1}

[data-details]{cursor:pointer;touch-action:manipulation}[data-details]:focus-visible{outline:3px solid #93b9d8}
body .resource-meter{display:flex;align-items:center;gap:4px;min-height:14px}
body .resource-meter>small{flex:0 0 17px;font-size:9px;line-height:1.2;color:#697c91}
body .resource-meter progress.bar{flex:1;width:0;height:7px;margin:0;min-width:0}
.member-mp::-webkit-progress-value{background:#a599d0!important}.member-mp::-moz-progress-bar{background:#a599d0!important}
#member-details{max-height:90dvh;overflow-y:auto;padding:20px}
.details-portrait{display:flex;align-items:center;gap:12px}.details-portrait img{width:100px;height:120px;object-fit:contain}.details-portrait h2{margin:0 0 8px}.details-portrait p{font-size:12px;margin:0}
.details-stats{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;font-size:13px;background:#f3f6f9;border-radius:12px;padding:12px}.details-stats dd{margin:0;text-align:right}.details-stats dt{color:#73859a}
#member-details p,#member-details li{font-size:12px}#member-details ul{padding-left:20px}#close-member-details{min-height:44px}
body.in-dungeon:not(.in-battle) #party-strip .mini-member>div>span{display:none}

/* Shared battle screen on every device; only the grid arrangement changes. */
@media all{
 body.in-battle:has(#adventure:not([hidden])){overflow:hidden}
 body.in-battle #adventure .main-panel{position:fixed;inset:0;z-index:20;height:100dvh;padding:env(safe-area-inset-top) 6px env(safe-area-inset-bottom);background:#eef5f6;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:5px;overflow:hidden}
 body.in-battle #adventure .main-panel>.section-heading,body.in-battle #adventure .side-panel{display:none}
 body.in-battle #adventure #scene{min-height:0;height:100%;border-radius:12px;display:flex;flex-direction:column}
 body.in-battle #battle-scene{min-height:0;flex:1;display:flex;flex-direction:column;padding-bottom:0}
 body.in-battle #scene .battle-caption{padding:3px;flex:0 0 auto;font-size:10px}
 body.in-battle #scene .battle-caption small{display:none}
 body.in-battle #scene #enemies{flex:1;min-height:0;padding:0 2px;gap:2px;overflow-y:hidden}
 body.in-battle #scene #enemies .enemy{padding:2px;flex-basis:104px;width:104px;max-width:104px}
 body.in-battle #scene #enemies .enemy img{width:96px;height:clamp(48px,calc(100dvh - 415px),110px)}
 body.in-battle #scene #enemies .enemy>span{font-size:10px;min-height:28px;padding:2px;line-height:1.3}
 body.in-battle #scene #enemies .enemy:nth-child(2){margin-top:-8px}
 body.in-battle #combat-message{flex:0 0 auto;min-height:36px;margin:2px 68px 5px 5px;padding:4px;font-size:11px;line-height:1.4}
 body.in-battle #scene .scene-caption{display:none}
 body.in-battle #music-toggle{bottom:5px;right:5px;min-height:36px}
 body.in-battle #battle-roster{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0}
 body.in-battle .battle-member{min-height:72px;padding:3px;gap:2px}
 body.in-battle .battle-member img{width:25px;height:44px}
 body.in-battle .battle-member strong{font-size:10px;line-height:1.25;overflow-wrap:anywhere}
 body.in-battle .battle-member strong small{display:none}
 body.in-battle .battle-member small,body.in-battle .battle-member span{font-size:9px;line-height:1.3}
 body.in-battle .battle-member .bar{margin:3px 0;height:4px}
 body.in-battle .battle-member span{display:block;white-space:nowrap;margin:0}
 body.in-battle #battle-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:0;margin:0}
 body.in-battle #battle-actions button{min-height:44px;padding:6px;font-size:12px}
}
@media(max-height:500px) and (min-width:651px) and (max-width:1000px){
 body.in-battle #adventure .main-panel{grid-template-columns:1fr 1fr;grid-template-rows:1fr auto}
 body.in-battle #adventure #scene{grid-row:1/3}
 body.in-battle #battle-roster{grid-template-columns:1fr 1fr}
 body.in-battle #scene #enemies .enemy img{height:90px}
}

body.in-battle #scene{background:radial-gradient(ellipse at 50% -15%,#f4ffffee,transparent 65%),linear-gradient(#b0d8e4,#93c2d1 65%,#c4d9d1)}
#scene #enemies .enemy{border-color:transparent;background:transparent;box-shadow:none;isolation:isolate;overflow:visible}
#scene #enemies .enemy:nth-child(2){margin-top:-20px}
#scene #enemies .enemy:after{content:'';position:absolute;z-index:-1;left:13%;right:13%;bottom:38px;height:26px;border-radius:50%;background:#4c879c35;filter:blur(3px);pointer-events:none}
#scene #enemies .enemy.selected:after{background:#fff2b46b;box-shadow:0 0 0 2px #fff8d5,0 0 18px #f6f4c6;filter:none}
#scene #enemies .enemy>span{background:#eff8f2c9;border-radius:10px;padding:3px 5px;line-height:1.5;color:#38566b}
#scene #enemies .enemy.acting{outline:0;background:radial-gradient(ellipse,#fff3c966,transparent 70%);box-shadow:none!important}
#scene #enemies .enemy.receiving{border-color:transparent!important}
#scene #enemies .enemy img{filter:drop-shadow(0 9px 4px #416b8733)}

#scene #enemies{gap:12px;min-height:245px;padding:8px 12px 12px;overflow-x:auto;justify-content:safe center;align-items:center}
#scene #enemies .enemy{flex:0 0 190px;width:190px;max-width:190px;padding:6px}
#scene #enemies .enemy img{width:170px;height:160px;max-width:none;object-fit:contain}
#scene #enemies .enemy>span{font-size:12px;min-height:38px}.group-count{white-space:nowrap}
#combat-message{font-size:14px;font-weight:600;text-align:center;min-height:46px;margin:0 10px 52px;padding:8px;background:#f8fbf1df;border-radius:10px}
#battle-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}
.battle-member{position:relative;display:flex;align-items:center;min-width:0;padding:5px;border:2px solid #dae6ed;background:#fff;border-radius:10px;font-size:11px}
.battle-member img{width:48px;height:67px;object-fit:contain}.battle-member>div{min-width:0;flex:1}.battle-member strong{display:block;font-size:12px}.battle-member small{display:block;font-size:10px}.battle-member strong small{display:inline}.battle-member span{display:inline-block;margin-right:5px;font-size:10px}.battle-member .bar{display:block;width:100%}
.acting{outline:3px solid #e0b951;box-shadow:0 0 16px #ffe7a5!important}.receiving{border-color:#c97794!important}.battle-member .damage-float{font-size:23px!important}.battle-member.fainted{opacity:.55}
body.in-battle #party-strip{display:none}
@media(max-width:650px){
 body.in-battle #scene{min-height:0}
 #scene #enemies{min-height:177px;gap:2px;padding:2px 2px 6px}
 #scene #enemies .enemy{flex-basis:108px;width:108px;max-width:108px;padding:3px}
 #scene #enemies .enemy img{width:100px;height:110px}
 #scene #enemies .enemy>span{font-size:10px;min-height:34px}
 #scene .battle-caption{padding:8px 5px 0;font-size:11px}
 #scene .battle-caption small{display:none}
 #combat-message{font-size:12px;min-height:45px;margin-bottom:48px;padding:6px}
 #battle-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:6px}
 .battle-member{padding:3px;min-height:62px}.battle-member img{width:39px;height:56px}.battle-member strong{font-size:11px}.battle-member small{font-size:9px}
 #battle-actions{padding:8px 0;gap:5px}#battle-actions button{min-height:44px;font-size:12px}
}

.mini-member{position:relative}.impact-fx{position:absolute;inset:15% 5%;pointer-events:none;z-index:4;display:block;border-radius:50%;background:radial-gradient(circle,#fffdeccc 0,transparent 60%);animation:impact-bloom .55s ease-out both}
.impact-fx i{position:absolute;top:48%;left:5%;width:90%;height:5px;background:#fffbea;box-shadow:0 0 8px #ffe8a1,0 0 18px #f0b775;transform:rotate(-35deg);border-radius:100%}
.impact-fx i:nth-child(2){transform:rotate(35deg);width:70%;left:15%}.impact-fx i:nth-child(3){transform:rotate(-65deg);width:45%;left:28%}
.impact-fx.magic{border:4px solid #cfb7ff;background:radial-gradient(circle,#fff 0,#c6a1f088 30%,transparent 65%);box-shadow:0 0 20px #b9a1ff}.impact-fx.magic i{background:#eddaff;box-shadow:0 0 14px #bd83ff}
.impact-fx.received{background:radial-gradient(circle,#f6bac4bb,transparent 70%)}.impact-fx.received i{background:#ffd3d3;box-shadow:0 0 8px #dc7189}
.impact-fx.heal{background:radial-gradient(circle,#d5ffdbbb,transparent 70%)}.impact-fx.heal i{background:#d7ffe1;box-shadow:0 0 12px #97d5b3}
.damage-float{z-index:5;font-size:34px!important;color:#744651;text-shadow:0 2px 0 #fff,2px 0 0 #fff,-2px 0 0 #fff}.damage-float.healing{color:#378261}.mini-member .damage-float{font-size:23px!important;top:10%}
.guarding .mini-member{box-shadow:inset 0 0 0 2px #92bbdf,0 0 12px #badbf0}.taking-damage:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:4;box-shadow:inset 0 0 55px #c9678277;animation:impact-bloom .45s ease-out}
@keyframes impact-bloom{0%{opacity:0;transform:scale(.35)}20%{opacity:1;transform:scale(1.05)}100%{opacity:0;transform:scale(1.35)}}
@media(prefers-reduced-motion:reduce){.impact-fx,.taking-damage:after{animation:none}.impact-fx{opacity:.65}.enemy.hit img{animation:none}}

button,a,input,select{touch-action:manipulation}
@media(max-width:650px){
 body.in-dungeon .topbar{display:none}
 input,select,textarea{font-size:16px}
 #explore-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 4px max(14px,env(safe-area-inset-bottom))}
 #explore-actions .dpad{grid-column:1/-1;justify-self:center;grid-template-columns:repeat(2,68px);gap:10px}
 #explore-actions .dpad button{width:68px;height:58px;padding:0;font-size:29px;border-radius:14px;box-shadow:0 3px 0 #c6d4df;touch-action:manipulation}
 #explore-actions .dpad button:active{transform:translateY(2px);box-shadow:none;background:#dce8f4}
 #explore-actions>button{min-height:50px;font-size:14px;padding:10px}
 #battle-actions button{min-height:50px;flex:1 1 42%;font-size:14px}
 body.in-dungeon:has(#adventure:not([hidden])) .nav,
 body.in-dungeon #adventure .main-panel>.section-heading{display:none}
 body.in-dungeon:has(#adventure:not([hidden])) #game{padding-top:6px}
}

#map{aspect-ratio:auto;max-height:none;min-height:0;cursor:pointer;touch-action:manipulation}.dpad{display:grid;grid-template-columns:repeat(2,42px);gap:5px}.dpad [data-dir=left]{grid-area:1/1}.dpad [data-dir=up]{grid-area:1/2}.dpad [data-dir=down]{grid-area:2/1}.dpad [data-dir=right]{grid-area:2/2}

#music-toggle{position:absolute;right:10px;bottom:8px;z-index:3;min-width:60px;min-height:44px;padding:6px 10px;font-size:12px;background:#f6fbf2e8}.scene-caption{padding-right:78px;pointer-events:none}

#battle-actions [data-battle=attack]{order:-3}#battle-actions #strategy-open{order:-2}#strategy-review p{padding:10px;border-bottom:1px solid #dde5eb;font-size:12px}#strategy-title:focus{outline:none}#strategy-close{color:#89788c}

#codex-series{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#codex-series article{border:1px solid #e0d9eb;border-radius:12px;background:#f9f7fc;padding:12px}#codex-series strong,#codex-series span,#codex-series small{display:block;font-size:11px}#codex-series strong{font-size:14px;color:#88769e}#codex-series progress{width:100%}

#treasure-dialog{width:min(440px,94vw);max-height:90dvh;overflow-y:auto;text-align:center;background:linear-gradient(145deg,#fffdf0,#f1f5fc);border:2px solid #dfd0a5;padding:18px}#treasure-dialog h2{font-size:20px;margin:8px 0}#treasure-dialog>small{color:#9d814f}#treasure-dialog>p{font-size:12px;line-height:1.8}#treasure-close{min-height:48px}#treasure-title:focus{outline:none}

body.in-battle #battle-actions{margin-top:7px}.battle-values{position:absolute;left:3px;right:3px;bottom:3px;min-height:32px;background:#fffffff5;pointer-events:none;border-radius:5px;text-align:center;display:grid;align-content:center;gap:2px}.battle-values span{display:block!important;font-size:10px!important;line-height:1.3;white-space:nowrap}

/* Compact equipment list and enlarged character artwork. */
#items{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
#items .inventory-entry{display:flex;align-items:center;gap:12px;width:100%;min-height:92px;text-align:left;padding:10px;background:#fffaf0;border:2px solid #c7d9db;border-radius:14px;color:#28454d}
#items .inventory-entry img{width:76px;height:76px;object-fit:contain;flex-shrink:0}
#items .inventory-entry span{min-width:0}#items .inventory-entry strong{display:block;margin:5px 0;overflow-wrap:anywhere}#items .inventory-entry small{display:block}
#items .quality-2{border-color:#77b8d3}#items .quality-3{border-color:#b28cce}#items .quality-4{border-color:#dbb455}
#portrait-dialog{width:min(460px,94vw);text-align:center}#portrait-dialog .portrait-image{display:block;width:100%;padding:0;border:0;background:radial-gradient(ellipse,#dff6f1,transparent 70%)}
#portrait-dialog img{display:block;width:100%;height:min(65dvh,480px);object-fit:contain}#portrait-close{margin-top:12px}
.details-portrait [data-portrait]{padding:0;border:0;background:transparent;flex-shrink:0}.details-portrait [data-portrait] small{display:block}
button.member-portrait{padding:0;border:0;cursor:zoom-in}

.special-hero{padding:24px;border:1px solid #9fcfc4;border-radius:22px;background:radial-gradient(ellipse at 85% 10%,#fdfbd3,transparent 60%),linear-gradient(135deg,#dbf4ec,#d8e8f4)}
.special-hero h2{font-size:28px}.special-hero small{display:block;margin:10px 0}.special-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:18px 0}.special-items article{padding:15px;border:1px solid #cbdeda;background:#fffdf6;border-radius:16px}.special-items img{width:100%;height:150px;object-fit:contain}.special-items h3{margin:5px 0}.special-items p{font-size:13px}.special-items button{width:100%;margin-top:8px}
.pass-card{padding:20px;background:#f2edf9;border-radius:18px;margin:20px 0}.relic-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.relic-members select{width:100%}#special details{margin:20px 0}.pending-item{display:flex;gap:10px;padding:12px;background:#fff0cd;border-radius:12px;margin:12px 0}.pending-item img{width:70px;object-fit:contain}.pending-item p{font-size:13px}#relic-result img{width:100%;height:280px;object-fit:contain}.shield-value{color:#007b88;font-size:10px!important;line-height:1.1}
@media(max-width:650px){.topbar{height:auto;min-height:72px;padding-top:7px;padding-bottom:7px}}

.collection-result{text-align:center;padding:8px 0}.collection-result h2{margin:4px 0}.discovery-badge{display:inline-block;border-radius:18px;background:#fff0b1;color:#745023;padding:8px 18px}.result-enemies article{display:flex;align-items:center;gap:10px;background:#edf8fa;border-radius:12px;margin:6px 0;padding:6px}.result-enemies img{width:64px;height:64px;object-fit:contain}.collection-result p{margin:6px 0}

.material-card{display:flex;gap:12px;padding:12px;border-radius:16px;background:#f5fbfc}.material-card img{width:90px;height:90px;object-fit:contain;border-radius:12px}.material-card b{display:block}.material-card p{margin:5px 0}.material-card.undiscovered img{opacity:.45}.material-workshop{padding:12px;margin:12px 0;border-radius:14px;background:#edf6f4}.material-workshop select{width:100%}.material-workshop button{margin-top:8px}

.nursery-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;align-items:center;padding:14px;border-radius:20px;background:#f5f9ff;margin:12px 0}.nursery-card img{width:100%;max-height:220px;object-fit:contain}.nursery-card h3{margin:4px 0}.temple-party{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.temple-party article{padding:14px;background:#edf8fa;border-radius:14px}.temple-party button{margin:4px}.temple-deities{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.temple-deities article{text-align:center;padding:10px;background:#fff9eb;border-radius:16px}.temple-deities img{display:block;max-width:150px;width:100%;height:160px;object-fit:contain;margin:auto}.temple-deities small{display:block}#birth-form{max-width:560px;padding:18px;background:#f1f7fb;border-radius:18px}#birth-form select,#birth-form input{width:100%;min-width:0}#birth-form label{display:block;margin:12px 0}#lineage-body h2{margin-top:30px}@media(max-width:400px){.nursery-card{grid-template-columns:110px minmax(0,1fr);gap:10px;padding:10px}}

.nursery-portrait{padding:0;border:0;background:transparent;width:100%}.nursery-portrait small{display:block}.nursery-portrait img{display:block}

#warp-floor{max-width:100%;min-width:0;flex:1}#job-guide{max-height:45vh;overflow:auto}#job-guide details{padding:10px;border-bottom:1px solid #dae8ed}#supply-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:10px}.codex-craft{padding:16px;border-radius:14px;background:#e6f1f4}.codex-craft button{touch-action:manipulation}.relic-temper{padding:16px;background:#edf1fa;border-radius:14px}

#supply-detail{width:min(430px,94vw);max-height:94dvh;overflow-y:auto;overflow-x:hidden;padding:18px}#supply-detail .equipment-large{display:block;width:min(320px,100%);height:min(320px,42dvh);object-fit:contain;margin:0 auto 12px}#supply-detail select{width:100%;min-width:0}#supply-detail label{display:block}#supply-detail button{min-height:44px;max-width:100%;margin-top:10px}.member-card>*,.details-portrait>*,.nursery-card>*{min-width:0}
.details-portrait{display:grid;grid-template-columns:100px minmax(0,1fr)}.member-card,.details-portrait,.nursery-card{overflow-wrap:anywhere}
#member-details{overflow-wrap:anywhere}.details-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.details-stats>*{min-width:0}.member-card button{max-width:100%;white-space:normal}
.discovery-effect{animation:codex-register .85s ease-out both}
.result-enemies .discovery-badge{font-size:12px}
@keyframes codex-register{0%{transform:scale(.92);filter:brightness(1.7);box-shadow:0 0 0 0 #68dcca88}55%{transform:scale(1.02);box-shadow:0 0 18px 5px #68dcca66}100%{transform:scale(1);filter:brightness(1);box-shadow:0 0 0 0 transparent}}
@media(max-width:430px){.member-card{grid-template-columns:90px minmax(0,1fr)}.member-card>div{padding:12px}.details-portrait{display:grid;grid-template-columns:80px minmax(0,1fr)}.details-portrait img{width:80px;height:100px}}
@media(prefers-reduced-motion:reduce){.discovery-effect{animation:none;outline:2px solid #70d9c2;outline-offset:2px}}

/* Reward gallery: art first, earned experience last. */
#treasure-dialog{width:min(500px,94vw);background:radial-gradient(ellipse at 0 0,#fff5d4,transparent 55%),radial-gradient(ellipse at 100% 45%,#d9f5f4,transparent 65%),#f9fbff;border-color:#c7dcd7;padding:18px}
.result-heading{padding:0 0 14px}.result-heading small{font-size:10px;letter-spacing:.3em;color:#829caa}
.result-gallery,.result-gallery.single-find{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;max-width:400px;margin:0 auto 18px}
.result-art-card{--card-glow:#96d9d4;margin:0;min-width:0}.result-art-card[data-quality="2"]{--card-glow:#92c5e7}.result-art-card[data-quality="3"]{--card-glow:#c4a1e8}.result-art-card[data-quality="4"]{--card-glow:#e8c665}
.result-artwork{position:relative;aspect-ratio:1;border-radius:18px;border:2px solid color-mix(in srgb,var(--card-glow),white 30%);background:radial-gradient(circle,#fff 20%,#ffffff88 60%,var(--card-glow));box-shadow:0 5px 16px #688a9515;isolation:isolate}
.result-artwork img{width:100%;height:100%;object-fit:contain;padding:8px;position:relative;z-index:1;filter:drop-shadow(0 5px 4px #71889025)}
.result-art-card figcaption{font-size:12px;line-height:1.5;margin:7px 2px 0;overflow-wrap:anywhere;color:#526782}
.result-quality,.result-quantity{position:absolute;z-index:3;background:#fffffff0;padding:2px 8px;border-radius:10px;font-size:10px;box-shadow:0 2px 8px #74899422}.result-quality{left:6px;bottom:6px}.result-quantity{right:6px;bottom:6px;font-size:13px;font-weight:bold}
.new-discovery .result-artwork{border-color:#e7c778;box-shadow:0 0 16px #ead28d55,0 4px 18px #82cfc933}
.new-discovery .result-artwork:after{content:'';position:absolute;inset:0;border-radius:16px;background:linear-gradient(115deg,transparent 25%,#ffffffba 47%,transparent 65%);background-size:300% 100%;opacity:0;z-index:2;pointer-events:none}
.result-sparkles{position:absolute;inset:0;z-index:4;pointer-events:none}.result-sparkles i{position:absolute;font-style:normal;color:#f2cc64;text-shadow:0 0 6px white,0 0 10px #ead18f;left:var(--x);top:var(--y);opacity:0;font-size:20px}
.sparkle-visible .result-artwork:after{animation:reward-shimmer 1.7s ease-out 2}.sparkle-visible .result-sparkles i{animation:reward-twinkle 1.3s ease-in-out 3;animation-delay:calc(var(--i)*.13s)}
@keyframes reward-shimmer{0%{opacity:0;background-position:100% 0}30%{opacity:.85}100%{opacity:0;background-position:0 0}}
@keyframes reward-twinkle{0%,100%{opacity:0;transform:scale(.35) rotate(-20deg)}45%{opacity:1;transform:scale(1.1) rotate(15deg)}}
.enemy-memories{border-top:1px solid #cddfdf;padding-top:16px}.enemy-memory .result-artwork{background:radial-gradient(circle,#fff,#ecf5ff)}
.result-totals{border-top:1px solid #cddfdf;padding:14px 0;margin-top:8px}.result-earned{display:flex;justify-content:center;gap:45px}.result-earned span{display:grid;gap:1px}.result-earned small{font-size:10px;color:#8197a4}.result-earned strong{font-size:23px;font-weight:500;color:#607f96}.result-totals p{font-size:12px;margin:8px 0 0}.result-pending{color:#926d40}
@media(prefers-reduced-motion:reduce){.sparkle-visible .result-artwork:after,.sparkle-visible .result-sparkles i{animation:none}.new-discovery .result-sparkles i{opacity:.7;transform:none}}

.new-discovery .result-artwork:before{content:'NEW';position:absolute;top:10px;right:10px;z-index:5;padding:4px 11px;border-radius:12px;background:linear-gradient(135deg,#f5ba68,#ee8d99);color:#fff;font:700 12px/1.5 sans-serif;letter-spacing:.08em;box-shadow:0 3px 9px #b7827040;border:1px solid #ffffffb0;pointer-events:none}

.result-gallery.result-familiar{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 9px;padding-top:8px}.result-familiar .result-artwork{border-radius:12px}.result-familiar .result-artwork img{padding:4px}.result-familiar figcaption{font-size:10px;margin-top:5px}.result-familiar .result-quality{font-size:9px;left:3px;bottom:3px;padding:1px 5px}.result-familiar .result-quantity{font-size:11px;right:3px;bottom:3px;padding:1px 5px}.result-discoveries+.result-familiar{border-top:1px solid #d6e5e4;padding-top:16px}

.view-back,.dialog-back{position:sticky;top:0;z-index:8;display:block;min-height:44px;margin:0 0 12px;background:#f4faf9f5;box-shadow:0 3px 10px #688e9420;text-align:left}
#member-details>.dialog-back{width:100%;position:sticky;top:-1px}
#equipment-picker{width:min(480px,94vw);max-height:90dvh;overflow:auto;padding:16px}
.member-equipment-slots{display:grid;gap:7px}.member-equipment-slots button{display:grid;grid-template-columns:45px minmax(0,1fr) 45px;align-items:center;gap:8px;text-align:left;padding:10px;font-size:12px}.member-equipment-slots strong{overflow-wrap:anywhere;font-weight:500}.member-equipment-slots span{font-size:11px;color:#688897}
#equip-comparison{padding:12px;background:#f1f8f7;border-radius:12px;margin:12px 0}#equip-comparison h3{margin:8px 0}.equipment-comparison{width:100%;border-collapse:collapse;font-size:12px}.equipment-comparison th,.equipment-comparison td{padding:4px;text-align:right;overflow-wrap:anywhere}.equipment-comparison th:first-child{text-align:left}.stat-up{color:#197558}.stat-down{color:#b4485b}#equip-comparison .small{margin:8px 0 0}

.equipment-slot-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.member-equipment-slots .unequip-button{display:block;width:auto;padding:10px;font-size:11px}.equipment-slot-row>button:only-child{grid-column:1/-1}

.recruitment-panel{padding:18px;border:1px solid #bad8d4;border-radius:16px;background:#f1f9f6;margin:16px 0}.recruitment-panel small{display:block;margin-top:10px}.recruitment-panel h2{margin-top:0}#recruit-dialog{max-height:92dvh;overflow-y:auto;padding:18px}#recruit-portrait{text-align:center;background:radial-gradient(circle,#fff,#e9f6f4);border-radius:16px;margin-bottom:12px}#recruit-portrait img{height:220px;max-width:100%;object-fit:contain}#recruit-error{color:#a54755;font-size:12px}.town-recruit-link{min-height:44px}#battle-roster,#party-strip{grid-template-columns:repeat(var(--party-columns,3),minmax(0,1fr))}

#equipment-picker-items .inventory-entry{display:flex;align-items:center;gap:10px;width:100%;min-height:84px;text-align:left;padding:8px}#equipment-picker-items .inventory-entry img{width:64px;height:64px;object-fit:contain;flex:0 0 64px}#equipment-picker-items .inventory-entry>span{min-width:0;overflow-wrap:anywhere}#equipment-picker-items .inventory-entry strong,#equipment-picker-items .inventory-entry small{display:block}

.equipment-rule{padding:10px;background:#e9f5ef;border-radius:10px}.gear-comparison p{margin:5px 0;font-size:13px}.market-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.market-filter input,.market-filter select{width:100%;min-width:0}.market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.market-card{display:flex;flex-direction:column;gap:6px;align-items:center;min-width:0;white-space:normal;overflow-wrap:anywhere;background:#fffaf1;border:1px solid #c9dcd7;border-radius:16px;padding:12px}.market-card img{width:100%;height:180px;object-fit:contain}.market-card strong{font-size:15px}.market-card b{color:#386f65}.market-owned article{display:flex;gap:12px;padding:14px;border-bottom:1px solid #ccdfd9}.market-owned img{width:84px;height:84px;object-fit:contain}.market-owned small{display:block}.market-owned article>div{min-width:0;overflow-wrap:anywhere}.market-terms{margin:18px 0}#market-sell-preview img{width:120px;height:120px;object-fit:contain}#market-list-form{padding:16px;border:1px solid #c9dcd7;border-radius:14px}#market-detail{overflow-y:auto;max-height:92dvh}#market-detail-body>img{display:block;width:min(100%,260px);height:240px;object-fit:contain;margin:auto}#market-detail-body>button{display:block;width:100%;margin:16px 0}#roster-swap-body>button{display:block;width:100%;margin:10px 0}.market-filter button{align-self:end;min-height:44px}@media(max-width:600px){.market-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.market-card{padding:8px}.market-card img{height:150px}.market-card strong{font-size:13px}.market-filter{gap:8px}}

.recipe-grid .market-card{position:relative}.recipe-seal{background:#d3e9e0;color:#315f57;border-radius:20px;padding:3px 10px;font-size:11px}.workshop-art{display:block;width:min(100%,260px);height:240px;object-fit:contain;margin:14px auto;border:1px solid #c0d8d0;border-radius:16px;background:radial-gradient(circle,#fffdf3,#e0f3ef)}#recipe-dialog,#reroll-dialog,#reroll-result{max-height:92dvh;overflow-y:auto}.recipe-ingredients article{display:flex;gap:10px;align-items:center;padding:8px 0}.recipe-ingredients img{width:56px;height:56px;object-fit:contain}.recipe-ingredients small,.recipe-ingredients span{display:block}.reroll-rates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.reroll-rates span{font-size:12px;text-align:center;background:#edf4f1;padding:8px 2px;border-radius:8px}.reroll-rates b{display:block;font-size:18px}.reroll-list .inventory-entry{display:flex;width:100%;align-items:center;gap:12px;text-align:left}.reroll-list img{width:64px;height:64px;object-fit:contain}.reroll-list strong,.reroll-list small{display:block}.reroll-list>button{margin:8px 0}.reroll-quality{text-align:center;font-size:19px}#reroll-result .workshop-art{animation:reroll-reveal .6s ease-out}#reroll-result .quality-4{border:2px solid #e3b856;box-shadow:0 0 22px #f4d47988}#recipe-body>button,#reroll-body>button,#reroll-result>button{display:block;width:100%;margin-top:18px;min-height:48px}@keyframes reroll-reveal{from{opacity:.3;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){#reroll-result .workshop-art{animation:none}}

#codex-shelves{display:flex;overflow-x:auto;gap:8px;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding:8px 0 12px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}#codex-shelves button{flex:0 0 86px;scroll-snap-align:center;min-height:52px}#codex-cards img{min-height:100px}#party-strip .mini-member{display:grid;grid-template-columns:42px minmax(0,1fr);gap:4px;padding:7px;align-items:center}#party-strip .mini-member>img{width:42px;height:60px}#party-strip .mini-member strong{white-space:normal;overflow-wrap:anywhere;line-height:1.4}#party-strip .mini-member strong small{display:block}#town-party img,#town-party img:first-child{width:calc(100% / var(--active-party-count,6));max-width:180px;height:100%;margin-left:0;object-fit:contain}#warehouse-body .inventory-entry{display:flex;gap:12px;align-items:center;width:100%;margin:10px 0}#warehouse-body .inventory-entry img{width:64px;height:64px;object-fit:contain}#warehouse-body .inventory-entry span{min-width:0}#warehouse-body .inventory-entry strong,#warehouse-body .inventory-entry small{display:block}.warehouse-counts{padding:14px;background:#edf6f2;border-radius:12px}@media(max-width:430px){#party-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}#party-strip .mini-member{grid-template-columns:36px minmax(0,1fr)}#party-strip .mini-member>img{width:36px;height:54px}}

#inventory-members{display:flex;overflow-x:auto;gap:8px;padding:8px 0 14px}#inventory-members button{flex:0 0 126px;display:flex;align-items:center;gap:6px;padding:6px;text-align:left}#inventory-members img{width:36px;height:54px;object-fit:contain}#inventory-members span{min-width:0;overflow-wrap:anywhere}#inventory-members small{display:block}#inventory-members .selected{border:2px solid #9582bd;background:#eee8fa}#items{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:10px}.equipment-choice{border:1px solid #d5e0e5;border-radius:14px;background:#fff;overflow:hidden;min-width:0}.equipment-choice.is-equipped{border-color:#a9bfae;background:#f0f7f0}.equipment-choice-main{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:0;text-align:left;background:transparent;padding:12px;box-shadow:none}.equipment-choice-main:disabled{opacity:1;color:inherit;cursor:default}.equipment-choice-main img{width:64px;height:64px;object-fit:contain;flex-shrink:0}.equipment-choice-main>span{min-width:0}.equipment-choice-main strong{display:block;font-size:14px;overflow-wrap:anywhere}.equipment-choice-main small{display:block;font-size:11px}.equipment-deltas{display:flex;flex-wrap:wrap;gap:2px 9px;font-size:11px;margin-top:5px}.equipment-choice-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 10px 8px}.equipment-choice-actions button{font-size:12px;padding:6px 14px;min-height:36px}#equipment-picker-items{display:grid;gap:10px}

#adventure .adventure-grid{grid-template-columns:minmax(0,1fr)}.help>details{padding:12px 4px;border-bottom:1px solid #dce7ea}.help>details>summary{cursor:pointer;font-size:16px}.help>details[open]>summary{margin-bottom:12px}

#game>.nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;white-space:normal;gap:8px}#game>.nav button{width:100%;padding:10px 4px;font-size:13px;min-width:0}.other-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.other-menu button{min-height:64px}

/* Larger battle artwork; keep labels and target buttons in separate columns. */
body.in-battle #scene #enemies{padding-left:38px;padding-right:38px}
body.in-battle #scene #enemies .enemy img{display:block;width:240px;height:220px;max-width:none;margin-left:calc(50% - 120px);pointer-events:none}
@media(max-width:650px),(max-height:500px) and (max-width:1000px){
 body.in-battle #scene,body.in-battle #battle-scene{overflow:clip}
 body.in-battle #scene #enemies{container-type:size;padding:6px 26px;gap:2px}
 body.in-battle #scene #enemies:not(:has(>.enemy:nth-child(4))){overflow:clip}
 body.in-battle #scene #enemies .enemy{flex:0 0 min(104px,calc((100% - 4px)/3));width:min(104px,calc((100% - 4px)/3));max-width:104px}
 body.in-battle #scene #enemies .enemy img{width:150px;height:clamp(48px,calc(100cqh - 100px),180px);margin-left:calc(50% - 75px)}
}

/* Equip from the compact card; open item details in a read-only viewer. */
.equipment-choice-actions{align-items:center;flex-wrap:wrap}
.equipment-choice-actions button{width:auto;margin-top:0}
.equipment-choice-actions .equipment-info-button{margin-right:auto;padding:4px 10px;font-size:11px;min-height:32px;background:#f6f9fa}
.equipment-choice-actions .equipment-equip-button{min-height:40px;min-width:84px;padding:7px 18px}
#item-info{width:min(460px,94vw);max-height:90dvh;overflow-y:auto;padding:18px;overflow-wrap:anywhere}
#item-info>.dialog-back{width:100%;margin-top:0}
#item-info .equipment-large{display:block;width:min(200px,100%);height:180px;object-fit:contain;margin:0 auto 12px}
#item-info-body>small{display:block;color:var(--muted);font-size:11px}
#item-info-title{font-size:20px;margin:5px 0 14px}
#item-info-body>p{font-size:13px}
.item-info-stats{display:grid;grid-template-columns:1fr auto 1fr auto;gap:6px 12px;margin:12px 0;padding:12px;background:#f1f8f7;border-radius:12px;font-size:13px}
.item-info-stats dd{margin:0;text-align:right;font-weight:600}

/* Keep recovery guidance beside the battle controls until HP is restored. */
#battle-recovery-hint{order:-4;grid-column:1/-1;flex:1 0 100%;min-width:0;border:1px solid #dfbd73;border-radius:10px;background:#fff5d9;color:#74521c;padding:6px 10px;text-align:center;line-height:1.4;overflow-wrap:anywhere}
#battle-recovery-hint strong{display:block;font-size:12px}
#battle-recovery-hint span{display:block;font-size:11px}
#battle-recovery-hint.is-critical{background:#fff0ed;border-color:#d88376;color:#943e36}
#battle-actions button.recovery-recommended{position:relative;border:2px solid #c39839;background:#fff0b8;color:#624412;font-weight:700;box-shadow:0 0 0 3px #e8c46b55;animation:recovery-glow 1.8s ease-in-out infinite}
#battle-actions button.recovery-recommended:before{content:'✦ ';pointer-events:none}
#battle-actions button.recovery-critical{border-color:#c66d57;background:#ffe5cd;color:#783b28}
#battle-roster .battle-member.hp-warning{border-color:#d7ad54;background:#fff9e9}
#battle-roster .battle-member.hp-critical{border-color:#c87066;background:#fff0ee}
#battle-roster .hp-warning .member-hp::-webkit-progress-value{background:#d3a442}
#battle-roster .hp-critical .member-hp::-webkit-progress-value{background:#ce7063}
#battle-roster .hp-warning .member-hp::-moz-progress-bar{background:#d3a442}
#battle-roster .hp-critical .member-hp::-moz-progress-bar{background:#ce7063}
@keyframes recovery-glow{0%,100%{box-shadow:0 0 0 2px #e6bd6350,0 0 7px #e6bd6330}50%{box-shadow:0 0 0 4px #e6bd6380,0 0 16px #e6bd6370}}
@media(prefers-reduced-motion:reduce){#battle-actions button.recovery-recommended{animation:none}}

#treasure-dialog button.result-artwork{display:block;width:100%;padding:0;margin:0;text-align:inherit}
.result-codex-label{display:block;margin-top:3px;font-size:10px;color:#657e8d}
#result-codex{width:min(460px,94vw);max-height:90dvh;overflow-y:auto;padding:16px;background:#f9fcfb;overflow-wrap:anywhere}
#result-codex>.dialog-back{margin-top:0;width:100%;font-size:12px;min-height:44px}
body.busy #result-codex-close{pointer-events:auto;cursor:pointer}
#result-codex-title{font-size:19px;margin:10px 0 14px}
#result-codex-title:focus{outline:none}
.result-codex-summary{padding:14px;border:1px solid #c9e2d9;border-radius:12px;background:#edf7f2;text-align:center;margin-bottom:16px}
.result-codex-summary strong{display:block;font-size:22px;color:#477c6c;font-weight:600}
.result-codex-summary span,.result-codex-summary small{display:block;font-size:12px}
.result-codex-summary progress{width:100%;height:7px;margin:10px 0}
.result-codex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.result-codex-grid figure{margin:0;padding:4px;min-width:0;border:1px solid #dbe6e4;border-radius:9px;background:#fff;text-align:center}
.result-codex-grid figure.is-current{border:2px solid #83b5a5;background:#effaf4;padding:3px}
.result-codex-grid img{display:block;width:100%;height:64px;object-fit:contain}
.result-codex-grid figcaption{font-size:10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:28px}
.result-codex-grid small{display:block;font-size:9px;color:#768f88}
@media(max-width:360px){.result-codex-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

#formation-dialog{width:min(94vw,540px);box-sizing:border-box}#formation-open{margin:8px 0}.formation-row{border:2px solid #abcfcf;border-radius:16px;padding:10px;margin:12px 0;min-height:130px}.formation-row h3{margin:0 0 8px}.formation-members{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:80px}.formation-member{touch-action:none;padding:4px;min-width:0;user-select:none}.formation-member img{width:100%;height:76px;object-fit:contain;pointer-events:none}.formation-member span{display:block;font-size:12px;overflow-wrap:anywhere}.formation-member.selected,.formation-row.drop-target{outline:3px solid #39aaa5}.formation-member.dragging{opacity:.45}

/* One-floor catalog: only the selected floor is present in the DOM. */
.codex-floor-switcher{display:grid;grid-template-columns:auto minmax(190px,1fr) auto;gap:10px;align-items:end;padding:14px;border:1px solid #c9dcdf;border-radius:16px;background:#f2f8f8;position:sticky;top:62px;z-index:8}.codex-floor-switcher label{display:grid;gap:4px;font-size:11px}.codex-floor-switcher select{width:100%;min-width:0}.codex-floor-heading{margin:18px 0 8px;padding:18px 20px;border-radius:18px;background:linear-gradient(115deg,#e5f4f4,#f7f1df)}.codex-floor-heading small{color:#58878b}.codex-floor-heading h2{margin:4px 0 0}.floor-catalog-counts{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.floor-catalog-counts span{padding:8px 10px;border-radius:999px;background:#ffffffb8;font-size:11px}.floor-catalog-section{padding:18px 0;border-top:1px solid #dce8e8}.floor-catalog-section>h2{font-size:18px;margin:0 0 10px}.floor-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:10px}.floor-catalog-card{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:center;width:100%;min-width:0;padding:8px;text-align:left;color:var(--ink);background:#fff;border:1px solid #d7e4e5;border-radius:14px;box-shadow:none}.floor-card-art{display:block;width:82px;height:82px;border-radius:11px;background:linear-gradient(145deg,#f3faf9,#f8f4eb);overflow:hidden}.floor-card-art img{width:100%;height:100%;object-fit:contain;display:block}.floor-card-body,.floor-card-body small,.floor-card-body strong,.floor-card-body>span{display:block;min-width:0}.floor-card-body small{font-size:10px;color:#638b8c}.floor-card-body strong{margin:3px 0;font-size:14px;overflow-wrap:anywhere}.floor-card-body>span{font-size:10px;line-height:1.45;color:#687c82}.floor-catalog-card.undiscovered .floor-card-art img{filter:brightness(0) opacity(.25)}.floor-catalog-card.undiscovered .floor-card-body strong{color:#819094}
@media(max-width:560px){.codex-floor-switcher{grid-template-columns:1fr 1fr;top:52px}.codex-floor-switcher label{grid-column:1/-1;grid-row:1}.codex-floor-switcher button{min-width:0}.floor-catalog-grid{grid-template-columns:1fr}.floor-catalog-counts{justify-content:flex-start}#codex-summary{display:block}.floor-catalog-card{grid-template-columns:72px minmax(0,1fr)}.floor-card-art{width:72px;height:72px}}

.port-facilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}.port-facilities button{padding:18px 10px;background:linear-gradient(140deg,#edfafa,#f9f2e5);border:1px solid #b5d5d5;border-radius:16px;min-height:78px}.port-facilities strong,.port-facilities small{display:block}.port-facilities small{font-size:11px;margin-top:5px}.port-members,.port-jobs,.port-candidates{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.port-members button,.port-jobs button,.port-candidates button{min-width:0;padding:10px;border:1px solid #b5d5d5;border-radius:14px;background:#f6fbfa}.port-members img,.port-jobs img,.port-candidates img{width:100%;height:150px;object-fit:contain;display:block}.port-members strong,.port-members small,.port-jobs strong,.port-jobs small{display:block}.port-jobs [aria-pressed=true],.port-candidates [aria-pressed=true]{border:2px solid #348781;background:#e5f6f1}.port-locked{margin:20px 0}.port-locked summary{cursor:pointer;margin-bottom:12px}.port-job-preview{display:grid;grid-template-columns:minmax(180px,280px) minmax(0,1fr);gap:20px;padding:20px;border:1px solid #b5d5d5;border-radius:18px;background:#f6fbfa;margin:20px 0}.port-job-preview>img{width:100%;max-height:300px;object-fit:contain}.port-job-preview h2{margin-top:0}.port-job-preview button{min-height:48px;width:100%}.port-materials{display:flex;gap:10px;flex-wrap:wrap}.port-materials figure{margin:0;width:90px;font-size:12px;text-align:center}.port-materials img{width:80px;height:80px;object-fit:contain}#guild-preview{scroll-margin-top:16px}.port-candidates{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.port-candidates button{padding:4px}.port-candidates img{height:85px}.port-candidates small{font-size:10px}#recruit-dialog{max-width:560px}#recruit-portrait img{max-height:200px}@media(max-width:600px){.port-members,.port-jobs{grid-template-columns:repeat(2,minmax(0,1fr))}.port-job-preview{grid-template-columns:1fr;padding:15px;gap:8px}.port-job-preview>img{height:240px}.port-facilities{gap:8px}.port-candidates{grid-template-columns:repeat(2,minmax(0,1fr))}.port-candidates img{height:110px}}.port-facilities[hidden]{display:none}

/* Job changes use a focused screen with one contextual back action. */
body.job-change-screen .topbar,body.job-change-screen #game>.nav{display:none}body.job-change-screen #game{padding-top:12px}#guild>h1{margin:12px 0 20px}#guild .port-members{max-width:900px}#guild .port-members button{min-height:210px}#guild .port-members img{height:180px}

#warehouse-body .inventory-entry{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center;width:100%;text-align:left;margin:8px 0;padding:8px;overflow:hidden}#warehouse-body .inventory-entry>img{width:76px;height:76px;object-fit:contain}#warehouse-body .inventory-entry small{display:block}
.workshop-supply>span>small{display:flex;align-items:center;gap:6px;margin:4px 0}.workshop-supply>span>small img{width:28px;height:28px;object-fit:contain}.workshop-supply>span>button{margin-top:6px}

#scene #explore-actions{position:absolute;left:10px;right:10px;bottom:10px;z-index:3;display:flex;justify-content:center;align-items:flex-end;gap:16px;margin:0;padding:0;pointer-events:none}
#scene #explore-actions .dpad{display:grid;grid-template-columns:repeat(2,48px);gap:5px;pointer-events:auto}
#scene #explore-actions .dpad button{width:48px;height:42px;min-height:42px;padding:0;font-size:24px;border-radius:10px;background:#f4faf4ed;box-shadow:0 2px 0 #9bb5be;touch-action:manipulation}
#scene #explore-actions>#interact{min-height:44px;max-width:180px;margin:0 0 2px;padding:10px 16px;font-size:13px;pointer-events:auto;box-shadow:0 2px 7px #31536730}
body.busy #scene #explore-actions button{pointer-events:none}
#explore-return{margin:20px 0 4px;text-align:center}#explore-return button{min-height:44px;padding:10px 28px}
#settings .sound-settings{max-width:460px;padding:22px;border:1px solid #d1e0e2;border-radius:16px;background:#fff}
#settings #music-toggle{position:static;min-width:140px;min-height:46px;font-size:16px;background:#eff7f3}
.scene-caption{padding-right:0}

/* Navigation sits immediately beneath the map; tile actions stay on the map. */
#adventure #explore-actions{position:static;display:flex;justify-content:center;align-items:center;gap:10px;margin:0 0 24px;padding:8px 0 10px;pointer-events:auto}
#adventure #explore-actions .dpad{display:grid;grid-template-columns:repeat(2,42px);gap:5px}
#adventure #explore-actions .dpad button{width:42px;height:auto;min-height:0;padding:6px;font-size:18px;border-radius:10px;background:#fff;box-shadow:none;touch-action:manipulation}
#adventure #explore-actions>#explore-hand{min-width:104px;min-height:44px;padding:8px 12px;pointer-events:auto;background:#fffdf5}
@media(max-width:650px){#adventure #explore-actions .dpad{grid-template-columns:repeat(2,68px);gap:10px}#adventure #explore-actions .dpad button{width:68px;height:58px;padding:0;font-size:29px;border-radius:14px;box-shadow:0 3px 0 #c6d4df}#adventure #explore-actions .dpad button:active{transform:translateY(2px);box-shadow:none;background:#dce8f4}}
#map-stage>#interact.scene-interact{position:absolute;left:50%;top:70%;bottom:auto;z-index:3;transform:translate(-50%,-50%);min-height:44px;max-width:calc(100% - 24px);width:max-content;margin:0;padding:10px 18px;font-size:14px;box-shadow:0 3px 12px #31536745}
#map-stage>#interact.scene-interact:hover{transform:translate(-50%,-50%)}

#map-stage{position:relative;width:100%;margin:0;padding:0}#map-stage>#map{vertical-align:top}
body.in-dungeon:not(.in-battle) #scene{min-height:0}#adventure #explore-actions{padding-top:0}

/* The scenery stays opaque; only occasional water particles use this separate layer. */
#map-stage>.deep-sea-effects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;border-radius:inherit}
/* Reduced motion uses a static sea illustration, rendered once by deep-sea.js. */

/* The same exploration/battle information is shown at every viewport width. */
body.in-dungeon .topbar,
body.in-dungeon:has(#adventure:not([hidden])) #game>.nav,
body.in-dungeon #adventure .main-panel>.section-heading{display:none}
body.in-dungeon:has(#adventure:not([hidden])) #game{padding-top:6px}
body.in-battle #adventure .main-panel{width:100%;max-width:1440px;margin-inline:auto}
body.in-battle #battle-actions{margin-top:0}
body.in-battle #formation-open{display:none}
body.in-battle #combat-message{margin-right:5px}
@media(min-width:1001px){
 body.in-battle #adventure .main-panel{grid-template-columns:minmax(0,1fr) minmax(290px,340px);grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:12px}
 body.in-battle #adventure #scene{grid-column:1;grid-row:1/3}
 body.in-battle #battle-roster{grid-column:2;grid-row:1;grid-template-columns:repeat(2,minmax(0,1fr));align-self:center;gap:8px}
 body.in-battle #battle-actions{grid-column:2;grid-row:2;gap:8px}
 body.in-battle #battle-actions button{min-height:48px;font-size:14px}
 body.in-battle .battle-member{min-height:94px;padding:8px}
 body.in-battle .battle-member strong{font-size:12px}
 body.in-battle #scene .battle-caption{padding:10px;font-size:12px}
 body.in-battle #combat-message{font-size:13px;min-height:42px;margin:8px;padding:8px}
 body.in-battle #scene #enemies .enemy{flex-basis:180px;width:180px;max-width:180px;padding:6px}
 body.in-battle #scene #enemies .enemy>span{font-size:12px;min-height:34px}
 body.in-battle #scene #enemies .enemy img{width:240px;height:220px;margin-left:calc(50% - 120px)}
}
@media(min-width:1001px) and (max-height:600px){
 body.in-battle .battle-member{min-height:64px;padding:5px}
 body.in-battle .battle-member strong{font-size:11px}
 body.in-battle #battle-actions button{min-height:44px;font-size:12px}
 body.in-battle #scene #enemies .enemy img{height:180px}
}

/* A stable PC playfield shared by exploration and combat. */
@media(min-width:1001px){
 body.in-dungeon:has(#adventure:not([hidden])){overflow:hidden}
 body.in-dungeon #adventure .main-panel{position:fixed;inset:12px 0 auto;z-index:20;width:min(1200px,calc(100vw - 24px));max-width:none;height:min(720px,calc(100dvh - 24px));margin-inline:auto;padding:12px;background:#eef5f6;display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr) 184px;gap:12px;overflow:hidden}
 body.in-dungeon #adventure #scene{grid-column:1;grid-row:1;min-height:0;height:100%;border-radius:12px}
 body.in-dungeon:not(.in-battle) #map-stage,body.in-dungeon:not(.in-battle) #map{width:100%;height:100%}
 body.in-dungeon #adventure #explore-actions{grid-column:1;grid-row:2;align-self:start;justify-self:start;flex-direction:column;align-items:stretch;width:104px;margin:0;padding:0}
 body.in-dungeon #adventure #exploration-panel{grid-column:1;grid-row:2;align-self:start;justify-self:end;width:calc(100% - 120px);max-height:184px;overflow:auto;margin:0}
 body.in-dungeon #adventure #party-strip,body.in-battle #battle-roster{grid-column:2;grid-row:1;align-self:start;align-content:start;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 body.in-dungeon #adventure #formation-open{grid-column:2;grid-row:2;align-self:start;margin:0;min-height:44px}
 body.in-dungeon #adventure #explore-return{grid-column:2;grid-row:2;align-self:end;margin:0}
 body.in-dungeon #adventure #explore-return button{width:100%}
 body.in-battle #battle-actions{align-self:stretch;grid-template-rows:72px 48px 48px;gap:8px}
 body.in-battle #battle-recovery-hint{grid-row:1;margin:0;align-self:stretch;display:grid;align-content:center;padding:5px 8px}
 body.in-battle #battle-actions [data-battle=attack]{grid-column:1;grid-row:2}
 body.in-battle #battle-actions #strategy-open{grid-column:2;grid-row:2}
 body.in-battle #battle-actions [data-battle=skill]{grid-column:1;grid-row:3}
 body.in-battle #battle-actions .return{grid-column:2;grid-row:3}
 body.in-battle #combat-message{height:56px;min-height:56px;max-height:56px;overflow-y:auto;line-height:1.4}
 body.in-battle #scene .battle-caption{height:32px;min-height:32px;padding:5px}
 body.in-battle #scene #enemies .enemy>span{height:42px;min-height:42px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;overflow:hidden}
 body.in-battle #scene #enemies .enemy img{height:190px}
 body.in-battle #scene #enemies{align-items:flex-start;padding-top:24px}
 body.in-battle #scene #enemies .enemy:nth-child(n){margin-top:0}
 body.in-battle #scene #enemies .enemy{display:grid;grid-template-rows:42px 190px 5px 44px;row-gap:6px;margin-top:0;align-content:start}
 body.in-battle #scene #enemies .enemy>span{overflow:auto}
 body.in-battle #scene #enemies .enemy .bar{margin:0 auto;height:5px}
 body.in-battle #scene #enemies .enemy>small{height:44px;overflow:auto;line-height:1.4}
}
@media(min-width:1001px) and (max-height:600px){
 body.in-dungeon #adventure .main-panel{grid-template-rows:minmax(0,1fr) 176px;padding:8px;gap:8px}
 body.in-battle #battle-actions{grid-template-rows:72px 44px 44px}
 body.in-dungeon #party-strip .mini-member{padding:5px;grid-template-columns:28px minmax(0,1fr)}
 body.in-dungeon #party-strip .mini-member>img{width:28px;height:44px}
 body.in-dungeon #party-strip .mini-member strong{font-size:11px;line-height:1.3}
 body.in-dungeon #party-strip .mini-member strong small{display:inline}
 body.in-battle #scene #enemies .enemy{padding:2px}
 body.in-battle #scene #enemies{padding-top:0}
 body.in-battle #scene #enemies .enemy img{height:clamp(48px,calc(100dvh - 400px),130px)}
 body.in-battle #scene #enemies .enemy{grid-template-rows:28px clamp(48px,calc(100dvh - 400px),130px) 5px 28px;row-gap:2px}
 body.in-battle #scene #enemies .enemy>small{height:28px;font-size:9px}
 body.in-dungeon #adventure #exploration-panel{max-height:176px}
 body.in-battle #scene #enemies .enemy>span{height:28px;min-height:28px;font-size:10px}
 body.in-battle #scene .battle-caption{height:22px;min-height:22px;font-size:10px;padding:2px}
 body.in-battle #combat-message{height:44px;min-height:44px;max-height:44px;margin:4px;padding:4px;font-size:11px}
}
/* Enemy counts float over the art instead of taking a separate title row. */
body.in-battle #scene #enemies .enemy{position:relative}
body.in-battle #scene #enemies .enemy>span{position:absolute;z-index:2;right:4px;top:4px;width:auto;height:auto;min-height:0;max-height:28px;padding:2px 7px;border:1px solid #d4e7e7;background:#edf8f3eb;border-radius:12px;font-size:12px;line-height:1.4;pointer-events:none}
@media(min-width:1001px){
 body.in-battle #scene #enemies .enemy{flex-basis:226px;width:226px;max-width:226px;grid-template-rows:232px 5px 44px}
 body.in-battle #scene #enemies .enemy img{width:260px;height:232px;margin-left:calc(50% - 130px)}
}
@media(min-width:1001px) and (max-height:600px){
 body.in-battle #scene #enemies .enemy{grid-template-rows:clamp(76px,calc(100dvh - 372px),158px) 5px 28px}
 body.in-battle #scene #enemies .enemy img{height:clamp(76px,calc(100dvh - 372px),158px)}
}
@media(max-width:650px),(max-height:500px) and (max-width:1000px){
 body.in-battle #scene #enemies .enemy img{width:190px;height:clamp(76px,calc(100cqh - 64px),220px);margin-left:calc(50% - 95px)}
 body.in-battle #scene #enemies .enemy>span{right:0;top:0;font-size:10px;padding:2px 5px}
}

#account-id{font-size:11px;white-space:nowrap;color:#718798}.home-shops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 16px}.home-shops[hidden]{display:none}.home-shop{position:relative;display:flex;align-items:center;gap:8px;width:100%;min-width:0;min-height:116px;padding:10px;text-align:left;border:1px solid #bfcfdf;border-radius:16px;box-shadow:0 4px 12px #688e9415;overflow:hidden;background:linear-gradient(120deg,#f2ecfa,#e2f1f5)}.home-shop.myshop-entry{background:linear-gradient(120deg,#fcf2dc,#e9f3e6);border-color:#d5d5b7}.home-shop>img{width:84px;height:94px;object-fit:contain;flex:none}.home-shop>span{min-width:0}.home-shop small,.home-shop strong,.home-shop em{display:block}.home-shop small{font-size:10px;line-height:1.5}.home-shop strong{font-family:"Yu Mincho",serif;font-size:22px;line-height:1.7}.home-shop em{font-size:11px;font-style:normal;line-height:1.5}.home-shop:hover{border-color:#8c93ad;box-shadow:0 5px 15px #688e942b}.myshop-upgrade{grid-column:1/-1;text-align:center;font-size:11px;color:#526c78;padding:7px 12px;border:1px solid #d7d9c5;border-radius:10px;background:#faf9ef}.myshop-upgrade[hidden]{display:none}@media(max-width:600px){.home-shops{gap:8px}.home-shop{flex-direction:column;align-items:flex-start;gap:0;padding:9px;min-height:132px}.home-shop>img{width:100%;height:58px}.home-shop strong{font-size:19px;line-height:1.35}.home-shop small{font-size:9px}.home-shop em{font-size:10px}.myshop-upgrade{font-size:10px}}
#action-confirm{width:min(400px,92vw);padding:22px;background:linear-gradient(145deg,#fffdf7,#edf7f4)}#action-confirm h2{margin:0 0 10px;font-size:20px}#action-confirm p{white-space:pre-line;margin:0 0 18px;color:#60747d}#action-confirm .two button{min-height:46px;margin:0}#action-confirm.danger .primary{background:linear-gradient(110deg,#a66f76,#8e6579)}
#wallet span{display:flex;align-items:baseline;gap:5px;white-space:nowrap}#wallet span small{margin:0;font-size:10px}#wallet span b{font-weight:600}.site-footer{max-width:1500px;margin:20px auto 0;padding:20px 4% 40px;border-top:1px solid var(--line);display:flex;justify-content:flex-end}.site-footer:has(#logout[hidden]){display:none}.site-footer #logout{color:var(--muted);font-size:11px}#toast{pointer-events:none;cursor:pointer;padding:8px 13px;font-size:11px;line-height:1.45;box-shadow:0 4px 14px #24385424}#toast.show{pointer-events:auto}@media(max-width:650px){.topbar{height:auto;min-height:72px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:8px 12px}.topbar .brand{grid-column:1;grid-row:1;min-width:0}.topbar #account-id{grid-column:2;grid-row:1}.topbar #wallet{grid-column:1/-1;grid-row:2;width:100%;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.topbar #wallet span{min-width:0;display:flex;flex-direction:column;align-items:center;gap:0;padding:3px 4px;border-radius:8px;background:#fff8;line-height:1.35}.topbar #wallet span small{display:block;font-size:9px}.topbar #wallet span b{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:11px}.site-footer{margin-top:12px;padding:18px 14px 32px;justify-content:center}.site-footer #logout{width:100%;min-height:44px}#toast{max-width:calc(100vw - 28px);padding:7px 11px;font-size:10px}}
.myshop-sales-ready{grid-column:1/-1!important;background:linear-gradient(120deg,#fff3ca,#edf8e9)!important;border-color:#d9bd70!important}.myshop-sales-ready strong{display:block;color:#725522}.myshop-sales-ready small,.myshop-sales-ready span{display:block}.market-sales-ready{display:grid;gap:3px;margin:4px 0 12px;padding:14px 16px;border:1px solid #d9bd70;border-radius:14px;background:linear-gradient(120deg,#fff5d8,#eff8ec)}.market-sales-ready strong{font-size:19px;color:#725522}.market-sales-ready span{font-size:11px;color:#67787b}.market-owned article.sale-ready{border:1px solid #ddc780;border-radius:14px;margin:8px 0;background:#fffdf5}.market-owned article.sale-ready button{min-height:44px}

/* Movement controls must not start text selection or the mobile touch callout. */
#explore-actions .dpad,#explore-actions .dpad *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#explore-actions .dpad{touch-action:manipulation}

/* Character status: show the character and every equipped item as one visual loadout. */
#member-details{width:min(760px,94vw)}
.member-loadout-visual{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start;margin:4px 0 18px}
.member-loadout-visual .details-portrait{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:0}
.member-loadout-visual .details-portrait>button{display:grid;place-items:center;width:100%;margin:0;padding:8px;border-color:#cadce3;background:radial-gradient(circle at 50% 35%,#fff 0,#eef8f7 57%,#dcebef 100%);overflow:hidden}
.member-loadout-visual .details-portrait img{display:block;width:100%;height:230px;object-fit:contain;filter:drop-shadow(0 10px 10px #58748426)}
.member-loadout-visual .details-portrait button small{margin-top:-3px;color:#657d8b}
.member-loadout-visual .details-portrait h2{margin:0 0 3px;font-size:23px}
.member-loadout-visual .details-portrait p{margin:0}
.member-equipment-panel{min-width:0;padding:12px;border:1px solid #d5e3e6;border-radius:16px;background:#f8fbfb}
.member-equipment-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:9px}
.member-equipment-heading h3{margin:0;font-size:16px}
.member-equipment-heading small{color:#718796}
.member-equipment-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.member-equipment-slots .equipment-slot-row{display:flex;flex-direction:column;gap:3px;min-width:0}
.member-equipment-slots .equipment-slot-card{display:grid;grid-template-columns:1fr;grid-template-rows:70px auto minmax(2.8em,auto) auto;justify-items:center;align-items:center;gap:2px;width:100%;min-width:0;min-height:142px;margin:0;padding:7px 5px;text-align:center;border-color:#d3e0e4;background:#fff}
.member-equipment-slots .is-equipped .equipment-slot-card{background:linear-gradient(145deg,#fffdf8,#f0f7f5);border-color:#bfcfd4;box-shadow:0 3px 9px #5d788414}
.member-equipment-slots .equipment-slot-card img{display:block;width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 4px 4px #52677420)}
.member-equipment-slots .equipment-slot-empty{display:grid;place-items:center;width:62px;height:62px;border:1px dashed #bdcdd2;border-radius:50%;background:#f0f5f6;color:#9aabb1;font-size:25px}
.member-equipment-slots .equipment-slot-card small{font-size:10px;color:#788c97;line-height:1.2}
.member-equipment-slots .equipment-slot-card strong{display:-webkit-box;min-width:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:11px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.member-equipment-slots .equipment-slot-card>span:last-child{font-size:10px;color:#668a96}
.member-equipment-slots .unequip-button{display:block;width:100%;min-height:30px;margin:0;padding:3px 5px;font-size:10px}
.equipment-effects{margin-top:10px;padding-top:8px;border-top:1px solid #dce7e9}
.equipment-effects summary{cursor:pointer;font-size:12px;color:#587584}
.equipment-effects .set-description{margin:8px 0 0}
.details-stats{margin-top:0}
@media(max-width:600px){
 #member-details{width:96vw;max-height:94dvh;padding:14px}
 .member-loadout-visual{display:block;margin-bottom:14px}
 .member-loadout-visual .details-portrait{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:center;margin-bottom:14px}
 .member-loadout-visual .details-portrait>button{width:132px}
 .member-loadout-visual .details-portrait img{height:158px}
 .member-loadout-visual .details-portrait h2{font-size:20px}
 .member-equipment-panel{padding:10px}
 .member-equipment-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .member-equipment-slots .equipment-slot-card{grid-template-rows:82px auto minmax(2.8em,auto) auto;min-height:154px}
 .member-equipment-slots .equipment-slot-card img{width:82px;height:82px}
 .member-equipment-slots .equipment-slot-empty{width:70px;height:70px}
}

/* Repeat commands stay inside the existing battle controls. */
#battle-repeat{background:linear-gradient(135deg,#eaf5f0,#d7e9f1);border-color:#84aebb;color:#244e60;font-weight:700}#battle-repeat:disabled{opacity:.5}.strategy-review-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;margin:6px 0}.strategy-review-row>span:last-child{flex:none;color:#387989}.command-error{display:block;color:#b44040}.command-error:empty{display:none}
@media(min-width:1001px){body.in-battle #battle-actions{grid-template-rows:44px 44px 44px 28px;gap:8px}body.in-battle #battle-actions button{min-height:44px;padding:6px}body.in-battle #battle-actions #battle-repeat{grid-column:2;grid-row:3}body.in-battle #battle-actions .return{grid-column:1/-1;grid-row:4;min-height:28px;padding:2px}body.in-battle #battle-recovery-hint{font-size:10px;overflow:auto}body.in-battle #battle-recovery-hint strong{font-size:11px}}
@media(min-width:1001px) and (max-height:600px){body.in-battle #battle-actions{grid-template-rows:36px 44px 44px 28px}}

/* Individual enemies retain their positions while their icons change and break. */
body.in-battle #scene #enemies .enemy{grid-template-rows:auto auto auto}
body.in-battle #scene #enemies .enemy>.enemy-unit-roster{position:relative;inset:auto;display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:4px;width:100%;height:auto;min-height:30px;max-height:none;margin:5px auto 7px;padding:0;border:0;border-radius:0;background:none;line-height:1;overflow:visible;z-index:3;pointer-events:none}
body.in-battle #scene #enemies .enemy .enemy-unit{--unit-ink:#3b997d;--unit-fill:#c2e8d7;display:block;position:relative;flex:0 0 28px;width:28px;height:28px;min-width:0;border:2px solid var(--unit-ink);border-radius:50%;background:var(--unit-fill);color:var(--unit-ink);box-shadow:0 1px 4px #193c4930;isolation:isolate}
body.in-battle #scene #enemies .enemy .enemy-unit[data-hp-tier="wounded"]{--unit-ink:#b77b16;--unit-fill:#ffe09b}
body.in-battle #scene #enemies .enemy .enemy-unit[data-hp-tier="critical"]{--unit-ink:#c74658;--unit-fill:#ffb5bd}
body.in-battle #scene #enemies .enemy .enemy-unit img{display:block;position:static;width:100%;height:100%;max-width:100%;margin:0;object-fit:contain;filter:none;pointer-events:none}
body.in-battle #scene #enemies .enemy .enemy-unit>.enemy-unit-picture{border-radius:50%;mix-blend-mode:multiply}
body.in-battle #scene #enemies .enemy .enemy-unit[data-hp-tier="defeated"]{border-color:transparent;background:transparent;box-shadow:none}
body.in-battle #scene #enemies .enemy .enemy-unit[data-hp-tier="defeated"]>.enemy-unit-picture{opacity:0}
body.in-battle #scene #enemies .enemy .enemy-unit.breaking{border-color:transparent;background:transparent;animation:enemy-icon-flash 380ms ease-out}
body.in-battle #scene #enemies .enemy .enemy-break-ring{position:absolute;inset:-3px;border:2px solid #fff6ce;border-radius:50%;box-shadow:0 0 8px #ffd98e;pointer-events:none}
body.in-battle #scene #enemies .enemy .enemy-break-piece{position:absolute;inset:0;border-radius:50%;background:#dceaf0;pointer-events:none}
.enemy-break-piece.piece-0{clip-path:polygon(0 0,55% 0,50% 55%,0 50%)}.enemy-break-piece.piece-1{clip-path:polygon(55% 0,100% 0,100% 50%,50% 55%)}.enemy-break-piece.piece-2{clip-path:polygon(0 50%,50% 55%,55% 100%,0 100%)}.enemy-break-piece.piece-3{clip-path:polygon(50% 55%,100% 50%,100% 100%,55% 100%)}
body.in-battle #scene #enemies .enemy .enemy-break-chip{position:absolute;left:calc(50% - 2px);top:calc(50% - 2px);width:5px;height:5px;background:#fff3b8;box-shadow:0 0 3px #fff7d8;clip-path:polygon(50% 0,100% 30%,65% 100%,0 65%);pointer-events:none}
@keyframes enemy-icon-flash{0%{box-shadow:0 0 0 3px #fff8ca,0 0 15px #ffce89}100%{box-shadow:0 0 0 8px #fff0,0 0 20px #fff0}}
body.in-battle #scene #enemies .enemy.defeated:has(.breaking){opacity:1}
body.in-battle #scene #enemies .enemy.defeated:has(.breaking)>img,body.in-battle #scene #enemies .enemy.defeated:has(.breaking)>small,body.in-battle #scene #enemies .enemy.defeated:has(.breaking)>span:not(.enemy-unit-roster){opacity:.15}
@media(max-width:1000px){body.in-battle #scene #enemies .enemy>.enemy-unit-roster{gap:3px;min-height:24px;margin:3px auto 5px}body.in-battle #scene #enemies .enemy .enemy-unit{flex-basis:24px;width:24px;height:24px}}
@media(max-width:1000px){body.in-battle #scene #enemies .enemy:only-child{flex-basis:min(230px,100%);width:min(230px,100%);max-width:230px}body.in-battle #scene #enemies .enemy:first-child:nth-last-child(2),body.in-battle #scene #enemies .enemy:first-child:nth-last-child(2)~.enemy{flex-basis:calc((100% - 2px)/2);width:calc((100% - 2px)/2);max-width:160px}}
body.in-battle #scene #enemies .enemy .enemy-unit{pointer-events:auto}
body.busy.in-battle #scene #enemies .enemy .enemy-unit{pointer-events:none}
@media(max-width:350px) and (max-height:650px){body.in-battle #scene #enemies .enemy>.enemy-unit-roster{gap:2px;min-height:18px}body.in-battle #scene #enemies .enemy .enemy-unit{flex-basis:18px;width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){body.in-battle #scene #enemies .enemy .enemy-unit.breaking{animation:none}}

/* Keep defeated group slots stable while their portraits scatter above the spell layer. */
body.in-battle #scene #enemies .enemy.group-defeated{opacity:0;visibility:hidden;pointer-events:none}
body.in-battle #scene #enemies .enemy.group-defeated:has(.breaking){opacity:1;visibility:visible}
body.in-battle #scene #enemies .enemy.group-defeated>img,body.in-battle #scene #enemies .enemy.group-defeated>small,body.in-battle #scene #enemies .enemy.group-defeated>span:not(.enemy-unit-roster){visibility:hidden;opacity:0}
.enemy-group-burst{position:fixed;z-index:46;pointer-events:none;overflow:hidden;contain:strict}
.enemy-group-fragments{position:absolute;pointer-events:none}
.enemy-group-fragments>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain;margin:0;pointer-events:none}
.enemy-group-wave{position:absolute;left:12%;right:12%;top:30%;bottom:24%;border:3px solid #fff2c5;border-radius:50%;box-shadow:0 0 12px #ffe6a7,inset 0 0 8px #ffffdb}
.enemy-group-spark{position:absolute;left:calc(50% - 3px);top:calc(50% - 4px);width:6px;height:8px;background:#fff5d0;box-shadow:0 0 7px #ffdaa3;clip-path:polygon(50% 0,100% 45%,55% 100%,0 60%)}

/* Reserve one health row so changing numbers never resizes the enemy artwork. */
body.in-battle #scene #enemies .enemy>.enemy-unit-roster{height:76px;min-height:76px;align-items:center;margin:5px auto 7px}
body.in-battle #scene #enemies .enemy .enemy-unit-icons{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:4px;width:100%;height:100%;overflow:visible}
body.in-battle #scene #enemies .enemy .enemy-unit{flex:0 0 var(--enemy-unit-size,28px);width:var(--enemy-unit-size,28px);height:var(--enemy-unit-size,28px)}
body.in-battle #scene #enemies .enemy .enemy-unit[hidden]{display:none}
body.in-battle #scene #enemies .enemy .enemy-single-health{display:none;width:100%;padding:0 6px}
body.in-battle #scene #enemies .enemy .enemy-single-health>small{display:block;font-size:10px;text-align:left;margin:0 0 4px}
body.in-battle #scene #enemies .enemy .enemy-unit-roster[data-health-mode=single] .enemy-unit-icons{display:none}
body.in-battle #scene #enemies .enemy .enemy-unit-roster[data-health-mode=single] .enemy-single-health{display:block}
.enemy-hp-meter{--enemy-hp-fill:#53a88a;appearance:none;-webkit-appearance:none;display:block;width:100%;height:13px;border:1px solid #799d9d;border-radius:8px;overflow:hidden;background:#dce7e7}
.enemy-hp-meter::-webkit-progress-bar{background:#dce7e7;border-radius:8px}.enemy-hp-meter::-webkit-progress-value{background:var(--enemy-hp-fill);border-radius:7px;transition:width .18s ease-out}.enemy-hp-meter::-moz-progress-bar{background:var(--enemy-hp-fill);border-radius:7px}
.enemy-single-health[data-hp-tier=wounded]{--enemy-hp-fill:#d5a23c}.enemy-single-health[data-hp-tier=critical]{--enemy-hp-fill:#d45768}
.enemy-single-health[data-hp-tier=wounded] .enemy-hp-meter{--enemy-hp-fill:#d5a23c}.enemy-single-health[data-hp-tier=critical] .enemy-hp-meter{--enemy-hp-fill:#d45768}
.dungeon-support{display:none}
body.in-dungeon:not(.in-battle) #explore-return .dungeon-support{display:block;padding:10px 4px 2px;font-size:12px;line-height:1.6;color:#5b7189;text-align:center;text-underline-offset:3px}
[data-support-unread][hidden]{display:none}
@media(max-width:1000px){body.in-battle #scene #enemies .enemy>.enemy-unit-roster{height:64px;min-height:64px;margin:3px auto 5px}body.in-battle #scene #enemies .enemy .enemy-unit-icons{gap:3px}}
@media(max-width:350px) and (max-height:650px){body.in-battle #scene #enemies .enemy>.enemy-unit-roster{height:52px;min-height:52px}body.in-battle #scene #enemies .enemy .enemy-unit-icons{gap:2px}}

/* Keep the avatar action on one line beside the portrait. */
#member-details .details-portrait [data-portrait-request]{white-space:nowrap;word-break:normal;overflow-wrap:normal;letter-spacing:0;font-size:12px;padding:10px 6px;min-height:44px;width:100%;box-sizing:border-box}
@media(max-width:380px){#member-details .member-loadout-visual .details-portrait{grid-template-columns:112px minmax(0,1fr)}#member-details .member-loadout-visual .details-portrait>button{width:112px}}
