:root{
  --bg:#0b0b0b;
  --fg:#f5f5f2;
  --dim:rgba(245,245,242,0.62);
  --line:rgba(245,245,242,0.16);
  --accent:#d98e2b;
  --reel-ratio:16/9;
  box-sizing:border-box;
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--fg);font-family:'Inter',sans-serif;line-height:1.55;overflow-x:hidden;}
h1,h2,h3{font-family:'Oswald',sans-serif;font-weight:600;}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px;}
a{color:inherit;}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;justify-content:space-between;align-items:flex-start;
  padding:calc(24px + env(safe-area-inset-top,0px)) 28px 0;
  mix-blend-mode:difference;color:#fff;pointer-events:none;
}
nav a{pointer-events:auto;}
.logo{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.4rem;text-decoration:none;letter-spacing:0.02em;}
.navlinks{display:flex;gap:64px;margin-left:auto;}
.navcol{display:flex;flex-direction:column;gap:14px;align-items:flex-start;}
.navlinks a{
  font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:1rem;
  text-transform:uppercase;text-decoration:none;letter-spacing:0.02em;
}
.navlinks a:hover{text-decoration:underline;text-underline-offset:4px;}
@media(max-width:640px){.navlinks{gap:28px;}.navcol{gap:10px;}.navlinks a{font-size:0.78rem;}}

/* HERO */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,11,0.35) 0%,rgba(11,11,11,0.15) 40%,rgba(11,11,11,0.85) 100%);}
/* TV static: noise tile jumping between random offsets */
.hero::after{
  content:"";position:absolute;inset:-200px;z-index:1;pointer-events:none;
  background-image:url("/images/grain.png");background-size:200px 200px;
  opacity:0.35;
  animation:static .5s steps(1) infinite;
}
@keyframes static{
  0%{transform:translate(0,0);}
  10%{transform:translate(-90px,60px);}
  20%{transform:translate(70px,-120px);}
  30%{transform:translate(-150px,-40px);}
  40%{transform:translate(110px,90px);}
  50%{transform:translate(-40px,140px);}
  60%{transform:translate(130px,-70px);}
  70%{transform:translate(-120px,110px);}
  80%{transform:translate(50px,-150px);}
  90%{transform:translate(-70px,-90px);}
}
@media(prefers-reduced-motion:reduce){.hero::after{animation:none;}}

.hero-inner{
  z-index:2;
  position:relative;width:100%;padding:0 28px 40px;
  display:grid;grid-template-columns:1fr minmax(260px,340px);gap:48px;align-items:end;
}
@media(max-width:820px){.hero-inner{grid-template-columns:1fr;gap:32px;}}
.hero h1{
  font-size:clamp(3rem,9.5vw,9.5rem);font-weight:700;line-height:0.86;
  text-transform:uppercase;letter-spacing:-0.01em;
}
.hero h1 span{display:block;}
.hero-foot p{
  font-family:'IBM Plex Mono',monospace;font-size:0.95rem;line-height:1.55;
  text-transform:uppercase;letter-spacing:0.02em;max-width:30ch;
}

/* Pill arrow: slides down out of the pill and re-enters from the top; reverses on un-hover */
.arrow-pill{
  display:block;position:relative;overflow:hidden;
  width:42px;height:72px;margin-top:28px;
  border:2px solid var(--fg);border-radius:42px;color:var(--fg);
}
.arrow-pill svg{
  position:absolute;left:50%;top:50%;width:20px;height:28px;margin:-14px 0 0 -10px;
  transition:transform .55s cubic-bezier(.65,0,.35,1);
}
.arrow-pill .a2{transform:translateY(-90px);}
.arrow-pill:hover .a1,.arrow-pill:focus-visible .a1{transform:translateY(90px);}
.arrow-pill:hover .a2,.arrow-pill:focus-visible .a2{transform:translateY(0);}
.hero h1{animation:rise 1s cubic-bezier(.2,.7,.2,1) both;}
@keyframes rise{from{opacity:0;transform:translateY(40px);}to{opacity:1;transform:none;}}

/* SECTIONS */
section{padding:110px 0;border-top:1px solid var(--line);}
.big{font-size:clamp(2.6rem,8vw,6.5rem);line-height:0.95;text-transform:uppercase;margin-bottom:56px;}

/* ABOUT */

.about-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:72px;align-items:start;}

