@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Anton&family=Archivo:wght@400;500;600;700;800&display=swap');

:root{
  --ground:#F5F3EC;
  --ground-raised:#FFFFFF;
  --ground-sunken:#141317;
  --ground-sunken-ink:#F5F3EC;
  --ground-sunken-ink-dim:#AFACB4;
  --ink:#141317;
  --ink-dim:#57555E;
  --accent:#E8402A;
  --accent-ink:#FFFFFF;
  --line:rgba(20,19,23,0.14);
  --border:var(--ink);
  --shadow:5px 5px 0 var(--ink);
  --shadow-lg:8px 8px 0 var(--ink);

  --c-singham:#E2542A;
  --c-golmaal:#2E6FED;
  --c-simmba:#F0B429;
  --c-krishna:#1F8F73;
  --c-kans:#7A4FD6;
  --c-shaktimaan:#D91E36;
  --c-davincibles:#17AEDB;
  --c-bigbees:#4E9B3B;
  --c-balwan:#E8942A;
  --c-pandeyji:#D9552F;
  --c-bls:#F4538A;
  --c-sammyraj:#A32FD1;
  --c-hattori:#1E3A8A;
  --c-barnyard:#9C5B2E;

  /* production-relationship tiers — from the Done/Website Posters folder structure */
  --t-ip:#157F4F;
  --t-copro:#B3541E;
  --t-partner:#6D28D9;
  --t-mediaworks:#15607A;
  --t-service:#8A5A2B;

  --display: 'Baloo 2', 'Segoe UI Rounded', 'Arial Rounded MT Bold', sans-serif;
  --label: 'Anton', 'Archivo Black', 'Arial Narrow', sans-serif;
  --body: 'Archivo', 'Segoe UI', system-ui, sans-serif;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#1A191D;
    --ground-raised:#232227;
    --ink:#F5F3EC;
    --ink-dim:#A6A3AC;
    --accent:#FF6448;
    --accent-ink:#1A191D;
    --line:rgba(245,243,236,0.16);
  }
}
:root[data-theme="dark"]{
  --ground:#1A191D;
  --ground-raised:#232227;
  --ink:#F5F3EC;
  --ink-dim:#A6A3AC;
  --accent:#FF6448;
  --accent-ink:#1A191D;
  --line:rgba(245,243,236,0.16);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--display); font-weight:800; text-wrap:balance; margin:0; letter-spacing:-0.01em;}
p{margin:0;}
a{color:inherit;}
img{display:block; max-width:100%;}
.eyebrow{
  font-family:var(--label);
  letter-spacing:0.14em;
  font-size:0.82rem;
  color:var(--accent);
  text-transform:uppercase;
}
.stat-num{font-family:var(--label); letter-spacing:0.02em;}

/* ---------- accessibility ---------- */
.skip-link{
  position:absolute; left:1rem; top:-3rem; z-index:1000;
  background:var(--accent); color:var(--accent-ink); padding:0.6rem 1rem; border-radius:8px;
  font-family:var(--label); font-size:0.85rem; letter-spacing:0.04em; transition:top .15s ease;
}
.skip-link:focus{top:1rem;}

/* ---------- social rail ---------- */
.social-rail{
  position:fixed; right:1rem; top:50%; transform:translateY(-50%); z-index:90;
  display:flex; flex-direction:column; gap:0.6rem;
}
.social-rail a{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--ground-raised); border:2px solid var(--border); color:var(--ink);
  box-shadow:2px 2px 0 var(--border); transition:transform .15s ease, background .15s ease, color .15s ease;
}
.social-rail a svg{width:18px; height:18px;}
.social-rail a:hover{background:var(--accent); color:var(--accent-ink); transform:translateX(-2px);}
@media (max-width:640px){
  .social-rail{
    position:static; transform:none; flex-direction:row; justify-content:center;
    padding:1rem 0; background:var(--ground-raised); border-bottom:1px solid var(--line);
  }
}

