body{margin:0;background:#f6efdc}
a{color:#14120e}a:hover{color:#8a6a1f}
.grain{position:fixed;inset:0;pointer-events:none;z-index:200;background-image:url(../assets/img/noise.svg);background-size:160px 160px;opacity:.07;mix-blend-mode:multiply}
@keyframes up{from{transform:translateY(110%)}to{transform:none}}
@keyframes fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes cover-off{from{transform:scaleY(1)}to{transform:scaleY(0)}}
@keyframes img-in{from{transform:scale(1.25)}to{transform:scale(1)}}
@keyframes rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes run{to{transform:translateX(-50%)}}
@keyframes run-rev{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@keyframes lb-in{from{opacity:0}to{opacity:1}}
@keyframes lb-img{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes prog{to{transform:scaleX(1)}}
@keyframes par-hero{from{transform:translateY(40px)}to{transform:translateY(-60px)}}
@keyframes par-a{from{transform:translateY(70px)}to{transform:translateY(-70px)}}
@keyframes par-b{from{transform:translateY(-24px)}to{transform:translateY(24px)}}
@keyframes drift{from{transform:translateY(-4%)}to{transform:translateY(4%)}}
.mask{display:block;overflow:hidden;padding-bottom:.08em}
.ld{display:block;animation:up 1s cubic-bezier(.16,1,.3,1) both}
.ld-f{animation:fade-up .8s cubic-bezier(.16,1,.3,1) both}
.hcover{position:absolute;inset:0;transform-origin:top;animation:cover-off 1.1s cubic-bezier(.16,1,.3,1) both;will-change:transform}
.himg{display:block;width:100%;height:100%;object-fit:cover;animation:img-in 1.6s cubic-bezier(.16,1,.3,1) both}
.rule{transform-origin:left;animation:rule 1.1s cubic-bezier(.16,1,.3,1) .2s both}
.prog{transform-origin:left;transform:scaleX(0)}
.rv{opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
.hl .ln{display:block;transform:translateY(110%);transition:transform 1s cubic-bezier(.16,1,.3,1)}
.hl.in .ln{transform:none}
.hl .ln.l2{transition-delay:.08s}
.stg > *{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.stg.in > *{opacity:1;transform:none}
.stg.in > *:nth-child(2){transition-delay:.06s}.stg.in > *:nth-child(3){transition-delay:.12s}.stg.in > *:nth-child(4){transition-delay:.18s}.stg.in > *:nth-child(5){transition-delay:.24s}.stg.in > *:nth-child(6){transition-delay:.3s}.stg.in > *:nth-child(7){transition-delay:.36s}.stg.in > *:nth-child(8){transition-delay:.42s}
.tile{position:relative;margin:0;overflow:hidden;cursor:zoom-in;background:#1b1913}
.tile .cover{position:absolute;inset:0;transform-origin:top;transition:transform 1.1s cubic-bezier(.16,1,.3,1);z-index:2}
.tile.in .cover{transform:scaleY(0)}
.tile .zoom{width:100%;height:100%;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.tile:hover .zoom{transform:scale(1.05)}
.tile img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.25);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.tile.in img{transform:scale(1)}
.tile.d1 .cover,.tile.d1 img{transition-delay:.12s}
.tile.d2 .cover,.tile.d2 img{transition-delay:.24s}
.tile .cap{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:40px 18px 16px;background:linear-gradient(transparent,rgba(10,9,7,.82));transform:translateY(100%);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.tile:hover .cap{transform:none}
.tile .view{position:absolute;right:16px;top:16px;z-index:3;padding:7px 14px;border-radius:999px;background:#b8913a;color:#111010;font-size:13px;font-weight:600;opacity:0;transform:scale(.8);transition:opacity .35s,transform .45s cubic-bezier(.16,1,.3,1)}
.tile:hover .view{opacity:1;transform:none}
.marq{display:flex;width:max-content;animation:run 46s linear infinite;will-change:transform}
.marq-rev{animation:run-rev 52s linear infinite}
.marq-wrap:hover .marq{animation-play-state:paused}
.fade-edges{-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.btn{position:relative;overflow:hidden;isolation:isolate;transition:color .45s cubic-bezier(.625,.05,0,1)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:#b8913a;transform:scaleX(0);transform-origin:right;transition:transform .6s cubic-bezier(.625,.05,0,1)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn:hover{color:#111010!important}
.btn-g::before{background:#f6efdc}
.ul{background:linear-gradient(#b8913a,#b8913a) 0 100%/0 1.5px no-repeat;transition:background-size .3s cubic-bezier(.25,1,.5,1)}
.ul:hover{background-size:100% 1.5px}
.arr{display:inline-block;transition:transform .3s cubic-bezier(.25,1,.5,1)}
a:hover .arr,button:hover .arr{transform:translateX(4px)}
.nav{transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .4s}
.nav-hide{transform:translateY(-100%)}
.nav-sh{box-shadow:0 12px 30px -18px rgba(0,0,0,.6)}
.w0{opacity:.16}.w1{opacity:.32}.w2{opacity:.52}.w3{opacity:.76}.w4{opacity:1}
.word{transition:opacity .3s linear}
.svc{transition:opacity .35s cubic-bezier(.25,1,.5,1)}
.svc.dim{opacity:.4}
.acc{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s cubic-bezier(.16,1,.3,1)}
.svc.open .acc{grid-template-rows:1fr}
.svc .simg{opacity:0;transform:translateY(18px) scale(.98);transition:opacity .5s ease,transform .8s cubic-bezier(.16,1,.3,1)}
.svc.open .simg{opacity:1;transform:none;transition-delay:.12s}
.svc .simg img{transform:scale(1.12);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.svc.open .simg img{transform:none}
.svc .plus{transition:transform .5s cubic-bezier(.16,1,.3,1)}
.svc.open .plus{transform:rotate(45deg)}
.roll{transition:transform .8s cubic-bezier(.65,0,.35,1)}
.st-0{transform:translateY(0)}.st-1{transform:translateY(-25%)}.st-2{transform:translateY(-50%)}.st-3{transform:translateY(-75%)}
.step{transition:opacity .5s cubic-bezier(.25,1,.5,1)}
.step-off{opacity:.32}
.crow{transition:background .3s cubic-bezier(.25,1,.5,1),padding .4s cubic-bezier(.16,1,.3,1)}
.crow:hover{background:rgba(184,145,58,.12);padding-left:14px!important}
.wm span{display:inline-block;transform:translateY(100%);transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.wm.in span{transform:none}
.wm.in span:nth-child(2){transition-delay:.06s}.wm.in span:nth-child(3){transition-delay:.12s}
.lb{animation:lb-in .35s ease both}
.lb img{animation:lb-img .6s cubic-bezier(.16,1,.3,1) both}
.nav-links{display:flex}
.menu-btn{display:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:56px;align-items:end}
.proc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px}
.proc-sticky{position:sticky;top:120px}
.sp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.sp-img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;display:block}
@keyframes sp-par{from{transform:translateY(-5%)}to{transform:translateY(5%)}}
.house .dr{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s cubic-bezier(.65,0,.35,1)}
.house .dr:nth-child(2){transition-delay:.18s}.house .dr:nth-child(3){transition-delay:.36s}
.house .fd,.house .fl{opacity:0;transition:opacity .9s ease .3s}
.house.in .p1 .dr{stroke-dashoffset:0}.house.in .p1 .fd{opacity:.6}
.house.s-1 .p2 .dr,.house.s-2 .p2 .dr,.house.s-3 .p2 .dr{stroke-dashoffset:0}
.house.s-2 .p3 .dr,.house.s-3 .p3 .dr{stroke-dashoffset:0}
.house.s-3 .p4 .dr{stroke-dashoffset:0}.house.s-3 .p4 .fl{opacity:1}
.gal{display:flex;gap:18px;align-items:flex-start}
.gcol{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:18px}
@supports (animation-timeline: view()){
@media (prefers-reduced-motion: no-preference){
.prog{animation:prog linear both;animation-timeline:scroll(root)}
.par-hero{animation:par-hero linear both;animation-timeline:view();animation-range:cover}
.gc-a{animation:par-a linear both;animation-timeline:view();animation-range:cover}
.gc-b{animation:par-b linear both;animation-timeline:view();animation-range:cover}
.drift{animation:drift linear both;animation-timeline:view();animation-range:cover}
.sp-img{animation:sp-par linear both;animation-timeline:view();animation-range:cover}
}
}
@media (max-width:960px){
.nav-links{display:none}
.menu-btn{display:inline-flex}
.hero-grid,.proc{grid-template-columns:minmax(0,1fr);gap:40px}
.proc-sticky{position:static}
.proc-viz{display:none}
.hide-sm{display:none}
.gal{flex-wrap:wrap}
.gcol{flex:1 1 280px}
.gc-a,.gc-b{animation:none!important}
.sp-grid{grid-template-columns:minmax(0,1fr)}
.sp-grid{top:84px!important}
.sp-fig{min-height:220px!important}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation:none!important;transition:none!important}
.rv,.stg > *,.tile img,.hl .ln,.wm span{opacity:1!important;transform:none!important}
.tile .cover{transform:scaleY(0)!important}
}

[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media (max-width:600px){.brand-text{font-size:10.5px!important;letter-spacing:.03em!important}}
@media (max-width:370px){.brand-text{font-size:9.5px!important}}
@media (max-width:600px){.nav-inner{padding:0 16px!important;gap:10px!important}.brand-mark{height:34px!important}.menu-btn{padding:0 12px!important}}

/* hero fits on first screen */
@media (min-width:961px){.hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:center}.hero-h1 .mask{display:block}}