@media(max-width:820px){.about-grid{grid-template-columns:1fr;gap:48px;}}
.statement{font-size:clamp(1.8rem,4vw,3.1rem);line-height:1.08;text-transform:uppercase;font-weight:600;margin-bottom:56px;max-width:20ch;}
.stats{display:flex;gap:40px;flex-wrap:wrap;}
.stat b{display:block;font-family:'Oswald',sans-serif;font-size:2rem;font-weight:600;}
.stat span{font-size:0.85rem;color:var(--dim);}
.about-copy h3{font-size:1.6rem;margin-bottom:20px;}
.about-copy p{color:var(--dim);margin-bottom:18px;max-width:52ch;}
.btn{display:inline-block;padding:14px 30px;font-family:'Oswald',sans-serif;font-size:1rem;font-weight:500;text-decoration:none;border:1px solid var(--fg);color:var(--fg);background:transparent;cursor:pointer;transition:background .2s,color .2s;border-radius:0;}
.btn:hover{background:var(--fg);color:var(--bg);}
.btn.primary{background:var(--fg);color:var(--bg);}
.btn.primary:hover{background:transparent;color:var(--fg);}
.about-copy .btn{margin-top:14px;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* MARQUEE */
.marquee{border-top:1px solid var(--line);overflow:hidden;padding:26px 0;}
/* spacing is margin (not flex gap) so the two copies are exactly half the track each -> seamless loop */
.track{display:flex;width:max-content;animation:scroll 32s linear infinite;}
.track span{font-family:'Oswald',sans-serif;font-size:clamp(1.8rem,4vw,3rem);text-transform:uppercase;color:var(--dim);white-space:nowrap;margin-right:56px;}
.track span::after{content:"/";margin-left:56px;color:var(--accent);}
@keyframes scroll{to{transform:translateX(-50%);}}

/* WORK */
.reel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media(max-width:700px){.reel-grid{grid-template-columns:1fr;}}
.reel-video{width:100%;aspect-ratio:var(--reel-ratio);object-fit:cover;background:#000;display:block;}

/* CONTACT */
.contact-head{display:flex;align-items:center;gap:48px;margin-bottom:64px;}
.contact-head .big{margin-bottom:0;}
.portrait{width:clamp(96px,14vw,170px);height:auto;aspect-ratio:1/1;border-radius:50%;object-fit:cover;object-position:right 15%;display:block;flex:none;}
.link-rows{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;}
.link-row:first-child{grid-column:1/-1;}
.link-row{display:flex;justify-content:space-between;align-items:center;gap:24px;text-decoration:none;text-transform:uppercase;
  font-size:clamp(1.3rem,3vw,2.4rem);line-height:1.1;padding:22px 0 20px;border-bottom:3px solid rgba(245,245,242,0.2);transition:border-color .25s,color .25s;}
.link-row span{min-width:0;overflow-wrap:anywhere;}
.link-row svg{flex:none;width:clamp(20px,3vw,40px);height:auto;transition:transform .3s cubic-bezier(.2,.7,.2,1);}
.link-row:hover{border-color:var(--fg);}
.link-row:hover svg{transform:translate(4px,-4px);}
.lead{color:var(--dim);max-width:48ch;margin:72px 0 32px;}
.inquiry-form{display:flex;flex-direction:column;gap:18px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:480px){.form-row{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:0.82rem;color:var(--dim);}
.field input,.field select,.field textarea{background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--fg);padding:10px 0;font-family:'Inter',sans-serif;font-size:1rem;border-radius:0;}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23f5f5f2' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;}
.field select option{background:var(--bg);color:var(--fg);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--fg);}
.inquiry-form textarea{resize:vertical;}
.inquiry-form .btn{align-self:flex-start;}

/* FOOTER */
footer{border-top:1px solid var(--line);padding:70px 0 40px;}
.foot-name{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(3rem,12vw,11rem);line-height:0.88;text-transform:uppercase;}
.foot-bottom{margin-top:48px;display:flex;justify-content:space-between;font-size:0.8rem;color:var(--dim);flex-wrap:wrap;gap:8px;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .hero h1{animation:none;}
  .track{animation:none;}
  *{transition:none!important;}
}

/* ===== PHONE / IN-APP BROWSER (Instagram etc). Desktop is untouched. ===== */
@media(max-width:700px){
  html{-webkit-text-size-adjust:100%;overflow-x:hidden;}
  .wrap{padding:0 20px;}

  /* Nav: no blend mode (unreliable in in-app browsers), scrolls away instead of floating over content */
  nav{
    position:absolute;mix-blend-mode:normal;
    padding:calc(16px + env(safe-area-inset-top,0px)) 20px 0;
    background:linear-gradient(180deg,rgba(11,11,11,0.55),rgba(11,11,11,0));
    padding-bottom:28px;
  }
  .logo{font-size:1.15rem;}
  .navlinks{gap:22px;}
  .navcol{gap:8px;}
  .navlinks a{font-size:0.72rem;}

  /* Hero */
  .hero{min-height:100vh;min-height:100dvh;}
  .hero-inner{padding:120px 20px 32px;gap:24px;}
  .hero h1{font-size:clamp(2.6rem,14vw,4.2rem);line-height:0.9;}
  .hero-foot p{font-size:0.8rem;max-width:34ch;}
  .arrow-pill{margin-top:20px;}
  /* lighter static: no blend mode, so video stays smooth */
  .hero::after{inset:-120px;opacity:0.35;animation-duration:.7s;}

  /* Spacing */
  section{padding:64px 0;}
  .big{font-size:clamp(2.2rem,12vw,3.4rem);margin-bottom:32px;}
  .statement{font-size:1.6rem;margin-bottom:32px;max-width:none;}
  .about-grid{gap:36px;}
  .stats{gap:24px 32px;}
  .stat b{font-size:1.6rem;}
  .about-copy p{max-width:none;}

  /* Marquee */
  .marquee{padding:18px 0;}
  .track span{margin-right:32px;}
  .track span::after{margin-left:32px;}


  /* Contact: 16px inputs stop iOS zooming in, full-width tap-friendly button */
  .contact-head{gap:20px;margin-bottom:40px;}
  .portrait{width:clamp(72px,22vw,110px);}
  /* one link per row so words never split mid-word ("INSTAGRA / M") */
  .link-rows{grid-template-columns:1fr;}
  .link-row{font-size:clamp(1.05rem,5.4vw,1.4rem);padding:18px 0 16px;}
  .lead{margin-top:48px;}
  .field input,.field select,.field textarea{font-size:16px;}
  .inquiry-form .btn{align-self:stretch;text-align:center;padding:16px;}

  /* Footer */
  footer{padding:48px 0 32px;}
  .foot-name{font-size:clamp(2.4rem,13vw,3.6rem);}
  .foot-bottom{margin-top:32px;}
}

/* Nav links fade out once the About section reaches the top; logo stays */
.navlinks{transition:opacity .35s ease,visibility .35s ease;}
nav.links-hidden .navlinks{opacity:0;visibility:hidden;}
nav.links-hidden .navlinks a{pointer-events:none;}