/* ---------- top bar ---------- */
.bar{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0.9rem clamp(1.2rem,3vw,2.6rem);
  background:color-mix(in srgb, var(--ground) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.wordmark{
  display:flex; flex-direction:column; line-height:1; cursor:pointer; background:none; border:none; padding:0; color:var(--ink); text-align:left;
}
.wordmark .wm-main{font-family:var(--display); font-weight:800; font-size:1.32rem; letter-spacing:-0.01em;}
.wordmark .wm-sub{font-family:var(--label); font-size:0.62rem; letter-spacing:0.28em; color:var(--accent); margin-top:2px;}

nav.rooms{display:flex; gap:0.4rem; align-items:center; position:relative;}
.room-spotlight{
  position:absolute; top:0; left:0; height:100%; border-radius:999px;
  background:var(--accent); border:2px solid var(--ink);
  transform:translateX(0) rotate(-1.5deg); transform-origin:center;
  transition: transform .45s cubic-bezier(.34,1.56,.64,1), width .45s cubic-bezier(.34,1.56,.64,1), opacity .2s ease;
  z-index:0; pointer-events:none; opacity:0;
}
.room-spotlight.ready{opacity:1;}
@media (prefers-reduced-motion: reduce){ .room-spotlight{transition:opacity .2s ease;} }
.room-btn{
  position:relative; z-index:1;
  font-family:var(--label); letter-spacing:0.05em; font-size:0.95rem;
  background:none; border:2px solid transparent; color:var(--ink-dim); cursor:pointer;
  padding:0.4rem 0.85rem; border-radius:999px; transition:transform .2s cubic-bezier(.34,1.56,.64,1), color .15s ease, border-color .15s ease;
}
.room-btn[aria-current="true"]{color:var(--accent-ink); border-color:transparent;}
.room-btn:hover:not([aria-current="true"]){color:var(--ink); border-color:var(--line); transform:rotate(-1.5deg) scale(1.05);}
.room-btn:active{transform:scale(0.94);}
@media (prefers-reduced-motion: reduce){ .room-btn{transition:color .15s ease, border-color .15s ease;} .room-btn:hover:not([aria-current="true"]){transform:none;} }

.theme-toggle{
  font-family:var(--label); font-size:0.72rem; letter-spacing:0.06em;
  background:var(--ground-raised); border:2px solid var(--border); color:var(--ink);
  border-radius:999px; padding:0.4rem 0.85rem; cursor:pointer;
}

.rooms-mobile-select{display:none;}

@media (max-width: 860px){
  nav.rooms{display:none;}
  .rooms-mobile-select{
    display:block; font-family:var(--label); letter-spacing:0.06em; font-size:0.9rem;
    background:var(--ground-raised); color:var(--ink); border:1px solid var(--line);
    border-radius:8px; padding:0.45rem 0.6rem;
  }
}

main{padding-top:64px;}
.room{display:none; min-height:calc(100vh - 64px);}
.room.active{display:block; animation:roomIn .4s ease both;}
@media (prefers-reduced-motion: reduce){ .room.active{animation:none;} }
@keyframes roomIn{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; transition-delay:calc(var(--d,0) * 90ms);}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} }

.marquee-lights{position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden;}
.bulb{position:absolute; top:6%; width:5px; height:5px; border-radius:50%; background:#FFE9B0;
  box-shadow:0 0 6px 2px rgba(255,220,150,0.6); animation:bulbTwinkle 2.6s ease-in-out infinite;}
@keyframes bulbTwinkle{0%,100%{opacity:.25; transform:scale(0.85);} 50%{opacity:1; transform:scale(1.15);}}
@media (prefers-reduced-motion: reduce){ .bulb{animation:none; opacity:.6;} }

@keyframes charFloat{0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);}}
@keyframes panelDrift{from{transform:scale(1) translate(0,0);} to{transform:scale(1.07) translate(-1%, -1%);}}
.reel-slide.active .char{animation:charFloat 3.4s ease-in-out infinite;}
.reel-slide.active .panel-bg{animation:panelDrift 9s ease-in-out infinite alternate;}
@media (prefers-reduced-motion: reduce){
  .reel-slide.active .char, .reel-slide.active .panel-bg{animation:none;}
}

.wrap{max-width:1180px; margin:0 auto; padding:0 clamp(1.2rem,3vw,2.6rem);}

/* ---------- HOME / marquee ---------- */
.marquee{
  position:relative;
  background:var(--ground-sunken);
  border-bottom:2.5px solid var(--border);
  overflow:hidden;
}
.bg-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; background:var(--ground-sunken);}
.marquee .bg-video{filter:grayscale(0.6) contrast(1.25) brightness(0.8); object-position:center 32%;}
.marquee::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(100deg, var(--ground-sunken) 0%, color-mix(in srgb, var(--ground-sunken) 88%, transparent) 38%, color-mix(in srgb, var(--ground-sunken) 45%, transparent) 62%, color-mix(in srgb, var(--ground-sunken) 20%, transparent) 100%),
    linear-gradient(0deg, var(--ground-sunken) 0%, transparent 30%),
    radial-gradient(90% 120% at 88% 15%, color-mix(in srgb, var(--accent) 55%, transparent), transparent 60%);
}
.marquee-inner{
  position:relative; z-index:2;
  --ink:var(--ground-sunken-ink); --ink-dim:var(--ground-sunken-ink-dim);
  --line:rgba(245,243,236,0.22); --border:var(--ground-sunken-ink); --ground-raised:rgba(20,19,23,0.55);
  color:var(--ink);
  max-width:1180px; margin:0 auto; padding:clamp(2.6rem,7vw,5rem) clamp(1.2rem,3vw,2.6rem) clamp(3rem,6vw,4.5rem);
  display:grid; grid-template-columns: 1.05fr 0.95fr; gap:clamp(2rem,4vw,3.5rem); align-items:center;
}
@media (max-width:900px){ .marquee-inner{grid-template-columns:1fr;} }

