/* ==========================================================================
   MYM COMUNICACIONES — Productora de cine
   ========================================================================== */

:root{
  /* ---- Dark theme (default, "sala de proyección") ---- */
  --bg: #0a0908;
  --bg-alt: #121110;
  --surface: #171513;
  --surface-2: #1e1b18;
  --ink: #f3ede2;
  --ink-dim: #b9b0a2;
  --ink-faint: #7d7468;
  --line: rgba(243,237,226,0.12);
  --gold: #c9a24b;
  --gold-bright: #e6c574;
  --red: #8c2f28;
  --red-bright: #b8382c;

  --font-display: "Big Shoulders Display", sans-serif;
  --font-serif: "Fraunces", serif;
  --font-mono: "Space Mono", monospace;

  --ease: cubic-bezier(.16,.84,.44,1);
  --ease-soft: cubic-bezier(.22,.61,.36,1);
}

:root[data-theme="light"]{
  --bg: #f3ede1;
  --bg-alt: #ece4d4;
  --surface: #fbf8f1;
  --surface-2: #eee5d2;
  --ink: #1a1613;
  --ink-dim: #4a423a;
  --ink-faint: #948a7c;
  --line: rgba(26,22,19,0.12);
  --gold: #9c7a2e;
  --gold-bright: #b3902f;
  --red: #7c281f;
  --red-bright: #9c3126;
}

