/* A photographic story first; the sticky treatment is a progressive enhancement. */
.point-story{position:relative;margin-top:4px;margin-bottom:45px;isolation:isolate}
.story-visual{display:none}
.story-step{display:grid;grid-template-columns:1fr 1.2fr;gap:8%;align-items:center;padding:60px 0;border-top:1px solid var(--line);scroll-margin-top:110px}
.story-step-copy{min-width:0}
.story-kicker{display:flex;align-items:center;gap:19px;color:var(--muted);font-size:8px;letter-spacing:1px}
.story-kicker>span{color:var(--accent)}
.story-step h3{font-size:clamp(42px,5.2vw,80px);font-weight:450;line-height:1.02;letter-spacing:-.065em;margin:28px 0}
.story-step h3 em{font-weight:400}
.story-description{font-size:13px;line-height:1.95;color:var(--muted);max-width:290px}
.story-step .text-link{font-size:10px;gap:20px;margin-top:26px;max-width:100%}
.story-inline{display:block;width:100%;cursor:zoom-in}
.story-inline img{display:block;width:100%;height:auto;max-height:650px;object-fit:contain}
.story-ready .point-story{display:grid;grid-template-columns:.8fr 1.2fr;column-gap:5%}
.story-ready .story-copy{grid-column:1;grid-row:1;min-width:0}
.story-ready .story-visual{display:flex;flex-direction:column;position:sticky;grid-column:2;grid-row:1;align-self:start;top:96px;height:calc(100svh - 120px);max-height:1000px;min-height:420px;z-index:3}
.story-ready .story-step{display:flex;flex-direction:column;justify-content:center;align-items:stretch;min-height:86svh;padding:55px 0;border:0}
.story-ready .story-inline{display:none}
.story-ready .story-step-copy{opacity:.4;transition:opacity .6s ease}
.story-ready .story-step.is-current .story-step-copy{opacity:1}
.story-stage-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:7px;letter-spacing:.8px;color:var(--muted);padding:12px 0 17px;border-top:1px solid var(--line)}
.story-skip{min-height:32px;display:inline-flex;align-items:center;color:var(--accent);white-space:nowrap}
.story-screen{position:relative;flex:1;min-height:0;perspective:1200px;background:radial-gradient(ellipse at 50% 55%,#b7cdee09,transparent 67%)}
.story-frame{position:absolute;inset:0;margin:0;display:flex;flex-direction:column;will-change:clip-path,opacity;transform-origin:50% 50%}
.story-frame:not(:first-child){opacity:0}
.story-frame-image{display:block;position:relative;flex:1;min-height:0;width:100%;cursor:zoom-in}
.story-frame img{display:block;width:100%;height:100%;object-fit:contain;filter:none;transform:translate3d(0,var(--frame-lift,0px),0);will-change:transform}
.story-frame figcaption{display:flex;justify-content:space-between;gap:10px;font-size:7px;letter-spacing:.6px;color:var(--muted);padding-top:13px;min-height:29px}
.story-frame figcaption>span:first-child{color:var(--accent)}
.story-open{position:absolute;right:18px;bottom:18px;border:1px solid #d0e1f444;background:#0b1017c9;backdrop-filter:blur(10px);color:var(--accent);padding:9px 12px;opacity:0;transform:translateY(4px);transition:opacity .4s,transform .5s;font-size:7px;letter-spacing:.7px}
.story-frame-open:hover .story-open,.story-frame-open:focus-visible .story-open{opacity:1;transform:none}
.story-light{position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#dceaff0c 49%,transparent 69%);opacity:var(--story-light,0);transform:translateX(var(--story-light-x,-40%));pointer-events:none}
.story-rail{display:flex;align-items:center;gap:14px;min-height:58px;border-bottom:1px solid var(--line);font-size:8px;color:var(--muted)}
.story-rail a{display:flex;align-items:center;gap:11px;min-height:44px;padding:0 3px}
.story-rail a[aria-current="step"]{color:var(--accent)}
.story-rail-line{display:block;position:relative;width:28px;height:1px;background:#b7cdee24}
.story-rail-line::after{content:"";position:absolute;inset:0;background:var(--accent);transform:scaleX(var(--chapter-fill,0));transform-origin:left}
.story-scroll{margin-left:auto;font-size:7px;letter-spacing:.6px}
.story-end{scroll-margin-top:100px;outline:none}
@media(max-width:1100px){.story-ready .point-story{grid-template-columns:.85fr 1.15fr;column-gap:4%}.story-stage-meta{font-size:6px}.story-frame figcaption{font-size:6px}.story-scroll{display:none}.story-step h3{font-size:5.4vw}}
@media(max-width:760px){
 .point-story{margin-bottom:20px}.intro-copy{margin-bottom:35px}
 .story-step{grid-template-columns:1fr;padding:40px 0;gap:28px}.story-step h3{font-size:clamp(39px,11vw,62px);margin:20px 0}.story-description{font-size:12px;line-height:1.85;max-width:310px}.story-inline img{max-height:520px}.story-step .text-link{font-size:10px;margin-top:17px}
 .story-ready .point-story{display:block}.story-ready .story-visual{position:sticky;top:70px;height:46svh;min-height:240px;max-height:430px;padding-top:9px;background:var(--bg);margin:0 -1px;padding-inline:1px;box-shadow:0 20px 25px -20px var(--bg)}
 .story-ready .story-step{min-height:62svh;padding:30px 0 65px;scroll-margin-top:calc(46svh + 90px)}
 .story-stage-meta{font-size:6px;padding:0 0 8px;min-height:31px;letter-spacing:.5px}.story-skip{font-size:6px;min-height:30px}.story-frame figcaption{font-size:6px;padding-top:9px;min-height:23px;letter-spacing:.4px}.story-frame figcaption>span:last-child{display:none}
 .story-rail{min-height:45px;gap:12px;font-size:7px}.story-rail a{min-height:44px;gap:9px}.story-rail-line{width:24px}.story-scroll{display:block;font-size:6px;letter-spacing:.4px}.story-open{font-size:6px;padding:6px 8px;right:10px;bottom:10px;opacity:1;transform:none}.story-kicker{font-size:7px;gap:16px}.story-ready .story-step-copy{opacity:.45}
}
@media(max-width:360px){.story-scroll{display:none}.story-stage-meta{font-size:5.5px}.story-step h3{font-size:12vw}.story-ready .story-step{min-height:66svh}}
@media(max-height:600px) and (min-width:761px){.story-ready .story-visual{top:85px;height:calc(100svh - 100px);min-height:270px}.story-ready .story-step{min-height:100svh}.story-step h3{font-size:48px}}

/* Keep captions stable while the image aperture moves. */
.story-frame figcaption{display:none}
.story-caption{display:flex;justify-content:space-between;gap:10px;font-size:7px;letter-spacing:.6px;color:var(--muted);padding-top:13px;min-height:29px}
.story-caption>span:first-child{color:var(--accent)}
@media(max-width:1100px){.story-caption{font-size:6px}}
@media(max-width:760px){.story-caption{font-size:6px;padding-top:9px;min-height:23px;letter-spacing:.4px}.story-caption>span:last-child{display:none}}

.story-frame{pointer-events:none}.story-frame-open{position:absolute;inset:0;z-index:2;width:100%;height:100%;cursor:zoom-in}
