:root{--bg:hsl(0 0% 5%);--fg:hsl(40 10% 90%);--card:hsl(0 0% 8%);--gold:hsl(38 72% 56%);--gold-l:hsl(38 72% 70%);--sec:hsl(0 0% 12%);--muted:hsl(0 0% 55%);--border:hsl(0 0% 16%);--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6}
h1,h2,.logo,.service span,.stats strong{font-family:'Playfair Display',serif;font-weight:500}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}
.narrow{max-width:900px}
.section{padding:7rem 0}
.bg-card{background:var(--card)}
.center{text-align:center}
.eyebrow{font-size:.75rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem}
h2{font-size:clamp(2rem,4.5vw,3rem);line-height:1.1;text-wrap:balance}
.muted{color:var(--muted);font-size:.9rem}
.about-grid .muted{margin-bottom:1rem}
.lead{max-width:32rem;margin:1rem auto 0}
.small{font-size:.75rem;margin-top:.5rem}
.btn{display:inline-block;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;padding:.9rem 2rem;border-radius:2px;transition:.3s;cursor:pointer;border:1px solid transparent;font-family:inherit}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--gold);color:var(--bg)}
.btn-primary:hover{background:var(--gold-l)}
.btn-outline{border-color:hsla(40,10%,90%,.3);color:var(--fg)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.btn-sm{padding:.6rem 1.2rem}
/* nav */
#nav{position:fixed;inset:0 0 auto;z-index:50;transition:.5s}
#nav.scrolled{background:hsla(0,0%,5%,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:5rem}
.logo{font-size:1.5rem;font-weight:600}.logo span{color:var(--gold)}
.nav-links{display:flex;gap:2rem;align-items:center}
.nav-links a:not(.btn){font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);transition:.3s}
.nav-links a:not(.btn):hover{color:var(--gold)}
.menu-toggle{display:none;background:none;border:0;color:var(--fg);font-size:1.6rem;cursor:pointer}
.mobile-menu{display:none;flex-direction:column;gap:1rem;padding:1.5rem;background:hsla(0,0%,5%,.97);border-top:1px solid var(--border)}
.mobile-menu a{text-transform:uppercase;letter-spacing:.15em;font-size:.85rem;color:var(--muted)}
.mobile-menu .btn{text-align:center;color:var(--bg)}
.mobile-menu.open{display:flex}
/* hero */
.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,var(--bg),hsla(0,0%,5%,.5) 40%,hsla(0,0%,5%,.6))}
.hero-content{position:relative;z-index:2;max-width:56rem;padding:0 1.5rem}
.hero h1{font-size:clamp(2.5rem,8vw,6rem);line-height:.95;letter-spacing:-.02em}
.hero-sub{color:hsla(40,10%,80%,.7);max-width:36rem;margin:2rem auto 0;font-size:1.05rem}
.hero-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2.5rem}
.scroll-ind{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);opacity:0;animation:fade 1s 1.2s forwards}
.scroll-ind div{width:1px;height:3rem;margin:auto;background:linear-gradient(var(--gold),transparent)}
.scroll-ind p{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-top:.5rem}
/* portfolio */
.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:2.5rem 0 3rem}
.filters button{font:inherit;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;padding:.5rem 1rem;border:0;border-radius:2px;background:var(--sec);color:var(--muted);cursor:pointer;transition:.3s}
.filters button:hover{color:var(--fg)}
.filters button.active{background:var(--gold);color:var(--bg)}
.masonry{columns:3;column-gap:1rem}
.item{break-inside:avoid;margin-bottom:1rem;position:relative;overflow:hidden;border-radius:2px;cursor:pointer;opacity:0;animation:fadeUp .7s var(--ease) forwards}
.item img{width:100%;transition:transform .7s var(--ease)}
.item:hover img{transform:scale(1.05)}
.item .cap{position:absolute;inset:0;display:flex;align-items:flex-end;padding:1.5rem;background:hsla(0,0%,5%,0);transition:.5s}
.item:hover .cap{background:hsla(0,0%,5%,.4)}
.cap div{opacity:0;transform:translateY(1rem);transition:.5s}
.item:hover .cap div{opacity:1;transform:none}
.cap small{color:var(--gold);letter-spacing:.3em;text-transform:uppercase;font-size:.7rem}
.cap p{font-family:'Playfair Display',serif;font-size:1.1rem}
/* reels */
.reels{overflow:hidden}
.reel-wrap{position:relative;margin-top:3rem}
.reel-wrap::before,.reel-wrap::after{content:"";position:absolute;top:0;bottom:0;width:6rem;z-index:2;pointer-events:none}
.reel-wrap::before{left:0;background:linear-gradient(to right,var(--bg),transparent)}
.reel-wrap::after{right:0;background:linear-gradient(to left,var(--bg),transparent)}
.reel-track{display:flex;gap:1rem;width:max-content;animation:scrollReels 30s linear infinite}
.reel-wrap:hover .reel-track{animation-play-state:paused}
.reel{flex-shrink:0;width:14rem;aspect-ratio:9/16;position:relative;border-radius:8px;overflow:hidden}
.reel img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.reel:hover img{transform:scale(1.05)}
.reel .ov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:hsla(0,0%,5%,0);transition:.5s}
.reel:hover .ov{background:hsla(0,0%,5%,.4)}
.ov>*{opacity:0;transform:translateY(.5rem);transition:.5s}
.reel:hover .ov>*{opacity:1;transform:none}
.play{width:3rem;height:3rem;border-radius:50%;background:var(--gold);color:var(--bg);display:flex;align-items:center;justify-content:center}
.ov p{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase}
/* about */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.about-img{position:relative}
.about-img img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.about-frame{position:absolute;right:-1rem;bottom:-1rem;width:6rem;height:6rem;border:1px solid hsla(38,72%,56%,.3)}
h2.left{margin-bottom:1.5rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--border);text-align:center}
.stats strong{display:block;font-size:2rem}
.stats span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
/* services */
.services{margin-top:4rem}
.service{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;border-bottom:1px solid hsla(0,0%,16%,.5);transition:border-color .5s}
.service span{font-size:clamp(1.1rem,2.5vw,1.5rem);transition:color .3s}
.service i{font-style:normal;color:var(--muted);transition:.3s}
.service:hover{border-color:hsla(38,72%,56%,.4)}
.service:hover span,.service:hover i{color:var(--gold)}
.service:hover i{transform:translateX(4px)}
.link-gold{color:var(--gold);letter-spacing:.15em;text-transform:uppercase;font-size:.85rem}
.link-gold:hover{color:var(--fg)}
/* testimonials */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:4rem}
.testi{background:var(--bg);border:1px solid var(--border);padding:2rem;border-radius:2px}
.stars{color:var(--gold);letter-spacing:.2em;margin-bottom:1rem}
.testi blockquote{font-size:.9rem;color:hsla(40,10%,80%,.85);font-style:italic;margin-bottom:1.5rem}
.testi strong{font-family:'Playfair Display',serif;font-weight:500;display:block}
.testi span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
/* contact */
.contact-grid{display:grid;grid-template-columns:3fr 2fr;gap:4rem;margin-top:4rem}
form{display:flex;flex-direction:column;gap:1.25rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
label{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:flex;flex-direction:column;gap:.5rem}
input,select,textarea{background:var(--card);border:1px solid var(--border);color:var(--fg);padding:.8rem 1rem;border-radius:2px;font:inherit;font-size:.9rem;letter-spacing:normal;text-transform:none;transition:border-color .3s;color-scheme:dark}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--gold)}
form .btn{align-self:flex-start}
.contact-info{display:flex;flex-direction:column;gap:1.5rem}
.info{padding-left:1rem;border-left:2px solid var(--gold)}
.info span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.contact-info .btn{text-align:center}
/* footer */
footer{border-top:1px solid var(--border);padding:3.5rem 0 2rem}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap}
.footer-links a{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.footer-links a:hover,.socials a:hover{color:var(--gold)}
.socials{display:flex;gap:.75rem}
.socials a{width:2.25rem;height:2.25rem;background:var(--sec);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--muted);border-radius:2px;transition:.3s}
.copy{text-align:center;font-size:.75rem;color:var(--muted);margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border)}
/* animation */
.fade-up{opacity:0;animation:fadeUp .8s var(--ease) forwards}
.reveal{opacity:0;transform:translateY(20px);filter:blur(4px);transition:1s var(--ease)}
.reveal.visible{opacity:1;transform:none;filter:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes fade{to{opacity:1}}
@keyframes scrollReels{to{transform:translateX(-33.333%)}}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:hsl(0 0% 20%);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gold)}
@media(max-width:1024px){.masonry{columns:2}.about-grid,.contact-grid{grid-template-columns:1fr;gap:3rem}.testi-grid{grid-template-columns:1fr}}
@media(max-width:768px){.nav-links{display:none}.menu-toggle{display:block}.nav-inner{height:4rem}.section{padding:5rem 0}.reel{width:12rem}.footer-inner{flex-direction:column;text-align:center}}
@media(max-width:640px){.masonry{columns:1}.row2{grid-template-columns:1fr}}
