:root{--bg:#0a0a0a;--bg2:#141414;--bg3:#1f1f1f;--gold:#d4af37;--gold2:#f4d03f;--tx:#f4f1ea;--mut:#a9a396;--ln:rgba(212,175,55,.22);--w:min(1180px,92%)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{font:16px/1.7 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--tx);overflow-x:hidden}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
h1,h2,h3,.brand b{font-family:"Cormorant Garamond",Georgia,serif;line-height:1.1;font-weight:600}
.wrap{width:var(--w);margin:auto}section{padding:96px 0}
.gold{color:var(--gold)}.eyebrow{color:var(--gold);letter-spacing:.3em;font-size:.75rem;text-transform:uppercase;display:block;margin-bottom:12px}
h2{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:14px}.sub{color:var(--mut);max-width:620px}
.btn{position:relative;overflow:hidden;display:inline-block;padding:14px 30px;border:1px solid var(--gold);color:var(--gold);font-weight:600;letter-spacing:.05em;cursor:pointer;background:none;font:inherit;transition:.3s}
.btn.fill{background:var(--gold);color:#111}.btn:hover{background:var(--gold2);color:#111;transform:translateY(-2px)}
/* nav */
nav{position:fixed;inset:0 0 auto;z-index:50;transition:.35s;padding:18px 0}
nav:before{content:'';position:absolute;inset:0;z-index:-1;background:rgba(10,10,10,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--ln);opacity:0;transition:.35s}
nav.s{padding:10px 0}nav.s:before{opacity:1}
nav .wrap{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px}.brand img{height:42px;width:auto}.brand b{font-size:1.4rem;letter-spacing:.12em}
.links{display:flex;gap:30px;list-style:none;font-size:.9rem}
.links a{position:relative;padding:4px 0}.links a:after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:.3s}
.links a:hover:after,.links a.on:after{width:100%}.links a:hover,.links a.on{color:var(--gold)}
.burger{display:none;background:none;border:0;width:30px;height:22px;position:relative;cursor:pointer}
.burger i,.burger:before,.burger:after{content:"";position:absolute;left:0;width:100%;height:2px;background:var(--gold);transition:.3s}
.burger:before{top:0}.burger i{top:10px}.burger:after{bottom:0}
/* hero */
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;padding:120px 0 80px}
.hero .bg{position:absolute;inset:0;background:#111 center/cover;animation:kb 22s ease-in-out infinite alternate}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,10,.92),rgba(10,10,10,.55) 60%,rgba(10,10,10,.8))}
.hero .wrap{position:relative;z-index:2}
.hero h1{font-size:clamp(2.8rem,8vw,6rem);max-width:820px;margin:14px 0 22px}
.hero p{max-width:560px;color:#d8d3c6;font-size:1.15rem;margin-bottom:34px}
.hero .btn{margin:0 12px 12px 0}
.scroll{position:absolute;bottom:26px;left:50%;width:1px;height:50px;background:linear-gradient(var(--gold),transparent);z-index:2;animation:dr 2s infinite}
@keyframes kb{to{transform:scale(1.12) translate(-1.5%,-1%)}}
@keyframes dr{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.words span{display:inline-block;opacity:0;transform:translateY(40px);animation:up .8s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes up{to{opacity:1;transform:none}}
/* stats */
.stats{background:var(--bg2);border-block:1px solid var(--ln);padding:50px 0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats b{display:block;font:600 3rem/1 "Cormorant Garamond",Georgia,serif;color:var(--gold)}.stats span{color:var(--mut);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}
/* services */
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:22px;margin-top:46px}
.card{background:var(--bg2);border:1px solid var(--ln);padding:34px 28px;transition:.4s;position:relative;overflow:hidden}
.card:before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--gold);transition:.5s}
.card:hover{transform:translateY(-8px);border-color:var(--gold)}.card:hover:before{width:100%}
.card em{font:600 2.6rem "Cormorant Garamond",serif;color:var(--gold);font-style:normal;opacity:.5}.card h3{font-size:1.6rem;margin:6px 0 10px}.card p{color:var(--mut);font-size:.95rem}
/* projects */
.pg{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(310px,100%),1fr));gap:20px;margin-top:46px}
.pj{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--bg3);cursor:pointer}
.pj img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.pj:hover img{transform:scale(1.1)}
.pj div{position:absolute;inset:auto 0 0;padding:60px 22px 20px;background:linear-gradient(transparent,rgba(0,0,0,.92));transform:translateY(34px);transition:.4s}
.pj:hover div{transform:none}.pj small{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:.7rem}.pj h3{font-size:1.5rem}.pj p{color:var(--mut);font-size:.85rem;opacity:0;transition:.4s}.pj:hover p{opacity:1}
/* about / leader */
.two{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.alt{background:var(--bg2)}blockquote{color:var(--mut);margin:18px 0 22px}.who{border-top:1px solid var(--ln);padding-top:18px;color:var(--mut);font-size:.9rem}.who b{display:block;font:600 1.6rem "Cormorant Garamond",serif;color:var(--gold)}
/* marquee */
.mq{overflow:hidden;border-block:1px solid var(--ln);padding:22px 0;background:var(--bg2)}
.mq div{display:flex;gap:60px;width:max-content;animation:mq 28s linear infinite;font:600 1.8rem "Cormorant Garamond",serif;color:var(--mut);white-space:nowrap}
.mq span:nth-child(even){color:var(--gold)}@keyframes mq{to{transform:translateX(-50%)}}
/* contact */
.info p{margin:16px 0;color:var(--mut)}.info b{display:block;color:var(--gold);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase}
form{display:grid;gap:14px}input,select,textarea{width:100%;padding:14px;background:var(--bg2);border:1px solid var(--ln);color:var(--tx);font:inherit;transition:.3s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--gold)}
footer{padding:36px 0;border-top:1px solid var(--ln);text-align:center;color:var(--mut);font-size:.85rem}footer a{color:var(--gold)}
.soc{display:flex;gap:18px;justify-content:center;margin-bottom:14px}.soc a:hover{color:var(--gold)}
.wa{position:fixed;right:20px;bottom:20px;z-index:40;background:#25d366;color:#fff;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.4);animation:pl 2.4s infinite}
@keyframes pl{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}100%{box-shadow:0 0 0 18px transparent}}
/* reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
/* gallery */
.ph-head{padding:150px 0 40px;text-align:center}.flt{display:flex;gap:10px;justify-content:center;margin:26px 0 40px;flex-wrap:wrap}
.flt button{padding:9px 22px;background:none;border:1px solid var(--ln);color:var(--mut);cursor:pointer;font:inherit;transition:.3s}.flt button.on,.flt button:hover{background:var(--gold);color:#111;border-color:var(--gold)}
.gg{columns:3 280px;column-gap:16px}.gi{break-inside:avoid;margin-bottom:16px;position:relative;overflow:hidden;cursor:zoom-in;background:var(--bg3)}
.gi img,.gi video{width:100%;transition:transform .7s}.gi:hover img{transform:scale(1.07)}
.gi span{position:absolute;inset:auto 0 0;padding:30px 14px 12px;background:linear-gradient(transparent,rgba(0,0,0,.85));font-size:.9rem;opacity:0;transition:.3s}.gi:hover span{opacity:1}
.lb{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:99;display:none;place-items:center;padding:20px}.lb.on{display:grid}.lb img{max-height:88vh;object-fit:contain}.lb button{position:absolute;top:18px;right:24px;background:none;border:0;color:var(--gold);font-size:2.4rem;cursor:pointer}

.vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s}.vid.on{opacity:1}
.hero .eyebrow,.hero p,.hero .btn{opacity:0;animation:up .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero .eyebrow{animation-delay:.05s}.hero p{animation-delay:.9s}.hero .btn{animation-delay:1.1s}.hero .btn+.btn{animation-delay:1.25s}
.btn:after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg)}
.btn:hover:after{left:130%;transition:left .7s}
h2:after{content:"";display:block;width:0;height:2px;background:var(--gold);margin-top:14px;transition:width 1s .3s}h2.in:after{width:70px}
.frame.rv img{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1)}.frame.in img{clip-path:inset(0)}
.pb{position:fixed;top:0;left:0;height:3px;width:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));transform:scaleX(0);transform-origin:left;z-index:60}
.wa{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}
input,select,textarea{font-size:16px}
.btn,.burger,.flt button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
@media(max-width:980px){
.burger{display:block;z-index:70}
.links{position:fixed;inset:0;background:rgba(10,10,10,.97);flex-direction:column;justify-content:center;align-items:center;gap:26px;font-size:1.5rem;clip-path:circle(0 at calc(100% - 40px) 36px);transition:clip-path .6s cubic-bezier(.7,0,.2,1);visibility:hidden}
.links.open{clip-path:circle(150% at calc(100% - 40px) 36px);visibility:visible}
.links li{opacity:0;transform:translateY(20px);transition:.5s}.links.open li{opacity:1;transform:none}
.links.open li:nth-child(1){transition-delay:.25s}.links.open li:nth-child(2){transition-delay:.3s}.links.open li:nth-child(3){transition-delay:.35s}.links.open li:nth-child(4){transition-delay:.4s}.links.open li:nth-child(5){transition-delay:.45s}.links.open li:nth-child(6){transition-delay:.5s}
.burger.x:before{top:10px;transform:rotate(45deg)}.burger.x:after{bottom:10px;transform:rotate(-45deg)}.burger.x i{opacity:0}
.two{grid-template-columns:1fr;gap:44px}.frame{max-width:480px;margin:0 auto 36px;width:100%}
.hero:after{background:linear-gradient(rgba(10,10,10,.7),rgba(10,10,10,.85))}.hero{text-align:center}.hero p,.hero h1{margin-inline:auto}
section{padding:72px 0}.stats .wrap{grid-template-columns:1fr 1fr;gap:34px 16px}
html.lock{overflow:hidden}}
@media(max-width:600px){
body{font-size:15px}.brand b{font-size:1.05rem;letter-spacing:.08em}.brand img{height:36px;width:auto}
.hero{padding:100px 0 90px}.hero h1{font-size:clamp(2.3rem,11vw,3.4rem)}.hero p{font-size:1rem}
.hero .btn{display:block;margin:0 0 12px}.btn{padding:14px 20px;text-align:center}
.stats b{font-size:2.4rem}.card{padding:26px 22px}.pj{aspect-ratio:16/11}.gg{columns:2 140px;column-gap:10px}.gi{margin-bottom:10px}
.mq div{font-size:1.3rem;gap:36px}.ph-head{padding:120px 0 24px}.wa{width:48px;height:48px}}
@media(hover:none){.pj div{transform:none}.pj p,.gi span{opacity:1}.card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv,.words span,.hero .eyebrow,.hero p,.hero .btn,.links li{opacity:1;transform:none}.frame.rv img{clip-path:none}.vid{display:none}}

