:root{
  --bg:#05060a;
  --bg2:#070812;
  --panel:rgba(255,255,255,.04);
  --panel2:rgba(255,255,255,.06);
  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.66);
  --line:rgba(255,255,255,.10);

  --accent:#ff3b30;      /* subtle cinema red */
  --accent2:#06b6d4;     /* cool highlight */
  --shadow: 0 18px 60px rgba(0,0,0,.55);

  --radius:18px;
  --radius2:26px;
  --max:1140px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(900px 600px at 12% 12%, rgba(255,59,48,.10), transparent 55%),
    radial-gradient(900px 600px at 86% 22%, rgba(6,182,212,.10), transparent 55%),
    radial-gradient(700px 500px at 55% 92%, rgba(255,255,255,.05), transparent 58%),
    linear-gradient(180deg, var(--bg), var(--bg2));
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  line-height: 1.55;
  overflow-x:hidden;
}

/* film grain overlay */
body::before{
  content:"";
  position:fixed;
  inset:-40px;
  pointer-events:none;
  opacity:.12;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
  background-size: 220px 220px;
  transform: rotate(1deg);
}

img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
a:hover{opacity:.96}
code{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}

.container{width:min(var(--max), calc(100% - 44px)); margin-inline:auto}
.skip{position:absolute; left:-999px; top:10px; background:#fff; color:#000; padding:10px 14px; border-radius:12px; z-index:999}
.skip:focus{left:12px}

/* Header */
.site-header{
  position:sticky; top:0; z-index:60;
  backdrop-filter: blur(14px);
  background: rgba(5,6,10,.58);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:12px}
.brand-mark{height:28px; width:auto; filter: drop-shadow(0 14px 30px rgba(0,0,0,.55))}
.nav{position:relative}
.nav-list{display:flex; align-items:center; gap:10px; list-style:none; padding:0; margin:0}
.nav-list a{
  padding:10px 12px;
  border-radius: 999px;
  color: var(--muted);
  font-weight:650;
  letter-spacing:.01em;
}
.nav-list a:hover{background: rgba(255,255,255,.06); color: var(--text)}
.nav-list a.btn{color:#05060a}

.nav-toggle{
  display:none;
  width:44px; height:44px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}
.hamburger{width:18px; height:2px; background: var(--text); display:block; margin: 0 auto; position: relative}
.hamburger:before,.hamburger:after{content:""; position:absolute; left:0; width:18px; height:2px; background: var(--text)}
.hamburger:before{top:-6px}
.hamburger:after{top:6px}
@media (max-width: 860px){
  .nav-toggle{display:inline-grid; place-items:center}
  .nav-list{
    position:absolute; right: 0; top: 58px;
    width: min(340px, calc(100vw - 44px));
    padding: 12px;
    border-radius: 18px;
    background: rgba(8,9,14,.96);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: var(--shadow);
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    display: none;
  }
  .nav-list.open{display:flex}
  .nav-list a{display:flex; justify-content:center}
}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:12px 16px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.14);
  background: linear-gradient(135deg, rgba(255,59,48,.92), rgba(6,182,212,.80));
  color:#05060a;
  box-shadow: 0 18px 50px rgba(255,59,48,.10);
  font-weight:850;
  letter-spacing:.01em;
}
.btn:hover{transform: translateY(-1px)}
.btn:active{transform: translateY(0px)}
.btn.secondary{
  background: rgba(255,255,255,.06);
  color: var(--text);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow:none;
}
.btn.ghost{background: transparent; color: var(--text)}
.btn-sm{padding:10px 14px; font-size:14px}

/* Type */
.kicker{
  color: rgba(255,255,255,.65);
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size: 11px;
}
.title{
  font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
  font-weight: 800;
  letter-spacing: -0.03em;
}
.h1{
  font-size: clamp(40px, 6vw, 78px);
  line-height: .95;
  margin: 10px 0 12px;
}
.h2{
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.1;
  margin: 0;
}
.lede{
  color: var(--muted);
  font-size: clamp(16px, 1.6vw, 18px);
  max-width: 72ch;
}

/* Sections & cards */
.section{padding: 54px 0}
.card{
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius2);
  box-shadow: var(--shadow);
}
.panel{padding: 22px}
.grid-2{display:grid; grid-template-columns: 1.12fr .88fr; gap: 18px}
@media (max-width: 900px){.grid-2{grid-template-columns:1fr}}
.grid-3{display:grid; grid-template-columns: repeat(3, 1fr); gap: 16px}
@media (max-width: 900px){.grid-3{grid-template-columns:1fr}}

