/* Composited scroll scenes; geometry is reserved before JavaScript starts. */
.home-refined .site-header { background:#f7f7f2; backdrop-filter:none; }
.home-refined .hero-project::before {
  inset:0; width:auto; height:auto; border:0; border-radius:0; box-shadow:none;
  background:radial-gradient(ellipse at 5% 95%,#6b74ff80,transparent 60%),radial-gradient(ellipse at 90% 5%,#5bceff50,transparent 55%) !important;
}
.home-refined .hero-project::after {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:repeating-radial-gradient(ellipse at -20% 120%,transparent 0 77px,#fff2 78px 79px,transparent 80px 158px);
  background-size:140% 140%;
}
.project-story {
  --scene-two:0; --scene-three:0; --story-pan:0; --story-first:0; --story-second:0; --story-third:0;
  --story-top:89px; --story-height:calc(100svh - var(--story-top));
  position:relative; height:calc(var(--story-height) + 155svh); margin-top:104px;
  background:#142c42; color:#fff;
}
.story-pin { position:sticky; top:var(--story-top); height:var(--story-height); overflow:hidden; isolation:isolate; }
.story-scenes { position:absolute; inset:0; }
.story-scene-content { position:absolute; inset:0; overflow:hidden; isolation:isolate; background:inherit; }
.project-story[data-active] .story-scene,.project-story[data-active] .story-scene-content { will-change:transform; }
.story-scene { position:absolute; inset:0; overflow:hidden; isolation:isolate; background:#142c42; }
.story-scene-content::before { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse at 80% 55%,#497b9370,transparent 65%); }
.story-booking { background:#244bec; transform:translate3d(calc((1 - var(--scene-two))*100%),0,0); }
.story-booking .story-scene-content::before { background:radial-gradient(ellipse at 80% 20%,#9bc8ff70,transparent 70%); }
.story-gallery { background:#292134; transform:translate3d(0,calc((1 - var(--scene-three))*100%),0); }
.story-gallery .story-scene-content::before { background:radial-gradient(ellipse at 65% 30%,#b786af70,transparent 65%); }
.story-booking .story-scene-content { transform:translate3d(calc((var(--scene-two) - 1)*100%),0,0); }
.story-gallery .story-scene-content { transform:translate3d(0,calc((var(--scene-three) - 1)*100%),0); }
.story-copy { position:absolute; z-index:2; left:max(5.5vw,calc((100vw - 1280px)/2)); top:18%; width:43%; }
.story-copy .eyebrow { display:block; font-size:10px; letter-spacing:2px; margin-bottom:34px; color:#dce7fb; }
.story-copy>p { font-size:clamp(38px,4.1vw,68px); font-weight:500; letter-spacing:-.055em; line-height:1.08; margin:0 0 28px; }
.story-copy em { font:inherit; color:#c7ecf4; }
.story-booking .story-copy em { color:#d8ffa1; }
.story-gallery .story-copy em { color:#edcde6; }
.story-copy>span:last-child { display:block; font-size:13px; line-height:1.85; color:#e2e9f4; max-width:390px; }
.story-screen { position:absolute; width:min(65vw,1050px); left:49%; top:14%; border:1px solid #c3d6e977; border-radius:8px; overflow:hidden; background:#fff; box-shadow:0 40px 80px #0005; transform:none; }
.story-screen-bar { height:32px; padding:6px 20px; font-size:10px; color:#4c5c75; background:#f4f6fb; border-bottom:1px solid #dce1eb; }
.story-screen img { display:block; width:100%; height:auto; aspect-ratio:1.44; }
.story-word { position:absolute; left:4%; bottom:18px; color:#ffffff0d; font-size:clamp(110px,17vw,270px); line-height:1; font-weight:700; letter-spacing:-.065em; pointer-events:none; white-space:nowrap; }
.story-links { position:absolute; z-index:5; bottom:40px; left:max(5.5vw,calc((100vw - 1280px)/2)); display:flex; gap:12px; flex-wrap:wrap; }
.story-links a { display:flex; align-items:center; justify-content:center; min-height:46px; padding:12px 18px; font-size:11px; font-weight:600; border:1px solid #dce8f5; background:#14263ef0; color:#fff; transition:background .25s,color .25s; }
.story-links a:hover { background:#fff; color:#14263e; }
.home-refined .story-links a:focus-visible { outline-color:#d8ffa1; }
.story-progress { position:absolute; z-index:5; left:0; right:0; bottom:0; display:flex; gap:4px; }
.story-progress>span { width:33.333%; height:4px; background:#ffffff30; }
.story-progress>span::after { content:""; display:block; height:100%; background:#d8ffa1; transform-origin:left; transform:scaleX(var(--story-first)); }
.story-progress>span:nth-child(2)::after { transform:scaleX(var(--story-second)); }
.story-progress>span:nth-child(3)::after { transform:scaleX(var(--story-third)); }
/* The color field and the section's edge connect the large content chapters. */
.home-refined .services-section { position:relative; isolation:isolate; overflow:hidden; }
.home-refined .services-section::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(ellipse at 90% 80%,#2451c0,#14263e 72%); opacity:var(--chapter-fill,0); transform:scale(calc(1.08 - var(--chapter-fill,0)*.08)); pointer-events:none; }
.home-refined .contact-banner::after { width:100%; height:100%; inset:0; border:0; border-radius:0; box-shadow:none; background:linear-gradient(120deg,#14324b,#263fad 50%,transparent); opacity:var(--chapter-fill,0); transform:scale(calc(1.08 - var(--chapter-fill,0)*.08)); }
.home-refined .services-section::after { content:""; position:absolute; z-index:1; left:0; right:0; bottom:-64px; height:64px; background:var(--paper); transform-origin:left top; transform:skewY(calc(var(--chapter-edge,0)*-2deg)); pointer-events:none; }
@media (min-width:1500px) {
 .story-copy { width:40%; }
}
@media (max-width:1100px) {
 .story-copy { left:32px; width:45%; top:20%; }
 .story-copy>p { font-size:clamp(36px,4.4vw,49px); }
 .story-copy>span:last-child { max-width:300px; font-size:12px; }
 .story-screen { left:52%; top:19%; width:72vw; }
 .story-links { left:32px; }
}
@media (max-width:800px) {
 .project-story { --story-top:79px; margin-top:64px; }
 .story-copy { top:8%; left:25px; width:calc(100% - 50px); }
 .story-copy .eyebrow { font-size:9px; margin-bottom:18px; }
 .story-copy>p { font-size:clamp(33px,5.2vw,43px); margin-bottom:14px; }
 .story-copy>span:last-child { font-size:11px; max-width:none; }
 .story-screen { left:25%; top:46%; width:84vw; }
 .story-word { bottom:70px; }
 .story-links { left:25px; right:25px; bottom:24px; gap:8px; }
 .story-links a { font-size:10px; padding:10px 13px; }
}
@media (max-width:700px) {
 .project-story { --story-top:109px; height:calc(var(--story-height) + 125svh); }
 .story-copy { left:20px; top:6%; width:calc(100% - 40px); }
 .story-copy>p { font-size:clamp(32px,8.4vw,46px); }
 .story-copy>span:last-child { line-height:1.7; }
 .story-screen { top:45%; left:12%; width:96vw; border-radius:5px; }
 .story-screen-bar { height:25px; font-size:8px; padding:4px 12px; }
 .story-links { left:20px; right:20px; bottom:20px; }
 .story-links a { padding:10px; font-size:9px; min-height:44px; }
}
@media (max-height:650px) and (min-width:701px) {
 .story-copy { top:9%; }
 .story-copy .eyebrow { margin-bottom:16px; }
 .story-copy>p { font-size:36px; }
 .story-links { bottom:20px; }
 .story-screen { top:8%; }
}
@media (max-height:720px) and (max-width:700px) {
 .story-copy>p { font-size:28px; margin-bottom:9px; }
 .story-copy .eyebrow { margin-bottom:12px; }
 .story-copy>span:last-child { font-size:10px; }
 .story-screen { top:48%; }
}
@media (prefers-reduced-motion:reduce) {
 .project-story { height:auto; }
 .story-pin { position:relative; height:auto; }
 .story-scenes { position:relative; }
 .story-scene { position:relative; min-height:650px; transform:none; }
 .story-scene-content { transform:none !important; }
 .story-screen { transform:none; }
 .story-links { position:relative; left:auto; right:auto; bottom:auto; padding:25px; background:#142c42; }
 .story-progress { display:none; }
 .home-refined .services-section { clip-path:none; }
 .home-refined .services-section::before,.home-refined .contact-banner::after { opacity:1; transform:none; }
 .home-refined .services-section::after { display:none; }
}
