/* Necipoğlu Ltd — site styles */
:root{
  --white:#FFFFFF;
  --stone:#E7E5E1;
  --mortar:#BDB8B0;
  --grey:#5C5C5C;
  --graphite:#262626;
  --ink:#1A1A1A;
  --oxblood:#8A2320;
  --oxblood-dark:#6E1B19;
  --serif:"Libre Caslon Display","Libre Caslon Text",Georgia,serif;
  --sans:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:clamp(16px,4vw,56px);
  --max:1440px;
  --ease:cubic-bezier(.22,.7,.15,1);
  --gable:polygon(50% 0,100% 30%,100% 100%,0 100%,0 30%);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--graphite);font:400 17px/1.6 var(--sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit}
button{font:inherit}
::selection{background:var(--oxblood);color:#fff}
:focus-visible{outline:2px solid var(--oxblood);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--graphite);color:#fff;padding:10px 14px;z-index:100}
.skip:focus{left:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Type scale (1.333) */
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;color:var(--ink);margin:0;line-height:1.04;letter-spacing:-.01em}
.d1{font-size:clamp(46px,8.4vw,132px);line-height:.96;letter-spacing:-.025em}
.d2{font-size:clamp(38px,5.6vw,88px);line-height:1}
.d3{font-size:clamp(30px,3.6vw,54px);line-height:1.06}
.d4{font-size:clamp(23px,2.1vw,30px);line-height:1.15}
.lede{font-size:clamp(19px,1.6vw,23px);line-height:1.5;color:var(--graphite);max-width:34em}
.small{font-size:14px;line-height:1.5;color:var(--grey)}
p{margin:0 0 1em;max-width:64ch}
.muted{color:var(--grey)}

/* Header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .4s var(--ease),transform .5s var(--ease),box-shadow .4s}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.hdr.solid{background:rgba(255,255,255,.96);box-shadow:0 1px 0 var(--stone);backdrop-filter:saturate(1.2) blur(10px)}
.hdr.hide{transform:translateY(-100%)}
.brand{display:flex;align-items:center;text-decoration:none}
.brand img{height:50px;width:auto}
.nav{display:flex;gap:30px;align-items:center}
.nav a{text-decoration:none;font-size:15px;font-weight:500;position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav a[aria-current="page"]{color:var(--oxblood)}
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 24px;border:1px solid var(--graphite);background:var(--graphite);color:#fff;text-decoration:none;font-weight:500;font-size:15px;position:relative;overflow:hidden;cursor:pointer;isolation:isolate;transition:color .45s var(--ease),border-color .45s}
.btn::before{content:"";position:absolute;inset:0;background:var(--oxblood);transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.btn:hover{border-color:var(--oxblood)}
.btn:hover::before{transform:none}
.btn.ghost{background:transparent;color:var(--graphite)}
.btn.ghost:hover{color:#fff}
.btn.light{background:#fff;color:var(--ink);border-color:#fff}
.btn.light:hover{color:#fff}
.btn svg{width:16px;height:16px;transition:transform .45s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.nav .btn{padding:11px 18px}
.nav .btn::after{display:none}
.menu-btn{display:none;width:46px;height:46px;border:0;background:transparent;cursor:pointer;position:relative}
.menu-btn span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--ink);transition:transform .45s var(--ease),opacity .3s}
.menu-btn span:nth-child(1){top:18px}.menu-btn span:nth-child(2){top:27px}
.menu-open .menu-btn span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){transform:translateY(-4.5px) rotate(-45deg)}
.drawer{position:fixed;inset:0;z-index:45;background:var(--white);padding:110px var(--gutter) 40px;display:flex;flex-direction:column;justify-content:space-between;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);visibility:hidden}
.menu-open .drawer{clip-path:inset(0);visibility:visible}
.drawer nav a{display:block;font-family:var(--serif);font-size:clamp(36px,9vw,58px);line-height:1.15;text-decoration:none;color:var(--ink);opacity:0;transform:translateY(24px);transition:opacity .5s,transform .6s var(--ease)}
.menu-open .drawer nav a{opacity:1;transform:none}
.drawer nav a[aria-current="page"]{color:var(--oxblood)}
.drawer .small a{color:var(--graphite)}

/* Page header (inner pages) */
.phead{padding:170px 0 64px;border-bottom:1px solid var(--stone)}
.phead .crumb{font-size:14px;color:var(--grey);margin-bottom:28px}
.phead .crumb a{text-decoration:none}
.phead .crumb a:hover{color:var(--oxblood)}
.phead-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:end}