.marquee-copy h1{font-size:clamp(2.2rem,4.6vw,3.6rem); line-height:1.05;}
.marquee-copy .lede{
  margin-top:1.1rem; max-width:46ch; color:var(--ink-dim); font-size:1.08rem;
}
.marquee-copy .eyebrow{margin-bottom:0.9rem; display:block;}

.stat-row{
  display:flex; flex-wrap:wrap; gap:clamp(1.4rem,3vw,2.4rem); margin-top:2.2rem;
  padding-top:1.6rem; border-top:1px solid var(--line);
}
.stat{display:flex; flex-direction:column;}
.stat .stat-num{font-size:1.9rem; color:var(--ink);}
.stat .stat-label{font-size:0.78rem; color:var(--ink-dim); margin-top:0.15rem; max-width:15ch;}

.reel{position:relative; aspect-ratio:4/5; border-radius:20px; overflow:hidden; box-shadow:var(--shadow); border:2.5px solid var(--border); background:var(--ground-sunken);}
.reel-slide{
  position:absolute; inset:0; opacity:0; transition:opacity .7s ease;
  display:flex; align-items:flex-end;
}
.reel-slide.active{opacity:1;}
.reel-slide .panel-bg{position:absolute; inset:0; width:100%; height:100%;}
.reel-slide .char{
  position:absolute; right:6%; bottom:0; height:82%; width:auto; max-width:78%;
  object-fit:contain; object-position:bottom; filter:drop-shadow(0 18px 26px rgba(0,0,0,0.35));
}
.reel-slide .scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,0.68) 0%, rgba(0,0,0,0.05) 42%, transparent 62%), linear-gradient(100deg, rgba(0,0,0,0.32) 0%, transparent 45%);}
.reel-slide .cap{position:relative; padding:1.4rem 1.4rem 1.6rem; color:#F3EFE6; width:100%;}
.reel-slide .cap .chip{
  display:inline-flex; align-items:center; gap:0.4rem; font-family:var(--label); font-size:0.72rem; letter-spacing:0.1em;
  background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.25); border-radius:999px; padding:0.22rem 0.65rem 0.22rem 0.5rem; margin-bottom:0.7rem;
}
.reel-slide .cap .chip i{width:7px; height:7px; border-radius:50%; display:inline-block;}
.reel-slide .cap h3{font-size:1.5rem; color:#fff;}
.reel-slide .cap p{font-size:0.88rem; color:#E4DFD3; margin-top:0.35rem; max-width:34ch;}

.reel-controls{position:absolute; bottom:1rem; right:1rem; display:flex; gap:0.4rem; z-index:5;}
.reel-dot{width:20px; height:4px; border-radius:2px; background:rgba(255,255,255,0.35); border:none; cursor:pointer; padding:0;}
.reel-dot.active{background:#fff;}
.reel-play{
  position:absolute; top:1rem; right:1rem; z-index:5; width:30px; height:30px; border-radius:50%;
  background:rgba(0,0,0,0.4); border:1px solid rgba(255,255,255,0.3); color:#fff; cursor:pointer; font-size:0.75rem;
  display:flex; align-items:center; justify-content:center;
}

.cta-row{display:flex; gap:0.9rem; margin-top:2.2rem; flex-wrap:wrap;}
.btn{
  font-family:var(--label); letter-spacing:0.05em; font-size:1rem;
  padding:0.75rem 1.5rem; border-radius:12px; cursor:pointer; border:2.5px solid var(--border);
  display:inline-flex; align-items:center; gap:0.5rem;
  box-shadow:var(--shadow); transition:transform .12s ease, box-shadow .12s ease;
}
.btn-solid{background:var(--accent); color:var(--accent-ink); border-color:var(--border);}
.btn-outline{background:var(--ground-raised); color:var(--ink);}
.btn:hover{transform:translate(2px,2px); box-shadow:2px 2px 0 var(--ink);}
.btn:active{transform:translate(5px,5px); box-shadow:0 0 0 var(--ink);}
.btn:disabled{opacity:0.55; cursor:not-allowed; transform:none; box-shadow:var(--shadow);}

/* ---------- trust / client logos strip ---------- */
.logos-band{background:var(--ground-raised); border-bottom:2.5px solid var(--border); padding:2rem 0 2.2rem;}
.logos-band .eyebrow-row{text-align:center; margin-bottom:1.2rem;}
.logos-track{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(1.6rem,4vw,3.2rem);
}
.logos-track img{height:34px; width:auto; max-width:120px; object-fit:contain; filter:grayscale(1) opacity(0.72); transition:filter .2s ease;}
.logos-track img:hover{filter:grayscale(0) opacity(1);}
@media (max-width:640px){ .logos-track img{height:26px;} }

/* ---------- generic section heading ---------- */
.room-head{padding:clamp(3rem,6vw,4.2rem) 0 clamp(1.6rem,3vw,2.2rem);}
.room-head .eyebrow{display:block; margin-bottom:0.6rem;}
.room-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);}
.room-head .dek{color:var(--ink-dim); max-width:60ch; margin-top:0.9rem; font-size:1.02rem;}

.room-head.has-video{
  position:relative; padding:clamp(3.4rem,7vw,5rem) clamp(1.4rem,3vw,2.4rem) clamp(2.4rem,5vw,3.4rem);
  margin-bottom:0.5rem; overflow:hidden; border-radius:20px; border:2.5px solid var(--border);
  --ink:var(--ground-sunken-ink); --ink-dim:var(--ground-sunken-ink-dim); --border:var(--ground-sunken-ink);
  color:var(--ink);
}
.room-head.has-video .bg-video{filter:grayscale(0.6) contrast(1.2) brightness(0.65); object-position:center 25%;}
.room-head.has-video::after{
  content:""; position:absolute; inset:-1px;
  background:radial-gradient(120% 140% at 85% 0%, color-mix(in srgb, var(--card-accent, var(--accent)) 65%, transparent), transparent 55%),
    linear-gradient(180deg, color-mix(in srgb, var(--ground-sunken) 20%, transparent) 0%, var(--ground-sunken) 92%);
  mix-blend-mode:multiply; z-index:1;
}
.room-head.has-video > :not(.bg-video){position:relative; z-index:2;}

/* ---------- CATALOG ---------- */
.vault-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:1.4rem;
  padding-bottom:4rem;
}
.film-card{
  background:var(--ground-raised); border:2.5px solid var(--border); border-radius:16px; overflow:hidden;
  display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease;
  box-shadow:3px 3px 0 var(--border); cursor:pointer; text-align:left; padding:0; width:100%; font:inherit; color:inherit;
}
.film-card:hover, .film-card:focus-visible{transform:translate(-3px,-5px) rotate(-1deg); box-shadow:6px 8px 0 var(--card-accent, var(--accent));}
.film-card:focus-visible{outline:3px solid var(--accent); outline-offset:2px;}
.card-reveal{opacity:0; transform:translateY(22px) rotate(-1deg); transition:opacity .5s ease, transform .5s ease; transition-delay:calc(var(--i,0) * 60ms);}
.card-reveal.in{opacity:1; transform:none;}
.card-reveal.in:hover{transform:translate(-3px,-5px) rotate(-1deg);}
@media (prefers-reduced-motion: reduce){ .card-reveal{opacity:1; transform:none; transition:none;} }
.film-card .art{position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--ground-sunken);}
.film-card .art img{width:100%; height:100%; object-fit:contain;}
.film-card .art.has-char{background:radial-gradient(140% 120% at 78% 0%, color-mix(in srgb, var(--card-accent) 55%, transparent), transparent 60%), linear-gradient(160deg, color-mix(in srgb, var(--card-accent) 30%, var(--ground-sunken)), var(--ground-sunken) 75%);}
.film-card .art.has-char img{object-fit:contain; object-position:bottom;}
.film-card .accent-bar{height:6px; width:100%;}
.film-card .body{padding:1.1rem 1.15rem 1.3rem; display:flex; flex-direction:column; gap:0.55rem; flex:1;}
.film-card h3{font-size:1.25rem;}
.film-card .meta-line{font-family:var(--label); font-size:0.72rem; letter-spacing:0.08em; color:var(--ink-dim); text-transform:uppercase;}
.film-card .desc{font-size:0.92rem; color:var(--ink-dim); flex:1;}
.credit-line{font-family:var(--label); font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; line-height:1.45;
  color:var(--card-accent, var(--accent)); border-left:3px solid currentColor; padding-left:0.55rem; margin-top:-0.2rem;}
