/* Full-screen ride with separate horizontal information and landscape lanes. */
body.story-reading .story-mode-note{padding-top:calc(var(--header-height,88px) + 24px)}
.story-journey{display:none}
body.story-ready{--story-paper:#fffef5;background:var(--story-paper);overflow-x:clip}
html:has(body.story-ready){scroll-behavior:auto}
body.story-ready .hero,body.story-ready .intro,body.story-ready .occasions,body.story-ready .treat-section,body.story-ready .how-section{display:none}
/* The ride owns resize compensation; its moving art is not a native scroll anchor. */
body.story-ready .story-journey{display:block;position:relative;overflow-anchor:none}
body.story-ready .site-header{position:fixed;inset:0 0 auto;z-index:80;max-width:none;min-height:88px;padding:8px 4vw;padding-top:calc(8px + env(safe-area-inset-top,0px));padding-left:max(4vw,env(safe-area-inset-left,0px));padding-right:max(4vw,env(safe-area-inset-right,0px));background:transparent;border-bottom:1px solid #203d3817;backdrop-filter:none}
body.story-ready .wordmark{font-size:1.9rem;line-height:1;white-space:nowrap;flex-shrink:0}
body.story-ready .wordmark span{font-size:.47rem;margin-top:9px;letter-spacing:.16em}
body.story-ready .desktop-navigation{display:flex;gap:20px}
body.story-ready .desktop-navigation a{font-size:.8rem;text-decoration:none}
.header-actions{display:flex;gap:16px;align-items:center}
.header-request{font-size:.78rem;white-space:nowrap}
.reading-toggle{font-size:.72rem;border:0;border-bottom:1px solid #203d3840;padding:6px 0;background:none;color:var(--ink)}
.menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:none;color:var(--ink);font-size:1.25rem}
#mobile-menu:not([hidden]){position:absolute;left:0;right:0;top:100%;display:grid;gap:0;padding:16px 24px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px));background:var(--story-paper);border-bottom:1px solid var(--line);max-height:70svh;overflow:auto}
#mobile-menu a,.menu-reading-toggle{display:block;padding:11px 0;text-decoration:none;min-height:44px}
.menu-reading-toggle{text-align:left;border:0;background:none;color:var(--ink);font:inherit}
body.story-ready main{padding-top:0}
.story-pin{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;touch-action:pan-y pinch-zoom;isolation:isolate;background:var(--story-paper)}
.panorama-window{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.panorama{position:absolute;max-width:none;width:var(--world-width,2172px);height:auto;left:0;bottom:var(--art-bottom,0px);will-change:transform;mix-blend-mode:multiply;transform:translate3d(var(--world-x,0px),0,0)}
.story-chapters{position:absolute;inset:0;z-index:2}
.story-scene{position:absolute;inset:0;padding:var(--copy-top,106px) 4vw 0;padding-left:max(4vw,env(safe-area-inset-left,0px));padding-right:max(4vw,env(safe-area-inset-right,0px));visibility:hidden;opacity:0;pointer-events:none}
.story-scene.is-active{visibility:visible;opacity:1;pointer-events:auto}
/* A compact hero surface leaves the panoramic artwork and moving bike visible. */
.story-copy{position:relative;max-width:720px;max-height:var(--copy-max-height,340px);padding:22px 28px;border:1px solid #203d381c;border-radius:12px;background:rgba(248,245,237,.74);backdrop-filter:blur(8px);overflow-y:auto;overscroll-behavior-y:auto;scrollbar-width:thin;scrollbar-color:#63796d #f1f2e7}
.story-content{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}.story-heading{grid-row:1;grid-column:1}.story-body{grid-column:1;grid-row:2}
.story-copy::before{display:none}.story-heading,.story-body{min-width:0}
.story-scene.is-active .story-copy{animation:chapter-arrive .24s ease-out both}
@keyframes chapter-arrive{from{transform:translateY(4px)}to{transform:translateY(0)}}
.story-kicker{font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;line-height:1.5;margin:0 0 12px;display:flex;gap:8px;align-items:center}
.story-kicker::before{content:"";width:20px;height:1px;background:var(--accent);flex-shrink:0}
.story-copy h1,.story-copy h2{font-size:clamp(2.35rem,3.5vw,3.5rem);letter-spacing:-.05em;line-height:1.04;text-wrap:balance;margin:0}
.story-copy em{color:var(--accent)}
.story-lead{font-size:.95rem;line-height:1.5;margin:0;color:#43594e;max-width:56ch}
.story-caption{font-family:var(--sans);font-size:.75rem;color:#53675d;margin:9px 0 0;line-height:1.45}
.scene-actions{grid-column:1;grid-row:3;display:flex;align-items:flex-start;margin:0;min-width:0}
.scene-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:4px 0;border:0;border-radius:0;background:transparent;color:var(--ink);font-size:.8125rem;font-weight:600;line-height:1.4;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;max-width:100%;cursor:pointer}.scene-link:hover{color:var(--accent)}.scene-link span[aria-hidden]{flex-shrink:0}
.scene-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 18px;margin:12px 0 0;padding-top:10px;border-top:1px solid #203d3828}
.scene-details dt{font-size:.8125rem;font-weight:700;margin-bottom:3px;line-height:1.4}
.scene-details dd{font-size:.8125rem;line-height:1.4;color:#43594e;margin:0}
.story-steps{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0;margin:0}
.story-steps li{counter-increment:step;position:relative;padding-top:26px;font-size:.8125rem;line-height:1.45}
.story-steps li::before{content:"0" counter(step);position:absolute;top:0;color:var(--accent);font-size:.75rem}
.story-steps strong,.story-steps span{display:block}.story-steps span{color:#43594e;margin-top:5px}
.story-highlights{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:12px 0 0}.story-highlights li{border:1px solid #203d3828;border-radius:999px;padding:4px 10px;font-size:.75rem;line-height:1.4;color:#43594e}
.event-picks{display:flex;flex-wrap:wrap;gap:2px 18px;margin:10px 0 0}
.event-picks a{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;text-decoration:none;font-size:.8125rem;padding:8px 0;min-height:44px;line-height:1.4;border-bottom:1px solid #203d3828}
.event-picks a:hover{color:var(--accent)}.event-picks span{color:var(--accent)}
.story-bike{position:absolute;left:var(--bike-left,2.5%);width:var(--bike-width,180px);top:var(--bike-top,60%);bottom:auto;z-index:3;pointer-events:none;will-change:left}
.story-bike svg{width:100%;display:block;overflow:visible}.story-bike::after{content:"";position:absolute;left:5%;right:27%;top:var(--bike-ground-local,98.08%);height:4px;border-radius:50%;background:#203d3820;filter:blur(3px)}
.ride-controls{position:absolute;bottom:0;left:0;right:0;min-height:68px;display:flex;align-items:center;justify-content:space-between;padding:10px 4vw;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));padding-left:max(4vw,env(safe-area-inset-left,0px));padding-right:max(4vw,env(safe-area-inset-right,0px));background:#fffef5c7;border-top:1px solid #203d3817;backdrop-filter:blur(12px);gap:20px;z-index:6}
.ride-hint{font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.ride-hint span{margin-left:10px}
.scene-nav{display:flex;gap:18px;align-items:center}.scene-nav a{display:flex;align-items:center;gap:7px;min-height:44px;min-width:24px;text-decoration:none;font-size:.7rem;color:#43594e}
.stop-dot{width:6px;height:6px;border:1px solid #63796d;border-radius:50%;flex-shrink:0}
.scene-nav a[aria-current=true]{color:var(--ink);font-weight:700}.scene-nav a[aria-current=true] .stop-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px #a23e3214}
.ride-arrows{display:flex;align-items:center;gap:12px}.ride-arrows button{width:44px;height:44px;border:1px solid #203d3830;border-radius:50%;background:transparent;color:var(--ink)}.scene-count{font-size:.65rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.ride-progress{position:absolute;bottom:0;left:0;right:0;height:2px;z-index:8;background:#203d3814}.ride-progress span{height:100%;display:block;background:var(--accent);width:calc(var(--journey-progress,0)*100%)}
#book,#questions,.form-panel h3{scroll-margin-top:100px}
.story-mode-note:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 5vw;background:#f1f2e7;border-bottom:1px solid var(--line)}
.story-mode-title{font-family:var(--serif);font-size:1.7rem;margin-bottom:6px}.story-mode-note [data-mode-reason]{max-width:620px;font-size:.9375rem;color:#43594e;line-height:1.5}.story-mode-note .scene-link{flex-shrink:0;font-size:.875rem}
body.story-reading .story-journey{height:auto!important}body.story-reading .story-pin{position:relative;top:0;height:auto;overflow:visible}body.story-reading .story-chapters{position:relative}
body.story-reading .panorama-window,body.story-reading .story-bike,body.story-reading .ride-controls,body.story-reading .ride-progress{display:none}
body.story-reading .story-scene{position:relative;visibility:visible;opacity:1!important;pointer-events:auto;min-height:0;padding-bottom:280px;overflow:hidden;background:url('/assets/panorama-v2.webp') var(--still-position,0%) bottom / 1800px 600px no-repeat;border-bottom:1px solid var(--line);scroll-margin-top:88px}
body.story-reading .story-copy{display:block;max-width:1040px;max-height:none;overflow:visible;animation:none}body.story-reading .story-content{display:block}body.story-reading .story-heading{max-width:540px;margin-bottom:24px}body.story-reading .story-body{max-width:760px}body.story-reading .scene-actions{flex-direction:row;flex-wrap:wrap;margin-top:24px}
@media(min-width:1800px){.story-content{grid-template-columns:minmax(0,1fr);gap:14px}.story-copy h1,.story-copy h2{font-size:3.5rem}.story-lead{font-size:1rem}}
@media(max-width:1100px){body.story-ready .desktop-navigation{display:none}.menu-toggle{display:block}.stop-label{display:none}.scene-nav{gap:14px}.scene-nav a{justify-content:center}}
@media(min-width:701px) and (max-width:1100px){.story-content{grid-template-columns:minmax(0,1fr);gap:12px}.scene-details{grid-template-columns:1fr 1fr}.story-steps{gap:12px}.event-picks{grid-template-columns:1fr 1fr}}
@media(max-width:700px){
 body.story-ready .site-header{min-height:76px;padding:6px 16px;padding-top:calc(6px + env(safe-area-inset-top,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));gap:10px}body.story-ready .wordmark{font-size:1.4rem}body.story-ready .wordmark span{font-size:.36rem;letter-spacing:.12em}.header-actions{gap:8px;margin-left:auto}.header-request{font-size:.7rem;gap:6px}.menu-toggle{width:40px;height:40px}.reading-toggle{display:none}
 body.story-ready main{padding-top:0}.story-pin{top:0}.story-scene{padding:var(--copy-top,88px) 20px 0;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}.story-copy{padding:14px 16px}.story-content{grid-template-columns:minmax(0,1fr);gap:12px}.story-heading{grid-row:1;grid-column:1}.story-body{grid-column:1;grid-row:2}.story-copy h1,.story-copy h2{font-size:clamp(2rem,7vw,2.5rem)}.story-kicker{font-size:.65rem;letter-spacing:.06em;margin-bottom:10px;gap:6px}.story-kicker::before{width:14px}.story-lead{font-size:.875rem;line-height:1.45}.story-caption{font-size:.75rem;margin-top:8px}.scene-actions{grid-column:1;grid-row:3}.scene-link{font-size:.8125rem}.story-highlights{gap:6px;margin-top:8px}.story-highlights li{font-size:.6875rem;padding:3px 8px}.scene-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.scene-details dt,.scene-details dd{font-size:.75rem}.story-steps{grid-template-columns:1fr;gap:12px}.story-steps li{font-size:.75rem;padding-top:0;padding-left:30px}.story-steps li::before{left:0;top:0}.event-picks{gap:0 16px;margin-top:8px}.event-picks a{font-size:.75rem}

 .ride-controls{padding:8px 16px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));gap:8px}.ride-hint,.scene-count{display:none}.scene-nav{gap:6px}.ride-arrows{gap:8px}.story-mode-note:not([hidden]){display:block;padding:22px 24px}.story-mode-note .scene-link{margin-top:16px}
 body.story-reading .story-scene{scroll-margin-top:76px}
}
@media(max-width:370px){.header-actions .party-label{font-size:0}.header-actions .party-label::after{content:'Request';font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.story-scene.is-active .story-copy{animation:none}}



.copy-scroll-hint{display:none}
.story-copy.is-scrollable .copy-scroll-hint{display:flex;justify-content:space-between;gap:12px;font-size:.625rem;color:#43594e;margin:0 0 8px;border-bottom:1px solid #203d3828;padding-bottom:5px}

#bike-examples{scroll-margin-top:100px}
/* Supplied bike examples live below the ride, with a native swipeable photo rail. */
.bike-examples{padding:80px max(24px,4vw) 52px;background:#f1f2e7;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.examples-heading{display:grid;grid-template-columns:1.25fr 1fr auto;align-items:end;gap:40px;margin-bottom:34px}.examples-heading .eyebrow{font-size:.6875rem;margin-bottom:16px}.examples-heading h2{font-size:clamp(2.25rem,3.6vw,4rem)}.examples-heading h2 em{color:var(--accent)}
.examples-intro{font-size:.9375rem;line-height:1.6;color:#43594e;max-width:360px}.examples-instruction{font-size:.75rem;margin-top:16px}.examples-controls{display:flex;align-items:center;gap:12px}.examples-controls button{width:46px;height:46px;border:1px solid #203d3840;border-radius:50%;background:transparent;color:var(--ink)}.examples-count{font-size:.75rem;min-width:40px;text-align:center;font-variant-numeric:tabular-nums}
.bike-gallery{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:0;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-width:thin;scrollbar-color:#63796d #d6d7cb;padding-bottom:18px;max-width:100%;touch-action:pan-x pan-y}
.example-card{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.example-card img{aspect-ratio:4/3;object-fit:cover;border-radius:120px 8px 8px 8px;background:#fffef5}.example-card figcaption{display:flex;gap:16px;margin-top:20px}.example-number{font-size:.625rem;letter-spacing:.08em;padding-top:7px;color:var(--accent)}.example-card h3{font-size:1.6rem;line-height:1.15;margin-bottom:8px}.example-card p{font-size:.8125rem;color:#43594e;line-height:1.55;max-width:340px}.examples-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:26px;border-top:1px solid #203d3828;padding-top:22px;font-size:.75rem;color:#43594e}.examples-footer a{font-size:.8125rem;color:var(--ink)}
@media(max-width:1000px){.examples-heading{grid-template-columns:1fr 1fr;gap:24px}.examples-controls{grid-column:1/-1;justify-content:flex-end}.example-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:700px){#bike-examples{scroll-margin-top:88px}.bike-examples{padding:48px 20px 34px}.examples-heading{grid-template-columns:1fr;gap:20px;margin-bottom:24px}.examples-heading h2{font-size:2.5rem}.examples-heading .eyebrow{margin-bottom:12px}.examples-intro{font-size:.875rem;max-width:100%}.examples-instruction{margin-top:10px}.examples-controls{grid-column:auto;justify-content:flex-start}.bike-gallery{gap:16px}.example-card{flex-basis:86%}.example-card img{border-top-left-radius:90px}.example-card h3{font-size:1.5rem}.examples-footer{align-items:flex-start;flex-direction:column;gap:14px}}
@media(prefers-reduced-motion:reduce){.bike-gallery{scroll-behavior:auto}}

@media(max-height:480px){.story-copy{padding:8px 12px}}

/* The logo's fixed aspect ratio is set before decode, so scene clearance is stable. */
body.story-ready .wordmark.brand-logo{display:block;flex:0 0 auto;line-height:0;white-space:normal;background:transparent}
@media(max-height:480px){body.story-ready .site-header{padding-top:calc(6px + env(safe-area-inset-top,0px));padding-bottom:6px}body.story-ready .site-header .wordmark.brand-logo{width:108px}}

/* Compact navigation has its own opaque surface, independent of the scene below. */
@media(max-width:1100px){
 .site-header,body.story-ready .site-header,body.story-ready .site-header.is-on-dark{background:#fffef5;color:var(--ink);opacity:1;border-bottom-color:#203d3817;backdrop-filter:none}
 .site-header.is-on-dark .header-request,.site-header.is-on-dark .reading-toggle,.site-header.is-on-dark .menu-toggle{color:var(--ink)}
 .site-header.is-on-dark .menu-toggle,.site-header.is-on-dark .reading-toggle{border-color:var(--line)}
 .site-header.is-on-dark .brand-logo-image{filter:none}
 #mobile-menu:not([hidden]){background:#fffef5;opacity:1;backdrop-filter:none}
}
