.dungeon-app{background:radial-gradient(ellipse at 80% 0,#30152b 0,transparent 45%),#0c0b13;font-size:calc(var(--ui-font)*.82);color:#eee8ef}
.dungeon-app main{max-width:1240px;padding:16px 28px 40px}.top-nav{display:flex;align-items:center;gap:24px;margin-bottom:16px;font-size:14px}.top-nav>a{text-decoration:none}.top-nav>span{font-size:10px;letter-spacing:.2em;color:#b7a8bc}.game-settings{margin-left:auto;position:relative}.game-settings summary{cursor:pointer;color:#dbc39b;padding:8px}.game-settings[open]{background:#221928;border:1px solid #715367;border-radius:12px;padding:12px;position:absolute;right:24px;top:16px;z-index:10;width:min(520px,calc(100vw - 72px));box-shadow:0 16px 50px #000}.game-settings .audio-controls{font-size:16px}.game-settings .text-setting{font-size:16px}
.dungeon-hero{position:relative;overflow:hidden;border:1px solid #765062;border-radius:20px;background:linear-gradient(90deg,#170f20 5%,#170f20ef 28%,#170f2077 55%,#170f2010),url('../assets/entrances-v1/dungeon.png') center 42%/cover;min-height:174px;margin-bottom:22px;box-shadow:0 16px 60px #0004}.hero-copy{padding:18px 30px}.hero-copy .eyebrow{font-size:11px;letter-spacing:.2em;color:#e1b981;margin:0 0 4px}.hero-copy h1{font-family:'Yu Mincho',serif;font-size:38px;line-height:1.25;margin:0;color:#fff1de;letter-spacing:.12em;text-shadow:0 2px 15px #000}.hero-copy h1 small{display:block;font-size:15px;letter-spacing:.18em;margin:6px 0}.hero-copy>p:last-child{font-size:14px;color:#e0cedd;margin:10px 0 0}
.dungeon-app .layout{grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.game-stage{min-width:0}.dungeon-app #hud{background:#241c2c;border:1px solid #504055;border-radius:10px;font-size:14px;letter-spacing:.02em;padding:10px 14px}.vital-signs{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:12px 2px}.dungeon-app .energy-panel,.dungeon-app .fire{padding:0;margin:0;display:flex;gap:8px;align-items:center;flex-wrap:nowrap;font-size:13px}.dungeon-app .energy-panel strong{font-size:13px;white-space:nowrap}.vital-signs progress{height:10px;min-width:20px;flex:1;border:none;border-radius:9px;overflow:hidden}.vital-signs progress::-webkit-progress-bar{background:#322636}.vital-signs progress::-webkit-progress-value{background:#e493ba;border-radius:9px}.fire progress::-webkit-progress-value{background:#e5bd76}.fire strong{font-size:12px;white-space:nowrap}.map-frame{border:1px solid #a68058;border-radius:15px;padding:5px;background:linear-gradient(135deg,#72503c,#231927 35%,#72503c);box-shadow:0 12px 42px #0008}.dungeon-app #map{border:0;border-radius:10px}.dungeon-app #log{font-size:.88em;min-height:0;padding:10px 14px;margin:10px 0;border-left:2px solid #d4ad73;background:#211a29;font-weight:400}.dungeon-app button{font-size:15px;min-height:44px;margin:0;border-color:#725268;background:linear-gradient(#39283d,#291e31);transition:background .15s,border-color .15s}.dungeon-app button:hover:enabled{border-color:#efb5d6;background:#503249}.dungeon-app button:disabled{opacity:.45;cursor:default}.dungeon-app a:focus-visible,.dungeon-app summary:focus-visible{outline:2px solid #ffd57c;outline-offset:3px}.play-controls{display:flex;gap:20px;align-items:center;margin:16px 0}.dungeon-app .controls{flex-shrink:0}.dungeon-app .controls button{min-width:52px;min-height:44px;font-size:18px;margin:2px}.dungeon-app .quick-tools{display:grid;grid-template-columns:1fr;gap:6px;flex:1;position:static;padding:0;background:none}.dungeon-app .quick-tools button{text-align:left;padding:9px 15px;font-size:14px}.direction-tools{gap:8px;margin:12px 0}.direction-tools strong{font-size:13px}.direction-tools button{font-size:13px;padding:8px 10px}.dungeon-app #attack-front{background:linear-gradient(120deg,#8d3b69,#552e51);border-color:#d58bab}.dungeon-app #pad-status{font-size:13px;color:#b3a5bc}.input-help{font-size:14px}.exit-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.exit-actions button{font-size:13px}
.mission-sidebar>section,.sidebar-details,#departure-brief{border:1px solid #49384f;border-radius:14px;background:linear-gradient(130deg,#251c2d,#17131f);padding:16px;margin:0 0 14px}.mission-sidebar h2{font-size:18px;margin:0 0 12px}.mission-sidebar p{font-size:14px;line-height:1.7;margin:8px 0;color:#cdbdd4}.dungeon-app .expedition{padding:18px 16px}.course-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.course-cards button{display:flex;flex-direction:column;align-items:center;padding:10px 2px;border-radius:10px;gap:2px}.course-cards strong{font-size:30px;color:#f1d6a5;font-family:Georgia,serif;line-height:1.2}.course-cards strong small{font-size:12px}.course-cards span{font-size:13px}.course-cards small{font-size:10px;color:#bdafc8}.course-cards button[aria-pressed=true]{background:linear-gradient(145deg,#713a60,#392a42);border-color:#e9b97d;box-shadow:inset 0 0 20px #f3afbd0c}.expedition>label{font-size:12px;color:#c9b7ce;display:flex;align-items:center;gap:10px}.expedition #course-select{font-size:13px;padding:5px;flex:1}.expedition #course-start{width:100%;margin-top:12px;background:linear-gradient(100deg,#d6ad72,#eed4a3);color:#291a2a;border-color:#edc48b;font-weight:700;letter-spacing:.08em}.expedition>p{font-size:12px}.dungeon-app .objective{border-left:3px solid #dbb881;padding:14px 16px}.objective strong{font-size:12px;color:#e6c68d;letter-spacing:.12em}.objective #objective{font-size:15px;margin:6px 0 0;color:#f2e7f0}#departure-brief summary,.sidebar-details summary{font-size:14px;cursor:pointer;color:#e9d7df}#departure-brief p{font-size:14px}.atlas-panel{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:4px 12px}.atlas-panel h2{font-size:16px}.dungeon-app #minimap{width:130px;grid-column:2;grid-row:1/3}.atlas-panel p{font-size:11px}.dungeon-app .item{font-size:13px;padding:8px;background:#241d2d;border-color:#49384f}.dungeon-app .item img{height:60px}.dungeon-app .adventure{padding:12px 0 0;border:0;background:none}.adventure h2{display:none}.adventure label{font-size:14px}.adventure select{font-size:14px}.adventure button{margin:8px 4px 0 0}.mini-label{display:block;color:#c9a476;font-size:10px;letter-spacing:.18em}.first-guide a{display:block;font-size:15px;margin-top:6px}.first-guide p{font-size:12px}.dungeon-app #companion-talk{padding:12px 16px;margin:14px 0;background:linear-gradient(120deg,#342039,#1c1627);border-color:#55344f}.game-footer{border-top:1px solid #453247;margin-top:30px;padding-top:18px;font-size:14px;color:#b5a5be}.game-footer a{margin-left:12px}.game-footer button{margin:8px}.dungeon-app #stairs-panel{margin:10px 0}.dungeon-app #stairs-panel button{margin-right:10px}
@media(min-width:1550px){.dungeon-app main{max-width:1360px}.dungeon-app .layout{grid-template-columns:minmax(0,1fr) 370px}}
@media(max-width:900px){.dungeon-app main{padding:12px 16px}.dungeon-app .layout{grid-template-columns:minmax(0,1fr) 285px;gap:16px}.hero-copy{padding:18px 22px}.dungeon-hero{min-height:160px}.vital-signs{gap:10px;grid-template-columns:1fr}.course-cards span{font-size:12px}}
@media(max-width:680px){.dungeon-app main{padding:10px 12px}.top-nav{gap:8px;margin-bottom:10px}.top-nav>span{display:none}.dungeon-hero{min-height:146px;margin-bottom:14px;background-position:62% 40%}.hero-copy{padding:16px}.hero-copy h1{font-size:30px}.hero-copy>p:last-child{font-size:12px}.dungeon-app .layout{display:flex;flex-direction:column;gap:18px}.game-stage,.mission-sidebar{width:100%}.dungeon-app #hud{font-size:12px}.vital-signs{grid-template-columns:1fr 1fr;gap:12px}.vital-signs .energy-panel strong{font-size:11px}.fire{font-size:11px!important}.play-controls{gap:10px}.direction-tools{gap:6px}.mission-sidebar .course-cards span{font-size:15px}.mission-sidebar .course-cards small{font-size:12px}.game-footer a{display:inline-block}.game-settings[open]{right:12px;top:10px}.dungeon-app #companion-lines p{font-size:15px}}
.dungeon-app .dungeon-hero{background-size:auto,780px auto;background-position:center,right 16%;background-repeat:no-repeat;background-color:#170f20}
.vital-signs>div{min-width:0}.vital-signs progress{width:0}.game-settings .audio-controls label{max-width:100%;min-width:0}.game-settings .audio-controls select{min-width:0;max-width:100%}
@media(max-width:680px){.dungeon-app .dungeon-hero{background-size:auto,430px auto;background-position:center,right 8%}}

#boss-start{width:100%;border-color:#c17aa6;background:linear-gradient(110deg,#783659,#34203e);color:#ffe3ed;font-weight:700}

#guard-status{font-size:13px;color:#ebc99a}#guard{border-color:#8ac1db;background:linear-gradient(110deg,#304256,#34223e)}

#reaper-start{width:100%;margin-bottom:9px;background:linear-gradient(110deg,#34495f,#24273d);border-color:#a7c4dd;color:#e5f7ff;font-weight:700}

.map-frame{position:relative}#command-open{position:absolute;right:14px;bottom:14px;z-index:2;background:#25182fea;border:1px solid #e1b883;color:#ffe3b5;box-shadow:0 3px 15px #0009}#map-commands{position:absolute;right:10px;bottom:10px;z-index:5;width:min(370px,calc(100% - 20px));max-height:calc(100% - 20px);overflow:auto;overscroll-behavior:contain;box-sizing:border-box;background:#1b1525f5;border:1px solid #d5ad78;border-radius:14px;padding:14px;box-shadow:0 12px 35px #000b;font-size:15px}.command-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.command-heading button{font-size:12px;padding:4px 9px;min-height:34px}.command-hint{font-size:12px;color:#c6b7d1;line-height:1.6;margin:8px 0}.command-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.command-list button{display:flex;align-items:center;gap:7px;padding:8px;text-align:left;min-width:0;font-size:13px}.command-list img{width:32px;height:36px;object-fit:contain}.command-list span{min-width:0}.command-list small{display:block;font-size:10px;color:#bfafcc}.command-list button[aria-pressed=true]{border-color:#f5d094;background:#654057}.command-list .unavailable{opacity:.6}#command-description{font-size:14px;color:#f3e0eb;margin:12px 0}#command-target-label{display:block;font-size:13px}#command-target{width:100%;font-size:14px;box-sizing:border-box}#command-use{width:100%;margin-top:10px;background:linear-gradient(110deg,#d4a974,#efd2a3);color:#28192b;font-weight:bold}@media(max-width:680px){#map-commands{padding:10px;font-size:14px}.command-list button{font-size:12px;padding:6px}.command-list img{width:25px;height:29px}#command-open{font-size:12px;min-height:38px;right:10px;bottom:10px}}

#reaper-intro{width:min(1000px,94vw);padding:16px;background:#100e1b;color:#f4e6d0;border:1px solid #c6a16b;border-radius:14px}#reaper-intro::backdrop{background:#05040aed}#reaper-intro video{width:100%;max-height:72vh;aspect-ratio:16/9;background:black}#reaper-intro button{margin:6px;padding:12px 20px}.reaper-movie-tools{margin-top:16px}.reaper-movie-tools input{max-width:100%}

/* Visual polish: engraved status plate, glowing gauges, lantern-lit map frame. */
.dungeon-app #hud{position:relative;background:linear-gradient(90deg,#2d1f33,#1c1624 60%,#2a1d2c);border:1px solid #6d5160;border-top-color:#a3805f;box-shadow:inset 0 1px 0 #ffffff0f,0 6px 18px #0006;font-family:'Yu Mincho',serif;letter-spacing:.08em;color:#f3e2cf;padding:11px 18px}
.dungeon-app #hud::before{content:'◆';color:#d9b37a;margin-right:10px;font-size:.8em}
.vital-signs progress{height:12px;box-shadow:inset 0 0 0 1px #ffffff14,0 0 0 1px #00000080}
.vital-signs progress::-webkit-progress-value{background:linear-gradient(90deg,#b8457f,#f3a2c9);box-shadow:0 0 10px #ff8cc466}
.fire progress::-webkit-progress-value{background:linear-gradient(90deg,#b77a2e,#f6d38e);box-shadow:0 0 10px #ffc46a66}
.energy-panel .low::-webkit-progress-value{background:linear-gradient(90deg,#a3242f,#ff6b5d)}
.vital-signs progress::-moz-progress-bar{background:linear-gradient(90deg,#b8457f,#f3a2c9)}.fire progress::-moz-progress-bar{background:linear-gradient(90deg,#b77a2e,#f6d38e)}
.map-frame{padding:6px;background:linear-gradient(135deg,#8a6444,#2a1c2c 22%,#1a1220 50%,#2a1c2c 78%,#8a6444);box-shadow:0 0 0 1px #00000099,0 18px 50px #000a,0 0 40px #b0457a1c}
.map-frame::after{content:'';position:absolute;inset:6px;border-radius:10px;box-shadow:inset 0 0 0 1px #d9b37a33;pointer-events:none}
.dungeon-app #log{font-family:'Yu Mincho',serif;letter-spacing:.03em;background:linear-gradient(90deg,#241b2a,#1a1520)}

/* Roguelike layer: daily run, stair boons, run score and rankings. */
.daily-panel{background:linear-gradient(135deg,#2c2140,#161322)!important;border-color:#8f7ab8!important}.daily-panel h2{font-family:'Yu Mincho',serif;letter-spacing:.1em;color:#e8d8ff}#daily-info{font-size:14px;color:#f1e3c4}#daily-start{width:100%;background:linear-gradient(110deg,#5b4a93,#2f2548);border-color:#b7a4ec;color:#f4eeff;font-weight:700;letter-spacing:.06em}
.boon-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.boon-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px!important;min-height:92px;border-radius:12px!important;background:linear-gradient(160deg,#35283f,#1d1726)!important;border-color:#6d5a78!important}.boon-card strong{font-family:'Yu Mincho',serif;font-size:16px;color:#f7e2b6}.boon-card small{font-size:12px;line-height:1.5;color:#d6c7dc}.boon-card[aria-pressed=true]{border-color:#f3cf8c!important;box-shadow:0 0 0 1px #f3cf8c,0 0 18px #f3cf8c40;background:linear-gradient(160deg,#503a4a,#261c2d)!important}.boon-card.cursed{background:linear-gradient(160deg,#3f1b27,#1c1016)!important;border-color:#8e3a4d!important}.boon-card.cursed strong{color:#ff9aa8}.boon-card.cursed[aria-pressed=true]{border-color:#ff7f8f!important;box-shadow:0 0 0 1px #ff7f8f,0 0 18px #ff5f7a40}
.boon-list{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}.boon-chip{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid #d9b37a88;background:#2a2030;color:#f5ddb0}.boon-chip.cursed{border-color:#e0707088;background:#351820;color:#ffb0b8}
.board-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:10px 0}.board-tabs button{min-height:34px!important;padding:4px!important;font-size:13px!important}.board-tabs [aria-pressed=true]{border-color:#e9c48b!important;background:linear-gradient(#5a3d4f,#3a2838)!important;color:#ffe7bd}
.ranking-list{list-style:none;counter-reset:rank;margin:0;padding:0}.ranking-list li{counter-increment:rank;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:8px;padding:7px 4px;border-bottom:1px solid #3a2d40}.ranking-list li::before{content:counter(rank);grid-row:1/3;align-self:center;text-align:center;font-family:Georgia,serif;font-size:17px;color:#bfa9c7}.ranking-list li:nth-child(1)::before{color:#ffd66b}.ranking-list li:nth-child(2)::before{color:#dfe6f0}.ranking-list li:nth-child(3)::before{color:#e0a070}.ranking-list strong{font-family:Georgia,serif;font-size:17px;color:#f6e6d6}.ranking-list small{font-size:11px;color:#b9a8c2}.ranking-list li.latest{background:linear-gradient(90deg,#f3cf8c22,transparent);border-radius:8px}.ranking-list li.empty{display:block;color:#b9a8c2;font-size:13px}.ranking-list li.empty::before{content:none}
.score-card{margin:14px 0;padding:16px 18px;border-radius:14px;border:1px solid #a88763;background:radial-gradient(ellipse at 20% 0,#5a3a4a,#1e1624 70%);box-shadow:inset 0 1px 0 #ffffff14}.score-card.best{border-color:#ffd66b;box-shadow:0 0 24px #ffd66b33,inset 0 1px 0 #ffffff1c}.score-head{display:flex;align-items:baseline;gap:14px}.score-head span{font-size:12px;letter-spacing:.3em;color:#d9b37a}.score-head strong{font-family:Georgia,serif;font-size:44px;line-height:1.1;color:#fff0d6;text-shadow:0 0 18px #ffb46b55}.score-badge{margin:4px 0 8px;font-size:15px;color:#ffd9a0}.score-card ul{list-style:none;margin:8px 0;padding:0}.score-card li{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;border-bottom:1px dashed #ffffff14}.score-card li b{font-family:Georgia,serif}.score-card textarea{width:100%;box-sizing:border-box;margin-top:8px;background:#140f1a;color:#f1e3c4;border:1px solid #6d5160;border-radius:8px}.share-status{display:block;font-size:13px;color:#cde9d8;margin-top:6px}#share-result{margin-top:6px}
.lost-items .item{filter:grayscale(.85) brightness(.6);border-style:dashed}.lost-items p{grid-column:1/-1;font-size:13px;color:#ffb0b8}
#floor-title{position:absolute;left:0;right:0;top:40%;z-index:4;text-align:center;font-family:'Yu Mincho',serif;font-size:clamp(20px,3.2vw,34px);letter-spacing:.3em;color:#fff0d6;text-shadow:0 0 18px #000,0 0 30px #d9b37a88;pointer-events:none;opacity:0}#floor-title.show{animation:floor-title 1.8s ease-out forwards}
.map-frame.floor-enter #map{animation:floor-enter .9s ease-out}
@keyframes floor-title{0%{opacity:0;transform:translateY(8px);letter-spacing:.5em}20%{opacity:1;transform:none;letter-spacing:.3em}70%{opacity:1}100%{opacity:0}}
@keyframes floor-enter{0%{filter:brightness(0)}100%{filter:none}}
@media(prefers-reduced-motion:reduce){#floor-title.show{animation:none;opacity:1}.map-frame.floor-enter #map{animation:none}}
@media(max-width:680px){.boon-cards{grid-template-columns:1fr}.boon-card{min-height:0}.score-head strong{font-size:36px}}

/* SAGA workshop: attack and guard tracks. */
.growth-track{margin:10px 0 14px;padding:12px;border:1px solid #5a4560;border-radius:12px;background:#1c1624}.growth-track p{margin:0 0 8px}.growth-track strong{font-size:14px;color:#f3d39c}.growth-track small{font-size:12px;color:#cdbdd4}.growth-track p.short small{color:#e6b0bd}.growth-track button{width:100%}.guard-track{border-color:#3f5670;background:#161b26}.guard-track strong{color:#bfe3ff}#ward-upgrade{background:linear-gradient(110deg,#304256,#232a3d);border-color:#8ac1db}

/* Identification: unknown finds in the bag, and the reveal on a safe return. */
.unknown-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-style:dashed!important;border-color:#9a82b0!important;background:repeating-linear-gradient(135deg,#261d30 0 8px,#2c2238 8px 16px)!important}.unknown-item span{font-family:Georgia,serif;font-size:40px;line-height:60px;color:#d8c2ff;text-shadow:0 0 12px #b48cff88}.discovery-unknown{color:#d8c2ff!important;text-shadow:0 0 18px #b48cff99}
.identified-items .item{border-color:#e9c48b88}.identified-items .item.reveal{animation:identify .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes identify{0%{opacity:0;transform:rotateY(90deg) scale(.9);filter:brightness(2.2) blur(2px)}60%{opacity:1;transform:rotateY(0) scale(1.04);filter:brightness(1.4)}100%{transform:none;filter:none;box-shadow:0 0 18px #ffd66b33}}
@media(prefers-reduced-motion:reduce){.identified-items .item.reveal{animation:none}}

/* Newcomer guidance: first-visit card over the map, gauge legend and one-time SAGA tips. */
.vital-legend{margin:-4px 2px 8px;font-size:12px;color:#bfaecb}
#welcome-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;width:min(560px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;box-sizing:border-box;padding:18px 22px;border-radius:14px;border:1px solid #d9b37a;background:#1b1422f2;box-shadow:0 18px 50px #000c;font-size:15px;line-height:1.7}
#welcome-card h2{margin:0 0 8px;font-family:'Yu Mincho',serif;color:#f6ddb7;letter-spacing:.08em}
#welcome-card p{margin:6px 0}#welcome-card ul{margin:8px 0;padding-left:1.2em}#welcome-card li{margin:3px 0}
.welcome-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
#welcome-training{flex:1;text-align:center;padding:11px 14px;border-radius:10px;background:linear-gradient(100deg,#d6ad72,#eed4a3);color:#291a2a;font-weight:700;text-decoration:none}
#welcome-start{flex:1}
#newcomer-tip{margin:0 0 10px;padding:10px 14px;border-radius:10px;border:1px solid #8ac1db;background:#172231;color:#dff3ff;font-size:14px}
@media(max-width:680px){#welcome-card{font-size:13px;padding:14px}}

/* Mea's level readout under the gauges. */
.level-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 2px 6px;font-size:13px}
.level-status strong{color:#ffd9ec;white-space:nowrap}.level-status progress{flex:1;min-width:80px;height:8px;accent-color:#b48cff}.level-status small{color:#cdbdd4}
.xp-result{color:#e6d3ff}

/* 回転斬り: glows when the soul gauge is full */
#whirl.ready{background:linear-gradient(135deg,#ff3d9a,#b01e5e);color:#fff;border-color:#ffb8d9;box-shadow:0 0 14px #ff3d9a88;animation:soulpulse 1.4s ease-in-out infinite}
@keyframes soulpulse{50%{box-shadow:0 0 22px #ff3d9acc}}
#soul-gauge{color:#ffb8d9;font-size:.9em;letter-spacing:.08em;margin-left:.3em}#soul-gauge.full{color:#ff5cab;text-shadow:0 0 8px #ff3d9a}

/* one-line pitch at the top of the first-run card: what the game is, before who the characters are */
.welcome-pitch{font-size:1.15em;line-height:1.7;margin:.2em 0 .9em;padding:.6em .9em;border-left:3px solid #ff5cab;background:#ff3d9a14}
.welcome-pitch b{color:#ff9fd0}

/* 持ち主の声: one line per identified find, fading in one after another */
.owner-voices{margin:.6em 0 1em;padding:.7em .9em;border:1px solid #e6c08055;border-radius:10px;background:#1c1424}
.owner-voices small{color:#e6c080;letter-spacing:.1em}
.owner-voice{margin:.45em 0;line-height:1.7;opacity:0;animation:ownerIn .8s ease forwards}
.owner-voice span{display:block;font-size:.8em;color:#bba9c5}
@keyframes ownerIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.owner-voice{animation:none;opacity:1}}

/* アルバム（持ち主の声・称号）と称号の獲得表示 */
.album{margin:1em 0;padding:.6em .9em;border:1px solid #8a6aa855;border-radius:10px;background:#160f1d}
.album summary{cursor:pointer;color:#e6c080;font-weight:700}
.album h3{font-size:1em;margin:.9em 0 .4em;color:#ffb8d9}.album-row{margin:.5em 0}.album-row b{display:block;font-size:.85em;color:#bba9c5}
.album-row p{margin:.15em 0 .15em .6em;font-size:.92em;line-height:1.6}.album .locked{color:#6f607c}
.album-titles{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.5em}
.album-titles li{padding:.45em .6em;border-radius:8px;background:#221830}.album-titles li.got{border:1px solid #e6c08088}.album-titles small{display:block;font-size:.78em;color:#bba9c5;line-height:1.5}
.title-gain{margin:.4em 0;color:#ffe6ac;font-weight:700}

/* 地下ダンジョン */
.abyss-panel{border-color:#6fe0d055;background:linear-gradient(160deg,#0f1a20,#150f1d)}.abyss-panel h2{color:#9ff0e2}
.abyss-panel #abyss-gate{margin-left:.4em}.abyss-result{color:#9ff0e2;font-weight:700}

/* free edition: the 地下ダンジョン as a sealed door */
.abyss-panel.sealed #abyss-sealed img{width:100%;height:auto;border-radius:8px;display:block;filter:saturate(.8) brightness(.9);border:1px solid #6fe0d044}
.abyss-panel.sealed .sealed-lead{color:#cfeee8;margin:.6em 0 .3em}.abyss-panel.sealed .sealed-list{margin:.2em 0;padding-left:1.2em;font-size:.92em}
.abyss-panel.sealed .sealed-note{color:#9ff0e2}.sealed-shop{display:inline-block;padding:.45em 1.1em;border-radius:8px;background:#6fe0d0;color:#0c1518;font-weight:700;text-decoration:none}
.sealed-find{margin:.8em 0;padding:.7em .9em;border:1px solid #6fe0d066;border-radius:10px;background:linear-gradient(160deg,#0f1a20,#150f1d)}.sealed-find strong{color:#9ff0e2}.sealed-find p{margin:.3em 0}

/* the 集中力・帰り火・Lv meters now live inside the play screen (drawn on the canvas); the DOM copies stay for screen readers */
.vital-signs,#level-status{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* music bar: pick a song with one press */
.music-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.4em;margin:.4em 0 .6em;padding:.45em .6em;border:1px solid #ffffff1f;border-radius:10px;background:#140e1ecc}
.music-bar .mb-label{color:#ffd98f;font-weight:700;margin-right:.2em}
.music-bar [data-track]{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.2;padding:.3em .7em;border-radius:8px}
.music-bar [data-track] small{font-size:.72em;opacity:.75}
.music-bar button[data-track][aria-pressed="true"]{background:#ff4fa6!important;color:#1a0712!important;border-color:#ffb3dc!important;box-shadow:0 0 12px #ff4fa666;opacity:1!important}
.music-bar .mb-vol{display:inline-flex;align-items:center;gap:.3em;font-size:.85em}.music-bar .mb-vol input{width:90px}
.music-bar .mb-now{font-size:.82em;color:#cbb8d6;margin-left:auto}

/* pickup toast over the play screen: slides up, stays ~2.6 s, fades; never blocks taps on the map */
.map-frame .pickup-reveal{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:3;margin:0;width:min(78%,480px);padding:10px 16px;pointer-events:none;
 border:2px solid #dfb674;background:linear-gradient(120deg,#3b2449f2,#201a2bf2);box-shadow:0 8px 30px #000b,0 0 24px #dfb67433;opacity:0}
.map-frame .pickup-reveal h2{font-size:15px;margin:0 0 4px;color:#ffe0a4}
.map-frame .pickup-reveal .discovery-card{gap:12px}.map-frame .pickup-reveal .discovery-card img,.map-frame .pickup-reveal .discovery-clock{width:52px;height:52px}
.map-frame .pickup-reveal .discovery-card strong{font-size:1.05em}.map-frame .pickup-reveal .discovery-card p{font-size:.8em;margin:2px 0}
.map-frame .pickup-reveal #pickup-cards{display:grid;gap:6px}
.map-frame .pickup-reveal.toast{animation:pickup-toast 3.4s ease-out forwards}
@keyframes pickup-toast{0%{opacity:0;transform:translate(-50%,18px) scale(.96)}8%{opacity:1;transform:translate(-50%,0) scale(1.03)}14%{transform:translate(-50%,0) scale(1)}78%{opacity:1}100%{opacity:0;transform:translate(-50%,-6px)}}
@media(prefers-reduced-motion:reduce){.map-frame .pickup-reveal.toast{animation:pickup-fade 3.4s linear forwards}@keyframes pickup-fade{0%,80%{opacity:1}100%{opacity:0}}}
.map-frame .pickup-reveal .discovery-clock{display:flex;align-items:center;justify-content:center;font-size:34px;line-height:1;border:1px dashed #9a82b0;border-radius:10px;color:#e8d8ff}

/* SAGAの印 */
.seal-track .seal-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6em;padding:.35em 0;border-top:1px solid #ffffff14}
.seal-track .seal-row small{display:block;min-width:0;line-height:1.5;word-break:normal;overflow-wrap:anywhere}
.seal-track .seal-row.on small{color:#ffd98f}.seal-track .seal-row button{width:auto!important;min-width:4.2em;padding:.35em .8em;margin:0}
#dash-mode[aria-pressed="true"]{background:#ff4fa6;color:#1a0712;border-color:#ff4fa6}

/* on-map quick actions */
.map-frame .map-quick{position:absolute;left:14px;bottom:14px;z-index:2;display:flex;gap:6px}
.map-frame .map-quick button{background:#25182fea;border:1px solid #e1b883aa;color:#ffe3b5;border-radius:8px;padding:4px 10px;font-size:13px;box-shadow:0 3px 12px #0008}
.map-frame .map-quick button kbd{margin-left:6px;font-size:10px;opacity:.7;border:1px solid #ffe3b555;border-radius:4px;padding:0 4px}
.map-frame .map-quick button:disabled{opacity:.4}
@media(max-width:520px){.map-frame .map-quick button{padding:4px 7px;font-size:12px}.map-frame .map-quick button kbd{display:none}}
.map-frame .pickup-reveal{bottom:64px}  /* clear of the on-map quick actions */

/* paid edition: first-launch carry-over notice */
.paid-welcome{margin:0 0 12px;padding:14px 16px;border:2px solid #6fe0d0;border-radius:12px;background:linear-gradient(160deg,#0f1a20,#150f1d)}
.paid-welcome h2{margin:0 0 6px;color:#9ff0e2}.paid-welcome button{margin:6px 8px 0 0}

/* touch stick: shown on touch screens instead of the arrow cross; the cross stays for mouse / keyboard */
.move-stick{display:none;position:relative;width:170px;height:190px;margin:6px auto;touch-action:none;user-select:none;-webkit-user-select:none}
.move-stick .ring{position:absolute;left:10px;top:0;width:150px;height:150px;border-radius:50%;border:2px solid #d9b37a88;background:radial-gradient(circle,#2a1d36 0%,#150f1d 70%);box-shadow:inset 0 0 20px #000a}
.move-stick .ring::before{content:'';position:absolute;inset:18px;border-radius:50%;border:1px dashed #ffffff22}
.move-stick .knob{position:absolute;left:55px;top:45px;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff9fd0,#b8337a);box-shadow:0 4px 14px #000b,0 0 16px #ff4fa666;transition:transform .08s;pointer-events:none}
.move-stick.active .knob{transition:none}.move-stick small{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:12px;color:#cbb8d6}
/* on touch screens the stick floats over the bottom-left of the play screen (where the thumb is); the quick actions move right */
@media(pointer:coarse){.play-controls .controls{display:none}
 .map-frame .move-stick{display:block;position:absolute;left:10px;bottom:10px;z-index:4;width:132px;height:132px;margin:0;opacity:.88}
 .map-frame .move-stick .ring{left:0;width:132px;height:132px;background:radial-gradient(circle,#2a1d36cc 0%,#150f1dcc 70%)}
 .map-frame .move-stick .knob{left:41px;top:41px;width:50px;height:50px}.map-frame .move-stick small{display:none}
 .map-frame .map-quick{left:auto;right:12px;bottom:62px;flex-direction:column;align-items:flex-end}
 .map-frame .pickup-reveal{bottom:150px}}

/* command bar right under the play screen, inside the same frame look (2026-10-01) */
.frame-bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;margin:-6px 0 12px;padding:12px;border:2px solid #8a6444;border-top:0;border-radius:0 0 14px 14px;background:linear-gradient(180deg,#1a1220,#120c18)}
.frame-bar .controls{margin:0!important;display:block!important}
.frame-bar .pad8{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,46px);gap:5px}
.frame-bar .pad8 button{margin:0;padding:0;width:100%;height:100%;font-size:20px;border-radius:9px}
.frame-bar .pad8 [data-dir="0,0"]{font-size:14px}
.frame-bar .bar-right{display:flex;flex-direction:column;gap:8px;min-width:0}
.frame-bar .bar-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.frame-bar .bar-actions button{margin:0;width:100%;padding:8px 6px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frame-bar .bar-status{display:flex;gap:14px;align-items:center;font-size:14px;min-height:20px}
.frame-bar .bar-toggles{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:14px}
.frame-bar .bar-toggles button{margin:0;padding:6px 10px;font-size:13px}
.frame-bar #command-open{position:static!important;box-shadow:none}
.map-frame{border-radius:14px 14px 0 0}
@media(pointer:coarse){.frame-bar{grid-template-columns:1fr}.frame-bar .controls{display:none!important}}
@media(max-width:600px){.frame-bar .bar-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* registered item: spans the first column of the action grid, gold edge */
.frame-bar .bar-actions .quick-slot{grid-column:1/-1;border-color:#e1b883;color:#ffe3b5}
#command-register{margin-left:8px}

/* minimap over the play screen */
.map-frame .map-mini{position:absolute;top:14px;right:14px;z-index:2;padding:4px;border-radius:8px;background:#0b0812cc;border:1px solid #d9b37a66;box-shadow:0 4px 14px #0009;pointer-events:none;transition:opacity .2s}
.map-frame .map-mini canvas{display:block;width:170px;height:auto;image-rendering:pixelated;opacity:.92}
.map-frame .map-mini.under{opacity:.3}
@media(max-width:600px),(pointer:coarse){.map-frame .map-mini canvas{width:110px}}
/* the minimap's own sidebar frame is dropped on the play screen (one frame only), and the legend dots get a label */
.map-frame .map-mini canvas#minimap{border:0!important;border-radius:4px;background:#07050c!important;box-shadow:none!important;margin:0!important}
.map-frame .map-mini::after{content:'地図（M）';display:block;font-size:10px;color:#cbb8d6;text-align:right;margin-top:2px}

/* stairs / exit choice floats over the map */
.map-frame #stairs-panel.on-map{position:absolute;left:6%;right:6%;top:18%;z-index:5;margin:0 auto;max-width:620px;
 background:linear-gradient(160deg,#241634f2,#120c18f5);border:2px solid #e1b883;border-radius:14px;box-shadow:0 12px 40px #000c}
.map-frame #stairs-panel.on-map h2{margin-top:0}.map-frame #stairs-panel.on-map button{margin:4px 8px 4px 0}
.map-frame #stairs-panel.on-map{z-index:8}  /* above the first-visit welcome card */

/* play mode */
body.exploring .dungeon-hero,body.exploring .vital-legend,body.exploring .daily-panel,body.exploring .abyss-panel,body.exploring .course-panel.expedition{display:none!important}
body.exploring #hud{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.exploring .music-bar{margin:.2em 0 .5em;padding:.25em .5em;gap:.3em}
body.exploring .music-bar [data-track]{padding:.15em .55em;font-size:.82em}body.exploring .music-bar [data-track] small{display:none}
body.exploring .music-bar .mb-label{font-size:.85em}body.exploring .music-bar .mb-vol input{width:70px}
.frame-bar .bar-toggles .bar-leave{border-color:#7dfbc699;color:#c9ffe9}
/* narrow screens: pad on top, actions full width in three columns, toggles in a wrapping row */
@media(max-width:700px){.frame-bar{grid-template-columns:1fr}.frame-bar .controls{justify-self:center}
 .frame-bar .bar-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}.frame-bar .bar-actions button{font-size:13px;padding:7px 4px}
 .frame-bar .bar-toggles{flex-direction:row!important}.frame-bar .bar-toggles button{font-size:12px;padding:5px 8px}}

/* play screen v2 */
body.exploring main{padding-top:8px}
body.exploring .map-frame #map{width:auto;max-width:100%;height:min(calc(100vh - 320px),calc((100vw - 460px) * 540 / 660));min-height:300px;margin:0 auto;display:block}
body.exploring .map-frame{display:flex;justify-content:center;align-items:center;background:#07040b}
body.exploring #log,body.exploring #companion-talk,body.exploring .play-controls,body.exploring #pad-status,body.exploring .input-help,body.exploring .exit-actions{display:none!important}
body.exploring .frame-bar{padding:8px 10px;gap:10px}
body.exploring .frame-bar .pad8{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,38px)}
body.exploring .frame-bar .bar-actions button{padding:6px 6px;font-size:14px}
body.exploring .mission-sidebar{position:sticky;top:8px;align-self:start;max-height:calc(100vh - 16px);overflow:auto}
body.exploring .mission-sidebar>.sidebar-details{display:none}
.map-frame .map-log{position:absolute;left:12px;right:12px;bottom:12px;z-index:3;padding:8px 14px;border-radius:10px;background:#0c0815e6;border:1px solid #d9b37a55;color:#f6e7d0;font-size:15px;line-height:1.5;pointer-events:none;transition:opacity .6s;max-height:4.6em;overflow:hidden}
.map-frame .map-log.fade{opacity:.35}
.map-frame .pickup-reveal{bottom:84px}
#key-help{position:absolute;inset:6% 8%;z-index:9;overflow:auto;padding:16px 20px;border-radius:14px;background:#140e1ef5;border:2px solid #e1b883;box-shadow:0 12px 40px #000c}
#key-help h2{margin:0 0 8px;color:#ffd98f}#key-help table{width:100%;border-collapse:collapse;font-size:15px}#key-help th{text-align:left;color:#ffd98f;width:8em;padding:4px 8px;vertical-align:top}#key-help td{padding:4px 8px;border-top:1px solid #ffffff14}
@media(max-width:700px),(pointer:coarse){body.exploring .map-frame #map{height:auto;width:100%}body.exploring .mission-sidebar{position:static;max-height:none}.map-frame .map-log{font-size:13px;bottom:150px}}

/* the frame hugs the map so overlays (log, minimap, HUD) sit on it; a slimmer bar leaves more height for the map */
body.exploring .map-frame{display:block;width:fit-content;max-width:100%;margin:0 auto;padding:6px}
body.exploring .map-frame #map{height:min(calc(100vh - 205px),calc((100vw - 460px) * 540 / 660))}
body.exploring .frame-bar{max-width:100%;margin-top:4px;border-top:2px solid #8a6444;border-radius:14px}
body.exploring .frame-bar .bar-status{display:none}
body.exploring .frame-bar .bar-actions{grid-template-columns:repeat(4,minmax(0,1fr))}body.exploring .frame-bar .bar-actions .quick-slot{grid-column:auto}
body.exploring .frame-bar .bar-right{gap:6px}body.exploring .frame-bar .bar-toggles button{padding:4px 8px;font-size:12px}
body.exploring .frame-bar .bar-toggles #guard-status{font-size:12px;color:#a8eaff;margin-right:4px}
@media(max-width:700px),(pointer:coarse){body.exploring .frame-bar .bar-actions{grid-template-columns:repeat(3,minmax(0,1fr))}body.exploring .map-frame{width:auto}}
body.exploring .frame-bar{width:fit-content;max-width:100%;margin:4px auto 0}
body.exploring .frame-bar .bar-toggles{flex-wrap:nowrap;white-space:nowrap}
@media(max-width:700px),(pointer:coarse){body.exploring .frame-bar{width:auto}body.exploring .frame-bar .bar-toggles{flex-wrap:wrap}}

/* ===== game screen (exploring) ===== */
body.game-screen{overflow:hidden}
body.game-screen .game-stage{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at center,#120b19 0%,#05030a 75%);padding:0 10px 6px;overflow:hidden}
body.game-screen .game-stage>*:not(.gs-top):not(.map-frame):not(.gs-msg):not(.frame-bar):not(#stairs-panel){display:none!important}
body.game-screen .map-frame{flex:1 1 auto;min-height:0;display:flex!important;align-items:center;justify-content:center;width:auto;max-width:100%;margin:0;padding:4px;background:transparent;box-shadow:none}
body.game-screen .map-frame::after{display:none}
body.game-screen .map-frame #map{height:100%;max-height:100%;width:auto;max-width:100%;aspect-ratio:660/540;border:2px solid #8a6444;border-radius:8px}
body.game-screen .map-frame .map-log{display:none}
body.game-screen #map ~ canvas,body.game-screen .map-frame .map-mini{top:10px;right:10px}
.gs-top{display:none}
body.game-screen .gs-top{display:flex;flex:0 0 auto;align-items:center;gap:16px;width:100%;max-width:1200px;padding:8px 6px 6px;color:#f3e6f2;font-weight:700;font-size:16px}
.gs-top .gs-floor{color:#ffd98f;font-size:20px;letter-spacing:.05em}.gs-top .gs-lv{font-size:18px}
.gs-top .gs-stat{display:flex;align-items:center;gap:6px}.gs-top .gs-stat b{font-size:13px;color:#cbb8d6}.gs-top .gs-stat i{display:block;width:140px;height:12px;border-radius:6px;background:#241a2e;overflow:hidden}
.gs-top .gs-stat u{display:block;height:100%;text-decoration:none;transition:width .25s}.gs-top .gs-hp u{background:linear-gradient(90deg,#c93d86,#ff8ccb)}.gs-top .gs-fire u{background:linear-gradient(90deg,#c98a2c,#ffd66b)}
.gs-top .gs-stat em{font-style:normal;font-size:14px;min-width:58px}.gs-top .low u{background:linear-gradient(90deg,#ff3b5c,#ff8a8a)!important;animation:gs-pulse .7s infinite alternate}
@keyframes gs-pulse{to{opacity:.45}}
.gs-top .gs-soul{color:#3a2a44;letter-spacing:2px;font-size:16px}.gs-top .gs-soul.full{color:#ff5cab;text-shadow:0 0 8px #ff5cab}.gs-top .gs-wind{color:#9fe8ff;font-size:13px}
.gs-top .gs-sp{flex:1}.gs-top button{padding:4px 10px;font-size:13px}.gs-top kbd{font-size:10px;opacity:.7}
.gs-msg{display:none}
body.game-screen .gs-msg{display:block;flex:0 0 auto;width:100%;max-width:1000px;min-height:4.4em;margin:2px 0 4px;padding:6px 14px;border:1px solid #d9b37a55;border-radius:10px;background:#0c0815e6;color:#f6e7d0;font-size:15px;line-height:1.45}
.gs-msg p{margin:0}.gs-msg p.old{color:#9d8aa8;font-size:13px}
body.game-screen .frame-bar{flex:0 0 auto;width:auto!important;max-width:100%;margin:0!important;padding:6px 8px!important;border:1px solid #8a644488!important;border-radius:12px!important;background:#120c18e6!important}
body.game-screen .frame-bar .pad8{grid-template-columns:repeat(3,38px)!important;grid-template-rows:repeat(3,32px)!important;gap:3px}
body.game-screen .frame-bar .pad8 button{font-size:16px}
body.game-screen .frame-bar .bar-actions{grid-template-columns:repeat(4,minmax(0,140px))!important}
body.game-screen .frame-bar .bar-actions button{padding:5px 6px;font-size:13px}
/* 持ち物・依頼: the sidebar slides in over the game */
body.game-screen .mission-sidebar{position:fixed!important;top:0;right:0;bottom:0;z-index:45;width:min(420px,92vw);max-height:none!important;overflow:auto;padding:14px;background:#120c18f5;border-left:2px solid #8a6444;box-shadow:-10px 0 40px #000c;transform:translateX(105%);transition:transform .2s}
body.game-screen.gs-side-open .mission-sidebar{transform:none}
body.game-screen .mission-sidebar>.sidebar-details{display:block!important}
/* phones / tablets: stick over the map, buttons in two rows */
@media(pointer:coarse),(max-width:700px){body.game-screen .gs-top{gap:8px;font-size:13px;flex-wrap:wrap}.gs-top .gs-stat i{width:70px}.gs-top .gs-floor{font-size:16px}
 body.game-screen .frame-bar .bar-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}body.game-screen .frame-bar{width:100%!important}
 body.game-screen .gs-msg{font-size:13px;min-height:3.6em}}
/* wide screens: map on the left at full height, messages + controls in a column on the right */
@media (min-width:900px) and (min-aspect-ratio:5/4) and (pointer:fine){
 body.game-screen .game-stage{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:auto minmax(0,1fr);column-gap:12px;align-items:stretch;justify-items:center}
 body.game-screen .gs-top{grid-column:1/-1;max-width:none}
 body.game-screen .map-frame{grid-column:1;grid-row:2;height:100%;width:100%}
 body.game-screen .gs-msg{grid-column:2;grid-row:2;align-self:start;max-width:none;min-height:9em;margin:4px 0 0}
 body.game-screen .frame-bar{grid-column:2;grid-row:2;align-self:end;width:100%!important;grid-template-columns:1fr!important;justify-items:center;margin-bottom:6px!important}
 body.game-screen .frame-bar .bar-right{width:100%}body.game-screen .frame-bar .bar-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 body.game-screen .frame-bar .bar-actions .quick-slot{grid-column:1/-1}
 body.game-screen .frame-bar .bar-toggles{flex-wrap:wrap!important;justify-content:center}
 body.game-screen .frame-bar .pad8{grid-template-columns:repeat(3,46px)!important;grid-template-rows:repeat(3,40px)!important}}
/* phones: one-line status, small minimap, no top help button */
@media(pointer:coarse),(max-width:700px){
 body.game-screen .gs-top{flex-wrap:nowrap;gap:6px;padding:6px 2px;font-size:12px}
 body.game-screen .gs-top .gs-stat b{display:none}body.game-screen .gs-top .gs-stat i{width:48px;height:9px}body.game-screen .gs-top .gs-stat em{min-width:0;font-size:11px}
 body.game-screen .gs-top .gs-floor{font-size:14px}body.game-screen .gs-top .gs-lv{font-size:13px}body.game-screen .gs-top .gs-soul{font-size:11px;letter-spacing:0}
 body.game-screen .gs-top .gs-help{display:none}body.game-screen .gs-top .gs-side{padding:3px 6px;font-size:11px}body.game-screen .gs-top .gs-side kbd{display:none}
 body.game-screen .map-frame .map-mini canvas{width:84px}body.game-screen .map-frame .map-mini::after{display:none}
 body.game-screen .frame-bar .bar-toggles button{padding:3px 6px;font-size:11px}}
@media(pointer:coarse),(max-width:700px){
 body.game-screen .map-frame .map-mini canvas,body.game-screen .map-frame .map-mini canvas#minimap{width:84px!important}
 body.game-screen .gs-top{overflow:hidden}body.game-screen .gs-top .gs-sp{min-width:0}body.game-screen .gs-top .gs-side{flex:0 0 auto;margin-left:auto}
 body.game-screen .gs-top .gs-stat i{width:40px}}
@media(pointer:coarse),(max-width:700px){
 body.game-screen .map-frame .map-mini canvas#minimap{height:auto!important}
 body.game-screen .gs-top .gs-soul,body.game-screen .gs-top .gs-sp{display:none}
 body.game-screen .gs-top .gs-side{padding:2px 6px!important;font-size:11px!important;line-height:1.4}}
@media(pointer:coarse),(max-width:700px){body.game-screen .gs-top .gs-side{width:auto!important;min-width:3.6em;white-space:nowrap;min-height:30px}}
@media(pointer:coarse),(max-width:700px){body.game-screen .gs-top .gs-side{position:fixed;top:6px;right:6px;z-index:46}body.game-screen .gs-top{padding-right:70px}}
@media(pointer:coarse),(max-width:700px){body.game-screen .game-stage{align-items:stretch}body.game-screen .gs-top{width:auto;max-width:100%;justify-content:flex-start}}
@media(pointer:coarse),(max-width:700px){body.game-screen .frame-bar,body.game-screen .gs-msg{box-sizing:border-box;width:100%!important;max-width:100%!important}body.game-screen .frame-bar .bar-right,body.game-screen .frame-bar .bar-actions{min-width:0;width:100%}}
body.game-screen .mission-sidebar .music-bar{display:flex!important;margin:0 0 12px}
.gs-top .gs-music{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(pointer:coarse),(max-width:700px){body.game-screen .gs-top .gs-music{display:none}}
body.game-screen .mission-sidebar .game-footer{margin-top:14px;padding-top:10px;border-top:1px solid #ffffff1f;font-size:14px}
body.game-screen .mission-sidebar{height:100vh!important;height:100dvh!important;max-height:100dvh!important;box-sizing:border-box;overscroll-behavior:contain}
body.game-screen .gs-top>*{white-space:nowrap;flex-shrink:0}body.game-screen .gs-top .gs-stat i{flex-shrink:1;min-width:40px}@media(max-width:1100px){body.game-screen .gs-top{gap:10px;font-size:14px}body.game-screen .gs-top .gs-stat i{width:90px}body.game-screen .gs-top .gs-floor{font-size:17px}}

/* 館の工房 */
.mansion-workshop{margin:14px 0;padding:16px 18px;border:2px solid #d9b37a88;border-radius:14px;background:linear-gradient(160deg,#241634,#140e1e)}
.mansion-workshop h2{margin:0 0 10px;color:#ffd98f}.mansion-workshop h2 small{font-size:.55em;color:#cbb8d6;margin-left:8px}
.ws-tabs{display:flex;gap:6px;margin-bottom:10px}.ws-tabs button{flex:1;padding:8px 6px;display:flex;flex-direction:column;align-items:center;line-height:1.3}.ws-tabs button small{font-size:.7em;opacity:.75}
.ws-tabs button[aria-pressed="true"]{background:#ff4fa6;color:#1a0712;border-color:#ff4fa6}
.ws-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid #ffffff14}
.ws-row strong{display:block;color:#ffe3b5}.ws-row small{display:block;color:#eadcf2}.ws-row em{display:block;font-style:normal;font-size:.82em;color:#a993b6}
.ws-row.short em{color:#ff9fb0}.ws-row button{min-width:6em}.ws-shelf{margin:10px 0 0;font-size:.85em;color:#cbb8d6}
.ws-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;border:1px solid #ffd98f88;border-radius:10px;background:#2a1a10aa}
.ws-summary p{margin:0;color:#ffe3b5;font-weight:700}

/* controller highlight at the mansion */
.pad-focus{outline:3px solid #ffd98f!important;outline-offset:3px;box-shadow:0 0 0 6px #ff4fa655,0 0 18px #ffd98f88!important}

/* 支払いの確認 */
.pay-ask{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:70;width:min(520px,92vw);padding:18px 20px;border:2px solid #d9b37a;border-radius:14px;background:#140e1ef5;box-shadow:0 12px 40px #000c;color:#f6e7d0;text-align:center}
.pay-ask[hidden]{display:none}
.pay-ask .pay-q{margin:0 0 6px;font-size:17px;font-weight:700;line-height:1.5}.pay-ask .pay-have{margin:0 0 12px;font-size:14px;color:#cbb8d6}.pay-ask .pay-have.short{color:#ff9fb0}
.pay-ask .pay-btns{display:flex;gap:12px;justify-content:center;margin-bottom:8px}.pay-ask .pay-btns button{min-width:9em;padding:10px 14px;font-size:16px}
.pay-ask .pay-btns button.sel{background:#ff4fa6;color:#1a0712;border-color:#ff4fa6;box-shadow:0 0 14px #ff4fa688}
.pay-ask small{color:#9d8aa8;font-size:12px}

.mansion-workshop .ws-rule{margin:-4px 0 10px;font-size:.85em;color:#ffd98f;opacity:.9}

/* 白銀の死神の上位段階・白銀の墓所 */
#reaper-start-1,#reaper-start-2{display:block;width:100%;margin-top:6px}
#reaper-start-1:not(:disabled){background:linear-gradient(90deg,#3a2f5a,#5a2f4f)}#reaper-start-2:not(:disabled){background:linear-gradient(90deg,#4a1c2c,#1c1c3a);color:#ffe3b5}
.crypt-panel{border-color:#cfe6ff66!important;background:linear-gradient(160deg,#1b202b,#0d0f15)!important}
.crypt-panel #crypt-title{color:#e6f2ff}.crypt-panel .mini-label{color:#9fd0ff}

/* タロット・クエスト帳 */
.tarot-book{margin:14px 0;padding:16px 18px;border:2px solid #b89be088;border-radius:14px;background:linear-gradient(160deg,#1d1430,#0f0b18)}
.tarot-book h2{margin:0 0 10px;color:#e8d6ff}.tarot-book h2 small{font-size:.55em;color:#ffd98f;margin-left:8px}
.tb-tabs{display:flex;gap:6px;margin-bottom:8px}.tb-tabs button{flex:1;padding:8px 6px;display:flex;flex-direction:column;align-items:center;line-height:1.3}.tb-tabs button small{font-size:.7em;opacity:.75}
.tb-tabs button[aria-pressed="true"]{background:#9b6cff;color:#140a24;border-color:#9b6cff}
.tb-charm{margin:4px 0 10px;font-size:.85em;color:#ffd98f}
.tb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.tb-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border-radius:10px;background:#140f20;border:1px solid #ffffff18;color:#eadcf2;text-align:center;min-height:0}
.tb-card img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:6px;opacity:.45;filter:grayscale(.6)}
.tb-card.own img{opacity:1;filter:none;box-shadow:0 0 12px #ffd98f55}
.tb-card span{font-size:12px;font-weight:700}.tb-card small{font-size:10px;line-height:1.3;color:#a993b6}
.tb-card.paid small{color:#ff9fb0}.tb-card.worn{border-color:#ffd98f;box-shadow:0 0 0 2px #ffd98f88}.tb-card.picked{border-color:#9b6cff}
.tb-detail{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;margin-top:12px;padding:12px;border-radius:12px;background:#0c0815;border:1px solid #9b6cff55}
.tb-detail img{width:150px;border-radius:8px}.tb-detail h3{margin:0 0 6px;color:#ffe3b5}.tb-detail p{margin:4px 0}.tb-quest{color:#cbb8d6}.tb-effect{color:#9fe8ff}.tb-line{color:#f6e7d0;font-style:italic}.tb-paid{color:#ff9fb0}
.tb-detail button{margin:8px 8px 0 0}
.tb-minor{padding:20px;text-align:center;color:#cbb8d6}
@media(max-width:600px){.tb-detail{grid-template-columns:1fr}.tb-detail img{width:120px;margin:0 auto}}
/* カードをめくる演出 */
.tarot-reveal{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px;background:#05030ae6;color:#f6e7d0;text-align:center}
.tarot-reveal[hidden]{display:none}
.tarot-reveal .tr-card{width:min(240px,50vw);perspective:900px}.tarot-reveal .tr-card img{width:100%;border-radius:12px;box-shadow:0 0 40px #ffd98f88}
.tarot-reveal .tr-card.flip img{animation:tr-flip .9s ease-out}
@keyframes tr-flip{0%{transform:rotateY(180deg) scale(.6);filter:brightness(.2)}60%{transform:rotateY(0) scale(1.05);filter:brightness(1.6)}100%{transform:none;filter:none}}
.tarot-reveal h2{margin:10px 0 0;color:#ffd98f}.tarot-reveal h3{margin:0;font-size:22px}.tarot-reveal .tr-line{max-width:520px;margin:4px 0;font-size:16px}.tarot-reveal .tr-effect{max-width:520px;margin:0 0 8px;color:#9fe8ff;font-size:14px}
.tarot-reveal .tr-ok{padding:10px 28px;font-size:16px}

/* 小アルカナ（共通デザインの札） */
.tb-minor .mc-suit{display:flex;align-items:center;gap:8px;margin:14px 0 6px;font-size:15px;color:#f3e6f2}.tb-minor .mc-suit svg{width:24px;height:24px}
.mc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.mc-card{display:flex;flex-direction:column;gap:4px}
.mc-face{position:relative;aspect-ratio:2/3;border-radius:8px;border:2px solid #ffffff22;background:radial-gradient(circle at 50% 40%,#2a2038,#120c1a);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:.4;filter:grayscale(.7)}
.mc-card.own .mc-face{opacity:1;filter:none;border-color:var(--suit);box-shadow:0 0 12px color-mix(in srgb,var(--suit) 45%,transparent),inset 0 0 0 3px #0c0815,inset 0 0 0 4px color-mix(in srgb,var(--suit) 60%,transparent)}
.mc-rank{position:absolute;top:6px;left:0;right:0;text-align:center;font:700 14px/1 serif;color:var(--suit)}
.mc-icon svg{width:46px;height:46px}.mc-name{position:absolute;bottom:6px;left:2px;right:2px;text-align:center;font-size:10px;font-weight:700;color:#f6e7d0}
.mc-quest{font-size:10px;line-height:1.3;color:#a993b6}.mc-card.own .mc-quest{color:#cbe8c8}
.minor-toast{position:fixed;right:16px;bottom:16px;z-index:75;width:min(380px,92vw);padding:12px 14px;border:2px solid #9b6cff;border-radius:12px;background:#140e1ef5;color:#f6e7d0;box-shadow:0 10px 30px #000c}
.minor-toast[hidden]{display:none}.minor-toast strong{color:#e8d6ff}.minor-toast ul{margin:8px 0;padding:0;list-style:none;max-height:40vh;overflow:auto}
.minor-toast li{display:flex;gap:8px;align-items:center;font-size:13px;margin:4px 0}.minor-toast li svg{width:20px;height:20px;flex:none}
.minor-toast button{width:100%}

.mc-face.art{padding:0;overflow:hidden;background:#000}.mc-face.art img{width:100%;height:100%;object-fit:cover}
