/* Motion enhances the existing layout without adding scroll distance. */
.hero h1{max-width:1100px;font-size:clamp(2.8rem,6.2vw,6.5rem);line-height:1.02;letter-spacing:-.055em}
.hero h1 .motion-word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .motion-word>span{display:inline-block;font:inherit!important;letter-spacing:inherit!important;color:inherit!important;margin:0!important;animation:word-arrive .85s cubic-bezier(.2,.75,.2,1) both;animation-delay:calc(var(--word)*65ms)}
@keyframes word-arrive{from{transform:translateY(110%) rotate(3deg);opacity:0}to{transform:translateY(0);opacity:1}}
.hero-bottom{animation:content-arrive 1s .35s both}@keyframes content-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
#header{transition:background .3s,box-shadow .3s,backdrop-filter .3s}#header.scrolled{background:#080e18e8;backdrop-filter:blur(18px);box-shadow:0 12px 40px #0003;border-bottom:1px solid #ffffff12}
.estate{position:relative;overflow:hidden}.estate figure{overflow:hidden}.estate figure img{transform:translateY(var(--estate-y,0px)) scale(var(--estate-scale,1.08));will-change:transform}.estate-copy{position:relative;z-index:1}.estate-copy .label{color:#8ec3ff}.estate-copy h2{max-width:18ch}.estate figure:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0a0e1540,transparent 50%)}.estate figure{position:relative}
.web-card.motion-card{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .22s ease-out,border-color .2s;position:relative}.web-card.motion-card:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--glow-x,50%) var(--glow-y,50%),#b0d7ff22,transparent 55%);opacity:0;transition:opacity .3s}.web-card.motion-card:hover:after{opacity:1}.web-card.motion-card:hover{border-color:#7ca9d0}.web-card.motion-card:hover img{transform:scale(1.045)}
.portfolio-piece img{transition:transform .45s,filter .45s}.portfolio-piece:hover img{filter:brightness(1.08)}
@media(max-width:700px){.hero h1{font-size:clamp(2.5rem,10vw,4.3rem)}.estate figure img{transform:none;will-change:auto}.web-card.motion-card{transform:none}.hero-bottom{animation:none}}
@media(prefers-reduced-motion:reduce){.hero h1 .motion-word>span,.hero-bottom{animation:none}.estate figure img,.web-card.motion-card{transform:none!important;will-change:auto}#header,.web-card,.web-card img,.portfolio-piece img{transition:none!important}}
.hero h1>.motion-word{color:var(--text)!important}.hero h1>.motion-word:nth-last-of-type(-n+2){color:#83b7f0!important}
.hero h1 .motion-word>span{animation:none;transform:translateY(115%);opacity:0}
.hero.hero-in-view h1 .motion-word>span{animation:word-arrive 1.2s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--word)*105ms)}
.estate-story{display:block;overflow:visible}.estate-stage{display:grid;grid-template-columns:1fr 1.2fr}.estate-story-caption,.estate-progress{display:none}
.estate-story.story-active{height:175vh;min-height:1000px;opacity:1;transform:none;overflow:visible}
.story-active .estate-stage{position:sticky;top:88px;height:calc(100vh - 88px);min-height:500px;display:block;overflow:hidden;isolation:isolate;background:#080e17}
.story-active figure{position:absolute;inset:0;min-height:0;height:100%;width:100%;clip-path:inset(var(--story-inset,16%) 0 var(--story-inset,16%) 0);z-index:-2}
.story-active figure img{width:100%;height:100%;transform:scale(var(--story-scale,1.32));object-position:center;will-change:transform}
.story-active figure:after{background:linear-gradient(90deg,#030810e8, #03081070 65%,#03081030);z-index:1}
.story-active .estate-copy{max-width:850px;padding:8vh var(--gutter);opacity:var(--copy-opacity,1);transform:translateY(var(--copy-y,0px));pointer-events:auto}
.story-active .estate-copy h2{font-size:clamp(2.5rem,4.5vw,5rem);max-width:18ch}.story-active .estate-copy>p:not(.label){color:#e0e8f2;max-width:48ch}
.story-active .estate-story-caption{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;padding:5vw;gap:1.8rem;opacity:var(--caption-opacity,0);transform:translateY(var(--caption-y,70px));pointer-events:none}
.estate-story-caption strong{font-size:clamp(3rem,6vw,6.5rem);letter-spacing:-.05em;line-height:1.05;max-width:17ch}.estate-story-caption small,.estate-story-caption span{font-size:.7rem;letter-spacing:.18em;color:#9acbff}
.story-active .estate-progress{display:block;position:absolute;bottom:0;left:0;width:100%;height:4px;background:#8ac3ff;transform-origin:left;transform:scaleX(var(--story-progress,0))}
.web-card.motion-card{overflow:visible;box-shadow:0 20px 45px #0004}.web-preview{border-radius:8px 8px 0 0}.web-card.motion-card:hover{box-shadow:0 25px 60px #0009}.web-card.motion-card:hover img{transform:scale(1.12)}
@media(max-width:999px){.estate-stage{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.hero h1 .motion-word>span,.hero.hero-in-view h1 .motion-word>span{animation:none;opacity:1;transform:none}}
