@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url("./fonts/instrument-sans.woff2") format("woff2")}
:root{--black:#08080a;--white:#fbfbfa;--ink:#121215;--muted:#64636b;--line:#dfdfe3;--ease:cubic-bezier(.2,.72,.24,1);font-family:"Instrument Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;background:var(--white);color:var(--ink)}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,select,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}a:focus-visible,button:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #9864fa;outline-offset:5px}.skip{position:fixed;z-index:20;top:10px;left:10px;background:white;color:black;padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}
.header,.menu-bar{position:fixed;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;height:70px;padding:0 4.3%;z-index:5}.header{color:white;transition:background .4s,color .4s}.header.on-light{background:#fbfbfaec;color:var(--ink);backdrop-filter:blur(14px);border-bottom:1px solid #1111110d}.brand{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:15px;letter-spacing:-.025em}.mark{width:13px;height:13px;border-left:2px solid currentColor;border-top:2px solid currentColor;transform:translateY(3px) rotate(45deg)}.plain{border:0;background:none;color:inherit;font-size:13px;padding:9px 0}.plain span{margin-left:7px}.plain:hover,.line-link:hover{opacity:.65}
.hero{min-height:760px;min-height:100svh;position:relative;isolation:isolate;display:grid;grid-template-columns:1fr minmax(0,1.55fr) 1fr;align-items:center;padding:85px 4.3% 65px;background:var(--black);color:white;overflow:hidden}.scene{grid-column:2;grid-row:1;position:relative;width:100%;aspect-ratio:1;display:grid;place-items:center;isolation:isolate;transform:translateY(var(--scene-offset,0px)) scale(var(--scene-scale,1));opacity:var(--scene-opacity,1)}.scene-glow{position:absolute;z-index:-1;width:94%;aspect-ratio:1;border-radius:50%;background:radial-gradient(ellipse at 34% 55%,#510b544a,transparent 57%),radial-gradient(ellipse at 71% 62%,#133c714a,transparent 53%);filter:blur(24px)}canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:pan-y}.hero-left{grid-column:1;grid-row:1;z-index:1}.hero-right{grid-column:3;grid-row:1;justify-self:end;z-index:1}.hero-right p{color:#bcbac5;line-height:1.45;margin:0 0 17px;font-size:15px}.label{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;margin:0 0 17px;color:var(--muted)}.hero .label{color:#bcbac5}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(38px,5.35vw,94px);font-weight:500;line-height:.91;letter-spacing:-.078em;margin-bottom:0}h1 span{display:block;white-space:nowrap;animation:arrive .95s var(--ease) both}h1 span+span{animation-delay:.13s}.intro-in{animation:arrive 1s .18s var(--ease) both}.line-link{display:inline-flex;align-items:center;gap:10px;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:13px;font-weight:600;transition:opacity .2s}.motion-button{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);color:#c4c1ce;font-size:11px;white-space:nowrap}
dialog{border:0;margin:0;max-width:none;max-height:none;width:100%;height:100dvh;background:var(--white);color:var(--ink);padding:70px 5%;position:fixed;inset:0}dialog[open]{display:grid;place-items:center;animation:menu-in .43s var(--ease) both}dialog::backdrop{background:var(--black)}dialog nav{display:grid;line-height:.93}dialog nav a{font-size:clamp(52px,9vw,122px);letter-spacing:-.075em;transition:color .25s,transform .35s var(--ease);animation:arrive .55s var(--ease) both}dialog nav a:nth-child(2){animation-delay:.05s}dialog nav a:nth-child(3){animation-delay:.1s}dialog nav a:nth-child(4){animation-delay:.15s}dialog nav:has(a:hover) a:not(:hover){color:#76757b}dialog nav a:hover{transform:translateX(10px)}
.light{background:var(--white)}.services,.approach,.estimate{padding:clamp(80px,12vw,165px) 7% 0}.section-lead{text-align:center;margin:auto;max-width:720px}.section-lead h2{font-size:clamp(45px,7vw,103px);line-height:.93;letter-spacing:-.075em;font-weight:500;margin-bottom:0}.section-lead>p:last-child:not(.label){margin:24px auto 0;color:var(--muted);line-height:1.55;max-width:34ch}.gallery{margin:43px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(100%,630px)}.gallery-card{position:relative;overflow:hidden;isolation:isolate;display:block;background:#dcdce0;min-height:190px;aspect-ratio:.92;color:white;transition:transform .4s var(--ease)}.gallery-card img{height:100%;width:100%;object-fit:cover;transition:transform .65s var(--ease)}.gallery-card::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#060609df);pointer-events:none}.gallery-card span{position:absolute;z-index:1;inset:auto 10px 11px;display:flex;align-items:end;justify-content:space-between;gap:3px;font-size:13px;font-weight:600}.gallery-card b{font-weight:500}.gallery-card:hover img,.gallery-card:focus-visible img{transform:scale(1.1)}.gallery-card:hover{transform:translateY(-4px)}
.service-detail{margin:clamp(68px,10vw,130px) auto 0;max-width:1270px;display:grid;grid-template-columns:minmax(190px,1fr) minmax(0,2.4fr);gap:clamp(25px,7vw,100px);align-items:end}.service-copy{position:relative}.service-copy article{scroll-margin-top:75px}.service-copy h3{font-size:clamp(32px,4vw,58px);font-weight:500;letter-spacing:-.068em;line-height:1;margin:28px 0 13px}.service-copy p{line-height:1.55;color:var(--muted);max-width:32ch}.back-link{color:var(--muted)}.detail-frame{height:clamp(300px,42vw,550px);overflow:hidden;background:#e8e8e9}.detail-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}.swap-image{animation:image-open .72s var(--ease) both}.swap-copy{animation:arrive .55s var(--ease) both}
.steps{padding:0;list-style:none;max-width:710px;margin:40px auto 60px;border-top:1px solid var(--line)}.steps li{display:grid;grid-template-columns:1fr 1.5fr;gap:12px;padding:17px 0;border-bottom:1px solid var(--line)}.steps strong{font-weight:600}.steps span{color:var(--muted)}.wide-photo{width:min(100%,1110px);margin:auto;aspect-ratio:2.4;overflow:hidden}.wide-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 49%}
.estimate{padding-bottom:100px}.estimate form{max-width:420px;margin:35px auto 0;display:grid;gap:10px}label{font-size:13px;font-weight:600}select,textarea{padding:12px;border:1px solid #b9b9bf;border-radius:0;color:var(--ink);background:transparent;width:100%}textarea{resize:vertical}.pill{justify-self:start;background:var(--ink);color:white;border:0;border-radius:40px;padding:12px 18px;margin-top:7px;font-size:13px}.pill:hover{background:#3b3547}.pill span{margin-left:12px}#form-status{margin:0;font-size:13px}footer{border-top:1px solid var(--line);padding:27px 7%;display:flex;justify-content:space-between;align-items:center}
.motion .reveal{opacity:0;transform:translateY(29px);transition:transform .78s var(--ease),opacity .6s ease}.motion .reveal.visible{opacity:1;transform:none}.motion .wide-photo img{transform:scale(1.12);transition:transform 1.15s var(--ease)}.motion .wide-photo.visible img{transform:none}@keyframes arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes image-open{from{clip-path:inset(13% 16% 13% 16%);transform:scale(1.13);opacity:.35}to{clip-path:inset(0);transform:none;opacity:1}}@keyframes menu-in{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@media(max-width:760px){.header,.menu-bar{height:61px;padding:0 6%}.hero{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;min-height:100svh;padding:98px 6% 72px;text-align:center}.hero-left,.hero-right,.scene{grid-column:1;justify-self:center}.hero-left{grid-row:1}.hero h1{font-size:clamp(54px,12vw,82px)}.hero h1 span{display:inline;white-space:normal}.hero h1 span+span::before{content:" "}.hero .label{margin-bottom:11px}.scene{grid-row:2;width:min(100%,400px);align-self:center;max-height:40svh;aspect-ratio:1}.hero-right{grid-row:3}.hero-right p{margin-bottom:9px}.hero-right br{display:none}.motion-button{bottom:13px}.gallery{gap:5px}.gallery-card{min-height:126px}.gallery-card span{font-size:11px;inset:auto 6px 7px}.service-detail{grid-template-columns:1fr;gap:20px}.detail-frame{height:310px}.steps li{grid-template-columns:1fr;gap:4px}.wide-photo{aspect-ratio:1.5}.estimate{padding-bottom:62px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion .reveal{opacity:1;transform:none}.scene{transform:none;opacity:1}}

/*hero-photo*/
.hero .scene{position:absolute;left:0;top:0;width:320px;height:320px;aspect-ratio:auto;visibility:hidden;pointer-events:none;opacity:0}
.hero-photo{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#08080a}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;transform:scale(1.04);animation:heroZoom 22s ease-out both}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,8,10,.82) 0%,rgba(8,8,10,.38) 52%,rgba(8,8,10,.72) 100%),linear-gradient(0deg,rgba(8,8,10,.85) 0%,rgba(8,8,10,0) 38%)}
.hero .motion-button{display:none}
@keyframes heroZoom{from{transform:scale(1.04)}to{transform:scale(1.14)}}
@media(max-width:800px){.hero-shade{background:linear-gradient(0deg,rgba(8,8,10,.9) 0%,rgba(8,8,10,.45) 60%,rgba(8,8,10,.6) 100%)}}
@media(prefers-reduced-motion:reduce){.hero-photo img{animation:none}}