/* Sections */
section{position:relative}
.sec{padding:clamp(80px,11vw,160px) 0}
.sec.tight{padding:clamp(56px,7vw,100px) 0}
.stone{background:var(--stone)}
.dark{background:var(--ink);color:#D9D7D3}
.dark h1,.dark h2,.dark h3{color:#fff}
.dark .muted,.dark .small{color:#9C9892}
.split{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px);align-items:start}
.rule{border:0;border-top:1px solid var(--mortar);margin:0}
.kicker{font-size:15px;color:var(--oxblood);font-weight:500;margin-bottom:22px;display:flex;align-items:center;gap:12px}
.kicker::before{content:"";width:22px;height:1px;background:currentColor}
.link{color:var(--ink);text-decoration:none;font-weight:500;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .45s var(--ease),color .3s;padding-bottom:2px}
.link:hover{color:var(--oxblood);background-size:0 1px;background-position:100% 100%}

/* Gable mask — the house form from the logo */
.gable{clip-path:var(--gable)}

/* Hero */
.hero{min-height:100svh;padding:118px 0 48px;display:flex;align-items:stretch;overflow:clip}
.hero .wrap{width:100%;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(24px,4vw,72px);align-items:end}
.hero-copy{padding-bottom:8px;display:flex;flex-direction:column;gap:38px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hero-house{position:relative;justify-self:end;margin-top:9%;width:min(100%,calc(min(80svh,840px) * .62));aspect-ratio:.62}
.hero-house .outline{position:absolute;left:-9%;top:-9%;width:118%;height:109%;overflow:visible;pointer-events:none}
.hero-house .outline{clip-path:inset(100% 0 0 0);transition:clip-path 2s .25s var(--ease)}
.loaded .hero-house .outline{clip-path:inset(-2% -2% -2% -2%)}
.hero-house .outline path{fill:none;stroke:var(--grey);stroke-width:1.2;vector-effect:non-scaling-stroke}
.hero-house .outline .chim{fill:var(--oxblood);stroke:none;opacity:0;transition:opacity .8s 1.6s}
.loaded .hero-house .outline .chim{opacity:1}
.hero-house .frame{position:absolute;inset:0;overflow:hidden;background:var(--stone);clip-path:polygon(50% 0,100% var(--eave,26%),100% 100%,0 100%,0 var(--eave,26%));transform:scale(var(--hs,1));transform-origin:50% 100%}
.hero-house .frame video,.hero-house .frame img{width:100%;height:100%;object-fit:cover}
.hero-house figcaption{position:absolute;right:0;bottom:-34px;font-size:13px;color:var(--grey)}
.hero h1{line-height:.92}
.hero h1 .ln{display:block;overflow:hidden;padding:.02em 0 .14em;margin-bottom:-.12em}
.hero h1 .ln>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
.loaded .hero h1 .ln>span{transform:none}
.hero h1 .ln:nth-child(2)>span{transition-delay:.12s}
.hero h1 .ln:nth-child(3)>span{transition-delay:.24s}
.hero-meta{opacity:0;transform:translateY(16px);transition:opacity .9s .55s,transform .9s .55s var(--ease)}
.loaded .hero-meta{opacity:1;transform:none}
.scrollcue{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--grey)}
.scrollcue i{width:1px;height:36px;background:var(--mortar);position:relative;overflow:hidden}
.scrollcue i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--oxblood);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{to{top:100%}}

/* Facts */
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--mortar)}
.fact{padding:28px 24px 8px 0}
.fact+.fact{padding-left:24px;border-left:1px solid var(--mortar)}
.fact b{display:block;font:400 clamp(40px,4.6vw,68px)/1 var(--serif);color:var(--ink);margin-bottom:10px}

