/* Expressive motion, requested by the studio. Content is visible without scripts. */
:root{--ease-in-out:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1)}
@view-transition{navigation:auto}::view-transition-old(root){animation:page-out 220ms var(--ease-out) both}::view-transition-new(root){animation:page-in 450ms var(--ease-out) both}
@keyframes page-out{to{opacity:0;transform:translateY(-14px)}}@keyframes page-in{from{opacity:0;transform:translateY(28px)}}
/* The original brand intro, with an explicit escape and a CSS failsafe. */
#preloader{position:fixed;inset:0;z-index:120;background:#171734;color:#fff;display:grid;place-items:center;overflow:hidden;animation:intro-failsafe 0s 3.4s forwards}
#preloader.is-leaving{pointer-events:none;animation:intro-curtain 850ms var(--ease-in-out) both}
.intro-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;padding:24px}
.pl-mark{width:clamp(120px,17vw,190px);height:auto;animation:intro-mark 900ms var(--ease-out) both}
.pl-word{font-size:clamp(27px,4vw,44px);font-weight:800;letter-spacing:-.035em;animation:intro-word 700ms var(--ease-out) 160ms both}.pl-word span{color:#e1bd68}.intro-wrap p{font-size:12px;color:#c8c6d7;animation:intro-word 650ms var(--ease-out) 240ms both}
.pl-bar{width:160px;height:2px;background:#444461;overflow:hidden;margin-top:24px}.pl-bar span{display:block;width:100%;height:100%;background:#e1bd68;transform-origin:left;animation:intro-line 1200ms var(--ease-in-out) both}
.intro-skip{position:absolute;bottom:32px;right:40px;display:flex;align-items:center;gap:18px;color:#e1bd68;background:none;border:0;font-size:12px;min-height:44px;padding:12px}
@keyframes intro-mark{from{opacity:0;transform:translateY(30px) scale(.9)}to{opacity:1;transform:none}}@keyframes intro-word{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes intro-line{from{transform:scaleX(.03)}to{transform:scaleX(1)}}@keyframes intro-curtain{to{transform:translateY(-100%);visibility:hidden}}@keyframes intro-failsafe{to{opacity:0;visibility:hidden;pointer-events:none}}
/* Full-width Lakhota Lake: original photography, cinematic contrast. */
main>.cinematic-hero{position:relative;isolation:isolate;overflow:hidden;min-height:790px;min-height:min(860px,calc(100svh - 80px));display:flex;align-items:center;padding:76px 0 110px;background:#171734;color:#fff}
.hero-scene{position:absolute;inset:0;z-index:-1;overflow:hidden}.hero-city{position:absolute;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 42%;transform:scale(1.08)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,16,43,.59),rgba(16,16,43,.48) 48%,rgba(16,16,43,.91))}
.hero-stage{text-align:center;position:relative;display:flex;flex-direction:column;align-items:center}.hero-emblem{width:82px;height:82px;object-fit:contain;margin-bottom:26px}
.hero-stage h1{font-size:clamp(3.5rem,6.7vw,6rem);line-height:1.04;letter-spacing:-.04em;font-weight:800;max-width:1240px}.hero-line{display:block;overflow:hidden;padding:0 .08em .1em;margin-bottom:-.1em}.hero-line>span{display:block}.hero-gold{color:#edc974}
.hero-stage>p{font-size:17px;line-height:1.8;color:#e2e0e9;max-width:610px;margin-top:28px}.hero-stage .hero-actions{justify-content:center;margin-top:32px;gap:18px}.hero-stage .btn{min-height:54px;padding:14px 26px}.hero-stage .btn-ghost{color:#fff;border-color:rgba(255,255,255,.45);background:rgba(20,20,48,.16)}
.hero-bottom{position:absolute;left:0;right:0;bottom:28px;display:flex;align-items:center;justify-content:space-between;color:#d4d0e1;font-size:11px}.scroll-cue{display:flex;gap:20px;align-items:center;min-height:44px}.scroll-cue svg{animation:scroll-invitation 2.5s var(--ease-in-out) infinite}.hero-bottom>span{color:#e1bd68}
@keyframes scroll-invitation{0%,100%{transform:translateY(-4px)}50%{transform:translateY(5px)}}
.hero-particles{position:absolute;inset:0;pointer-events:none}.hero-particles i{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:#f1dba5;opacity:.3;animation:brass-drift var(--drift) var(--ease-in-out) var(--delay) infinite}.hero-particles i:nth-child(3n){width:5px;height:5px;opacity:.2}
@keyframes brass-drift{0%,100%{transform:translate3d(0,0,0);opacity:.15}50%{transform:translate3d(24px,-46px,0);opacity:.65}}
.services-marquee{overflow:hidden;background:#e1bd68;color:#202047;border-bottom:1px solid #c6a452;padding:24px 0}.marquee-track{display:flex;width:max-content;animation:studio-marquee 36s linear infinite}.marquee-group{display:flex;align-items:center;gap:42px;padding-right:42px;flex-shrink:0}.marquee-group>span{font-size:23px;font-weight:700;letter-spacing:-.025em;white-space:nowrap}.marquee-group svg{width:20px;height:20px;opacity:.7}@keyframes studio-marquee{to{transform:translateX(-50%)}}
/* Rows sweep into a filled indigo state; information remains stable. */
.service-row{position:relative;isolation:isolate;padding-inline:24px;margin-inline:-24px;overflow:hidden;transition:color 220ms ease}.service-row::before{content:"";position:absolute;inset:0;z-index:-1;background:#202047;transform:translateY(102%);transition:transform 420ms var(--ease-out)}.service-row h3,.service-row p,.service-link{transition:color 220ms ease,transform 250ms var(--ease-out)}.service-link .icon{transition:transform 250ms var(--ease-out)}
.btn{position:relative;isolation:isolate;overflow:hidden;transition:transform 180ms var(--ease-out),background-color 180ms ease,border-color 180ms ease,box-shadow 250ms var(--ease-out)}.btn::after{content:"";position:absolute;top:-50%;bottom:-50%;left:-65%;width:40%;background:linear-gradient(110deg,transparent,rgba(255,255,255,.3),transparent);transform:skewX(-20deg) translateX(-50%);transition:transform 600ms var(--ease-out);pointer-events:none}.btn .icon{transition:transform 220ms var(--ease-out)}.btn:active{transform:translateY(1px) scale(.97)}
.price{position:relative;isolation:isolate;overflow:hidden;transition:transform 350ms var(--ease-out),box-shadow 350ms var(--ease-out),border-color 220ms ease}.price>*:not(.hover-light){position:relative;z-index:1}.hover-light{position:absolute;inset:auto;width:360px;height:360px;left:0;top:0;border-radius:50%;background:radial-gradient(circle,rgba(225,189,104,.21),rgba(225,189,104,0) 68%);pointer-events:none;opacity:0;transition:opacity 250ms ease;z-index:0}
.project-image{transition:transform 350ms var(--ease-out),box-shadow 350ms var(--ease-out)}.project-image img{transition:transform 650ms var(--ease-out)}.post-card .ph img{transition:transform 700ms var(--ease-out)}.local-photo{overflow:hidden;border-radius:12px}.local-photo img{transition:transform 900ms var(--ease-out)}
.nav-links a{position:relative}.nav-links a::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--accent-ink);transform:scaleX(0);transform-origin:left;transition:transform 250ms var(--ease-out)}.nav-links a[aria-current]::after{transform:scaleX(1)}

.scroll-progress{position:fixed;top:0;left:0;right:0;z-index:90;height:3px;background:#e1bd68;transform:scaleX(0);transform-origin:left;pointer-events:none}.site-header{transition:box-shadow 250ms ease}.site-header.is-scrolled{box-shadow:0 8px 30px rgba(0,0,0,.08)}
@media(hover:hover) and (pointer:fine){.services-marquee:hover .marquee-track{animation-play-state:paused}.service-row:hover::before{transform:translateY(0)}.service-row:hover h3,.service-row:hover p,.service-row:hover .service-link{color:#fff}.service-row:hover h3{transform:translateX(6px)}.service-row:hover .service-link .icon{transform:rotate(45deg) scale(1.18);color:#e1bd68}.btn:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.12)}.btn:hover::after{transform:skewX(-20deg) translateX(520%)}.btn:hover .icon{transform:translate(3px,-3px)}.hero-stage .btn-ghost:hover{background:#fff;color:#202047}.price:hover{transform:translateY(-9px);box-shadow:0 22px 50px rgba(0,0,0,.1);border-color:var(--accent-ink)}.price:hover .hover-light{opacity:1}.project-image:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.1)}.project-image:hover img{transform:scale(1.045)}.post-card:hover .ph img{transform:scale(1.06)}.local-photo:hover img{transform:scale(1.05)}.nav-links a:hover::after{transform:scaleX(1)}}
.service-row:focus-visible::before{transform:translateY(0)}.service-row:focus-visible h3,.service-row:focus-visible p,.service-row:focus-visible .service-link{color:#fff}
@media(max-width:1100px){main>.cinematic-hero{min-height:760px}.hero-stage h1{font-size:clamp(3.4rem,7vw,5rem)}}
@media(max-width:767px){main>.cinematic-hero{min-height:730px;min-height:calc(100svh - 72px);padding:58px 0 108px}.hero-stage h1{font-size:clamp(2.8rem,10vw,4rem);line-height:1.08}.hero-stage>p{font-size:14px;max-width:34ch;margin-top:24px}.hero-stage>p br{display:none}.hero-emblem{width:68px;height:68px;margin-bottom:28px}.hero-stage .hero-actions{flex-direction:column;gap:12px;width:100%;margin-top:26px}.hero-stage .btn{min-height:48px;width:min(100%,250px);justify-content:center;padding:12px 18px}.hero-bottom{bottom:19px;font-size:10px}.hero-bottom>span{max-width:100px}.scroll-cue{gap:12px}.hero-city{object-position:46% center}.hero-shade{background:linear-gradient(180deg,rgba(16,16,43,.6),rgba(16,16,43,.5) 50%,rgba(16,16,43,.91))}.services-marquee{padding:20px 0}.marquee-group{gap:28px;padding-right:28px}.marquee-group>span{font-size:18px}.service-row{padding-inline:20px;margin-inline:-20px}.intro-skip{right:12px;bottom:20px}}
@media(max-width:374px){.hero-stage h1{font-size:2.65rem}.hero-stage>p{font-size:13px}.hero-emblem{width:56px;height:56px;margin-bottom:22px}.hero-bottom>span{max-width:85px}.service-row{margin-inline:-16px;padding-inline:16px}}
@media(max-height:650px) and (min-width:768px){main>.cinematic-hero{min-height:680px}}
/* Device reduced-motion preferences stop decorative layers. */
.effects-paused .marquee-track,.effects-paused .hero-particles i,.effects-paused .scroll-cue svg{animation-play-state:paused!important}.effects-paused .hero-city{transform:scale(1.08)!important}.effects-paused .btn,.effects-paused .btn::after,.effects-paused .btn .icon,.effects-paused .price,.effects-paused .project-image,.effects-paused .project-image img,.effects-paused .post-card .ph img,.effects-paused .local-photo img,.effects-paused .service-row::before,.effects-paused .service-row h3,.effects-paused .service-link .icon{transition:none!important}.effects-paused .btn:hover,.effects-paused .price:hover,.effects-paused .project-image:hover,.effects-paused .project-image:hover img,.effects-paused .post-card:hover .ph img,.effects-paused .local-photo:hover img,.effects-paused .service-row:hover h3{transform:none}.effects-paused .hover-light{display:none}
@media(prefers-reduced-motion:reduce){#preloader{display:none!important}.hero-particles{display:none}.marquee-track,.scroll-cue svg{animation:none!important}.hero-city{transform:scale(1.08)!important}.btn:hover,.price:hover,.project-image:hover,.project-image:hover img,.post-card:hover .ph img,.local-photo:hover img,.service-row:hover h3{transform:none}.hover-light{display:none!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
html.effects-paused::view-transition-old(root),html.effects-paused::view-transition-new(root){animation:none!important}
.home-page .closing{background:#202047;color:#fff;border:0}.home-page .closing p{color:#d2d0df}.home-page .closing .btn{background:#e1bd68;color:#202047}.home-page .closing h2{font-size:clamp(2.8rem,5.6vw,5.6rem);max-width:900px}
html:not(.motion-ready) .marquee-track,html:not(.motion-ready) .hero-particles i,html:not(.motion-ready) .scroll-cue svg{animation-play-state:paused}
@media(max-width:767px){.hero-bottom{bottom:68px}}