.pill{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 12px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
  color: rgba(255,255,255,.70);
  font-size: 13px;
  font-weight:750;
}

/* Film strip divider */
.filmline{
  margin-top: 18px;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 10px, transparent 10px 22px);
  border-radius: 18px;
  overflow:hidden;
}
.filmline .track{
  display:flex; gap: 20px; padding: 12px 16px;
  width: max-content;
  animation: filmrun 18s linear infinite;
}
.filmline .tag{
  display:inline-flex; align-items:center;
  gap: 10px;
  font-weight:900;
  letter-spacing: .01em;
  text-transform: lowercase;
  color: rgba(255,255,255,.88);
}
.filmline .dot{
  width:6px; height:6px; border-radius:999px;
  background: linear-gradient(135deg,var(--accent),var(--accent2));
}
@keyframes filmrun{ 0%{transform: translateX(0)} 100%{transform: translateX(-50%)} }

/* Embeds */
.iframe-wrap{
  aspect-ratio: 16/9;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
}
.iframe-wrap iframe{width:100%; height:100%; border:0}

/* Work grid */
.work-grid{display:grid; grid-template-columns: repeat(2, 1fr); gap: 16px}
@media (max-width: 900px){.work-grid{grid-template-columns: 1fr}}
.playlist{padding: 16px}
.playlist h3{margin: 4px 0 10px; font-size: 18px; letter-spacing:-.01em}
.playlist p{margin: 0 0 10px; color: var(--muted); font-size: 14px}
.playlist:hover{transform: translateY(-2px)}
.playlist{transition: transform .25s ease}

/* Page hero */
.page-hero{padding: 42px 0 12px}
.breadcrumb{color: var(--muted); font-size: 14px}
.page-hero h1{margin: 10px 0 10px}
.page-hero p{margin:0; color: var(--muted); max-width: 75ch}

/* Contact */
.form{display:grid; gap: 12px}
.field{display:grid; gap: 6px}
label{font-weight:800; color: var(--text); font-size: 13px; letter-spacing:.02em}
input, textarea{
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
  color: var(--text);
  outline: none;
}
textarea{min-height: 140px; resize: vertical}
input:focus, textarea:focus{border-color: rgba(255,59,48,.55); box-shadow: 0 0 0 4px rgba(255,59,48,.12)}
.form-row{display:grid; grid-template-columns: 1fr 1fr; gap: 12px}
@media (max-width: 700px){.form-row{grid-template-columns: 1fr}}
.contact-grid{display:grid; grid-template-columns: 1.15fr .85fr; gap: 16px}
@media (max-width: 900px){.contact-grid{grid-template-columns: 1fr}}
.kv{padding: 18px}
.kv ul{margin:0; padding-left: 18px; color: var(--muted)}
hr.sep{border:0; border-top:1px solid var(--line); margin: 18px 0}

/* Footer */
.site-footer{border-top: 1px solid rgba(255,255,255,.08); margin-top: 26px; background: rgba(5,6,10,.55)}
.footer-grid{display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 18px; padding: 26px 0 12px}
@media (max-width: 900px){.footer-grid{grid-template-columns:1fr}}
.footer-brand{font-weight:950; letter-spacing: -.02em; margin-bottom: 6px}
.footer-title{font-weight:900; margin-bottom: 8px}
.footer-links{list-style:none; padding:0; margin:0; display:grid; gap:6px}
.footer-links a{color: var(--muted)}
.footer-links a:hover{color: var(--text)}
.footer-bottom{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding: 12px 0 22px; border-top: 1px solid rgba(255,255,255,.06)}
.muted{color: var(--muted)}

/* Reveal */
.reveal{opacity:0; transform: translateY(14px); transition: all .75s ease}
.reveal.in{opacity:1; transform:none}

/* --- Layout fixes (responsive + no overflow) --- */
html, body { width: 100%; }
* { min-width: 0; } /* prevent grid overflow from long content */
body { overflow-x: hidden; }
img, video, canvas, svg { max-width: 100%; height: auto; }
iframe { max-width: 100%; display: block; }

.container { padding-inline: 0; } /* rely on calc margin; avoid double padding */
@media (max-width: 520px){
  .container{ width: calc(100% - 28px); }
  .h1{ font-size: clamp(34px, 10vw, 52px); }
  .nav-list{ width: calc(100vw - 28px) !important; }
}

/* Ensure cards and panels never exceed viewport */
.card, .panel, .iframe-wrap { max-width: 100%; overflow: hidden; }

/* Prevent long text from pushing layout */
h1, h2, h3, p { overflow-wrap: anywhere; word-break: break-word; }