/* Product index */
.pindex{list-style:none;margin:0;padding:0;border-top:1px solid var(--mortar)}
.pindex li{border-bottom:1px solid var(--mortar)}
.pindex a{display:grid;grid-template-columns:70px 1fr 1.1fr 40px;align-items:center;gap:24px;padding:26px 0;text-decoration:none;position:relative;transition:padding .5s var(--ease),color .3s}
.pindex .no{font-size:14px;color:var(--grey);font-variant-numeric:tabular-nums}
.pindex .nm{font:400 clamp(28px,3.4vw,50px)/1.05 var(--serif);color:var(--ink);transition:color .3s,transform .6s var(--ease)}
.pindex .ds{color:var(--grey);font-size:15px;max-width:42ch}
.pindex .ar{justify-self:end;width:40px;height:40px;border:1px solid var(--mortar);border-radius:50%;display:grid;place-items:center;transition:background .4s,border-color .4s,transform .5s var(--ease)}
.pindex .ar svg{width:15px;height:15px}
.pindex a:hover .nm{color:var(--oxblood);transform:translateX(12px)}
.pindex a:hover .ar{background:var(--oxblood);border-color:var(--oxblood);color:#fff;transform:rotate(-45deg)}
.pindex .th{display:none}
.peek{position:fixed;left:0;top:0;width:300px;aspect-ratio:4/5;pointer-events:none;z-index:40;clip-path:var(--gable);opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .35s,transform .5s var(--ease);background:var(--stone)}
.peek.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.peek img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity .35s}
.peek img.on{opacity:1}

/* Feature (editorial split) */
.feature{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px);align-items:center}
.feature .media{grid-column:1/8;position:relative}
.feature .copy{grid-column:8/13}
.feature.rev .media{grid-column:6/13;order:2}
.feature.rev .copy{grid-column:1/6}
.slides{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1.1s var(--ease),transform 6s linear}
.slides img.on{opacity:1;transform:scale(1)}
.slide-ctl{display:flex;align-items:center;gap:18px;margin-top:18px}
.slide-ctl button{width:44px;height:44px;border:1px solid var(--mortar);background:transparent;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:background .3s,border-color .3s,color .3s}
.slide-ctl button:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.slide-ctl svg{width:15px;height:15px}
.slide-ctl .cnt{font-size:14px;color:var(--grey);font-variant-numeric:tabular-nums;min-width:52px}
.slide-ctl .bar{flex:1;height:1px;background:var(--mortar);position:relative}
.slide-ctl .bar i{position:absolute;left:0;top:0;height:1px;background:var(--oxblood);width:0}
.inset{position:absolute;right:-6%;bottom:-8%;width:40%;aspect-ratio:4/5;clip-path:var(--gable);overflow:hidden;box-shadow:0 0 0 10px var(--white)}
.stone .inset{box-shadow:none}
.inset img{width:100%;height:100%;object-fit:cover}
.feature ul.specs{list-style:none;padding:0;margin:26px 0 34px;border-top:1px solid var(--mortar)}
.feature ul.specs li{padding:14px 0;border-bottom:1px solid var(--mortar);display:flex;justify-content:space-between;gap:16px;font-size:15px}
.feature ul.specs li span:first-child{flex:none}
.feature ul.specs li span:last-child{color:var(--grey);text-align:right;min-width:0}

