:root{--ink:#0f1720;--navy:#1D2A3A;--navy2:#141e2a;--gold:#C5A059;--gold2:#e0c58f;--alab:#F5F2EB;--muted:#8a929c;--line:rgba(245,242,235,.12)}
*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:hidden}
body{font-family:Inter,system-ui,sans-serif;background:var(--ink);color:var(--alab);line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}a{color:inherit}
.wrap{max-width:1320px;margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;line-height:1.02;letter-spacing:-.01em}
h2{font-size:clamp(42px,6vw,88px);margin:16px 0 22px}
h2 em,h1 em{font-style:italic;color:var(--gold)}
.eyebrow{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:600}
.lead{font-size:18px;color:rgba(245,242,235,.66);max-width:600px;font-weight:300}
.btn{display:inline-block;padding:17px 32px;background:var(--gold);color:var(--ink);text-decoration:none;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;border:0;cursor:pointer;transition:background .25s,transform .25s}
.btn:hover{background:var(--gold2);transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--alab);border:1px solid rgba(245,242,235,.45)}.btn.ghost:hover{border-color:var(--gold);color:var(--gold)}
.tlink{color:var(--gold);text-decoration:none;font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;border-bottom:1px solid rgba(197,160,89,.4);padding-bottom:4px}
.tlink:hover{border-color:var(--gold)}
/* header */
.hd{position:fixed;inset:0 0 auto;z-index:30;transition:background .35s,backdrop-filter .35s}
.hd.solid{background:rgba(15,23,32,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(197,160,89,.2)}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px}
.logo{text-decoration:none;color:var(--alab);display:inline-flex;flex-direction:column;align-items:center;line-height:1}
.logo b{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:30px;letter-spacing:.22em}
.logo span{font-size:11px;letter-spacing:.55em;color:var(--gold);margin-top:6px;padding-top:6px;border-top:1px solid var(--gold);align-self:stretch;text-align:center;padding-left:.55em}
.links{display:flex;gap:34px;align-items:center}
.links a{text-decoration:none;font-size:12px;letter-spacing:.18em;text-transform:uppercase;opacity:.85}
.links a:hover{opacity:1;color:var(--gold)}.links .btn{opacity:1;padding:13px 22px;color:var(--ink)}.links .btn:hover{color:var(--ink)}
.burger{display:none;background:none;border:0;color:var(--alab);font-size:26px;cursor:pointer}
/* hero */
.hero{height:100vh;height:100svh;min-height:720px;padding-top:120px;box-sizing:border-box;position:relative;overflow:hidden;display:flex;align-items:flex-end}
.slides,.sl{position:absolute;inset:0}
.sl{opacity:0;transition:opacity 1.6s ease}
.sl.on{opacity:1}
.sl img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.sl.on img{animation:kb 9s ease-out forwards}
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.16)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,32,.86) 0%,rgba(15,23,32,.45) 50%,rgba(15,23,32,.1) 100%),linear-gradient(0deg,rgba(15,23,32,.9),transparent 45%)}
.hcontent{position:relative;z-index:2;padding-bottom:12vh;width:100%}
.hero h1{font-size:clamp(52px,min(9vw,13vh),140px);margin:20px 0 24px}
.hero p{font-size:19px;max-width:540px;color:rgba(245,242,235,.8);font-weight:300;margin-bottom:38px}
.ctas{display:flex;gap:14px;flex-wrap:wrap}
.hnow{position:absolute;z-index:3;right:28px;bottom:14vh;text-align:right;text-decoration:none;max-width:280px}
.hnow small{display:block;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.hnow span{font-family:"Cormorant Garamond",serif;font-size:26px;font-style:italic}
.hdots{position:absolute;z-index:3;right:28px;bottom:calc(14vh - 36px);display:flex;gap:8px}
.hdots i{width:26px;height:2px;background:rgba(245,242,235,.3);transition:background .4s}.hdots i.on{background:var(--gold)}
/* stats */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink)}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr)}
.sgrid>div{padding:38px 26px;border-left:1px solid var(--line)}.sgrid>div:first-child{border-left:0}
.sgrid b{display:block;font-family:"Cormorant Garamond",serif;font-weight:500;font-size:64px;line-height:1;color:var(--gold)}
.sgrid span{font-size:13px;color:var(--muted);letter-spacing:.04em}
/* marquee */
.marq{overflow:hidden;padding:34px 0;background:var(--navy2);white-space:nowrap}
.mtrack{display:inline-block;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:clamp(34px,4.6vw,64px);color:rgba(245,242,235,.16);animation:mq 60s linear infinite}
@keyframes mq{to{transform:translateX(-50%)}}
section{padding:130px 0}
/* featured */
.featured{background:var(--ink)}
.feat{display:grid;grid-template-columns:1.35fr 1fr;gap:70px;align-items:center;margin-top:110px}
.feat:nth-of-type(even){grid-template-columns:1fr 1.35fr}.feat:nth-of-type(even) .fpair{order:2}
.fpair{position:relative;height:640px}
.fpair figure{position:absolute;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.45)}
.fpair img{width:100%;height:100%;object-fit:cover}
.fcad{left:0;top:0;width:52%;height:62%;background:#fff;z-index:1}.fcad img{object-fit:contain;padding:10px}
.ffin{right:0;bottom:0;width:62%;height:88%;z-index:2}
.fpair figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--gold);font-size:10px;letter-spacing:.3em;text-transform:uppercase;padding:9px 14px;font-weight:600}
.feat:nth-of-type(even) .fcad{left:auto;right:0}.feat:nth-of-type(even) .ffin{right:auto;left:0}
.ftext h3{font-size:clamp(38px,4vw,60px);margin:14px 0 18px}.ftext p{color:rgba(245,242,235,.7);font-size:17px;font-weight:300;margin-bottom:28px;max-width:460px}
/* before/after */
.ba{background:var(--navy)}
.bagrid{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:center}
.bagrid .lead{margin-bottom:28px}
.cmp{position:relative;aspect-ratio:4/5;overflow:hidden;user-select:none;box-shadow:0 40px 90px rgba(0,0,0,.4)}
.cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cmp .cb{clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.cmp .handle{position:absolute;top:0;bottom:0;left:var(--p);width:2px;background:var(--gold);transform:translateX(-1px);pointer-events:none}
.cmp .handle::after{content:"‹ ›";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:var(--gold);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;letter-spacing:4px}
.cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.lbl{position:absolute;top:18px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;background:rgba(15,23,32,.75);padding:7px 12px;font-weight:600;pointer-events:none}
.lbl.l{left:18px}.lbl.r{right:18px;color:var(--gold)}
/* portfolio */
.work{background:var(--alab);color:var(--ink)}
.work .lead{color:#5d6670}.work h2 em{color:#a8823e}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:44px 0 40px}
.filters button{background:none;border:1px solid rgba(15,23,32,.2);color:var(--ink);padding:10px 20px;font:500 11px Inter,sans-serif;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:all .2s}
.filters button.on,.filters button:hover{background:var(--ink);color:var(--alab);border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px 26px}
.pc{text-decoration:none;color:var(--ink);display:block}
.pc.hide{display:none}
.pcimg{position:relative;aspect-ratio:4/5;overflow:hidden;background:#ddd8cd}
.pcimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),opacity .6s}
.pcimg .cadimg{object-fit:contain;background:#fff;opacity:0;padding:18px}
@media (hover:hover){.pc:hover .pcimg img{transform:scale(1.05)}.pc:hover .pcimg .cadimg{opacity:1;transform:none}.pc:hover .drawn{opacity:1}}
.drawn{position:absolute;left:14px;top:14px;background:var(--ink);color:var(--gold);font-size:10px;letter-spacing:.26em;text-transform:uppercase;padding:7px 11px;font-weight:600;opacity:0;transition:opacity .4s}

.pcmeta{padding-top:18px}
.pcmeta small{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#a8823e;font-weight:600}
.pcmeta h3{font-size:31px;margin:6px 0 4px}
.pcmeta span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#7b838c}
.pgrid .pc:nth-child(3n+2){margin-top:70px}
/* services */
.svcs{background:var(--ink)}
.sv{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:60px;border-top:1px solid var(--line)}
.sv>div{padding:34px 26px 40px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .3s}
.sv>div:nth-child(4n){border-right:0}.sv>div:hover{background:var(--navy2)}
.sv span{font-family:"Cormorant Garamond",serif;color:var(--gold);font-size:20px}
.sv h3{font-size:30px;margin:12px 0 10px}.sv p{color:var(--muted);font-size:15px}
/* process */
.proc{background:var(--navy)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;margin-top:64px}
.steps>div{border-top:1px solid var(--gold);padding-top:26px}
.steps b{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:72px;color:var(--gold);line-height:1}
.steps h3{font-size:36px;margin:12px 0 10px}.steps p{color:rgba(245,242,235,.65)}
/* contact */
.contact{background:var(--ink)}
.cgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px}
.mail{display:inline-block;font-family:"Cormorant Garamond",serif;font-size:32px;color:var(--gold);text-decoration:none;margin:20px 0 12px;overflow-wrap:anywhere}
.note{font-size:13px;color:var(--muted)}
form{display:grid;gap:16px}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
input,select,textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(245,242,235,.25);color:var(--alab);padding:12px 2px;font:16px Inter,sans-serif;border-radius:0}
select option{color:var(--ink)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold)}
textarea{min-height:120px;resize:vertical}
/* footer */
footer{background:#0a1018;padding:80px 0 30px;font-size:14px;color:var(--muted)}
.fgrid{display:grid;grid-template-columns:2fr 1.2fr 1fr;gap:50px}
footer h4{font:600 10px Inter,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
footer a{text-decoration:none;line-height:2}footer a:hover{color:var(--gold)}footer p{margin-top:22px}
.copy{margin-top:60px;padding-top:24px;border-top:1px solid var(--line);font-size:12px}
/* project page */
.phero{height:92vh;height:92svh;min-height:560px;position:relative;display:flex;align-items:flex-end;overflow:hidden}
.phero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 14s ease-out forwards}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,23,32,.95),rgba(15,23,32,.2) 55%,rgba(15,23,32,.5))}
.phc{position:relative;z-index:2;padding-bottom:9vh;width:100%}
.phc h1{font-size:clamp(54px,8.5vw,128px);margin:14px 0 18px}.phc p{font-size:19px;max-width:620px;color:rgba(245,242,235,.82);font-weight:300}
.back{display:inline-block;margin-bottom:24px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:rgba(245,242,235,.7)}.back:hover{color:var(--gold)}
.facts{padding:70px 0;border-bottom:1px solid var(--line)}
.fx{display:grid;grid-template-columns:1fr 2fr;gap:40px}
.fx ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.fx li{padding:16px 0 16px 30px;border-bottom:1px solid var(--line);position:relative;font-size:16px}
.fx li::before{content:"";position:absolute;left:2px;top:28px;width:14px;height:1px;background:var(--gold)}
.cs{padding:110px 0}.cs.dark{background:var(--navy)}
.cadsec{background:var(--alab);color:var(--ink)}.cadsec h2 em{color:#a8823e}
.cadg{display:grid;gap:24px;margin-top:40px}.cadg.n2{grid-template-columns:1fr 1fr}.cadg.n1{grid-template-columns:1fr}
.g-cad{background:#fff;box-shadow:0 20px 50px rgba(15,23,32,.12);cursor:zoom-in}.g-cad img{width:100%;max-height:640px;object-fit:contain;margin:auto}
.strip{display:flex;gap:18px;overflow-x:auto;padding:40px 28px 10px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--gold) transparent}
.g-build{flex:0 0 auto;height:min(68vh,620px);scroll-snap-align:start;cursor:zoom-in}.g-build img{height:100%;width:auto;object-fit:cover}
.strip .g-build:first-child{margin-left:max(0px,calc((100vw - 1320px)/2))}
.hint{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:16px}
.rev{columns:2;column-gap:22px;margin-top:40px}
.g-done{break-inside:avoid;margin-bottom:22px;cursor:zoom-in;overflow:hidden}.g-done img{width:100%;transition:transform 1s}
.g-done:hover img{transform:scale(1.03)}
.rev .g-done:first-child{column-span:all}
.pn{padding:0;border-top:1px solid var(--line)}
.pngrid{display:grid;grid-template-columns:1fr 1fr}
.pngrid a{padding:56px 0;text-decoration:none;display:block}.pngrid a.r{text-align:right;border-left:1px solid var(--line);padding-left:28px}
.pngrid small{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.pngrid span{display:block;font-family:"Cormorant Garamond",serif;font-size:clamp(30px,3.6vw,52px);margin-top:6px;transition:color .2s}.pngrid a:hover span{color:var(--gold)}
.cta{background:var(--gold);color:var(--ink);text-align:center;padding:90px 0}.cta h2{margin:0 0 30px}
.cta .btn{background:var(--ink);color:var(--alab)}
/* lightbox */
.lb{position:fixed;inset:0;background:rgba(8,12,18,.97);display:none;align-items:center;justify-content:center;z-index:60}
.lb.on{display:flex}.lb figure{max-width:94vw;text-align:center}
.lb img{max-height:86vh;max-width:94vw;object-fit:contain;margin:auto;background:#fff0}
.lb figcaption{margin-top:12px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.lb button{position:absolute;background:none;border:0;color:var(--alab);font-size:44px;cursor:pointer;padding:12px 20px;line-height:1}
.lb .x{top:6px;right:6px}.lb .pv{left:4px;top:50%;transform:translateY(-50%)}.lb .nx{right:4px;top:50%;transform:translateY(-50%)}
/* reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (max-width:1000px){
 .pgrid{grid-template-columns:1fr 1fr}.pgrid .pc:nth-child(3n+2){margin-top:0}.pgrid .pc:nth-child(2n){margin-top:50px}
 .feat,.feat:nth-of-type(even),.bagrid,.cgrid,.fx{grid-template-columns:1fr;gap:44px}.feat:nth-of-type(even) .fpair{order:0}
 .fpair{height:520px}.sv{grid-template-columns:1fr 1fr}.sv>div:nth-child(2n){border-right:0}.steps{grid-template-columns:1fr}
 .sgrid{grid-template-columns:1fr 1fr}.sgrid>div:nth-child(3){border-left:0}.sgrid>div{border-top:1px solid var(--line)}
 .links{display:none;position:absolute;top:84px;left:0;right:0;background:var(--ink);flex-direction:column;padding:30px;gap:24px;border-bottom:1px solid var(--gold)}
 .links.open{display:flex}.burger{display:block}.fgrid{grid-template-columns:1fr}
 section{padding:90px 0}.hnow,.hdots{display:none}
}
@media (max-width:600px){
 .pgrid{grid-template-columns:1fr}.pgrid .pc:nth-child(2n){margin-top:0}.row,.fx ul,.cadg.n2{grid-template-columns:1fr}
 .rev{columns:1}.fpair{height:440px}.sgrid b{font-size:48px}.sv{grid-template-columns:1fr}.sv>div{border-right:0}
 .mail{font-size:23px}.g-build{height:58vh}.pngrid a.r{padding-left:14px}
}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.sl.on img,.phero>img{animation:none}.mtrack{animation:none}}

.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.bgrid .g-build{height:auto;cursor:zoom-in;overflow:hidden;aspect-ratio:3/4;background:#0a1018}
.bgrid .g-build img{width:100%;height:100%;object-fit:cover;transition:transform 1s}
.bgrid .g-build:hover img{transform:scale(1.04)}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,380px));gap:22px;margin-top:40px}
.vgrid video{width:100%;height:auto;max-height:78vh;object-fit:contain;background:#000;display:block}
.vgrid figcaption{margin-top:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.vids{background:var(--navy2)}
.hlogo{display:inline-flex;margin-bottom:26px}.hlogo b{font-size:40px}.hlogo span{font-size:13px}
@media (max-width:1000px){.bgrid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.bgrid{grid-template-columns:1fr 1fr;gap:10px}.vgrid{grid-template-columns:1fr}}

.bgrid.n1{grid-template-columns:1fr;max-width:1000px}.bgrid.n2{grid-template-columns:1fr 1fr;max-width:1200px}
.bgrid.n1 .g-build,.bgrid.n2 .g-build{aspect-ratio:auto;background:none}
.bgrid.n1 .g-build img,.bgrid.n2 .g-build img{height:auto;max-height:85vh;object-fit:contain}
@media (max-width:600px){.bgrid.n2{grid-template-columns:1fr}}

.logo{flex-direction:row;align-items:center;gap:12px}
.logo .lmark{height:46px;width:auto}.logo .lword{height:30px;width:auto}
.flogo{display:inline-block;margin-bottom:18px}.flogo img{width:220px;height:auto}
.legal{padding:170px 0 110px;background:var(--alab);color:var(--navy)}
.lwrap{max-width:860px}.legal h1{font-size:clamp(40px,6vw,72px);margin:14px 0 22px;color:var(--navy)}
.legal h2{font-size:28px;margin:44px 0 14px;color:var(--navy)}
.legal p{line-height:1.75;margin:0 0 12px;color:#2b3645}.legal .lead{font-size:19px}
.copy a{color:inherit}
@media (max-width:600px){.logo .lmark{height:38px}.logo .lword{height:24px}}
.bgrid.n1{max-width:900px}.bgrid.n1 .g-build img{max-height:none}
