/* Five tactile, independently actionable pieces. Exterior edges stay calm and rounded. */
.story-stack{--dam-hold:clamp(1200px,145svh,1900px)}
.chapter-scroll-space{height:clamp(220px,24svh,360px)}
.story-world .story-stack>.nature-v2{height:max(1100px,calc(100svh - 32px));min-height:1100px}
.story-world .nature-v2 .nature-copy{top:12%;max-width:66%}
.story-world .nature-v2 .mountain-world{width:43.89%;height:58.52%;top:6%;right:3.5%}
.puzzle-path{top:33%;bottom:auto;left:clamp(35px,3.8vw,78px);right:clamp(35px,3.8vw,78px);margin:0}
.puzzle-steps{grid-template-columns:repeat(6,minmax(0,1fr));gap:15px 30px;align-items:start}
.planning-steps .puzzle-step{min-height:0;padding:0;margin:0!important;display:flex;flex-direction:column;align-items:center;grid-column:span 2}
.puzzle-step-3{grid-row:2;grid-column:1 / 3!important}.puzzle-step-4{grid-row:2;grid-column:3 / 5!important}.puzzle-step-5{grid-row:2;grid-column:5 / 7!important}
.puzzle-float{width:clamp(170px,13vw,230px);height:auto;aspect-ratio:260/266;perspective:850px;animation:puzzle-levitate 7s ease-in-out infinite;animation-delay:var(--float-delay,0s)}
.puzzle-step-1{--tilt:-7deg;--float-delay:-1.2s}.puzzle-step-2{--tilt:6deg;--float-delay:-3.5s}.puzzle-step-3{--tilt:-5deg;--float-delay:-.3s}.puzzle-step-4{--tilt:5deg;--float-delay:-4.6s}.puzzle-step-5{--tilt:-6deg;--float-delay:-2.4s}
.puzzle-button{position:relative;width:100%;height:100%;background:none;border:0;padding:0;color:#fff9ef;transform:rotateX(13deg) rotateY(-9deg) rotateZ(var(--tilt));transform-style:preserve-3d;transition:transform .45s cubic-bezier(.2,.7,.2,1);cursor:pointer;border-radius:30px;text-align:center}
.puzzle-body{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 14px 12px #102b2370)}
.puzzle-order{position:absolute;left:20%;top:17%;font-size:15px;font-weight:500;opacity:.65;letter-spacing:-.04em}
.puzzle-title{position:absolute;left:18%;right:13%;top:41%;font-size:clamp(18px,1.4vw,25px);font-weight:750;line-height:1.2;letter-spacing:-.04em;text-shadow:0 1px 6px #152a2a35}
.puzzle-step-5 .puzzle-title{font-size:clamp(14px,1.05vw,20px);left:17%;right:11%;top:37%}
.puzzle-arrow{position:absolute;bottom:17%;right:18%;font-size:18px;color:#fff7dfd9}
.puzzle-button:hover{transform:rotateX(6deg) rotateY(-3deg) rotateZ(var(--tilt)) translateY(-5px)}
.puzzle-button:focus-visible{outline:2px solid #e9cfff;outline-offset:9px}
.puzzle-description{position:relative;width:min(100%,285px);padding-top:22px;text-align:center;min-height:96px}
.puzzle-description>p{margin:0 auto;color:#cbd8c1;font-size:clamp(12px,.9vw,16px);line-height:1.75;max-width:280px}
.puzzle-twig{position:absolute;width:1px;height:17px;background:linear-gradient(#d0a8ef99,#c0a4d13d);top:0;left:50%}.puzzle-twig:after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#d7b5f0;bottom:-1px;left:-1.5px;box-shadow:0 0 9px #b981e866}
.puzzle-branches{position:absolute;inset:0 -10px 0;width:100%;height:100%;fill:none;stroke:url(#branch-light);stroke-width:.8;filter:drop-shadow(0 0 2px #bc8fe166);pointer-events:none;z-index:-1}
@keyframes puzzle-levitate{0%,100%{translate:0 0}50%{translate:0 -9px}}
/* A memory map starts with the traveller's account of a completed trip. */
.map-memory{position:relative;width:430px;max-width:37%;padding:4px 0 0 22px;isolation:isolate}
.map-memory:before{content:'';position:absolute;z-index:-1;inset:-30px -25px -30px -35px;background:radial-gradient(ellipse at 60% 45%,#aa7bd526,transparent 68%);border-right:1px solid #b494cf30;border-radius:46% 24% 39% 58%;rotate:-8deg;pointer-events:none}
.map-memory .memory-eyebrow{margin:0;color:#d4b7eb;font-size:9px;letter-spacing:.16em;font-weight:650}
.map-memory h3{font-size:clamp(21px,1.6vw,29px);font-weight:650;line-height:1.3;letter-spacing:-.035em;color:#f0e5f7;margin-top:13px}
.map-memory>p{font-size:clamp(12px,.95vw,16px);line-height:1.75;color:#c6d5bd;margin-top:14px;max-width:390px}
.map-memory .map-questionnaire{margin-top:20px;font-size:clamp(12px,.95vw,16px);gap:14px;min-height:60px;padding:16px 20px;box-shadow:0 14px 30px -17px #c392ef99,inset 0 1px 0 #fff9}
.memory-mic{display:grid;place-items:center;width:27px;height:27px;flex-shrink:0;border:1px solid #674a873d;border-radius:50%;font-size:20px}
.map-memory .map-questionnaire>svg{width:17px;height:17px}
.map-memory .map-questionnaire:hover .memory-mic{rotate:30deg;transition:rotate .7s}
.map-heading h2{font-size:clamp(40px,3.5vw,68px)}
.dialog-start-actions{display:grid;gap:10px;margin-top:22px}.dialog-start-actions>button{padding:15px 18px;text-align:left;border-radius:13px;background:#e4eadb;color:#304831;border:1px solid #bbcab1;font-weight:650;font-size:14px}
.memory-draft-label{display:block;font-weight:650;margin-top:24px}.memory-draft{display:block;width:100%;min-height:140px;margin-top:10px;padding:16px;border:1px solid #becbb1;border-radius:14px;background:#f5f6ef;color:#2a4233;font:inherit;resize:vertical;line-height:1.7}.memory-example{margin-top:14px;color:#74568c;font-weight:650;background:transparent;border-bottom:1px solid #c5b3d2;padding:0 0 4px;font-size:12px}
@media(min-width:601px) and (max-width:1000px){.story-world .story-stack>.nature-v2{height:1200px;min-height:1200px}.story-world .nature-v2 .nature-copy{top:115px;left:32px;max-width:65%}.story-world .nature-v2 .nature-copy h2{font-size:46px}.story-world .nature-v2 .mountain-world{top:210px;right:2%;width:42.9%;height:385px}.puzzle-path{top:30%;left:28px;right:28px}.puzzle-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px 22px}.planning-steps .puzzle-step{grid-column:span 2!important;grid-row:auto;padding:0;max-width:none}.puzzle-step-1{grid-column:1 / 3!important}.puzzle-step-2{grid-row:2!important}.puzzle-step-3{grid-row:2!important}.puzzle-step-4{grid-row:3!important}.puzzle-step-5{grid-row:3!important}.puzzle-float{width:165px}.puzzle-title{font-size:19px}.puzzle-step-5 .puzzle-title{font-size:15px}.puzzle-description{min-height:78px;padding-top:15px}.puzzle-description>p{font-size:12px;max-width:240px}.puzzle-twig{height:11px}}
@media(max-width:900px){.map-memory{padding-left:0;max-width:40%}.map-memory h3{font-size:21px}.map-memory .map-questionnaire{font-size:11px;gap:8px;padding:14px 12px}.memory-mic{width:22px;height:22px;font-size:17px}.map-heading h2{font-size:40px}}
@media(max-width:600px){
 .story-stack{--dam-hold:1100px}.chapter-scroll-space{height:180px}
 .story-world .story-stack>.nature-v2{height:auto;min-height:0;padding:105px 24px 75px}
 .story-world .nature-v2 .nature-copy{top:auto;left:auto;max-width:none}
 .story-world .nature-v2 .nature-copy h2{font-size:clamp(34px,9.5vw,48px)}
 .story-world .nature-v2 .mountain-world{top:auto;right:auto;width:83.16%;height:338.8px;margin:18px 0 0 auto}
 .puzzle-path{top:auto;left:auto;right:auto;bottom:auto;margin-top:25px}
 .puzzle-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 16px}
 .planning-steps .puzzle-step{grid-column:auto!important;grid-row:auto!important;padding:0;max-width:none;margin:0!important}
 .planning-steps .puzzle-step-5{grid-column:1 / -1!important;max-width:220px;justify-self:center}
 .puzzle-float{width:min(100%,175px)}.puzzle-title{font-size:16px}.puzzle-step-5 .puzzle-title{font-size:15px}.puzzle-order{font-size:12px}.puzzle-arrow{font-size:15px}
 .puzzle-description{padding-top:17px;min-height:0}.puzzle-description>p{font-size:11px;line-height:1.75}.puzzle-twig{height:12px}.puzzle-branches{display:none}
 .map-memory{max-width:none;width:auto;margin-top:25px;padding:0}.map-memory h3{font-size:24px}.map-memory>p{font-size:13px;margin-top:12px}.map-memory .map-questionnaire{font-size:12px;padding:15px;gap:10px;min-height:56px}.map-memory .memory-eyebrow{font-size:8px}.map-heading h2{font-size:35px}
}
@media(prefers-reduced-motion:reduce){.chapter-scroll-space,.dam-scroll-space{height:0}.puzzle-float{animation:none}.puzzle-button{transition:none}.puzzle-button:hover{transform:rotateX(13deg) rotateY(-9deg) rotateZ(var(--tilt))}.map-memory .map-questionnaire:hover .memory-mic{rotate:0;transition:none}}
@media(max-width:600px){.planning-steps li.puzzle-step{padding:0}.planning-steps li.puzzle-step-5{max-width:220px;padding:0}}