.modal-credit{margin:0 0 0.9rem; font-size:0.7rem; color:var(--accent);}

/* ---- production-relationship tier badge ---- */
.tier-badge{position:absolute; top:0.6rem; left:0.6rem; z-index:2; max-width:calc(100% - 1.2rem);
  font-family:var(--label); font-size:0.6rem; letter-spacing:0.07em; text-transform:uppercase; line-height:1.2;
  color:#fff; background:var(--tier-color, var(--t-ip)); border:2.5px solid var(--ink);
  padding:0.32rem 0.5rem; border-radius:4px; box-shadow:2px 2px 0 var(--ink); text-align:left;}
:root[data-theme="dark"] .tier-badge, :root:not([data-theme="light"]) .tier-badge{border-color:#141317; box-shadow:2px 2px 0 #141317;}
.film-card .art{position:relative;}

.modal-tier{display:inline-block; font-family:var(--label); font-size:0.66rem; letter-spacing:0.07em;
  text-transform:uppercase; color:#fff; background:var(--tier-color, var(--t-ip));
  border:2.5px solid var(--ink); border-radius:4px; padding:0.34rem 0.6rem; margin-bottom:0.7rem;}

/* ---- catalog tier filter ---- */
.tier-filter{display:flex; flex-wrap:wrap; gap:0.5rem; margin:0 0 1.4rem;}
.tier-chip{font-family:var(--label); font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase;
  background:var(--ground-raised); color:var(--ink); border:2.5px solid var(--ink); border-radius:5px;
  padding:0.45rem 0.8rem; cursor:pointer; display:inline-flex; align-items:center; gap:0.45rem;
  transition:transform .12s ease, box-shadow .12s ease;}
.tier-chip:hover{transform:translate(-1px,-2px); box-shadow:3px 3px 0 var(--ink);}
.tier-chip:focus-visible{outline:3px solid var(--accent); outline-offset:2px;}
.tier-chip .swatch{width:11px; height:11px; border:2px solid var(--ink); border-radius:2px; background:var(--tier-color, var(--accent)); flex:none;}
.tier-chip .n{font-family:var(--body); font-size:0.7rem; color:var(--ink-dim); font-weight:700;}
.tier-chip[aria-pressed="true"]{background:var(--ink); color:var(--ground); box-shadow:3px 3px 0 var(--accent);}
.tier-chip[aria-pressed="true"] .n{color:var(--ground);}
.tier-chip[aria-pressed="true"] .swatch{border-color:var(--ground);}
.film-card[hidden]{display:none;}
@media (prefers-reduced-motion: reduce){ .tier-chip{transition:none;} .tier-chip:hover{transform:none;} }
.film-card .tagrow{display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:0.3rem;}
.tag{font-size:0.72rem; border:2.5px solid var(--border); border-radius:999px; padding:0.18rem 0.55rem; color:var(--ink-dim);}
.film-card .view-more{font-family:var(--label); font-size:0.72rem; letter-spacing:0.08em; color:var(--accent); margin-top:0.2rem;}

/* ---------- show detail modal ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:200; background:rgba(20,19,23,0.72);
  display:flex; align-items:center; justify-content:center; padding:1.4rem;
  opacity:0; pointer-events:none; transition:opacity .2s ease;
}
.modal-overlay.open{opacity:1; pointer-events:auto;}
.modal{
  background:var(--ground-raised); border:2.5px solid var(--border); border-radius:20px; box-shadow:var(--shadow-lg);
  max-width:760px; width:100%; max-height:88vh; overflow-y:auto; position:relative;
  transform:translateY(14px); transition:transform .2s ease;
}
.modal-overlay.open .modal{transform:none;}
.modal-close{
  position:absolute; top:0.9rem; right:0.9rem; z-index:2; width:34px; height:34px; border-radius:50%;
  background:var(--ground-raised); border:2.5px solid var(--border); cursor:pointer; font-size:1rem; line-height:1;
}
.modal-hero{position:relative; aspect-ratio:16/8; overflow:hidden; border-bottom:2.5px solid var(--border); background:var(--ground-sunken);}
.modal-hero img{width:100%; height:100%; object-fit:contain;}
.modal-hero.has-char img{object-fit:contain; object-position:bottom;}
.modal-hero .scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,0.55), transparent 55%);}
.modal-hero .modal-title{position:absolute; left:1.4rem; bottom:1rem; color:#fff;}

/* ---------- gallery lightbox ---------- */
.gallery-grid img{cursor:pointer; transition:transform .15s ease;}
.gallery-grid img:hover{transform:scale(1.03);}
.lightbox-overlay{
  position:fixed; inset:0; z-index:300; background:rgba(0,0,0,0.88);
  display:flex; align-items:center; justify-content:center; padding:2rem;
  opacity:0; pointer-events:none; transition:opacity .2s ease;
}
.lightbox-overlay.open{opacity:1; pointer-events:auto;}
.lightbox-overlay img{max-width:90vw; max-height:85vh; object-fit:contain; border-radius:10px; border:2.5px solid #fff;}
.lightbox-close{
  position:absolute; top:1.2rem; right:1.2rem; width:38px; height:38px; border-radius:50%;
  background:#fff; border:2.5px solid var(--border); cursor:pointer; font-size:1rem;
}
.modal-body{padding:1.6rem 1.7rem 2rem;}
.modal-desc{color:var(--ink-dim); font-size:1rem; margin-top:0.8rem;}
.modal-fact-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1rem; margin-top:1.4rem; padding-top:1.2rem; border-top:1px solid var(--line);}
.modal-fact .k{font-family:var(--label); font-size:0.68rem; letter-spacing:0.08em; color:var(--ink-dim); text-transform:uppercase;}
.modal-fact .v{font-family:var(--display); font-weight:700; font-size:1.02rem; margin-top:0.2rem;}

.modal-tabs{display:flex; gap:0.5rem; border-bottom:2px solid var(--line); margin-bottom:1.2rem; flex-wrap:wrap;}
.modal-tab{
  font-family:var(--label); font-size:0.78rem; letter-spacing:0.05em; background:none; border:none;
  color:var(--ink-dim); padding:0.6rem 0.2rem; cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px;
}
.modal-tab.active{color:var(--accent); border-bottom-color:var(--accent);}
.modal-tab-panel{display:none;}
.modal-tab-panel.active{display:block;}
.video-embed{position:relative; aspect-ratio:16/9; border-radius:12px; overflow:hidden; border:2.5px solid var(--border); margin-bottom:1rem; background:#000;}
.video-embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.trailer-title{font-size:0.9rem; color:var(--ink-dim); margin:-0.4rem 0 1.2rem;}
.gallery-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:0.8rem;}
.gallery-grid img{width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:10px; border:2px solid var(--border);}

.coming-soon-panel{
  background:var(--ground-raised); border:2.5px solid var(--border); border-radius:16px; padding:2rem;
  box-shadow:4px 4px 0 var(--border); margin-bottom:4rem;
}
.coming-soon-panel h3{font-size:1.3rem; margin-bottom:0.8rem;}
.coming-soon-panel p{color:var(--ink-dim); margin-top:0.6rem; max-width:65ch;}

/* ---------- modal: apps / news / quick links ---------- */
.app-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1rem;}
.app-card{border:2px solid var(--line); border-radius:12px; padding:1rem; display:flex; gap:0.8rem; align-items:center;}
.app-card img{width:48px; height:48px; border-radius:10px; object-fit:cover; flex-shrink:0;}
.app-card .app-name{font-family:var(--display); font-weight:700; font-size:0.95rem;}
.app-card .app-dev{font-size:0.78rem; color:var(--ink-dim); margin-top:0.15rem;}
.app-card a.store-link{font-size:0.78rem; color:var(--accent); font-family:var(--label); letter-spacing:0.04em; margin-top:0.3rem; display:inline-block;}