/* Reel strip */
.reels{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,22vw,320px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gutter) 24px;scrollbar-width:thin;scrollbar-color:var(--grey) transparent}
.reel{scroll-snap-align:start;position:relative;aspect-ratio:9/16;background:#000;overflow:hidden;cursor:pointer;border:0;padding:0;color:#fff;text-align:left}
.reel video{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),opacity .4s}
.reel:hover video{transform:scale(1.04)}
.reel .rc{position:absolute;left:0;right:0;bottom:0;padding:18px;background:linear-gradient(transparent,rgba(0,0,0,.72));font-size:14px;line-height:1.4}
.reel .rc b{display:block;font:400 21px/1.15 var(--serif);margin-bottom:4px}
.reel .pl{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);display:grid;place-items:center}
.reel .pl svg{width:14px;height:14px}
.reel.playing .pl{opacity:0}
.reel-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px}
.reel-nav{display:flex;gap:10px}
.reel-nav button{width:48px;height:48px;border-radius:50%;border:1px solid #4a4a4a;background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .3s,border-color .3s}
.reel-nav button:hover{background:var(--oxblood);border-color:var(--oxblood)}
.reel-nav svg{width:16px;height:16px}

/* Brands */
.marq{overflow:hidden;border-top:1px solid var(--mortar);border-bottom:1px solid var(--mortar);padding:30px 0}
.marq-track{display:flex;gap:64px;width:max-content;animation:marq 48s linear infinite}
.marq:hover .marq-track{animation-play-state:paused}
.marq span{font:400 clamp(30px,3.4vw,52px)/1 var(--serif);color:var(--ink);white-space:nowrap;display:flex;align-items:center;gap:64px}
.marq span::after{content:"";width:14px;height:12px;background:var(--oxblood);clip-path:var(--gable)}
@keyframes marq{to{transform:translateX(-50%)}}
.brand-table{width:100%;border-collapse:collapse}
.brand-table th,.brand-table td{text-align:left;padding:22px 16px 22px 0;border-bottom:1px solid var(--mortar);vertical-align:top}
.brand-table th{font-size:14px;font-weight:500;color:var(--grey)}
.brand-table td:first-child{font:400 clamp(26px,2.6vw,38px)/1.1 var(--serif);color:var(--ink);width:34%}
.brand-table td a{white-space:nowrap}
.brand-table tr{transition:background .3s}
.brand-table tbody tr:hover{background:rgba(231,229,225,.5)}

/* Gallery */
.gal{columns:4 260px;column-gap:14px}
.gal figure{margin:0 0 14px;break-inside:avoid;position:relative;overflow:hidden;cursor:zoom-in;background:var(--stone)}
.gal img,.gal video{width:100%;transition:transform 1s var(--ease)}
.gal figure:hover img,.gal figure:hover video{transform:scale(1.04)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px;color:#fff;font-size:14px;line-height:1.4;background:linear-gradient(transparent,rgba(0,0,0,.7));opacity:0;transform:translateY(8px);transition:opacity .4s,transform .5s var(--ease)}
.gal figure:hover figcaption,.gal figure:focus-visible figcaption{opacity:1;transform:none}
.gal .vb{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.4);display:grid;place-items:center;color:#fff}
.gal .vb svg{width:12px;height:12px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.filters button{border:1px solid var(--mortar);background:transparent;padding:10px 18px;border-radius:999px;cursor:pointer;font-size:15px;transition:background .3s,color .3s,border-color .3s}
.filters button[aria-pressed="true"],.filters button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.lb{position:fixed;inset:0;z-index:90;background:rgba(18,18,18,.96);display:grid;grid-template-columns:64px 1fr 64px;align-items:center;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.lb.on{opacity:1;visibility:visible}
.lb .lb-media{height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0 24px;gap:16px}
.lb .lb-media img,.lb .lb-media video{max-height:calc(100svh - 150px);max-width:100%;width:auto;object-fit:contain}
.lb .lb-cap{color:#cfccc7;font-size:15px;max-width:60ch;text-align:center;padding:0 12px}
.lb button{background:transparent;border:0;color:#fff;cursor:pointer;width:56px;height:56px;display:grid;place-items:center}
.lb button svg{width:22px;height:22px}
.lb .lb-x{position:absolute;top:12px;right:12px}

/* Instagram grid */
.ig{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.ig a{display:block;aspect-ratio:4/5;overflow:hidden;position:relative;background:var(--stone)}
.ig img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .5s}
.ig a:hover img{transform:scale(1.06);filter:brightness(.8)}

/* Product group pages */
.group{padding:clamp(70px,9vw,130px) 0;border-top:1px solid var(--mortar);scroll-margin-top:90px}
.group-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px)}
.group-head{grid-column:1/6;position:sticky;top:110px;align-self:start}
.group-body{grid-column:7/13}
.group .num{font-size:14px;color:var(--grey);margin-bottom:18px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none}
.tags li{border:1px solid var(--mortar);padding:8px 14px;border-radius:999px;font-size:14px}
.group-media{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}
.group-media figure{margin:0;overflow:hidden;background:var(--stone)}
.group-media figure:first-child{grid-column:1/-1;aspect-ratio:16/11}
.group-media figure:not(:first-child){aspect-ratio:4/5}
.group-media img,.group-media video{width:100%;height:100%;object-fit:cover}
.toc{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:40px}
.toc a{text-decoration:none;font-size:15px;color:var(--grey)}
.toc a:hover{color:var(--oxblood)}
.brands-in{margin-top:26px;font-size:15px}
.brands-in b{font-weight:500}

/* About */
.values{list-style:none;margin:0;padding:0;border-top:1px solid #3c3c3c}
.values li{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;padding:26px 0;border-bottom:1px solid #3c3c3c}
.values li h3{font-size:clamp(24px,2.3vw,34px);color:#fff}
.timeline{list-style:none;margin:0;padding:0;border-left:1px solid var(--mortar)}
.timeline li{padding:0 0 42px 34px;position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:13px;height:11px;background:var(--oxblood);clip-path:var(--gable)}
.timeline b{font:400 34px/1 var(--serif);color:var(--ink);display:block;margin-bottom:10px}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,48px)}
.mv article{border-top:1px solid var(--graphite);padding-top:26px}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(30px,5vw,90px)}
.dl{margin:0;border-top:1px solid var(--mortar)}
.dl div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--mortar)}
.dl dt{color:var(--grey);font-size:15px}
.dl dd{margin:0}
.dl dd a{text-decoration:none}
.dl dd a:hover{color:var(--oxblood)}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:22px;position:relative}
.field label{display:block;font-size:14px;color:var(--grey);margin-bottom:8px}
.field input,.field textarea,.field select{width:100%;border:0;border-bottom:1px solid var(--mortar);background:transparent;padding:10px 0 12px;font:inherit;color:var(--ink);border-radius:0;transition:border-color .3s}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:var(--ink)}
.field .err{display:none;color:var(--oxblood);font-size:14px;margin-top:6px}
.field.bad input,.field.bad textarea{border-color:var(--oxblood)}
.field.bad .err{display:block}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--grey);margin-bottom:26px}
.check input{margin-top:4px;accent-color:var(--oxblood);width:16px;height:16px}
.form-msg{margin-top:20px;padding:16px 18px;border-left:2px solid var(--oxblood);background:var(--stone);display:none}
.form-msg.on{display:block}
.map{aspect-ratio:16/8;border:0;width:100%;filter:grayscale(1) contrast(1.05);display:block}
.hp{position:absolute;left:-9999px}