/* Safer mobile menu positioning */
@media (max-width: 860px){
  .nav-list{
    left: 0;
    right: auto;
    margin-inline: auto;
  }
}

/* Filmline and moving track should not create scrollbars */
.filmline { overflow: hidden; }
.filmline .track { will-change: transform; }

/* === Cinematic overrides === */
:root{
  --bg:#05060a;
  --panel:#0b0d13;
  --text:#f3f6ff;
  --muted:rgba(243,246,255,.72);
  --line:rgba(255,255,255,.10);
  --glow1:#ff3b30;
  --glow2:#06b6d4;
  --shadow: 0 18px 60px rgba(0,0,0,.55);
}

/* background + grain */
body{
  background:
    radial-gradient(900px 600px at 12% 12%, rgba(255,59,48,.12), transparent 55%),
    radial-gradient(900px 600px at 88% 22%, rgba(6,182,212,.10), transparent 55%),
    radial-gradient(700px 500px at 55% 92%, rgba(255,255,255,.05), transparent 58%),
    var(--bg);
}
body::before{
  content:"";
  position:fixed;
  inset:-40px;
  pointer-events:none;
  opacity:.10;
  mix-blend-mode: overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
  background-size:220px 220px;
  transform: rotate(1deg);
}

/* serif headlines */
.h-title, .page-hero h1, .section-title h2, h1{
  font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
  letter-spacing:-0.03em;
}

/* richer spacing (safe) */
.section{padding: 54px 0;}
.hero{padding-top: 64px;}
.card{background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));}

/* film-strip motion band */
.filmstrip{
  margin-top: 18px;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 10px, transparent 10px 22px);
  border-radius: 18px;
  overflow:hidden;
}
.filmstrip .track{
  display:flex;
  gap: 20px;
  padding: 12px 16px;
  width: max-content;
  animation: filmrun 18s linear infinite;
}
.filmstrip .tag{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  font-weight:900;
  letter-spacing:.01em;
  text-transform: lowercase;
  color: rgba(243,246,255,.90);
}
.filmstrip .dot{
  width:6px;height:6px;border-radius:999px;
  background: linear-gradient(135deg,var(--glow1),var(--glow2));
}
@keyframes filmrun{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* keep within viewport */
html,body{width:100%}
body{overflow-x:hidden}
*{min-width:0}
h1,h2,h3,p{overflow-wrap:anywhere}

/* === Header Contact Button (cinematic) === */
.header-contact{
  background: rgba(255,255,255,.06) !important;
  color: var(--text) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.35) !important;
}
.header-contact:hover{
  background: linear-gradient(135deg, rgba(255,59,48,.30), rgba(6,182,212,.22)) !important;
  border-color: rgba(255,255,255,.24) !important;
  transform: translateY(-1px);
}
.header-contact:active{ transform: translateY(0px); }


/* Keep toggle and dropdown within viewport */
@media (max-width: 860px){
  .nav{ position: relative; }
  .nav-list{
    right: 0 !important;
    left: 0 !important;
    margin: 0 auto;
    width: min(340px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
  }
}

/* Prevent accidental horizontal scroll caused by header */
html, body{ width:100%; overflow-x:hidden; }
.site-header, .header-inner{ max-width:100%; }


/* Ensure header never creates horizontal scroll */
html, body{ overflow-x: hidden; }

/* === Mobile menu centered dropdown (v7) === */
@media (max-width: 900px){
  /* keep toggle safely inside header */
  .site-header .container{
    width: 100% !important;
    margin: 0 auto !important;
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }

  /* center dropdown under header */
  .nav{ position: relative !important; }
  .nav-list{
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    top: 62px !important;
    transform: translateX(-50%) !important;

    width: min(360px, calc(100vw - 32px)) !important;
    max-height: calc(100vh - 120px) !important;
    overflow: auto !important;

    padding: 14px !important;
    border-radius: 20px !important;
    background: rgba(8,9,14,.98) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    box-shadow: 0 22px 70px rgba(0,0,0,.65) !important;

    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    z-index: 1002 !important;
  }
  .nav-list.open{ display: flex !important; }

  .nav-list a{
    color: rgba(243,246,255,.92) !important;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.10);
  }
  .nav-list a.btn{
    background: linear-gradient(135deg, rgba(255,59,48,.92), rgba(6,182,212,.82)) !important;
    color: #05060a !important;
    border: 1px solid rgba(255,255,255,.14) !important;
  }

  /* remove any blur backdrop behavior */
  body.nav-open::after{ content: none !important; }
  body.nav-open{ overflow: auto !important; }
}

/* prevent horizontal scroll */
html, body{ overflow-x: hidden; }