.news-list{display:flex; flex-direction:column; gap:1rem;}
.news-item{display:grid; grid-template-columns:100px 1fr; gap:1rem; border:1px solid var(--line); border-radius:12px; padding:0.8rem; align-items:center;}
.news-item img{grid-column:1; width:100px; height:70px; object-fit:cover; border-radius:8px; background:var(--ground-sunken);}
.news-item > div{grid-column:2;}
.news-item h4{font-size:0.98rem; font-family:var(--display); font-weight:700;}
.news-item a.read-more{font-size:0.78rem; color:var(--accent); font-family:var(--label); letter-spacing:0.04em; margin-top:0.3rem; display:inline-block;}
@media (max-width:560px){ .news-item{grid-template-columns:1fr;} .news-item img{width:100%; height:140px;} }

.modal-quicklinks{border-top:2px solid var(--line); margin-top:1.6rem; padding-top:1.2rem;}
.quicklinks-row{display:flex; flex-wrap:wrap; gap:0.6rem; margin-top:0.7rem;}
.quicklink-chip{
  display:flex; align-items:center; gap:0.5rem; border:2px solid var(--line); border-radius:999px;
  padding:0.3rem 0.8rem 0.3rem 0.3rem; cursor:pointer; background:var(--ground); color:var(--ink); font-size:0.85rem;
}
.quicklink-chip:hover{border-color:var(--accent);}
.quicklink-chip img{width:28px; height:28px; border-radius:50%; object-fit:cover;}

