
:root{--bg:#070707;--text:#f4f4f1;--muted:#9b9b96;--line:#272727;--pad:clamp(22px,5vw,76px);--max:1500px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.6}
body.is-loading{overflow:hidden}img,video{display:block;width:100%}a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:Oswald,Arial,sans-serif;text-transform:uppercase;line-height:.94;margin:0}h2{font-size:clamp(46px,6vw,92px);letter-spacing:-.035em}h3{font-size:clamp(24px,2.2vw,38px)}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:600;color:#c7c7c2}
.section{max-width:var(--max);margin:auto;padding:clamp(90px,11vw,165px) var(--pad)}

.loader{position:fixed;inset:0;z-index:999;background:#050505;display:grid;place-content:center;text-align:center;transition:opacity .65s ease,visibility .65s ease}
.loader.hidden{opacity:0;visibility:hidden}.loader-mark{font-family:Oswald,sans-serif;font-size:clamp(30px,5vw,64px);font-weight:700;letter-spacing:-.02em;color:#fff}
.loader p{text-transform:uppercase;letter-spacing:.24em;font-size:9px;color:#848480;margin:15px 0 22px}
.loader-line{height:1px;width:min(360px,72vw);background:#242424;overflow:hidden}.loader-line span{display:block;height:100%;width:0;background:#eee;animation:line 1.2s ease forwards}
@keyframes line{to{width:100%}}

.site-header{position:fixed;z-index:50;top:0;left:0;width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;padding:22px var(--pad);transition:.3s;background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent)}
.site-header.scrolled{background:rgba(5,5,5,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.text-logo{font-family:Oswald,sans-serif;font-size:22px;font-weight:700;letter-spacing:-.02em}.nav{display:flex;gap:34px}.nav a{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#ccc}
.menu-toggle{display:none;background:none;color:#fff;border:1px solid #555;padding:10px}

.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:140px var(--pad) 80px;overflow:hidden}
.hero-video,.hero-overlay{position:absolute;inset:0;height:100%;object-fit:cover}.hero-overlay{background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.28) 64%),linear-gradient(0deg,rgba(0,0,0,.38),transparent 45%)}
.hero-inner{position:relative;z-index:2;max-width:1000px}.hero h1{font-size:clamp(74px,11vw,170px);line-height:.78;letter-spacing:-.06em;display:flex;flex-direction:column}
.hero h1 span{display:block}.hero-copy{max-width:490px;color:#d1d1cd;margin:28px 0 0}.actions{display:flex;gap:14px;margin-top:34px}
.button{display:inline-flex;justify-content:center;align-items:center;padding:15px 22px;border:1px solid transparent;text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:600}
.button-light{background:#f1f1ee;color:#080808}.button-outline{border-color:#777}.scroll-link{position:absolute;z-index:2;right:var(--pad);bottom:35px;text-transform:uppercase;letter-spacing:.16em;font-size:9px}

.work-intro{padding-bottom:55px}.work-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:end}.work-heading p{color:var(--muted);max-width:500px}
.project-list{max-width:var(--max);margin:auto;padding:0 var(--pad) 130px}.project-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.project{height:560px;position:relative;overflow:hidden}.project-large{height:760px}.project img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}
.project-overlay{position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.9));transition:.4s}.project-copy{position:absolute;left:28px;right:28px;bottom:25px;z-index:2}
.project-copy span,.project-copy b{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:9px;color:#c7c7c2}.project-copy b{margin-top:12px;opacity:0;transform:translateY(8px);transition:.35s}
.project:hover img{transform:scale(1.035);filter:brightness(.86)}.project:hover .project-copy b{opacity:1;transform:none}

.about{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(50px,8vw,120px);align-items:center;border-top:1px solid var(--line)}
.about-image{min-height:700px;overflow:hidden}.about-image img{height:100%;object-fit:cover}.about-copy p:not(.eyebrow){color:var(--muted);font-size:15px;line-height:1.85}.about-copy h2{text-transform:none}
.text-link{display:inline-block;margin-top:20px;text-transform:uppercase;font-size:10px;letter-spacing:.13em;border-bottom:1px solid #555;padding-bottom:5px}

.stats{display:grid;grid-template-columns:repeat(4,1fr);padding-top:40px;padding-bottom:100px;border-top:1px solid var(--line)}
.stat{padding:28px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat strong{display:block;font-family:Oswald,sans-serif;font-size:clamp(48px,5vw,78px);line-height:1}
.stat span{display:block;margin-top:12px;text-transform:uppercase;letter-spacing:.13em;font-size:9px;color:#858581}

.services{border-top:1px solid var(--line)}.services-heading{display:grid;grid-template-columns:.5fr 1.5fr;gap:50px;align-items:start;margin-bottom:65px}
.service-list{border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:80px .8fr 1.2fr;gap:40px;align-items:start;padding:34px 0;border-bottom:1px solid var(--line)}
.service span{color:#6f6f6b;font-family:Oswald}.service p{margin:0;color:var(--muted);max-width:520px}

.contact{display:grid;grid-template-columns:1fr 1fr;min-height:760px;border-top:1px solid var(--line)}.contact-visual{position:relative;overflow:hidden;min-height:620px}
.contact-visual>img,.contact-overlay{position:absolute;inset:0;height:100%;object-fit:cover}.contact-overlay{background:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.15))}
.contact-heading{position:absolute;z-index:2;left:var(--pad);right:var(--pad);bottom:70px}
.enquiry-form{padding:clamp(55px,7vw,105px) var(--pad);display:flex;flex-direction:column;justify-content:center;background:#0b0b0b}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.enquiry-form label{display:block;margin-bottom:22px;text-transform:uppercase;letter-spacing:.1em;font-size:9px;color:#a3a39f}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;margin-top:8px;background:transparent;color:#fff;border:0;border-bottom:1px solid #404040;padding:12px 0;font:inherit;outline:none}
.enquiry-form textarea{border:1px solid #404040;padding:14px;resize:vertical}.enquiry-form select option{background:#111}.enquiry-form .button{align-self:flex-start;cursor:pointer}.form-note{color:#777;font-size:10px}

footer{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:50px;padding:65px var(--pad) 24px;color:#9b9b97;font-size:12px;border-top:1px solid var(--line)}
footer h4{font-family:Oswald;color:#fff;text-transform:uppercase}footer a{display:block;margin:8px 0}.copyright{grid-column:1/-1;border-top:1px solid var(--line);padding-top:25px}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
 .nav{position:fixed;inset:0;background:#080808;display:none;flex-direction:column;justify-content:center;align-items:center;font-size:20px}.nav.open{display:flex}.menu-toggle{display:block}
 .work-heading,.about,.contact{grid-template-columns:1fr}.project-row{grid-template-columns:1fr}.project,.project-large{height:560px}
 .stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.services-heading{grid-template-columns:1fr}.service{grid-template-columns:55px 1fr}.service p{grid-column:2}
}
@media(max-width:600px){
 .hero h1{font-size:clamp(70px,21vw,110px)}.actions{flex-direction:column;align-items:flex-start}.project,.project-large{height:480px}
 .about-image{min-height:520px}.stats{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--line)}
 .form-row{grid-template-columns:1fr;gap:0}.service{grid-template-columns:42px 1fr;gap:18px}footer{grid-template-columns:1fr}.copyright{grid-column:1}
}

.vertical-showcase{
  max-width:var(--max);
  margin:auto;
  padding:20px var(--pad) 120px;
  display:grid;
  grid-template-columns:1fr .75fr;
  gap:clamp(50px,9vw,140px);
  align-items:center;
}
.vertical-copy p:not(.eyebrow){color:var(--muted);max-width:520px;font-size:16px;line-height:1.9}
.phone-video{
  width:min(390px,100%);
  margin:auto;
  padding:12px;
  border:1px solid #333;
  background:#0b0b0b;
  box-shadow:0 24px 80px rgba(0,0,0,.45);
}
.phone-video video{
  width:100%;
  aspect-ratio:9/16;
  object-fit:cover;
  background:#000;
}
@media(max-width:800px){
  .vertical-showcase{grid-template-columns:1fr}
}

.trusted{padding-top:70px;padding-bottom:70px;border-bottom:1px solid var(--line)}
.trusted-logos{display:grid;grid-template-columns:repeat(5,1fr);gap:35px;align-items:center;margin-top:35px}
.trusted-logos img{width:100%;max-height:72px;object-fit:contain;filter:grayscale(1) brightness(1.35);opacity:.72;transition:.3s}
.trusted-logos img:hover{filter:none;opacity:1}
.media-showcase{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:center}
.media-copy p:not(.eyebrow){color:var(--muted)}
.media-player video{width:100%;max-height:78vh;background:#000}
.case-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-width:var(--max);margin:auto;padding:0 var(--pad) 110px}
.case-gallery img{width:100%;height:560px;object-fit:cover}
.case-gallery img:first-child{grid-column:1/-1;height:760px}
@media(max-width:900px){
  .trusted-logos{grid-template-columns:repeat(2,1fr)}
  .media-showcase{grid-template-columns:1fr}
}
@media(max-width:650px){
  .trusted-logos{grid-template-columns:1fr}
  .case-gallery{grid-template-columns:1fr}
  .case-gallery img,.case-gallery img:first-child{grid-column:auto;height:460px}
}

/* Launch polish */
img{background:#0b0b0b}.project img,.case-gallery img{will-change:transform}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #fff;outline-offset:4px}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
