:root{color-scheme:dark;--bg:#100d19;--pink:#ff62b2;--cyan:#72e4e5;--gold:#f7d48b;--muted:#c3b8ce;--line:#ffffff25;font-family:'Noto Sans JP','Yu Gothic',system-ui,sans-serif;font-size:17px;background:var(--bg);color:#fff6fc}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;background:#30243e;color:inherit;padding:12px 18px;font-weight:700}button:hover:not(:disabled){background:#50364f}button:focus-visible,input:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.42}a{color:var(--cyan)}h1,h2,h3,p{margin-top:0}p{line-height:1.8}small,.muted{color:var(--muted)}[hidden]{display:none!important}.topbar{height:66px;padding:0 4vw;display:flex;align-items:center;gap:20px;background:#100d19e8;border-bottom:1px solid var(--line)}.logo{text-decoration:none;font-weight:800;color:#fff;font-size:23px;letter-spacing:1px}.logo span{font-family:Georgia,serif;font-weight:400;color:var(--pink);font-style:italic}.edition{color:var(--muted);font-size:13px;flex:1}.subtle{background:transparent;padding:7px 12px;font-size:14px}.primary{background:var(--pink);color:#240e23;border:0;font-weight:800;min-height:52px}.primary:hover:not(:disabled){background:#ff9acc}.secondary{background:#24434b;color:#d5ffff}.eyebrow{font-size:12px;font-weight:700;letter-spacing:3px;color:var(--cyan);display:block;margin-bottom:12px}.paper-tag{padding:7px 12px;border:1px solid #f7d48b77;background:#f7d48b13;color:var(--gold);border-radius:7px;display:inline-block;font-size:13px}.welcome{height:calc(100svh - 66px);min-height:650px;position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(90deg,#110b1a20,#110b1af5 70%),var(--scene) center/cover}.welcome:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#100d19,transparent 60%);z-index:-1}.splash-person{position:absolute;bottom:-12%;height:104%;width:55%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 0 35px #ff59ac25);z-index:-1}.splash-person.reco{left:-5%;transform:rotate(-4deg)}.splash-person.suzu{left:16%;height:88%;bottom:-8%;transform:rotate(4deg)}.welcome-copy{position:absolute;left:58%;right:6%;top:10%}.welcome h1{font-family:Georgia,serif;font-size:clamp(40px,4.7vw,76px);line-height:1.1;letter-spacing:1px;font-weight:400;margin-bottom:8px}.welcome h1 span{display:block;color:var(--pink);font-style:italic}.subtitle{font-size:23px;font-weight:700;margin:16px 0 22px}.start-panel{background:#1e1527e8;border:1px solid #ff62b25a;padding:24px;border-radius:18px;box-shadow:0 20px 80px #0007}.start-panel label{display:block;font-weight:700;margin-bottom:9px}.start-panel input{width:100%;padding:13px;border-radius:9px;border:1px solid #9a6a94;background:#110d19;color:#fff;font-size:20px}.start-panel .primary{width:100%;margin-top:15px}.start-panel .continue{margin-top:12px;width:100%}.start-panel small{display:block;margin-top:12px;font-size:12px;line-height:1.6}.mascots{display:flex;justify-content:center;align-items:end;gap:6px}.mascots figure{margin:0;text-align:center;font-size:12px;color:#eee1ef}.mascots img{width:80px;height:94px;object-fit:contain;filter:drop-shadow(0 5px 10px #0008)}.welcome .mascots{position:absolute;bottom:22px;left:3%;width:50%}.notice{font-size:13px;color:var(--muted);margin-top:12px}.game-layout{max-width:1600px;margin:auto;height:calc(100svh - 66px);min-height:690px;display:grid;grid-template-columns:minmax(0,1fr) 355px;grid-template-rows:78px 1fr;gap:16px;padding:18px 28px}.status{grid-column:1/-1;display:flex;align-items:center;gap:22px;padding:12px 18px;background:linear-gradient(100deg,#322033,#1b2631);border:1px solid var(--line);border-radius:14px}.player-name{font-size:18px;font-weight:800;min-width:110px}.player-name small{font-size:11px;display:block;letter-spacing:1px}.meter{min-width:110px;flex:1;max-width:260px}.meter-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px;gap:10px}.meter-track{height:10px;border-radius:8px;background:#07060bc9;overflow:hidden}.meter-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,#f14d94,#ff96c5);transition:width .35s}.meter.gauge .meter-fill{background:linear-gradient(90deg,#49a9c3,#91f5e5)}.meter.enemy .meter-fill{background:linear-gradient(90deg,#cb5360,#fdac77)}.cash{font-size:23px;color:var(--gold);font-weight:700;white-space:nowrap}.status .inventory{margin-left:auto}.map-panel{min-height:0;position:relative;border-radius:20px;border:1px solid #8ccbb940;overflow:hidden;background:#102a2a;display:flex;flex-direction:column}.map-heading{position:absolute;top:16px;left:20px;z-index:2;pointer-events:none}.map-heading strong{display:block;font-size:24px}.map-heading small{font-size:13px;color:#e6eee7}.map-toggle{position:absolute;top:17px;right:15px;z-index:3;font-size:13px;background:#101a23d9}.route-map{width:100%;height:100%;min-height:0;flex:1}.route-map .tile{cursor:pointer}.route-map .tile text{font-family:system-ui,sans-serif;pointer-events:none}.map-party{position:absolute;bottom:10px;left:15px;display:flex;gap:4px;align-items:end;padding:5px 10px;background:#0d1520c4;border:1px solid #ffffff24;border-radius:14px;max-width:calc(100% - 30px)}.map-party .portrait{width:42px;height:42px}.companion-names{font-size:11px;line-height:1.6;margin-left:6px;color:#eee1ef}.portrait{border:1px solid #e3afcf66;border-radius:50%;background:#392b43;width:52px;height:52px;overflow:hidden;display:inline-block;vertical-align:middle;flex-shrink:0}.portrait svg{width:100%;height:100%;display:block}.sidebar{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:auto}.command-card{background:linear-gradient(140deg,#302039,#1b1827);padding:24px;border:1px solid #fd78ba44;border-radius:18px}.command-card h2{font-size:25px;margin:8px 0 10px}.command-card .primary{width:100%;font-size:20px;margin-top:10px}.command-card p{font-size:15px}.recovery{font-size:14px;background:#72e4e514;color:#aef4e9;padding:10px 13px;border-radius:10px;border:1px solid #72e4e52f;margin-bottom:14px}.next-tiles{display:flex;gap:7px;flex-wrap:wrap;margin-top:17px}.next-tiles span{font-size:12px;padding:6px 8px;border-radius:7px;background:#ffffff0c}.party-card{padding:18px;border-radius:16px;background:#ffffff05;border:1px solid var(--line)}.party-card h3{font-size:14px;margin-bottom:12px;color:var(--muted)}.party-list{display:flex;flex-wrap:wrap;gap:9px 14px;font-size:14px}.party-list span{white-space:nowrap}.party-list .portrait{width:32px;height:32px;margin-right:5px}.party-card .note{font-size:12px;color:var(--muted);margin:12px 0 0}.history-peek{font-size:13px;line-height:1.8;color:#cbbbd2;margin:0}.history-button{align-self:flex-start;font-size:13px;padding:7px 12px}.scene-layout{height:calc(100svh - 66px);min-height:620px;position:relative;overflow:hidden;background:linear-gradient(0deg,#100d19b0,#100d1940),var(--scene) center/cover;isolation:isolate}.scene-person{position:absolute;bottom:12%;left:5%;height:85%;width:42%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 0 35px #0008);z-index:-1}.scene-person.second{left:32%;height:75%}.scene-person.enemy-person{left:47%;width:50%;height:65%;bottom:26%}.scene-layout .mascots{position:absolute;right:4%;top:10px}.chapter-heading{position:absolute;top:27px;left:5%}.chapter-heading h2{font-size:32px;text-shadow:0 2px 15px #000;margin-bottom:5px}.dialogue{position:absolute;bottom:28px;left:5%;right:5%;max-width:1100px;margin:auto;background:linear-gradient(140deg,#27182ded,#11131bf7);border:1px solid #ff83c078;border-top:3px solid var(--pink);box-shadow:0 18px 80px #000b;border-radius:17px;padding:24px 30px}.dialogue p{font-size:18px;line-height:1.85;margin:0 0 11px}.speaker{color:var(--pink);font-weight:800;margin-right:12px}.dialogue footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:15px}.dialogue footer small{font-size:12px}.dialogue .primary{min-width:180px}.battle-layout{height:calc(100svh - 66px);min-height:700px;max-width:1500px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 420px;grid-template-rows:75px 1fr;gap:16px;padding:18px 28px}.battle-stage{position:relative;overflow:hidden;min-height:0;border-radius:18px;border:1px solid #ae9b794f;background:linear-gradient(0deg,#100d19a8,#100d1900),var(--scene) center/cover}.enemy-heading{position:absolute;top:20px;left:24px;right:24px}.enemy-heading h2{font-size:26px;margin-bottom:10px;text-shadow:0 2px 5px #000}.enemy-heading .meter{max-width:none}.enemy-image{position:absolute;width:65%;height:63%;object-fit:contain;bottom:10%;left:25%;filter:drop-shadow(0 20px 15px #0009)}.battle-ally{position:absolute;width:43%;height:64%;object-fit:contain;object-position:bottom;bottom:-6%;left:-8%;filter:drop-shadow(0 10px 15px #0008)}.enemy-intent{position:absolute;bottom:20px;left:20px;right:20px;padding:14px 17px;border:1px solid #f7d48b77;background:#201719ed;border-radius:12px;font-size:16px}.enemy-intent strong{color:var(--gold)}.enemy-intent p{font-size:13px;line-height:1.6;margin:5px 0 0}.battle-controls{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}.turn-header{background:#ff62b218;border:1px solid #ff62b258;border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.turn-header strong{font-size:21px}.action-slots{display:flex;gap:5px}.action-slots i{width:18px;height:18px;border-radius:50%;background:var(--pink);box-shadow:0 0 9px #ff62b244}.action-slots i.used{background:#ffffff18;box-shadow:none}.action-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.action-tabs button{padding:10px 5px;font-size:14px}.action-tabs .selected{border-color:var(--pink);background:#562d48}.action-list{display:grid;gap:8px}.action-button{text-align:left;display:flex;gap:10px;align-items:center;padding:13px 14px;min-height:73px}.action-description{flex:1}.action-button strong{display:block;font-size:16px}.action-button small{display:block;font-size:12px;font-weight:400;line-height:1.6;margin-top:3px}.action-button .cost{color:var(--cyan);font-size:12px;white-space:nowrap}.last-actions{border-top:1px solid var(--line);padding-top:10px}.last-actions p{font-size:13px;line-height:1.6;margin:0 0 9px}.face{font-family:system-ui,sans-serif}.last-actions .face{font-size:27px;vertical-align:middle;margin-right:6px;color:var(--gold)}.combat-note{font-size:12px;color:var(--muted);margin:0}.event-layout{max-width:1300px;margin:auto;padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;min-height:calc(100svh - 66px);background:radial-gradient(ellipse at 20% 40%,#63324f44,transparent 60%)}.event-art{height:480px;position:relative;border-radius:24px;overflow:hidden;border:1px solid #ffffff20;background:linear-gradient(0deg,#151020,#251c28aa),var(--scene) center/cover}.event-art .main-character{position:absolute;height:110%;width:85%;bottom:-15%;left:0;object-fit:contain}.event-art .mascots{position:absolute;bottom:12px;right:5px}.event-copy{max-width:620px}.event-copy h1{font-size:33px;line-height:1.4}.event-copy p{font-size:18px}.event-choice{display:block;width:100%;text-align:left;padding:16px 20px;margin:10px 0}.event-choice strong{display:block;font-size:18px}.event-choice small{display:block;font-size:13px;line-height:1.7;margin-top:5px;font-weight:400}.result-mark{font-family:Georgia,serif;font-style:italic;font-size:75px;line-height:1.1;color:var(--pink);opacity:.8;margin-bottom:20px}.shop-layout{max-width:1050px;margin:auto;padding:35px 25px}.shop-title{display:flex;align-items:center;gap:18px;margin-bottom:20px}.shop-title h1{font-size:29px;margin:0}.shop-title .portrait{width:75px;height:75px}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.shop-item{border:1px solid var(--line);background:#241b2d;padding:20px;border-radius:14px}.shop-item h2{font-size:19px;margin-bottom:8px}.shop-item p{font-size:14px;color:var(--muted);min-height:48px}.shop-item button{width:100%;color:var(--gold)}.shop-footer{position:sticky;bottom:0;background:#100d19e8;padding:15px 0;display:flex;gap:15px;align-items:center}.shop-footer .primary{margin-left:auto}.toast{color:var(--cyan);font-size:14px;margin:10px 0;min-height:22px}dialog{background:#21192c;color:#fff;border:1px solid #b686ab;border-radius:18px;padding:25px;max-width:650px;width:calc(100% - 30px);max-height:85svh;line-height:1.8}dialog::backdrop{background:#05030bd9;backdrop-filter:blur(5px)}dialog h2{font-size:24px}dialog p,dialog li{font-size:16px}dialog button.primary{width:100%;margin-top:12px}.bag-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.bag-line span{font-size:15px}.bag-line button{padding:7px 12px;font-size:14px}.rules-list{padding-left:20px}.rules-list li{margin-bottom:13px}#roulette{position:fixed;inset:0;z-index:20;background:#09050ddd;backdrop-filter:blur(7px);display:grid;place-items:center}.roulette-card{width:min(540px,92vw);padding:30px 18px;background:radial-gradient(ellipse at top,#55253e,#1f1529);border:1px solid var(--pink);border-radius:22px;text-align:center;box-shadow:0 0 80px #ff62b229}.roulette-card p{font-weight:700;font-size:19px}.pointer{color:var(--pink);font-size:25px}#roll-track{display:flex;gap:7px;justify-content:center;margin:8px auto 20px}.roll-cell{width:64px;height:76px;border:1px solid #ffffff33;border-radius:12px;background:#130f1b;display:flex;flex-direction:column;justify-content:center;font-size:12px;color:var(--muted)}.roll-cell .face{font-size:39px;line-height:1.2;color:#fff}.roll-cell.active{background:var(--pink);border-color:#ffd1e9;color:#3d0a26;box-shadow:0 0 30px #ff62b278;transform:translateY(-4px)}.roll-cell.active .face{color:#370e2d}#roll-outcome{display:block;min-height:40px;font-size:24px;color:var(--gold)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1fr) 300px;padding:14px;gap:12px}.battle-layout{grid-template-columns:minmax(0,1fr) 350px;padding:14px;gap:12px}.status{gap:15px}.player-name{min-width:75px}.welcome-copy{left:50%;right:4%}.splash-person.reco{left:-14%;width:70%}.splash-person.suzu{left:4%;width:66%}.welcome .mascots{left:0;width:48%}.event-layout{gap:20px;padding:25px}}
@media(max-width:700px){:root{font-size:16px}.topbar{height:54px;padding:0 14px;gap:10px}.logo{font-size:18px;letter-spacing:0}.edition{font-size:10px}.topbar .subtle{padding:6px 8px;font-size:12px}.welcome{height:auto;min-height:calc(100svh - 54px);padding:255px 18px 25px;background:linear-gradient(0deg,#100d19 35%,#110b1a20),var(--scene) center top/auto 450px no-repeat}.splash-person.reco{height:400px;width:72%;left:-7%;bottom:auto;top:-28px}.splash-person.suzu{height:350px;width:65%;left:35%;bottom:auto;top:10px}.welcome-copy{position:relative;left:auto;right:auto;top:auto}.welcome h1{font-size:42px;text-shadow:0 2px 20px #000}.welcome h1 span{display:inline;margin-left:8px}.subtitle{font-size:19px;margin:12px 0 18px}.welcome .eyebrow{margin-bottom:7px}.start-panel{padding:18px;background:#211629f2}.welcome .mascots{position:relative;bottom:auto;left:auto;width:100%;margin-top:18px;gap:20px}.mascots img{width:68px;height:78px}.notice{font-size:12px}.game-layout{height:calc(100svh - 54px);min-height:660px;padding:10px;gap:10px;grid-template-columns:1fr;grid-template-rows:85px minmax(240px,1fr) auto}.status{grid-column:auto;padding:9px 12px;gap:8px;display:grid;grid-template-columns:1fr 1fr 70px;grid-template-rows:23px 35px}.player-name{grid-column:1/3;grid-row:1;font-size:14px;display:flex;align-items:center;gap:8px;min-width:0}.player-name small{font-size:10px}.cash{grid-column:3;grid-row:1;font-size:18px;text-align:right}.status .meter{grid-row:2;max-width:none;min-width:0}.meter-head{font-size:11px;margin-bottom:5px}.meter-track{height:8px}.status .inventory{grid-column:3;grid-row:2;font-size:12px;padding:8px 4px;margin:0}.map-heading{top:12px;left:14px}.map-heading strong{font-size:19px}.map-heading small{font-size:11px}.map-toggle{top:12px;right:12px;padding:7px 9px;font-size:11px}.map-party{bottom:8px;left:8px;padding:4px 7px;max-width:calc(100% - 16px);gap:3px}.map-party .portrait{width:29px;height:29px}.companion-names{font-size:9px;margin-left:3px}.sidebar{display:block;overflow:visible}.command-card{padding:15px;border-radius:14px}.command-card .eyebrow{font-size:10px;margin-bottom:4px}.command-card h2{font-size:21px;margin:3px 0 7px}.command-card p{font-size:13px;margin:0 0 6px;line-height:1.6}.command-card .primary{font-size:18px;margin-top:7px;min-height:50px}.recovery{font-size:12px;padding:7px 10px;margin-bottom:8px}.next-tiles{margin-top:9px;gap:5px}.next-tiles span{font-size:10px;padding:4px 7px}.party-card,.history-peek,.history-button{display:none}.scene-layout{height:calc(100svh - 54px);min-height:690px}.scene-person{height:62%;width:80%;left:-20%;bottom:32%}.scene-person.second{height:57%;width:80%;left:30%;bottom:32%}.scene-person.enemy-person{width:70%;height:45%;left:30%;bottom:41%}.chapter-heading{top:20px}.chapter-heading h2{font-size:26px}.scene-layout .mascots{top:70px;right:10px;gap:0}.scene-layout .mascots img{width:42px;height:55px}.scene-layout .mascots figcaption{font-size:8px}.dialogue{bottom:14px;left:12px;right:12px;padding:18px 18px 15px;max-height:58%;overflow:auto}.dialogue p{font-size:16px;line-height:1.8;margin-bottom:10px}.speaker{margin-right:7px}.dialogue footer{margin-top:10px}.dialogue .primary{min-width:125px;padding:10px 13px;font-size:15px}.battle-layout{height:auto;min-height:calc(100svh - 54px);padding:10px;gap:10px;grid-template-columns:1fr;grid-template-rows:85px 295px auto}.battle-stage{min-height:295px}.enemy-heading{top:13px;left:15px;right:15px}.enemy-heading h2{font-size:21px;margin-bottom:7px}.enemy-image{height:65%;width:58%;left:35%;bottom:13%}.battle-ally{height:76%;width:45%;left:-8%;bottom:-8%}.enemy-intent{bottom:9px;left:9px;right:9px;padding:10px 12px;font-size:14px}.enemy-intent p{font-size:12px;line-height:1.5}.battle-controls{overflow:visible;gap:9px}.turn-header{padding:10px 13px}.turn-header strong{font-size:18px}.action-list{grid-template-columns:1fr 1fr;gap:8px}.action-button{padding:10px;min-height:90px;align-items:start;position:relative}.action-button .portrait{display:none}.action-button strong{font-size:15px}.action-button small{font-size:11px}.action-button .cost{font-size:10px}.last-actions p{font-size:13px;margin-bottom:6px}.last-actions .face{font-size:23px}.combat-note{font-size:11px}.event-layout{min-height:calc(100svh - 54px);padding:16px;grid-template-columns:1fr;gap:18px;align-content:start}.event-art{height:220px}.event-art .main-character{height:180%;bottom:-65%;width:60%;left:0}.event-art .mascots{right:10px;bottom:10px}.event-art .mascots img{width:53px;height:65px}.event-art .mascots figcaption{font-size:10px}.event-copy h1{font-size:26px;margin-bottom:14px}.event-copy p{font-size:16px}.event-choice{padding:14px 16px}.event-choice strong{font-size:17px}.event-choice small{font-size:12px}.result-mark{font-size:45px;margin-bottom:10px}.shop-layout{padding:22px 15px}.shop-grid{grid-template-columns:1fr;gap:10px}.shop-item{padding:15px}.shop-item p{min-height:0}.shop-title h1{font-size:25px}.shop-title .portrait{width:60px;height:60px}.shop-footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}.roll-cell{height:68px;width:45px}.roll-cell .face{font-size:34px}.roulette-card{padding:25px 12px}.roulette-card p{font-size:17px}#roll-track{gap:5px}}
@media(max-width:700px){.battle-layout:has([data-tab="ally"].selected){grid-template-rows:85px 210px auto}.battle-layout:has([data-tab="ally"].selected) .battle-stage{min-height:210px}.battle-layout:has([data-tab="ally"].selected) .enemy-image{height:63%;bottom:14%}.battle-layout:has([data-tab="ally"].selected) .enemy-heading h2{font-size:18px}.battle-layout:has([data-tab="ally"].selected) .enemy-intent{padding:7px 10px}.battle-layout:has([data-tab="ally"].selected) .enemy-intent p{display:none}.battle-layout:has([data-tab="ally"].selected) .action-button{min-height:80px}.last-actions p:not(:first-child){display:none}.scene-layout .mascots img{width:52px;height:68px}.scene-layout .mascots figcaption{font-size:9px}}
.story-replay{width:100%;margin-top:12px;background:#262133;border-color:#72e4e54a;font-size:14px;color:var(--cyan)}.story-reader .dialogue{display:flex;flex-direction:column;max-height:67%;}.story-lines{overflow-y:auto;min-height:0;padding-right:8px;scrollbar-color:#a5618f #201625}.story-reader .dialogue footer{flex-shrink:0;border-top:1px solid var(--line);padding-top:12px}.story-reader .dialogue footer .subtle{font-size:13px;padding:7px 10px}.story-reader .chapter-heading{right:15px}.story-reader .chapter-heading .eyebrow{font-size:11px;letter-spacing:1px}.story-reader .mascots{top:60px}.story-reader .scene-person{bottom:30%}
@media(max-width:700px){.story-reader .dialogue{max-height:65%;bottom:12px;padding:17px 16px 12px}.story-reader .scene-person{bottom:42%;height:54%}.story-reader .scene-person.second{bottom:42%;height:49%}.story-reader .scene-person.enemy-person{bottom:47%;height:37%}.story-reader .chapter-heading h2{font-size:23px}.story-reader .chapter-heading{top:16px}.story-reader .mascots{top:62px}.story-reader .dialogue p{font-size:16px;line-height:1.85}.story-reader .dialogue footer{gap:8px}.story-reader .dialogue footer .primary{min-width:100px;font-size:14px}.story-reader .dialogue footer small{font-size:11px;white-space:nowrap}.story-reader .dialogue footer .subtle{font-size:12px;padding:7px 5px}.story-replay{font-size:13px;padding:12px 8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}


/* Movement uses a visible tumbling die; the result stays until acknowledged. */
.movement-roll .pointer{display:none}.dice-stage{height:190px;width:100%;display:grid;place-items:center;perspective:600px}.physical-die{width:126px;height:126px;border-radius:24px;border:3px solid #fff4df;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:9px;padding:19px;background:linear-gradient(135deg,#fffdf6,#e8d1dd);box-shadow:inset -8px -9px 0 #b18b9d,0 18px 30px #0008;transform:rotate(-7deg)}.physical-die i{display:block;border-radius:50%}.physical-die .pip{background:#472036;box-shadow:inset 1px 2px 2px #15071380}.physical-die.rolling{animation:dice-tumble .38s linear infinite}.roll-confirm{display:block;width:100%;margin-top:20px;min-height:56px;font-size:20px}.roulette-card{max-height:94svh;overflow:auto}#roll-outcome{line-height:1.6}.movement-roll #roll-track{margin:0 auto 12px}@keyframes dice-tumble{0%{transform:translateY(-18px) rotate(-22deg) rotateY(0deg)}50%{transform:translateY(13px) rotate(25deg) rotateY(35deg)}100%{transform:translateY(-18px) rotate(158deg) rotateY(0deg)}}
@media(max-width:700px){.dice-stage{height:175px}.physical-die{width:116px;height:116px;padding:17px;gap:8px}#roll-outcome{font-size:24px}.roll-confirm{font-size:19px}}

/* Restore the original character cut-in and dice reveal, scoped to movement. */
.movement-roll .legacy-roll-panel{width:min(720px,94vw);height:min(520px,90svh);padding:0;display:grid;grid-template-columns:1fr 1fr;position:relative;isolation:isolate;background:radial-gradient(ellipse at 40% 40%,#59254b,#100d1b 85%);border:1px solid #f361b0;border-radius:20px;box-shadow:0 20px 80px #08071999;overflow:hidden}.legacy-roll-portrait{height:100%;min-height:0;padding-top:25px;position:relative}.legacy-roll-portrait img{height:100%;width:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 20px #0008)}.legacy-roll-right{padding:25px 25px 25px 0;display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0}.legacy-roll-right #roll-label{font-size:20px;margin:0;text-align:center}.legacy-roll-right #roll-track{margin:12px 0 0;width:100%}.legacy-roll-right .dice-stage{height:150px}.legacy-roll-right .physical-die{height:125px;width:125px;padding:25px;gap:11px;border-radius:12px;background:linear-gradient(140deg,#ffedf8,#d8c0e0);border:1px solid #fb8dc8;box-shadow:0 6px 0 #7b2f68,0 10px 30px #0d1228;transform:none}.legacy-roll-right .physical-die .pip{background:#b41970;box-shadow:none}.legacy-roll-right .physical-die.rolling{animation:original-dice-shake .2s infinite}.legacy-roll-right #roll-outcome{font-size:74px;font-weight:900;color:#ff9bce;line-height:1.15;min-height:86px;margin-top:10px;text-shadow:0 2px 15px #deac5c55}.legacy-roll-right #roll-caption{font-size:20px;color:#d7b4ce;margin:10px 0 0;line-height:1.5}.legacy-roll-right .roll-confirm{font-size:18px;margin-top:15px;min-height:52px}.legacy-roll-panel.settled{animation:original-dice-reveal .3s ease-out}@keyframes original-dice-shake{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(10deg) translateY(-5px)}}@keyframes original-dice-reveal{from{transform:scale(.95)}to{transform:scale(1)}}
@media(max-width:700px){.movement-roll .legacy-roll-panel{height:430px;grid-template-columns:43% 57%}.legacy-roll-portrait{padding-top:55px}.legacy-roll-portrait img{width:145%;max-width:none;margin-left:-15%;object-position:bottom}.legacy-roll-right{padding:20px 15px 20px 0}.legacy-roll-right #roll-label{font-size:16px}.legacy-roll-right .physical-die{height:98px;width:98px;padding:20px;gap:9px}.legacy-roll-right .dice-stage{height:125px}.legacy-roll-right #roll-outcome{font-size:60px;min-height:70px}.legacy-roll-right #roll-caption{font-size:18px}.legacy-roll-right .roll-confirm{font-size:16px;padding:10px}}
.legacy-roll-portrait{overflow:hidden}.legacy-roll-right{position:relative;z-index:1}


.travel-layout .map-panel .tile[aria-label*="現在地"]{filter:drop-shadow(0 0 9px #ff9bce)}
/* Restore the original illustrated map, portrait pawn and combat staging. */
.restored-route{background:#e8e8d1}.restored-map-node{color:#43684f}.restored-map-node:hover circle:not(.active-map-ring){fill:#ffd9ec;stroke:#c63783}.active-map-ring{fill:#f7479c20;stroke:#ed428f;stroke-width:3;animation:map-ring 1.4s ease-out infinite}.restored-route #party-token{filter:drop-shadow(0 4px 4px #3d283d66)}.map-heading{background:#18222ddd;border:1px solid #f59bc444;border-radius:12px;padding:9px 13px}.map-toggle{border-color:#f59bc444}.map-panel{border-color:#f59bc45c}.travel-layout .map-heading{max-width:calc(100% - 35px)}
.restored-combat{isolation:isolate;background:linear-gradient(0deg,#170c25b0,#170c2510 55%),var(--scene) center/cover}.restored-combat .enemy-heading{z-index:5;background:linear-gradient(100deg,#28152aeb,#151521b5);padding:12px 16px;border:1px solid #ff9dc65c;border-radius:12px;top:15px;left:18px;right:18px}.restored-combat .enemy-heading h2{font-size:23px;margin:0 0 8px}.restored-combat .enemy-intent{z-index:6}.arena-floor{position:absolute;left:2%;right:2%;bottom:15%;height:27%;border-radius:50%;background:radial-gradient(ellipse,#f5b7e91a,#d98ee00b 55%,transparent 70%);border-bottom:1px solid #e5b9dc22}.road-fighter{position:absolute;bottom:20%;height:61%;width:42%;z-index:2;transform-origin:center bottom}.road-fighter>img{position:relative;z-index:2;object-fit:contain;object-position:bottom;width:100%;height:100%;filter:drop-shadow(0 8px 13px #0008)}.road-hero{left:0}.road-enemy{right:1%;width:49%;height:58%}.fighter-shadow{position:absolute;bottom:-5px;left:15%;width:70%;height:18px;background:#120a20a6;border-radius:50%;filter:blur(5px);z-index:1}.arena-versus{position:absolute;left:45%;top:46%;font-family:Georgia,serif;font-size:35px;font-style:italic;color:#ffdeab77;z-index:1;text-shadow:0 2px 12px #140515}.arena-dice{position:absolute;bottom:calc(20% - 20px);left:15px;right:15px;display:flex;gap:12px;justify-content:center;z-index:5}.arena-dice span{font-size:16px;padding:6px 12px;border:1px solid #db9bb74d;background:#1a1025da;border-radius:8px;color:#f7d48b}.guard-ring{display:none;position:absolute;inset:12% -5% -6%;z-index:3;border:3px solid #8ee7f4;border-radius:50%;box-shadow:inset 0 0 35px #74d0ff66,0 0 35px #74d0ff66}.guarding .guard-ring{display:block;animation:road-shield .6s ease-out}.road-hero.attacking{animation:road-hero-lunge .5s ease-in-out}.road-enemy.attacking{animation:road-enemy-lunge .5s ease-in-out}.road-fighter.hit{animation:road-hit .45s ease-in-out;filter:brightness(1.5) sepia(.2)}#combat-effects{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:hidden}.combat-cutin{position:absolute;left:0;right:0;top:25%;padding:10px 20px;background:linear-gradient(90deg,transparent,#722355ee 20%,#36234ee8 80%,transparent);border-block:1px solid #ffaad05e;text-align:center;animation:road-cutin .65s ease-out both;min-height:60px;display:flex;align-items:center;justify-content:center}.combat-cutin strong{font-size:25px;color:#fff4e6;text-shadow:0 2px 6px #200a22;position:relative;z-index:2}.combat-cutin.with-character{height:135px;top:20%;overflow:hidden;padding-left:35%}.combat-cutin img{position:absolute;height:340%;width:50%;object-fit:cover;object-position:top;left:0;top:-30%}.combat-number{position:absolute;top:42%;font-size:64px;font-weight:900;color:#ffe7a6;text-shadow:3px 3px #57203c,-1px -1px #57203c;animation:road-damage .65s ease-out both;line-height:1}.on-enemy{left:66%}.on-hero{left:18%}.combat-number small{display:block;font-size:20px;margin-top:6px}.combat-number.critical{color:#ffd16b}.combat-number.healing{color:#a4ffca}.combat-slash{position:absolute;top:43%;width:160px;height:9px;border-radius:50%;background:#fff5e2;box-shadow:0 0 14px 7px #ff99d6,0 0 35px 12px #ed2d8866;animation:road-slash .5s ease-out both;transform:rotate(-55deg)}.combat-slash.blast{height:110px;width:110px;border-radius:50%;background:radial-gradient(circle,#fff6b2,#ffac3c 40%,#ef4f6977 70%,transparent);box-shadow:0 0 35px #ffab3d}.combat-callout{position:absolute;left:10%;right:10%;top:62%;font-size:25px;font-weight:900;text-align:center;color:#b9edff;text-shadow:0 2px 5px #11051b}.combat-callout.power-up{color:#ffd6ee}.combat-resolution{position:absolute;left:8%;right:8%;top:45%;border:1px solid #f69fcb77;border-radius:12px;background:#201127e8;color:#fff4e5;padding:18px;text-align:center;font-size:20px;line-height:1.7}.combat-victory{position:absolute;left:0;right:0;top:28%;text-align:center;font:italic 900 55px Georgia,serif;color:#ffe6a3;text-shadow:0 0 24px #ed4b9b}.wind-effect{position:absolute;inset:25% 8%;border:9px solid #c7f5ffbb;border-radius:50%;box-shadow:0 0 35px #78d6d477,inset 0 0 25px #a8dcff77;animation:road-shield .65s ease-out}
@keyframes map-ring{from{r:30;opacity:.85}to{r:43;opacity:0}}@keyframes road-hero-lunge{0%,100%{transform:translateX(0)}45%{transform:translateX(70px) rotate(5deg)}}@keyframes road-enemy-lunge{0%,100%{transform:translateX(0)}45%{transform:translateX(-70px) rotate(-4deg)}}@keyframes road-hit{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}@keyframes road-damage{0%{opacity:0;transform:translateY(20px) scale(.7)}25%{opacity:1;transform:translateY(-10px) scale(1.1)}80%{opacity:1}100%{opacity:0;transform:translateY(-55px)}}@keyframes road-slash{0%{opacity:0;transform:rotate(-55deg) scaleX(0)}35%{opacity:1;transform:rotate(-55deg) scaleX(1)}100%{opacity:0;transform:rotate(-55deg) scaleX(1.3)}}@keyframes road-cutin{0%{opacity:0;transform:translateX(-60px)}20%,75%{opacity:1;transform:none}100%{opacity:0;transform:translateX(40px)}}@keyframes road-shield{0%{opacity:0;transform:scale(.6)}40%{opacity:1;transform:scale(1)}100%{opacity:.3;transform:scale(1.1)}}
@media(max-width:700px){.map-heading{padding:7px 9px;top:9px;left:9px;max-width:65%}.map-heading strong{font-size:17px}.map-toggle{right:9px;top:10px}.restored-combat .enemy-heading{top:9px;left:9px;right:9px;padding:8px 11px}.restored-combat .enemy-heading h2{font-size:17px;margin-bottom:5px}.restored-combat .enemy-heading .meter-head{font-size:11px}.restored-combat .enemy-heading .meter-track{height:7px}.restored-combat .road-fighter{bottom:24%;height:47%;width:45%}.restored-combat .road-enemy{height:42%;width:48%}.restored-combat .enemy-intent{font-size:12px;padding:8px;bottom:7px}.restored-combat .enemy-intent p{font-size:10px;margin-top:3px}.arena-dice{bottom:24%;gap:6px}.arena-dice span{font-size:11px;padding:3px 6px}.arena-versus{top:44%;font-size:24px}.combat-cutin strong{font-size:18px}.combat-cutin{top:30%;padding:8px 10px;min-height:40px}.combat-cutin.with-character{height:95px;top:27%}.combat-number{font-size:43px;top:45%}.combat-number small{font-size:13px}.combat-slash{width:90px;height:6px}.combat-callout{font-size:18px;top:61%}.combat-resolution{font-size:15px;left:5%;right:5%;padding:13px;top:37%}.combat-victory{font-size:36px;top:25%}.road-hero.attacking{animation-name:road-hero-lunge}.battle-layout .battle-stage.restored-combat{min-height:330px}.battle-layout{grid-template-rows:85px 330px auto}}

.battle-map-button{float:right;font-size:12px;padding:5px 9px;margin-left:8px;color:var(--cyan)}.battle-map-peek{height:320px;border-radius:12px;overflow:hidden}.battle-map-peek .route-map{height:100%}
@media(min-width:701px){.game-layout,.battle-layout{min-height:560px}}

.map-panel .map-heading{position:relative;top:auto;left:auto;max-width:calc(100% - 155px);align-self:flex-start;flex-shrink:0;margin:10px 0 0 10px;padding:8px 12px}.map-panel .map-party{position:relative;bottom:auto;left:auto;align-self:flex-start;flex-shrink:0;margin:0 10px 9px;max-width:calc(100% - 20px)}.travel-layout .map-heading{max-width:calc(100% - 20px)}.map-panel .route-map{min-height:0}.map-toggle{top:12px;right:12px}
@media(max-width:700px){.map-panel .map-heading{margin:7px 0 0 7px;padding:6px 8px;max-width:calc(100% - 114px)}.map-panel .map-party{margin:0 7px 7px;max-width:calc(100% - 14px)}.map-toggle{top:10px;right:9px}}
