/* Viewport-sized scenes and one violet light rail, independent of the card stack. */
.story-world{--rail-gutter:68px;--scene-gutter:18px;--rail-x:-34px;--travel-purple:#b394d5;width:calc(100vw - var(--rail-gutter) - var(--scene-gutter));margin-left:calc((100% - 100vw)/2 + var(--rail-gutter))}
.scroll-light{position:absolute;inset:0;pointer-events:none;z-index:8;--light-y:0px;--light-visible:0;--light-bridge:66px}
.scroll-light .light-rail{position:absolute;top:40px;bottom:28px;left:var(--rail-x);width:1px;background:linear-gradient(180deg,transparent,var(--travel-purple) 120px,var(--travel-purple) calc(100% - 120px),transparent);opacity:.7}
/* Each junction belongs to a card; scrolling only changes its light strength. */
.rail-junction{position:absolute;left:var(--rail-x);top:var(--junction-y);height:0;width:0;opacity:var(--junction-visible,0);--junction-bridge:68px}
.junction-halo{position:absolute;left:-25px;top:-100px;width:50px;height:200px;background:radial-gradient(ellipse,#b394d557,transparent 69%);filter:blur(7px)}
.junction-pin{position:absolute;left:-1.5px;top:-1.5px;width:4px;height:4px;border-radius:50%;background:#d2b7ed;box-shadow:0 0 8px #b394d5,0 0 20px #b394d578}
.junction-link{position:absolute;left:0;top:-.5px;height:1px;width:var(--junction-bridge);background:linear-gradient(90deg,#c9abeacc,#b394d58c 50%,transparent);box-shadow:0 0 7px #b394d560}
.card-edge-light{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:var(--edge-light,0);background:radial-gradient(ellipse 270px 260px at 0 var(--edge-y,50%),#b394d53b,transparent 72%);transition:opacity .22s ease-out}
.story-world .journey-v2 .journey-heading>p,.story-world .tools-v2 .section-heading>p{position:relative;padding:22px 25px 22px 60px;border:1px solid #ceb0ec59;border-radius:20px;background:radial-gradient(ellipse at 0 0,#b394d52e,transparent 80%),linear-gradient(135deg,#d1bed214,#b394d509);box-shadow:0 12px 32px -20px #101e24a3,inset 0 1px 0 #e1d2eb33;color:#ecf0e4;font-weight:600;line-height:1.75;letter-spacing:-.015em;backdrop-filter:blur(14px)}
.story-world .journey-v2 .journey-heading>p:before,.story-world .tools-v2 .section-heading>p:before{content:'✧';position:absolute;top:18px;left:20px;font-size:28px;line-height:1.2;font-weight:400;color:#d5b8ef;text-shadow:0 0 15px #b394d56b}
@media(max-width:900px){.story-world .journey-v2 .journey-heading>p,.story-world .tools-v2 .section-heading>p{padding:17px 18px 17px 46px;border-radius:16px}.story-world .journey-v2 .journey-heading>p:before,.story-world .tools-v2 .section-heading>p:before{left:15px;top:15px;font-size:23px}}
@media(max-width:600px){.story-world .journey-v2 .journey-heading>p,.story-world .tools-v2 .section-heading>p{font-size:13px;margin-top:22px;max-width:none}}
@media(min-width:901px){
 .story-world>.hero-v2{min-height:max(650px,calc(100svh - 118px));padding-inline:clamp(34px,3.2vw,68px)}
 .story-world .story-stack>.panel{min-height:calc(100svh - 32px)}
 .story-world .journey-v2,.story-world .tools-v2{display:flex;flex-direction:column;padding-inline:clamp(34px,3.2vw,68px)}
 .story-world .journey-visual{flex:1;display:flex;align-items:center}
 .story-world .journey-visual>svg{flex-shrink:0}
 .story-world .journey-footer{margin-top:auto}
 .story-world .tools-stage{flex:1;align-items:center}
 .story-world .story-stack>.nature-v2,.story-world .story-stack>.mascot{height:max(700px,calc(100svh - 32px))}
 .story-world .nature-v2 .mountain-world{height:76%;width:57%;top:13%;right:0}
 .story-world .nature-v2 .nature-copy{top:31%;left:clamp(42px,3.8vw,78px)}
 .story-world .mascot .beaver{height:calc(100% - 130px);max-height:950px;top:auto;bottom:-5px}
 .story-world .mascot-name{top:13%;font-size:clamp(140px,13vw,260px)}
 .story-world .mascot-left{top:49%;left:clamp(38px,3.6vw,74px);width:clamp(240px,22vw,370px)}
 .story-world .mascot-note{top:51%;right:clamp(34px,3.5vw,72px);width:clamp(225px,18vw,320px);padding:clamp(22px,2vw,35px)}
 .story-world .mascot-left h2{font-size:clamp(26px,2.1vw,40px)}
 .story-world .mascot-note strong{font-size:clamp(24px,2vw,36px)}
 .story-world .mascot-note>p{font-size:clamp(11px,.8vw,15px)}
 .story-world .mascot-note .text-link{font-size:clamp(11px,.8vw,14px)}
 .story-world .hero-stack-divider{height:60px}
}
@media(min-width:1151px){
 .story-world .hero-v2 .hero-copy{max-width:56%;padding-top:clamp(55px,8svh,140px)}
 .story-world .hero-v2 h1{font-size:clamp(64px,5.35vw,106px)}
 .story-world .hero-v2 .hero-copy>p{font-size:clamp(16px,1.04vw,20px);max-width:630px}
 .story-world .hero-v2 .emblem-scene{top:17%;height:72%;width:45%;right:3.5%}
 .story-world .hero-v2 .emblem{width:104%;height:104%;left:-2%;top:-2%}
 .story-world .hero-v2 .btn{font-size:clamp(14px,.85vw,17px)}
 .story-world .journey-heading h2,.story-world .tools-v2 .section-heading h2{font-size:clamp(50px,4vw,76px)}
 .story-world .journey-heading>p,.story-world .tools-v2 .section-heading>p{font-size:clamp(14px,.95vw,18px);max-width:470px}
 .story-world .tools-v2 .tool-card{min-height:clamp(515px,52svh,720px);padding:clamp(27px,2.2vw,44px)}
 .story-world .tools-v2 .tool-card h3{font-size:clamp(34px,2.55vw,48px)}
 .story-world .tools-v2 .tool-card>p{font-size:clamp(15px,1.05vw,20px)}
 .story-world .tools-v2 .tool-question{font-size:clamp(12px,.8vw,15px)}
 .story-world .tools-v2 .tool-result p{font-size:clamp(13px,.9vw,17px);max-width:360px}
 .story-world .tools-v2 .tool-action{font-size:clamp(13px,.85vw,16px)}
 .story-world .nature-v2 .nature-copy h2{font-size:clamp(64px,5.2vw,104px)}
 .story-world .nature-v2 .nature-copy p{font-size:clamp(15px,1vw,19px)}
 .story-world .nature-v2 .nature-copy .btn{font-size:clamp(14px,.85vw,17px)}
}
@media(max-width:900px){.story-world{--rail-gutter:44px;--scene-gutter:14px;--rail-x:-24px}.rail-junction .junction-halo{height:160px;top:-80px}.card-edge-light{background:radial-gradient(ellipse 180px 230px at 0 var(--edge-y,50%),#b394d533,transparent 72%)}}
@media(max-width:600px){.story-world{--rail-gutter:24px;--scene-gutter:6px;--rail-x:-15px}.scroll-light .light-rail{opacity:.45}.rail-junction .junction-halo{height:125px;top:-62px;width:30px;left:-15px}.card-edge-light{background:radial-gradient(ellipse 115px 190px at 0 var(--edge-y,50%),#b394d52e,transparent 72%)}.story-world .journey-v2 .journey-heading h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){.card-edge-light{transition:none}}
