:root{--ease:cubic-bezier(.23,1,.32,1);--ease-scene:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1)}
.hero-depth{position:absolute;inset:0;z-index:-1;transform-origin:center center}.hero-depth>.hero-backdrop,.hero-depth>.hero-shade{z-index:auto}.hero-depth .hero-backdrop img{animation:none;transition:none}.hero-line{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}.hero-line>span{display:block}.hero-content{animation:none!important}.hero-content h1{max-width:850px}.hero-line{white-space:nowrap}.photo-curtain{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover;pointer-events:none;z-index:2;animation:none!important;transition:none!important}.word-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .025em .15em;margin:0 -.025em -.15em}.word-mask>span{display:inline-block}.environment-tabs{position:relative}.environment-tabs button[aria-selected=true]:after{display:none}.tab-glider{position:absolute;left:0;bottom:-1px;height:2px;background:var(--wine);pointer-events:none;transform-origin:left;transition:transform 250ms var(--ease-scene)}.saved-flight{position:fixed;z-index:10;width:36px;height:36px;display:grid;place-items:center;background:var(--paper);color:var(--wine);border-radius:50%;pointer-events:none;box-shadow:0 4px 18px #20292322}.saved-flight .icon{width:18px;height:18px;fill:currentColor}.photo-action{transition:transform 200ms var(--ease)}
/* Portfolio becomes an architectural sequence, with each room covering the last.
   The browser retains ordinary scrolling. No scroll lock or fabricated scrollbar. */
@media(min-width:1001px) and (prefers-reduced-motion:no-preference){
 .projects-section{overflow:visible}.project-grid{display:block;isolation:isolate;padding-bottom:5vh}.project-card,.project-wide{display:grid;grid-template-columns:1.7fr 1fr;gap:0;position:sticky;top:70px;background:var(--paper);border-radius:12px;overflow:hidden;min-height:580px;margin-bottom:100px;box-shadow:0 25px 70px rgba(20,32,21,.09)}.project-card:nth-child(1){z-index:1}.project-card:nth-child(2){z-index:2;top:88px;padding:0}.project-card:nth-child(3){z-index:3;top:106px;margin-bottom:0}.project-card .project-photo,.project-wide .project-photo{border-radius:0;height:100%;min-height:580px}.project-card .project-photo>img,.project-large .project-photo>img,.project-wide .project-photo>img{height:100%;min-height:580px;max-height:660px;object-fit:cover}.project-card>div,.project-wide>div{padding:50px 38px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.project-card h3,.project-wide h3{font:48px/1.06 var(--serif);letter-spacing:-.025em}.project-card p{font-size:13px;margin-top:22px;max-width:24ch}.project-card .inline-link{margin-top:26px;font-size:12px}.project-card .photo-action{width:56px;height:56px;bottom:28px;right:28px}.project-card .project-photo>img{transition:transform 1s var(--ease)}
}
@media(prefers-reduced-motion:no-preference){
 .motion-capable .hero-line>span{animation:hero-line-in 1100ms var(--ease) both}.motion-capable .hero-line:nth-child(2)>span{animation-delay:100ms}.motion-capable .hero-description{animation:copy-in 800ms 250ms var(--ease) both}.motion-capable .hero-actions{animation:copy-in 800ms 330ms var(--ease) both}.motion-capable .hero-reassurance{animation:copy-in 700ms 390ms var(--ease) both}.motion-capable .header{animation:copy-in 800ms var(--ease) both}.motion-capable .hero-bottom{animation:copy-in 900ms 430ms var(--ease) both}
 [data-motion=words] .word-mask>span{transform:translateY(115%);opacity:0;transition:transform 850ms var(--ease),opacity 650ms var(--ease)}[data-motion=words].motion-in .word-mask>span{transform:translateY(0);opacity:1}
 [data-motion=image]{clip-path:inset(0 0 16% 0 round 8px);transform:translateY(28px);opacity:.35;transition:clip-path 1100ms var(--ease-scene),transform 1100ms var(--ease),opacity 800ms var(--ease)}[data-motion=image].motion-in{clip-path:inset(0 0 0 0 round 8px);transform:none;opacity:1}
 [data-motion=rise],[data-motion=gallery]{opacity:.12;transform:translateY(38px);transition:opacity 750ms var(--ease),transform 950ms var(--ease);transition-delay:var(--stagger,0ms)}[data-motion=rise].motion-in,[data-motion=gallery].motion-in{opacity:1;transform:none}
 .motion-capable .planner-step.entering{animation:none}.motion-capable .photo-change{animation:none}.button{transition:transform 160ms var(--ease),background 200ms ease}.button:active{transform:scale(.97)}
 @keyframes hero-line-in{from{transform:translateY(115%)}to{transform:translateY(0)}}@keyframes copy-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
 @supports(animation-timeline:view()){
  .detail-photo img{animation:detail-depth linear both;animation-timeline:view();animation-range:entry 0% exit 100%}.detail-photo{overflow:hidden}.room-main .photo-button{overflow:hidden}.room-main #room-image{animation:room-depth linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  @keyframes detail-depth{from{transform:scale(1.045) translateY(-1%)}to{transform:scale(1.045) translateY(1%)}}@keyframes room-depth{from{transform:scale(1.035)}to{transform:scale(1)}}
 }
}
@media(hover:hover) and (pointer:fine){.project-photo:hover>img{transform:scale(1.035)}.scene:hover img{transform:translateY(-3px)}.scene img{transition:transform 250ms var(--ease)}.save-button:hover{transform:translateY(-2px)}.save-button{transition:transform 180ms var(--ease),background 180ms ease}.button:hover>span{transform:translate(2px,-2px)}}
@media(hover:none),(pointer:coarse){.project-photo:hover>img,.photo-button:hover img,.gallery-photo:hover img,.button:hover>span{transform:none}}
@media(max-width:767px){.hero-line{white-space:normal}.hero h1{font-size:clamp(50px,15.4vw,68px)}.hero-depth .hero-backdrop img{object-position:59% center}.hero-depth{will-change:auto}[data-motion=image]{clip-path:none!important}.hero-depth .hero-backdrop img{image-rendering:auto}}
@media(prefers-reduced-motion:reduce){.hero-depth,.hero-content,.word-mask>span,[data-motion]{transform:none!important;opacity:1!important;clip-path:none!important}.hero-line>span{animation:none!important}.photo-curtain{display:none}.tab-glider{transition:none!important}.project-grid{display:grid}.hero-line{overflow:visible}.motion-capable .header,.motion-capable .hero-bottom{animation:none}}
