body{margin:0;background:#202435;color:#f4e6c8;font-family:system-ui}header,.hud{text-align:center;padding:10px}.hud{position:sticky;top:45px;z-index:29;background:#202435;border-bottom:2px solid #ad8c58;padding:8px 4px;box-shadow:0 3px 8px #1117;font-size:14px;font-weight:bold}header{position:sticky;top:0;z-index:30;background:#202435;box-shadow:0 2px 8px #1119;padding:7px 10px}header h2{font-size:20px}h2{margin:0}.hud{display:flex;justify-content:space-around}.town{width:min(96vw,480px);aspect-ratio:12/11;margin:auto;position:relative;background:#669e55;border:4px solid #9a7b50;overflow:hidden}.road{position:absolute;background:#c5ac78}.v{left:49%;top:0;width:9%;height:100%}.cross{left:0;top:75%;width:100%;height:10%}.house{position:absolute;background:#bd8b6b;border:4px solid #644735;box-sizing:border-box;text-align:center;padding-top:7%;font-size:clamp(12px,3vw,17px);font-weight:bold}.weapon{left:17%;top:17%;width:32%;height:28%}.forge{left:64%;top:44%;width:34%;height:24%}.item{left:4%;top:62%;width:32%;height:20%}.door{position:absolute;background:#493327;width:18%;height:10%;bottom:-2%;left:42%}.actor{position:absolute;font-size:30px;display:none;transform:translate(-50%,-50%);z-index:5;transition:left .3s linear,top .3s linear}.msg,.panel{max-width:456px;margin:10px auto;background:#303247;border:2px solid #ad8c58;border-radius:8px;padding:12px}.msg{min-height:55px}.controls{max-width:480px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:7px}button{padding:11px 5px;border:0;border-radius:6px;background:#d2a263;color:#292016;font-weight:bold}button:disabled{opacity:.4}.line{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #55546a;padding:8px 0;gap:6px}.line small{color:#ccc}.bar{background:#4d465b;height:9px;border-radius:8px}.bar b{display:block;height:100%;background:#d5b76c}.stars{color:#ffda7b}.panel h3{margin:0 0 8px}.trade-overlay{position:absolute;inset:0;z-index:12;display:none;align-items:center;justify-content:center;background:#14121acb;padding:12px}.trade-box{width:100%;max-height:94%;overflow-y:auto;background:#303247;border:3px solid #e0b773;border-radius:12px;padding:14px;box-shadow:0 8px 24px #000a}.trade-box h3{margin:0 0 8px;color:#ffe1a0}.trade-box button{margin:4px}.trade-box .line{flex-wrap:wrap}.wholesale-row{padding:10px 2px;border-bottom:1px solid #676278}.wholesale-main,.wholesale-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}.wholesale-main strong{font-size:16px}.power{background:#554c39;color:#ffdf9c;border-radius:5px;padding:4px 7px;font-size:12px;white-space:nowrap}.wholesale-meta{display:flex;flex-wrap:wrap;gap:5px 12px;margin:8px 0;font-size:12px;color:#d8d5df}.wholesale-meta b,.wholesale-foot b{color:#ffe09a}.wholesale-foot button{min-width:94px;padding:9px}.trade-box{max-height:90%}.reset{display:block;margin:18px auto;background:#875052;color:white;border:1px solid #d3a3a3} .hero-entry{width:100%;text-align:left;background:#41445d;color:#f5e7cb;margin:3px 0;padding:12px;border:1px solid #77718a}.hero-entry small{display:block;margin-top:5px;font-weight:normal;color:#d3d0db}.hero-modal{display:none;position:fixed;inset:0;z-index:100;align-items:center;justify-content:center;background:#090a13d9;padding:16px}.hero-modal-box{background:#303247;color:#f4e6c8;border:2px solid #d5b76c;border-radius:12px;padding:18px;max-width:440px;width:100%;max-height:80vh;overflow:auto;box-sizing:border-box}.hero-modal-box p{margin:9px 0}.hero-modal-box button{width:100%;margin-top:12px}.hero-modal{background:rgba(8,9,14,.91);backdrop-filter:blur(9px);padding:12px}.hero-modal-box{position:relative;background:#f4f1e9;color:#16171d;border:0;border-radius:0;max-width:460px;width:100%;max-height:92dvh;overflow-y:auto;padding:0;box-shadow:12px 12px 0 #d52a38,0 24px 70px #000b;clip-path:polygon(0 0,100% 0,100% 96%,96% 100%,0 100%)}.hero-modal-box:before{content:"";display:block;height:9px;background:repeating-linear-gradient(110deg,#db2e3c 0 24px,#16171d 24px 30px)}.hero-modal-box button{width:calc(100% - 30px);margin:16px 15px 20px;background:#181a21;color:#fff;border-radius:0;font-size:15px;letter-spacing:.22em;clip-path:polygon(0 0,100% 0,100% 70%,97% 100%,0 100%);box-shadow:none}.status-topline{display:flex;justify-content:space-between;align-items:center;padding:12px 17px 8px;font-size:9px;font-weight:900;letter-spacing:.15em;color:#9b2632}.status-topline span:last-child{color:#777;letter-spacing:0}.status-hero{display:flex;align-items:center;min-height:122px;background:#171920;color:white;position:relative;overflow:hidden;padding:14px 15px;gap:15px}.status-hero:after{content:"";position:absolute;width:110px;height:170px;background:#db2e3c;right:-77px;top:-45px;transform:rotate(24deg)}.status-symbol{display:grid;place-items:center;flex:0 0 90px;height:94px;background:#e33a47;font-size:57px;transform:rotate(-7deg);box-shadow:6px 6px 0 #fff}.status-identity{z-index:1;min-width:0}.status-kicker{font-size:10px;font-weight:900;letter-spacing:.1em;color:#f37b83}.status-kicker span{color:#aaa}.status-identity h2{font-size:clamp(25px,8vw,39px);font-weight:1000;letter-spacing:-.06em;line-height:1.13;margin:7px 0 10px;overflow-wrap:anywhere}.status-tags{display:flex;gap:6px;flex-wrap:wrap}.status-tags span{background:white;color:#15161b;padding:3px 10px;font-size:11px;font-weight:900;transform:skew(-10deg)}.status-tags span+span{background:#e63d4a;color:#fff}.status-level{display:flex;align-items:center;gap:12px;padding:12px 18px;background:#d93240;color:white}.status-level>span{font-weight:1000;letter-spacing:.1em;font-size:13px;writing-mode:vertical-rl;transform:rotate(180deg)}.status-level>strong{font-size:60px;font-weight:1000;line-height:1;letter-spacing:-.09em;font-style:italic}.status-exp{flex:1;font-size:10px;letter-spacing:.08em;font-weight:900}.status-exp b{display:block;margin:5px 0 7px;font-size:13px}.meter-track{height:9px;background:#c9c6c4;transform:skew(-15deg);overflow:hidden}.meter-track>span{display:block;height:100%;background:#171920;transition:width .25s}.status-exp .meter-track{background:#9e2330}.status-exp .meter-exp{background:#fff}.status-vitals{padding:15px 18px 7px;display:grid;gap:12px}.meter-label{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:900}.meter-label strong{font-size:19px}.meter-label em{font-style:normal;font-size:12px;color:#777}.stat-meter .meter-track{height:12px;margin-top:5px;background:#dedad4}.meter-track .meter-hp{background:#e0444e}.meter-track .meter-mp{background:#2874c5}.status-section{padding:12px 18px 0}.status-heading{display:flex;align-items:center;gap:8px;border-bottom:3px solid #16171d;padding-bottom:5px}.status-heading b{font-size:22px;font-style:italic;color:#d83240}.status-heading span{font-weight:1000;letter-spacing:.1em;font-size:14px}.status-heading small{font-size:10px;margin-left:auto;color:#777}.status-combat{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.status-combat>div{background:#171920;color:white;padding:9px 12px;display:flex;align-items:baseline;gap:7px;transform:skew(-4deg)}.status-combat span{font-size:12px;font-weight:900;color:#ef4d59}.status-combat strong{font-size:33px;line-height:1;font-weight:1000}.status-combat small{font-size:10px;margin-left:auto;color:#ccc}.status-gear{margin-top:6px}.status-gear>div,.status-info>div{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #c9c5be;padding:9px 2px}.status-gear span,.status-info span{font-size:11px;color:#65656a;font-weight:900}.status-gear strong,.status-info b{font-size:13px;text-align:right}.status-gear em{color:#d83240;font-style:normal}.status-info{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}@media(max-width:360px){.status-symbol{flex-basis:72px;height:78px;font-size:44px}.status-hero{gap:10px}.status-info{grid-template-columns:1fr}.status-identity h2{font-size:25px}}/* Royal Rebel — unified visual system */
:root{--ink:#15161b;--paper:#f3f0e8;--red:#dc3443;--line:#c9c4bc;--muted:#777781}
*{box-sizing:border-box}html{background:var(--ink)}body{background:radial-gradient(ellipse at 95% 0%,#3d222a 0%,transparent 36%),#171820;color:var(--paper);font-family:system-ui,"Noto Sans JP",sans-serif;min-height:100vh;padding-bottom:28px}
header{background:#171820;border-bottom:6px solid var(--red);box-shadow:0 5px 0 #08080c;min-height:76px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:9px max(14px,calc((100vw - 480px)/2));font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
header:before{content:"ROYAL WEAPON SHOP  //  KINGDOM BUSINESS RPG";color:#f05260;font-size:9px;font-weight:1000;letter-spacing:.16em}
header h2{font-size:clamp(24px,7vw,34px);font-style:italic;font-weight:1000;letter-spacing:-.06em;line-height:1.2;text-shadow:3px 3px 0 #a72a37}
.hud{top:76px;max-width:100%;background:#f3f0e8;color:#171820;border-bottom:0;box-shadow:0 5px 0 #d63442;gap:4px;padding:9px max(12px,calc((100vw - 480px)/2));font-size:13px;font-weight:1000}
.hud span{border-right:2px solid #d1ccc4;flex:1;text-align:center;min-width:0}.hud span:last-child{border:0}
.town{margin:19px auto 14px;background:#d7d4cb;border:6px solid #f3f0e8;outline:5px solid #d63442;box-shadow:10px 10px 0 #0a0b0f;clip-path:polygon(0 0,100% 0,100% 97%,97% 100%,0 100%)}
.road{background:#77737b}.v{background:#85808a}.cross{background:#85808a}
.house{background:#191b24;color:#fff;border:3px solid #191b24;border-bottom:7px solid var(--red);box-shadow:5px 5px 0 #8d8a86;transform:skew(-3deg);padding-top:5%;font-size:clamp(12px,3vw,16px);text-shadow:none}
.house p{margin:5px 0;font-weight:1000;letter-spacing:.03em}.house.forge{background:#30313c}.house.item{background:#aa2634;border-color:#aa2634;border-bottom-color:#191b24}
.door{background:#f5f0e8;border:2px solid #171820}
.msg,.panel{background:var(--paper);color:var(--ink);border:0;border-radius:0;max-width:468px;box-shadow:7px 7px 0 #d63542;padding:15px;margin:16px auto}
.msg{position:relative;font-weight:700;line-height:1.65;padding-left:22px;min-height:64px}.msg:before{content:"";position:absolute;top:0;left:0;bottom:0;width:8px;background:var(--red)}
.controls{gap:9px;margin:19px auto;max-width:468px}
.controls button{background:var(--paper);color:var(--ink);border-radius:0;border:0;min-height:55px;font-size:13px;font-weight:1000;text-align:left;padding:11px 14px;box-shadow:4px 4px 0 #bd2735;clip-path:polygon(0 0,100% 0,100% 81%,95% 100%,0 100%);transition:transform .12s,background .12s}
.controls button:nth-child(-n+2){background:#e03b49;color:#fff;box-shadow:4px 4px 0 #f3f0e8}
.controls button:active,.panel button:active{transform:translate(3px,3px)}
.panel{padding:17px}.panel h3{font-size:22px;font-style:italic;letter-spacing:-.03em;font-weight:1000;border-bottom:4px solid var(--ink);padding:0 0 10px;margin:0 0 14px}.panel h4{background:#181a21;color:white;padding:8px 12px;font-size:14px;letter-spacing:.04em;transform:skew(-3deg);margin:18px 0 8px}
.panel p{line-height:1.5}.panel .line{border-bottom:1px solid #c6c1b9;gap:8px;flex-wrap:wrap}.panel .line small{color:#5c5b62}
.panel button:not(.hero-entry),.trade-box button{border:0;border-radius:0;background:#d83544;color:#fff;padding:9px 12px;font-weight:1000;box-shadow:3px 3px 0 #171820}
.panel input,.panel select{border:2px solid #1c1d23;border-radius:0;background:white;color:#171820;padding:7px;max-width:100%}
.hero-entry{background:#181a22;color:#fff;border:0;border-left:7px solid #dc3443;border-radius:0;box-shadow:4px 4px 0 #a6a2a1;clip-path:polygon(0 0,100% 0,100% 85%,97% 100%,0 100%);font-size:15px;font-weight:1000;margin:7px 0;padding:14px;text-align:left}.hero-entry small{color:#d8d5d7;font-size:11px;line-height:1.65}
.bar{background:#c4c0bd;height:11px;transform:skew(-13deg);border-radius:0;overflow:hidden}.bar b{background:#da3543}.stars{color:#bd2635;font-weight:900}
.power{background:#191b24;color:#fff;border-radius:0}.wholesale-row{border-bottom:2px solid #d1cbc4;padding:12px 2px}.wholesale-meta{color:#55545b}.wholesale-meta b,.wholesale-foot b{color:#bb2534}
.trade-overlay{background:#0b0c12e8;backdrop-filter:blur(4px)}.trade-box{background:var(--paper);color:var(--ink);border:0;border-top:9px solid var(--red);border-radius:0;box-shadow:8px 8px 0 #d73342;padding:16px}.trade-box h3{color:var(--ink);font-size:22px;font-weight:1000;border-bottom:3px solid var(--ink);padding-bottom:8px}.trade-box .line{border-bottom:1px solid #c7c1bb}.trade-box button{margin:5px}
.reset{background:#171820;border:2px solid #6e303a;border-radius:0;color:#bcb8ba;padding:12px 18px;font-size:12px}
#test-status{color:#b4b0b6!important;font-size:10px!important;letter-spacing:.06em}
@media(max-width:500px){.msg,.panel{margin-left:12px;margin-right:18px}.controls{margin-left:12px;margin-right:16px}.town{width:calc(100vw - 26px)}header{padding-left:14px}.hud{padding-left:5px;padding-right:5px}.hud span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.controls button{transition:none}}
/* Compact mobile title bar */header{min-height:0;height:48px;padding:4px max(12px,calc((100vw - 480px)/2));flex-direction:row;align-items:center;justify-content:space-between;gap:10px;border-bottom-width:3px;box-shadow:0 2px 0 #08080c}header:before{content:"WEAPON SHOP";font-size:9px;letter-spacing:.04em;white-space:nowrap;order:2}header h2{font-size:clamp(18px,5.2vw,24px);line-height:1;white-space:nowrap;letter-spacing:-.05em;text-shadow:2px 2px 0 #a72a37}header{font-size:0}.hud{top:48px;padding-top:7px;padding-bottom:7px}@media(max-width:360px){header:before{font-size:8px}header h2{font-size:18px}}.portrait,.status-portrait,.actor-portrait{display:inline-block;background-repeat:no-repeat;background-size:auto 600%;background-color:#29252d;vertical-align:middle;flex-shrink:0;border:2px solid #e43a4c}.portrait{width:44px;height:44px;margin-right:8px}.status-portrait{width:124px;height:94px;transform:rotate(-5deg);box-shadow:5px 5px 0 #fff;background-size:auto 600%;background-color:#27202a}.actor-portrait{width:35px;height:35px;border-radius:50%;box-shadow:0 2px 5px #0009}.actor{font-size:0}.hero-entry{display:flex;align-items:center;flex-wrap:wrap}.hero-entry small{width:100%}@media(max-width:360px){.status-portrait{width:90px;height:80px}}.status-bag{margin-top:8px}.bag-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 6px;border-bottom:1px solid #cbc6c0;font-weight:800;font-size:14px}.bag-row strong{font-size:15px;color:#c52c3c}.bag-empty{padding:14px 4px;color:#777;font-size:13px;font-weight:700}.hero-roster{display:grid;gap:11px;margin-top:12px}.hero-roster-card{position:relative;display:flex;align-items:stretch;gap:12px;min-height:134px;width:100%;padding:13px 11px 13px 12px;background:#171920!important;color:#fff!important;border:0!important;border-left:7px solid #e33b4b!important;border-radius:0!important;box-shadow:5px 5px 0 #c0b9b5!important;text-align:left;clip-path:polygon(0 0,100% 0,100% 87%,97% 100%,0 100%);cursor:pointer}.hero-roster-card:active{transform:translate(3px,3px)}.roster-photo{width:74px;min-width:74px;height:104px;background:#39303b;border:2px solid #e43a4c;overflow:hidden;transform:skew(-4deg)}.roster-photo .portrait{width:100%;height:100%;margin:0;border:0;display:block;transform:skew(4deg)}.roster-main{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px}.roster-top{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.roster-no{font-size:10px;letter-spacing:.1em;color:#ef6b76;font-weight:1000}.roster-job,.roster-person{font-size:10px;font-weight:900;padding:2px 5px;background:#f1eee7;color:#171920}.roster-person{background:#d73746;color:#fff}.roster-name{font-size:clamp(21px,6vw,27px);font-weight:1000;letter-spacing:-.05em;line-height:1.15;white-space:nowrap}.roster-arrow{color:#f15a68;font-size:17px;margin-left:7px}.roster-weapon{font-size:11px;color:#c9c6cb;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-bars{display:grid;gap:6px;margin-top:auto}.roster-bars>div{display:flex;align-items:center;gap:5px}.roster-bars span{width:20px;color:#fff;font-size:10px;font-weight:1000}.roster-track{flex:1;min-width:15px;height:7px;background:#55545b;transform:skew(-13deg);overflow:hidden}.roster-track i{display:block;height:100%;background:#ec4a57}.roster-track.mp i{background:#3a9bde}.roster-bars b{font-size:10px;min-width:43px;text-align:right;font-weight:900}.roster-level{display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:flex-start;color:#f14d5c;padding-top:4px}.roster-level span{font-size:10px;font-weight:1000;letter-spacing:.1em}.roster-level strong{font-size:26px;font-style:italic;letter-spacing:-.07em;line-height:1}@media(max-width:370px){.hero-roster-card{gap:8px;padding-left:8px}.roster-photo{width:57px;min-width:57px;height:96px}.roster-name{font-size:21px}.roster-level strong{font-size:22px}.roster-person{font-size:9px}}.day-report-overlay{display:none;position:fixed;inset:0;z-index:110;background:#090a12ed;backdrop-filter:blur(7px);align-items:center;justify-content:center;padding:12px}.day-report-sheet{background:#f3f0e8;color:#16171d;max-width:480px;width:100%;max-height:90dvh;overflow-y:auto;border-top:9px solid #d93644;box-shadow:8px 8px 0 #d93644;padding:18px 15px}.report-kicker{color:#c32d3c;font-size:11px;font-weight:1000;letter-spacing:.16em}.report-title{font-size:clamp(25px,8vw,36px);font-weight:1000;letter-spacing:-.05em;margin:5px 0 2px}.report-sub{font-size:12px;color:#6d6b71;margin-bottom:15px}.report-summary{display:flex;gap:7px;margin-bottom:15px}.report-summary div{flex:1;background:#171920;color:white;padding:9px 5px;text-align:center}.report-summary b{display:block;font-size:23px;color:#f35b68}.report-summary small{font-size:10px}.report-hero{padding:12px 0;border-bottom:2px solid #c8c4bf}.report-hero-head{display:flex;justify-content:space-between;gap:6px;align-items:center}.report-hero-head strong{font-size:19px}.report-outcome{font-size:10px;background:#171920;color:#fff;padding:4px 7px;font-weight:1000}.report-outcome.fail{background:#a92b37}.report-outcome.clear{background:#c63343}.report-place{font-size:11px;color:#666;margin:4px 0 7px}.report-deltas{display:flex;flex-wrap:wrap;gap:6px}.report-deltas span{background:#e2ddd5;padding:5px 7px;font-size:12px;font-weight:900}.report-deltas .positive{color:#a92535}.report-close{display:block;width:100%;background:#f3c35d;color:#211924;border:3px solid #fff0bb;border-radius:6px;margin-top:0;padding:15px 12px;font-weight:1000;font-size:16px;box-shadow:inset 0 -4px 0 #b78131,0 -3px 12px #0007;cursor:pointer}.report-close:active{background:#e4a63d;transform:translateY(1px)}.report-close:focus-visible{outline:3px solid #fff;outline-offset:2px}.report-next-area{margin-top:10px;padding:13px 12px;background:#e4f2ff;border:2px solid #316ca8;border-left:6px solid #1972ba;box-shadow:3px 3px 0 #b1cde5;color:#133b65;font-weight:900}.report-next-area strong{display:block;font-size:15px;margin-bottom:4px}.report-next-area small{display:block;font-size:12px;line-height:1.5}.death-enemy{margin-top:8px;padding:8px;background:#fff9f5;border:1px solid #d6a0a3}.enemy-link{cursor:pointer;border:1px solid #a72a37;background:#fff3f0;color:#941e2a;padding:6px 9px;font-weight:900;border-radius:4px;text-align:left}.enemy-link:active{background:#f0c6c9}.death-enemy strong{font-size:15px}.death-enemy small{display:block;font-size:12px;margin-top:3px}.fallen-record{padding:10px 8px;border-bottom:1px solid #b6aab0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fallen-record button{font-weight:900}.fallen-record span{font-size:12px}.fallen-record small{width:100%;line-height:1.6;color:#772b32}.job-skill{padding:12px;background:#eee8df;border-left:4px solid #b82035;color:#292530}.job-skill strong{font-size:17px}.job-skill p{font-size:13px;margin:7px 0}.job-skill small{font-size:11px}.report-skill{padding:8px 10px;margin-top:8px;background:#e8e2fa;border-left:4px solid #6a4cbb;font-weight:800}.report-death-cause{margin-top:10px;padding:10px 12px;background:#fce4e3;border-left:5px solid #b51f32;color:#641321;font-size:13px;font-weight:800;line-height:1.6}.report-hero .report-note{margin-top:12px;padding:11px 12px;background:#fff0c5;border:2px solid #bd7e23;border-left:6px solid #d63b3b;color:#30231b;box-shadow:3px 3px 0 #d6b77d}.report-loot-label{display:block;font-size:11px;font-weight:1000;letter-spacing:.1em;color:#8b341e;margin-bottom:6px}.report-loot-items{display:flex;flex-wrap:wrap;gap:6px}.report-loot-item{display:inline-block;background:#fffdf5;border:1px solid #b88b46;padding:5px 8px;font-size:13px;font-weight:900;color:#31251d}.report-voice{margin-top:10px;background:#171920;color:#fff;padding:11px 12px 11px 16px;border-left:5px solid #e43c4d;font-size:13px;line-height:1.65;font-weight:800;position:relative}.report-voice:before{content:'TODAY’S VOICE';display:block;color:#ff7883;font-size:9px;letter-spacing:.12em;margin-bottom:3px}.report-voice{margin-left:12px;margin-top:14px;position:relative}.report-voice:after{content:'';position:absolute;top:-11px;left:17px;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:12px solid #171920}.report-voice:before{display:none}.report-speaker{display:flex;align-items:center;gap:7px;margin-bottom:6px;padding-bottom:2px}.report-speaker-mark{color:#ff6878;font-size:10px}.report-speaker strong{font-size:15px;color:#fff}.report-speaker small{font-size:10px;color:#ff8b96;letter-spacing:.03em}.report-quote{font-size:14px;line-height:1.65;font-weight:800}.merchant-origin{background:#191b22;color:#fff;padding:12px;border-left:5px solid #d93749;font-weight:900}.merchant-origin small{display:block;color:#e3c8c8;margin-top:5px}.craft-materials{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 16px}.craft-materials span{background:#20202a;color:#fff;padding:7px 9px;font-size:12px}.craft-recipe{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 6px;border-bottom:1px solid #bdb6b2}.craft-recipe strong{width:100%}.craft-recipe small{flex:1;min-width:140px}.craft-recipe button{margin-left:auto}body>.trade-overlay{position:fixed;inset:0;z-index:1000}body>.trade-overlay.town-shop-overlay{position:fixed;inset:0;z-index:1000;padding:18px 12px;align-items:center;justify-content:center}.trade-overlay.town-shop-overlay .trade-box{width:min(100%,520px);max-height:calc(100dvh - 36px);overflow-y:auto}.trade-overlay.town-shop-overlay .trade-box{width:min(100%,600px);max-height:calc(100dvh - 24px)}.trade-overlay.town-shop-overlay{padding:12px}.merchant-sell-heading{margin-top:22px;padding:10px;background:#171820;color:white;border-left:6px solid #d63442}.merchant-sell-heading small{display:block;font-size:11px;font-weight:500;margin-top:4px}.merchant-budget{padding:8px;background:#f3e8d3;font-size:13px;font-weight:800}.merchant-wallet{position:sticky;top:-16px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#f3f0e8;color:#171820;border-bottom:3px solid #d63442;padding:12px 8px;margin:-4px -4px 12px;font-size:15px;font-weight:900}.merchant-wallet strong{font-size:20px;color:#b52132;font-variant-numeric:tabular-nums}.town-shop-actions{position:sticky;bottom:0;padding:10px 0 2px;background:var(--paper);border-top:1px solid #c5bcb7;margin-top:14px}.town-shop-actions button{width:100%}#enemy-detail{z-index:1500}#enemy-detail .hero-modal-box{position:relative;z-index:1501}#enemy-detail .hero-modal-box{background:#11131b;color:#f4f1e8;border:1px solid #4c505e;border-top:5px solid #e83b4b;box-shadow:10px 10px 0 #9b2632;padding:0;max-width:480px;max-height:86dvh}#enemy-detail .hero-modal-box>button{width:calc(100% - 32px);margin:16px;background:#e83b4b;color:#fff;border:0;border-radius:0;padding:12px;font-weight:900}#enemy-detail-content{padding:20px 18px 0}.enemy-file-top{display:flex;justify-content:space-between;color:#a8abb6;font-size:10px;letter-spacing:.12em;font-weight:800;border-bottom:1px solid #414550;padding-bottom:12px}.enemy-file-hero{display:flex;align-items:center;gap:16px;padding:20px 0}.enemy-file-emblem{display:grid;place-items:center;flex-shrink:0;width:78px;height:86px;background:#252935;border:1px solid #6b4650;font-size:44px;transform:skew(-4deg)}.enemy-file-heading{min-width:0}.enemy-file-heading>span{font-size:10px;font-weight:900;letter-spacing:.15em;color:#ee6470}.enemy-file-heading h2{font-size:clamp(23px,6vw,31px);line-height:1.15;color:#fff;margin:7px 0 10px}.enemy-file-heading small{color:#c6c8d0;font-size:12px}.enemy-file-stats{display:grid;grid-template-columns:1.6fr 1fr;gap:8px;margin-bottom:20px}.enemy-file-stats>div{padding:13px;background:#20232e;border-left:3px solid #e83b4b;min-width:0}.enemy-file-stats span,.enemy-file-stats em{display:block;font-size:10px;color:#bec0cb;font-style:normal}.enemy-file-stats strong{display:block;font-size:40px;line-height:1.2;color:#fff;margin:4px 0}.enemy-file-stats strong small{font-size:15px;margin-left:4px}.enemy-file-casualties strong{color:#ff6573}.enemy-file-danger{border-left-color:#b3b5bd!important}.enemy-file-danger strong{font-size:31px}.enemy-file-danger em{font-weight:900;letter-spacing:.1em;color:#f8b2b8}.enemy-file-section{border-top:1px solid #454852;padding:14px 0}.enemy-file-label{font-size:10px;color:#ff6976;font-weight:900;letter-spacing:.12em}.enemy-file-section p{font-size:15px;margin:8px 0 2px!important;line-height:1.5}.enemy-file-victims>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #30333d;font-size:13px}.enemy-file-victims small{color:#a8abb6}.enemy-file-empty{padding:12px 0 18px;color:#a8abb6;font-size:12px}#trade-overlay.town-shop-overlay .trade-box{box-sizing:border-box;max-height:calc(100dvh - 24px);overflow-y:auto}#trade-overlay .buyback-wallet{position:sticky;top:0;margin:0 0 12px;padding:12px 8px;z-index:5;box-shadow:0 3px 8px #0002}#trade-overlay .buyback-wallet strong{white-space:nowrap}#trade-overlay .buyback-wallet{flex-wrap:wrap}.enemy-file-recommend{background:#1b1e28;padding:16px 12px;margin:0 -12px;border-top:2px solid #e83b4b}.enemy-file-hint{font-size:12px!important;color:#c3c5cd}.enemy-gear-row{display:grid;grid-template-columns:1fr auto;gap:3px 12px;border-bottom:1px solid #3e414b;padding:12px 0}.enemy-gear-row span{font-size:11px;color:#bfc1ca}.enemy-gear-row strong{font-size:15px;color:#fff;text-align:right}.enemy-gear-row small{grid-column:1/-1;color:#ee818b;text-align:right;font-size:11px}.enemy-file-caution{font-size:11px!important;color:#aeb1bc}.enemy-findings{border-left:2px solid #e83b4b;padding-left:12px;margin:10px 0}.enemy-findings p{font-size:13px!important;color:#f0e9e7;line-height:1.6!important;margin:9px 0!important}.report-upkeep{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin:12px 0;padding:12px 14px;border:1px solid #8d3d40;background:#251c22;color:#fff}.report-upkeep span{font-weight:800}.report-upkeep strong{color:#ff9393;font-size:18px}.report-upkeep small{grid-column:1/-1;color:#c9c2c2;font-size:12px}.side-activity{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 10px}.side-activity>div{background:#1b1e28;color:#fff;padding:9px 8px;border-left:3px solid #dc3344;font-size:12px;font-weight:800;min-width:0}.side-activity span{display:block;font-size:11px;font-weight:500;color:#dedde3;line-height:1.45;margin-top:4px;overflow-wrap:anywhere}.side-actor{display:none;pointer-events:none;z-index:7;filter:drop-shadow(0 2px 2px #0008)}.day-report-sheet{box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 24px);padding:0!important}.day-report-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 15px 12px}.day-report-sheet>.report-close{flex:none;position:relative;z-index:2;margin:0;padding:16px 12px max(16px,env(safe-area-inset-bottom));box-shadow:0 -4px 14px #0002;cursor:pointer;touch-action:manipulation}.recruit-overlay{display:none;position:fixed;inset:0;z-index:1700;background:#090a12e8;align-items:center;justify-content:center;padding:12px}.recruit-sheet{box-sizing:border-box;width:100%;max-width:480px;max-height:calc(100dvh - 24px);background:#f3f0e8;color:#171920;border-top:7px solid #d93644;display:flex;flex-direction:column;box-shadow:7px 7px 0 #d93644}.recruit-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:#171920;color:white}.recruit-head strong{font-size:17px}.recruit-head button{background:#d93644;color:#fff;border:0;padding:8px 12px;font-size:17px}.recruit-content{overflow-y:auto;padding:12px;min-height:0}.recruit-intro{font-size:13px;margin:2px 0 12px}.recruit-candidate{display:grid;grid-template-columns:64px 1fr;gap:9px;background:white;border:1px solid #d2caca;padding:10px;margin-bottom:10px}.recruit-avatar{grid-row:span 2;display:flex;align-items:center;justify-content:center}.recruit-avatar img{max-width:60px;max-height:75px;object-fit:contain}.recruit-info{display:flex;flex-direction:column;gap:3px;min-width:0}.recruit-info strong{font-size:16px}.recruit-info span,.recruit-info small{font-size:12px}.recruit-candidate>button{grid-column:1/-1;background:#d93644;color:#fff;border:0;padding:11px;font-weight:900}.recruit-open{width:100%;background:#d93644;color:#fff;border:0;padding:13px;font-weight:900;margin:12px 0}.shop-sale-popup{display:none;position:absolute;z-index:15;pointer-events:none;background:#171920;color:#fff;border:2px solid #fff;box-shadow:4px 4px 0 #d93644;min-width:96px;padding:7px 9px;text-align:center;transform:translate(-50%,-50%);left:81%;top:36%}.shop-sale-popup strong{display:block;font-size:clamp(17px,5vw,24px);font-weight:1000;color:#ffe06c;white-space:nowrap}.shop-sale-popup small{display:block;font-size:11px;color:#fff;white-space:nowrap}#item-sale{left:20%;top:53%}.shop-sale-popup.sale-animate{animation:shop-sale-rise 2.7s ease-out both}@keyframes shop-sale-rise{0%{opacity:0;transform:translate(-50%,-18%) scale(.75)}13%{opacity:1;transform:translate(-50%,-50%) scale(1.13)}27%{transform:translate(-50%,-50%) scale(1)}78%{opacity:1}100%{opacity:0;transform:translate(-50%,-105%) scale(.98)}}@media(prefers-reduced-motion:reduce){.shop-sale-popup.sale-animate{animation:shop-sale-still 2.7s both}@keyframes shop-sale-still{0%,85%{opacity:1}100%{opacity:0}}}.report-discovery{margin:14px 0 18px;padding:16px 13px;background:#171920;color:#fff;border:3px solid #f1c45b;box-shadow:5px 5px 0 #cf3444;animation:discovery-appear .48s ease-out both}.report-discovery-kicker{font-size:10px;font-weight:900;letter-spacing:.11em;color:#f7c858;margin-bottom:9px}.report-discovery>strong{display:block;font-size:clamp(17px,5vw,23px);line-height:1.4;color:#fff}.report-discovery-count{font-size:12px;margin:6px 0 12px;color:#f2c75f;font-weight:900}.report-discovery-list{display:grid;gap:7px}.report-discovery-list>div{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;background:#fff4cf;color:#28211c;padding:10px 11px;border-left:5px solid #d43a46}.report-discovery-list span{font-size:14px;font-weight:1000}.report-discovery-list small{font-size:11px;font-weight:800;color:#703b2d}@keyframes discovery-appear{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.report-discovery{animation:none}}.status-party{margin:12px 0;padding:12px;background:#211d27;color:#fff;border-left:5px solid #f1bd56}.status-party strong{color:#f1bd56}.status-party p{font-size:14px;font-weight:900}.status-party small{display:block;color:#ddd}.status-party div{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.status-party span{background:#403044;padding:5px 7px;font-size:11px}.party-formed{margin:12px 0;padding:13px;background:#251e2a;color:#ffd76a;border:2px solid #e9b34e;font-size:17px;font-weight:900}.party-formed small{display:block;color:#fff;font-size:12px;margin-top:7px}.report-party{margin-top:8px;background:#eee0fb;border-left:4px solid #8748b6;padding:8px;font-size:12px;font-weight:900}.visitor-mini{position:absolute;top:7px;right:7px;z-index:18;box-sizing:border-box;width:min(43%,172px);padding:9px 10px;background:#171920f2;color:#fff;border:2px solid #f1d178;box-shadow:3px 3px 0 #d83b4a;pointer-events:auto;text-align:left}.visitor-mini-kicker{font-size:9px;color:#f1d178;letter-spacing:.08em;font-weight:1000;margin-bottom:4px}.visitor-mini strong{font-size:clamp(12px,3.5vw,16px);line-height:1.3}.visitor-mini small{display:block;font-size:clamp(10px,2.6vw,12px);line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visitor-mini-link{display:block;background:transparent;border:0;color:#fff;text-align:left;padding:0;margin:0 0 4px;cursor:pointer}.visitor-mini-link strong{color:#fff}.visitor-mini-link:active strong{color:#f1d178}.visitor-hp-label{display:flex;justify-content:space-between;gap:5px;margin:5px 0 3px;font-size:10px;color:#fff}.visitor-hp-label b{font-size:11px;color:#fff}.visitor-hp-track{height:9px;background:#4b4550;border:1px solid #a9a0aa;overflow:hidden}.visitor-hp-fill{height:100%;transition:width .25s ease}.report-hero{background:#fffdf9;border:2px solid #bcb4b1;border-left:6px solid #d53b4c;margin:12px 0;padding:12px;box-shadow:2px 3px 0 #c9c0b9}.report-hero-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.report-hero-identity{display:flex;align-items:center;gap:11px;min-width:0;flex:1}.report-portrait{display:block;flex:none;width:66px;height:76px;background-repeat:no-repeat;background-size:auto 600%;background-color:#282633;border:2px solid #22202b;box-shadow:3px 3px 0 #d73d4e}.report-hero-name{min-width:0}.report-hero-name strong{display:block;font-size:19px;overflow-wrap:anywhere}.report-hero-name small{display:block;color:#685e60;font-size:12px;font-weight:800;margin-top:4px}.report-outcome{flex:none;font-size:12px;padding:7px 9px}.report-place{margin:9px 0;font-size:12px;font-weight:900;color:#6c4a4e}.report-deltas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.report-deltas span{font-size:12px;line-height:1.5;padding:8px 7px;background:#f0ece5;border-left:3px solid #bcb1ac}.report-voice{margin-left:0;margin-top:12px}.report-voice:after{display:none}.report-summary{margin-top:12px}.report-summary div{min-width:0}.report-discovery{margin:12px 0}.report-upkeep{margin-bottom:12px}@media(max-width:350px){.report-portrait{width:52px;height:63px}.report-hero-name strong{font-size:16px}.report-outcome{font-size:11px;padding:6px}}.report-retreat{margin:8px 0;background:#e3f0fa;border-left:4px solid #3474a9;color:#173c5b;padding:9px 10px;font-size:12px;font-weight:900}.trade-box{box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100% - 12px);padding:0}.trade-box>h3{flex:none;padding:14px 14px 8px;margin:0}.trade-box>#trade-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 14px 12px}.trade-footer{flex:none;background:#27293b;border-top:2px solid #e0b773;padding:10px 14px max(10px,env(safe-area-inset-bottom));box-shadow:0 -5px 12px #0005}.trade-footer button{display:block;width:100%;margin:0;padding:13px 12px;font-weight:900;font-size:15px;background:#e0b773;color:#191827;border:0;border-radius:6px;cursor:pointer}.hero-progress-strip{position:fixed;left:6px;right:6px;bottom:max(6px,env(safe-area-inset-bottom));z-index:9;background:#171722ee;border:2px solid #e2b967;box-shadow:0 3px 15px #000b;padding:7px 9px;max-height:34vh;overflow-y:auto;border-radius:5px;pointer-events:auto}.progress-strip-title{font-size:12px;font-weight:900;color:#ffe6a2;margin-bottom:5px;display:flex;justify-content:space-between;gap:6px}.progress-strip-title small{font-size:10px;color:#d4c6bd}.hero-progress-row{display:flex;align-items:center;gap:7px;width:100%;border:0;border-top:1px solid #ffffff23;background:transparent;color:#fff;padding:6px 2px;margin:0;text-align:left;cursor:pointer}.hero-progress-name{font-size:11px;font-weight:800;width:64px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-progress-track{height:13px;flex:1;position:relative;background:#4a4651;border:1px solid #a99c96;border-radius:2px;min-width:0}.hero-progress-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#a92d42,#f6b854);transition:width .5s}.hero-progress-grid{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),#f5e2bc88 calc(20% - 1px),#f5e2bc88 20%);pointer-events:none}.hero-progress-marker{position:absolute;top:-5px;transform:translateX(-50%);font-size:17px;line-height:17px;color:#fff4cf;text-shadow:0 1px 3px #000;z-index:1}.hero-progress-depth{font-size:10px;color:#ffe6a2;flex:none;width:24px;text-align:right}.progress-strip-empty{font-size:11px;color:#ddd}@media(max-width:360px){.hero-progress-name{width:51px}.progress-strip-title small{font-size:9px}}.hero-progress-strip{z-index:9;max-height:44vh}.daily-route-row{padding:7px 1px;border-top:1px solid #ffffff35}.daily-route-head{display:flex;align-items:center;gap:6px;font-size:11px}.daily-route-name{font-weight:900;color:#fff;min-width:50px;cursor:pointer}.daily-route-place{flex:1;color:#c7bdb7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-route-head strong{color:#ffde89;white-space:nowrap}.daily-route-track{height:27px;position:relative;margin:4px 0 2px;background:repeating-linear-gradient(90deg,#292a38 0,#292a38 9%,#4c4a57 9%,#4c4a57 10%);border:1px solid #716a6b;border-radius:3px;overflow:hidden}.daily-route-ground{position:absolute;left:0;right:0;bottom:2px;border-bottom:2px dashed #8d7770}.daily-route-path{position:absolute;top:50%;left:9%;height:3px;background:#ffbf60;transform-origin:left;animation:daily-path 2.5s both}.daily-route-walker{position:absolute;top:0;left:9%;height:25px;width:25px;z-index:2;animation:daily-walk 2.5s both;animation-delay:var(--delay)}.daily-route-portrait{display:block;width:23px;height:25px;background-size:auto 600%;background-repeat:no-repeat;border:1px solid #ffdb84;background-color:#262432}.daily-route-goal{position:absolute;right:7%;top:4px;font-size:15px}.daily-route-events{display:flex;flex-wrap:wrap;gap:4px}.daily-route-events span{background:#3d3441;border-left:2px solid #d4a95b;padding:3px 5px;color:#f9e8d3;font-size:10px}@keyframes daily-walk{from{left:9%}to{left:var(--walk-end)}}@keyframes daily-path{from{width:0}to{width:calc(var(--route-end) - 9%)}}@media(prefers-reduced-motion:reduce){.daily-route-walker,.daily-route-path{animation:none;left:var(--walk-end)}.daily-route-path{width:calc(var(--route-end) - 9%)}}.hero-progress-strip.daily-paused .daily-route-walker,.hero-progress-strip.daily-paused .daily-route-path{animation-play-state:paused}.hero-progress-strip.daily-playing .daily-route-walker,.hero-progress-strip.daily-playing .daily-route-path{animation-play-state:running}.daily-replay{background:#f3c35d;color:#241824;border:1px solid #fff1bd;border-radius:4px;font-weight:900;font-size:12px;padding:4px 10px;cursor:pointer}.daily-route-walker{animation-duration:6s}.daily-route-path{animation-duration:6s}.hero-progress-strip{padding:4px 7px;max-height:29vh}.progress-strip-title{margin-bottom:2px;font-size:11px;align-items:center}.daily-route-row{padding:3px 0}.daily-route-head{gap:4px;font-size:10px}.daily-route-name{min-width:42px}.daily-route-track{height:13px;margin:2px 0 1px}.daily-route-walker{height:13px;width:10px;top:-3px;font-size:17px;line-height:17px;color:#fff1ae;text-shadow:0 0 3px #000}.daily-route-goal{font-size:10px;top:0;right:5%}.daily-route-ground{bottom:1px}.daily-route-events{display:block;font-size:9px;line-height:1.2;color:#f9e8d3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-replay{padding:2px 7px;font-size:10px}.hero-progress-strip .daily-route-walker{animation:none!important;transition:left .75s linear!important;will-change:left}.hero-progress-strip .daily-route-path{animation:daily-path 7s linear infinite!important;animation-delay:var(--delay)!important}@media(prefers-reduced-motion:reduce){.hero-progress-strip .daily-route-walker,.hero-progress-strip .daily-route-path{animation:none!important}}.hero-progress-strip .daily-route-walker{animation:none!important;transition:left .85s linear;left:8%;font-size:16px}.daily-route-head strong{font-size:10px;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-route-track{height:15px}.daily-route-track{background:repeating-linear-gradient(90deg,#292a38 0,#292a38 9.8%,#73645b 9.8%,#73645b 10%)}.daily-route-walker{transition:left .85s linear!important}.reset-area{position:relative;z-index:12;padding:12px 0 170px;display:flex;justify-content:center}.reset-area .reset{position:relative;z-index:13;min-height:48px;min-width:210px;touch-action:manipulation;pointer-events:auto;margin:12px auto}.hero-progress-strip{pointer-events:none!important}.hero-progress-strip .daily-route-name{pointer-events:auto}.report-leveled{border:2px solid #ffd46b!important;background:linear-gradient(135deg,#493820,#292c3f)!important;box-shadow:0 0 16px #f6bd5370!important}.report-level-up{margin-top:7px;padding:8px 10px;border:1px solid #ffe4a0;border-radius:6px;background:#79531c;color:#fff3b9;font-size:15px;font-weight:900;letter-spacing:.05em;text-shadow:0 1px 3px #231404}.report-leveled .report-hero-name strong{color:#ffe8a1}.daily-route-home{position:absolute;left:0;top:0;font-size:11px;z-index:2}.hero-buyback-card{margin:14px 0;padding:18px 14px;text-align:center;border:2px solid #dfba6e;border-radius:9px;background:#222536}.hero-buyback-person{font-size:14px;color:#e4d2ae}.hero-buyback-item{font-size:21px;font-weight:800;color:#fff4d8;margin:10px 0 18px;overflow-wrap:anywhere}.hero-buyback-price-label{font-size:13px;color:#e8cf97}.hero-buyback-price{font-size:clamp(36px,10vw,48px);font-weight:900;line-height:1.3;color:#ffdb72;font-variant-numeric:tabular-nums;text-shadow:0 2px 7px #0009}.hero-buyback-price span{font-size:23px;margin-left:4px}.hero-buyback-actions{display:flex;gap:9px}.hero-buyback-actions button:first-child{flex:2;font-size:16px;min-height:50px}.hero-buyback-actions button:last-child{flex:1;min-height:50px}.town .next-day-overlay{position:absolute;inset:0;z-index:18;display:flex;align-items:center;justify-content:center;background:#151b2bbd;padding:14px;box-sizing:border-box}.next-day-card{width:min(94%,340px);background:#272c40;border:3px solid #d9af65;border-radius:12px;padding:19px 13px;display:flex;flex-direction:column;gap:13px;align-items:center;text-align:center;box-shadow:0 7px 24px #0009}.next-day-card strong{font-size:clamp(19px,5vw,24px);color:#ffdf91}.next-day-card span{font-size:13px;color:#eee0c6}.next-day-card button{font-size:20px;width:100%;min-height:56px;background:#f1c275;color:#281e15;border:2px solid #ffe5a3}.next-day-overlay{position:relative!important;inset:auto!important;z-index:18;box-sizing:border-box;width:min(96vw,488px);margin:10px auto 8px;padding:10px!important;background:#252a3c!important;border:2px solid #d9af65;border-radius:12px}.next-day-card{width:100%!important;max-width:none!important;box-sizing:border-box;padding:11px!important;gap:8px!important;box-shadow:none!important}.next-day-card button{min-height:50px;font-size:17px;padding:10px 20px}.next-day-overlay{position:fixed!important;inset:0!important;z-index:10000!important;width:100%!important;height:100dvh!important;margin:0!important;padding:16px!important;border:0!important;border-radius:0!important;background:#101522c9!important;align-items:center;justify-content:center}.next-day-card{width:min(92vw,380px)!important;max-width:380px!important;padding:22px 16px!important;gap:14px!important;box-shadow:0 14px 48px #000a!important}.next-day-card button{min-height:56px!important;font-size:20px!important}.report-meters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 13px}.report-meter{min-width:0;padding:8px 7px;background:#e8e4dc;border:1px solid #c8c0b4;border-radius:6px;color:#252530}.report-meter-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:3px;font-size:12px;margin-bottom:6px}.report-meter-head span{font-weight:800;font-variant-numeric:tabular-nums}.report-meter-head small{font-weight:600;color:#666}.report-meter-track{height:12px;background:#bcb8b4;border-radius:10px;overflow:hidden}.report-meter-fill{height:100%;border-radius:10px;background:#c74754}.report-meter.mp .report-meter-fill{background:#517cc8}.purchase-feedback{position:sticky;top:0;z-index:3;background:#e2f4d9;color:#204521;border:2px solid #5e9e51;border-radius:7px;padding:11px 12px;font-size:15px;font-weight:900;animation:purchase-pop .25s ease-out}@keyframes purchase-pop{from{transform:scale(.96);opacity:.4}to{transform:scale(1);opacity:1}}.wholesale-row button:active{transform:scale(.96)}.report-hero-head{align-items:flex-start;flex-wrap:wrap}.report-hero-identity{display:grid;grid-template-columns:70px minmax(0,1fr);column-gap:10px;align-items:start}.report-hero-identity .report-portrait{grid-row:1 / span 2}.report-hero-name{min-width:0}.report-voice-inline{grid-column:2;margin:5px 0 0!important;padding:8px 10px!important;min-width:0}.report-voice-inline:after{top:12px;left:-11px;border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:12px solid #171920;border-left:0}.report-voice-inline .report-quote{font-size:12px;line-height:1.45}@media(max-width:350px){.report-hero-identity{grid-template-columns:56px minmax(0,1fr);column-gap:8px}.report-portrait{width:52px;height:64px}}  .craft-ready-notice{position:absolute;top:8px;left:8px;z-index:20;background:#f7d78b;color:#2b2115;border:2px solid #6b4c1e;border-radius:9px;padding:7px 9px;font-weight:800;font-size:12px;box-shadow:0 3px 10px #0008;cursor:pointer;max-width:58%;text-align:left}.craft-ready-notice small{display:block;font-size:10px;font-weight:600}.report-portrait-button{border:0;background:transparent;padding:0;margin:0;cursor:pointer;flex:none;display:block;touch-action:manipulation}.report-portrait-button:focus-visible{outline:3px solid #d53b4c;outline-offset:3px}@keyframes purchase-bounce{0%{transform:scale(1) translateY(0)}15%{transform:scale(.86) translateY(3px)}35%{transform:scale(1.12) translateY(-7px)}55%{transform:scale(.96) translateY(2px)}75%{transform:scale(1.06) translateY(-3px)}100%{transform:scale(1) translateY(0)}}.purchase-animated{animation:purchase-bounce .58s cubic-bezier(.2,.8,.25,1)!important;box-shadow:0 0 0 3px #f6ce75,0 0 18px #f6ce7599!important;filter:brightness(1.22)}@media(prefers-reduced-motion:reduce){.purchase-animated{animation:none!important}}.report-hero-head{display:block;position:relative}.report-hero-head .report-hero-identity{width:100%;box-sizing:border-box;flex:none}.report-hero-head .report-hero-name{padding-right:64px}.report-hero-head>.report-outcome{position:absolute;right:0;top:0}.report-voice-inline{width:100%;box-sizing:border-box;justify-self:stretch}.story-sheet{position:relative;width:min(100%,480px);max-height:min(88dvh,750px);padding:0 0 20px!important;overflow-y:auto;border:1px solid #b38b51!important;border-radius:13px;background:linear-gradient(155deg,#f8f1df 0%,#f1e4c8 100%)!important;box-shadow:0 24px 80px #000c,0 0 0 5px #352d2a!important;text-align:left!important;color:#302722}.story-topline{display:flex;align-items:center;justify-content:space-between;padding:17px 20px 12px;color:#70532f;font-size:12px;letter-spacing:.16em;font-weight:900}.story-x{width:32px;height:32px;min-width:32px;border:1px solid #cdbb9b!important;border-radius:50%;padding:0!important;background:transparent!important;color:#6a5642!important;font-size:15px!important}.story-rule{height:1px;margin:0 20px 25px;background:linear-gradient(90deg,transparent,#b9985c,transparent)}.story-sheet .ending-kicker{padding:0 24px;color:#8d6b3c;font-size:10px;letter-spacing:.18em}.story-sheet h2{padding:0 24px;font-size:clamp(22px,6vw,29px);line-height:1.4;letter-spacing:.025em;margin:12px 0 8px;color:#32251d}.story-ornament{text-align:center;color:#b08c52;font-size:12px;letter-spacing:.7em;margin:20px 0}.story-sheet #story-body{white-space:pre-line;line-height:2.05;font-size:15px;letter-spacing:.025em;margin:0 24px 25px;min-height:125px}.story-navigation{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #d8c6a5;border-bottom:1px solid #d8c6a5;margin:0 20px 16px;padding:9px 0;gap:6px}.story-navigation button{border:0!important;background:transparent!important;color:#644e35!important;padding:9px 6px!important;font-size:13px!important;font-weight:700!important}.story-navigation button:disabled{opacity:.28}.story-navigation span{font-size:12px;color:#9b805e;white-space:nowrap}.story-sheet .story-advance{display:block;width:calc(100% - 40px);margin:0 20px 10px;background:#4c372c!important;border:1px solid #b18d54!important;border-radius:7px;padding:13px!important}.story-sheet .story-dismiss{display:block;width:calc(100% - 40px);margin:0 20px;background:transparent!important;border:1px solid #bfa984!important;border-radius:7px;color:#65513d!important;padding:12px!important;font-size:13px!important}@media(max-width:420px){.story-sheet #story-body{font-size:14px;line-height:1.95}.story-sheet h2{font-size:23px}}.ending-overlay{position:fixed;inset:0;z-index:9999;background:#090b16e8;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.ending-sheet{width:min(100%,460px);max-height:90vh;overflow:auto;text-align:center;background:#f7eed8;color:#30252b;border:5px double #b68b39;box-shadow:0 16px 60px #000b;padding:24px 18px;box-sizing:border-box}.ending-crown{font-size:52px}.ending-kicker{font-size:12px;letter-spacing:2px;color:#8a5e24;font-weight:900}.ending-sheet h2{font-size:26px;margin:12px 0}.ending-sheet p{line-height:1.9;font-size:14px}.ending-record{background:#ead7ae;padding:12px;font-weight:900}.ending-note{font-size:12px!important}.ending-sheet button{background:#29222d;color:#fff;border:2px solid #b68b39;padding:12px 28px;font-weight:900;font-size:15px}.hero-progress-strip .daily-replay{background:#e2b967;color:#211b20;border:0;border-radius:4px;font-size:11px;font-weight:900;padding:3px 10px;cursor:pointer}.hero-progress-strip .daily-route-walker{transition:left .75s linear!important}.daily-route-row.route-returning .daily-route-walker{color:#a9e8ff;text-shadow:0 0 5px #52a6e9}.daily-route-row.route-returning .daily-route-place:before{content:'↩ 帰還中 · ';color:#a9e8ff} .town{position:relative}.wish-notice{position:absolute;left:8px;bottom:8px;z-index:8;padding:9px 11px;background:#f2d38e;color:#352716;border:2px solid #74532e;border-radius:9px;box-shadow:0 3px 9px #0008;font-weight:bold;cursor:pointer}.wish-notice span{font-size:11px;background:#6c4031;color:white;border-radius:12px;padding:2px 6px;margin-left:3px}  #wish-overlay{z-index:35;position:fixed;inset:0;padding:18px;background:rgba(9,12,23,.77);backdrop-filter:blur(4px)}#wish-overlay .wish-dialog{box-sizing:border-box;width:min(100%,460px);max-height:min(78dvh,720px);padding:0;overflow:hidden;display:flex;flex-direction:column;background:#252c3b;border:1px solid #8b7758;border-radius:16px;box-shadow:0 20px 60px #000b;color:#f4e8d1}#wish-overlay .wish-header{padding:19px 20px 15px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid #4d4a48}#wish-overlay .wish-eyebrow{font-size:10px;letter-spacing:1.8px;color:#c8ac7b}#wish-overlay .wish-header h3{font-size:21px;color:#f7dfab;margin:4px 0 5px}#wish-overlay .wish-header p{font-size:12px;color:#b7b9bd;margin:0}#wish-overlay .wish-close{border:1px solid #6d6a68;background:#383d4b;color:#e9d9bb;font-size:25px;line-height:1;width:36px;height:36px;padding:0;border-radius:50%;flex-shrink:0}#wish-overlay .wish-list{overflow:auto;padding:6px 16px;min-height:0}#wish-overlay .wish-entry{display:flex;align-items:flex-start;gap:12px;padding:13px 2px;border-bottom:1px solid #424653}#wish-overlay .wish-entry:last-child{border-bottom:0}#wish-overlay .wish-portrait{display:block;flex:0 0 49px;width:49px;height:57px;background-size:auto 600%;background-repeat:no-repeat;border-radius:8px;border:1px solid #806e55;background-color:#373c4b}#wish-overlay .wish-entry-text{flex:1;min-width:0}#wish-overlay .wish-name{font-size:14px;font-weight:700;color:#f5d79b}#wish-overlay .wish-name span{font-size:10px;color:#b5b6bf;font-weight:400;margin-left:5px}#wish-overlay .wish-entry p{font-size:14px;line-height:1.6;color:#ece8e0;margin:6px 0 0}#wish-overlay .wish-footer{padding:12px 16px 16px;border-top:1px solid #4d4a48}#wish-overlay .wish-footer button{display:block;width:100%;padding:12px;background:#bc945a;color:#211c1a;font-size:14px;border-radius:9px} .daily-route-hp{display:inline-block;position:relative;flex:0 0 52px;width:52px;height:5px;border-radius:5px;background:#4c3b42;overflow:hidden;border:1px solid #81736d}.daily-route-hp-fill{display:block;height:100%;background:#d45d64;border-radius:5px;transition:width .65s ease}.daily-route-head .daily-route-place{min-width:0} .hero-buyback-resale{margin-top:9px;padding-top:10px;border-top:1px solid #ffffff2b;color:#d8d4ca;font-size:13px}.hero-buyback-resale strong{color:#f6e4b9;font-size:17px;margin-left:8px}.hero-progress-strip{display:block!important;visibility:visible!important;opacity:1!important;z-index:40!important;min-height:34px;box-sizing:border-box}.hero-progress-strip .daily-route-row{display:block}.next-day-overlay,.next-day-overlay[hidden]{display:none!important}.next-day-overlay{position:fixed!important;inset:0!important;z-index:80!important;align-items:center;justify-content:center;background:#151b2bd9;padding:14px;box-sizing:border-box}.town.scenario-two{background:#849184;border-color:#6b6974;box-shadow:inset 0 0 65px #373e4c45}.town.scenario-two .road{background:#b1a18d}.town.scenario-two .house{background:#a68d88;border-color:#59515b}.town.scenario-two .door{background:#45414c}.town.scenario-two:after{content:"SCENARIO Ⅱ · 灰の王国";position:absolute;right:6px;bottom:5px;z-index:2;padding:4px 8px;border:1px solid #b6a9a1;background:#343441c9;color:#f0e3d0;font-size:10px;font-weight:800;letter-spacing:.05em;pointer-events:none;border-radius:3px}.town{transition:background-color .65s,border-color .65s,box-shadow .65s}.town .road,.town .house{transition:background-color .65s,border-color .65s}
/* Graphic-novel inspired story reader: independent of the ending parchment panel */
#story-overlay{background:repeating-linear-gradient(148deg,#050505ed 0,#050505ed 28px,#171717f2 29px,#171717f2 31px)!important;padding:12px!important;backdrop-filter:blur(5px)}
#story-overlay .story-sheet{isolation:isolate;position:relative;width:min(100%,500px);max-height:min(92dvh,820px);padding:0 0 18px!important;overflow-y:auto;overflow-x:hidden;background:#f6f3ed!important;border:4px solid #0d0d0d!important;border-radius:0!important;box-shadow:11px 12px 0 #d92730,17px 18px 0 #090909,0 25px 70px #000d!important;color:#111!important;text-align:left!important;transform:rotate(-.4deg)}
#story-overlay .story-sheet:before{content:"";position:absolute;top:0;right:0;width:46%;height:132px;background:#d92330;clip-path:polygon(34% 0,100% 0,100% 100%,0 100%);z-index:-1}
#story-overlay .story-sheet:after{content:"";position:absolute;left:-10%;top:140px;width:120%;height:14px;background:#101010;transform:rotate(-4deg);pointer-events:none}
#story-overlay .story-topline{padding:14px 17px 8px;min-height:48px;color:#111;font-size:12px;letter-spacing:.13em;font-weight:1000;position:relative;z-index:2}
#story-overlay .story-topline b{font-size:10px;letter-spacing:.03em}
#story-overlay .story-x{background:#111!important;border:2px solid #fff!important;border-radius:0!important;color:#fff!important;width:34px;height:34px;padding:0!important;transform:rotate(8deg);font-size:18px!important}
#story-overlay .story-rule{height:5px;background:#111;margin:0 18px 25px;transform:skewX(-25deg)}
#story-overlay .ending-kicker{display:inline-block;margin:0 17px;padding:6px 12px!important;background:#111;color:#fff!important;font-size:11px;letter-spacing:.1em;transform:skewX(-9deg);font-weight:1000}
#story-overlay .story-sheet h2{position:relative;padding:5px 20px 0;margin:13px 0 4px;color:#0b0b0b!important;font-size:clamp(26px,7.4vw,39px);line-height:1.22;font-weight:1000;letter-spacing:-.045em;text-shadow:2px 2px 0 #ffffff}
#story-overlay .story-ornament{display:flex;align-items:center;gap:10px;margin:16px 20px 17px;color:#d92330;font-size:10px;font-weight:1000;letter-spacing:.13em;text-align:left}
#story-overlay .story-ornament i{height:5px;flex:1;background:repeating-linear-gradient(110deg,#d92330 0,#d92330 17px,#111 17px,#111 23px);transform:skewX(-15deg)}
#story-overlay .story-sheet #story-body{position:relative;background:#fff!important;border:3px solid #111;border-left:9px solid #d92330;box-shadow:5px 5px 0 #111;min-height:125px;padding:19px 16px;margin:0 21px 26px;white-space:pre-line;color:#191919;font-size:15px;line-height:1.95;letter-spacing:.02em;font-weight:600}
#story-overlay .story-navigation{margin:0 20px 17px;border:0;background:#111;transform:skewX(-8deg);padding:4px 6px;gap:2px}
#story-overlay .story-navigation button{background:transparent!important;border:0!important;color:#fff!important;font-size:13px!important;padding:12px 6px!important;font-weight:1000!important;transform:skewX(8deg)}
#story-overlay .story-navigation button:disabled{opacity:.3}
#story-overlay .story-navigation span{color:#fff;background:#d92330;padding:5px 8px;font-weight:900;font-size:12px;transform:skewX(8deg)}
#story-overlay .story-advance{display:block;width:calc(100% - 40px);margin:0 20px 11px;background:#d92330!important;color:#fff!important;border:3px solid #111!important;border-radius:0!important;box-shadow:4px 4px 0 #111;font-size:16px!important;font-weight:1000!important;padding:14px 10px!important;transform:skewX(-5deg)}
#story-overlay .story-dismiss{display:block;width:calc(100% - 40px);margin:0 20px;background:#fff!important;border:2px solid #111!important;border-radius:0!important;color:#111!important;padding:11px!important;font-size:13px!important;font-weight:1000!important}
@media(max-width:420px){#story-overlay .story-sheet{width:calc(100% - 16px);box-shadow:7px 8px 0 #d92330,11px 12px 0 #090909!important}#story-overlay .story-sheet #story-body{font-size:14px;line-height:1.85;padding:14px 12px;margin-left:17px;margin-right:17px}#story-overlay .story-sheet h2{font-size:27px}}

/* Wa-modern graphic interface: ink, vermilion, washi, sharp diagonal geometry */
#story-overlay{background:repeating-linear-gradient(135deg,#10141af2 0,#10141af2 27px,#1c2027f2 28px,#1c2027f2 30px)!important}
#story-overlay .story-sheet{background:repeating-linear-gradient(0deg,#f1ebde 0,#f1ebde 3px,#ede6d9 4px,#ede6d9 5px)!important;border:3px solid #151b21!important;box-shadow:9px 10px 0 #b53630,16px 17px 0 #10151a,0 25px 70px #000d!important}
#story-overlay .story-sheet:before{background:#b53630;clip-path:polygon(42% 0,100% 0,100% 100%,0 100%)}
#story-overlay .story-sheet:after{height:9px;background:#18222c;transform:rotate(-3deg)}
#story-overlay .story-topline{color:#17212b;font-size:15px;letter-spacing:.16em;font-family:serif}
#story-overlay .story-topline b{font-family:sans-serif;font-size:11px;letter-spacing:.08em}
#story-overlay .story-x{background:#17212b!important;border:2px solid #f2eee5!important;transform:rotate(5deg)}
#story-overlay .story-rule{background:#18222c}
#story-overlay .ending-kicker{background:#19232d;color:#fff!important;font-size:10px;letter-spacing:.08em}
#story-overlay .story-sheet h2{font-family:"Noto Serif JP","Yu Mincho",serif;color:#17212b!important;letter-spacing:.03em;text-shadow:2px 2px 0 #fff;font-weight:900}
#story-overlay .story-ornament{color:#b53630;letter-spacing:.15em}
#story-overlay .story-ornament:before{content:"◆";font-size:16px}
#story-overlay .story-ornament i{background:repeating-linear-gradient(110deg,#b53630 0,#b53630 15px,#18222c 15px,#18222c 22px)}
#story-overlay .story-sheet #story-body{background:#fffaf0!important;border:2px solid #1b252c;border-left:8px solid #b53630;box-shadow:5px 5px 0 #1b252c;color:#202329;font-family:"Noto Serif JP","Yu Mincho",serif;font-weight:600;letter-spacing:.045em;line-height:2.05}
#story-overlay .story-navigation{background:#1b252c}
#story-overlay .story-navigation span{background:#b53630}
#story-overlay .story-advance{background:#b53630!important;border:3px solid #17212b!important;box-shadow:4px 4px 0 #17212b}
#story-overlay .story-dismiss{background:#f8f2e6!important;color:#17212b!important;border:2px solid #17212b!important}
/* Story chapter title must sit above diagonal decorations and remain readable */
#story-overlay .story-sheet:after{display:none!important}
#story-overlay .story-sheet h2{position:relative;z-index:3;display:block;clear:both;margin:18px 20px 12px!important;padding:4px 0 8px!important;max-width:calc(100% - 40px);overflow-wrap:anywhere;line-height:1.45!important;text-shadow:none!important;background:transparent!important}
#story-overlay .story-ornament{position:relative;z-index:2;margin-top:8px!important}
#story-overlay .story-sheet:before{height:112px!important;pointer-events:none}
@media(max-width:420px){#story-overlay .story-sheet h2{font-size:25px!important;line-height:1.5!important}}

.town.scenario-three{background:#748ba4;border-color:#4a617d;box-shadow:inset 0 0 70px #263b7099}.town.scenario-three .road{background:#a9b4c4}.town.scenario-three .house{background:#8199ae;border-color:#465675}.town.scenario-three .door{background:#344b6a}.town.scenario-three:after{content:"SCENARIO Ⅲ · 黎明の星環";position:absolute;right:6px;bottom:5px;z-index:2;padding:4px 8px;border:1px solid #a4c6eb;background:#233b62e8;color:#f6e8b6;font-size:10px;font-weight:800;letter-spacing:.05em;pointer-events:none;border-radius:3px}

.reset-area-accessible{padding:6px 12px 12px!important;margin:0 auto;max-width:468px;position:relative;z-index:20}.reset-area-accessible .reset{margin:4px auto;min-height:48px;display:block;cursor:pointer}

.first-day-route{height:17px;margin:5px 5px 8px;position:relative;border-bottom:2px dashed #b9a57f;overflow:hidden}.first-day-walker{position:absolute;left:3%;bottom:-3px;animation:first-day-walk 3.5s ease-in-out both;font-size:17px}@keyframes first-day-walk{0%{left:3%;opacity:.3}15%{opacity:1}85%{opacity:1}100%{left:85%;opacity:.8}}

.story-scene-image{display:block;width:100%;max-height:230px;aspect-ratio:8/5;object-fit:cover;object-position:center;border:1px solid rgba(221,186,116,.5);border-radius:6px;margin:10px 0 14px;box-shadow:0 8px 24px rgba(0,0,0,.35)}#hero-progress-strip{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}

/* Recruitment: readable character portraits on mobile */
.recruit-candidate{grid-template-columns:116px minmax(0,1fr);gap:12px;align-items:center;padding:12px}
.recruit-avatar{grid-row:span 2;align-self:stretch;min-height:138px;overflow:hidden;background:#29252d;border:2px solid #d93644}
.recruit-portrait{display:block;width:100%;height:138px;background-repeat:no-repeat;background-size:auto 600%;background-color:#29252d;flex-shrink:0}
.recruit-info strong{font-size:18px}
@media(max-width:380px){.recruit-candidate{grid-template-columns:98px minmax(0,1fr);gap:9px;padding:9px}.recruit-avatar{min-height:124px}.recruit-portrait{height:124px}}

/* Dungeon progress milestone after exploration */
.progress-milestone-overlay{position:fixed;inset:0;z-index:1900;display:none;align-items:center;justify-content:center;padding:14px;background:#090a12e9;backdrop-filter:blur(6px)}
.progress-milestone-sheet{width:100%;max-width:460px;max-height:90dvh;overflow:auto;background:#f3f0e8;color:#171920;border-top:7px solid #dc3443;padding:20px;box-shadow:7px 7px 0 #dc3443}
.progress-milestone-kicker{font-size:11px;letter-spacing:.16em;font-weight:900;color:#c42d3d}
.progress-milestone-sheet h2{font-size:23px;line-height:1.3;margin:9px 0 18px;color:#171920}
.progress-milestone-entry{background:white;border:1px solid #cbc6c0;padding:13px;margin-bottom:12px;display:flex;flex-direction:column;gap:6px}
.progress-milestone-entry strong{font-size:17px}.progress-milestone-entry span{font-size:20px;font-weight:900}.progress-milestone-entry span b{color:#d93644}.progress-milestone-entry small{font-weight:700;color:#666}
.progress-milestone-bar{height:12px;background:#ded9d2;overflow:hidden}.progress-milestone-bar i{display:block;height:100%;background:#d93644}
.progress-milestone-sheet>button{display:block;width:100%;border:0;background:#d93644;color:white;padding:14px;font-size:16px;font-weight:900;margin-top:15px}

.story-clear-speech{display:flex;align-items:center;gap:13px;margin:14px 0 18px;padding:12px;background:#191a24;color:#fff;border-left:5px solid #d93644}
.story-clear-portrait{display:block;flex:0 0 78px;width:78px;height:100px;background-repeat:no-repeat;background-size:auto 600%;background-color:#29252d;border:2px solid #e43a4c}
.story-clear-quote{min-width:0;flex:1}.story-clear-quote strong{display:block;color:#ff8791;font-size:13px;margin-bottom:7px}.story-clear-quote p{font-size:15px;line-height:1.65;margin:0;font-weight:700}
@media(max-width:380px){.story-clear-speech{gap:9px;padding:9px}.story-clear-portrait{flex-basis:65px;width:65px;height:88px}.story-clear-quote p{font-size:13px}}

/* Chapter enemy bestiary art */
.enemy-file-emblem:has(img){width:160px;height:132px;flex:0 0 160px;overflow:hidden;border-radius:10px;background:#0c1420;padding:0}
.enemy-file-emblem img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:480px){.enemy-file-emblem:has(img){width:115px;height:115px;flex-basis:115px}}

/* Portrait sizing: preserve full artwork without stretching recruitment cards */
.recruit-candidate{align-items:start}
.recruit-avatar{grid-row:auto;align-self:start;min-height:0;width:100%;aspect-ratio:3/4;overflow:hidden}
.recruit-portrait{width:100%;height:100%;aspect-ratio:3/4;background-size:cover!important;background-position:center!important}
.recruit-portrait img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center top!important}
.recruit-info{align-self:center}
@media(max-width:380px){.recruit-avatar,.recruit-portrait{min-height:0;height:auto}}

/* Recruitment portraits: override inherited sprite rules and grid stretching */
.recruit-candidate{display:grid!important;grid-template-columns:112px minmax(0,1fr)!important;grid-template-rows:150px auto!important;align-items:start!important}
.recruit-candidate .recruit-avatar{grid-column:1!important;grid-row:1!important;display:block!important;width:112px!important;height:150px!important;min-height:0!important;max-height:150px!important;aspect-ratio:auto!important;align-self:start!important;position:relative!important;overflow:hidden!important}
.recruit-candidate .recruit-portrait{display:block!important;position:relative!important;width:100%!important;height:100%!important;min-height:0!important;max-height:100%!important;aspect-ratio:auto!important;overflow:hidden!important;background-size:cover!important}
.recruit-candidate .recruit-portrait>img{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center top!important}
.recruit-candidate .recruit-info{grid-column:2!important;grid-row:1!important;align-self:start!important}
.recruit-candidate>button{grid-column:1/-1!important;grid-row:2!important}
@media(max-width:380px){.recruit-candidate{grid-template-columns:96px minmax(0,1fr)!important;grid-template-rows:132px auto!important}.recruit-candidate .recruit-avatar{width:96px!important;height:132px!important;max-height:132px!important}}

/* Circular portrait for all animated town visitors */
.actor .actor-portrait,.actor-portrait{display:inline-block!important;width:35px!important;height:35px!important;min-width:35px!important;min-height:35px!important;max-width:35px!important;max-height:35px!important;aspect-ratio:1!important;border-radius:50%!important;overflow:hidden!important;box-sizing:border-box!important;vertical-align:middle!important;position:relative!important}
.actor-portrait>img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center top!important;border-radius:50%!important}

/* Exploration HUD must stay visible above the town and dialogs after gameplay. */
html body #hero-progress-strip{position:fixed!important;display:block!important;visibility:visible!important;opacity:1!important;left:6px!important;right:6px!important;bottom:max(6px,env(safe-area-inset-bottom))!important;z-index:110!important;min-height:52px!important;max-height:38dvh!important;overflow-y:auto!important;background-color:#121827!important;border:2px solid #ffcf6a!important;box-shadow:0 0 0 2px #111,0 8px 28px #000c!important;color:#fff!important;pointer-events:auto!important}
html body #hero-progress-strip .daily-route-row{display:block!important;min-height:45px!important}
html body #hero-progress-strip .daily-route-track{display:block!important;position:relative!important;min-height:19px!important}
html body #hero-progress-strip .daily-route-walker{display:block!important;position:absolute!important;z-index:3!important;color:#ffe8a0!important}

/* Status dialogs must appear above the persistent exploration HUD (z-index 110). */
html body #hero-detail{z-index:1200!important;pointer-events:auto!important}
html body #hero-detail .hero-modal-box{pointer-events:auto!important}
html body #hero-progress-strip .daily-route-name{pointer-events:auto!important;cursor:pointer;touch-action:manipulation}

/* Compact real-time exploration log: no vertical dividers or full-width history. */
html body #hero-progress-strip .daily-route-events{display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:6px!important;width:72%!important;max-width:260px!important;min-height:15px;overflow:hidden!important;white-space:nowrap!important;text-overflow:clip!important}
html body #hero-progress-strip .daily-route-events .daily-log-entry{display:inline-block!important;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none!important;border:0!important;border-left:0!important;box-shadow:none!important;padding:0!important;color:#f9e8d3!important;font-size:10px!important}
html body #hero-progress-strip .daily-route-events .daily-log-entry:last-child{color:#ffde89!important;flex:1 1 auto}

/* Preserve all exploration events; scroll inside a bounded log instead of deleting history. */
html body #hero-progress-strip .daily-route-events{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;width:72%!important;max-width:260px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;scroll-behavior:smooth;white-space:nowrap!important}
html body #hero-progress-strip .daily-route-events::-webkit-scrollbar{display:none}
html body #hero-progress-strip .daily-route-events .daily-log-entry,html body #hero-progress-strip .daily-route-events .daily-log-entry:last-child{flex:0 0 auto!important;max-width:none!important;overflow:visible!important;text-overflow:clip!important;border:0!important;border-left:0!important;background:none!important;padding:0!important;box-shadow:none!important}

/* Persona-inspired personality panel: compact editorial hierarchy, no inline styles */
.status-personality{margin:0 0 8px;background:#171920;color:#fff;overflow:hidden;border-bottom:4px solid #d83240}
.personality-heading{display:flex;align-items:center;gap:10px;padding:10px 17px 7px;border-bottom:1px solid #41434c}
.personality-index{font-size:10px;font-weight:900;letter-spacing:.13em;color:#f15c67}
.personality-title{font-size:12px;font-weight:900;letter-spacing:.06em}
.personality-symbol{margin-left:auto;font-size:20px;color:#f15c67}
.personality-main{padding:12px 18px 13px;display:flex;align-items:flex-start;gap:13px}
.personality-main>strong{flex:0 0 auto;color:#fff;background:#d83240;padding:5px 10px;font-size:17px;font-weight:1000;transform:skew(-8deg);box-shadow:3px 3px 0 #fff}
.personality-main>p{margin:0;font-size:12px;line-height:1.65;color:#e1e0e3}
.personality-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#f0ede8;color:#171920}
.personality-metrics>div{padding:10px 8px 11px;text-align:center;min-width:0}
.personality-metrics>div+div{border-left:2px solid #d0c9c2}
.personality-metrics span{display:block;font-size:9px;font-weight:1000;letter-spacing:.04em;color:#777078;white-space:nowrap}
.personality-metrics strong{display:block;margin:4px 0 1px;font-size:24px;line-height:1;font-weight:1000;font-style:italic;letter-spacing:-.04em}
.personality-metrics small{font-size:10px;font-weight:900;color:#777078}
@media(max-width:390px){.personality-main{display:block}.personality-main>p{margin-top:10px}.personality-metrics strong{font-size:21px}.personality-metrics span{font-size:8px}}

/* Adventurer status: independently scrolling content with a permanently visible close footer. */
html body #hero-detail .hero-modal-box{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 24px);min-height:0}
html body #hero-detail #hero-detail-content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
html body #hero-detail .hero-status-footer{flex:0 0 auto;padding:10px 15px max(12px,env(safe-area-inset-bottom));background:#f4f1e9;border-top:2px solid #d0c9c1;position:relative;z-index:2}
html body #hero-detail .hero-status-footer button{display:block;width:100%;margin:0;min-height:44px}

/* Town map: current dungeon judged too dangerous by adventurers */
#town-map{position:relative}
.dungeon-caution-notice{position:absolute;right:9px;bottom:9px;z-index:12;max-width:min(57%,260px);padding:8px 10px;background:rgba(22,27,39,.94);color:#fff1d8;border:1px solid #cba667;border-left:4px solid #d9a444;border-radius:5px;box-shadow:0 3px 10px #0006;font-size:11px;font-weight:700;line-height:1.5;pointer-events:none}

/* Enemy research list */
.enemy-research-list{display:grid;gap:8px;margin:10px 0 18px}.enemy-research-entry{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px;border:1px solid rgba(177,191,215,.32);border-radius:9px;background:#18263b;color:#f4f1e8;text-align:left;cursor:pointer}.enemy-research-entry:hover{background:#293c58}.enemy-research-entry .enemy-artwork,.enemy-research-entry img{width:54px;height:54px;object-fit:cover;flex-shrink:0}.enemy-research-entry span{font-weight:700;flex:1}.enemy-research-entry small{font-size:11px;color:#d6c79d}

/* Scenario label is shown in the header HUD only; remove old town-corner badges. */
.town.scenario-two::after,.town.scenario-three::after{content:none!important;display:none!important}

/* All visitor trades, including adventurer buyback, must cover town menus and panels. */
body>#trade-overlay.trade-overlay{position:fixed;inset:0;z-index:2000;box-sizing:border-box}

/* Compact visiting card while retaining readable equipment and HP. */
.visitor-mini{width:min(40%,156px);padding:6px 7px;border-width:1px;box-shadow:2px 2px 0 #d83b4a}.visitor-mini-kicker{font-size:8px;margin-bottom:2px}.visitor-mini strong{font-size:clamp(11px,3vw,14px)}.visitor-mini small{font-size:10px;line-height:1.3}.visitor-mini-link{margin-bottom:2px}.visitor-hp-label{margin:3px 0 2px;font-size:9px}.visitor-hp-label b{font-size:10px}.visitor-hp-track{height:6px}


/* Monster archive: compact editorial layout with clear chapter navigation. */
.enemy-codex{color:#f4f0e7;padding-bottom:8px}
.enemy-codex-hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#13243b 0%,#25364e 65%,#4a2737 100%);border:1px solid #75819966;border-radius:12px;padding:20px 18px;margin-bottom:20px;box-shadow:0 7px 24px #0004}
.enemy-codex-hero:after{content:"";position:absolute;width:160px;height:160px;right:-55px;top:-75px;border:23px solid #ffffff0b;transform:rotate(30deg);pointer-events:none}
.enemy-codex-eyebrow{display:flex;justify-content:space-between;gap:8px;font-size:9px;letter-spacing:.13em;font-weight:800;color:#f1ba79}
.enemy-codex-eyebrow span{color:#c8d0de;letter-spacing:.02em}
.enemy-codex-title{font-size:clamp(24px,6vw,33px);font-weight:900;letter-spacing:.07em;margin:10px 0 5px;line-height:1.2}
.enemy-codex-title span{display:block;font-size:10px;letter-spacing:.35em;color:#d9a6a8;margin-top:4px}
.enemy-codex-hero p{font-size:12px;line-height:1.7;color:#d3dce8;margin:12px 0 16px}
.enemy-codex-summary{display:flex;align-items:center;gap:18px;padding-top:13px;border-top:1px solid #ffffff30}
.enemy-codex-summary>strong{font-size:32px;font-variant-numeric:tabular-nums;color:#ffe1a8;line-height:1;white-space:nowrap}
.enemy-codex-summary>strong small{font-size:12px;color:#c3cad5}
.enemy-codex-summary>div{flex:1;min-width:0;font-size:11px;color:#d9e1ec}
.enemy-codex-progress{height:5px;border-radius:10px;background:#ffffff2b;margin-top:7px;overflow:hidden}
.enemy-codex-progress i{display:block;height:100%;background:#f4bc7b;border-radius:10px}
.enemy-codex-chapter{margin:0 0 20px}
.enemy-codex-chapter-head{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #8b97aa55;padding:0 2px 9px;margin-bottom:10px}
.enemy-codex-chapter-head small{display:block;color:#e6ad73;font-size:10px;font-weight:800;letter-spacing:.16em}
.enemy-codex-chapter-head h4{margin:3px 0 0;font-size:15px;color:#fff}
.enemy-codex-count{font-size:10px;color:#d3d9e4;background:#ffffff14;border:1px solid #ffffff23;border-radius:20px;padding:5px 9px;white-space:nowrap}
.enemy-codex .enemy-research-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:9px;margin:0}
.enemy-codex .enemy-research-entry{position:relative;display:flex;gap:12px;align-items:center;min-height:91px;padding:9px;border-radius:10px;border:1px solid #8c9aad55;background:linear-gradient(110deg,#202e42,#172337);box-shadow:0 3px 9px #0002;transition:background .15s,border-color .15s,transform .15s}
.enemy-codex .enemy-research-entry:hover,.enemy-codex .enemy-research-entry:focus-visible{background:#2d415c;border-color:#e1b27d;transform:translateY(-1px)}
.enemy-codex-art{width:70px;height:70px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:7px;overflow:hidden;background:#0e192a}
.enemy-codex-art .enemy-artwork,.enemy-codex-art img{width:100%;height:100%;object-fit:cover}
.enemy-codex-info{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.enemy-codex-info small{font-size:9px;letter-spacing:.12em;color:#e9ae75}
.enemy-codex-info strong{font-size:14px;color:#fff;line-height:1.3;overflow-wrap:anywhere}
.enemy-codex-info em{font-style:normal;font-size:10px;font-weight:400;color:#b4c1d1}
.enemy-codex-arrow{font-size:26px;color:#e7ad7b;padding-right:3px}
.enemy-codex-empty{display:flex;align-items:center;gap:10px;padding:16px;border:1px dashed #8490a455;border-radius:9px;background:#101d2b80;color:#b4c0cf;font-size:12px}
.enemy-codex-empty span{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#ffffff13;font-size:18px;color:#d2bba4}
@media(max-width:480px){.enemy-codex-hero{padding:16px 13px}.enemy-codex-eyebrow{font-size:8px}.enemy-codex .enemy-research-list{grid-template-columns:1fr}.enemy-codex .enemy-research-entry{min-height:82px}.enemy-codex-art{width:62px;height:62px}}

/* Enemy detail must stack above the town research dialog (z-index 2000). */
html body #enemy-detail.hero-modal{position:fixed;inset:0;z-index:2200!important;pointer-events:auto!important}
html body #enemy-detail .hero-modal-box{pointer-events:auto!important}


/* Persona-inspired enemy profile: graphic red/black/ivory composition, angled typography. */
html body #enemy-detail.hero-modal{background:rgba(7,8,14,.94);backdrop-filter:blur(10px);padding:12px;align-items:center;justify-content:center}
html body #enemy-detail .hero-modal-box{position:relative;isolation:isolate;box-sizing:border-box;width:min(100%,520px);max-width:520px;max-height:calc(100dvh - 24px);overflow-y:auto;background:#11131c;color:#f9f4ed;border:3px solid #f8f1e7;border-radius:0;clip-path:polygon(0 0,100% 0,100% 96%,96% 100%,0 100%);box-shadow:10px 10px 0 #e33144,0 24px 75px #000c;padding:0 17px 18px}
html body #enemy-detail .hero-modal-box:before{height:11px;margin:0 -17px;background:repeating-linear-gradient(115deg,#e72c41 0 34px,#f5f0e9 34px 40px,#11131c 40px 46px)}
#enemy-detail .enemy-file-top{margin:0 -17px;padding:13px 18px 10px;border-bottom:2px solid #e52c41;background:#181b26;color:#f7f0e8;letter-spacing:.15em;font-size:9px}
#enemy-detail .enemy-file-top span:first-child{color:#ff5265}
#enemy-detail .enemy-file-hero{position:relative;min-height:165px;gap:12px;margin:0 -17px 15px;padding:19px 17px 21px;background:linear-gradient(145deg,#e12b41 0%,#b91630 65%,#6c1028 100%);overflow:hidden}
#enemy-detail .enemy-file-hero:before{content:"";position:absolute;right:-30px;top:-65px;width:190px;height:240px;border:22px solid #ffffff17;transform:rotate(27deg);pointer-events:none}
#enemy-detail .enemy-file-hero:after{content:"";position:absolute;left:-25px;bottom:-44px;width:115%;height:65px;background:#11131c;transform:rotate(-5deg);transform-origin:left bottom;pointer-events:none}
#enemy-detail .enemy-file-emblem{position:relative;z-index:1;width:clamp(100px,30vw,145px);height:clamp(110px,34vw,154px);border:4px solid #fff;background:#161823;box-shadow:7px 7px 0 #0c0d15;transform:rotate(-5deg);font-size:65px;overflow:hidden}
#enemy-detail .enemy-file-emblem img{width:100%;height:100%;object-fit:cover}
#enemy-detail .enemy-file-heading{position:relative;z-index:2;flex:1;min-width:0;transform:rotate(-2deg);text-shadow:2px 3px 0 #641024}
#enemy-detail .enemy-file-heading>span{display:inline-block;padding:4px 7px;background:#11131c;color:#fff;font-size:9px;letter-spacing:.17em}
#enemy-detail .enemy-file-heading h2{font-size:clamp(25px,7vw,42px);line-height:1.08;color:#fff;font-weight:1000;letter-spacing:-.035em;margin:11px 0}
#enemy-detail .enemy-file-heading small{display:inline-block;padding:4px 7px;background:#f8f2e9;color:#16141c;font-weight:900;font-size:11px;text-shadow:none}
#enemy-detail .enemy-file-stats{position:relative;z-index:2;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 17px}
#enemy-detail .enemy-file-stats>div{background:#f5f0e9;color:#171722;border:0;border-bottom:5px solid #e52b40;padding:10px 13px;transform:skew(-3deg)}
#enemy-detail .enemy-file-stats span,#enemy-detail .enemy-file-stats em{color:#4d4b55;font-weight:900;font-size:10px}
#enemy-detail .enemy-file-stats strong{color:#15151c;font-size:38px;font-weight:1000;line-height:1}
#enemy-detail .enemy-file-casualties strong{color:#ce233b}
#enemy-detail .enemy-file-danger{background:#e52b40!important}
#enemy-detail .enemy-file-danger span,#enemy-detail .enemy-file-danger em,#enemy-detail .enemy-file-danger strong{color:#fff}
#enemy-detail .enemy-file-section{position:relative;border-top:1px solid #5d5b65;padding:15px 3px}
#enemy-detail .enemy-file-label{display:inline-block;position:relative;background:#e52b40;color:#fff;padding:5px 10px;transform:skew(-8deg);font-size:11px;letter-spacing:.09em}
#enemy-detail .enemy-file-section p{color:#f2edf0;font-size:13px;line-height:1.75;margin:11px 0 4px!important}
#enemy-detail .enemy-file-recommend{background:#1c1d29;border-top:3px solid #e52b40;margin:5px -17px;padding:17px 20px}
#enemy-detail .enemy-gear-row{border-bottom-color:#55525d;color:#fff}
#enemy-detail .enemy-gear-row strong{color:#ffdcaf}
#enemy-detail .enemy-file-hint,#enemy-detail .enemy-file-empty,#enemy-detail .enemy-file-caution{color:#c9c2cc!important}
#enemy-detail .hero-modal-box>button{display:block;width:100%;min-height:46px;margin-top:16px;border:2px solid #fff;border-radius:0;background:#e52b40;color:#fff;font-weight:1000;letter-spacing:.18em;box-shadow:5px 5px 0 #07070c;cursor:pointer}
#enemy-detail .hero-modal-box>button:active{transform:translate(2px,2px);box-shadow:3px 3px 0 #07070c}
@media(max-width:380px){#enemy-detail .enemy-file-hero{padding:16px 12px 23px;gap:10px}#enemy-detail .enemy-file-emblem{width:92px;height:110px}#enemy-detail .enemy-file-heading h2{font-size:25px}#enemy-detail .enemy-file-stats strong{font-size:30px}}


/* Persona-inspired monster archive LIST screen; enemy detail is intentionally unchanged. */
#trade-overlay.town-shop-overlay:has(.enemy-codex) .trade-box{background:#0f111b;color:#fff;border:3px solid #f8f4ed;box-shadow:9px 9px 0 #e52940,0 22px 65px #000a;border-radius:0;max-width:620px}
#trade-overlay:has(.enemy-codex) .enemy-codex{color:#fff}
#trade-overlay:has(.enemy-codex) .enemy-codex-hero{position:relative;isolation:isolate;border:0;border-radius:0;background:#e22c43;box-shadow:none;margin:-2px -2px 22px;padding:23px 19px 19px;clip-path:polygon(0 0,100% 0,100% 94%,95% 100%,0 100%)}
#trade-overlay:has(.enemy-codex) .enemy-codex-hero:before{content:"";position:absolute;z-index:-1;right:-45px;top:-45px;width:210px;height:210px;background:#0d101a;clip-path:polygon(34% 0,100% 0,100% 100%,0 65%);transform:rotate(-8deg)}
#trade-overlay:has(.enemy-codex) .enemy-codex-hero:after{content:"";position:absolute;z-index:-1;left:-25px;bottom:-80px;width:125%;height:105px;background:#f9f5ec;transform:rotate(-8deg);opacity:.11}
#trade-overlay:has(.enemy-codex) .enemy-codex-eyebrow{font-size:10px;color:#fff;letter-spacing:.18em;text-shadow:1px 2px #811126}
#trade-overlay:has(.enemy-codex) .enemy-codex-eyebrow span{background:#0e101b;color:#fff;padding:4px 7px;letter-spacing:.04em}
#trade-overlay:has(.enemy-codex) .enemy-codex-title{font-size:clamp(29px,8vw,43px);font-weight:1000;line-height:1.04;letter-spacing:-.05em;text-shadow:3px 4px 0 #861328;transform:rotate(-2deg);margin:17px 0 10px}
#trade-overlay:has(.enemy-codex) .enemy-codex-title span{display:inline-block;background:#0e101b;color:#fff;letter-spacing:.19em;font-size:10px;text-shadow:none;padding:6px 9px;vertical-align:middle;transform:rotate(3deg);margin:5px}
#trade-overlay:has(.enemy-codex) .enemy-codex-hero p{font-size:11px;color:#fff;max-width:390px;margin:16px 0;line-height:1.6}
#trade-overlay:has(.enemy-codex) .enemy-codex-summary{background:#0e101b;border:2px solid #fff;transform:skew(-4deg);padding:10px 13px;gap:12px}
#trade-overlay:has(.enemy-codex) .enemy-codex-summary>strong{color:#fff;font-size:35px}
#trade-overlay:has(.enemy-codex) .enemy-codex-summary>div{color:#fff}
#trade-overlay:has(.enemy-codex) .enemy-codex-progress{background:#565663;height:7px}
#trade-overlay:has(.enemy-codex) .enemy-codex-progress i{background:#ff5269}
#trade-overlay:has(.enemy-codex) .enemy-codex-chapter{margin:0 0 22px}
#trade-overlay:has(.enemy-codex) .enemy-codex-chapter-head{border-bottom:3px solid #ed3048;padding:0 3px 10px;margin-bottom:12px;align-items:end}
#trade-overlay:has(.enemy-codex) .enemy-codex-chapter-head small{display:inline-block;background:#ed3048;color:#fff;font-size:10px;padding:3px 7px;transform:skew(-9deg)}
#trade-overlay:has(.enemy-codex) .enemy-codex-chapter-head h4{font-size:clamp(17px,5vw,22px);font-weight:1000;color:#fff;letter-spacing:-.03em;margin:6px 0 0}
#trade-overlay:has(.enemy-codex) .enemy-codex-count{background:#f6f2e9;color:#12131b;border:0;border-radius:0;font-size:11px;font-weight:900;padding:7px 9px;transform:skew(-7deg)}
#trade-overlay:has(.enemy-codex) .enemy-research-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:11px}
#trade-overlay:has(.enemy-codex) .enemy-research-entry{background:#f7f2e9;color:#11131b;border:0;border-radius:0;box-shadow:5px 5px 0 #d82940;transform:skew(-3deg);padding:9px;min-height:98px;transition:transform .12s,box-shadow .12s}
#trade-overlay:has(.enemy-codex) .enemy-research-entry:hover,#trade-overlay:has(.enemy-codex) .enemy-research-entry:focus-visible{background:#fff;transform:skew(-3deg) translate(-2px,-2px);box-shadow:7px 7px 0 #f03c53;outline:2px solid #f03c53}
#trade-overlay:has(.enemy-codex) .enemy-codex-art{width:78px;height:78px;border:3px solid #11131b;border-radius:0;background:#252733;transform:skew(3deg);box-shadow:3px 3px 0 #e62b43}
#trade-overlay:has(.enemy-codex) .enemy-codex-info{transform:skew(3deg)}
#trade-overlay:has(.enemy-codex) .enemy-codex-info small{color:#c5233b;font-weight:1000;letter-spacing:.13em}
#trade-overlay:has(.enemy-codex) .enemy-codex-info strong{font-size:17px;color:#10121a;font-weight:1000}
#trade-overlay:has(.enemy-codex) .enemy-codex-info em{color:#52515a;font-size:10px}
#trade-overlay:has(.enemy-codex) .enemy-codex-arrow{font-size:30px;font-weight:1000;color:#d92640;transform:skew(3deg)}
#trade-overlay:has(.enemy-codex) .enemy-codex-empty{background:repeating-linear-gradient(130deg,#1d202b 0 15px,#181a25 15px 30px);border:1px dashed #696774;border-radius:0;color:#e4dce0}
#trade-overlay:has(.enemy-codex) .enemy-codex-empty span{border-radius:0;background:#e72d44;color:#fff;font-weight:1000;transform:rotate(-8deg)}
@media(max-width:480px){#trade-overlay:has(.enemy-codex) .enemy-codex-hero{padding:17px 12px 21px}#trade-overlay:has(.enemy-codex) .enemy-codex-title{font-size:32px}#trade-overlay:has(.enemy-codex) .enemy-research-list{grid-template-columns:1fr}#trade-overlay:has(.enemy-codex) .enemy-codex-art{width:67px;height:67px}#trade-overlay:has(.enemy-codex) .enemy-research-entry{min-height:83px}}

/* Adventure report: HP/MP on first row, EXP/enemies on second row. */
.report-meter-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch;margin:10px 0 13px}
.report-meter-layout .report-meters{display:contents}
.report-meter-layout .report-meter{min-width:0;width:100%;box-sizing:border-box;margin:0}
.report-meter-layout .report-defeated{min-width:0;align-self:stretch;padding:8px 9px;background:#f0ede7;border:1px solid #c8c0b4;border-radius:6px;overflow-wrap:anywhere;box-sizing:border-box}
.report-meter-layout .report-defeated strong{display:block;font-size:12px}
.report-meter-layout .report-defeated div{font-size:12px;line-height:1.5}
@media(max-width:420px){.report-meter-layout{gap:8px}.report-meter-layout .report-meter{padding:8px 7px}.report-meter-layout .report-meter-head{font-size:11px}}

/* Enemy HP during exploration playback */
.daily-enemy-hp{display:flex;align-items:center;gap:7px;margin:3px 4px 5px;padding:3px 6px;color:#ffe7cf;font-size:10px;min-width:0}
.daily-enemy-hp[hidden]{display:none!important}
.daily-enemy-name{flex:0 1 auto;max-width:38%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.daily-enemy-track{flex:1 1 auto;min-width:35px;height:7px;background:#3c2229;border:1px solid #d29b88;border-radius:8px;overflow:hidden}
.daily-enemy-fill{display:block;height:100%;width:100%;background:#e25b60;transition:width .2s ease}
.daily-enemy-value{flex:0 0 auto;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Keep combat HP in the unused right end of the existing log row. */
.daily-route-row{position:relative}
.daily-route-row .daily-route-events{padding-right:72px!important;box-sizing:border-box}
.daily-route-row .daily-enemy-hp{position:absolute;right:5px;bottom:3px;width:64px;height:18px;margin:0;padding:0 2px;display:flex;align-items:center;gap:4px;z-index:2;box-sizing:border-box;background:rgba(9,15,28,.82);border-radius:3px}
.daily-route-row .daily-enemy-hp[hidden]{display:none!important}
.daily-route-row .daily-enemy-track{min-width:0;flex:1;height:6px}
.daily-route-row .daily-enemy-value{font-size:9px}
@media(max-width:390px){.daily-route-row .daily-route-events{padding-right:64px!important}.daily-route-row .daily-enemy-hp{width:56px}}

/* Exploration debug: live adventurer HP beside the HP bar */
.daily-route-hp-number{font-size:10px;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums;color:#f6d9d9;flex:0 0 auto;margin-left:3px}


/* Dungeon operation dashboard — Persona-inspired angular red/black interface */
.dungeon-dashboard{display:grid;gap:15px;margin:4px 0 24px;color:#fff}
.dungeon-dashboard-heading{position:relative;overflow:hidden;background:#e42b38;padding:18px 20px 17px;transform:skewY(-1deg);box-shadow:6px 6px 0 #111;display:flex;flex-direction:column;gap:3px}
.dungeon-dashboard-heading>*{transform:skewY(1deg)}
.dungeon-eyebrow{font-size:10px;font-weight:900;letter-spacing:.23em;color:#fff}
.dungeon-dashboard-heading strong{font-size:clamp(19px,5vw,27px);font-weight:1000;letter-spacing:.035em;text-shadow:3px 3px 0 #171717}
.dungeon-dashboard-heading>span:last-child{font-size:11px;font-weight:700}
.dungeon-operation{position:relative;overflow:hidden;background:linear-gradient(125deg,#24242a 0%,#111116 72%);border:2px solid #55545a;box-shadow:5px 5px 0 #070707;padding:13px 13px 12px}
.dungeon-operation:before{content:"";position:absolute;right:-27px;top:-55px;width:105px;height:155px;transform:rotate(30deg);background:#ffffff0b;pointer-events:none}
.dungeon-operation.is-active{border-color:#fa3647;box-shadow:5px 5px 0 #a10d23}
.dungeon-operation-top{display:flex;gap:10px;align-items:center;position:relative}
.dungeon-operation-index{background:#f03646;color:#fff;font-size:22px;font-weight:1000;min-width:44px;text-align:center;padding:7px 3px;transform:skew(-9deg);text-shadow:2px 2px #77131e}
.dungeon-operation-name{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px}
.dungeon-operation-kicker{font-size:9px;letter-spacing:.15em;color:#ff6572;font-weight:900}
.dungeon-operation-name strong{font-size:16px;line-height:1.2;color:#fff}
.dungeon-operation-name small{color:#bcbcc4;font-size:10px}
.dungeon-operation-status{background:#e62e40;color:#fff;font-weight:900;font-size:10px;padding:5px 7px;white-space:nowrap;transform:skew(-7deg)}
.dungeon-operation.is-training .dungeon-operation-status{background:#52525c}
.dungeon-operation-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0 11px}
.dungeon-operation-stats>div{background:#ffffff0b;border-left:3px solid #f23749;padding:7px 10px;display:flex;justify-content:space-between;align-items:baseline;gap:4px}
.dungeon-operation-stats span{font-size:11px;font-weight:900;color:#fff}
.dungeon-operation-stats span small{display:block;font-size:8px;color:#aaaab4;letter-spacing:.1em}
.dungeon-operation-stats strong{font-size:24px;color:#fff;white-space:nowrap;line-height:1}
.dungeon-operation-stats em{font-style:normal;font-size:11px;color:#aaaab4}
.dungeon-zone-labels{display:flex;justify-content:space-between;font-size:9px;font-weight:900;letter-spacing:.08em;color:#f0b7bd;margin-bottom:5px}
.dungeon-zone-track{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px}
.dungeon-zone{background:#3d3d45;border:1px solid #64646e;min-width:0;height:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transform:skew(-5deg)}
.dungeon-zone b{font-size:10px;color:#bbbcc4;font-weight:900}
.dungeon-zone i{height:3px;width:55%;background:#777782}
.dungeon-zone.is-cleared{background:#e62d42;border-color:#ff6b78}
.dungeon-zone.is-cleared b{color:#fff}
.dungeon-zone.is-cleared i{background:#fff}
.dungeon-zone.is-partial{border-color:#f5a33e}
.dungeon-zone.is-partial i{background:#f5a33e}
.dungeon-operation-foot{display:flex;align-items:center;gap:6px;margin-top:11px;font-size:10px;font-weight:700;color:#c7c7cf}
.dungeon-foot-dot{height:7px;width:7px;background:#f33748;transform:rotate(45deg);flex:none}
.dungeon-operation-count{margin-left:auto;white-space:nowrap;color:#fff}
@media(max-width:390px){.dungeon-operation{padding:10px 8px}.dungeon-operation-index{min-width:36px;font-size:18px}.dungeon-operation-name strong{font-size:14px}.dungeon-operation-status{font-size:9px;padding:4px}.dungeon-zone{height:32px}.dungeon-zone b{font-size:9px}.dungeon-operation-stats strong{font-size:20px}}

/* Daily report — dungeon sweep result */
.report-sweep{margin:16px 0;padding:13px;background:#17171d;color:#f8f6f0;border:2px solid #ed344b;box-shadow:6px 6px 0 #09090d;position:relative;overflow:hidden}
.report-sweep:before{content:"";position:absolute;right:-55px;top:-50px;width:180px;height:130px;background:rgba(255,255,255,.035);transform:skew(-32deg);pointer-events:none}
.report-sweep-heading{display:flex;align-items:center;gap:11px;margin-bottom:12px;position:relative}
.report-sweep-emblem{display:grid;place-items:center;background:#e82d48;color:white;width:40px;height:40px;transform:skew(-8deg);font-size:23px;flex:none}
.report-sweep-heading>div{display:flex;flex-direction:column;gap:2px}
.report-sweep-eyebrow{color:#ff6a7d;font-size:10px;letter-spacing:.15em;font-weight:900}
.report-sweep-heading strong{font-size:20px;font-weight:950;letter-spacing:.03em}
.report-sweep-card{background:#25252d;border-left:4px solid #e82d48;padding:12px;margin-top:10px;position:relative}
.report-sweep-top{display:flex;justify-content:space-between;align-items:start;gap:10px}
.report-sweep-name{display:flex;flex-direction:column;min-width:0;gap:3px}
.report-sweep-name small,.report-sweep-kills small{color:#f46b7b;font-size:9px;font-weight:900;letter-spacing:.1em}
.report-sweep-name strong{font-size:16px;line-height:1.35;overflow-wrap:anywhere}
.report-sweep-kills{display:flex;flex-direction:column;align-items:flex-end;flex:none}
.report-sweep-kills strong{font-size:24px;font-weight:950;line-height:1.2;color:#fff}
.report-sweep-kills em{font-size:11px;font-style:normal;margin-left:3px}
.report-sweep-progress{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:8px;font-size:12px;font-weight:900}
.report-sweep-progress>span small{color:#9999a5;font-size:9px;margin-left:5px;letter-spacing:.07em}
.report-sweep-value{display:flex;align-items:center;gap:8px}
.report-sweep-value strong{font-size:27px;line-height:1;color:#fff}
.report-sweep-value strong small{font-size:12px;color:#a9a9b3}
.report-sweep-before{font-size:15px;color:#9999a5;text-decoration:line-through}
.report-sweep-arrow{color:#ff546b;font-size:17px}
.report-sweep-track{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;margin-top:8px}
.report-sweep-track span{height:10px;background:#4b4b57;transform:skew(-13deg)}
.report-sweep-track span.complete{background:#ef3550;box-shadow:inset 0 -2px 0 #ad1933}
.report-sweep-up{display:flex;justify-content:space-between;align-items:center;margin-top:10px;background:#e82d48;color:#fff;padding:6px 9px;font-size:11px;font-weight:950;letter-spacing:.08em}
.report-sweep-up b{font-size:13px}
.report-sweep-note{margin-top:9px;color:#b6b6bf;font-size:10px;font-weight:700}
@media(max-width:390px){.report-sweep{padding:10px}.report-sweep-card{padding:10px}.report-sweep-name strong{font-size:14px}.report-sweep-heading strong{font-size:18px}}

.report-sweep-track span.partial{background:#34343d;border:1px solid #e9a148;box-shadow:inset 0 -3px 0 #e9a148}

.dungeon-zone{height:48px;gap:2px}.dungeon-zone small{font-size:9px;font-weight:850;color:#bfc0c8;white-space:nowrap}.dungeon-zone.is-partial small{color:#ffc477}.dungeon-zone.is-cleared small{color:#fff}.dungeon-zone i{margin-top:2px}@media(max-width:390px){.dungeon-zone{height:43px}.dungeon-zone small{font-size:8px}}


/* Scenario finale: compact, high-contrast Persona-inspired layout */
#ending-overlay{padding:16px 12px;overflow-y:auto;align-items:center;background:rgba(5,7,15,.92);backdrop-filter:blur(5px)}
#ending-overlay .ending-finale{position:relative;width:min(100%,460px);max-height:min(92dvh,900px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:0;text-align:left;color:#f8f4e9;background:#11131d;border:2px solid #f44356;box-shadow:9px 9px 0 #8b1829,0 20px 65px #000c}
#ending-overlay .ending-finale:before{content:"";position:absolute;top:35px;right:-68px;width:190px;height:190px;background:#e82c45;transform:rotate(29deg);clip-path:polygon(0 0,100% 0,100% 100%,40% 100%);opacity:.95;pointer-events:none}
#ending-overlay .finale-top{position:relative;z-index:1;display:flex;justify-content:space-between;gap:8px;padding:15px 18px 9px;font-size:9px;font-weight:1000;letter-spacing:.14em;color:#ff5368;border-bottom:1px solid #4b2534}
#ending-overlay .finale-hero{position:relative;z-index:1;padding:23px 22px 18px;background:linear-gradient(145deg,#171823 0%,#151722 68%,#231523 100%)}
#ending-overlay .ending-kicker{display:inline-block;padding:6px 9px;background:#e9314b;color:#fff;font-size:10px;letter-spacing:.09em;font-weight:1000;transform:skewX(-8deg)}
#ending-overlay .ending-crown{font-size:69px;line-height:1;margin:17px 0 7px;color:#f9c75b;text-shadow:4px 4px 0 #a83c35;transform:rotate(-10deg);width:max-content}
#ending-overlay .finale-chapter{font-size:12px;letter-spacing:.14em;font-weight:900;color:#f6c55f;margin:10px 0}
#ending-overlay .ending-finale h2{margin:0;font-size:clamp(35px,9vw,51px);line-height:1.12;font-weight:1000;letter-spacing:-.06em;color:#fff;text-shadow:3px 3px 0 #e8324b}
#ending-overlay .ending-finale h2 em{font-style:normal;color:#f9c65d;font-size:1.22em}
#ending-overlay .finale-rule{display:flex;align-items:center;gap:12px;margin:22px 0 0;font-size:11px;letter-spacing:.32em;font-weight:1000;color:#f6c55f}
#ending-overlay .finale-rule:before,#ending-overlay .finale-rule:after{content:"";height:2px;background:#e8334b;flex:1}
#ending-overlay .finale-body{padding:14px 20px 7px;background:#f4efe5;color:#24202a}
#ending-overlay .finale-body p{margin:9px 0 15px;line-height:1.8;font-size:13px;font-weight:700;text-align:left}
#ending-overlay .ending-record{background:#20202b;color:#ffdc8b;padding:14px 12px;border-left:5px solid #e9364e;font-size:clamp(13px,3.6vw,16px);line-height:1.5;text-align:center;font-weight:1000}
#ending-overlay .finale-body .ending-note{margin:13px 0 7px;text-align:center;font-size:11px!important;color:#665763;font-weight:700}
#ending-overlay .finale-actions{display:grid;gap:10px;padding:18px 20px 17px;background:#f4efe5}
#ending-overlay .ending-finale .finale-actions button{width:100%;margin:0;min-height:54px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 17px;border:0;border-radius:0;text-align:left;font-size:15px;line-height:1.35;font-weight:1000;cursor:pointer}
#ending-overlay .ending-finale .finale-primary{background:#e52c48;color:#fff;box-shadow:5px 5px 0 #191b26}
#ending-overlay .ending-finale .finale-secondary{background:#20222c;color:#fff;box-shadow:5px 5px 0 #c5b7a7}
#ending-overlay .finale-actions button span{font-size:23px;line-height:1;flex-shrink:0}
#ending-overlay .finale-footer{padding:10px 18px;text-align:center;color:#fa6175;font-size:9px;font-weight:1000;letter-spacing:.27em}
@media(max-width:390px){#ending-overlay .finale-hero{padding:16px 18px 14px}#ending-overlay .ending-crown{font-size:52px;margin:10px 0 5px}#ending-overlay .ending-finale h2{font-size:35px}#ending-overlay .finale-body{padding:10px 17px 5px}#ending-overlay .finale-body p{font-size:12px;margin:7px 0 10px}#ending-overlay .finale-actions{padding:12px 17px 16px}}

/* Conceal chapters not yet revealed in the dungeon progress dashboard */
.dungeon-operation.is-unknown{background:linear-gradient(125deg,#151720,#262632);border-color:#545463;opacity:.86}.dungeon-operation.is-unknown .dungeon-operation-name strong{color:#f3f0f0;letter-spacing:.08em}.dungeon-operation.is-unknown .dungeon-operation-index{color:#b2aeb9}.dungeon-unknown-note{margin:12px 14px 15px;padding:13px;border:1px dashed #666472;color:#b7b4c0;text-align:center;font-size:12px;letter-spacing:.05em;font-weight:800}

/* Enemy portrait in the real-time exploration playback */
.daily-enemy-visual[hidden]{display:none!important}.daily-enemy-visual{display:flex;align-items:center;gap:9px;min-height:64px;margin:5px 0 3px;padding:5px 8px;background:linear-gradient(105deg,#321a28,#111827);border-left:3px solid #f0445c;box-shadow:inset 0 0 0 1px #ffffff20;animation:enemy-appear .25s ease-out}.daily-enemy-picture{display:flex;align-items:center;justify-content:center;width:58px;height:58px;flex:0 0 58px;overflow:hidden;background:#080c15;border:1px solid #d64c60;font-size:29px}.daily-enemy-picture img{width:100%;height:100%;object-fit:contain}.daily-enemy-name{color:#fff3e6;font-size:13px;font-weight:900;line-height:1.3;overflow-wrap:anywhere}@keyframes enemy-appear{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}

/* Route enemy marker: tiny circular crop immediately to the right of the adventurer */
.daily-route-track .daily-enemy-visual{position:absolute!important;top:50%;display:block!important;width:27px!important;height:27px!important;min-height:0!important;margin:0!important;padding:0!important;transform:translate(11px,-50%);z-index:8;background:none!important;border:0!important;box-shadow:0 1px 5px #000b!important;pointer-events:none;transition:left .45s linear}.daily-route-track .daily-enemy-visual[hidden]{display:none!important}.daily-route-track .daily-enemy-picture{display:block;width:27px!important;height:27px!important;min-width:0!important;min-height:0!important;overflow:hidden;border:2px solid #ff5269!important;border-radius:50%!important;background:#171621!important;box-sizing:border-box;font-size:16px!important;line-height:23px;text-align:center}.daily-route-track .daily-enemy-picture img{display:block;width:100%;height:100%;object-fit:cover!important;border-radius:50%}

/* Tiny hit reaction on the existing route markers. translate preserves their positioning transforms. */
.daily-route-track .combat-hit-shake{animation:combat-hit-jitter .26s ease-out 1!important;}
@keyframes combat-hit-jitter{0%,100%{translate:0 0;filter:none}18%{translate:-3px 0;filter:brightness(1.6)}36%{translate:3px -1px}54%{translate:-2px 1px}72%{translate:2px 0}88%{translate:-1px 0}}
@media(prefers-reduced-motion:reduce){.daily-route-track .combat-hit-shake{animation:none!important}}

/* Stronger hit feedback for tiny adventurer marker: horizontal recoil and red flash. */
html body #hero-progress-strip .daily-route-walker.combat-hit-shake{animation:hero-hit-recoil .42s steps(1,end) 1!important;filter:drop-shadow(0 0 5px #ff334d)!important}
@keyframes hero-hit-recoil{0%,100%{translate:0 0;scale:1;opacity:1}12%{translate:-7px -2px;scale:1.4;opacity:.65}25%{translate:6px 2px;scale:1.2;opacity:1}38%{translate:-6px 0;scale:1.4;opacity:.65}52%{translate:5px -2px;scale:1.2;opacity:1}68%{translate:-3px 1px;scale:1.3;opacity:.8}84%{translate:2px 0;scale:1.1;opacity:1}}

/* Portrait-based adventurer position, same circular scale as enemy marker. */
html body #hero-progress-strip .daily-route-walker.daily-route-hero-portrait{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;display:flex!important;align-items:center;justify-content:center;overflow:visible!important;border-radius:50%!important;border:2px solid #f6db92!important;background:#131827!important;box-shadow:0 1px 6px #000b!important;font-size:0!important;line-height:0!important;box-sizing:border-box;z-index:7!important}
html body #hero-progress-strip .daily-route-hero-picture{display:block!important;width:100%!important;height:100%!important;border-radius:50%!important;overflow:hidden!important;background-position:center;background-size:cover}
html body #hero-progress-strip .daily-route-hero-picture img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
html body #hero-progress-strip .daily-route-walker.daily-route-hero-portrait.combat-hit-shake{animation:hero-portrait-hit .46s ease-out 1!important}
@keyframes hero-portrait-hit{0%,100%{translate:0 0;filter:none}15%{translate:-6px -2px;filter:brightness(2) drop-shadow(0 0 5px #ff344a)}32%{translate:6px 1px;filter:brightness(1.5)}48%{translate:-5px 0;filter:brightness(2)}65%{translate:4px -1px}82%{translate:-2px 0}}
@media(prefers-reduced-motion:reduce){html body #hero-progress-strip .daily-route-walker.daily-route-hero-portrait.combat-hit-shake{animation:none!important}}

/* Readable impact on tiny portraits: a bright expanding ring and floating damage number. */
html body #hero-progress-strip .daily-route-track{overflow:visible!important}
html body #hero-progress-strip .daily-route-walker.daily-route-hero-portrait.combat-hit-impact{z-index:30!important;box-shadow:0 0 0 3px #fff,0 0 13px 7px #ff334d!important;animation:hero-portrait-impact .65s ease-out 1!important}
html body #hero-progress-strip .daily-route-walker.daily-route-hero-portrait.combat-hit-impact::after,.daily-route-track .daily-enemy-visual.combat-hit-impact::after{content:'';position:absolute;inset:-10px;border:3px solid #ff334d;border-radius:50%;pointer-events:none;animation:combat-ring-burst .7s ease-out forwards;z-index:2}
html body #hero-progress-strip .daily-route-track .combat-damage-pop{position:absolute!important;display:block!important;left:50%;bottom:100%;width:max-content;min-width:28px;transform:translateX(-50%);color:#fff!important;background:#bd1733!important;border:2px solid #ffe1b1!important;border-radius:5px!important;padding:2px 5px!important;font:900 15px/1.1 system-ui,sans-serif!important;letter-spacing:0!important;text-align:center;white-space:nowrap;box-shadow:0 2px 7px #000c;z-index:50!important;pointer-events:none;animation:combat-damage-rise .95s ease-out forwards!important}
@keyframes hero-portrait-impact{0%,100%{translate:0 0;filter:brightness(1)}12%{translate:-8px -2px;filter:brightness(2.8)}26%{translate:8px 2px;filter:brightness(1.5)}40%{translate:-7px 0;filter:brightness(2.6)}56%{translate:6px -1px}72%{translate:-4px 1px}86%{translate:2px 0}}
@keyframes combat-ring-burst{0%{opacity:1;scale:.55}70%{opacity:.8;scale:1.4}100%{opacity:0;scale:1.7}}
@keyframes combat-damage-rise{0%{opacity:0;translate:0 7px;scale:.7}15%,65%{opacity:1;scale:1.15}100%{opacity:0;translate:0 -22px;scale:1}}
@media(prefers-reduced-motion:reduce){html body #hero-progress-strip .daily-route-track .combat-damage-pop{animation:none!important;opacity:1!important}}

/* Enemy file combat statistics */
.enemy-combat-stats{margin:12px 0;padding:12px;background:linear-gradient(135deg,#1c2030,#111521);border:1px solid #a74255;border-left:4px solid #e74860;border-radius:5px;color:#f8efe5}.enemy-combat-stats .enemy-file-label{color:#ffb8c4;font-weight:900;margin-bottom:9px}.enemy-combat-stats .enemy-file-label small{font-size:10px;opacity:.7}.enemy-combat-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.enemy-combat-stats-grid>div{display:flex;flex-direction:column;gap:3px;background:#ffffff0b;border:1px solid #ffffff20;padding:9px;border-radius:3px}.enemy-combat-stats-grid span{font-size:11px;color:#d4d6e0}.enemy-combat-stats-grid strong{font-size:23px;line-height:1.1;color:#fff3e6;font-variant-numeric:tabular-nums}.enemy-combat-stats p{font-size:11px;line-height:1.6;color:#ddd1d2;margin:9px 0 0}

/* Compact combat typography: understated floating numbers without a red badge. */
html body #hero-progress-strip .daily-route-track .combat-damage-pop{min-width:0!important;padding:0 1px!important;border:0!important;border-radius:0!important;background:transparent!important;color:#ffe1d7!important;font:800 11px/1.1 system-ui,sans-serif!important;letter-spacing:-.35px!important;text-shadow:0 1px 2px #180d17,0 0 4px #b62940!important;box-shadow:none!important;bottom:calc(100% + 2px)!important;animation:combat-damage-float-subtle .75s ease-out forwards!important}
@keyframes combat-damage-float-subtle{0%{opacity:0;translate:0 3px;scale:.92}20%,65%{opacity:1;scale:1}100%{opacity:0;translate:0 -10px;scale:1}}

/* Bosses are visibly larger than ordinary enemies in the expedition animation. */
html body #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-boss-visual{width:48px!important;height:48px!important;transform:translate(11px,-50%);z-index:12!important;filter:drop-shadow(0 2px 5px #000a)}
html body #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-boss-visual .daily-enemy-picture{width:48px!important;height:48px!important;border:3px solid #ffb44f!important;line-height:42px!important;font-size:26px!important;box-shadow:0 0 0 2px #531d2a,0 0 11px #ff8c4255!important}
html body #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-boss-visual .daily-enemy-picture img{width:100%!important;height:100%!important;object-fit:cover!important}

/* Merchant demand: compact adventurer portrait and name */
.merchant-demand-hero{font-size:12px;font-weight:600;white-space:nowrap}
.merchant-demand-portrait{display:inline-block;width:30px;height:30px;flex:0 0 30px;border-radius:50%;overflow:hidden;border:1px solid #d6b77b;background:#302c3b}
.merchant-demand-portrait img{width:100%;height:100%;object-fit:cover}
.wholesale-demand{margin:5px 0 8px;line-height:1.5}

/* Each sweep segment changes continuously from yellow (1 defeat) to red (15 defeats). */
.dungeon-zone.is-partial,.dungeon-zone.is-cleared{background:var(--sweep-color)!important;border-color:var(--sweep-color)!important}
.dungeon-zone.is-partial i,.dungeon-zone.is-cleared i{background:var(--sweep-color)!important;filter:brightness(.75)}
.dungeon-zone.is-partial b,.dungeon-zone.is-cleared b{color:#241a19!important}
.report-sweep-track span.partial,.report-sweep-track span.complete{background:var(--sweep-color)!important;border-color:var(--sweep-color)!important}

/* High contrast sweep labels on yellow, orange and red cells. */
.dungeon-zone.is-partial b,.dungeon-zone.is-cleared b,.dungeon-zone.is-partial small,.dungeon-zone.is-cleared small{color:#171015!important;text-shadow:0 1px 0 #ffffff55;font-weight:950!important;opacity:1!important}
.dungeon-zone.is-partial i,.dungeon-zone.is-cleared i{background:#27181b!important;filter:none!important;opacity:.85}

/* Weapon-specific strikes, confined to the enemy portrait. */
.weapon-attack-effect{position:absolute;inset:0;z-index:9;pointer-events:none;display:grid;place-items:center;overflow:visible;animation:weapon-strike-fade .62s ease-out both}
.weapon-attack-effect::before{display:block;position:absolute;font-size:clamp(22px,4vw,42px);line-height:1;filter:drop-shadow(0 0 5px #fff);animation:weapon-strike-motion .52s ease-out both}
.weapon-attack-sword::before{content:'╱';font-weight:900;color:#d8f5ff;font-size:58px;text-shadow:3px 0 #5bd7ff,-3px 0 #fff;transform:rotate(24deg)}
.weapon-attack-axe::before{content:'✴';color:#ffb342;font-size:52px;text-shadow:0 0 9px #ff5027;animation-name:weapon-axe-motion}
.weapon-attack-bow::before{content:'➶';color:#f3e4a6;font-size:52px;text-shadow:0 0 8px #ffe06b;animation-name:weapon-arrow-motion}
.weapon-attack-spear::before{content:'⟋';color:#a9f0ff;font-size:68px;text-shadow:3px 0 #fff;animation-name:weapon-spear-motion}
.weapon-attack-staff::before{content:'✦';color:#c69bff;font-size:48px;text-shadow:0 0 13px #975dff;animation-name:weapon-magic-motion}
.weapon-attack-blunt::before{content:'💥';font-size:37px;animation-name:weapon-axe-motion}
@keyframes weapon-strike-fade{0%{opacity:0}15%{opacity:1}65%{opacity:1}100%{opacity:0}}
@keyframes weapon-strike-motion{0%{transform:translate(-23px,-26px) rotate(24deg) scale(.65)}55%{transform:translate(0,0) rotate(24deg) scale(1.2)}100%{transform:translate(12px,14px) rotate(24deg) scale(.9)}}
@keyframes weapon-axe-motion{0%{transform:translate(-24px,-24px) rotate(-70deg) scale(.4)}55%{transform:translate(0,0) rotate(25deg) scale(1.35)}100%{transform:rotate(50deg) scale(.9)}}
@keyframes weapon-arrow-motion{0%{transform:translate(-65px,0) scale(.55);opacity:0}35%{opacity:1}65%{transform:translate(0,0) scale(1.2)}100%{transform:translate(18px,0) scale(.8);opacity:0}}
@keyframes weapon-spear-motion{0%{transform:translate(-35px,28px) scale(.65)}60%{transform:translate(0,0) scale(1.35)}100%{transform:translate(12px,-12px) scale(.85)}}
@keyframes weapon-magic-motion{0%{transform:scale(.2) rotate(0);opacity:0}50%{transform:scale(1.5) rotate(90deg);opacity:1}100%{transform:scale(.8) rotate(180deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.weapon-attack-effect,.weapon-attack-effect::before{animation:none;opacity:1}}

/* Vector weapon strokes: geometry, direction and timing are distinct per weapon. */
.weapon-attack-effect{width:66px;height:66px;inset:50% auto auto 50%;margin:-33px 0 0 -33px;display:block;overflow:visible;animation:weapon-svg-appear .72s ease-out both;transform-origin:center;filter:drop-shadow(0 0 5px #ffffff77)}
.weapon-attack-effect::before{content:none!important;display:none!important}
.weapon-strike-svg{display:block;width:100%;height:100%;overflow:visible}
.weapon-strike-svg path,.weapon-strike-svg circle{fill:none;stroke-linecap:round;stroke-linejoin:round}
.strike-trail{stroke:#5fd8ff;stroke-width:13;opacity:.45;stroke-dasharray:180;stroke-dashoffset:180;animation:weapon-stroke .34s ease-out forwards}
.strike-core{stroke:#f6fdff;stroke-width:5;stroke-dasharray:190;stroke-dashoffset:190;animation:weapon-stroke .29s ease-out forwards}
.strike-spark{fill:#fff5c2!important;stroke:#ffb454;stroke-width:2;transform-origin:96px 61px;animation:weapon-spark .4s .17s both}
.weapon-attack-sword .weapon-strike-svg{transform:rotate(-12deg)}
.weapon-attack-axe .strike-trail{stroke:#ff6939;stroke-width:19}
.weapon-attack-axe .strike-core{stroke:#ffd28c;stroke-width:8;animation-duration:.45s}
.weapon-attack-axe .strike-spark{transform-origin:98px 92px;animation-delay:.33s}
.weapon-attack-bow .strike-arrow{stroke:#fff0b4;stroke-width:4;stroke-dasharray:140;stroke-dashoffset:140;animation:weapon-arrow-flight .4s ease-in forwards}
.weapon-attack-bow .strike-trail{stroke:#ffd26a;stroke-width:3;animation:weapon-stroke .35s ease-in forwards}
.weapon-attack-bow .strike-spark{transform-origin:100px 61px;animation-delay:.34s}
.weapon-attack-spear .strike-trail{stroke:#56c9ec;stroke-width:9;animation-duration:.25s}
.weapon-attack-spear .strike-arrow{fill:#e3f9ff!important;stroke:#71d8ff;stroke-width:3;stroke-dasharray:100;stroke-dashoffset:100;animation:weapon-stroke .26s ease-in forwards}
.weapon-attack-staff .strike-ring{stroke:#bd8aff;stroke-width:4;transform-origin:60px 60px;animation:weapon-magic-ring .55s ease-out both}
.weapon-attack-staff .strike-ring-small{stroke:#80f1ff;animation-delay:.09s}
.weapon-attack-staff .strike-core{stroke:#ead6ff;stroke-width:3;stroke-dasharray:300;stroke-dashoffset:300;animation:weapon-stroke .48s ease-out forwards}
.weapon-attack-staff .strike-magic{fill:#fff!important;stroke:#ac7fff;stroke-width:4;transform-origin:60px 60px;animation:weapon-magic-ring .45s both}
.weapon-attack-blunt .strike-core{fill:#ffdb8c55!important;stroke:#ffb85e;stroke-width:7;animation:weapon-blunt-impact .35s both}
.weapon-attack-blunt .strike-ring{stroke:#ffdc9a;stroke-width:6;transform-origin:61px 63px;animation:weapon-magic-ring .4s .1s both}
@keyframes weapon-svg-appear{0%{opacity:0}12%{opacity:1}72%{opacity:1}100%{opacity:0}}
@keyframes weapon-stroke{to{stroke-dashoffset:0}}
@keyframes weapon-arrow-flight{0%{stroke-dashoffset:140;transform:translateX(-35px)}100%{stroke-dashoffset:0;transform:translateX(0)}}
@keyframes weapon-spark{0%{opacity:0;transform:scale(.15) rotate(-30deg)}45%{opacity:1;transform:scale(1.2)}100%{opacity:0;transform:scale(.65) rotate(20deg)}}
@keyframes weapon-magic-ring{0%{opacity:0;transform:scale(.25) rotate(-30deg)}55%{opacity:1}100%{opacity:0;transform:scale(1.4) rotate(35deg)}}
@keyframes weapon-blunt-impact{0%{opacity:0;transform:scale(.3)}55%{opacity:1;transform:scale(1.2)}100%{opacity:0;transform:scale(.85)}}
@media(prefers-reduced-motion:reduce){.weapon-attack-effect,.weapon-strike-svg *{animation:none!important;opacity:1!important;stroke-dashoffset:0!important}}

.weapon-effect-image{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;image-rendering:auto}

/* Adventurer interest in blacksmith-crafted equipment */
.craft-recipe .forge-demand{display:block;flex-basis:100%;width:100%;margin:6px 0 8px;font-size:.85em;line-height:1.5}
.craft-recipe .forge-demand .merchant-demand-hero{white-space:nowrap}


/* Persona-inspired blacksmith workshop, scoped to forge only */
.forge-overlay .trade-box{background:#11131d;border:3px solid #f5f0e8;box-shadow:9px 9px 0 #e51e47,0 20px 65px #000b;overflow-x:hidden}
.forge-overlay #trade-content{background:linear-gradient(160deg,#151722 0%,#20232d 58%,#10121b 100%);color:#f7f3ed}
.forge-screen{padding:2px 3px 16px}
.forge-hero{position:relative;background:#e72349;color:#fff;padding:20px 17px 16px;clip-path:polygon(0 0,100% 0,97% 100%,0 94%);margin:-2px -3px 19px;box-shadow:0 8px 0 #0b0d13}
.forge-eyebrow{font-size:10px;letter-spacing:.23em;font-weight:900;color:#ffdeca}
.forge-hero-title{font-size:clamp(27px,7vw,39px);font-weight:1000;letter-spacing:.08em;line-height:1.25;text-shadow:3px 3px 0 #131522;transform:skew(-5deg)}
.forge-hero-title span{font-size:12px;letter-spacing:.2em;margin-left:12px;vertical-align:middle}
.forge-hero p{margin:5px 0 0;font-size:12px;color:#fff1ec}
.forge-screen .merchant-wallet{background:#f8f3e9;color:#181925;padding:10px 12px;transform:skew(-2deg);border-left:6px solid #e72349;font-weight:800}
.forge-section-title{display:flex;align-items:center;gap:9px;color:#fff;font-size:17px;margin:23px 0 12px;padding:8px 5px;border-bottom:3px solid #e72349;letter-spacing:.03em}
.forge-section-title span{display:inline-grid;place-items:center;background:#e72349;color:#fff;font-size:14px;width:32px;height:32px;transform:skew(-10deg);font-weight:1000}
.forge-screen .craft-materials{background:#090b12;border:1px solid #565968;padding:12px;display:flex;flex-wrap:wrap;gap:8px}
.forge-screen .craft-materials span{background:#343744;color:#fff;border-left:3px solid #e72349;padding:5px 8px;font-size:12px}
.forge-screen .craft-recipe{position:relative;display:flex;flex-wrap:wrap;gap:9px;background:#f5f0e8;color:#191b26;padding:13px 12px;margin:12px 2px 17px;border:0;box-shadow:6px 6px 0 #e72349;transform:skew(-1deg)}
.forge-recipe-head{display:flex;align-items:center;gap:10px;width:100%;font-size:16px}
.forge-recipe-icon{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;background:#222431;border:2px solid #e72349}
.forge-screen .craft-recipe strong{width:auto;flex:1}
.forge-screen .craft-recipe small{width:100%;flex-basis:100%;font-size:12px;color:#515361}
.forge-screen .craft-recipe .forge-demand{background:#e6e0da;border-left:4px solid #e72349;padding:8px;margin:0;width:100%;font-size:12px}
.forge-screen .craft-recipe .merchant-demand-yes,.forge-screen .craft-recipe .merchant-demand-none{color:#252735}
.forge-screen .craft-recipe button{margin-left:auto;background:#e72349;color:white;border:2px solid #151622;border-radius:0;padding:8px 19px;font-weight:900;box-shadow:3px 3px 0 #171922}
.forge-screen .craft-recipe button:disabled{background:#888992;color:#e5e5e5;box-shadow:none}
.forge-screen .line{background:#f5f0e8;color:#171922;border-left:5px solid #e72349;margin:8px 0;padding:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.forge-screen .line button{margin-left:auto}
.forge-screen>p{color:#d5d5df;font-size:12px}
.forge-footnote{padding:9px 4px}
@media(max-width:480px){.forge-overlay .trade-box{width:calc(100% - 4px)}.forge-screen .craft-recipe{margin-right:7px}.forge-hero{padding:17px 14px}.forge-hero-title{font-size:30px}}


/* Two-person party: show both adventurers as one close-knit travelling unit. */
html body #hero-progress-strip .daily-route-paired .daily-route-walker{width:62px!important;height:42px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:translateX(-50%)!important}
html body #hero-progress-strip .daily-pair-portraits{position:relative;display:flex;align-items:center;justify-content:center;width:62px;height:42px;isolation:isolate}
html body #hero-progress-strip .daily-pair-portraits>.daily-route-hero-picture{position:relative!important;flex:0 0 38px!important;width:38px!important;height:38px!important;border:2px solid #fff!important;border-radius:50%!important;overflow:hidden;box-shadow:0 2px 8px #000a;background-color:#182036}
html body #hero-progress-strip .daily-pair-portraits>.daily-route-hero-picture+ .daily-route-hero-picture{margin-left:-14px;z-index:2;border-color:#ffda6a!important}
html body #hero-progress-strip .daily-pair-label{display:inline-block;margin-left:5px;color:#ffdc7d;font-size:.85em;font-weight:800}


/* Party-only expedition layout: two portraits vertically aligned, two progress tracks close together. */
html body #hero-progress-strip .daily-party-group{position:relative;display:flex;flex-direction:column;gap:0;margin:5px 0 7px;padding:5px 7px 5px 42px;background:linear-gradient(90deg,rgba(43,53,78,.96),rgba(13,19,35,.72));border:1px solid #d3b974;border-left:3px solid #f4d37c;border-radius:8px}
html body #hero-progress-strip .daily-party-group:before{content:'PAIR';position:absolute;left:5px;top:5px;font-size:9px;letter-spacing:.06em;font-weight:900;color:#ffdf8a;writing-mode:vertical-rl}
html body #hero-progress-strip .daily-party-group .daily-party-member{position:relative;min-height:46px!important;margin:0!important;padding:3px 0 2px!important;border:0!important}
html body #hero-progress-strip .daily-party-group .daily-party-member+.daily-party-member{border-top:1px solid #ffffff29!important;padding-top:5px!important}
html body #hero-progress-strip .daily-party-group .daily-route-head{margin-left:0;min-height:17px;gap:4px}
html body #hero-progress-strip .daily-party-group .daily-route-name{min-width:0;max-width:36%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body #hero-progress-strip .daily-party-group .daily-pair-label{display:none}
html body #hero-progress-strip .daily-party-group .daily-route-track{height:13px!important;min-height:13px!important;margin:2px 0 2px 5px!important}
html body #hero-progress-strip .daily-party-group .daily-route-walker.daily-route-hero-portrait{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;border:2px solid #ffe5a1!important;border-radius:50%!important;background:#151b2c!important;box-shadow:0 0 0 2px #121625,0 2px 7px #0009!important;transform:translateX(-50%)!important}
html body #hero-progress-strip .daily-party-group .daily-route-events{min-height:14px;line-height:14px;margin-top:0!important}
html body #hero-progress-strip .daily-party-group .daily-route-hp{flex-shrink:0}
@media(max-width:480px){html body #hero-progress-strip .daily-party-group{padding-left:24px;padding-right:3px}html body #hero-progress-strip .daily-party-group:before{left:3px;font-size:8px}html body #hero-progress-strip .daily-party-group .daily-route-place{max-width:28%}}


/* Party HUD v2: a single squad card, not two condensed solo cards. */
html body #hero-progress-strip .daily-party-group{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;position:relative!important;margin:7px 0!important;padding:0 9px 6px!important;background:linear-gradient(135deg,#26354b 0%,#141b2c 55%,#15121d 100%)!important;border:1px solid #e0c07a!important;border-left:4px solid #e72d4b!important;border-radius:5px!important;box-shadow:0 3px 13px #0008!important;overflow:visible!important}
html body #hero-progress-strip .daily-party-group:before{content:none!important}
html body #hero-progress-strip .daily-party-heading{display:flex;align-items:center;gap:7px;min-height:27px;padding:3px 2px 4px;border-bottom:1px solid #d6b97870;color:#fff}
html body #hero-progress-strip .daily-party-heading .daily-party-emblem{font-size:9px;letter-spacing:.08em;color:#141a29;background:#f4d780;padding:3px 5px;font-weight:1000;transform:skew(-9deg)}
html body #hero-progress-strip .daily-party-heading strong{font-size:12px;letter-spacing:.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body #hero-progress-strip .daily-party-join{color:#ff7186;font-size:11px}
html body #hero-progress-strip .daily-party-heading small{margin-left:auto;color:#c6d0de;font-size:9px;white-space:nowrap;max-width:32%;overflow:hidden;text-overflow:ellipsis}
html body #hero-progress-strip .daily-party-group .daily-party-member{display:grid!important;grid-template-columns:70px minmax(0,1fr) 82px!important;grid-template-rows:20px 22px!important;align-items:center!important;column-gap:5px!important;row-gap:0!important;min-height:43px!important;margin:0!important;padding:2px 0!important;background:transparent!important;border:0!important;border-radius:0!important}
html body #hero-progress-strip .daily-party-group .daily-party-member+.daily-party-member{border-top:1px dashed #ffffff32!important;padding-top:3px!important}
html body #hero-progress-strip .daily-party-group .daily-route-head{display:contents!important}
html body #hero-progress-strip .daily-party-group .daily-route-name{grid-column:1;grid-row:1/3;display:flex!important;align-items:center;min-width:0!important;max-width:100%!important;color:#fff!important;font-size:11px!important;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body #hero-progress-strip .daily-party-group .daily-route-hp{grid-column:3;grid-row:1;justify-self:stretch;width:100%!important;max-width:100%!important}
html body #hero-progress-strip .daily-party-group .daily-route-hp-number{grid-column:3;grid-row:2;justify-self:end;font-size:9px!important;color:#dbe7f1}
html body #hero-progress-strip .daily-party-group .daily-route-place{display:none!important}
html body #hero-progress-strip .daily-party-group .daily-route-caution{display:none!important}
html body #hero-progress-strip .daily-party-group .daily-route-track{grid-column:2;grid-row:1;align-self:center;width:100%;height:12px!important;min-height:12px!important;margin:0!important;overflow:visible!important}
html body #hero-progress-strip .daily-party-group .daily-route-events{grid-column:2;grid-row:2;min-width:0;max-width:100%;padding:0!important;margin:0!important;font-size:9px!important;line-height:15px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
html body #hero-progress-strip .daily-party-group .daily-enemy-hp{grid-column:3;grid-row:2;position:static!important;justify-self:start;max-width:60px!important}
html body #hero-progress-strip .daily-party-group .daily-route-walker.daily-route-hero-portrait{top:-10px!important;width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important;transform:translateX(-50%)!important}
html body #hero-progress-strip .daily-party-group .daily-pair-label{display:none!important}
@media(max-width:480px){html body #hero-progress-strip .daily-party-group .daily-party-member{grid-template-columns:55px minmax(0,1fr) 61px!important;column-gap:3px!important}html body #hero-progress-strip .daily-party-group .daily-party-heading strong{font-size:11px!important}html body #hero-progress-strip .daily-party-group .daily-route-name{font-size:10px!important}}


/* Unified party expedition: one shared route and one combined event stream. */
html body #hero-progress-strip .daily-party-group{padding:0 9px 8px!important}
html body #hero-progress-strip .daily-party-group .daily-party-member{display:grid!important;grid-template-columns:80px minmax(0,1fr) 85px!important;grid-template-rows:18px!important;min-height:21px!important;padding:1px 0!important;column-gap:5px!important}
html body #hero-progress-strip .daily-party-group .daily-party-member+.daily-party-member{border-top:0!important;padding-top:1px!important}
html body #hero-progress-strip .daily-party-group .daily-route-name{grid-column:1;grid-row:1;align-self:center!important}
html body #hero-progress-strip .daily-party-group .daily-route-hp{grid-column:2;grid-row:1;width:100%!important;max-width:100%!important}
html body #hero-progress-strip .daily-party-group .daily-route-hp-number{grid-column:3;grid-row:1;justify-self:start}
html body #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track{grid-column:1/4;grid-row:2;display:block!important;position:relative!important;margin:12px 8px 9px!important;height:14px!important;min-height:14px!important}
html body #hero-progress-strip .daily-party-group .daily-party-first{grid-template-rows:18px 37px 18px!important}
html body #hero-progress-strip .daily-party-group .daily-party-first .daily-route-events{grid-column:1/4;grid-row:3;display:flex!important;max-width:100%;padding:0!important;min-height:17px!important}
html body #hero-progress-strip .daily-party-group .daily-party-second{grid-row:2!important}
html body #hero-progress-strip .daily-party-group .daily-party-first{grid-row:3!important}
html body #hero-progress-strip .daily-party-group .daily-party-second .daily-route-track,
html body #hero-progress-strip .daily-party-group .daily-party-second .daily-route-events,
html body #hero-progress-strip .daily-party-group .daily-party-second .daily-enemy-hp{display:none!important}
html body #hero-progress-strip .daily-party-group .daily-party-first .daily-route-walker.daily-party-walker{width:32px!important;height:53px!important;min-width:32px!important;min-height:53px!important;top:-24px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
html body #hero-progress-strip .daily-party-group .daily-party-walker>.daily-route-hero-picture{position:relative!important;display:block!important;flex:0 0 26px!important;width:26px!important;height:26px!important;border:2px solid #f5e4a2!important;border-radius:50%!important;background:#131a2a!important;box-shadow:0 1px 5px #000a!important;overflow:hidden!important}
html body #hero-progress-strip .daily-party-group .daily-party-walker>.daily-party-second-picture{margin-top:-5px!important;border-color:#ff748e!important}
@media(max-width:480px){html body #hero-progress-strip .daily-party-group .daily-party-member{grid-template-columns:65px minmax(0,1fr) 55px!important;column-gap:3px!important}}


/* Party enemies: both members' encounters must render on the single visible route. */
html body #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track .daily-party-secondary-enemy{display:block!important;position:absolute!important;z-index:8!important}
html body #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track .daily-party-secondary-enemy[hidden]{display:none!important}
html body #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track .daily-party-secondary-enemy:not([hidden]){transform:translateX(28px)!important}
html body #hero-progress-strip .daily-party-group .daily-party-first .daily-party-secondary-enemy-hp:not([hidden]){display:flex!important;position:absolute!important;right:4px!important;bottom:0!important;z-index:5!important}
html body #hero-progress-strip .daily-party-group .daily-party-first .daily-party-secondary-enemy-hp[hidden]{display:none!important}

/* Two simultaneous opponents on the expedition track (scenario 2+). */
html body #hero-progress-strip .daily-route-track .daily-enemy-extra{position:absolute!important;z-index:9!important;transform:translateX(52px)!important;display:flex!important;align-items:center;justify-content:center}
html body #hero-progress-strip .daily-route-track .daily-enemy-extra[hidden]{display:none!important}
html body #hero-progress-strip .daily-route-track .daily-enemy-extra img{max-width:100%;max-height:100%;object-fit:contain}


/* Scenario 2+ full-height exploration theater. Town and shop controls return after playback. */
html body.scenario-exploration-theater{overflow:hidden!important}
html body.scenario-exploration-theater #town-map,
html body.scenario-exploration-theater .controls,
html body.scenario-exploration-theater .reset-area,
html body.scenario-exploration-theater #msg{display:none!important}
html body.scenario-exploration-theater #hero-progress-strip{position:fixed!important;top:4px!important;bottom:max(4px,env(safe-area-inset-bottom))!important;left:4px!important;right:4px!important;width:auto!important;height:auto!important;max-height:none!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;z-index:10000!important;padding:12px 10px 22px!important;border:2px solid #e9c47a!important;border-radius:10px!important;background:radial-gradient(ellipse at 50% 0%,#2b334f 0%,#121522 55%,#090c14 100%)!important;box-shadow:inset 0 0 50px #000a,0 0 0 100vmax #070a11!important}
html body.scenario-exploration-theater #hero-progress-strip:before{content:'⚔ DUNGEON EXPEDITION';display:block;text-align:center;color:#ffdc91;font-size:14px;font-weight:900;letter-spacing:.1em;padding:5px 0 12px;text-shadow:0 0 15px #ff6b6680}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row{margin:8px 0!important;padding:8px 5px!important;background:linear-gradient(135deg,#273147,#121927)!important;border-radius:8px!important;border:1px solid #d8ba7750!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group{margin:12px 0!important;padding:8px 12px 14px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-member{background:transparent!important;border:0!important;margin:0!important;padding:2px 0!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track{min-height:24px!important;height:24px!important;margin-top:13px!important;margin-bottom:13px!important;overflow:visible!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-first .daily-route-track{height:24px!important;min-height:24px!important;margin-top:18px!important;margin-bottom:14px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-first{grid-template-rows:20px 55px 22px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-enemy-visual:not([hidden]){filter:drop-shadow(0 0 9px #ff5e44a0);animation:theater-enemy-breath 1.8s ease-in-out infinite!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-enemy-extra:not([hidden]){transform:translateX(65px)!important}
html body.scenario-exploration-theater #hero-progress-strip .theater-enemy-impact:not([hidden]){animation:theater-impact .65s ease-out 1!important}
html body.scenario-exploration-theater #hero-progress-strip .weapon-attack-effect{transform:scale(1.5)!important;filter:drop-shadow(0 0 15px #ffdc83)!important;z-index:40!important}
html body.scenario-exploration-theater #hero-progress-strip .combat-damage-pop{font-size:18px!important;font-weight:1000!important;text-shadow:0 2px 3px #000,0 0 10px #f33!important;z-index:45!important}
@keyframes theater-enemy-breath{0%,100%{filter:brightness(1) drop-shadow(0 0 4px #e84b4b66)}50%{filter:brightness(1.15) drop-shadow(0 0 13px #ff7b52a0)}}
@keyframes theater-impact{0%{filter:brightness(3) drop-shadow(0 0 18px #fff);transform:translateX(8px) scale(1.3)}35%{filter:brightness(1.7) drop-shadow(0 0 17px #ff3030);transform:translateX(-8px) scale(.92)}100%{filter:brightness(1);transform:translateX(0) scale(1)}}
@media(prefers-reduced-motion:reduce){html body.scenario-exploration-theater #hero-progress-strip .daily-enemy-visual:not([hidden]){animation:none!important}}


/* Scenario 2+ expedition command deck: retain useful navigation above the theater. */
html body .expedition-topbar{display:none}
html body.scenario-exploration-theater .expedition-topbar{position:fixed!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:5px 10px;align-items:center;top:0;left:0;right:0;z-index:10020!important;padding:8px 12px 9px;background:linear-gradient(115deg,#3c1426,#1c2337 60%,#101523);border-bottom:3px solid #e7bc6d;box-shadow:0 5px 20px #000b;color:#f7f1e6}
html body.scenario-exploration-theater .expedition-topbar-title{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px}
html body.scenario-exploration-theater .expedition-topbar-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.scenario-exploration-theater .expedition-topbar-tag{font-size:9px;font-weight:900;letter-spacing:.08em;color:#1a1821;background:#f0ce85;padding:4px 6px;transform:skew(-8deg)}
html body.scenario-exploration-theater .expedition-topbar-stats{display:flex;justify-content:flex-end;gap:8px;font-size:10px;font-weight:800;color:#f5d99d;white-space:nowrap}
html body.scenario-exploration-theater .expedition-topbar-nav{grid-column:1/-1;display:flex;gap:6px}
html body.scenario-exploration-theater .expedition-topbar-nav button{flex:1;min-width:0;padding:7px 5px;border:1px solid #c7a66b;background:linear-gradient(#313d55,#1a2435);color:#fff4db;border-radius:4px;font-size:12px;font-weight:800;box-shadow:inset 0 1px #ffffff30;cursor:pointer}
html body.scenario-exploration-theater .expedition-topbar-nav button:active{transform:translateY(1px);background:#613347}
html body.scenario-exploration-theater #hero-progress-strip{top:94px!important;bottom:max(4px,env(safe-area-inset-bottom))!important;border-top:0!important;border-radius:0 0 10px 10px!important;box-shadow:inset 0 0 50px #000a!important}
html body.scenario-exploration-theater header,html body.scenario-exploration-theater .hud{display:none!important}
@media(max-width:480px){html body.scenario-exploration-theater .expedition-topbar{padding:7px 7px 8px;gap:5px}html body.scenario-exploration-theater .expedition-topbar-title{font-size:12px}html body.scenario-exploration-theater .expedition-topbar-tag{font-size:8px;padding:3px}html body.scenario-exploration-theater .expedition-topbar-stats{gap:5px;font-size:9px}html body.scenario-exploration-theater .expedition-topbar-nav button{font-size:11px;padding:7px 3px}html body.scenario-exploration-theater #hero-progress-strip{top:88px!important}}


/* Larger character art exclusively in the scenario 2+ expedition theater. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row{min-height:114px!important;padding:13px 8px 18px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track{height:64px!important;min-height:64px!important;margin-top:20px!important;margin-bottom:20px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-walker.daily-route-hero-portrait{width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;top:-23px!important;overflow:visible!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-walker .daily-route-hero-picture{display:block!important;width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;object-fit:cover!important;border:3px solid #ffe09a!important;border-radius:50%!important;box-shadow:0 0 0 3px #151b2b,0 0 18px #ffd27c77!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual:not([hidden]){width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;top:-14px!important;transform:translate(28px,-50%)!important;overflow:visible!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-picture{display:block!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;border:3px solid #ffc16b!important;border-radius:12px!important;overflow:hidden!important;box-shadow:0 0 0 3px #331e2a,0 0 18px #fa784a99!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-picture img{width:100%!important;height:100%!important;object-fit:cover!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-extra:not([hidden]){width:76px!important;height:76px!important;transform:translate(106px,-50%)!important;border:3px solid #ffc16b!important;border-radius:12px!important;background:#1b1727!important;box-shadow:0 0 18px #fa784a88!important;overflow:hidden!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-extra img{width:100%!important;height:100%!important;object-fit:cover!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first{grid-template-rows:24px 102px 25px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track{height:72px!important;min-height:72px!important;margin:27px 8px 22px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker.daily-route-hero-portrait{width:60px!important;height:113px!important;min-width:60px!important;min-height:113px!important;top:-48px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-route-hero-picture{flex:0 0 60px!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-party-second-picture{margin-top:-12px!important;border-color:#ff7891!important}
@media(max-width:480px){html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual:not([hidden]){width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important}html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-picture{width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important}html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-extra:not([hidden]){width:60px!important;height:60px!important;transform:translate(90px,-50%)!important}}


/* Keep expedition navigation visually identical to the town's Persona-style controls. */
html body.scenario-exploration-theater .expedition-topbar-nav button{flex:1;min-width:0;min-height:48px;padding:9px 10px;background:var(--paper)!important;color:var(--ink)!important;border:0!important;border-radius:0!important;font-size:13px;font-weight:1000;text-align:left;box-shadow:4px 4px 0 #bd2735!important;clip-path:polygon(0 0,100% 0,100% 81%,95% 100%,0 100%);transition:transform .12s,background .12s}
html body.scenario-exploration-theater .expedition-topbar-nav button:nth-child(-n+2){background:#e03b49!important;color:#fff!important;box-shadow:4px 4px 0 #f3f0e8!important}
html body.scenario-exploration-theater .expedition-topbar-nav button:active{transform:translate(3px,3px)!important}
@media(max-width:480px){html body.scenario-exploration-theater .expedition-topbar-nav button{font-size:11px!important;padding:8px 7px!important;min-height:45px!important}}


/* Expedition stage v3: compact readable combat composition, not enlarged solo rows. */
html body.scenario-exploration-theater #hero-progress-strip{padding:10px 12px 22px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group{display:flex!important;flex-direction:column!important;gap:0!important;margin:10px 0 15px!important;padding:9px 12px 12px!important;overflow:hidden!important;border-radius:9px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-heading{min-height:30px!important;padding:3px 0 8px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-member{display:grid!important;grid-template-columns:66px minmax(0,1fr) 58px!important;grid-template-rows:25px!important;min-height:25px!important;height:auto!important;padding:2px 0!important;margin:0!important;gap:4px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-second{order:1!important;grid-row:auto!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first{order:2!important;grid-row:auto!important;grid-template-rows:25px 116px 26px!important;min-height:167px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-head{display:contents!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-name{grid-column:1!important;grid-row:1!important;min-width:0!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-hp{grid-column:2!important;grid-row:1!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-hp-number{grid-column:3!important;grid-row:1!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track{grid-column:1/4!important;grid-row:2!important;position:relative!important;height:105px!important;min-height:105px!important;margin:4px 0!important;padding:0!important;overflow:visible!important;background:linear-gradient(180deg,#111b2e,#222943 65%,#161e30)!important;border:1px solid #6e748b!important;border-radius:6px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track:before{content:'BATTLE FIELD';position:absolute;left:8px;top:5px;color:#c7b68d;font-size:9px;letter-spacing:.16em;font-weight:900;opacity:.8}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-events{grid-column:1/4!important;grid-row:3!important;display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;padding:4px 5px!important;min-height:23px!important;font-size:11px!important;color:#fff0d5!important;background:#0d1424!important;border-left:3px solid #e8b96c!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker.daily-route-hero-portrait{left:20%!important;top:9px!important;width:62px!important;height:96px!important;min-width:62px!important;min-height:96px!important;transform:translateX(-50%)!important;z-index:12!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-route-hero-picture{width:53px!important;height:53px!important;min-width:53px!important;min-height:53px!important;flex:0 0 53px!important;border-width:2px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-party-second-picture{margin-top:-12px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-visual:not([hidden]){left:68%!important;top:11px!important;transform:none!important;width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;z-index:13!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-picture{width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-extra:not([hidden]){left:calc(68% - 78px)!important;top:12px!important;transform:none!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-ground{opacity:.25!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-home,html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-goal{opacity:.35!important;font-size:11px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member){padding:9px 10px 12px!important;min-height:0!important;overflow:hidden!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-track{height:105px!important;min-height:105px!important;margin:10px 0!important;background:linear-gradient(180deg,#111b2e,#222943)!important;border:1px solid #6e748b!important;border-radius:6px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-walker{left:20%!important;top:20px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-visual:not([hidden]){left:68%!important;top:18px!important;transform:none!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-extra:not([hidden]){left:calc(68% - 72px)!important;top:18px!important;transform:none!important}
@media(max-width:480px){html body.scenario-exploration-theater #hero-progress-strip .daily-party-group{padding:8px 9px 10px!important}html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-member{grid-template-columns:54px minmax(0,1fr) 50px!important}html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-visual:not([hidden]){left:70%!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important}html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-picture{width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important}html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-extra:not([hidden]){left:calc(70% - 66px)!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important}}


/* Live dungeon depth meter: one animated progress gauge per solo hero or party. */
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group{position:relative!important;padding-top:43px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .expedition-depth{position:absolute!important;top:37px!important;left:12px!important;right:12px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member){position:relative!important;padding-top:46px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .expedition-depth{position:absolute!important;top:29px!important;left:10px!important;right:10px!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth{display:flex!important;align-items:center!important;gap:9px!important;height:19px!important;z-index:5!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-label{flex:0 0 52px;color:#e6c47c;font-size:9px;font-weight:900;letter-spacing:.09em}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-track{position:relative;flex:1;height:9px;border-radius:10px;background:#070d1a;border:1px solid #a78b58;box-shadow:inset 0 2px 4px #000a;overflow:visible}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,#c8374d,#f0844c,#f5d47b);border-radius:9px;box-shadow:0 0 8px #f4ae6799;transition:width .75s linear}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-marker{position:absolute;top:50%;left:0;width:13px;height:13px;border:2px solid #fff1c7;background:#ecb750;transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 9px #f5bb73;transition:left .75s linear}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-percent{flex:0 0 34px;text-align:right;font-size:11px;font-weight:900;color:#fff2cf;font-variant-numeric:tabular-nums}

/* Keep the party heading above the meter, without overlapping it. */
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group{padding-top:9px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .expedition-depth{top:42px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-second{margin-top:26px!important}


/* Snappier scenario 2+ battle effects without altering scenario 1. */
html body.scenario-exploration-theater #hero-progress-strip .theater-enemy-impact:not([hidden]){animation-duration:.38s!important}
html body.scenario-exploration-theater #hero-progress-strip .combat-hit-shake{animation-duration:.35s!important}
html body.scenario-exploration-theater #hero-progress-strip .combat-hit-impact{animation-duration:.4s!important}
html body.scenario-exploration-theater #hero-progress-strip .combat-damage-pop{animation-duration:.45s!important}
html body.scenario-exploration-theater #hero-progress-strip .weapon-attack-effect,html body.scenario-exploration-theater #hero-progress-strip .weapon-strike-svg{animation-duration:.4s!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-fill,html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-marker{transition-duration:.5s!important}


/* Expedition battle lane: hero approaches enemies without crossing their sprites.
   --expedition-stage-progress is 0..1; full progress stops at 42% of the lane. */
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker.daily-route-hero-portrait,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-walker{left:calc(12% + 30% * var(--expedition-stage-progress,0))!important;transition:left .52s linear!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-visual:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-visual:not([hidden]){left:74%!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-extra:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-extra:not([hidden]){left:calc(74% - 76px)!important}
@media(max-width:480px){html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-extra:not([hidden]),html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-extra:not([hidden]){left:calc(74% - 63px)!important}}


/* Persona-inspired expedition art direction: sharp panels, red diagonals, circular combat portraits. */
html body.scenario-exploration-theater #hero-progress-strip{background:linear-gradient(145deg,#11111b 0%,#171c2d 54%,#0b0d17 100%)!important;border:2px solid #e9d5ad!important;border-top:0!important}
html body.scenario-exploration-theater #hero-progress-strip:before{content:'⚔  DUNGEON EXPEDITION';display:block!important;margin:-3px -3px 10px!important;padding:9px 15px!important;text-align:left!important;font-size:15px!important;font-style:italic!important;letter-spacing:.07em!important;color:#fff!important;background:linear-gradient(105deg,#d62842 0%,#a51c36 64%,transparent 64%)!important;clip-path:polygon(0 0,100% 0,97% 100%,0 100%)!important;text-shadow:2px 2px 0 #1b1521!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member){background:linear-gradient(140deg,#232b3d 0%,#151827 64%,#111320 100%)!important;border:1px solid #e9d7b0!important;border-left:5px solid #e22d4b!important;border-radius:2px!important;box-shadow:5px 5px 0 #080b14,0 8px 22px #0006!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-heading{background:transparent!important;border-bottom:2px solid #a53b4b!important;transform:none!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-emblem{background:#f3d17e!important;color:#201a26!important;font-style:italic!important;clip-path:polygon(9% 0,100% 0,92% 100%,0 100%)!important;padding:5px 12px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-track{background:repeating-linear-gradient(130deg,#181e2e 0px,#181e2e 19px,#20273a 20px,#20273a 21px)!important;border:1px solid #66728b!important;border-radius:2px!important;box-shadow:inset 0 0 26px #0008!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track:after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#c92c44 0%,#f5d17c 55%,transparent 55%);opacity:.8;pointer-events:none}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual:not([hidden]){border-radius:50%!important;background:#171725!important;border:3px solid #f5d08a!important;box-shadow:0 0 0 3px #b02c44,0 0 18px #f24a5977!important;overflow:hidden!important;box-sizing:border-box!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-picture{display:block!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;border:0!important;border-radius:50%!important;overflow:hidden!important;box-shadow:none!important;background:#171725!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-picture img,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;border-radius:50%!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-extra:not([hidden]){border-radius:50%!important;border:3px solid #f5d08a!important;background:#171725!important;box-shadow:0 0 0 3px #b02c44,0 0 18px #f24a5977!important;overflow:hidden!important;box-sizing:border-box!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-walker .daily-route-hero-picture{border-radius:50%!important;box-shadow:0 0 0 3px #10131f,0 0 0 5px #f2d28c,0 0 14px #ffcf8380!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-track{height:11px!important;border-radius:1px!important;border:1px solid #f2d59c!important;transform:skewX(-9deg)!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-fill{border-radius:0!important;background:linear-gradient(90deg,#d52245,#f04c50 65%,#ffd47d)!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-marker{background:#fff1c3!important;border-color:#da2546!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-events{background:#0b101d!important;border-left:4px solid #e32d4c!important;color:#fff0db!important}


/* Persona-inspired depth gauge v2: disciplined geometry, ten-step ruler, compact numeric readout. */
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth{height:28px!important;gap:9px!important;align-items:center!important;filter:none!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-label{flex:0 0 51px!important;display:flex!important;flex-direction:column!important;gap:0!important;line-height:1.05!important;white-space:nowrap!important;color:#fff1da!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-label b{font-size:11px!important;font-weight:1000!important;letter-spacing:.01em!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-label small{font-size:8px!important;letter-spacing:.18em!important;color:#e6a0a9!important;font-weight:900!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-track{position:relative!important;flex:1 1 0!important;min-width:0!important;height:14px!important;transform:none!important;overflow:hidden!important;border:2px solid #e7d7b9!important;border-radius:0!important;background:#111827!important;box-shadow:3px 3px 0 #0a0b11!important;clip-path:polygon(0 0,100% 0,calc(100% - 6px) 100%,0 100%)!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-fill{position:absolute!important;inset:0 auto 0 0!important;height:100%!important;border-radius:0!important;background:linear-gradient(90deg,#bb193c 0%,#ef3d50 65%,#f8c56e 100%)!important;box-shadow:inset 0 1px 0 #ffedbd70!important;transition:width .48s linear!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-ticks{position:absolute!important;inset:0!important;z-index:2!important;pointer-events:none!important;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),#0b101f88 calc(10% - 1px),#0b101f88 10%)!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-marker{display:none!important}
html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-percent{flex:0 0 43px!important;text-align:right!important;font-family:inherit!important;font-size:16px!important;font-weight:1000!important;font-style:italic!important;letter-spacing:-.06em!important;color:#fff2d8!important;text-shadow:2px 2px 0 #9e243a!important;font-variant-numeric:tabular-nums!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .expedition-depth{top:43px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-second{margin-top:29px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .expedition-depth{top:25px!important}
@media(max-width:390px){html body.scenario-exploration-theater #hero-progress-strip .expedition-depth{gap:6px!important}html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-label{flex-basis:46px!important}html body.scenario-exploration-theater #hero-progress-strip .expedition-depth-percent{flex-basis:38px!important;font-size:14px!important}}


/* Expedition visual balance: portraits support the HUD instead of dominating it. */
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker.daily-route-hero-portrait{width:49px!important;min-width:49px!important;height:82px!important;min-height:82px!important;top:13px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-route-hero-picture,
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-party-second-picture{width:43px!important;height:43px!important;min-width:43px!important;min-height:43px!important;flex:0 0 43px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-party-second-picture{margin-top:-7px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-walker.daily-route-hero-portrait{width:49px!important;height:49px!important;min-width:49px!important;min-height:49px!important;top:28px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-walker .daily-route-hero-picture{width:45px!important;height:45px!important;min-width:45px!important;min-height:45px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-visual:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-visual:not([hidden]){width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;top:24px!important;left:76%!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-picture,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-picture{width:100%!important;height:100%!important;min-width:0!important;min-height:0!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-extra:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-extra:not([hidden]){width:49px!important;height:49px!important;min-width:49px!important;min-height:49px!important;top:27px!important;left:calc(76% - 57px)!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual:not([hidden]){border-width:2px!important;box-shadow:0 0 0 2px #a72d46,0 0 10px #f24a594a!important}
@media(max-width:390px){html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track .daily-enemy-extra:not([hidden]),html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-enemy-extra:not([hidden]){left:calc(76% - 52px)!important;width:45px!important;height:45px!important;min-width:45px!important;min-height:45px!important}}


/* Enemy formation: primary on the right, second enemy to its left; no overlap or overflow.
   Includes pair-member enemy nodes moved into the shared battle lane. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track{isolation:isolate!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual:not([hidden]):not(.daily-enemy-extra):not(.daily-party-secondary-enemy){left:auto!important;right:8%!important;top:24px!important;transform:none!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-enemy-extra:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-party-secondary-enemy:not([hidden]){left:auto!important;right:calc(8% + 60px)!important;top:27px!important;transform:none!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-party-secondary-enemy.daily-enemy-extra:not([hidden]){right:calc(8% + 115px)!important}
@media(max-width:480px){html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual:not([hidden]):not(.daily-enemy-extra):not(.daily-party-secondary-enemy){right:5%!important}html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-enemy-extra:not([hidden]),html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-party-secondary-enemy:not([hidden]){right:calc(5% + 56px)!important}html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-party-secondary-enemy.daily-enemy-extra:not([hidden]){right:calc(5% + 108px)!important}}


/* Fit two parties plus the solo adventurer inside the mobile expedition viewport.
   Keep the header visible and preserve readable battle/log information. */
@media(max-width:600px){
 html body.scenario-exploration-theater #hero-progress-strip{top:88px!important;bottom:max(2px,env(safe-area-inset-bottom))!important;padding:3px 7px 5px!important;overflow-y:auto!important;overscroll-behavior:contain!important}
 html body.scenario-exploration-theater #hero-progress-strip:before{font-size:11px!important;padding:5px 11px!important;margin:-2px -2px 4px!important}
 html body.scenario-exploration-theater #hero-progress-strip .progress-strip-title{margin:0 0 2px!important;padding:0!important;font-size:11px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group{margin:3px 0 6px!important;padding:5px 7px 4px!important;box-shadow:2px 2px 0 #090b13!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-heading{min-height:21px!important;height:21px!important;padding:0 0 2px!important;margin:0!important;font-size:11px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-second{margin-top:23px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-member{grid-template-rows:20px!important;min-height:20px!important;padding:0!important;gap:2px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first{grid-template-rows:20px 72px 20px!important;min-height:112px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track{height:68px!important;min-height:68px!important;margin:2px 0!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-events{min-height:18px!important;height:18px!important;padding:2px 5px!important;font-size:10px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .expedition-depth{top:27px!important;left:7px!important;right:7px!important;height:21px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker.daily-route-hero-portrait{top:3px!important;height:62px!important;min-height:62px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-route-hero-picture,
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-party-second-picture{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;flex-basis:34px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-party-second-picture{margin-top:-8px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual:not([hidden]):not(.daily-enemy-extra):not(.daily-party-secondary-enemy){top:10px!important;width:45px!important;height:45px!important;min-width:45px!important;min-height:45px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-enemy-extra:not([hidden]),
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track .daily-enemy-visual.daily-party-secondary-enemy:not([hidden]){top:13px!important;width:41px!important;height:41px!important;min-width:41px!important;min-height:41px!important;right:calc(5% + 49px)!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member){min-height:0!important;margin:3px 0 5px!important;padding:32px 7px 4px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .expedition-depth{top:8px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-track{height:68px!important;min-height:68px!important;margin:3px 0!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-walker.daily-route-hero-portrait{top:10px!important}
}
@media(max-width:600px) and (max-height:730px){
 html body.scenario-exploration-theater #hero-progress-strip{top:80px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first{grid-template-rows:18px 60px 18px!important;min-height:96px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track{height:57px!important;min-height:57px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-route-hero-picture,
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker>.daily-party-second-picture{width:29px!important;height:29px!important;min-width:29px!important;min-height:29px!important;flex-basis:29px!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-walker.daily-route-hero-portrait{height:51px!important;min-height:51px!important}
}


/* Keep monster portraits and HP meters inside their own battle field. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track{position:relative!important;overflow:hidden!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-hp:not([hidden]){display:flex!important;position:absolute!important;left:auto!important;right:5%!important;top:auto!important;bottom:4px!important;width:48px!important;height:10px!important;padding:1px 2px!important;margin:0!important;max-width:none!important;grid-column:auto!important;grid-row:auto!important;z-index:17!important;background:#101420ee!important;border:1px solid #f3c37e!important;border-radius:2px!important;box-shadow:0 1px 3px #000b!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-hp.daily-party-secondary-enemy-hp:not([hidden]){right:calc(5% + 55px)!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-hp .daily-enemy-track{height:5px!important;min-width:0!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]){z-index:12!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]):not(.daily-enemy-extra):not(.daily-party-secondary-enemy){right:5%!important;top:8px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-party-secondary-enemy:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-enemy-extra:not([hidden]){right:calc(5% + 55px)!important;top:10px!important}


/* Weapon strike is a battlefield overlay, never clipped by circular enemy art. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.weapon-attack-effect{position:absolute!important;inset:auto!important;width:78px!important;height:78px!important;z-index:60!important;overflow:visible!important;pointer-events:none!important;filter:drop-shadow(0 0 9px #ffe5a2)!important;animation:weapon-svg-appear .45s ease-out both!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.weapon-attack-effect .weapon-strike-svg{width:100%!important;height:100%!important;display:block!important;overflow:visible!important}


/* Party log is its own visible row, not a clipped member-grid child. */
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-live-log{order:3!important;display:flex!important;align-items:center!important;gap:7px!important;min-height:22px!important;height:22px!important;max-width:100%!important;margin-top:3px!important;padding:2px 7px!important;box-sizing:border-box!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;background:#0a1020!important;border-left:3px solid #e83e57!important;color:#f9e7c8!important;font-size:10px!important;line-height:17px!important;scrollbar-width:none!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-live-log::-webkit-scrollbar{display:none}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-live-log .daily-log-entry{display:inline-block!important;flex:0 0 auto!important;margin-right:9px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-events{display:none!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first{grid-template-rows:20px 72px!important;min-height:92px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-head{min-width:0!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-member{grid-template-columns:48px minmax(55px,1fr) 48px minmax(65px,1fr)!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-hp{grid-column:2!important;max-width:none!important;min-width:0!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-hp-number{grid-column:3!important;font-size:9px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first .daily-route-track{grid-column:1/5!important;grid-row:2!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-hero-speech{display:block!important;grid-column:4!important;grid-row:1!important;align-self:center!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;padding:1px 6px!important;background:#eee0c7!important;color:#241726!important;clip-path:polygon(0 0,100% 0,95% 100%,0 100%)!important;font-size:10px!important;font-weight:800!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-head{display:grid!important;grid-template-columns:48px minmax(55px,1fr) 48px minmax(65px,1fr)!important;align-items:center!important;gap:4px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-name{grid-column:1!important;grid-row:1!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-hp{grid-column:2!important;grid-row:1!important;min-width:0!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-hp-number{grid-column:3!important;grid-row:1!important;font-size:9px!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row:not(.daily-party-member) .daily-route-place{display:none!important}
@media(max-width:600px){html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first{grid-template-rows:20px 68px!important;min-height:88px!important}html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-live-log{height:20px!important;min-height:20px!important;margin-top:2px!important}}
@media(max-width:600px) and (max-height:730px){html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-party-first{grid-template-rows:18px 57px!important;min-height:75px!important}}


/* Ground-integrated exploration gauge: fixed floor beneath walking portraits. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.expedition-ground-gauge{
 position:absolute!important;inset:auto 9px 0 9px!important;top:auto!important;left:9px!important;right:9px!important;bottom:0!important;
 width:auto!important;height:12px!important;min-height:12px!important;display:block!important;padding:0!important;margin:0!important;
 background:none!important;border:0!important;box-shadow:none!important;transform:none!important;filter:none!important;
 z-index:4!important;pointer-events:none!important;overflow:visible!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.expedition-ground-gauge .expedition-depth-track{
 position:absolute!important;inset:auto 0 0 0!important;width:100%!important;height:9px!important;min-height:9px!important;
 border:0!important;border-top:1px solid #c5ad83!important;border-bottom:2px solid #7c7180!important;
 border-radius:0!important;background:repeating-linear-gradient(115deg,#292b38 0px,#292b38 9px,#353747 9px,#353747 18px)!important;
 box-shadow:0 -2px 0 #080d17,inset 0 2px 3px #0007!important;clip-path:none!important;transform:none!important;overflow:hidden!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.expedition-ground-gauge .expedition-depth-fill{
 position:absolute!important;inset:0 auto 0 0!important;height:100%!important;background:linear-gradient(90deg,#9c3043,#d7484f 70%,#e5ae69)!important;
 border-radius:0!important;box-shadow:inset 0 2px 0 #f7c58a55!important;transition:width .5s linear!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.expedition-ground-gauge .expedition-depth-ticks{
 position:absolute!important;inset:0!important;z-index:2!important;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),#101422a6 calc(10% - 1px),#101422a6 10%)!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.expedition-ground-gauge .expedition-depth-percent{
 position:absolute!important;right:0!important;bottom:12px!important;display:block!important;width:auto!important;min-width:0!important;
 padding:1px 4px!important;background:#141827d9!important;color:#f4d5a1!important;border:1px solid #89765c!important;
 font-size:9px!important;font-weight:900!important;font-style:normal!important;letter-spacing:0!important;text-shadow:none!important;line-height:1.1!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-route-ground{display:none!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-route-walker{z-index:12!important}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual{z-index:13!important}
@media(max-width:600px){html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.expedition-ground-gauge{height:10px!important;min-height:10px!important;left:5px!important;right:5px!important}html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.expedition-ground-gauge .expedition-depth-track{height:7px!important;min-height:7px!important}}


/* Enemy formation follows the adventurer rather than the far edge of the stage.
   The near enemy starts just beyond the hero portrait; second enemy stands behind. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]):not(.daily-enemy-extra):not(.daily-party-secondary-enemy){
 left:calc(12% + 30% * var(--expedition-stage-progress,0) + 34px)!important;
 right:auto!important;transform:none!important;transition:left .5s linear!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-enemy-extra:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-party-secondary-enemy:not([hidden]){
 left:calc(12% + 30% * var(--expedition-stage-progress,0) + 85px)!important;
 right:auto!important;transform:none!important;transition:left .5s linear!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-hp:not([hidden]):not(.daily-party-secondary-enemy-hp){
 left:calc(12% + 30% * var(--expedition-stage-progress,0) + 37px)!important;
 right:auto!important;transition:left .5s linear!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-hp.daily-party-secondary-enemy-hp:not([hidden]){
 left:calc(12% + 30% * var(--expedition-stage-progress,0) + 86px)!important;
 right:auto!important;transition:left .5s linear!important
}
@media(max-width:390px){
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-enemy-extra:not([hidden]),
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-party-secondary-enemy:not([hidden]){left:calc(12% + 30% * var(--expedition-stage-progress,0) + 78px)!important}
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-hp.daily-party-secondary-enemy-hp:not([hidden]){left:calc(12% + 30% * var(--expedition-stage-progress,0) + 80px)!important}
}


/* Scenario 2+: same static route ground as scenario 1, without a filling gauge. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-route-ground{
 display:block!important;position:absolute!important;left:7px!important;right:7px!important;bottom:5px!important;
 height:0!important;border:0!important;border-bottom:2px dashed #bfa778!important;
 background:none!important;opacity:.8!important;z-index:3!important;pointer-events:none!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.expedition-ground-gauge{display:none!important}


/* Position attack animation on the enemy's measured center, not the stage origin.
   Explicit axes override the older inset:auto and scale-only theater rules. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.weapon-attack-effect{
 left:var(--weapon-impact-x,50%)!important;
 top:var(--weapon-impact-y,50%)!important;
 right:auto!important;bottom:auto!important;
 margin:0!important;
 transform:translate(-50%,-50%) scale(1.15)!important;
 transform-origin:center center!important;
 z-index:70!important
}


/* Each monster enters from the right edge and stops in the hero-relative formation.
   Animate translate (not transform) to coexist with older transform!important rules. */
@keyframes enemy-enter-right-to-left{
 0%{translate:100vw 0;opacity:0}
 15%{opacity:1}
 100%{translate:0 0;opacity:1}
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.enemy-enter-from-right:not([hidden]){
 animation:enemy-enter-right-to-left .43s cubic-bezier(.18,.76,.22,1) both!important;
 will-change:translate,opacity!important
}
@media(prefers-reduced-motion:reduce){
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.enemy-enter-from-right:not([hidden]){animation:none!important}
}


/* Monsters materialize at the dungeon section currently being explored,
   then move left into the battle formation. */
@keyframes enemy-spawn-from-section{
 0%{translate:var(--enemy-spawn-offset,36px) 0;opacity:0;scale:.65;filter:brightness(2)}
 35%{opacity:1;scale:1.08;filter:brightness(1.5)}
 100%{translate:0 0;opacity:1;scale:1;filter:brightness(1)}
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.enemy-enter-from-section:not([hidden]){
 animation:enemy-spawn-from-section .48s ease-out both!important;
 will-change:translate,opacity,scale!important
}
@media(prefers-reduced-motion:reduce){
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.enemy-enter-from-section:not([hidden]){animation:none!important}
}


/* Pre-placed dungeon enemies are visible before the adventurer reaches them. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.dungeon-visible-foe{
 position:absolute!important;bottom:17px!important;width:27px!important;height:27px!important;
 transform:translateX(-50%)!important;z-index:12!important;pointer-events:none;
 display:flex;align-items:center;justify-content:center;border-radius:50%;
 background:#241b21;border:1px solid #f4c478;box-shadow:0 1px 6px #0009;
 transition:opacity .25s ease,scale .25s ease!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.dungeon-visible-foe img{
 width:100%!important;height:100%!important;object-fit:cover!important;border-radius:50%!important
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.dungeon-visible-foe.dungeon-foe-defeated{
 opacity:0!important;scale:.2!important;visibility:hidden!important
}

/* Hide the pre-placed instance while its matching combat sprite is displayed. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.dungeon-visible-foe.dungeon-foe-in-combat{opacity:0!important;visibility:hidden!important}


/* Enemy spawn effects: regular monsters emerge from shadow, heavy monsters burst from
   the ground, and magical monsters materialize in light. Existing monster art remains. */
@keyframes foe-spawn-shadow{
  0%{opacity:0;filter:brightness(0) contrast(1.6);transform:translateY(9px) scale(.55)}
  30%{opacity:.85;filter:brightness(.12) contrast(1.5);transform:translateY(5px) scale(.75)}
  65%{opacity:1;filter:brightness(.55);transform:translateY(-3px) scale(1.06)}
  100%{opacity:1;filter:none;transform:none}
}
@keyframes foe-spawn-ground{
  0%{opacity:0;filter:sepia(1) brightness(.45);transform:translateY(22px) scale(.65)}
  38%{opacity:1;filter:sepia(.8) brightness(.8);transform:translateY(5px) scale(1.13)}
  60%{transform:translateY(-9px) scale(1.06);filter:brightness(1.3)}
  78%{transform:translateY(3px) scale(.97)}
  100%{transform:none;filter:none;opacity:1}
}
@keyframes foe-spawn-magic{
  0%{opacity:0;filter:brightness(4) blur(8px);transform:scale(.3) rotate(-12deg)}
  35%{opacity:.95;filter:brightness(3) blur(3px);transform:scale(.8) rotate(6deg)}
  70%{filter:brightness(1.6) blur(0);transform:scale(1.08)}
  100%{opacity:1;filter:none;transform:none}
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-shadow:not([hidden]) .daily-enemy-picture,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-shadow:not([hidden])>img{animation:foe-spawn-shadow .65s ease-out both}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-ground:not([hidden]) .daily-enemy-picture,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-ground:not([hidden])>img{animation:foe-spawn-ground .7s cubic-bezier(.2,.8,.3,1) both}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-magic:not([hidden]) .daily-enemy-picture,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-magic:not([hidden])>img{animation:foe-spawn-magic .75s ease-out both}
@media(prefers-reduced-motion:reduce){
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual[class*="spawn-"] .daily-enemy-picture{animation:none!important}
}


/* Image-frame spawn: four SVG frames, rendered over existing enemy art. */
@keyframes foe-image-frame{
  0%,24.99%{background-position:0% 50%;opacity:1}
  25%,49.99%{background-position:33.333% 50%;opacity:1}
  50%,74.99%{background-position:66.667% 50%;opacity:1}
  75%,94%{background-position:100% 50%;opacity:1}
  100%{background-position:100% 50%;opacity:0}
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:is(.spawn-shadow,.spawn-ground,.spawn-magic):not([hidden]) .daily-enemy-picture,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:is(.spawn-shadow,.spawn-ground,.spawn-magic):not([hidden])>img{
 animation:none!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:is(.spawn-shadow,.spawn-ground,.spawn-magic):not([hidden])::after{
 content:"";position:absolute;pointer-events:none;z-index:25;
 width:92px;height:92px;left:50%;bottom:-7px;transform:translateX(-50%);
 background-repeat:no-repeat;background-size:400% 100%;
 animation:foe-image-frame .72s linear both!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-shadow:not([hidden])::after{background-image:url('/images/spawn-shadow.svg')}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-ground:not([hidden])::after{background-image:url('/images/spawn-ground.svg')}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.spawn-magic:not([hidden])::after{background-image:url('/images/spawn-magic.svg')}
@media(prefers-reduced-motion:reduce){
 html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:is(.spawn-shadow,.spawn-ground,.spawn-magic)::after{animation:none!important;opacity:0!important}
}


/* Combat sprites stay inside the same circular crop as visible dungeon foes. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]){
 width:34px!important;height:34px!important;min-height:0!important;
 border-radius:50%!important;overflow:visible!important;
 background:transparent!important;box-shadow:none!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-enemy-extra:not([hidden])>img{
 width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
 display:block!important;border-radius:50%!important;overflow:hidden!important;
 border:2px solid #f4c478!important;box-sizing:border-box!important;
 object-fit:cover!important;background:#241b21!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture img{
 width:100%!important;height:100%!important;object-fit:cover!important;border-radius:50%!important;
}


/* Final crop rule: every spawned enemy (primary, extra and party member)
   has an actual clipping box; image must fill it instead of contain. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture{
 position:relative!important;display:block!important;
 width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
 max-width:34px!important;max-height:34px!important;
 padding:0!important;margin:0!important;
 border:2px solid #f4c478!important;border-radius:50%!important;
 overflow:hidden!important;clip-path:circle(50% at 50% 50%)!important;
 box-sizing:border-box!important;flex:0 0 34px!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture>img{
 position:absolute!important;inset:0!important;display:block!important;
 width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;
 max-width:none!important;max-height:none!important;
 object-fit:cover!important;object-position:center center!important;
 border:0!important;border-radius:0!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-boss-visual:not([hidden]) .daily-enemy-picture{
 width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;
 max-width:48px!important;max-height:48px!important;flex-basis:48px!important;
}


/* Fix oval portraits caused by legacy theater rules forcing a rectangular crop.
   Clip the outer sprite itself to a circle; keep a square viewport at every breakpoint. */
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track>.daily-enemy-visual:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row .daily-route-track>.daily-enemy-visual:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]){
 width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;
 max-width:60px!important;max-height:60px!important;
 aspect-ratio:1/1!important;box-sizing:border-box!important;
 border-radius:50%!important;clip-path:circle(50% at 50% 50%)!important;
 overflow:hidden!important;flex:0 0 60px!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track>.daily-enemy-visual.daily-boss-visual:not([hidden]),
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-boss-visual:not([hidden]){
 width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;
 max-width:76px!important;max-height:76px!important;flex-basis:76px!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture{
 position:absolute!important;inset:0!important;display:block!important;
 width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;
 max-width:100%!important;max-height:100%!important;
 border:0!important;border-radius:50%!important;clip-path:none!important;
 overflow:hidden!important;box-sizing:border-box!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture>img{
 position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 object-fit:cover!important;object-position:center!important;border-radius:50%!important;
}


/* Combat portraits are taller than the 24px progress lane.
   Do not crop the circle vertically at the lane boundary: that made it look oval. */
html body.scenario-exploration-theater #hero-progress-strip .daily-party-group .daily-route-track,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-row .daily-route-track,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track{
 overflow:visible!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]){
 clip-path:circle(50% at 50% 50%)!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:is(.spawn-shadow,.spawn-ground,.spawn-magic):not([hidden])::after{
 width:60px!important;height:60px!important;
 left:50%!important;top:50%!important;bottom:auto!important;
 transform:translate(-50%,-50%)!important;
}


/* Fix the second, oval TREANT in the screenshot: it is a field marker, not
   necessarily the primary combat sprite. Make ALL three enemy types square. */
html body #hero-progress-strip .daily-route-track>.dungeon-visible-foe,
html body #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-enemy-extra:not([hidden]),
html body #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-party-secondary-enemy:not([hidden]){
 width:42px!important;height:42px!important;
 min-width:42px!important;min-height:42px!important;
 max-width:42px!important;max-height:42px!important;
 aspect-ratio:1!important;flex:0 0 42px!important;
 padding:0!important;box-sizing:border-box!important;
 border-radius:50%!important;overflow:hidden!important;
 clip-path:circle(50% at 50% 50%)!important;
}
html body #hero-progress-strip .daily-route-track>.dungeon-visible-foe>img{
 display:block!important;position:absolute!important;inset:0!important;
 width:100%!important;height:100%!important;
 min-width:100%!important;min-height:100%!important;
 max-width:100%!important;max-height:100%!important;
 object-fit:cover!important;object-position:center!important;
 border-radius:50%!important;
}
html body #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-enemy-extra:not([hidden]) .daily-enemy-picture,
html body #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-party-secondary-enemy:not([hidden]) .daily-enemy-picture{
 position:absolute!important;inset:0!important;
 width:100%!important;height:100%!important;
 min-width:0!important;min-height:0!important;
 max-width:100%!important;max-height:100%!important;
 border-radius:50%!important;overflow:hidden!important;
}


/* Same portrait diameter for preplaced, primary, secondary and spawned foes.
   Previously combat sprites were 60px while field foes were 42px. */
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.dungeon-visible-foe,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]){
 width:42px!important;height:42px!important;
 min-width:42px!important;min-height:42px!important;
 max-width:42px!important;max-height:42px!important;
 aspect-ratio:1/1!important;flex:0 0 42px!important;
 border-radius:50%!important;overflow:hidden!important;
 clip-path:circle(50% at 50% 50%)!important;
 box-sizing:border-box!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual.daily-boss-visual:not([hidden]){
 width:56px!important;height:56px!important;
 min-width:56px!important;min-height:56px!important;
 max-width:56px!important;max-height:56px!important;
 flex-basis:56px!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture{
 position:absolute!important;inset:0!important;
 width:100%!important;height:100%!important;
 min-width:0!important;min-height:0!important;
 max-width:100%!important;max-height:100%!important;
 border:0!important;border-radius:50%!important;overflow:hidden!important;
}
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.daily-enemy-visual:not([hidden]) .daily-enemy-picture>img,
html body.scenario-exploration-theater #hero-progress-strip .daily-route-track>.dungeon-visible-foe>img{
 width:100%!important;height:100%!important;
 object-fit:cover!important;object-position:center!important;
}