/* CTA band */
.cta-band{position:relative;overflow:hidden;color:#fff;min-height:70vh;display:flex;align-items:flex-end}
.cta-band>img,.cta-band>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta-band::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.65));z-index:1}
.cta-band .wrap{position:relative;z-index:2;width:100%;padding-bottom:clamp(50px,7vw,100px);display:flex;justify-content:space-between;align-items:end;gap:40px;flex-wrap:wrap}
.cta-band h2{color:#fff;max-width:13em}

/* Footer */
.ftr{background:var(--ink);color:#B9B6B0;padding:90px 0 36px;font-size:15px}
.ftr a{text-decoration:none;color:#E7E5E1}
.ftr a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.ftr-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:60px;border-bottom:1px solid #353535}
.ftr-logo{background:#fff;padding:16px 20px;display:inline-block;margin-bottom:24px}
.ftr-logo img{height:64px;width:auto}
.ftr h3{font:500 15px/1.4 var(--sans);color:#fff;margin-bottom:16px}
.ftr ul{list-style:none;padding:0;margin:0}
.ftr li{margin-bottom:9px}
.ftr-bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:28px;font-size:14px;color:#8f8b85}
.social{display:flex;gap:10px;margin-top:20px}
.social a{width:42px;height:42px;border:1px solid #444;border-radius:50%;display:grid;place-items:center;transition:background .3s,border-color .3s}
.social a:hover{background:var(--oxblood);border-color:var(--oxblood)}
.social svg{width:17px;height:17px;fill:#fff}
.ftr-word{font:400 clamp(60px,15.5vw,250px)/.8 var(--serif);color:#2c2c2c;letter-spacing:.06em;margin:60px 0 0;white-space:nowrap;overflow:hidden;user-select:none}

/* Reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-img{clip-path:inset(12% 0 0 0);transition:clip-path 1.4s var(--ease)}
.rv-img.in{clip-path:inset(0)}
.rv-img img,.rv-img video{transform:scale(1.12);transition:transform 1.8s var(--ease)}
.rv-img.in img,.rv-img.in video{transform:scale(1)}
.par{will-change:transform}

/* Page transition */
.curtain{position:fixed;inset:0;z-index:200;background:var(--ink);pointer-events:none;transform:translateY(0);transition:transform .8s var(--ease)}
.curtain svg{position:absolute;left:50%;top:50%;width:64px;transform:translate(-50%,-50%);opacity:.9}
.loaded .curtain{transform:translateY(-100%)}
.leaving .curtain{transform:translateY(0);transition-duration:.55s}
.loaded:not(.leaving) .curtain{transition-delay:.05s}

/* Responsive */
@media (max-width:1100px){
  .nav{display:none}
  .menu-btn{display:block}
  .ftr-top{grid-template-columns:1fr 1fr}
  .ig{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:900px){
  .hero{padding-bottom:70px}
  .hero .wrap{grid-template-columns:1fr;gap:56px}
  .hero-house{justify-self:center;width:min(78vw,calc(66svh * .62))}
  .facts{grid-template-columns:1fr 1fr}
  .fact:nth-child(3){padding-left:0;border-left:0}
  .fact:nth-child(n+3){border-top:1px solid var(--mortar)}
  .feature .media,.feature .copy,.feature.rev .media,.feature.rev .copy{grid-column:1/-1;order:initial}
  .inset{right:12px;width:38%}
  .pindex a{grid-template-columns:44px 1fr 32px;gap:16px}
  .pindex .ds{grid-column:2/3;grid-row:2}
  .pindex .ar{grid-row:1/3;grid-column:3;width:32px;height:32px}
  .pindex .th{display:block;grid-column:1/-1;aspect-ratio:16/9;overflow:hidden;margin-top:8px}
  .pindex .th img{width:100%;height:100%;object-fit:cover}
  .peek{display:none}
  .group-head,.group-body{grid-column:1/-1;position:static}
  .contact-grid,.phead-grid,.mv{grid-template-columns:1fr}
  .values li{grid-template-columns:1fr;gap:8px}
  .split>*{grid-column:1/-1 !important}
  .brand-table thead{display:none}
  .brand-table tr{display:grid;grid-template-columns:1fr;padding:18px 0;border-bottom:1px solid var(--mortar)}
  .brand-table td{border:0;padding:4px 0;width:auto !important}
}
@media (max-width:640px){
  body{font-size:16px}
  .hdr .wrap{height:70px}
  .brand img{height:40px}
  .hero{padding-top:100px}
  .ig{grid-template-columns:repeat(3,1fr);gap:4px}
  form .row{grid-template-columns:1fr}
  .dl div{grid-template-columns:1fr;gap:4px}
  .ftr-top{grid-template-columns:1fr}
  .lb{grid-template-columns:44px 1fr 44px}
  .lb button{width:44px;height:44px}
  .reel-nav{display:none}
  .phead{padding:130px 0 44px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition-duration:.01ms !important;transition-delay:0s !important;scroll-behavior:auto !important}
  .rv{opacity:1;transform:none}
  .rv-img{clip-path:none}
  .hero h1 .ln>span{transform:none}
  .hero-meta{opacity:1;transform:none}
}
.check.bad{color:var(--oxblood)}

/* ===== v2: motion & new sections ===== */
html.lenis,html.lenis body{height:auto}
html.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}

/* scroll progress */
.progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--oxblood);transform-origin:0 50%;transform:scaleX(0);z-index:60;pointer-events:none}

/* preloader (first visit per session) */
.loader{position:fixed;inset:0;z-index:300;background:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;clip-path:inset(0 0 0 0);transition:clip-path 1.05s var(--ease)}
.loader.done{clip-path:inset(0 0 100% 0)}
.loader svg{width:min(120px,28vw);overflow:visible}
.loader .o{fill:none;stroke:var(--grey);stroke-width:7;stroke-linejoin:miter;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.2s var(--ease) forwards}
.loader .i{fill:none;stroke:var(--oxblood);stroke-width:10;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1s .5s var(--ease) forwards}
.loader .c{fill:var(--oxblood);opacity:0;animation:fadein .45s 1.15s forwards}
.loader .w{font:400 14px/1 var(--serif);letter-spacing:.5em;margin-right:-.5em;color:var(--grey);opacity:0;animation:fadein .7s .8s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:1}}
.seen .loader{display:none}
html:not(.seen) .curtain{display:none}

/* word-by-word heading reveal */
.sw-words .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.04em 0 .12em;margin:-.04em 0 -.12em}
.sw-words .w>span{display:inline-block;transform:translateY(112%);transition:transform 1.05s var(--ease);transition-delay:calc(var(--i) * 55ms)}
.sw-words.in .w>span{transform:none}

/* images rise out of a house shape */
.rv-img{clip-path:polygon(50% 62%,100% 80%,100% 100%,0 100%,0 80%);transition:clip-path 1.5s var(--ease)}
.rv-img.in{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 0)}
.rv-gable{clip-path:polygon(50% 62%,100% 80%,100% 100%,0 100%,0 80%);transition:clip-path 1.5s var(--ease)}
.rv-gable.in{clip-path:polygon(50% 0,100% 30%,100% 100%,0 100%,0 30%)}
.rv-gable img{transform:scale(1.12);transition:transform 1.8s var(--ease)}
.rv-gable.in img{transform:scale(1)}

/* shop by room */
.rooms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}
.room{display:block;text-decoration:none;color:var(--ink)}
.room:nth-child(even){margin-top:72px}
.room .ph{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--stone)}
.room .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease)}
.room:hover .ph img{transform:scale(1.07)}
.room .ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--oxblood);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s var(--ease)}
.room:hover .ph::after,.room:focus-visible .ph::after{transform:scaleX(1)}
.room-name{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:18px;font:400 clamp(26px,2.4vw,36px)/1.08 var(--serif)}
.room-name svg{width:18px;height:18px;flex:none;transition:transform .5s var(--ease)}
.room:hover .room-name svg{transform:translateX(6px)}
.room p{color:var(--grey);font-size:15px;margin:8px 0 0}