/* image frame: clean gold corner brackets */
.frame{position:relative;padding:16px}
.frame img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;border-radius:6px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.frame:before,.frame:after{content:"";position:absolute;width:64px;height:64px;border:2px solid var(--gold);pointer-events:none;transition:.6s cubic-bezier(.2,.7,.2,1)}
.frame:before{top:0;left:0;border-right:0;border-bottom:0;border-radius:8px 0 0 0}
.frame:after{bottom:0;right:0;border-left:0;border-top:0;border-radius:0 0 8px 0}
.frame:hover:before,.frame:hover:after{width:100px;height:100px}
.plate{position:absolute;left:36px;right:36px;bottom:-24px;background:var(--bg);border:1px solid var(--ln);border-left:3px solid var(--gold);padding:14px 20px;color:var(--mut);font-size:.85rem;z-index:2}
.plate b{display:block;font:600 1.5rem "Cormorant Garamond",serif;color:var(--gold)}
.badge{position:absolute;right:-6px;bottom:-22px;background:var(--gold);color:#111;padding:16px 22px;font-size:.78rem;line-height:1.3;letter-spacing:.06em;text-transform:uppercase;z-index:2;animation:fl 4s ease-in-out infinite;border-radius:4px}
.badge b{display:block;font:600 2.4rem/1 "Cormorant Garamond",serif}
@keyframes fl{50%{transform:translateY(-8px)}}
.pts{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin:26px 0 32px}
.pts div{position:relative;padding-left:24px;font-size:.95rem}
.pts div:before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}
.q:before{content:"\201C";display:block;font:600 5rem/.7 "Cormorant Garamond",serif;color:var(--gold);margin-bottom:6px}
.q{color:var(--tx);font-size:1.1rem}
@media(max-width:600px){.pts{grid-template-columns:1fr}.frame{padding:12px}.plate{left:22px;right:22px}.badge{right:10px}}
