/* Cinematic world replacement. Structure and scroll choreography remain unchanged. */
:root{
  --scene-splash:url('../assets/world/island-storm-1280.webp');
  --scene-hero:url('../assets/world/island-storm-1280.webp');
  --scene-story:url('../assets/scenes/story-storm-1280.webp');
  --scene-explorer:url('../assets/scenes/explorer-storm-1280.webp');
  --scene-signal:url('../assets/scenes/signal-storm-1280.webp');
  --scene-horizon:url('../assets/scenes/horizon-storm-1280.webp');
  --world-grade:rgb(4 14 22 / .56);--world-veil:rgb(6 19 30 / .92)
}
:root[data-theme="light"]{
  --scene-splash:url('../assets/world/island-dawn-1280.webp');
  --scene-hero:url('../assets/world/island-dawn-1280.webp');
  --scene-story:url('../assets/scenes/story-dawn-1280.webp');
  --scene-explorer:url('../assets/scenes/explorer-dawn-1280.webp');
  --scene-signal:url('../assets/scenes/signal-dawn-1280.webp');
  --scene-horizon:url('../assets/scenes/horizon-dawn-1280.webp');
  --world-grade:rgb(228 222 210 / .2);--world-veil:rgb(216 209 195 / .88)
}

/* Hero: one photographic plate is split into depth bands, with independent fog, cliff and explorer layers. */
.legacy-island-vector,.legacy-story-vector{display:none!important}
.cinematic-world,.cinematic-layer,.cinematic-fog,.cinematic-signal,.cinematic-foreground,.cinematic-explorer{position:absolute;inset:0}
.cinematic-world{overflow:hidden;background:#06131e}
.cinematic-layer{overflow:hidden;background-image:var(--scene-hero);background-size:cover;background-position:center;will-change:translate}
.island-hero.is-intro .cinematic-layer{background-image:var(--scene-splash)}
.cinematic-sky{clip-path:inset(0 0 43%)}
.cinematic-island{clip-path:inset(28% 0 23%)}
.cinematic-ocean{clip-path:inset(55% 0 0)}
.cinematic-fog{z-index:4;overflow:hidden;mix-blend-mode:screen;opacity:.48}
.cinematic-fog span{position:absolute;width:78%;height:28%;top:43%;left:-21%;background:radial-gradient(ellipse at center,rgb(159 184 204 / .18) 0 18%,rgb(159 184 204 / .08) 42%,transparent 72%);animation:cinematic-fog-drift 30s ease-in-out infinite alternate;will-change:transform,opacity}
.cinematic-fog span+span{top:35%;left:48%;width:65%;opacity:.62;animation-direction:alternate-reverse;animation-duration:38s}
.cinematic-signal{z-index:5;pointer-events:none}
.cinematic-signal span{position:absolute;right:5.7%;top:24.8%;width:25%;height:8%;transform-origin:100% 50%;clip-path:polygon(0 40%,100% 0,100% 100%);background:linear-gradient(90deg,transparent,rgb(209 170 110 / .12) 70%,rgb(209 170 110 / .34));filter:blur(2px);opacity:.62}
.cinematic-foreground{z-index:6;will-change:translate}
.cinematic-foreground img{position:absolute;right:-3%;bottom:-3%;width:min(74%,1060px);max-width:none;transform-origin:right bottom}
.cinematic-explorer{z-index:7;left:auto;top:auto;right:14%;bottom:7%;width:clamp(120px,13vw,210px);height:auto;will-change:translate,scale;filter:drop-shadow(0 14px 16px rgb(0 0 0 / .34))}
.cinematic-explorer img{width:100%;height:auto}
[data-theme="light"] .cinematic-foreground{opacity:.86;mix-blend-mode:multiply}
[data-theme="light"] .cinematic-explorer{opacity:.94;filter:drop-shadow(0 12px 16px rgb(30 42 48 / .2))}
.island-shade{background:linear-gradient(90deg,rgb(4 14 22 / .98),rgb(4 14 22 / .86) 31%,rgb(4 14 22 / .28) 58%,transparent 78%),linear-gradient(0deg,rgb(4 14 22 / .88),transparent 26%),linear-gradient(180deg,rgb(4 14 22 / .18),transparent 38%)}
[data-theme="light"] .island-shade{background:linear-gradient(90deg,rgb(228 222 210 / .96),rgb(228 222 210 / .82) 32%,rgb(228 222 210 / .26) 62%,transparent 78%),linear-gradient(0deg,rgb(216 209 195 / .86),transparent 24%),linear-gradient(180deg,rgb(216 209 195 / .18),transparent 38%)}
.island-hero.is-intro .cinematic-signal span{animation:cinematic-beam-intro .8s ease 1.05s both}
.island-hero.is-entering .cinematic-foreground{animation:island-foreground-entry .9s cubic-bezier(.22,1,.36,1)}
.island-hero:is(.choreography-paused,.is-atmosphere-paused) .cinematic-fog span,html.polish-paused .cinematic-fog span{animation-play-state:paused;will-change:auto}
.hero-story-chapter.choreography-paused :is(.cinematic-layer,.cinematic-foreground,.cinematic-explorer,.cinematic-story-layer,.cinematic-story-explorer){will-change:auto}
@keyframes cinematic-fog-drift{to{transform:translate3d(16%,2%,0);opacity:.72}}
@keyframes cinematic-beam-intro{from{opacity:0;rotate:-7deg}55%{opacity:.82}to{opacity:.62;rotate:0deg}}

/* Story continues the same coast with a closer crop and a real explorer layer. */
.cinematic-story-stack,.cinematic-story-layer,.cinematic-story-fog,.cinematic-story-route{position:absolute;inset:0}
.cinematic-story-stack{overflow:hidden;background:var(--ocean)}
.cinematic-story-layer{overflow:hidden;background-image:var(--section-scene,none);background-size:cover;background-position:64% center;will-change:transform,translate}
.v2-story.scene-ready{--section-scene:var(--scene-story)}
.story-sky{clip-path:inset(0 0 39%)}
.story-terrain{clip-path:inset(32% 0 0)}
.story-ground{z-index:2;clip-path:none}
.story-ground img{position:absolute;inset:auto -5% -14% auto;width:68%;height:auto;opacity:.68}
.cinematic-story-fog{z-index:3;background:radial-gradient(ellipse at 60% 63%,rgb(159 184 204 / .15),transparent 48%),linear-gradient(90deg,rgb(6 19 30 / .78),transparent 54%)}
.cinematic-story-route{z-index:5;width:100%;height:100%;overflow:visible}
.cinematic-story-route .story-route{stroke:var(--signal);stroke-width:2;stroke-opacity:.62;filter:drop-shadow(0 0 5px rgb(var(--signal-rgb) / .24))}
.cinematic-story-explorer{position:absolute;z-index:6;left:58%;bottom:16%;width:clamp(50px,5.5vw,86px);height:auto;opacity:.8;filter:drop-shadow(0 10px 12px rgb(0 0 0 / .38));will-change:translate}
[data-theme="light"] .story-ground img{opacity:.78;mix-blend-mode:multiply}
[data-theme="light"] .cinematic-story-fog{background:radial-gradient(ellipse at 60% 63%,rgb(234 228 217 / .28),transparent 48%),linear-gradient(90deg,rgb(216 209 195 / .84),transparent 58%)}
[data-theme="light"] .cinematic-story-explorer{opacity:.9;filter:drop-shadow(0 10px 12px rgb(31 45 53 / .22))}
.v2-story:before{z-index:0;background:linear-gradient(180deg,var(--ocean) 0%,transparent 26%,transparent 77%,var(--ocean) 100%)}
.v2-story-landscape{z-index:-1}

/* Project covers use conceptual device presentations, kept separate from verified project copy. */
.project-cinematic-media{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;transition:transform 1.1s cubic-bezier(.22,1,.36,1),opacity .5s}
.project-cover-copy{position:absolute;z-index:3;inset:0;padding:clamp(28px,4vw,58px) 5%;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(90deg,rgb(4 14 22 / .94),rgb(4 14 22 / .7) 33%,rgb(4 14 22 / .12) 58%,transparent 76%);color:#eaf0f4}
.project-cover-copy span,.project-cover-copy small{font:600 clamp(8px,.72vw,11px)/1.6 'Manrope',sans-serif;letter-spacing:.17em;color:#9fb8cc}
.project-cover-copy strong{font:400 clamp(58px,7.4vw,108px)/.86 'Cormorant Garamond',Georgia,serif;letter-spacing:-.035em;text-shadow:0 6px 28px rgb(0 0 0 / .38)}
.project-cover-copy strong em{font-weight:400;color:#9fb8cc}
.project-cover-copy small{color:#d1aa6e;max-width:250px}
.v2-project-visual::after{z-index:4;background:linear-gradient(180deg,rgb(234 240 244 / .04),transparent 32%,rgb(4 14 22 / .36));box-shadow:inset 0 0 0 1px rgb(234 240 244 / .08)}
.v2-project:hover .project-cinematic-media{transform:translate3d(0,0,0) scale(1.025);opacity:.96}
[data-theme="light"] .v2-project-visual{background:#8b9699;border-color:rgb(79 108 128 / .48);box-shadow:0 28px 72px rgb(16 34 47 / .16)}
[data-theme="light"] .project-cinematic-media{opacity:.9}

/* Environmental continuity through the editorial sections. */
.v2-work{--section-scene:none;background-color:var(--ocean);background-image:linear-gradient(180deg,var(--ocean) 0%,rgb(var(--ocean-rgb) / .84) 24%,var(--storm) 100%),var(--section-scene);background-size:cover;background-position:center top}
.v2-notes-section{--section-scene:none;background-image:linear-gradient(180deg,rgb(var(--ocean-rgb) / .94),rgb(var(--ocean-rgb) / .82)),var(--section-scene);background-size:cover;background-position:center 45%}
.v2-about{--section-scene:none;background-image:linear-gradient(90deg,rgb(var(--ocean-rgb) / .28),rgb(var(--ocean-rgb) / .9) 56%),linear-gradient(180deg,rgb(var(--ocean-rgb) / .74),var(--storm)),var(--section-scene);background-size:cover;background-position:center 42%}
.v2-capabilities,.v2-trail,.v2-tools{--section-scene:none;background-image:linear-gradient(125deg,rgb(var(--ocean-rgb) / .97),rgb(var(--ocean-rgb) / .84)),var(--section-scene);background-size:cover;background-position:center 54%}
.v2-work.scene-ready,.v2-notes-section.scene-ready,.v2-capabilities.scene-ready,.v2-trail.scene-ready,.v2-tools.scene-ready{--section-scene:var(--scene-story)}
.v2-about.scene-ready{--section-scene:var(--scene-explorer)}
.v2-portrait{overflow:hidden;transform:rotate(-.35deg);clip-path:polygon(0 0,100% 0,100% 92%,89% 100%,0 100%);background:rgb(var(--ocean-rgb) / .5);box-shadow:22px 28px 70px rgb(0 0 0 / .26)}
.v2-portrait img{position:relative;z-index:1;filter:saturate(.54) contrast(1.14) brightness(.76);mix-blend-mode:luminosity}
.v2-portrait:after{z-index:2;background:linear-gradient(0deg,rgb(4 14 22 / .78),transparent 46%),linear-gradient(120deg,rgb(159 184 204 / .12),transparent 50%)}
[data-theme="light"] .v2-portrait{box-shadow:22px 28px 64px rgb(16 34 47 / .18)}
[data-theme="light"] .v2-portrait img{filter:saturate(.68) contrast(1.08) brightness(.94);mix-blend-mode:multiply}

/* Contact is the lighthouse payoff; Footer holds the same coast after motion settles. */
.v2-signal{--section-scene:none;background-color:var(--storm);background-image:linear-gradient(90deg,rgb(var(--ocean-rgb) / .96),rgb(var(--ocean-rgb) / .82) 50%,rgb(var(--ocean-rgb) / .38)),linear-gradient(0deg,var(--ocean),transparent 34%),var(--section-scene);background-size:cover;background-position:center 39%}
.v2-signal.scene-ready{--section-scene:var(--scene-signal)}
.v2-signal::after{content:'';position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 91.6% 26%,rgb(var(--signal-rgb) / .28),transparent 4%),linear-gradient(90deg,transparent 68%,rgb(var(--signal-rgb) / .07));opacity:var(--signal-atmosphere-opacity,.25)}
.signal-form{background:rgb(var(--surface-rgb,13 34 50) / .96);border-color:rgb(var(--horizon-rgb) / .38);box-shadow:0 24px 58px rgb(0 0 0 / .2)}
.v2-horizon{--section-scene:none;background-color:var(--ocean);background-image:linear-gradient(180deg,rgb(var(--ocean-rgb) / .72),rgb(var(--ocean-rgb) / .9)),var(--section-scene);background-size:cover;background-position:center 48%}
.v2-horizon.scene-ready{--section-scene:var(--scene-horizon)}
[data-theme="light"] .v2-work{background-image:linear-gradient(180deg,rgb(var(--ocean-rgb) / .9),rgb(var(--ocean-rgb) / .76) 34%,var(--storm)),var(--section-scene)}
[data-theme="light"] .v2-notes-section,[data-theme="light"] .v2-capabilities,[data-theme="light"] .v2-trail,[data-theme="light"] .v2-tools{background-image:linear-gradient(125deg,rgb(var(--ocean-rgb) / .94),rgb(var(--ocean-rgb) / .8)),var(--section-scene)}
[data-theme="light"] .v2-about{background-image:linear-gradient(90deg,rgb(var(--ocean-rgb) / .2),rgb(var(--ocean-rgb) / .9) 58%),linear-gradient(180deg,rgb(var(--ocean-rgb) / .7),var(--storm)),var(--section-scene)}
[data-theme="light"] .v2-signal{background-image:linear-gradient(90deg,rgb(var(--ocean-rgb) / .96),rgb(var(--ocean-rgb) / .8) 48%,rgb(var(--ocean-rgb) / .3)),linear-gradient(0deg,var(--ocean),transparent 34%),var(--section-scene)}
[data-theme="light"] .v2-horizon{background-image:linear-gradient(180deg,rgb(var(--ocean-rgb) / .58),rgb(var(--ocean-rgb) / .88)),var(--section-scene)}
[data-theme="light"] .signal-form{background:rgb(234 228 217 / .96);box-shadow:0 24px 56px rgb(16 34 47 / .12)}

@media(max-width:900px){
  .cinematic-layer{background-position:92% center}
  .cinematic-sky{clip-path:inset(0 0 45%)}.cinematic-island{clip-path:inset(26% 0 21%)}.cinematic-ocean{clip-path:inset(57% 0 0)}
  .cinematic-foreground img{right:-34%;bottom:-1%;width:125%}
  .cinematic-explorer{right:8%;bottom:10%;width:clamp(105px,28vw,150px)}
  .cinematic-signal span{right:-4%;top:27%;width:38%}
  .project-cover-copy{padding:28px 7%;background:linear-gradient(180deg,rgb(4 14 22 / .72),transparent 44%,rgb(4 14 22 / .76))}
  .project-cover-copy strong{font-size:clamp(50px,15vw,76px)}
  .project-cover-copy small{font-size:7px}
  .project-cinematic-media{object-position:64% center}
  .cinematic-story-layer{background-position:70% center}
  .story-ground img{width:105%;right:-35%;bottom:-5%}
  .cinematic-story-explorer{left:auto;right:17%;bottom:15%;width:58px}
  .island-content{background:linear-gradient(90deg,rgb(var(--ocean-rgb) / .32),transparent 88%)}
  [data-theme="light"] .island-content{background:linear-gradient(90deg,rgb(var(--ocean-rgb) / .58),rgb(var(--ocean-rgb) / .18) 88%,transparent)}
  .v2-about{background-position:64% center}
  .v2-signal{background-position:92% center}
}
@media(max-width:700px){
  :root{--scene-splash:url('../assets/world/island-storm-768.webp');--scene-hero:url('../assets/world/island-storm-768.webp');--scene-story:url('../assets/scenes/story-storm-768.webp');--scene-explorer:url('../assets/scenes/explorer-storm-768.webp');--scene-signal:url('../assets/scenes/signal-storm-768.webp');--scene-horizon:url('../assets/scenes/horizon-storm-768.webp')}
  :root[data-theme="light"]{--scene-splash:url('../assets/world/island-dawn-768.webp');--scene-hero:url('../assets/world/island-dawn-768.webp');--scene-story:url('../assets/scenes/story-dawn-768.webp');--scene-explorer:url('../assets/scenes/explorer-dawn-768.webp');--scene-signal:url('../assets/scenes/signal-dawn-768.webp');--scene-horizon:url('../assets/scenes/horizon-dawn-768.webp')}
  .cinematic-fog span{animation:none;will-change:auto}
}
@media(min-width:1401px){
  :root{--scene-splash:url('../assets/world/island-storm.webp');--scene-hero:url('../assets/world/island-storm.webp');--scene-story:url('../assets/scenes/story-storm.webp');--scene-explorer:url('../assets/scenes/explorer-storm.webp');--scene-signal:url('../assets/scenes/signal-storm.webp');--scene-horizon:url('../assets/scenes/horizon-storm.webp')}
  :root[data-theme="light"]{--scene-splash:url('../assets/world/island-dawn.webp');--scene-hero:url('../assets/world/island-dawn.webp');--scene-story:url('../assets/scenes/story-dawn.webp');--scene-explorer:url('../assets/scenes/explorer-dawn.webp');--scene-signal:url('../assets/scenes/signal-dawn.webp');--scene-horizon:url('../assets/scenes/horizon-dawn.webp')}
}
@media(prefers-reduced-motion:reduce){.cinematic-fog span,.cinematic-signal span{animation:none!important;will-change:auto}.project-cinematic-media{transition:none}}
