/* Illustrated night lake / daytime valley, with the reference's calm motion. */
.hero{--scene-main:#111b3a;--scene-top:#243754;--scene-bottom:#050816;--accent:#c9a84a}
.hero-content{top:43%;transform:translate(-50%,-39%) translateY(var(--hero-scroll-y,0px))}
.hero::after{display:none}
.sky-wash{background:radial-gradient(ellipse at 5% 4%,#34466070,transparent 65%),linear-gradient(0deg,#172a50 0%,transparent 68%)}
.sky-wash:before{background:radial-gradient(ellipse at 18% 20%,#758bbc20,transparent 48%),radial-gradient(ellipse at 85% 20%,#c9a84a12,transparent 38%);animation:scene-aurora 18s ease-in-out infinite}
.moon{--orb-base:#c9a84a;--orb-accent:#e7d39b;background:none;mask-image:none;animation:orb-float 14s ease-in-out infinite;filter:none}
.celestial-orb{display:block;width:100%;height:100%;overflow:visible}
.orb-base{fill:var(--orb-base)}.orb-accent{fill:var(--orb-accent)}
.orb-channel{animation:orb-ribbon-drift 10s ease-in-out infinite alternate}
.orb-channel:nth-child(2){animation-delay:-3s}.orb-channel:nth-child(3){animation-delay:-6s}.orb-channel:nth-child(4){animation-delay:-8s}
.moon-position{transform:translate(var(--moon-x,0px),calc(var(--moon-y,0px) + var(--moon-scroll-y,0px)));transition:none}
.sky-wash{transform:translateY(var(--sky-scroll-y,0px));inset:-100px 0 0}
.moon-position:before{content:'';position:absolute;inset:-80%;border-radius:50%;background:radial-gradient(circle,#e7d39b18,transparent 68%);animation:scene-glow 9s ease-in-out infinite;pointer-events:none}
.sky-cloud{opacity:.045;animation:scene-cloud 68s linear infinite;animation-delay:-18s;top:17%;left:-25%;background:#e7d39b;width:160px;height:22px}
.cloud-two{animation-duration:98s;animation-delay:-56s;top:27%;width:130px;height:18px}
.sky-birds{display:none}
.living-landscape{position:absolute;z-index:1;left:-24px;bottom:-2px;width:calc(100% + 48px);height:42%;min-height:245px;overflow:visible;pointer-events:none;transform:none}
.night-scenery,.day-scenery{transition:opacity 1.4s ease,visibility 0s 1.4s}
.night-scenery{opacity:1;visibility:visible;transition-delay:0s}.day-scenery{opacity:0;visibility:hidden}
.scene-far{transform:translate(calc(var(--scene-x,0px)*.25),calc(var(--scene-y,0px)*.25 + var(--far-scroll-y,0px)))}
.scene-middle{transform:translate(calc(var(--scene-x,0px)*.55),calc(var(--scene-y,0px)*.45 + var(--middle-scroll-y,0px)))}
.scene-near{transform-box:view-box;transform-origin:50% 100%;transform:translateX(var(--scene-x,0px)) scaleY(var(--shore-stretch,1))}
.scene-leaves{transform-box:fill-box;transform-origin:50% 100%;animation:scene-leaves 6s ease-in-out infinite}
.window-light{fill:#c9a84a;animation:window-glow 7s ease-in-out infinite alternate}
.reflection{transform-box:fill-box;transform-origin:center;animation:water-shimmer 6s ease-in-out infinite alternate}
.reflection-two{animation-duration:8s;animation-delay:-3s}
.water-ripple{animation:water-shimmer 10s ease-in-out infinite alternate-reverse}
.boat-drift{animation:boat-drift 24s ease-in-out infinite}
.paper-boat{transform-box:fill-box;transform-origin:50% 80%;animation:boat-bob 4.8s ease-in-out infinite}
.boat-rings{transform-box:fill-box;transform-origin:center;animation:ripple-spread 4.8s ease-out infinite}
.scene-fireflies circle{animation:firefly-drift 7s ease-in-out infinite alternate}
.scene-fireflies circle:nth-child(2){animation-delay:-3s;animation-duration:9s}
.scene-fireflies circle:nth-child(3){animation-delay:-5s}
.hero.scene-paused *,.hero.scene-paused:before,.hero.scene-paused *:before{animation-play-state:paused!important}
html[data-theme=light] .hero{--scene-main:#f3faf4;--scene-top:#bfd8c2;--scene-bottom:#dbece0;--accent:#2f6b4f}
html[data-theme=light] .sky-wash{background:radial-gradient(ellipse at 20% 0%,#bfd8c270,transparent 68%),linear-gradient(0deg,#e9f4eb,transparent 70%)}
html[data-theme=light] .sky-wash:before{background:radial-gradient(ellipse at 75% 15%,#ffffff70,transparent 48%);animation:scene-aurora 18s ease-in-out infinite}
html[data-theme=light] .moon{--orb-base:#90b081;--orb-accent:#bfd8c2;background:none;mask-image:none;box-shadow:none;filter:none;animation:orb-float 14s ease-in-out infinite}
html[data-theme=light] .moon-position:before{background:radial-gradient(circle,#ffffffa0,transparent 68%)}
html[data-theme=light] .sky-cloud{background:#fff;opacity:.8}
html[data-theme=light] .night-scenery{opacity:0;visibility:hidden;transition-delay:0s,1.4s}html[data-theme=light] .day-scenery{opacity:1;visibility:visible;transition-delay:0s}
html[data-theme=light] .hero h1,html[data-theme=light] .rotating-words{color:#12372a}
html[data-theme=light] .rotating-words .phrase-bottom{color:#2f6b4f}
html[data-theme=light] .hero-eyebrow,html[data-theme=light] .vertical-label{color:#446b57}
html[data-theme=light] .hero-scroll{color:#f3faf4}
@keyframes scene-aurora{0%,100%{transform:translate(-2%,-1%) scale(1);opacity:.65}50%{transform:translate(3%,1%) scale(1.07);opacity:1}}
@keyframes scene-glow{0%,100%{transform:scale(.95);opacity:.55}50%{transform:scale(1.08);opacity:1}}
@keyframes scene-cloud{from{transform:translateX(0)}to{transform:translateX(150vw)}}
@keyframes scene-leaves{0%,100%{transform:skewX(-2deg)}50%{transform:skewX(3deg)}}
@keyframes water-shimmer{from{transform:translateX(-7px) scaleX(.96);opacity:.45}to{transform:translateX(8px) scaleX(1.04);opacity:.9}}
@keyframes boat-drift{0%,100%{transform:translateX(-14px)}50%{transform:translateX(14px)}}
@keyframes boat-bob{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-3px) rotate(1.5deg)}}
@keyframes ripple-spread{0%{transform:scaleX(.65);opacity:0}20%{opacity:.45}100%{transform:scaleX(1.2);opacity:0}}
@keyframes firefly-drift{from{transform:translate(0,3px);opacity:.2}to{transform:translate(18px,-11px);opacity:.85}}
@keyframes window-glow{from{opacity:.5}to{opacity:1}}
@keyframes orb-float{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-4px) rotate(-4deg)}}
@keyframes orb-ribbon-drift{from{transform:translate(-1px,-.6px)}to{transform:translate(1px,.6px)}}
/* Whole-line entrance and a short fade keep the text readable throughout. */
.has-motion .hero-title-line{animation:title-arrive 1s cubic-bezier(.25,.65,.3,1) both;animation-delay:var(--title-delay,0ms)}
.rotating-words{transition:opacity .42s ease,transform .42s ease;filter:none;min-height:2.2em}
.rotating-words.is-changing{opacity:0;transform:translateY(3px);filter:none}
@keyframes title-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.hero-content{top:42%;transform:translate(-50%,-29%) translateY(var(--hero-scroll-y,0px))}.living-landscape{height:34%;min-height:230px}.sky-cloud{scale:.65;top:15%}.cloud-two{top:23%}.paper-boat{scale:1.35}.moon-position:before{inset:-65%}}
@media(prefers-reduced-motion:reduce){.scene-far,.scene-middle,.scene-near{transform:none!important}.hero .sky-wash:before,.hero .moon-position:before,.hero .living-landscape *,.hero .sky-cloud{animation:none!important}.night-scenery,.day-scenery{transition:none}.boat-rings{opacity:.25}}
.music-player.has-audio-error .player-label>i{background:#af583b}

/* One river, one sailboat: open compositions in normal document flow. */
:root{--river-bg:#050816;--river-bank:#0a1123;--river-edge:#25314b;--river-water:#111b3a;--river-ink:#f8f3e6;--river-muted:#aeb8c8;--river-gold:#c9a84a;--river-rule:#e7d39b26;--bg:#050816;--accent:#c9a84a}
.river-journey{position:relative;isolation:isolate;background:var(--river-bg);overflow:clip}
.river-world{position:absolute;inset:0;z-index:2;pointer-events:none;perspective:none}
.river-camera{position:absolute;inset:0;will-change:transform}
.harbor-foreground{position:absolute;inset:0;width:100%;overflow:visible;pointer-events:none;z-index:3;will-change:transform}
.harbor-bank{fill:var(--river-bg)}
.dock-deck{fill:#8b7650}.dock-seam{fill:none;stroke:#423a2b;stroke-width:1;opacity:.55}
.dock-shadow{fill:var(--river-edge);opacity:.2}.harbor-cabin .window-light{fill:#e7d39b}
html[data-theme=light] .harbor-cabin{color:#12372a}
.journey-glint{fill:var(--river-gold);opacity:.48}
.story{position:relative;background:none;overflow:visible;isolation:auto}
.journey-water{position:absolute;left:0;top:0;width:100%;pointer-events:none;z-index:2;overflow:hidden}
.river-bank{fill:var(--river-bank);stroke:none}
.river-edge{fill:var(--river-edge);stroke:none;opacity:.45}
.river-water{fill:var(--river-water);stroke:none}
.journey-reflection{fill:none;stroke:var(--river-gold);stroke-width:1;opacity:.22}
.journey-pine{fill:#172540}
.dock-timber{fill:none;stroke:#8b7650;stroke-width:3}.dock-planks{fill:none;stroke:#c9a84a;stroke-width:1;opacity:.6}
.journey-boat{position:absolute;left:0;top:0;width:110px;height:82px;margin-left:-55px;margin-top:-65px;z-index:6;pointer-events:none;will-change:transform;transform-origin:50% 80%;contain:layout style}
.journey-boat svg{width:100%;height:100%;overflow:visible}
.journey-ripples{animation:journey-ripple 4s ease-in-out infinite;transform-origin:center;opacity:.25}
.boat-paused .journey-ripples{animation-play-state:paused}
@keyframes journey-ripple{0%,100%{opacity:.12;transform:scaleX(.85)}50%{opacity:.32;transform:scaleX(1.05)}}
.river-section{position:relative;color:var(--river-ink);padding:110px 0;scroll-margin-top:0}
.river-shell{position:relative;z-index:3;width:min(1180px,calc(100% - 128px));margin:auto}
.river-section h2{font-family:var(--serif);font-size:clamp(40px,4.1vw,64px);font-weight:400;line-height:1.08;letter-spacing:-2px;margin:25px 0 30px;white-space:pre-line}
.river-section .eyebrow{color:var(--river-gold);letter-spacing:2.2px;font-size:10px;margin:0}
.section-copy,.river-section p:not(.eyebrow):not(.studio-signature){font-size:16px;line-height:1.75;color:var(--river-muted)}
.studio-river{min-height:640px;padding:110px 0 155px}
.studio-copy{width:53%;margin-left:45%;max-width:640px}
.studio-signature{font-size:13px;color:var(--river-gold);margin-top:32px}
.service-content{width:65%}.services-river{padding-bottom:150px}
.service-content h2{max-width:640px}
.service-list{margin-top:55px;border-bottom:1px solid var(--river-rule)}
.service-row{display:grid;grid-template-columns:48px 1fr;gap:10px;padding:30px 0;border-top:1px solid var(--river-rule)}
.river-number{font-size:11px;color:var(--river-gold);letter-spacing:1px;padding-top:9px}
.service-row h3,.journey-step h3{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.2;letter-spacing:-.6px;margin:0 0 12px}
.service-row p{max-width:570px;margin:0}
.river-link{display:inline-flex;gap:25px;align-items:center;color:var(--river-gold);font-size:14px;text-decoration:none;margin-top:28px;padding:8px 0;border-bottom:1px solid var(--river-rule);transition:color .2s,border-color .2s}
.river-link:hover{color:var(--river-ink);border-color:currentColor}
.work-river{padding-top:65px;padding-bottom:155px}
.work-content{width:87%}.work-heading{position:relative}.work-heading h2{max-width:720px}
.project-count{position:absolute;right:0;top:7px;font-size:11px;color:var(--river-gold)}
.work-showcase{margin-top:45px}.work-showcase .project-open{display:block;width:100%;padding:0;text-align:left;border:0;background:none;color:inherit;cursor:pointer}
.work-image{position:relative;overflow:hidden;border-radius:2px;background:#e9e5db}
.work-image img{display:block;width:100%;height:auto;aspect-ratio:1.55;object-fit:cover;object-position:top;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.work-showcase .project-open:hover img{transform:scale(1.012)}
.work-open{position:absolute;right:18px;bottom:18px;background:#f8f3e6;color:#111b3a;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;font-size:23px}
.work-caption{display:grid;grid-template-columns:1fr 1fr;gap:45px;padding:28px 0;border-bottom:1px solid var(--river-rule)}
.work-caption h3{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:-.6px;margin:10px 0}.work-caption p:not(.eyebrow){margin:0!important;font-size:14px!important}
.process-river{padding-top:40px;padding-bottom:105px}
.journey-heading{text-align:center;margin-bottom:130px}.journey-heading .eyebrow{justify-content:center}.journey-heading h2{margin:22px auto 0;max-width:1000px}
.journey-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 34%;align-items:start}
.journey-step{position:relative;min-height:170px;padding:0 0 30px;max-width:380px}
.journey-step:nth-child(odd){grid-column:1;text-align:right;justify-self:end}.journey-step:nth-child(even){grid-column:2;grid-row:auto;justify-self:start}
.journey-step:nth-child(2){margin-top:95px}.journey-step:nth-child(3){margin-top:-25px}.journey-step:nth-child(4){margin-top:65px}
.journey-step .river-number{display:block;margin-bottom:13px;padding:0}.journey-step p{margin:0;font-size:15px!important;line-height:1.7!important}
#process .journey-step p{color:var(--river-ink,#f8f3e6)}
#process .journey-step h3,#process .journey-step>p,#process .journey-step .river-number{opacity:1}
.journey-step:after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:var(--river-gold);top:8px;opacity:.4;transition:opacity .3s,box-shadow .3s}
.journey-step:nth-child(odd):after{right:-42px}.journey-step:nth-child(even):after{left:-42px}.journey-step.is-passed:after{opacity:1;box-shadow:0 0 15px #c9a84a60}
.journey-step h3{transition:color .3s}.journey-step.is-passed h3{color:var(--river-gold)}
.contact-river{padding-top:115px;padding-bottom:225px;min-height:730px}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:12%}
.contact-copy .section-copy{max-width:350px}.contact-copy{padding-left:145px}
.river-form.brief-form{width:100%;max-width:none;margin:5px 0 0;text-align:left;display:grid;gap:25px}
.river-form.brief-form label{color:var(--river-muted);font-size:10px;letter-spacing:1.5px;text-align:left;display:grid;gap:10px}
.river-form.brief-form input,.river-form.brief-form textarea{width:100%;border:0;border-bottom:1px solid var(--river-rule);border-radius:0;padding:8px 0 12px;color:var(--river-ink);background:transparent;outline-offset:5px;font:16px/1.5 var(--sans);resize:vertical}
.river-form.brief-form input:focus,.river-form.brief-form textarea:focus{border-color:var(--river-gold)}
.river-form .primary-button{border-radius:8px;width:auto;justify-self:start;padding:17px 24px;background:var(--river-gold);color:var(--river-bg);font-size:13px;min-height:49px}
.river-form .form-note{font-size:12px!important;line-height:1.6!important;margin:0;max-width:360px;text-align:left}
.site-footer{background:var(--river-bg);color:var(--river-muted);padding-top:28px;padding-bottom:28px;border-top:1px solid var(--river-rule)}
.has-motion [data-reveal]{opacity:0;transform:translateY(9px)}
.has-motion [data-reveal].revealed{animation:river-arrive .95s cubic-bezier(.25,.65,.3,1) both}
@keyframes river-arrive{to{opacity:1;transform:translateY(0)}}
.moon-position{width:112px;height:112px}.moon{width:100%;height:100%}
@keyframes orb-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
html[data-theme=light]{--river-bg:#f3faf4;--river-bank:#e0eee2;--river-edge:#a5c8ae;--river-water:#bfd8c2;--river-ink:#12372a;--river-muted:#52695b;--river-gold:#2f6b4f;--river-rule:#12372a26;--bg:#f3faf4;--accent:#2f6b4f}
html[data-theme=light] .journey-pine{fill:#2f6b4f}html[data-theme=light] .site-footer{background:var(--river-bg)}
html[data-theme=light] .river-form .primary-button{background:#2f6b4f;color:#f3faf4}
@media(min-width:1600px){.river-bank{stroke-width:330}.river-edge{stroke-width:224}.river-water{stroke-width:220}}
@media(max-width:1000px) and (min-width:761px){.river-shell{width:calc(100% - 80px)}.river-bank{stroke-width:190}.river-edge{stroke-width:124}.river-water{stroke-width:120}.river-section h2{font-size:44px}.service-content{width:65%}.journey-steps{gap:0 34%}.journey-step h3{font-size:27px}.journey-step:nth-child(odd):after{right:-27px}.journey-step:nth-child(even):after{left:-27px}}
@media(max-width:760px){
 .river-shell{width:auto;margin:0 65px 0 24px}.river-section{padding:70px 0;min-height:0;scroll-margin-top:0}
 .river-section h2{font-size:38px;letter-spacing:-1.3px;margin:20px 0 25px}.river-section p:not(.eyebrow):not(.studio-signature){font-size:14px;line-height:1.7}
 .studio-copy,.service-content,.work-content{width:100%;margin-left:0}.studio-river{padding-top:90px;padding-bottom:95px}.studio-signature{font-size:12px}
 .river-bank{stroke-width:50}.river-edge{stroke-width:29}.river-water{stroke-width:27}.journey-boat{width:48px;height:36px;margin-left:-24px;margin-top:-29px}
 .service-list{margin-top:35px}.service-row{grid-template-columns:28px 1fr;padding:24px 0;gap:5px}.service-row h3,.journey-step h3{font-size:26px}
 .work-river{padding-top:45px}.work-heading h2{font-size:34px}.project-count{display:none}.work-showcase{margin-top:30px}.work-image img{aspect-ratio:1.1}.work-caption{grid-template-columns:1fr;gap:12px;padding:20px 0}.work-caption h3{font-size:25px}.work-open{width:32px;height:32px;right:9px;bottom:9px;font-size:20px}
 .journey-heading{text-align:left;margin-bottom:40px}.journey-heading .eyebrow{justify-content:start}.journey-heading h2{font-size:35px}.journey-steps{display:flex;flex-direction:column;gap:32px}.journey-step,.journey-step:nth-child(n){min-height:0;text-align:left;margin:0;padding:0 0 0 26px;max-width:none}.journey-step:after,.journey-step:nth-child(n):after{left:0;right:auto;top:5px}.journey-step p{font-size:14px!important}.journey-step .river-number{margin-bottom:8px}
 .contact-layout{display:flex;flex-direction:column;gap:35px}.contact-copy{padding:0}.contact-river{padding-bottom:110px}.river-form.brief-form{gap:24px}.river-form .primary-button{padding:15px 17px;font-size:12px}
 .site-footer{width:calc(100% - 48px);gap:20px}.site-footer>span{font-size:10px}.moon-position{width:76px;height:76px}
}
@media(max-width:380px){.river-section h2,.journey-heading h2,.work-heading h2{font-size:31px;letter-spacing:-1px}.river-shell{margin-right:61px}.contact-layout{gap:25px}}
/* The reference's simple application layout, translated into our river scene. */
.contact-river{padding:100px 0 160px;min-height:820px}
.contact-layout{display:block;padding-left:32%;gap:0}
.contact-copy{padding:0;width:100%;text-align:center}
.contact-copy h2{font-size:clamp(40px,4.1vw,62px);margin:22px 0}
.contact-copy .eyebrow{justify-content:center}
.contact-copy .section-copy{max-width:580px;margin:0 auto 38px}
.river-form.brief-form{max-width:660px;margin:0 auto;gap:20px}
.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.river-form.brief-form label{min-width:0;gap:9px;letter-spacing:1.4px}
.river-form.brief-form input,.river-form.brief-form textarea{border:1px solid var(--river-rule);border-radius:14px;background:#9db7d508;padding:13px 15px;transition:border-color .35s ease,background .35s ease;outline:none}
.river-form.brief-form input{height:49px}
.river-form.brief-form textarea{min-height:130px}
.river-form.brief-form input:focus,.river-form.brief-form textarea:focus{border-color:var(--river-gold);background:#9db7d50e;box-shadow:0 0 0 2px #c9a84a0a}
.form-bottom{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:4px}
.river-form .primary-button{border-radius:999px;background:var(--river-ink);color:var(--river-bg);padding:14px 23px;gap:15px}
.river-form .form-note{max-width:230px;margin:0;font-size:12px!important}
.contact-social{display:flex;width:fit-content;margin:34px auto 0}
@media(max-width:1000px) and (min-width:761px){.contact-layout{padding-left:27%}.form-bottom{gap:15px}}
@media(max-width:760px){.contact-layout{padding:0}.contact-river{padding:70px 0 110px;min-height:0}.contact-copy{text-align:left}.contact-copy .eyebrow{justify-content:start}.contact-copy h2{font-size:36px}.contact-copy .section-copy{margin-bottom:30px}.form-pair{grid-template-columns:1fr;gap:20px}.river-form.brief-form{gap:20px}.form-bottom{gap:14px;align-items:flex-start;flex-direction:column}.river-form .form-note{max-width:none}.contact-social{margin:30px 0 0}.river-form.brief-form input,.river-form.brief-form textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){.has-motion [data-reveal],[data-reveal]{opacity:1!important;transform:none!important;animation:none!important}.journey-ripples{animation:none}.work-image img{transition:none}.river-section *{scroll-behavior:auto}.living-landscape,.scene-far,.scene-middle,.scene-near,.sky-wash,.moon-position{transform:none!important}}

/* Content can interrupt the journey: the river continues quietly behind it. */
.story:before{display:none}
.hero{height:84svh;min-height:680px;max-height:960px;overflow:clip}
.hero-content{top:43%}
.living-landscape{height:34%;min-height:230px}
.studio-river{min-height:530px;padding:65px 0 85px}
.river-edge{opacity:.12}
.river-bank{fill:var(--river-bg)}
.journey-reflection{stroke-width:1;opacity:.15}
.services-river{padding-top:70px;padding-bottom:85px}
.service-content{width:65%}
.work-river{z-index:7;background:var(--river-bg);padding:70px 0 65px}
.work-content{width:100%}
.work-heading h2{max-width:850px}
.work-showcase{margin-top:34px}
.work-showcase .project-visual{height:clamp(390px,39vw,550px);border:0;border-radius:14px;background:linear-gradient(125deg,#d9c9ad,#b39b77);isolation:isolate;box-shadow:none}
.work-showcase .project-visual:before{display:none}
.work-showcase .project-caption{color:#4b4135;top:25px;left:36px;font-size:9px;letter-spacing:1.5px}
.work-showcase .project-desktop{left:7%;top:13%;width:77%;height:76%;transform:none;border:1px solid #24241c;border-radius:10px;box-shadow:0 12px 20px #33291826}
.work-showcase .browser-bar{height:25px}
.work-showcase .project-desktop img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:initial;transition:none}
.work-showcase .project-phone{right:7%;top:22%;width:18%;height:72%;transform:none;border-radius:22px;border:4px solid #23221d;box-shadow:0 8px 18px #33291833}
.work-showcase .project-phone:before{height:7px;top:4px}
.work-showcase .project-phone img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:top;transition:none}
.work-showcase .project-open:hover .project-desktop,.work-showcase .project-open:hover .project-phone,.work-showcase .project-open:hover img{transform:none}
.work-showcase .work-open{width:34px;height:34px;right:15px;bottom:15px;font-size:19px}
.work-caption{padding:25px 0}
.process-river{padding-top:50px;padding-bottom:65px}
.journey-heading{margin-bottom:95px}
.journey-step:after,.journey-step h3{transition:opacity .8s ease,box-shadow .8s ease,color .8s ease}
.contact-river{padding-top:65px;min-height:760px}
.contact-copy{position:relative;z-index:7}
.contact-copy:before{content:'';position:absolute;z-index:-1;inset:-30px -30px -15px;background:var(--river-bg)}
.has-motion [data-reveal]{transform:translateY(5px)}
.has-motion [data-reveal].revealed{animation:river-arrive 1.2s ease both}
.has-motion .work-showcase[data-reveal]{opacity:1;transform:none;animation:none}
html[data-theme=light] .scene-near{transform:translateX(var(--scene-x,0px)) scaleY(var(--shore-stretch,1))}
html[data-theme=light] .journey-boat .sailboat>path:first-child{fill:#f8f3e6;stroke:#527b69;stroke-width:.65}
html[data-theme=light] .river-edge{opacity:.18}
@media(max-width:1000px) and (min-width:761px){.work-showcase .project-visual{height:380px}.work-showcase .project-caption{left:25px;top:20px}}
@media(max-width:760px){
 .hero{height:100svh;min-height:760px;max-height:1050px}.living-landscape{height:28%;min-height:205px}
 .studio-river{min-height:0;padding:60px 0 75px}.services-river{padding:65px 0 70px}
 .work-river{padding:55px 0 55px}.work-river .river-shell{margin:0 24px}.work-heading h2{font-size:34px}
 .work-showcase .project-visual{height:315px;border-radius:10px}.work-showcase .project-caption{top:17px;left:18px;font-size:7px;letter-spacing:.7px}
 .work-showcase .project-desktop{left:6%;top:20%;width:80%;height:65%;border-radius:5px}.work-showcase .browser-bar{height:16px;font-size:5px;padding:0 7px}
 .work-showcase .project-phone{right:5%;top:30%;width:23%;height:58%;border-width:2px;border-radius:12px}.work-showcase .project-phone:before{height:4px;top:3px}
 .work-showcase .work-open{height:27px;width:27px;bottom:10px;right:10px;font-size:16px}.work-caption{gap:12px}
 .journey-heading{margin-bottom:40px}.process-river{padding:65px 0}.contact-river{padding:65px 0 100px;min-height:0}
 .contact-copy:before{inset:-10px -10px -10px}.river-form.brief-form label{letter-spacing:.85px}
}
/* The open landscape stays continuous; only real content hides the boat. */
.journey-boat{z-index:2}
.contact-copy:before{display:none}
.river-shell,.studio-copy,.contact-layout,.contact-copy{background:transparent;box-shadow:none}
.journey-heading{position:relative;background:transparent;padding:12px 0}
.work-showcase .project-visual{background:linear-gradient(135deg,#17243a,#10192c 70%,#1b2a40);border:1px solid #9db7d512}
.work-showcase .project-caption{color:#9fb0c4}
.work-showcase .project-desktop{box-shadow:0 12px 22px #02051140;transform:translateY(var(--project-drift,0px))}
.work-showcase .project-phone{box-shadow:0 8px 18px #02051155;transform:translateY(calc(var(--project-drift,0px)*-1))}
.work-showcase .project-open:hover .project-desktop{transform:translateY(var(--project-drift,0px))}
.work-showcase .project-open:hover .project-phone{transform:translateY(calc(var(--project-drift,0px)*-1))}
html[data-theme=light] .work-showcase .project-visual{background:linear-gradient(135deg,#dce9df,#bfd4c5);border-color:#12372a12}
html[data-theme=light] .work-showcase .project-caption{color:#52695b}
.day-scenery .scene-fireflies{display:none}
.day-scenery .window-light{fill:#e7d39b}
/* Animate small elements instead of compositing large rectangular text wrappers. */
.has-motion [data-reveal],.has-motion [data-reveal].revealed{opacity:1;transform:none;animation:none}
.has-motion [data-reveal]>.eyebrow,.has-motion [data-reveal]>h2,.has-motion [data-reveal]>.section-copy,.has-motion [data-reveal]>.studio-signature{opacity:0;transform:translateY(9px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.22,.61,.36,1)}
.has-motion [data-reveal].revealed>.eyebrow,.has-motion [data-reveal].revealed>h2,.has-motion [data-reveal].revealed>.section-copy,.has-motion [data-reveal].revealed>.studio-signature{opacity:1;transform:none}
.has-motion [data-reveal]>.section-copy{transition-delay:.12s}.has-motion [data-reveal]>.studio-signature{transition-delay:.2s}
.has-motion .service-row[data-reveal]{opacity:0;transform:translateY(9px);transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.22,.61,.36,1)}
.has-motion .service-row[data-reveal].revealed{opacity:1;transform:none}
.contact-socials{display:flex;justify-content:center;align-items:center;gap:28px;flex-wrap:wrap;margin-top:34px}
.contact-socials .river-link{margin:0;font-size:13px;gap:14px}
.brief-actions{flex-wrap:wrap;gap:18px}.brief-actions .copy-message{background:transparent;color:var(--text);border:1px solid var(--line);padding:13px 20px}
/* One viewport crossfade includes the sky, water, text, controls and footer. */
html.theme-switching *,html.theme-switching *:before,html.theme-switching *:after{transition:none!important;animation-play-state:paused!important}
::view-transition-group(root){animation-duration:1.1s;animation-timing-function:ease-in-out}
::view-transition-old(root){animation:theme-out 1.1s ease-in-out both;mix-blend-mode:normal}
::view-transition-new(root){animation:theme-in 1.1s ease-in-out both;mix-blend-mode:normal}
@keyframes theme-out{to{opacity:0}}@keyframes theme-in{from{opacity:0}to{opacity:1}}
@media(max-width:760px){.journey-heading{background:transparent;padding:0}.contact-socials{justify-content:flex-start;gap:16px;margin-top:26px}.contact-socials .river-link{font-size:12px;gap:8px}.work-showcase .project-desktop,.work-showcase .project-phone{transform:none!important}}
@media(prefers-reduced-motion:reduce){.has-motion [data-reveal]>*{opacity:1!important;transform:none!important;transition:none!important}.work-showcase .project-desktop,.work-showcase .project-phone{transform:none!important}::view-transition-group(root),::view-transition-old(root),::view-transition-new(root){animation:none!important}}

/* A full case, with its own normal scroll and large, real project screens. */

/* Horizontal case study: full viewport, editorial panels and quiet navigation. */
#project-dialog{--case-bg:#030303;--case-ink:#f5f0e1;--case-muted:#92928c;--case-gold:#e1b848;--case-rule:#ffffff24;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;background:var(--case-bg);color:var(--case-ink);overflow:hidden;box-shadow:none}
#project-dialog::backdrop{background:var(--case-bg);backdrop-filter:none}
#project-dialog *{box-sizing:border-box}
.case-header{position:absolute;inset:0 0 auto;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:16px 22px;pointer-events:none}
.case-header>*{pointer-events:auto}
.case-header .case-back{position:static;display:flex;align-items:center;gap:10px;border:1px solid #ffffff25;border-radius:40px;background:#0d1528dd;color:#f5f0e1;padding:10px 15px;font-size:13px;line-height:1}
.case-back>span:first-child{font-size:22px;line-height:16px}
.case-brand{position:absolute;left:50%;transform:translateX(-50%);border:1px solid #ffffff25;border-radius:40px;background:#0d1528dd;padding:9px 20px;text-align:center;font-size:12px;letter-spacing:2px;color:#f5f0e1;line-height:1.1}
.case-brand small{display:block;font-size:5px;letter-spacing:3px;margin-top:4px}
.case-controls{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid #ffffff25;border-radius:40px;background:#0d1528dd;color:#aab4c5}
.case-controls button{width:33px;height:30px;border:0;background:none;border-radius:50%;color:inherit;font-size:12px;font-weight:600}
.case-controls .case-day,.case-controls .case-night,.case-controls .case-sound{font-size:23px;font-weight:400}
.case-controls button[aria-pressed=true]{background:#ffffff14;color:#f5f0e1}
.case-control-divider{height:15px;width:1px;background:#ffffff25;margin:0 4px}
.case-track{display:flex;height:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-width:none;outline:none;scroll-snap-type:x mandatory}
.case-track.is-moving{scroll-snap-type:none}
.case-track::-webkit-scrollbar{display:none}
.case-panel{flex:0 0 100%;width:100%;height:100%;min-width:0;position:relative;padding:100px 6vw;display:flex;align-items:center;scroll-snap-align:start}
#project-dialog .eyebrow{font-size:10px;line-height:1.5;letter-spacing:1.8px;color:var(--case-gold);margin:0 0 20px}
#project-dialog h2,#project-dialog h3{font-family:var(--serif);font-weight:400;letter-spacing:-1.8px;line-height:1.06;color:var(--case-ink);margin:0 0 24px}
#project-dialog h2{font-size:clamp(48px,5.7vw,88px)}
#project-dialog h3{font-size:clamp(34px,4.05vw,62px)}
#project-dialog p{font-size:15px;line-height:1.65;color:var(--case-muted);margin:0 0 25px}
#project-dialog figure{margin:0;min-width:0}
#project-dialog img{display:block;width:100%;height:auto;border:0;border-radius:0;margin:0}
.case-intro{display:grid;grid-template-columns:50.5% 49.5%;padding:0;gap:0}
.case-intro-copy{padding:90px 4vw 80px;min-width:0}
#project-dialog .case-subtitle{font-size:clamp(24px,2.7vw,40px);color:var(--case-muted);margin:0 0 28px;letter-spacing:-1px;line-height:1.1}
.case-intro-copy>p:not(.eyebrow){max-width:570px;margin-bottom:34px}
.case-facts{display:grid;grid-template-columns:1fr 1fr;gap:24px 22px;margin:0 0 30px}
.case-facts dt{font-size:9px;letter-spacing:1.4px;color:#747470;margin-bottom:8px}.case-facts dd{font-size:14px;line-height:1.5;margin:0}
.case-cover{height:100%;overflow:hidden;background:#0d0b06}
#project-dialog .case-cover img{height:100%;width:100%;object-fit:cover;object-position:15% center}
.case-cta{display:inline-flex;align-items:center;justify-content:center;gap:14px;color:#17150d;background:var(--case-gold);border-radius:40px;padding:14px 23px;font-size:10px;letter-spacing:1.5px;font-weight:600;min-height:43px;box-shadow:0 8px 30px #e1b84812;transition:background .3s,box-shadow .3s}
.case-cta:hover{background:#f0ca63;box-shadow:0 8px 32px #e1b84825}.case-cta>span:first-child{font-size:9px}.case-cta>span:last-child{font-size:19px;line-height:1}
.case-scroll-hint{display:flex;align-items:center;gap:13px;border:0;background:none;color:#62625e;font-size:9px;letter-spacing:1.4px;padding:0;margin-top:30px}.case-scroll-hint>span:last-child{font-size:18px}
.case-showcase{justify-content:center;flex-direction:column;text-align:center}
.case-showcase>figure{width:min(1200px,100%)}
#project-dialog .case-showcase img{width:100%;height:min(64dvh,700px);object-fit:cover;object-position:left top;border-radius:12px;border:1px solid var(--case-rule);margin:auto}
.case-showcase figcaption{padding-top:24px}.case-showcase .eyebrow{margin-bottom:9px!important}.case-showcase figcaption p:last-child{margin:0!important}
.case-brief{gap:4vw;align-items:center;padding:110px 5vw}.case-section-number{flex:0 0 65px;align-self:center;transform:translateY(-125px)}
.case-section-number b{display:block;font-family:var(--serif);font-size:60px;line-height:1;color:#292925;font-weight:400;letter-spacing:-3px;margin-bottom:10px}.case-section-number span{font-size:9px;letter-spacing:1.2px;color:#686862}
.case-brief-copy{flex:1;min-width:0}.case-brief-copy>p{max-width:900px}
#project-dialog .case-table-label{margin:38px 0 15px;letter-spacing:1.5px;font-size:9px;color:#686862}
.case-change-list{margin:0}.case-change-list>div{display:grid;grid-template-columns:1fr 32px 1fr;align-items:center;gap:18px;padding:17px 0;border-top:1px solid var(--case-rule);font-size:14px;line-height:1.4}.case-change-list dt{color:var(--case-muted)}.case-change-list dd{margin:0}.case-change-list span{color:var(--case-gold);font-size:25px}
.case-statement{justify-content:center;flex-direction:column;text-align:center;padding:100px 10vw}
#project-dialog .case-statement h3{font-size:clamp(52px,7vw,106px);line-height:1.1;letter-spacing:-2.7px;margin-bottom:35px}.case-statement em{color:var(--case-gold);font-weight:400}
.case-booking{gap:5vw;justify-content:center}.case-booking-screen{flex:0 0 46%;height:74dvh;overflow:hidden}
#project-dialog .case-booking-screen img{width:100%;height:100%;object-fit:cover;object-position:center}.case-feature-copy{flex:1;max-width:600px}.case-feature-copy ul{padding-left:18px;margin:28px 0 0}.case-feature-copy li{color:var(--case-ink);line-height:1.6;font-size:14px;margin:12px 0}.case-feature-copy li::marker{color:var(--case-gold)}
.case-result>div{width:100%;max-width:1250px;margin:auto}.case-result h3{max-width:1000px}.case-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5vw;margin:50px 0 40px}.case-result-grid b{font-family:var(--serif);font-size:65px;font-weight:400;letter-spacing:-2px;color:var(--case-gold);line-height:1}.case-result-grid h4{font-weight:500;font-size:16px;margin:18px 0 10px}.case-result-grid p{max-width:270px}
.case-finish{gap:8vw}.case-finish>div{flex:1}.case-finish figure{flex:0 0 43%;overflow:hidden;border-radius:16px;border:1px solid var(--case-rule)}
#project-dialog .case-finish img{height:48dvh;object-fit:cover;object-position:top}
.case-pagination{position:absolute;z-index:5;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:8px;align-items:center;padding:5px 14px;border-radius:30px;background:#030303aa}
.case-pagination button{width:38px;height:22px;border:0;position:relative;background:none;padding:0}.case-pagination button:after{content:'';position:absolute;left:0;right:0;top:10px;height:2px;background:#ffffff30;transition:background .4s}.case-pagination button[aria-current=step]:after{background:#f5f0e1}.case-pagination button:hover:after{background:var(--case-gold)}
#project-dialog button:focus-visible,#project-dialog a:focus-visible{outline:2px solid var(--case-gold);outline-offset:4px}
#project-dialog[open]{animation:case-enter .55s ease both}#project-dialog.is-closing{animation:case-leave .35s ease both}
@keyframes case-enter{from{opacity:0}to{opacity:1}}@keyframes case-leave{to{opacity:0}}
/* The project presentation keeps its reviewed black canvas in either site theme. */
html[data-theme=light] .case-pagination{background:#f6f5efdd}html[data-theme=light] .case-pagination button:after{background:#23272230}html[data-theme=light] .case-pagination button[aria-current=step]:after{background:#232722}
@media(min-width:761px) and (max-height:740px){.case-intro-copy{padding-top:75px;padding-bottom:65px}#project-dialog h2{font-size:clamp(43px,5vw,75px);margin-bottom:16px}#project-dialog .case-subtitle{font-size:clamp(22px,2.5vw,34px);margin-bottom:18px}.case-intro-copy>p:not(.eyebrow){font-size:13px;margin-bottom:22px}.case-facts{gap:15px;margin-bottom:22px}.case-facts dd{font-size:12px}.case-scroll-hint{margin-top:20px}.case-change-list>div{padding:13px 0}}
@media(max-width:760px){#project-dialog{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.case-header{position:sticky;height:66px;padding:12px 16px;background:var(--case-bg)}.case-brand{display:none}.case-header .case-back{font-size:11px;padding:10px 13px}.case-controls{gap:1px}.case-controls button{width:28px;height:28px;font-size:10px}.case-controls .case-day,.case-controls .case-night,.case-controls .case-sound{font-size:21px}.case-control-divider{margin:0 2px}.case-track{display:block;height:auto;overflow:visible}.case-panel{display:block;height:auto;min-height:0;padding:65px 24px;border-bottom:1px solid var(--case-rule)}.case-intro{padding:15px 0 0}.case-intro-copy{padding:28px 24px 45px}#project-dialog h2{font-size:55px;letter-spacing:-2px}#project-dialog h3{font-size:38px;letter-spacing:-1.1px}#project-dialog .case-subtitle{font-size:27px;margin-bottom:24px}#project-dialog p{font-size:14px}.case-facts{gap:24px 20px}.case-facts dd{font-size:12px}.case-scroll-hint{display:none}.case-cover{height:440px}#project-dialog .case-cover img{object-position:center top}.case-showcase{padding:55px 20px}.case-showcase figcaption{padding-top:20px}#project-dialog .case-showcase img{height:auto;max-height:none;border-radius:10px}.case-section-number{transform:none;margin:0 0 25px}.case-section-number b{font-size:45px}.case-section-number span{display:block}#project-dialog .case-table-label{margin-top:28px}.case-change-list>div{grid-template-columns:1fr 17px 1fr;gap:10px;font-size:12px;padding:17px 0}.case-change-list span{font-size:20px}.case-statement{padding:80px 24px}#project-dialog .case-statement h3{font-size:43px;letter-spacing:-1.5px}.case-booking-screen{height:auto;margin:0 0 35px!important}#project-dialog .case-booking-screen img{height:auto;max-height:650px;object-fit:contain}.case-result-grid{grid-template-columns:1fr;gap:26px;margin:35px 0}.case-result-grid>div{display:grid;grid-template-columns:60px 1fr;gap:0 20px}.case-result-grid b{font-size:48px;grid-row:span 2}.case-result-grid h4{margin:0 0 8px}.case-result-grid p{margin:0!important;max-width:none}.case-finish{padding-bottom:80px}.case-finish figure{margin-top:40px!important}#project-dialog .case-finish img{height:300px}.case-pagination{display:none}}
@media(prefers-reduced-motion:reduce){#project-dialog[open],#project-dialog.is-closing{animation:none}.case-pagination button:after,.case-cta{transition:none}}

/* Selected illustrated moon, matching the supplied flat landscape reference. */
.sky-cloud,html[data-theme=light] .sky-cloud{opacity:0}
.moon-disk{fill:#e7d39b}.moon-craters{fill:#c9a84a;opacity:.8}
.moon-shadow{fill:#0d1c3c}.moon-clouds{fill:#35496b}
.moon-cloud-front{animation:moon-cloud-drift 22s ease-in-out infinite alternate}.moon-cloud-back{animation:moon-cloud-drift 28s ease-in-out infinite alternate-reverse;opacity:.75}
@keyframes moon-cloud-drift{from{transform:translateX(-3px)}to{transform:translateX(4px)}}
html[data-theme=light] .moon-shadow,html[data-theme=light] .moon-craters{opacity:0}
html[data-theme=light] .moon-clouds{fill:#bfd8c2;opacity:.85}
@media(max-width:760px){.case-page-scroll{height:550px;max-height:70svh}}
@media(prefers-reduced-motion:reduce){.moon,.moon-cloud-front,.moon-cloud-back{animation:none}}

/* Crossfade complete phrases: keep a readable layer instead of an empty slot. */
.rotating-words{position:relative}
.rotating-words.is-changing{opacity:1;transform:none;filter:none}
.phrase-previous{position:absolute;inset:0;pointer-events:none;animation:phrase-out .9s ease both}
.phrase-prev-bottom{color:var(--accent);white-space:nowrap}
.is-changing>.phrase-top,.is-changing>.phrase-bottom{animation:phrase-in .9s ease both}
@keyframes phrase-in{from{opacity:0}to{opacity:1}}@keyframes phrase-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){.phrase-previous{display:none}.is-changing>.phrase-top,.is-changing>.phrase-bottom{animation:none}}

#brief-dialog{background:var(--river-bg);color:var(--river-ink);border-color:var(--river-rule)}
#brief-dialog p:not(.eyebrow){color:var(--river-muted)}
#prepared-message{background:var(--river-bank);color:var(--river-ink);border-color:var(--river-rule)}
#brief-dialog .dialog-close{color:var(--river-muted);border-radius:50%;position:sticky;top:0;float:right;margin:-30px -8px 0 0;background:var(--river-bg)}
#brief-dialog .copy-message{color:var(--river-ink);border-color:var(--river-rule)}
#brief-dialog .text-link{color:var(--river-gold)}
@media(max-width:760px){#brief-dialog .email-message{font-size:13px;padding-inline:20px}.brief-actions .email-message>span:first-child{font-size:13px}}

/* The approved river compositions: broad independent banks and an open forest. */
:root{--river-bg:#081321;--bg:#081321;--river-water:#1b314f;--river-edge:#243c58;--river-bank:#101e33}
.night-scenery [fill="#050816"]{fill:var(--river-bg)}
.river-water{fill:url(#river-tone)}.river-tone-start{stop-color:#111b3a}.river-tone-end{stop-color:var(--river-water)}
html[data-theme=light] .river-tone-start{stop-color:var(--river-water)}
.journey-hill{fill:#1b314f}.journey-stone{fill:#243c58}
html[data-theme=light] .journey-hill{fill:#bfd8c2}html[data-theme=light] .journey-stone{fill:#91b99c}
.river-world{perspective:none}.river-camera{transform:none!important;will-change:auto}
.harbor-foreground{display:none}
.river-bank{fill:var(--river-bank);opacity:.48}.river-edge{opacity:.1}
.journey-reflection{stroke:#7891ad;opacity:.25}.journey-glint{opacity:.65}
.journey-pine{fill:#172e48}
.service-content{width:58%}.service-content h2{font-size:clamp(48px,5.6vw,84px);max-width:620px;line-height:1.02}
.service-row h3{font-family:var(--sans);font-weight:500;font-size:26px;letter-spacing:-.5px}
.services-river{padding-top:90px;padding-bottom:95px}
.process-river{padding:80px 0 0;min-height:1020px}
.process-river>.river-shell{height:940px}
.journey-heading{position:absolute;left:0;top:0;width:43%;text-align:left;margin:0;padding:0}
.journey-heading .eyebrow{justify-content:flex-start}
.journey-heading h2{font-size:clamp(58px,6vw,88px);line-height:1.02;margin:24px 0 0;letter-spacing:-3px}
.journey-steps{display:block;position:relative;height:100%;padding:0}
.journey-step,.journey-step:nth-child(n){position:absolute;width:26%;max-width:295px;min-height:0;margin:0;padding:0}
.journey-step:nth-child(1){top:250px;right:61%;text-align:right}
.journey-step:nth-child(2){top:390px;left:78%;text-align:left;width:22%}
.journey-step:nth-child(3){top:585px;right:61%;text-align:right}
.journey-step:nth-child(4){top:745px;left:78%;text-align:left;width:22%}
.journey-step h3{font-size:32px}
.journey-step .river-number{font-family:var(--serif);font-size:28px;letter-spacing:-.5px;margin-bottom:12px}
.journey-step:after,.journey-step:nth-child(n):after{width:8px;height:8px;top:8px;opacity:.8;box-shadow:none}
.journey-step:nth-child(odd):after{left:auto;right:-35px}.journey-step:nth-child(even):after{left:-35px;right:auto}
.journey-step:before{content:'';position:absolute;top:15px;width:1px;height:55px;background:var(--river-gold);opacity:.55}
.journey-step:nth-child(odd):before{right:-31px}.journey-step:nth-child(even):before{left:-31px}
/* Work thumbnails use the actual page edge to edge, as in the reference. */
.work-showcase .project-visual{height:auto;aspect-ratio:1.7;background:#080b0d;border:1px solid var(--river-rule);border-radius:18px;overflow:hidden}
.work-showcase .project-visual>img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .9s cubic-bezier(.22,.61,.36,1)}
.work-showcase .project-open:hover .project-visual>img{transform:scale(1.025)}
@media(max-width:760px){.work-showcase .project-visual{aspect-ratio:1.3;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.work-showcase .project-visual>img{transition:none}}
@media(max-width:760px){.case-cover{height:auto}#project-dialog .case-cover img{height:auto;object-fit:contain}}
/* Softer first-screen seam and lossless actual site captures. */
.case-cover{display:flex;align-items:center;height:100%;padding:100px 18px 80px 0;background:transparent;overflow:visible}
#project-dialog .case-cover img{width:100%;height:auto;max-height:75dvh;object-fit:contain;object-position:center;mask-image:linear-gradient(to right,transparent,#000 5%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 95%,transparent);mask-composite:intersect}
.case-booking-visual{flex:0 0 51%;position:relative;height:74dvh;display:flex;align-items:center}
.case-booking-screen{flex:none;width:100%;height:100%;overflow:visible}
#project-dialog .case-booking-screen img{height:100%;object-fit:contain}
.case-calendar-screen{position:absolute;width:58%;right:-2%;bottom:7%;filter:drop-shadow(0 15px 30px #0009)}
#project-dialog .case-calendar-screen img{height:auto;width:100%}
.case-calendar-screen figcaption{font-size:10px;text-align:center;color:var(--case-gold);margin-top:12px}
.case-booking{gap:6vw}
.case-finish{justify-content:center;text-align:center}
.case-finish>div{flex:none;max-width:800px}
#project-dialog .case-finish .eyebrow{text-align:center}
#project-dialog .case-finish h3{font-size:clamp(48px,6vw,88px);letter-spacing:-2px}
@media(max-width:760px){.case-track{scroll-snap-type:none}#project-dialog .case-finish h3{font-size:42px;letter-spacing:-1.2px}}
.case-controls svg{width:18px;height:18px;display:block;margin:auto;stroke:currentColor}
@media(min-width:761px) and (max-height:850px){.case-intro-copy{padding-top:80px;padding-bottom:65px}#project-dialog h2{font-size:clamp(45px,5vw,73px);margin-bottom:16px}#project-dialog .case-subtitle{font-size:clamp(23px,2.35vw,33px);margin-bottom:20px}.case-intro-copy>p:not(.eyebrow){font-size:14px;margin-bottom:24px}.case-facts{gap:18px 20px;margin-bottom:23px}.case-facts dd{font-size:13px}.case-scroll-hint{margin-top:20px}}
@media(max-width:760px){.case-cover{height:auto;padding:0 16px 25px}#project-dialog .case-cover img{max-height:none;mask-image:none}.case-booking-visual{height:auto;display:block;margin-bottom:35px}.case-booking-screen{width:100%;height:auto}.case-calendar-screen{position:relative;width:min(320px,90%);right:auto;bottom:auto;margin:-120px 0 0 auto!important}.case-calendar-screen figcaption{font-size:12px}}
