/* Full-bleed chapter transitions respond to scroll rather than playing once. */
.section-passage{position:relative;display:flex;align-items:center;height:clamp(470px,78svh,760px);overflow:hidden;isolation:isolate;background:#02070d;border-block:1px solid #a8d5ed2b}
.passage-work{background:radial-gradient(circle at 78% 38%,#153b55,#071724 48%,#02070d)}
.passage-photo{background:radial-gradient(circle at 75% 45%,#123c52,#081823 46%,#02070d)}
.section-passage::before{content:'';position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,#03101bf2,#03101bd2 50%,#03101b3d 88%),linear-gradient(0deg,#02070dc9,transparent 50%);pointer-events:none}
.passage-grid{position:absolute;inset:56% -30% -90%;background-image:linear-gradient(#8ab9d333 1px,transparent 1px),linear-gradient(90deg,#8ab9d333 1px,transparent 1px);background-size:75px 75px;transform:perspective(420px) rotateX(68deg);transform-origin:top center;opacity:.75}
.passage-images{position:absolute;inset:0 1% 0 29%;perspective:1000px}
.passage-images img{position:absolute;width:37%;height:69%;object-fit:cover;border-radius:13px;box-shadow:0 28px 100px #000b,0 0 0 1px #d9f0ff36;filter:saturate(.67) contrast(1.05);opacity:0;clip-path:inset(0 0 100% 0 round 13px);transform:translate3d(var(--drift,0px),var(--rise,0px),0) rotate(var(--tilt,0deg));transition:opacity .9s ease,clip-path 1.1s cubic-bezier(.17,.8,.2,1);will-change:transform}
.passage-images img:nth-child(1){left:0;top:4%;--tilt:-11deg;--rise:35px;transition-delay:.04s}
.passage-images img:nth-child(2){left:29%;top:18%;--tilt:6deg;--rise:-12px;transition-delay:.14s}
.passage-images img:nth-child(3){left:57%;top:9%;--tilt:-5deg;--rise:22px;transition-delay:.24s}
.passage-photo .passage-images img:nth-child(1){--tilt:8deg}
.passage-photo .passage-images img:nth-child(2){--tilt:-8deg}
.passage-photo .passage-images img:nth-child(3){--tilt:6deg}
.section-passage.passage-in .passage-images img{opacity:.9;clip-path:inset(0 0 0 0 round 13px)}
.passage-copy{position:relative;z-index:3;display:flex;flex-direction:column;gap:clamp(20px,4vh,42px);width:min(82%,1050px);margin-left:clamp(22px,6vw,110px);transform:translateY(var(--copy-shift,0px));pointer-events:none}
.passage-kicker,.passage-rule{color:#bad7e9;font-size:clamp(10px,.85vw,13px);font-weight:700;letter-spacing:.26em;opacity:0;transition:opacity .8s ease .3s}
.passage-copy strong{display:block;color:#f0f7fa;font-family:'Space Grotesk',sans-serif;font-size:clamp(70px,10vw,170px);font-weight:600;line-height:.86;letter-spacing:-.09em;text-shadow:0 10px 60px #001522bd;clip-path:inset(0 100% 0 0);transition:clip-path 1.15s cubic-bezier(.17,.8,.2,1) .1s}
.passage-copy strong em{color:#acd7ed;font-weight:400}
.passage-rule{display:flex;align-items:center;gap:18px}
.passage-rule i{display:block;width:65px;height:1px;background:#acd7ed}
.passage-mark{position:absolute;z-index:3;right:clamp(20px,5vw,90px);bottom:35px;color:#e4f4fb;font-size:clamp(42px,5vw,80px);font-weight:300;opacity:0;transform:translate(-30px,-30px);transition:opacity .8s ease .4s,transform 1s ease .4s}
.section-passage.passage-in .passage-copy strong{clip-path:inset(0 0 0 0)}
.section-passage.passage-in .passage-kicker,.section-passage.passage-in .passage-rule,.section-passage.passage-in .passage-mark{opacity:1}
.section-passage.passage-in .passage-mark{transform:none}

.motion-ready .statement p,.motion-ready .section-top h2,.motion-ready .photo-intro h2,.motion-ready .about h2,.motion-ready .contact h2{opacity:0;transform:translate3d(0,42px,0);clip-path:inset(0 0 105% 0);transition:opacity .8s ease,transform 1s cubic-bezier(.17,.78,.22,1),clip-path 1s cubic-bezier(.17,.78,.22,1)}
.motion-ready .statement.chapter-in p,.motion-ready .chapter-in .section-top h2,.motion-ready .chapter-in .photo-intro h2,.motion-ready .about.chapter-in h2,.motion-ready .contact.chapter-in h2{opacity:1;transform:none;clip-path:inset(-.12em -.1em -.15em -.1em)}
.motion-ready .section-top>p,.motion-ready .photo-intro>p{opacity:0;transform:translateY(20px);transition:opacity .75s ease .25s,transform .75s ease .25s}
.motion-ready .chapter-in .section-top>p,.motion-ready .chapter-in .photo-intro>p{opacity:1;transform:none}

.site-cursor{display:none}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  html.cursor-ready,html.cursor-ready *{cursor:none!important}
  html.cursor-ready .site-cursor{display:block;position:fixed;z-index:300;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0;transform:translate3d(var(--cursor-x,-100px),var(--cursor-y,-100px),0);transition:opacity .2s ease}
  html.cursor-ready .site-cursor.is-visible{opacity:1}
  .site-cursor-ring{position:absolute;top:-22px;left:-22px;width:44px;height:44px;border:1.5px solid #c7ecff;border-radius:50%;background:#07172542;box-shadow:0 0 22px #66bdec8c,inset 0 0 15px #66bdec33;backdrop-filter:blur(2px);transition:width .28s ease,height .28s ease,top .28s ease,left .28s ease,background .28s ease,border-color .28s ease}
  .site-cursor-dot{position:absolute;top:-3px;left:-3px;width:6px;height:6px;border-radius:50%;background:#e6f7ff;transform:translate3d(var(--dot-x,0px),var(--dot-y,0px),0);box-shadow:0 0 12px #fff;transition:opacity .2s}
  .site-cursor-label{position:absolute;top:-7px;left:-33px;width:66px;color:#07101b;font-size:9px;font-weight:800;letter-spacing:.05em;text-align:center;opacity:0;transition:opacity .18s}
  .site-cursor.has-action .site-cursor-ring{top:-34px;left:-34px;width:68px;height:68px;background:#d1edfa;border-color:#d1edfa;box-shadow:0 0 32px #65bde7a8}
  .site-cursor.has-action .site-cursor-dot{opacity:0}
  .site-cursor.has-action .site-cursor-label{opacity:1}
  .site-cursor.is-pressed .site-cursor-ring{transform:scale(.82)}
}
@media(max-width:700px){
  .section-passage{height:530px;align-items:end}
  .section-passage::before{background:linear-gradient(0deg,#03101bf2,#03101ba0 45%,transparent 85%)}
  .passage-images{inset:-4% -15% 30% -12%}
  .passage-images img{width:40%;height:95%}
  .passage-images img:nth-child(1){left:0;top:12%}
  .passage-images img:nth-child(2){left:30%;top:0}
  .passage-images img:nth-child(3){left:61%;top:11%}
  .passage-copy{margin:0 22px 55px;width:calc(100% - 44px);gap:19px}
  .passage-copy strong{font-size:clamp(47px,11.7vw,82px)}
  .passage-kicker,.passage-rule{font-size:9px}
  .passage-mark{right:20px;bottom:8px;font-size:38px}
}
@media(prefers-reduced-motion:reduce){
  .passage-images img,.passage-copy strong,.passage-kicker,.passage-rule,.passage-mark,.motion-ready .statement p,.motion-ready .section-top h2,.motion-ready .photo-intro h2,.motion-ready .about h2,.motion-ready .contact h2,.motion-ready .section-top>p,.motion-ready .photo-intro>p{opacity:1;transform:none;clip-path:none;transition:none}
}
