:root{--bg:#070707;--surface:#101010;--white:#f4f4ef;--muted:#92928d;--line:#292929;--silver:#d1d1ca}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:"DM Sans",sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%}
header{position:fixed;z-index:50;top:0;left:0;width:100%;height:76px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#000b,transparent);transition:.35s}header.scrolled{background:#070707ee;backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}
.logo{display:grid;grid-template-columns:34px auto;column-gap:9px;align-items:center;font-size:13px;letter-spacing:.14em}.logo span{grid-row:1/3;width:34px;height:34px;border:1px solid #888;display:grid;place-items:center;font:12px Georgia;letter-spacing:-2px}.logo small{grid-column:2;font-size:7px;letter-spacing:.4em;color:#999;margin-top:-4px}.logo b{font-weight:700}
nav{display:flex;gap:32px;font-size:10px;letter-spacing:.18em}nav a:hover,nav a.active{color:#aaa}.insta{font-size:11px;letter-spacing:.12em}.menu{display:none;background:none;border:0;color:#fff;font-size:22px}
.hero{height:100svh;min-height:650px;position:relative;overflow:hidden}.hero>img{height:100%;object-fit:cover;animation:heroZoom 10s ease-out forwards}.hero-grad{position:absolute;inset:0;background:linear-gradient(90deg,#000b,transparent 78%),linear-gradient(0deg,#000d,transparent 50%)}@keyframes heroZoom{to{transform:scale(1)}}
.hero-copy{position:absolute;left:7vw;bottom:12vh}.tiny,.eyebrow{font-size:9px;letter-spacing:.28em;color:#aaa}.hero h1{font:500 clamp(75px,12vw,175px)/.78 "Playfair Display",serif;letter-spacing:-.055em;margin:20px 0 30px}.hero h1 i,.display i{font-style:italic;color:#d1d1ca}.hero-copy p{font-size:14px;color:#ddd;line-height:1.65}.hero-bottom{position:absolute;bottom:25px;left:4vw;right:4vw;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.2em;color:#aaa}
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;white-space:nowrap}.marquee-track{display:flex;width:max-content;animation:marquee 28s linear infinite}.marquee-item{flex:0 0 auto;padding-right:40px;font:500 15px/1 "Playfair Display",serif;letter-spacing:.16em}.marquee i{font-style:normal;color:#777;margin:0 22px}@keyframes marquee{to{transform:translateX(-50%)}}
.page-hero{padding:180px 7vw 80px;border-bottom:1px solid var(--line);min-height:55vh;display:flex;align-items:end}.page-hero .display{font:500 clamp(70px,12vw,160px)/.8 "Playfair Display",serif;letter-spacing:-.06em;margin:20px 0 0}.page-hero p{max-width:500px;color:#888;font-size:14px;line-height:1.8;margin-left:auto}
.section{padding:120px 5vw;border-bottom:1px solid var(--line)}.section-inner{max-width:1250px;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:55px}.section-head p{max-width:390px;color:#777;font-size:12px;line-height:1.7;margin:0}
.btn{display:inline-block;padding:15px 24px;background:#f3f3ee;color:#080808;font-size:10px;font-weight:700;letter-spacing:.18em}.line-link{display:inline-block;font-size:11px;border-bottom:1px solid #777;padding-bottom:5px}
.gallery{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.gallery figure{margin:0;position:relative;overflow:hidden;background:#111;min-height:390px}.gallery figure.tall{grid-row:span 2}.gallery figure.wide{grid-column:1/-1;height:480px}.gallery img{height:100%;object-fit:cover;transition:.8s}.gallery figure:hover img{transform:scale(1.04);filter:brightness(.68)}.gallery figcaption{position:absolute;left:20px;bottom:18px;font-size:9px;letter-spacing:.2em;opacity:.8}
.split{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.split-img{height:680px;overflow:hidden}.split-img img{height:100%;object-fit:cover}.split-copy h2{font:500 clamp(58px,7vw,100px)/.85 "Playfair Display",serif;letter-spacing:-.05em;margin:22px 0 35px}.split-copy p{color:#999;max-width:500px;font-size:14px;line-height:1.8}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr)}.service{padding:38px 30px 45px 0;border-bottom:1px solid var(--line)}.service:nth-child(even){padding-left:30px;border-left:1px solid var(--line)}.service b{font-size:9px;color:#777}.service h2{font:500 42px "Playfair Display",serif;margin:22px 0 10px}.service p{color:#888;max-width:420px;font-size:14px;line-height:1.7}
.contact-wrap{min-height:80vh;padding:170px 7vw 100px;display:flex;flex-direction:column;justify-content:center}.contact-wrap h1{font:500 clamp(75px,12vw,175px)/.78 "Playfair Display",serif;letter-spacing:-.06em;margin:25px 0 35px}.contact-wrap>p{color:#888;max-width:550px;line-height:1.8}.contact-grid{margin-top:70px;display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:850px}.field{border-bottom:1px solid #444;padding:18px 0;color:#777;font-size:12px}.field.full{grid-column:1/-1}.contact-note{margin-top:30px;color:#777;font-size:11px}
footer{padding:30px 4vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:#777;font-size:9px;letter-spacing:.12em}footer a{color:#aaa}
.cursor{position:fixed;width:15px;height:15px;border:1px solid white;border-radius:50%;pointer-events:none;z-index:100;transform:translate(-50%,-50%);mix-blend-mode:difference;transition:.2s}
@media(max-width:800px){header{padding:0 6vw}.menu{display:block}nav{display:none;position:absolute;right:6vw;top:65px;flex-direction:column;background:#111;border:1px solid var(--line);padding:22px 30px}.nav-open nav{display:flex}.insta{display:none}.hero-copy{left:6vw;bottom:11vh}.hero h1{font-size:68px}.hero-bottom{left:6vw;right:6vw}.page-hero{padding:145px 6vw 70px;display:block}.page-hero p{margin:35px 0 0}.section{padding:85px 6vw}.section-head{display:block}.section-head p{margin-top:18px}.gallery{grid-template-columns:1fr}.gallery figure.tall{grid-row:auto}.gallery figure.wide{grid-column:auto;height:350px}.gallery figure{min-height:330px}.split{grid-template-columns:1fr;gap:40px}.split-img{height:550px}.services-grid{grid-template-columns:1fr}.service,.service:nth-child(even){padding:30px 0;border-left:0}.contact-wrap{padding:145px 6vw 90px}.contact-grid{grid-template-columns:1fr;margin-top:45px}.field.full{grid-column:auto}footer{flex-direction:column;gap:14px;text-align:center}}
@media(max-width:480px){.cursor{display:none}.hero h1{font-size:60px}.page-hero .display{font-size:70px}.contact-wrap h1{font-size:68px}}


/* ===== V5 upgrades ===== */
body.modal-open { overflow:hidden; }
.page-kicker { letter-spacing:.18em; text-transform:uppercase; font-size:.72rem; opacity:.6; margin-bottom:18px; }
.work-toolbar { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 34px; }
.filter-btn { border:1px solid rgba(255,255,255,.18); background:transparent; color:#fff; padding:11px 16px; border-radius:999px; font:inherit; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:.25s ease; }
.filter-btn:hover,.filter-btn.active { background:#fff; color:#0a0a0a; border-color:#fff; }
.work-card { cursor:zoom-in; }
.work-card img { transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .5s ease; }
.work-card:hover img { transform:scale(1.045); filter:brightness(1.08); }
.work-card.is-hidden { display:none; }

.lightbox { position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; background:rgba(5,5,5,.94); padding:5vw; }
.lightbox.open { display:flex; }
.lightbox img { max-width:min(92vw,1500px); max-height:84vh; width:auto; height:auto; object-fit:contain; box-shadow:0 30px 100px rgba(0,0,0,.5); }
.lb-close,.lb-prev,.lb-next { position:absolute; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.45); color:#fff; width:48px; height:48px; border-radius:50%; cursor:pointer; display:grid; place-items:center; font-size:22px; }
.lb-close { top:24px; right:24px; }
.lb-prev { left:24px; top:50%; transform:translateY(-50%); }
.lb-next { right:24px; top:50%; transform:translateY(-50%); }
.lb-meta { position:absolute; left:28px; bottom:24px; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; opacity:.65; }
.lb-close:hover,.lb-prev:hover,.lb-next:hover { background:#fff; color:#000; }

.service-card { position:relative; overflow:hidden; min-height:260px; }
.service-card::after { content:"↗"; position:absolute; right:24px; bottom:20px; font-size:24px; opacity:.45; transition:.25s; }
.service-card:hover::after { opacity:1; transform:translate(4px,-4px); }
.service-card:hover { transform:translateY(-4px); }

.contact-note { max-width:650px; opacity:.68; line-height:1.7; }
.form-status { min-height:22px; font-size:.78rem; opacity:.7; margin-top:12px; }

@media (max-width:700px){
  .lb-prev,.lb-next { width:42px;height:42px; }
  .lb-prev { left:10px; } .lb-next { right:10px; }
  .lb-close { top:12px; right:12px; }
  .lightbox { padding:14px; }
}

/* ===== V6 premium work + contact ===== */
nav a.active { opacity:1; }
.work-gallery { align-items:start; }
.work-gallery .work-card { position:relative; overflow:hidden; background:#111; }
.work-gallery .work-card figcaption { transition:transform .35s ease, opacity .35s ease; }
.work-gallery .work-card:hover figcaption { transform:translateX(6px); opacity:1; }
.section-title { font-size:clamp(2.4rem,6vw,5.4rem); line-height:.9; margin:18px 0 0; letter-spacing:-.05em; }
.mini-cta { border-top:1px solid rgba(255,255,255,.14); }
.project-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:900px; margin-top:42px; }
.project-form label { display:flex; flex-direction:column; gap:10px; font-size:.68rem; letter-spacing:.14em; opacity:.8; }
.project-form input,.project-form select,.project-form textarea { width:100%; box-sizing:border-box; border:1px solid rgba(255,255,255,.17); background:rgba(255,255,255,.035); color:#fff; padding:15px 16px; font:inherit; outline:none; border-radius:0; }
.project-form input:focus,.project-form select:focus,.project-form textarea:focus { border-color:rgba(255,255,255,.65); background:rgba(255,255,255,.06); }
.project-form select option { background:#111; color:#fff; }
.project-form textarea { resize:vertical; min-height:140px; }
.project-form .full { grid-column:1/-1; }
.form-submit { border:0; margin-top:10px; cursor:pointer; }
.request-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.btn-ghost { background:transparent; border:1px solid rgba(255,255,255,.25); }
.small-note { max-width:760px; font-size:.72rem; opacity:.45; margin-top:30px; line-height:1.6; }
@media(max-width:700px){ .project-form { grid-template-columns:1fr; } .project-form .full { grid-column:auto; } .section-title { font-size:3rem; } }

/* V7 contact form */
.contact-form label{display:flex;flex-direction:column;gap:10px;font-size:.72rem;letter-spacing:.12em;opacity:.9}.contact-form input,.contact-form select,.contact-form textarea{width:100%;box-sizing:border-box;background:#111;color:#fff;border:1px solid rgba(255,255,255,.16);padding:16px 15px;font:inherit;letter-spacing:0;border-radius:0;outline:none}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#fff}.contact-form select{appearance:auto}.contact-form .btn{border:1px solid #fff;background:#fff;color:#000;cursor:pointer}.contact-form .btn.secondary{background:transparent;color:#fff}.contact-form .btn:hover{opacity:.8}.contact-form .full{grid-column:1/-1}


/* ===== V8 DESIGN UPGRADE ===== */
::selection{background:#f4f4ef;color:#070707}
body{background:#050505}
header{height:82px}
header .menu{cursor:pointer;position:relative;z-index:70;width:42px;height:42px;padding:0;line-height:1;font-size:0}
header .menu::before,header .menu::after{content:"";position:absolute;left:10px;width:22px;height:1px;background:#fff;transition:.3s}
header .menu::before{top:16px}header .menu::after{top:25px}
header .menu.open::before{top:21px;transform:rotate(45deg)}header .menu.open::after{top:21px;transform:rotate(-45deg)}
header.nav-open nav{display:flex}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 75% 35%,transparent 0,transparent 22%,rgba(0,0,0,.22) 70%)}
.hero-copy{max-width:900px;z-index:2}.hero-copy h1{max-width:900px;text-wrap:balance}.hero-copy p{max-width:520px}
.hero-side{position:absolute;right:4vw;top:50%;z-index:2;writing-mode:vertical-rl;transform:translateY(-50%);font-size:8px;letter-spacing:.24em;color:#aaa}
.section{position:relative}.section::before{content:"";position:absolute;left:5vw;top:0;width:70px;height:1px;background:#777}
.section-head .eyebrow{color:#ddd}
.gallery figure{isolation:isolate}.gallery figure::after{content:"VIEW ↗";position:absolute;right:18px;bottom:18px;font-size:8px;letter-spacing:.2em;opacity:0;transform:translateY(8px);transition:.35s;z-index:2}.gallery figure:hover::after{opacity:.9;transform:none}.gallery figure::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.65));z-index:1;opacity:.75}.gallery figcaption{z-index:3}
.split-copy{max-width:620px}.split-copy .eyebrow{margin-bottom:5px}
.contact-wrap{position:relative;overflow:hidden}.contact-wrap::before{content:"LESLOY";position:absolute;right:-2vw;top:18%;font-size:clamp(130px,24vw,330px);font-weight:700;letter-spacing:-.08em;color:#fff;opacity:.025;pointer-events:none}
.services-grid .service{transition:background .3s ease,padding .3s ease}.services-grid .service:hover{background:rgba(255,255,255,.025);padding-left:18px}.services-grid .service:nth-child(even):hover{padding-left:48px}
.page-hero{position:relative;overflow:hidden}.page-hero::after{content:"LV";position:absolute;right:4vw;bottom:-.12em;font:500 clamp(180px,32vw,450px)/.7 "Playfair Display",serif;color:#fff;opacity:.025;pointer-events:none}
.page-hero .display{position:relative;z-index:1}.page-hero p{position:relative;z-index:1}
.work-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end;margin-bottom:42px}.work-intro h2{font:500 clamp(45px,7vw,92px)/.85 "Playfair Display",serif;letter-spacing:-.05em;margin:0}.work-intro p{max-width:420px;color:#888;line-height:1.8;font-size:13px}
.work-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px}.work-grid .work-card{position:relative;overflow:hidden;background:#111;cursor:zoom-in}.work-grid .work-card:nth-child(1){grid-row:span 2;height:760px}.work-grid .work-card:nth-child(2),.work-grid .work-card:nth-child(3){height:374px}.work-grid .work-card:nth-child(4){grid-column:1/-1;height:540px}.work-grid img{height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1),filter .6s ease}.work-grid .work-card:hover img{transform:scale(1.045);filter:brightness(.75)}.work-grid .work-card::after{content:"OPEN FULLSCREEN ↗";position:absolute;right:20px;bottom:20px;font-size:8px;letter-spacing:.18em;opacity:0;transform:translateY(8px);transition:.3s;z-index:3}.work-grid .work-card:hover::after{opacity:1;transform:none}.work-grid .work-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.65));z-index:1}.work-grid figcaption{position:absolute;left:20px;bottom:20px;z-index:2;font-size:9px;letter-spacing:.18em}
.work-meta{display:flex;justify-content:space-between;gap:20px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line);font-size:9px;letter-spacing:.18em;color:#777}
.lightbox{backdrop-filter:blur(12px)}.lightbox img{max-width:86vw;max-height:80vh}.lb-close,.lb-prev,.lb-next{backdrop-filter:blur(10px)}
.contact-intro{max-width:760px}.contact-intro strong{color:#fff}.contact-form{position:relative;z-index:2}.contact-form .btn{margin-top:6px}.contact-form .btn:focus-visible,.btn:focus-visible,.line-link:focus-visible,a:focus-visible,button:focus-visible{outline:1px solid #fff;outline-offset:4px}
.contact-direct{display:flex;flex-wrap:wrap;gap:24px;margin-top:48px;padding-top:25px;border-top:1px solid var(--line);font-size:10px;letter-spacing:.14em;color:#aaa}.contact-direct a:hover{color:#fff}
footer{background:#050505}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){header.nav-open{background:#070707f5}header.nav-open nav{position:absolute;left:0;right:0;top:82px;padding:30px 6vw 36px;background:#070707;border-bottom:1px solid var(--line);gap:22px}header.nav-open nav a{font-size:13px}.hero-side{display:none}.work-intro{grid-template-columns:1fr;gap:18px}.work-grid{grid-template-columns:1fr}.work-grid .work-card:nth-child(1),.work-grid .work-card:nth-child(2),.work-grid .work-card:nth-child(3),.work-grid .work-card:nth-child(4){grid-column:auto;grid-row:auto;height:390px}.section::before{left:6vw}.contact-direct{display:grid;gap:15px}}
@media(max-width:480px){.hero{min-height:620px}.hero-copy p{font-size:13px}.hero-bottom{bottom:18px}.work-grid .work-card:nth-child(1),.work-grid .work-card:nth-child(2),.work-grid .work-card:nth-child(3),.work-grid .work-card:nth-child(4){height:330px}.lightbox img{max-width:94vw;max-height:76vh}}