*,*::before,*::after{ box-sizing: border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
html,body{ background:var(--bg); }

body{
  font-family: var(--font-serif);
  color: var(--ink);
  background: var(--bg);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  transition: background .5s var(--ease), color .5s var(--ease);
  cursor: default;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; background:none; border:none; color:inherit; cursor:pointer; }
input,textarea,select{ font-family:inherit; }
::selection{ background: var(--gold); color:#0a0908; }

.container{
  width:100%;
  max-width: 1320px;
  margin:0 auto;
  padding:0 clamp(20px, 5vw, 64px);
}

/* ============== GRAIN / VIGNETTE ============== */
.grain-overlay{
  position:fixed; inset:0; z-index:9990; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grainShift 1s steps(4) infinite;
}
@keyframes grainShift{
  0%{ transform:translate(0,0); } 25%{ transform:translate(-2%,1%); }
  50%{ transform:translate(1%,-2%); } 75%{ transform:translate(-1%,2%); }
  100%{ transform:translate(0,0); }
}
.vignette-overlay{
  position:fixed; inset:0; z-index:9989; pointer-events:none;
  box-shadow: inset 0 0 18vw 2vw rgba(0,0,0,.55);
  opacity:.6;
}
:root[data-theme="light"] .vignette-overlay{ opacity:.18; }

/* ============== CUSTOM CURSOR ============== */
.cursor-dot,.cursor-ring{ position:fixed; top:0; left:0; pointer-events:none; z-index:9998; border-radius:50%; transform:translate(-50%,-50%); }
.cursor-dot{ width:6px; height:6px; background:var(--gold); }
.cursor-ring{ width:34px; height:34px; border:1px solid var(--gold); opacity:.6; transition: width .25s var(--ease), height .25s var(--ease), opacity .25s var(--ease); }
.cursor-ring.hovering{ width:60px; height:60px; opacity:1; background:rgba(201,162,75,.08); }
@media (hover:none), (pointer:coarse){ .cursor-dot,.cursor-ring{ display:none; } }

/* ============== SCROLL PROGRESS ============== */
.scroll-progress{ position:fixed; top:0; left:0; height:2px; background:linear-gradient(90deg,var(--gold),var(--red)); width:0%; z-index:9997; }

/* ============== PRELOADER ============== */
.preloader{
  position:fixed; inset:0; z-index:10000; background:#0a0908;
  display:flex; align-items:center; justify-content:center;
  transition: opacity .8s var(--ease), visibility .8s var(--ease);
}
.preloader.done{ opacity:0; visibility:hidden; }
.preloader-inner{ text-align:center; color:#f3ede2; }
.preloader-clap{
  width:110px; height:78px; margin:0 auto 28px; position:relative;
  border:2px solid var(--gold); border-radius:4px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background: repeating-linear-gradient(45deg, #171513, #171513 8px, #201c18 8px, #201c18 16px);
}
.preloader-clap::before{
  content:""; position:absolute; top:0; left:0; right:0; height:16px;
  background: repeating-linear-gradient(-45deg, #0a0908, #0a0908 8px, var(--gold) 8px, var(--gold) 16px);
  transform-origin: left top; animation: clapSlate 1.8s var(--ease) infinite;
}
@keyframes clapSlate{ 0%,15%{ transform:rotate(0); } 20%,35%{ transform:rotate(-14deg); } 40%,100%{ transform:rotate(0); } }
.clap-num{ font-family:var(--font-mono); font-size:1.8rem; letter-spacing:.05em; color:var(--gold-bright); }
.preloader-label{ font-family:var(--font-display); font-weight:800; letter-spacing:.28em; font-size:.85rem; margin-bottom:18px; }
.preloader-bar{ width:180px; height:2px; background:rgba(243,237,226,.15); margin:0 auto; }
.preloader-bar span{ display:block; height:100%; width:0%; background:var(--gold); transition: width .3s linear; }

/* ============== REVEAL ANIMATIONS (base state) ============== */
[data-reveal],[data-reveal-line]{ opacity:0; }
[data-reveal]{ transform: translateY(28px); }
.js-ready [data-reveal].in-view{ opacity:1; transform:none; transition: opacity .9s var(--ease), transform .9s var(--ease); }
[data-reveal-line]{ overflow:hidden; display:block; }
[data-reveal-line] .word{ display:inline-block; transform: translateY(115%); transition: transform 1s var(--ease); }
.js-ready [data-reveal-line].in-view .word{ transform:translateY(0); }

/* ============== HEADER ============== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:500;
  padding: 22px 0; transition: background .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  padding: 14px 0; background: rgba(10,9,8,.82); backdrop-filter: blur(14px);
  border-bottom:1px solid var(--line);
}
:root[data-theme="light"] .site-header.scrolled{ background: rgba(243,237,225,.86); }
.header-inner{
  max-width:1320px; margin:0 auto; padding:0 clamp(20px,5vw,64px);
  display:flex; align-items:center; justify-content:space-between;
}
.brand{ display:flex; flex-direction:column; line-height:1; color:var(--ink); }
.brand-mark{ font-family:var(--font-display); font-weight:900; font-size:1.6rem; letter-spacing:.04em; }
.brand-sub{ font-family:var(--font-mono); font-size:.56rem; letter-spacing:.32em; color:var(--gold); margin-top:4px; }

.main-nav{ display:flex; gap:38px; }
.main-nav a{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-dim); display:flex; align-items:center; gap:8px; position:relative; padding:4px 0;
  transition: color .3s var(--ease);
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
  transition: width .35s var(--ease);
}
.main-nav a:hover{ color:var(--ink); }
.main-nav a:hover::after{ width:100%; }
.nav-num{ color:var(--gold); font-size:.65rem; }

.header-actions{ display:flex; align-items:center; gap:18px; }
.theme-toggle{ width:38px; height:38px; border:1px solid var(--line); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--ink); transition: border-color .3s, background .3s; }
.theme-toggle:hover{ border-color:var(--gold); }
.theme-toggle svg{ width:18px; height:18px; }
.icon-moon{ display:none; }
:root[data-theme="light"] .icon-sun{ display:none; }
:root[data-theme="light"] .icon-moon{ display:block; }

.menu-toggle{ display:none; width:38px; height:38px; flex-direction:column; align-items:center; justify-content:center; gap:6px; }
.menu-toggle span{ width:22px; height:1.5px; background:var(--ink); transition: transform .3s var(--ease), opacity .3s; }
.menu-toggle.open span:nth-child(1){ transform: translateY(3.75px) rotate(45deg); }
.menu-toggle.open span:nth-child(2){ transform: translateY(-3.75px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; z-index:480; background:var(--bg);
  display:flex; flex-direction:column; justify-content:center; padding:0 32px;
  transform: translateY(-100%); transition: transform .55s var(--ease);
}
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu nav{ display:flex; flex-direction:column; gap:6px; }
.mobile-menu nav a{ font-family:var(--font-display); font-size:14vw; font-weight:800; line-height:1; color:var(--ink); display:flex; align-items:baseline; gap:16px; }
.mobile-menu nav a span{ font-family:var(--font-mono); font-size:.9rem; color:var(--gold); }
.mobile-menu-footer{ margin-top:48px; display:flex; gap:28px; font-family:var(--font-mono); font-size:.8rem; letter-spacing:.08em; color:var(--ink-dim); }

/* ============== HERO ============== */
.hero{ position:relative; height:100svh; min-height:640px; overflow:hidden; display:flex; align-items:flex-end; }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-video{ width:100%; height:100%; object-fit:cover; filter: grayscale(.15) contrast(1.12) brightness(.62) saturate(1.05); }
#particles{ position:absolute; inset:0; width:100%; height:100%; mix-blend-mode:screen; opacity:.7; }
.hero-scrim{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(10,9,8,.35) 0%, rgba(10,9,8,.25) 35%, rgba(10,9,8,.85) 88%, #0a0908 100%),
              linear-gradient(90deg, rgba(10,9,8,.55) 0%, rgba(10,9,8,0) 40%, rgba(10,9,8,0) 60%, rgba(10,9,8,.55) 100%);
}
:root[data-theme="light"] .hero-scrim{
  background: linear-gradient(180deg, rgba(10,9,8,.45) 0%, rgba(10,9,8,.3) 35%, rgba(243,237,225,.92) 90%, var(--bg) 100%),
              linear-gradient(90deg, rgba(10,9,8,.5) 0%, rgba(10,9,8,0) 40%, rgba(10,9,8,0) 60%, rgba(10,9,8,.5) 100%);
}
.hero-scanlines{
  position:absolute; inset:0; pointer-events:none; opacity:.12;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,.4) 0px, transparent 1px, transparent 3px);
}

.hero-frame-marks{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.fm{
  position:absolute; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.15em;
  color:rgba(243,237,226,.75); text-transform:uppercase;
}
.fm-tl{ top:100px; left:clamp(20px,5vw,64px); }
.fm-tr{ top:100px; right:clamp(20px,5vw,64px); color:var(--red-bright); }
.fm-bl{ bottom:150px; left:clamp(20px,5vw,64px); }
.fm-br{ bottom:150px; right:clamp(20px,5vw,64px); }

.hero-content{ position:relative; z-index:3; width:100%; padding: 0 clamp(20px,5vw,64px) 150px; }
.hero-eyebrow{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold-bright); margin-bottom:22px;
}
.hero-title{
  font-family:var(--font-display); font-weight:900; text-transform:uppercase;
  font-size:clamp(3.4rem, 11vw, 9.5rem); line-height:.86; letter-spacing:-.01em;
  color:#f3ede2; margin-bottom:32px;
}
:root[data-theme="light"] .hero-title{ color:#f8f4ea; }
.word-outline{ -webkit-text-stroke: 2px #f3ede2; color:transparent; }
.hero-desc{
  max-width:560px; font-size:clamp(1rem,1.6vw,1.2rem); line-height:1.6; color:rgba(243,237,226,.82); margin-bottom:40px;
  font-weight:300; font-style:italic;
}
.hero-cta{ display:flex; gap:20px; flex-wrap:wrap; }

.btn{
  display:inline-flex; align-items:center; gap:10px; padding:16px 30px;
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  border-radius:100px; transition: transform .4s var(--ease), background .4s, color .4s, border-color .4s;
}
.btn svg{ width:16px; height:16px; transition: transform .35s var(--ease); }
.btn-primary{ background:var(--gold); color:#0a0908; }
.btn-primary:hover{ transform:translateY(-3px); background:var(--gold-bright); }
.btn-primary:hover svg{ transform:translateX(4px); }
.btn-ghost{ border:1px solid rgba(243,237,226,.35); color:#f3ede2; }
.btn-ghost:hover{ border-color:var(--gold); background:rgba(201,162,75,.1); transform:translateY(-3px); }
.btn-block{ width:100%; justify-content:center; }

.hero-scroll-cue{
  position:absolute; z-index:3; bottom:44px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.3em; color:rgba(243,237,226,.65);
}
.scroll-line{ width:1px; height:46px; background:rgba(243,237,226,.25); overflow:hidden; }
.scroll-line i{ display:block; width:100%; height:16px; background:var(--gold); animation: scrollCue 2s var(--ease) infinite; }
@keyframes scrollCue{ 0%{ transform:translateY(-16px); } 60%,100%{ transform:translateY(46px); } }

/* ============== MARQUEE ============== */
.marquee-strip{
  background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  overflow:hidden; white-space:nowrap; padding:18px 0; position:relative; z-index:2;
}
.marquee-track{ display:inline-flex; align-items:center; gap:28px; animation: marquee 34s linear infinite; }
.marquee-track span{
  font-family:var(--font-display); font-weight:700; font-size:1.15rem; letter-spacing:.04em;
  color:var(--ink-dim); text-transform:uppercase;
}
.marquee-track .dot{ color:var(--gold); font-size:.9rem; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ============== MANIFESTO ============== */
.manifesto{ padding: clamp(90px,14vw,160px) 0; background:var(--bg); }
.manifesto-text{
  font-family:var(--font-serif); font-weight:300; font-style:italic;
  font-size:clamp(1.5rem, 3.4vw, 2.6rem); line-height:1.45; max-width:1000px; color:var(--ink);
}
.manifesto-text em{ color:var(--gold); font-style:italic; }
.manifesto-text .hl{ background: linear-gradient(180deg, transparent 62%, rgba(201,162,75,.35) 62%); font-style:normal; font-weight:500; }

/* ============== STATS ============== */
.stats{ padding: 60px 0 110px; border-top:1px solid var(--line); }
.stats-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:32px; }
.stat-item{ display:flex; flex-direction:column; }
.stat-num{ font-family:var(--font-display); font-weight:900; font-size:clamp(2.6rem,5vw,4.2rem); color:var(--gold); line-height:1; }
.stat-plus{ font-family:var(--font-display); font-weight:700; font-size:1.6rem; color:var(--gold); }
.stat-label{ margin-top:10px; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; color:var(--ink-dim); text-transform:uppercase; }

/* ============== PROJECTS ============== */
.projects{ padding: 60px 0 40px; }
.section-head{ margin-bottom: 64px; }
.section-tag{
  display:inline-block; font-family:var(--font-mono); font-size:.75rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--gold); margin-bottom:20px;
}
.section-tag--light{ color:var(--gold-bright); }
.section-title{
  font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  font-size:clamp(2.4rem,6vw,4.8rem); line-height:.95; color:var(--ink);
}

.projects-list{ display:flex; flex-direction:column; }
.project-row{
  display:grid; grid-template-columns: 1.15fr .85fr; align-items:center;
  border-top:1px solid var(--line); padding: clamp(40px,6vw,80px) clamp(20px,5vw,64px);
  position:relative; overflow:hidden;
  transition: background .5s var(--ease);
}
.project-row:last-child{ border-bottom:1px solid var(--line); }
.project-row:hover{ background: var(--surface); }
.project-row--reverse{ grid-template-columns: .85fr 1.15fr; }
.project-row--reverse .project-img{ order:2; }
.project-row--reverse .project-info{ order:1; }

.project-img{ position:relative; overflow:hidden; border-radius:6px; aspect-ratio:4/3; }
.project-img img{ width:100%; height:100%; object-fit:cover; transform:scale(1.12); filter:saturate(1.05) contrast(1.05); transition: transform 1.1s var(--ease), filter .6s; }
.project-row:hover .project-img img{ transform:scale(1); }
.project-img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,9,8,0) 55%, rgba(10,9,8,.55) 100%);
}

.project-info{ padding: 0 clamp(0px,3vw,48px); }
.project-index{ font-family:var(--font-mono); color:var(--gold); font-size:.85rem; letter-spacing:.1em; }
.project-title{ font-family:var(--font-display); font-weight:900; font-size:clamp(2.2rem,4.6vw,4rem); line-height:1; margin: 14px 0 10px; color:var(--ink); }
.project-meta{ font-family:var(--font-mono); font-size:.78rem; letter-spacing:.06em; color:var(--ink-faint); text-transform:uppercase; margin-bottom:18px; }
.project-desc{ font-size:1rem; line-height:1.65; color:var(--ink-dim); max-width:460px; margin-bottom:22px; }
.project-tags{ display:flex; gap:10px; flex-wrap:wrap; }
.project-tags span{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.05em; text-transform:uppercase;
  padding:7px 14px; border:1px solid var(--line); border-radius:100px; color:var(--ink-dim);
}

.link-arrow{
  display:inline-flex; align-items:center; gap:14px; margin: 56px 0 20px;
  font-family:var(--font-display); font-weight:700; font-size:clamp(1.3rem,2.4vw,1.8rem); color:var(--ink);
}
.link-arrow svg{ width:26px; height:26px; color:var(--gold); transition: transform .4s var(--ease); }
.link-arrow:hover svg{ transform: translateX(10px); }

/* ============== SERVICES ============== */
.services{ padding: clamp(90px,12vw,150px) 0; background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.services-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:20px; }
.service-card{ background:var(--surface); padding: 44px 34px; transition: background .4s var(--ease); position:relative; }
.service-card:hover{ background:var(--surface-2); }
.service-num{ font-family:var(--font-mono); color:var(--gold); font-size:.85rem; letter-spacing:.1em; }
.service-card h3{ font-family:var(--font-display); font-weight:700; font-size:1.5rem; margin: 16px 0 12px; text-transform:uppercase; letter-spacing:.01em; }
.service-card p{ font-size:.95rem; line-height:1.6; color:var(--ink-dim); }

/* ============== STUDIO (parallax) ============== */
.studio{ position:relative; padding: clamp(120px,16vw,220px) 0; overflow:hidden; }
.studio-bg{ position:absolute; inset:-10% 0; z-index:0; }
.studio-bg img{ width:100%; height:120%; object-fit:cover; filter:saturate(.9) contrast(1.05) brightness(.65); }
.studio-scrim{ position:absolute; inset:0; z-index:1; background: linear-gradient(180deg, var(--bg) 0%, rgba(10,9,8,.55) 20%, rgba(10,9,8,.75) 80%, var(--bg) 100%); }
.studio-content{ position:relative; z-index:2; }
.studio-title{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:clamp(2.2rem,5.6vw,4.4rem); line-height:1.02; color:#f3ede2; margin: 18px 0 26px; }
.studio-title em{ font-family:var(--font-serif); font-style:italic; font-weight:400; text-transform:none; color:var(--gold-bright); }
.studio-desc{ max-width:600px; font-size:1.05rem; line-height:1.7; color:rgba(243,237,226,.82); margin-bottom:44px; }
.studio-crew{ display:grid; grid-template-columns: repeat(3,1fr); gap:16px; max-width:640px; }
.studio-crew img{ border-radius:6px; aspect-ratio:3/4; object-fit:cover; filter:saturate(1.05); }

/* ============== PROCESS ============== */
.process{ padding: clamp(90px,12vw,150px) 0; }
.process-steps{ display:grid; grid-template-columns: repeat(4,1fr); gap: 40px; margin-top:50px; }
.process-step{ border-top:2px solid var(--gold); padding-top:22px; }
.process-count{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; color:var(--ink-faint); }
.process-step h4{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:1.7rem; margin:12px 0 10px; }
.process-step p{ font-size:.92rem; line-height:1.6; color:var(--ink-dim); }

/* ============== CONTACT ============== */
.contact{ position:relative; padding: clamp(100px,14vw,180px) 0; background:#0a0908; overflow:hidden; }
:root[data-theme="light"] .contact{ background:#16130f; }
#particlesContact{ position:absolute; inset:0; width:100%; height:100%; opacity:.5; }
.contact-grid{ position:relative; z-index:2; display:grid; grid-template-columns: 1.1fr .9fr; gap: clamp(40px,6vw,90px); }
.contact-title{ font-family:var(--font-display); font-weight:900; text-transform:uppercase; font-size:clamp(2.6rem,6vw,4.6rem); line-height:.98; color:#f3ede2; margin:18px 0 24px; }
.contact-desc{ color:rgba(243,237,226,.75); font-size:1.05rem; line-height:1.7; max-width:460px; margin-bottom:44px; }
.contact-info{ display:flex; flex-direction:column; gap:20px; }
.contact-link{ display:inline-flex; align-items:center; gap:14px; color:#f3ede2; font-family:var(--font-mono); font-size:.95rem; letter-spacing:.03em; width:fit-content; }
.contact-link svg{ width:20px; height:20px; color:var(--gold); }
.contact-link:hover{ color:var(--gold-bright); }
.contact-socials{ display:flex; gap:14px; margin-top:12px; }
.contact-socials a{
  width:42px; height:42px; border:1px solid rgba(243,237,226,.25); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:.7rem; color:#f3ede2;
  transition: border-color .3s, background .3s;
}
.contact-socials a:hover{ border-color:var(--gold); background:rgba(201,162,75,.12); }

.contact-form{ background:rgba(243,237,226,.04); border:1px solid rgba(243,237,226,.14); border-radius:12px; padding: clamp(28px,4vw,44px); backdrop-filter: blur(6px); }
.form-row{ margin-bottom:22px; }
.form-row label{ display:block; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-bright); margin-bottom:10px; }
.form-row input, .form-row select, .form-row textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid rgba(243,237,226,.25);
  color:#f3ede2; font-size:1rem; padding:10px 2px; font-family:var(--font-serif); resize:vertical;
  transition: border-color .3s;
}
.form-row select option{ background:#171513; color:#f3ede2; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{ outline:none; border-color:var(--gold); }
.form-row input::placeholder, .form-row textarea::placeholder{ color:rgba(243,237,226,.35); }
.form-note{ margin-top:16px; font-family:var(--font-mono); font-size:.68rem; color:rgba(243,237,226,.45); text-align:center; }

/* ============== FOOTER ============== */
.site-footer{ background:var(--bg); border-top:1px solid var(--line); padding: 80px 0 0; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom:60px; }
.footer-brand p{ margin-top:16px; color:var(--ink-dim); font-size:.9rem; line-height:1.6; max-width:280px; }
.footer-col h5{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.footer-col{ display:flex; flex-direction:column; gap:12px; }
.footer-col a{ color:var(--ink-dim); font-size:.92rem; transition: color .3s; }
.footer-col a:hover{ color:var(--gold); }
.footer-bottom{
  border-top:1px solid var(--line); padding: 22px clamp(20px,5vw,64px);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.04em; color:var(--ink-faint);
}

/* ============== RESPONSIVE ============== */
@media (max-width: 1024px){
  .main-nav{ display:none; }
  .menu-toggle{ display:flex; }
  .stats-grid{ grid-template-columns: repeat(2,1fr); gap:40px; }
  .services-grid{ grid-template-columns: repeat(2,1fr); }
  .process-steps{ grid-template-columns: repeat(2,1fr); }
  .contact-grid{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px){
  .project-row, .project-row--reverse{ grid-template-columns: 1fr; gap:28px; }
  .project-row--reverse .project-img,.project-row--reverse .project-info{ order:initial; }
  .services-grid{ grid-template-columns: 1fr; }
  .process-steps{ grid-template-columns: 1fr; }
  .studio-crew{ grid-template-columns: repeat(3,1fr); gap:8px; }
  .fm-tl,.fm-tr{ top:88px; font-size:.58rem; }
  .fm-bl,.fm-br{ bottom:110px; font-size:.58rem; }
  .hero-content{ padding-bottom:110px; }
  .footer-grid{ grid-template-columns: 1fr; gap:32px; }
  .footer-bottom{ flex-direction:column; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