/* finish picker */
.finish{background:var(--fin-bg,#E7E5E1);transition:background-color 1.1s var(--ease)}
.finish-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,110px);align-items:center}
.finish-stage{position:relative;aspect-ratio:4/5;max-width:560px;width:100%;justify-self:end;clip-path:polygon(50% 0,100% 22%,100% 100%,0 100%,0 22%);overflow:hidden;background:#d9d4cd}
.finish-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:circle(0% at var(--fx,50%) var(--fy,58%));transition:clip-path 1.15s var(--ease);z-index:1}
.finish-stage img.base{clip-path:circle(150% at 50% 50%);z-index:0;transition:none}
.finish-stage img.on{clip-path:circle(150% at var(--fx,50%) var(--fy,58%));z-index:2}
.fname{display:block;height:1.06em;overflow:hidden;font:400 clamp(46px,6.4vw,104px)/1.06 var(--serif);color:var(--ink);margin:10px 0 0}
.fname span{display:block;transition:transform .9s var(--ease)}
.swatches{display:flex;flex-wrap:wrap;gap:10px;margin:34px 0 30px}
.swb{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(38,38,38,.25);background:transparent;border-radius:999px;padding:7px 16px 7px 7px;cursor:pointer;font-size:15px;color:var(--ink);transition:border-color .3s,background .3s,transform .3s}
.swb i{width:30px;height:30px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.14),inset -7px -7px 12px rgba(0,0,0,.2),inset 5px 5px 9px rgba(255,255,255,.55)}
.swb:hover{border-color:var(--ink)}
.swb[aria-pressed="true"]{border-color:var(--ink);background:rgba(255,255,255,.55)}

