/* v5.5 story campaign — fantasy VN presentation, custom original characters */
.muda-story[hidden]{display:none!important}
.muda-story{position:fixed;inset:0;z-index:280;display:grid;place-items:stretch;background:radial-gradient(circle at 15% 8%,#3e557c,#090e25 70%);color:#fff;overflow:hidden}
body.story-open{overflow:hidden}
.muda-story .story-shell{position:relative;display:flex;flex-direction:column;width:min(1120px,100%);height:100%;margin:auto;border-left:1px solid #cbbd7877;border-right:1px solid #cbbd7877;background:#131b35;box-shadow:0 12px 80px #05040bbd;overflow:hidden}
.story-top{height:54px;flex:0 0 54px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 14px;background:linear-gradient(100deg,#14172c,#263558);border-bottom:2px solid #c6b172}
.story-top button{border:1px solid #a7b1dc;background:#293a5b;color:#fff;border-radius:11px;padding:8px 13px;font-weight:900;min-height:39px}
#storyWorld{color:#f9e9a0;font-weight:1000;font-size:12px;letter-spacing:.12em}.story-save{color:#8eedcf;font-size:10px;font-weight:900}
.story-scene{position:relative;flex:0 0 clamp(190px,35vh,310px);isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#1d3862,#252147)}
.story-backdrop{position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 74% 15%,#8b8cdc8a,transparent 20%),linear-gradient(180deg,#4c629d,#1e3953 61%,#101e36)}
.story-backdrop::before{content:'';position:absolute;bottom:-55%;width:130%;height:75%;left:-12%;border-radius:50%;background:linear-gradient(#315d5b,#11243c);box-shadow:0 -32px 110px #6b90ad67}
.story-backdrop::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 12% 10%,#fff9 1px,transparent 3px),radial-gradient(circle at 63% 23%,#fff9 2px,transparent 3px),radial-gradient(circle at 88% 42%,#fff7 1px,transparent 3px);background-size:131px 101px,197px 151px,223px 155px}
.story-chara{position:absolute;left:6%;bottom:0;height:100%;width:36%;min-width:210px;display:flex;align-items:end;justify-content:center;filter:drop-shadow(0 14px 15px #0b1429a5)}
.story-chara img{height:100%;width:100%;object-fit:contain;object-position:bottom;animation:story-arrive .35s ease-out}
.story-speech{position:absolute;bottom:14px;left:38%;right:18px;border:2px solid #d4c18b;background:#101c36ed;padding:12px 16px;border-radius:13px 21px 21px 6px;box-shadow:0 12px 35px #07102cb8;min-height:100px}
.story-speaker{position:absolute;top:-15px;left:11px;background:#ead69a;color:#322d42;border-radius:8px;padding:4px 15px;font-size:12px;font-weight:1000}
.story-speech p{margin:10px 0 0;line-height:1.65;font-size:clamp(13px,2vw,17px);font-weight:850;color:#f9f8ee}
.story-lower{padding:12px 16px 9px;display:flex;flex-direction:column;flex:1;min-height:0;background:radial-gradient(ellipse at 90% -10%,#38456b77,transparent 65%),#151b34}
.story-objective{background:linear-gradient(100deg,#38405c,#20283f);border:1px solid #e0c47c;border-radius:14px;padding:10px 13px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex:0 0 auto}
.story-objective>div{display:grid;gap:3px;min-width:0}.story-objective small{font-size:10px;font-weight:1000;color:#ffdf8b}.story-objective strong{font-size:clamp(12px,2.4vw,16px);color:#fff;line-height:1.4}.story-objective>span{white-space:nowrap;font-weight:1000;font-size:13px;color:#d9ff98}
.story-body{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:11px;padding:13px 4px 17px;scrollbar-color:#768aba #12162c}
.story-instruction{font-size:14px;font-weight:700;color:#d8e3ff;line-height:1.55;margin:0}
.story-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:3px}
.story-btn{background:linear-gradient(145deg,#34476b,#222d50);border:1px solid #abb8d2;color:#fff;border-radius:13px;min-height:48px;padding:9px 12px;font-size:13px;line-height:1.4;font-weight:900;text-align:center;box-shadow:inset 0 1px #ffffff25;touch-action:manipulation}
.story-btn.primary{background:linear-gradient(135deg,#d9ff93,#6deac6);color:#18352c;border-color:#efffba;box-shadow:0 4px 0 #205d53}.story-btn.quiet{background:#1c243b;color:#b9c9e3}.story-btn:active{transform:translateY(2px)}
.story-feedback{flex:0 0 auto;border-top:1px solid #6b7399;background:#1f2e4b;color:#ffdf9b;padding:8px 12px;min-height:37px;border-radius:9px;font-size:12px;font-weight:800}
.story-map{align-self:center;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:min(280px,100%);padding:6px;background:#0c1936;border-radius:15px;border:1px solid #7486a9}
.story-cell{aspect-ratio:1;border:1px solid #7194c1;border-radius:9px;background:#2e5472;color:#d2f3d9;font-size:23px;min-width:0;display:grid;place-items:center}
.story-cell.wall{background:#1c2b43}.story-cell.here{background:#fff0ae;box-shadow:inset 0 0 0 2px #e0a323}
.story-dpad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,42px);align-self:center;gap:3px}
.story-dpad button{background:linear-gradient(#516da3,#283956);border:1px solid #b5c5e5;border-radius:11px;color:white;font-size:25px;font-weight:1000;touch-action:manipulation}
.story-dpad button:nth-child(1){grid-area:1/2}.story-dpad button:nth-child(2){grid-area:2/1}.story-dpad button:nth-child(3){grid-area:3/2}.story-dpad button:nth-child(4){grid-area:2/3}
.story-clue{border:2px solid #f4d58b;border-radius:16px;padding:18px;background:linear-gradient(125deg,#37405e,#272d49);font-size:clamp(15px,2.5vw,19px);color:#fff7db;font-weight:900;line-height:1.6}
.story-meter{border-radius:20px;border:1px solid #a8c1b7;background:#151b35;height:16px;overflow:hidden;flex:0 0 auto}.story-meter i{height:100%;display:block;background:linear-gradient(90deg,#68c8a4,#d6ff86);transition:width .2s}
.story-symbol-strip{background:linear-gradient(120deg,#344b65,#252b46);padding:18px 10px;text-align:center;border:1px solid #abc8d7;border-radius:17px;font-size:clamp(23px,5vw,38px);letter-spacing:.06em;line-height:1.6}
.story-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(280px,100%);align-self:center}.story-light{aspect-ratio:1;border:2px solid #7185ac;border-radius:12px;font-size:26px}.story-light.on{color:#493b0b;background:radial-gradient(circle,#fff5ba,#d5ab4c);box-shadow:0 0 14px #ffdc7966}.story-light.off{color:#60718c;background:#23334b}
.story-win{font-size:63px;text-align:center}.story-complete-title{text-align:center;color:#fbe590;font-size:30px;margin:0;font-weight:1000}
@keyframes story-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
/* Map stage action panels appear above the fixed bottom nav, not inside the clipped map viewport. */
#roadmapStageDetail{position:fixed!important;z-index:151!important;left:50%!important;right:auto!important;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px))!important;width:min(700px,calc(100vw - 18px));max-height:35dvh;overflow:auto;box-shadow:0 16px 70px #01061be8!important}
body:not([data-screen="roadmap"]) #roadmapStageDetail{display:none!important}
body.mountain-world-active #roadmapStageDetail{display:none!important}
#mountainStageCard{position:fixed!important;z-index:151!important;left:50%!important;right:auto!important;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px))!important;width:min(700px,calc(100vw - 18px));max-height:37dvh;overflow:auto;box-shadow:0 16px 70px #01061be8!important}
body:not([data-screen="roadmap"]) #mountainStageCard,body:not(.mountain-world-active) #mountainStageCard{display:none!important}
#roadmapStageDetail .roadmap-stage-play,#mountainStageCard #mountainStageStart{min-height:48px!important;padding:11px 18px!important;background:linear-gradient(135deg,#ffef8c,#ffc03d)!important;color:#33203a!important;font-weight:1000!important;box-shadow:0 4px #975d1d!important}
@media(max-width:640px){
 .muda-story{bottom:0}
 .story-top{height:45px;flex-basis:45px;padding:4px 8px}.story-top button{min-height:35px;padding:6px 10px}#storyWorld{font-size:10px}.story-save{font-size:9px}
 .story-scene{flex-basis:clamp(175px,29vh,260px)}.story-chara{left:-7%;width:55%;min-width:175px}.story-speech{left:38%;right:7px;bottom:9px;padding:10px 9px;min-height:100px}.story-speaker{font-size:10px}.story-speech p{font-size:12px;line-height:1.5}
 .story-lower{padding:8px 9px}.story-objective{padding:7px 9px}.story-body{gap:8px;padding:9px 2px 12px}.story-actions{grid-template-columns:1fr 1fr;gap:7px}.story-btn{min-height:46px;font-size:12px;padding:8px}
 .story-map{width:min(230px,100%);gap:3px}.story-cell{font-size:19px}.story-dpad{grid-template-columns:repeat(3,45px);grid-template-rows:repeat(3,36px)}
 #roadmapStageDetail,#mountainStageCard{bottom:calc(77px + env(safe-area-inset-bottom,0px))!important;width:calc(100vw - 12px)}
 #roadmapStageDetail .roadmap-stage-art{display:none}
 #roadmapStageDetail .roadmap-stage-play{min-width:92px}
}
@media(max-height:670px){.story-scene{flex-basis:150px}.story-speech{min-height:76px}.story-body{padding:6px 2px}}
@media(prefers-reduced-motion:reduce){.story-chara img{animation:none!important}.story-meter i{transition:none!important}}
/* Home: visual novel inspired campaign entry, original character artwork */
.story-home-banner{margin:14px 0;padding:25px 20px;border:2px solid #e7ce93;border-radius:21px;min-height:245px;background:radial-gradient(circle at 80% 20%,#6b69b5b0,transparent 38%),linear-gradient(130deg,#2b3d65,#231e48 67%,#233957);box-shadow:0 10px 35px #0008;position:relative;overflow:hidden;display:flex;align-items:center}
.story-home-content{position:relative;z-index:2;max-width:71%}.story-home-label{font-size:10px;font-weight:1000;color:#ffe197;letter-spacing:.05em}
.story-home-banner h2{font-size:clamp(21px,3.4vw,31px);margin:9px 0;color:#fff9d2;line-height:1.35}.story-home-banner p{font-size:13px;line-height:1.75;color:#d6e5ed;margin:3px 0 11px}
.story-home-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.story-home-meta span{font-size:11px;font-weight:800;color:#d4f6e9;background:#0a1f3d9c;border:1px solid #c2daa566;padding:6px 9px;border-radius:9px}
.story-home-banner button{min-height:46px;border:0;border-radius:11px;background:linear-gradient(100deg,#eaffac,#7deaca);padding:11px 16px;font-weight:1000;color:#19302e;box-shadow:0 5px 0 #2c625b}
.story-home-banner>img{position:absolute;right:0;bottom:-26px;height:105%;width:38%;object-fit:contain;object-position:bottom right;filter:drop-shadow(0 10px 20px #0007)}
@media(max-width:600px){.story-home-banner{padding:17px 13px;min-height:230px}.story-home-content{max-width:78%}.story-home-banner>img{right:-13%;width:51%;opacity:.85}.story-home-banner p{font-size:11px}.story-home-banner h2{font-size:20px}.story-home-label{font-size:9px}.story-home-meta span{font-size:9px}.story-home-banner button{font-size:12px;min-height:43px;padding:9px}}

/* World 02 character storytelling */
.mountain-game-npc{width:56px;height:64px;object-fit:cover;object-position:top center;flex:none;filter:drop-shadow(0 3px 3px #0008)}
.mountain-game-story{display:grid;gap:2px;padding:9px 15px;background:linear-gradient(100deg,#23384f,#27334f);border-bottom:1px solid #a7a49b80}
.mountain-game-story span{color:#f8db9a;font-size:11px;font-weight:1000}.mountain-game-story p{margin:0;font-size:12px;line-height:1.4;color:#f5f2de}
.mountain-game-header{gap:9px}.mountain-game-header>div{flex:1}
@media(max-width:650px){.mountain-game-npc{height:49px;width:42px}.mountain-game-story{padding:6px 9px}.mountain-game-story p{font-size:11px}}