/* ---------- PRESS / credibility ---------- */
.press-layout{display:grid; grid-template-columns:1.1fr 0.9fr; gap:2.6rem; padding-bottom:4rem;}
@media (max-width:900px){.press-layout{grid-template-columns:1fr;}}
.ledger{border-top:2.5px solid var(--border);}
.ledger-row{
  display:grid; grid-template-columns:5.5rem 1fr; gap:1.2rem; padding:1.3rem 0; border-bottom:1px solid var(--line);
}
.ledger-row .yr{font-family:var(--label); font-size:1.6rem; color:var(--accent);}
.ledger-row h4{font-family:var(--display); font-weight:700; font-size:1.12rem; margin-bottom:0.3rem;}
.ledger-row .who{font-size:0.86rem; color:var(--ink-dim);}

.press-col{display:flex; flex-direction:column; gap:1.1rem;}
.clip{
  background:var(--ground-raised); border:1px solid var(--line); border-left:3px solid var(--accent);
  padding:1.1rem 1.2rem; border-radius:0 14px 14px 0;
}
.clip .kicker{font-family:var(--label); font-size:0.68rem; letter-spacing:0.1em; color:var(--ink-dim); text-transform:uppercase;}
.clip h4{font-family:var(--display); font-size:1.05rem; margin-top:0.35rem; font-weight:700;}
.clip p{font-size:0.88rem; color:var(--ink-dim); margin-top:0.4rem;}

