body{overflow-x:hidden}.hero-copy{min-width:0}@media(max-width:580px){.hero{width:100%;max-width:100%;min-width:0;padding-left:35px;padding-right:35px;overflow:hidden}.hero-copy,.lead{width:100%;max-width:100%;overflow-wrap:break-word}}

/* Motion system adapted from the Djulia interaction layer. */
#scrollbar{position:fixed;z-index:100;top:0;left:0;width:100%;height:3px;background:var(--blush);transform:scaleX(0);transform-origin:left;pointer-events:none}
#page-loader{position:fixed;z-index:200;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;background:var(--deep);color:var(--ivory);transition:clip-path .8s cubic-bezier(.76,0,.24,1),visibility .8s;clip-path:inset(0)}#page-loader.is-done{clip-path:inset(0 0 100% 0);visibility:hidden}.loader-mark{display:grid;place-items:center;width:68px;height:68px;border:1px solid rgba(247,244,237,.5);border-radius:50%;font:italic 42px/1 var(--serif);animation:loader-breathe 1.8s ease-in-out infinite}.loader-label{font-size:9px;letter-spacing:.28em}.loader-number{font:400 20px/1 var(--serif);font-variant-numeric:tabular-nums}.loader-line{display:block;width:110px;height:1px;background:rgba(247,244,237,.25)}@keyframes loader-breathe{50%{transform:scale(1.07);border-color:var(--ivory)}}
.intro-item{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .85s cubic-bezier(.16,1,.3,1)}.page-ready .intro-item{opacity:1;transform:none}.page-ready .intro-item:nth-child(1){transition-delay:.12s}.page-ready .intro-item:nth-child(2){transition-delay:.2s}.page-ready .intro-item:nth-child(3){transition-delay:.34s}.page-ready .intro-item:nth-child(4){transition-delay:.46s}.page-ready .intro-item:nth-child(5){transition-delay:.58s}
.hero-title .letter-wrap{display:inline-block;overflow:hidden;vertical-align:top}.hero-title .letter{display:inline-block;transform:translateY(112%);transition:transform .85s cubic-bezier(.16,1,.3,1);transition-delay:var(--letter-delay)}.page-ready .hero-title .letter{transform:translateY(0)}.hero-title br{display:block}
.image-wipe{clip-path:inset(0 0 100% 0);transition:clip-path 1.25s cubic-bezier(.76,0,.24,1)}.page-ready .hero-image.image-wipe,.image-wipe.is-visible{clip-path:inset(0)}.hero-image{background:var(--sage)}.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(23,62,50,.2),transparent 47%);pointer-events:none}.hero-image img{transform:scale(1.08);transition:transform 1.65s cubic-bezier(.16,1,.3,1)}.page-ready .hero-image img{transform:scale(1)}
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s ease-out,transform .8s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s)}[data-reveal].is-visible{opacity:1;transform:none}.service-card,.gallery-grid figure,.price-row{will-change:transform}.service-card{transition:background .25s,color .25s,transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s}.service-card:hover{transform:translateY(-8px);box-shadow:0 18px 28px rgba(16,43,35,.12)}.gallery-grid figure img{transition:transform .9s cubic-bezier(.16,1,.3,1)}.gallery-grid figure:hover img{transform:scale(1.08)}
.button{position:relative;overflow:hidden;isolation:isolate}.button:before{content:"";position:absolute;z-index:-1;inset:0;background:#3d7865;transform:translateY(102%);transition:transform .45s cubic-bezier(.16,1,.3,1)}.button:hover:before{transform:none}.button-light:before{background:#fff}.button:hover{background:var(--forest)}.faq-list details{transition:padding .35s ease,background .35s ease}.faq-list details[open]{padding-left:18px;padding-right:18px;background:rgba(220,229,218,.35)}.faq-list summary span{transition:transform .35s ease}.hero-photo{will-change:transform}
@media(prefers-reduced-motion:reduce){#page-loader{display:none}.intro-item,[data-reveal],.image-wipe,.hero-image img{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}.hero-title .letter{transform:none!important}}

/* All supplied assets are contained inside their frames: no photo or video is cropped. */
.no-crop{background:#e8e3dc;overflow:hidden}.no-crop img,.media-frame img,.media-frame video{width:100%;height:100%;object-fit:contain!important;object-position:center!important}.hero-owner .hero-image{height:calc(100vh - 88px);min-height:570px}.hero-owner .hero-image:after{display:none}.hero-owner .hero-image figcaption{right:12px;color:var(--forest);background:rgba(247,244,237,.9);padding:10px}.hero-owner .hero-photo{transform:none!important}.owner-note{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:clamp(45px,8vw,120px);align-items:center}.owner-note-copy{max-width:680px}.owner-note h2{font-size:clamp(42px,5vw,73px)}.owner-quote{margin-top:34px;border-left:1px solid rgba(247,244,237,.5);padding-left:25px}.owner-quote p{margin:0 0 15px;color:#d5e0d6;font-size:15px}.owner-portrait{min-height:560px;background:#e7e2dc}.owner-portrait img{display:block;width:100%;height:100%;object-fit:contain!important}
.portfolio{overflow:hidden}.media-galleries{display:grid;gap:clamp(84px,11vw,140px)}.case-carousel{display:grid;grid-template-columns:minmax(220px,.33fr) minmax(0,.67fr);gap:clamp(28px,5vw,75px);align-items:center}.case-heading h3{margin:0 0 18px;font:400 clamp(35px,4vw,56px)/1 var(--serif);letter-spacing:-.035em}.case-heading>p:last-child{margin:0;max-width:290px;color:var(--muted);font-size:14px}.cf-shell{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px}.cf-stage{position:relative;height:clamp(310px,42vw,610px);perspective:1100px;overflow:hidden;touch-action:pan-y;cursor:grab;outline:none}.cf-stage:focus-visible{outline:2px solid var(--forest);outline-offset:4px}.cf-stage.dragging{cursor:grabbing}.cf-slide{position:absolute;inset:0;display:grid;place-items:center;transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .5s ease;pointer-events:none}.cf-slide[aria-hidden="false"]{pointer-events:auto}.media-frame{width:92%;height:92%;display:grid;place-items:center;background:#e8e3dc;box-shadow:0 22px 50px rgba(16,43,35,.12);overflow:hidden}.media-frame video{background:#151515}.cf-arrow{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;font:400 21px var(--sans);color:var(--forest);transition:background .25s,color .25s,transform .25s}.cf-arrow:hover{background:var(--forest);color:var(--ivory);transform:scale(1.08)}.cf-footer{grid-column:2;display:flex;align-items:center;gap:18px;margin-top:-17px;font-size:11px;letter-spacing:.1em;color:var(--muted)}.cf-count{min-width:52px}.cf-dots{display:flex;gap:5px;overflow:auto;scroll-snap-type:x mandatory;padding:4px 0;max-width:250px}.cf-dots button{width:18px;height:2px;flex:0 0 auto;padding:0;border:0;background:var(--line);transition:transform .25s,background .25s}.cf-dots button.on{background:var(--forest);transform:scaleX(1.55)}.cf-tip{margin-left:auto;text-align:right}.media-error{color:var(--muted)}
.visit{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);gap:clamp(35px,7vw,100px);align-items:center}.visit-copy>p:not(.eyebrow){color:#d5e0d6;margin:25px 0}.map-frame{height:440px;border:1px solid rgba(247,244,237,.25);background:var(--ivory)}.map-frame iframe{display:block;width:100%;height:100%;border:0;filter:saturate(.72) contrast(.95)}
@media(max-width:900px){.hero-owner .hero-image{height:auto;min-height:540px}.owner-note,.case-carousel,.visit{grid-template-columns:1fr}.owner-portrait{min-height:480px}.cf-footer{grid-column:1}.case-heading>p:last-child{max-width:480px}.map-frame{height:380px}}
@media(max-width:580px){.hero-owner .hero-image{min-height:430px}.owner-note{padding-left:28px;padding-right:28px}.owner-quote{padding-left:16px}.owner-quote p{font-size:14px}.case-carousel{gap:25px}.cf-shell{grid-template-columns:34px minmax(0,1fr) 34px;gap:2px}.cf-arrow{width:32px;height:32px;font-size:16px}.cf-stage{height:390px}.media-frame{width:94%;height:94%}.cf-footer{gap:10px;margin-top:-6px}.cf-tip{display:none}.map-frame{height:320px}.visit{padding-left:28px;padding-right:28px}}

/* Spring-inspired composition and motion; preserve each supplied photograph. */
.spring-hero{position:relative;isolation:isolate;display:block;max-width:none;min-height:800px;height:calc(100svh - 88px);padding:0;margin:0;background:#162d24;color:#e9ddc7;overflow:hidden}
.spring-glow{position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 10% 15%,#345f4a 0,transparent 55%),radial-gradient(ellipse at 95% 85%,#436045 0,transparent 60%);animation:spring-glow 18s ease-in-out infinite alternate}
.spring-intro{position:absolute;top:7%;left:53%;max-width:400px}.spring-intro .eyebrow{color:#b8c5af}.spring-intro>p:last-child{font-size:clamp(17px,1.6vw,23px);line-height:1.5}
.spring-portrait{position:absolute;left:7%;top:6%;width:37%;height:79%;margin:0;display:flex;flex-direction:column;gap:16px;background:transparent}
.spring-portrait img{display:block;min-height:0;min-width:0;width:100%;height:calc(100% - 48px);object-fit:contain;object-position:left center}
.spring-portrait figcaption{font:italic 22px var(--serif);display:flex;flex-direction:column;gap:6px}.spring-portrait figcaption span{font:9px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#bfccbc}
.page-ready .spring-portrait.image-wipe{clip-path:inset(0)}
.spring-caption{position:absolute;right:6%;bottom:9%;width:45%;text-align:right}.spring-hero h1{font-size:clamp(64px,7.2vw,116px);line-height:1.05;letter-spacing:-.04em}.spring-caption .actions{justify-content:flex-end;margin-top:34px;gap:25px}
.hero-title .word-wrap{display:inline-block;white-space:nowrap;vertical-align:top;overflow:hidden;padding-bottom:.15em;margin-bottom:-.15em}
.spring-scroll{position:absolute;bottom:4%;left:7%;display:grid;place-items:center;width:42px;height:42px;border:1px solid #c9d2bd;border-radius:50%;transition:transform .8s cubic-bezier(.25,.74,.22,.99)}.spring-scroll:hover{transform:translateY(6px)}
@keyframes spring-glow{to{transform:scale(1.18) translate(2%,-2%)}}
.cf-slide{display:block;min-width:0;min-height:0}
.media-frame{position:absolute;inset:4%;display:block;width:auto;height:auto;min-width:0;min-height:0;background:transparent;box-shadow:none;overflow:visible}
.media-frame img,.media-frame video{position:absolute;inset:0;display:block;min-width:0;min-height:0;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain!important}
.cf-stage{height:clamp(420px,45vw,650px)}.cf-dots{scrollbar-width:none}.cf-dots::-webkit-scrollbar{display:none}.cf-dots button{height:18px;background:linear-gradient(var(--line),var(--line)) center/100% 2px no-repeat}.cf-dots button.on{background:linear-gradient(var(--forest),var(--forest)) center/100% 2px no-repeat}
.owner-note .case-carousel{grid-column:1/-1;width:100%;--muted:#c0cbbf;--line:rgba(240,240,220,.3)}.owner-note .cf-arrow{color:var(--ivory);background:transparent}.owner-note .cf-dots button.on{background:linear-gradient(var(--ivory),var(--ivory)) center/100% 2px no-repeat}.owner-portrait{min-height:0}.owner-portrait img{height:auto}
@media(max-width:900px){.spring-hero{min-height:740px;height:calc(100svh - 88px);padding:0}.spring-portrait{left:5%;width:42%;height:68%;top:15%}.spring-intro{left:52%;top:5%;right:4%}.spring-caption{right:5%;width:47%;bottom:10%}.spring-hero h1{font-size:clamp(47px,7.4vw,70px)}.spring-caption .actions{gap:14px}.spring-caption .text-link{font-size:11px}}
@media(max-width:580px){.spring-hero{height:auto;min-height:0;display:flex;flex-direction:column;padding:35px 24px 38px;gap:26px}.spring-intro,.spring-portrait,.spring-caption{position:relative;inset:auto;width:100%;max-width:none}.spring-intro>p:last-child{margin-bottom:0;font-size:17px}.spring-portrait{height:auto;align-items:center}.spring-portrait img{width:auto;max-width:100%;height:auto;max-height:390px;object-fit:contain}.spring-portrait figcaption{width:100%;font-size:19px;text-align:center}.spring-caption{text-align:center}.spring-hero h1{font-size:clamp(42px,10.7vw,62px)}.spring-hero h1 br:first-child{display:none}.spring-caption .actions{justify-content:center;margin-top:25px}.spring-scroll{display:none}.cf-stage{height:440px}.media-frame{inset:2%;width:auto;height:auto}.cf-footer{flex-wrap:wrap}.cf-dots{max-width:180px}}
@media(prefers-reduced-motion:reduce){.spring-glow{animation:none}.spring-portrait.image-wipe{clip-path:none}.hero-title .letter{transform:none}}

/* Spring's diagonal gallery, using curated Salaeva portraits. */
.has-photo-hero .site-header{position:absolute;inset:0 0 auto;min-height:90px;color:#f1e7cf;border:0;background:transparent;z-index:40;padding:23px 3%}
.has-photo-hero .site-header .brand{position:absolute;left:50%;transform:translateX(-50%)}
.has-photo-hero .site-header nav{width:100%;gap:25px}
.has-photo-hero .site-header nav a{font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.has-photo-hero .site-header nav a:nth-child(4){margin-left:auto}
.has-photo-hero .nav-book{background:transparent;border:1px solid #e8ddc76b;border-radius:30px}
.photo-wall-hero{height:100svh;min-height:700px;display:block;padding:0;background:#142e27}
.hero-wall{position:absolute;width:180vw;left:-40vw;top:50%;transform:translateY(-50%) rotate(-28deg);transform-origin:center;pointer-events:none}
.hero-wall{opacity:0;transition:opacity .18s ease}.hero-assets-ready .hero-wall{opacity:1}
.hero-wall-row{display:flex;width:max-content;animation:wall-drift 65s linear infinite}
.hero-wall-row:nth-child(2){animation-direction:reverse;animation-duration:75s}
.hero-wall-row:nth-child(3){animation-duration:85s}
.hero-wall-set{display:flex;flex-shrink:0}
.hero-wall-card{width:26vw;height:34vw;padding:12px;flex-shrink:0}
.hero-wall-card img{width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;background:#243a31}
.hero-wall-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,27,23,.53),rgba(13,46,35,.14) 40%,rgba(9,35,27,.68)),linear-gradient(110deg,rgba(51,84,41,.33),rgba(0,68,64,.25) 50%,rgba(35,65,32,.3));pointer-events:none}
.photo-wall-hero .spring-intro{top:15%;left:19%;max-width:440px;color:#f2e8d5;text-shadow:0 2px 20px #102b23}
.photo-wall-hero .spring-intro .eyebrow{color:#e8dfcb}
.photo-wall-hero .spring-caption{right:3%;bottom:6%;width:80%;z-index:2}
.photo-wall-hero h1{font-size:clamp(68px,8.6vw,160px);line-height:1.02;text-shadow:0 3px 35px #102b232e}
.photo-wall-hero .spring-scroll{left:3%;bottom:6%;z-index:3}
.photo-wall-hero .spring-caption .actions{margin-top:25px}
@keyframes wall-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:900px){
.has-photo-hero .site-header .menu-button{color:#f1e7cf;display:block}
.has-photo-hero .site-header nav{background:#162d24;color:#f1e7cf}
.has-photo-hero .site-header nav a:nth-child(4){margin-left:0}
.has-photo-hero .site-header nav.open{display:flex}
.hero-wall{width:240vw;left:-70vw}.hero-wall-card{width:44vw;height:58vw;padding:8px}
.photo-wall-hero .spring-intro{left:7%;top:17%;right:7%}
.photo-wall-hero .spring-caption{width:90%;right:5%;bottom:8%}
.photo-wall-hero h1{font-size:clamp(52px,9vw,80px)}
.photo-wall-hero .spring-scroll{display:none}
}
@media(max-width:580px){
.photo-wall-hero{height:100svh;min-height:700px;display:block;padding:0}
.hero-wall{width:330vw;left:-110vw}.hero-wall-card{width:68vw;height:90vw;padding:7px}
.photo-wall-hero .spring-intro{position:absolute;top:16%;left:7%;width:86%}
.photo-wall-hero .spring-intro>p:last-child{font-size:17px}
.photo-wall-hero .spring-caption{position:absolute;inset:auto 6% 7%;width:88%;text-align:right}
.photo-wall-hero h1{font-size:clamp(41px,10.7vw,62px);line-height:1.08}
.photo-wall-hero h1 br{display:block}
.photo-wall-hero .spring-caption .actions{justify-content:flex-end;gap:15px}
.photo-wall-hero .spring-caption .text-link{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.hero-wall-row{animation:none}}

.language-switch{display:flex;gap:5px;align-items:center;z-index:45}.language-switch a{display:grid;place-items:center;min-width:36px;min-height:36px;font:11px var(--sans);letter-spacing:.06em;border:1px solid transparent;border-radius:50%}.language-switch a[aria-current]{border-color:currentColor}.language-switch a:hover{background:#ffffff20}
.has-photo-hero .site-header{padding-top:20px;padding-bottom:48px}.has-photo-hero .site-header>.language-switch{position:absolute;right:3%;top:76px}.has-photo-hero .site-header nav{min-height:48px}
.legal>.language-switch{justify-content:center;margin:25px auto}.page-top{flex-wrap:wrap}.page-top>.language-switch{margin-left:auto}
#page-loader{background:#465038;clip-path:none;transition:transform .95s cubic-bezier(.76,0,.24,1),visibility .95s}#page-loader.is-done{transform:translateY(-101%);clip-path:none}
.loader-typing{display:flex;justify-content:center;align-items:center;min-height:130px;width:90vw;margin-bottom:25px}.loader-typed{font:italic clamp(32px,6.5vw,95px)/1.3 var(--serif);letter-spacing:-.04em;white-space:pre-wrap;text-align:center}.typing-cursor{height:1.1em;width:1px;background:var(--ivory);margin-left:8px;font-size:clamp(32px,6.5vw,95px);animation:cursor-blink .65s steps(1) infinite}.loader-number{margin-top:35px}.loader-line{width:160px}@keyframes cursor-blink{50%{opacity:0}}
@media(min-width:901px) and (max-width:1150px){.has-photo-hero .site-header nav{gap:12px}.has-photo-hero .site-header nav a{font-size:9px}.has-photo-hero .site-header .brand span{font-size:23px}}
@media(max-width:900px){.has-photo-hero .site-header{padding:18px 5%;min-height:90px}.has-photo-hero .site-header>.language-switch{position:static;margin-left:auto}.has-photo-hero .site-header .brand span{font-size:23px}.has-photo-hero .site-header nav{padding:22px 5%;top:100%;z-index:50}.has-photo-hero .site-header nav a{font-size:13px;min-height:44px}.has-photo-hero .site-header .language-switch a{min-width:30px;min-height:36px}.photo-wall-hero .spring-intro{top:20%}.photo-wall-hero h1{overflow-wrap:normal}.service-card{min-width:0}.price-row>span:first-child{min-width:0;overflow-wrap:anywhere}}
@media(max-width:420px){.has-photo-hero .site-header .brand span{font-size:19px}.has-photo-hero .site-header .brand small{font-size:6px}.language-switch{gap:0}.has-photo-hero .site-header .language-switch a{min-width:26px;font-size:10px}.photo-wall-hero h1{font-size:10vw}.photo-wall-hero .spring-caption .actions{gap:12px}.loader-typed{font-size:36px}.loader-label{font-size:8px}}
@media(prefers-reduced-motion:reduce){.typing-cursor{animation:none}}

/* The greeting runs over the ready hero and never blocks interaction. */
#page-loader.quick-intro{inset:auto auto 24px 24px;width:auto;max-width:calc(100vw - 48px);padding:14px 22px;gap:4px;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s;background:#465038f2;border:1px solid #ffffff25}
#page-loader.quick-intro .loader-typing{width:auto;min-height:40px;margin:0}
#page-loader.quick-intro .loader-typed,#page-loader.quick-intro .typing-cursor{font-size:28px}
#page-loader.quick-intro.is-done{opacity:0;transform:translateY(8px)}

/* Incredibles-inspired service deck: each service settles into the same card position as the next arrives. */
.service-deck{height:500svh;padding:0;position:relative;isolation:isolate;overflow:clip;background:var(--sage)}
.service-deck-stage{position:sticky;top:0;height:100svh;min-height:610px;overflow:hidden;perspective:1200px}
.service-deck-intro{position:absolute;z-index:1;top:22%;left:clamp(24px,9vw,170px);width:min(520px,68vw);transform:translateY(-50%);pointer-events:none}
.service-deck-intro h2{font-size:clamp(48px,6vw,92px)}
.service-deck-intro>p:last-child{max-width:390px;margin:24px 0 0;color:var(--muted)}
.service-deck-list{position:absolute;z-index:2;inset:0;margin:0;padding:0;list-style:none;transform-style:preserve-3d}
.service-deck-item{position:absolute;top:28%;left:50%;width:min(470px,72vw);height:590px;transform-origin:50% -18%;will-change:transform,opacity}
.service-deck-card{display:block;width:100%;height:100%;overflow:hidden;border-radius:26px;background:var(--ivory);box-shadow:0 24px 70px rgba(16,43,35,.18);color:var(--ink);transition:box-shadow .35s ease,filter .35s ease}
.service-deck-card:hover,.service-deck-card:focus-visible{box-shadow:0 32px 90px rgba(16,43,35,.3);filter:brightness(1.02)}
.service-deck-card:focus-visible{outline:2px solid var(--forest);outline-offset:5px}
.service-deck-image{display:grid;place-items:center;height:55%;margin:0;padding:18px;background:#e8e5df;overflow:hidden}
.service-deck-image img{width:100%;height:100%;min-width:0;min-height:0;object-fit:contain!important;mix-blend-mode:multiply}
.service-deck-copy{display:flex;flex-direction:column;min-height:45%;padding:24px 30px 26px}
.service-deck-copy>span{color:#7e927f;font-size:11px;letter-spacing:.08em}
.service-deck-copy h3{margin:13px 0 10px;font:400 42px/.98 var(--serif);letter-spacing:-.04em}
.service-deck-copy p{margin:0;max-width:29ch;font-size:14px;line-height:1.5}
.service-deck-copy i{margin-top:auto;font-size:12px;font-style:normal}.service-deck-copy i b{margin-left:8px;font-size:18px}
.service-deck-hint{position:absolute;z-index:3;bottom:26px;left:50%;margin:0;transform:translateX(-50%);color:#607764;font-size:10px;letter-spacing:.18em;text-transform:uppercase;pointer-events:none;opacity:calc(1 - var(--deck-progress,0)*6)}
.service-deck-hint:after{display:inline-block;margin-left:9px;content:'↓';font-size:15px;vertical-align:-1px}
.service-deck.is-static-deck{height:auto;padding:70px clamp(20px,7vw,110px)}
.is-static-deck .service-deck-stage{position:static;height:auto;min-height:0;overflow:visible}.is-static-deck .service-deck-intro{position:static;width:auto;transform:none}.is-static-deck .service-deck-list{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:40px}.is-static-deck .service-deck-item{position:static;width:auto;height:510px;transform:none!important;opacity:1!important}.is-static-deck .service-deck-hint{display:none}
@media(max-width:700px){.service-deck{height:460svh}.service-deck-stage{min-height:580px}.service-deck-intro{top:21%;left:24px;width:calc(100% - 48px)}.service-deck-intro h2{font-size:clamp(46px,13vw,63px)}.service-deck-intro>p:last-child{margin-top:17px;font-size:13px}.service-deck-item{top:27%;width:min(86vw,350px);height:500px}.service-deck-card{border-radius:20px}.service-deck-image{height:53%;padding:13px}.service-deck-copy{min-height:47%;padding:19px 22px 20px}.service-deck-copy h3{font-size:36px}.service-deck-copy p{font-size:13px}.is-static-deck .service-deck-list{grid-template-columns:1fr}.is-static-deck .service-deck-item{height:470px}}
@media(prefers-reduced-motion:reduce){.service-deck{height:auto;padding:70px clamp(20px,7vw,110px)}.service-deck-stage{position:static;height:auto;min-height:0;overflow:visible}.service-deck-intro{position:static;width:auto;transform:none}.service-deck-list{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:40px}.service-deck-item{position:static;width:auto;height:510px;transform:none!important;opacity:1!important}.service-deck-hint{display:none}}
@media(prefers-reduced-motion:reduce) and (max-width:700px){.service-deck-list{grid-template-columns:1fr}.service-deck-item{height:470px}}

/* Two-panel Salaeva reveal, adapted from the requested Demolition transition. */
#page-loader{display:block;overflow:hidden;background:#18372d;clip-path:none;transition:none}
#page-loader .loader-panel{position:absolute;top:0;bottom:0;width:50.1%;background:#18372d url('img/loading/monogram_landscape_16x9.png') center/auto 100% no-repeat;will-change:transform;transition:transform .52s cubic-bezier(.76,0,.24,1)}
#page-loader .loader-panel-left{left:0;background-position:left center}
#page-loader .loader-panel-right{right:0;background-position:right center}
#page-loader.is-done{transform:none;visibility:visible;clip-path:none}
#page-loader.is-done .loader-panel-left{transform:translateX(-101%)}
#page-loader.is-done .loader-panel-right{transform:translateX(101%)}
@media(max-width:700px){#page-loader .loader-panel{background-image:url('img/loading/monogram_mobile_9x16.png');background-size:auto 100%}}

/* A quiet preview opens the requested Glass player instead of exposing native controls. */
.video-modal-trigger{position:absolute;inset:0;display:block;overflow:hidden;padding:0;border:0;background:#171717;cursor:pointer}
.video-modal-trigger video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain!important}
.video-play{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:58px;height:58px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(20,31,28,.44);box-shadow:0 10px 30px rgba(0,0,0,.2);backdrop-filter:blur(11px);color:#fff;font-size:17px;transition:transform .22s ease,background .22s ease}
.video-modal-trigger:hover .video-play,.video-modal-trigger:focus-visible .video-play{transform:translate(-50%,-50%) scale(1.08);background:rgba(20,54,43,.75)}
.video-modal-trigger:focus-visible{outline:2px solid #e9ddc7;outline-offset:-4px}
.media-frame video,.video-modal-trigger{background:transparent}.case-carousel{overflow:hidden}

/* Keep the centre image and its neighbouring slides close enough to read as one carousel. */
@media(min-width:1200px){.case-carousel{grid-template-columns:minmax(260px,.26fr) minmax(0,.74fr);gap:clamp(24px,3vw,54px)}.cf-shell{grid-template-columns:44px minmax(0,1fr) 44px;gap:0;overflow:visible}.cf-stage{height:clamp(380px,30vw,560px);overflow:hidden}.media-frame{top:4%;bottom:4%;left:50%;right:auto;width:min(78%,660px);height:auto;transform:translateX(-50%)}.cf-arrow{position:relative;z-index:30;background:var(--ivory)}}

/* Service deck composes as an even two-column stage on wide screens and stacks on tablets. */
@media(min-width:1200px){.service-deck-intro{top:14%;left:clamp(84px,10vw,320px);width:min(620px,30vw);transform:none}.service-deck-intro h2{font-size:clamp(58px,4.8vw,104px)}.service-deck-item{top:16%;left:62%;width:clamp(500px,28vw,650px);height:min(650px,calc(100svh - 150px))}}
@media(min-width:701px) and (max-width:1199px){.service-deck-intro{top:12%;left:clamp(40px,7vw,76px);width:min(440px,calc(100vw - 96px));transform:none}.service-deck-item{top:40%;left:50%;width:min(440px,60vw);height:540px}}
@media(max-width:700px){.service-deck-intro{top:21%}.service-deck-item{top:45%;left:50%}}


/* Gallery geometry is confined to its own column, with natural vertical scrolling. */
.case-carousel{overflow:visible;min-width:0}
.case-heading{position:relative;z-index:1}
.cf-shell{position:relative;display:block;overflow:visible;min-width:0;padding:20px clamp(48px,7vw,96px) 76px}
.cf-stage{--card-width:min(340px,64vw);height:calc(min(340px,64vw)*4/3 + 30px);min-height:0;overflow:visible;perspective:1100px;touch-action:pan-y;user-select:none}
.cf-slide{position:absolute;inset:auto;left:50%;top:50%;width:var(--card-width);height:calc(min(340px,64vw)*4/3);aspect-ratio:3/4;margin:calc(min(340px,64vw)*-2/3) 0 0 calc(min(340px,64vw)/-2);display:block;overflow:hidden;background:transparent;transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .7s ease;pointer-events:none}
.cf-slide[aria-hidden="false"]{pointer-events:auto}
.cf-stage.dragging .cf-slide{transition:none}
.media-frame{position:absolute;inset:0;width:100%;height:100%;display:block;background:transparent;box-shadow:none;overflow:hidden;transform:none}
.media-frame img,.media-frame video,.video-modal-trigger{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain!important;object-position:center!important;background:transparent}
.cf-arrow{position:absolute;top:auto;bottom:18px;z-index:150;background:var(--ivory);pointer-events:auto;transform:none}
.cf-arrow:hover{transform:scale(1.08)}.cf-arrow.prev{left:calc(50% - 52px)}.cf-arrow.next{right:calc(50% - 52px)}
.cf-footer{min-width:0;margin-top:0}.cf-dots{min-width:0}.cf-dots button{min-height:24px}
@media(min-width:1600px){.case-carousel{max-width:1800px;margin-inline:auto;width:100%;grid-template-columns:minmax(260px,.24fr) minmax(0,.76fr)}}
@media(max-width:1199px){.case-carousel{grid-template-columns:minmax(0,1fr);gap:20px;width:100%;max-width:100%;}.case-heading{max-width:680px}.cf-footer{grid-column:1}.cf-shell{margin-inline:0;padding:20px 40px 72px;overflow:visible;width:100%;box-sizing:border-box}.cf-stage{width:100%;max-width:100%;overflow:hidden}.cf-arrow{bottom:14px}.cf-arrow.prev{left:calc(50% - 48px)}.cf-arrow.next{right:calc(50% - 48px)}.cf-tip{display:none}}
/* Reserve separate space for the service introduction and animated cards. */
.service-deck-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:40px;padding:40px clamp(24px,6vw,110px);min-height:0}
.service-deck-intro{position:relative;inset:auto;width:100%;max-width:620px;transform:none;align-self:center}
.service-deck-intro h2{font-size:clamp(44px,4.6vw,88px)}
.service-deck-list{position:relative;inset:auto;width:100%;height:min(650px,calc(100svh - 100px));min-height:0}
.service-deck-item{top:0;left:50%;width:min(100%,470px);height:100%}
.service-deck-copy h3{font-size:clamp(28px,3vw,42px)}
@media(max-width:1199px){.service-deck-stage{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);align-content:start;gap:24px;padding:28px 24px 36px;min-height:700px}.service-deck-intro{max-width:680px;align-self:start}.service-deck-intro h2{font-size:clamp(34px,5vw,48px)}.service-deck-intro>p:last-child{margin-top:12px;max-width:540px;font-size:13px}.service-deck-list{height:100%;max-height:540px}.service-deck-item{width:min(100%,360px)}.service-deck-copy{padding:16px 22px}.service-deck-copy h3{font-size:30px}.service-deck-image{padding:12px}.service-deck-hint{display:none}}
@media(prefers-reduced-motion:reduce){.service-deck-stage{display:block;padding:0}.service-deck-list{height:auto;max-height:none}.cf-slide{transition:none!important}}
@media(max-width:1199px){.service-deck-list{align-self:start}}
.cf-stage{perspective:none}.cf-slide{will-change:auto}