/* custom cursor */
.cur{position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--oxblood);color:#fff;pointer-events:none;z-index:250;display:grid;place-items:center;font:500 13px/1 var(--sans);opacity:0;transition:width .4s var(--ease),height .4s var(--ease),margin .4s var(--ease),background-color .3s,opacity .3s}
.cur.on{opacity:1}
.cur span{opacity:0;transform:scale(.6);transition:opacity .25s,transform .35s var(--ease);white-space:nowrap}
.cur.big{width:88px;height:88px;margin:-44px 0 0 -44px}
.cur.big span{opacity:1;transform:none}
.cur.lnk{width:42px;height:42px;margin:-21px 0 0 -21px;background:rgba(138,35,32,.16)}
@media (hover:none),(pointer:coarse){.cur{display:none}}

/* marquee driven by JS */
.marq.js .marq-track{animation:none}

/* staggered grids */
.stagger>*{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--i,0) * 60ms)}
.stagger.in>*{opacity:1;transform:none}

/* hero mouse parallax */
.hero-house{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.hero-house .outline{transition:clip-path 2s .25s var(--ease),transform 1.2s cubic-bezier(.2,.7,.2,1)}

@media (max-width:1100px){.rooms{grid-template-columns:repeat(2,minmax(0,1fr))}.room:nth-child(even){margin-top:48px}}
@media (max-width:900px){.finish-grid{grid-template-columns:1fr}.finish-stage{justify-self:center}}
@media (max-width:640px){
  .rooms{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:76%;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter) 10px;scrollbar-width:none}
  .rooms::-webkit-scrollbar{display:none}
  .room{scroll-snap-align:start}
  .room:nth-child(even){margin-top:0}
}
@media (prefers-reduced-motion:reduce){
  .rv-img,.rv-gable{clip-path:none!important}
  .rv-gable{clip-path:var(--gable)!important}
  .sw-words .w>span{transform:none}
  .stagger>*{opacity:1;transform:none}
  .loader{display:none}
  .cur{display:none}
}
.reel-head{flex-wrap:wrap}
@media (max-width:640px){.rooms{scroll-padding-left:var(--gutter);scroll-padding-right:var(--gutter)}.rooms::after{content:"";width:1px}.reel-head{margin-bottom:28px}}