/* ---------- STUDIO / dossier ---------- */
.dossier-top{display:grid; grid-template-columns:1.1fr 0.9fr; gap:3rem; padding-bottom:2.6rem; align-items:start;}
@media (max-width:900px){.dossier-top{grid-template-columns:1fr;}}
.thesis{font-family:var(--display); font-weight:600; font-style:italic; font-size:1.4rem; line-height:1.4; color:var(--ink);}
.dossier-body p{color:var(--ink-dim); margin-top:1rem; font-size:0.98rem;}
.fact-panel{background:var(--ground-raised); border:2.5px solid var(--border); border-radius:16px; padding:1.6rem; box-shadow:4px 4px 0 var(--border);}
.fact-panel .fact{display:flex; gap:1rem; padding:0.85rem 0; border-bottom:1px solid var(--line);}
.fact-panel .fact:last-child{border-bottom:none;}
.fact-panel .fact .n{font-family:var(--label); font-size:1.5rem; color:var(--accent); min-width:3.2rem;}
.fact-panel .fact .t{font-size:0.86rem; color:var(--ink-dim); padding-top:0.2rem;}

.crew{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.3rem; padding:2.2rem 0 4rem;}
.crew-card{border-top:4px solid var(--accent); padding-top:0.9rem;}
.crew-card .avatar{width:64px; height:64px; border-radius:50%; object-fit:cover; margin-bottom:0.7rem; border:2px solid var(--line);}
.crew-card .role{font-family:var(--label); font-size:0.7rem; letter-spacing:0.1em; color:var(--accent); text-transform:uppercase;}
.crew-card h4{font-family:var(--display); font-size:1.2rem; margin-top:0.3rem;}
.crew-card p{font-size:0.88rem; color:var(--ink-dim); margin-top:0.5rem;}

/* ---------- CAREERS / call sheet ---------- */
.callsheet{border:2.5px solid var(--border); border-radius:16px; overflow:hidden; margin-bottom:2.4rem;}
.callsheet-head{
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:1rem; padding:0.8rem 1.2rem;
  background:var(--ground-sunken); font-family:var(--label); font-size:0.72rem; letter-spacing:0.08em; color:var(--ground-sunken-ink-dim); text-transform:uppercase;
}
.role-row{
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:1rem; padding:1rem 1.2rem; border-top:1px solid var(--line);
  align-items:center; background:var(--ground-raised);
}
.role-title-btn{
  font-family:var(--display); font-size:1.05rem; font-weight:700; background:none; border:none; color:var(--ink);
  cursor:pointer; text-align:left; padding:0; justify-self:start; display:flex; align-items:center; gap:0.4rem;
}
.role-title-btn .chevron{color:var(--accent); font-size:0.8rem;}
.role-row .city{font-size:0.9rem; color:var(--ink-dim);}
.role-row .dept{font-size:0.9rem; color:var(--ink-dim);}
.role-row .apply-btn{
  font-family:var(--label); font-size:0.72rem; letter-spacing:0.05em; background:var(--ground-raised);
  border:2px solid var(--border); border-radius:8px; padding:0.4rem 0.7rem; cursor:pointer; justify-self:start;
}
.role-row .apply-btn:hover{background:var(--accent); color:var(--accent-ink); border-color:var(--border);}
.role-detail{
  padding:0 1.2rem 1.4rem; background:var(--ground-raised); border-top:1px dashed var(--line);
}
.role-detail-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; padding-top:1rem;}
.role-detail .k{font-family:var(--label); font-size:0.7rem; letter-spacing:0.08em; color:var(--accent); text-transform:uppercase; display:block; margin-top:1rem;}
.role-detail p{font-size:0.9rem; color:var(--ink-dim); margin-top:0.3rem;}
.role-detail ul{margin:0.3rem 0 0; padding-left:1.1rem; font-size:0.9rem; color:var(--ink-dim);}
.role-detail li{margin-top:0.25rem;}
@media (max-width:640px){
  .callsheet-head{display:none;}
  .role-row{grid-template-columns:1fr; gap:0.4rem;}
  .role-row .city::before{content:"City: ";color:var(--ink-dim);}
  .role-row .dept::before{content:"Track: ";color:var(--ink-dim);}
  .role-row .apply-btn{justify-self:start;}
  .role-detail-grid{grid-template-columns:1fr;}
}
.apply-panel{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.2rem;
  background:var(--ground-sunken); border:2.5px solid var(--border); border-radius:16px; padding:1.8rem 2rem; margin-bottom:4rem;
  color:var(--ground-sunken-ink);
}
.apply-panel h3{font-size:1.35rem;}
.apply-panel p{color:var(--ground-sunken-ink-dim); margin-top:0.4rem; font-size:0.94rem;}
.apply-panel .btn-outline{background:var(--ground-raised); color:var(--ink);}

/* ---------- forms (contact / apply) ---------- */
.form-panel{
  background:var(--ground-raised); border:2.5px solid var(--border); border-radius:16px; padding:1.8rem;
  box-shadow:4px 4px 0 var(--border); margin-bottom:3rem;
}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.2rem;}
@media (max-width:640px){ .form-grid{grid-template-columns:1fr;} }
.form-field{display:flex; flex-direction:column; gap:0.4rem;}
.form-field.full{grid-column:1 / -1;}
.form-field label{font-family:var(--label); font-size:0.7rem; letter-spacing:0.06em; color:var(--ink-dim); text-transform:uppercase;}
.form-field input, .form-field textarea{
  font-family:var(--body); font-size:0.96rem; padding:0.65rem 0.8rem; border-radius:10px;
  border:2px solid var(--line); background:var(--ground); color:var(--ink); resize:vertical;
}
.form-field input:focus, .form-field textarea:focus{outline:none; border-color:var(--accent);}
.form-field .error-msg{font-size:0.78rem; color:var(--accent); min-height:1em;}
.form-actions{display:flex; align-items:center; gap:1rem; margin-top:1.2rem; flex-wrap:wrap;}
.form-status{font-size:0.9rem; color:var(--ink-dim);}
.form-status.success{color:#1F8F73; font-weight:600;}

/* ---------- CONTACT / production office ---------- */
.office-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.3rem; padding-bottom:2.4rem;}
.office-card{border:2.5px solid var(--border); border-radius:16px; padding:1.4rem 1.3rem; background:var(--ground-raised); box-shadow:4px 4px 0 var(--border);}
.office-card .city-label{font-family:var(--label); font-size:0.9rem; letter-spacing:0.06em; color:var(--accent);}
.office-card address{font-style:normal; margin-top:0.6rem; font-size:0.92rem; color:var(--ink-dim); line-height:1.6;}
.reach-row{
  display:flex; gap:2.4rem; flex-wrap:wrap; padding:2rem 0 4rem; border-top:1px solid var(--line); margin-top:1rem;
}
.reach-item .eyebrow{display:block; margin-bottom:0.4rem;}
.reach-item a, .reach-item span{font-family:var(--display); font-size:1.2rem; font-weight:700;}

footer{border-top:2.5px solid var(--border); padding:2.4rem 0 3rem; background:var(--ground-sunken); color:var(--ground-sunken-ink);}
.foot-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; align-items:center;}
.foot-row .wm-main{font-family:var(--display); font-weight:800; font-size:1.1rem;}
.foot-note{font-size:0.8rem; color:var(--ground-sunken-ink-dim);}
.foot-links{display:flex; gap:1.2rem; flex-wrap:wrap;}
.foot-links a{font-size:0.85rem; color:var(--ground-sunken-ink-dim); text-decoration:underline;}
.foot-links a:hover{color:var(--ground-sunken-ink);}

::selection{background:var(--accent); color:var(--accent-ink);}
