/* ==========================================================
   INSIDE MOTION PICTURES — design system
   ========================================================== */
:root{
  --bg:#05070c;
  --bg-2:#0b0f18;
  --surface:#111725;
  --surface-2:#182033;
  --line:rgba(255,255,255,.08);
  --text:#eef2f8;
  --muted:#9aa6bb;
  --dim:#5f6b80;
  --blue:#2f7bff;          /* brand blue */
  --blue-2:#5aa0ff;
  --blue-glow:rgba(47,123,255,.35);
  --gold:#e8c27a;
  --dhriti:#c8102e;        /* sindoor red — everything Dhriti */
  --dhriti-2:#ff4a5c;
  --dhriti-glow:rgba(200,16,46,.45);
  --radius:10px;
  --gutter:clamp(16px,4vw,56px);
  --font-display:"Bebas Neue","Oswald",Impact,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-serif:"Cormorant Garamond",Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--blue);color:#fff}
.wrap{padding-inline:var(--gutter);max-width:1600px;margin-inline:auto}

/* film grain overlay */
body::after{content:"";position:fixed;inset:-50%;pointer-events:none;z-index:999;opacity:.045;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,3%)}80%{transform:translate(3%,1%)}100%{transform:translate(0,0)}}

/* ---------- type ---------- */
.display{font-family:var(--font-display);font-weight:400;letter-spacing:.02em;line-height:.9;text-transform:uppercase}
.kicker{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--blue-2);font-weight:600}
.serif{font-family:var(--font-serif);font-style:italic;font-weight:500}
.muted{color:var(--muted)}
h2.section-title{font-family:var(--font-display);font-size:clamp(40px,6vw,88px);line-height:.9;text-transform:uppercase;letter-spacing:.01em}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 24px;border-radius:6px;font-weight:600;font-size:15px;transition:transform .2s,background .2s,box-shadow .2s;white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none}
.btn-primary{background:#fff;color:#000}
.btn-primary:hover{background:#dfe7f5;transform:translateY(-1px)}
.btn-blue{background:var(--blue);color:#fff;box-shadow:0 8px 30px var(--blue-glow)}
.btn-blue:hover{background:#4a8cff;transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.12);backdrop-filter:blur(8px);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn-line{border:1px solid rgba(255,255,255,.25)}
.btn-line:hover{border-color:#fff}

/* ---------- header ---------- */
.site-header{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,backdrop-filter .3s}
.site-header.scrolled{background:rgba(5,7,12,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.site-header::before{content:"";position:absolute;inset:0;background:linear-gradient(#05070cdd,transparent);z-index:-1;transition:opacity .3s}
.site-header.scrolled::before{opacity:0}
.nav{display:flex;align-items:center;gap:36px;height:72px}
.logo{display:flex;align-items:center;gap:10px;flex:none}
.logo img{height:44px;width:auto}
@media (max-width:700px){.logo img{height:36px}}
.foot-grid .logo img{height:58px}
.inst-logo{height:62px;width:auto;margin-bottom:4px;align-self:flex-start}
.learn-hero{min-height:86svh;padding:140px var(--gutter) 80px}
@media (max-width:860px){.learn-hero{min-height:0;padding:72px 0 32px}}
/* keep faces in frame when photos are cropped */
.mosaic img,.service img,.svc .media img,.duo img,.post .img img,.about-hero img{object-position:50% 28%}
.logo .mark{font-family:var(--font-display);font-size:30px;letter-spacing:.08em;line-height:1}
.logo .mark b{color:var(--blue);font-weight:400}
.logo .sub{font-size:9px;letter-spacing:.35em;text-transform:uppercase;color:var(--muted);line-height:1.1}
.nav-links{display:flex;gap:26px;font-size:14px;font-weight:500}
.nav-links a{color:#c9d2e2;transition:color .2s;position:relative}
.nav-links a:hover,.nav-links a.active{color:#fff}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--blue);border-radius:2px}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px}
.nav-right .btn{padding:9px 18px;font-size:14px}
.menu-btn{display:none;width:42px;height:42px;align-items:center;justify-content:center}
.menu-btn svg{width:26px;height:26px}
.mobile-menu{position:fixed;inset:0;z-index:60;background:rgba(5,7,12,.97);backdrop-filter:blur(10px);display:flex;flex-direction:column;padding:90px var(--gutter) 40px;gap:4px;transform:translateY(-100%);transition:transform .45s cubic-bezier(.7,0,.2,1)}
.mobile-menu.open{transform:none}
.mobile-menu a{font-family:var(--font-display);font-size:44px;line-height:1.15;text-transform:uppercase;color:#cfd7e6}
.mobile-menu a:hover{color:var(--blue-2)}
.mobile-menu .close{position:absolute;top:16px;right:var(--gutter);width:44px;height:44px}
@media (max-width:1080px){.nav-links{display:none}.menu-btn{display:flex}.nav-right .hide-sm{display:none}}

/* ---------- hero / billboard ---------- */
.billboard{position:relative;height:min(100svh,980px);min-height:620px;display:flex;align-items:flex-end;overflow:hidden}
.billboard .bg{position:absolute;inset:0}
.billboard .bg img{width:100%;height:100%;object-fit:cover;animation:kenburns 24s ease-in-out infinite alternate}
.billboard .bg iframe{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;transform:translate(-50%,-50%) scale(1.35);pointer-events:none;border:0;opacity:0;transition:opacity 1.2s}
.billboard .bg iframe.on{opacity:1}
@keyframes kenburns{from{transform:scale(1.05)}to{transform:scale(1.18) translate(-2%,-1%)}}
.billboard .shade{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(5,7,12,.92) 0%,rgba(5,7,12,.55) 38%,rgba(5,7,12,0) 70%),
  linear-gradient(0deg,var(--bg) 0%,rgba(5,7,12,.2) 30%,rgba(5,7,12,0) 60%)}
.billboard .content{position:relative;z-index:2;padding-bottom:clamp(90px,14vh,170px);max-width:720px}
.billboard h1,.billboard .bb-title{font-family:var(--font-display);font-size:clamp(84px,15vw,210px);line-height:.82;letter-spacing:.02em;margin:14px 0 6px;text-shadow:0 10px 60px rgba(0,0,0,.5)}
.billboard .subtitle{font-family:var(--font-serif);font-style:italic;font-size:clamp(26px,3.4vw,44px);color:#dfe6f2;margin-bottom:18px}
.billboard p.line{color:#cbd3e1;max-width:520px;font-size:clamp(15px,1.3vw,17px);margin-bottom:28px}
.billboard .actions{display:flex;flex-wrap:wrap;gap:12px}
.mute-btn{position:absolute;right:var(--gutter);bottom:clamp(90px,14vh,170px);z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.5);display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.3)}
.mute-btn.show{display:flex}
.mute-btn svg{width:20px;height:20px}
.rating{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#c9d2e2;margin-bottom:6px}
.rating .tag{border:1px solid rgba(255,255,255,.4);padding:1px 7px;border-radius:3px;font-size:11px;letter-spacing:.08em}

/* ---------- rows (OTT shelves) ---------- */
.rows{position:relative;z-index:5;margin-top:-80px;padding-bottom:40px}
.row{margin-bottom:clamp(28px,4vw,46px)}
.row-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}
.row-head h3{font-size:clamp(18px,1.8vw,24px);font-weight:700;letter-spacing:-.01em}
.row-head a{font-size:13px;color:var(--blue-2);font-weight:600;white-space:nowrap}
.shelf-wrap{position:relative}
.shelf{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 5*12px)/5.4);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:14px var(--gutter) 28px;margin:-14px calc(var(--gutter)*-1) -28px;scroll-padding-inline:var(--gutter)}
.shelf::-webkit-scrollbar{display:none}
@media (max-width:1200px){.shelf{grid-auto-columns:calc((100% - 3*12px)/3.6)}}
@media (max-width:760px){.shelf{grid-auto-columns:72%}}
.shelf-btn{position:absolute;top:0;bottom:0;width:var(--gutter);z-index:4;display:flex;align-items:center;justify-content:center;background:rgba(5,7,12,.55);opacity:0;transition:opacity .2s}
.shelf-wrap:hover .shelf-btn{opacity:1}
.shelf-btn svg{width:28px;height:28px}
.shelf-btn.prev{left:calc(var(--gutter)*-1)}
.shelf-btn.next{right:calc(var(--gutter)*-1)}
@media (hover:none){.shelf-btn{display:none}}

.card{position:relative;scroll-snap-align:start;border-radius:var(--radius);overflow:hidden;background:var(--surface);aspect-ratio:16/9;cursor:pointer;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;outline:none}
.card img{width:100%;height:100%;object-fit:cover;transition:transform .6s,filter .4s}
.card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,0) 70%)}
.card .meta{position:absolute;left:0;right:0;bottom:0;padding:14px 14px 12px;z-index:2}
.card .meta h4{font-size:15px;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .meta span{font-size:12px;color:var(--muted)}
.card .badge{position:absolute;top:10px;left:10px;z-index:2;background:var(--blue);color:#fff;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:4px}
.card .badge.gold{background:var(--gold);color:#1a1205}
.card .play{position:absolute;top:50%;left:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:rgba(255,255,255,.95);color:#000;z-index:3;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.7);transition:.3s}
.card .play svg{width:22px;height:22px;margin-left:3px}
.card:hover,.card:focus-visible{transform:scale(1.06);box-shadow:0 20px 50px rgba(0,0,0,.6),0 0 0 2px var(--blue);z-index:5}
.card:hover img{transform:scale(1.06)}
.card:hover .play,.card:focus-visible .play{opacity:1;transform:none}

/* tiles: thumbnail + caption underneath */
.tile{scroll-snap-align:start;cursor:pointer;outline:none;min-width:0}
.tile .card{cursor:inherit}
.tile .card::after{background:linear-gradient(0deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 45%)}
.tile:hover .card,.tile:focus-visible .card{transform:scale(1.04);box-shadow:0 20px 50px rgba(0,0,0,.6),0 0 0 2px var(--blue);z-index:5}
.tile:hover .card img{transform:scale(1.06)}
.tile:hover .play,.tile:focus-visible .play{opacity:1;transform:none}
.cap{padding:10px 2px 0}
.cap h4{font-size:15px;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cap span{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile:hover .cap h4{color:var(--blue-2)}

/* top-10 style numbered row */
.shelf.ranked{grid-auto-columns:calc((100% - 4*12px)/4.5)}
@media (max-width:1200px){.shelf.ranked{grid-auto-columns:calc((100% - 2*12px)/2.6)}}
@media (max-width:760px){.shelf.ranked{grid-auto-columns:82%}}
.rank{display:flex;align-items:flex-start;scroll-snap-align:start;min-width:0}
.rank .num{font-family:var(--font-display);font-size:clamp(110px,11vw,170px);line-height:.78;color:transparent;-webkit-text-stroke:2px #3e4a66;margin-right:6px;flex:none;letter-spacing:-.04em}
.rank .tile{flex:1}

/* ---------- coming soon ---------- */
.coming{position:relative;border-radius:16px;overflow:hidden;min-height:440px;display:grid;grid-template-columns:1.1fr 1fr;background:radial-gradient(120% 140% at 85% 30%,#123a7a 0%,#0a1630 38%,#05070c 75%);border:1px solid var(--line)}
.coming .left{padding:clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:center;gap:18px;position:relative;z-index:2}
.coming h3{font-family:var(--font-display);font-size:clamp(60px,8vw,128px);line-height:.85;text-transform:uppercase}
.coming .poster{position:relative;display:flex;align-items:center;justify-content:center;padding:30px}
.coming .poster img{max-height:420px;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.coming .poster .ph{width:min(300px,80%);aspect-ratio:2/3;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:linear-gradient(160deg,#16294d,#070b14);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;box-shadow:0 30px 80px rgba(0,0,0,.7);padding:20px}
.coming .poster .ph b{font-family:var(--font-display);font-size:52px;line-height:.9;font-weight:400}
.countdown{display:flex;gap:18px}
.countdown div{display:flex;flex-direction:column}
.countdown b{font-family:var(--font-display);font-size:44px;line-height:1;font-weight:400}
.countdown span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.light-sweep{position:absolute;inset:0;background:conic-gradient(from 200deg at 85% 0%,transparent 0deg,rgba(90,160,255,.18) 18deg,transparent 40deg);animation:sweep 8s ease-in-out infinite alternate;pointer-events:none}
@keyframes sweep{to{transform:rotate(-8deg) translateX(-4%)}}
@media (max-width:860px){.coming{grid-template-columns:1fr}.coming .poster{order:-1;padding-top:40px}}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:clamp(24px,4vw,48px) 12px;text-align:center;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat b{display:block;font-family:var(--font-display);font-size:clamp(48px,7vw,104px);line-height:.9;font-weight:400;background:linear-gradient(180deg,#fff,#7fb0ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
@media (max-width:700px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;padding:26px 0;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee .track{display:flex;gap:56px;width:max-content;animation:marq 45s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee span{font-family:var(--font-display);font-size:clamp(28px,3.4vw,48px);text-transform:uppercase;color:#3b4660;white-space:nowrap;transition:color .2s}
.marquee span:hover{color:#fff}
.marquee span i{color:var(--blue);font-style:normal;margin-left:56px}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- generic sections ---------- */
.section{padding:clamp(70px,10vw,140px) 0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(28px,4vw,52px);flex-wrap:wrap}
.section-head p{max-width:440px;color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}
@media (max-width:860px){.split{grid-template-columns:1fr}}

/* manifesto */
.manifesto{text-align:center;max-width:1100px;margin-inline:auto}
.manifesto p{font-family:var(--font-serif);font-style:italic;font-size:clamp(28px,4.2vw,60px);line-height:1.15;color:#dbe3f0}
.manifesto p em{font-style:normal;font-family:var(--font-display);color:var(--blue-2);letter-spacing:.02em}

/* image mosaic */
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(90px,11vw,160px);gap:10px}
.mosaic figure{border-radius:8px;overflow:hidden;position:relative;background:var(--surface)}
.mosaic img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) brightness(.85);transition:.5s}
.mosaic figure:hover img{filter:none;transform:scale(1.05)}
.mosaic .a{grid-column:span 3;grid-row:span 2}.mosaic .b{grid-column:span 3}.mosaic .c{grid-column:span 2}.mosaic .d{grid-column:span 1}
@media (max-width:700px){.mosaic{grid-template-columns:repeat(2,1fr)}.mosaic .a,.mosaic .b{grid-column:span 2}.mosaic .c,.mosaic .d{grid-column:span 1}}

/* on-set grid: even 4:3 tiles so faces never get cropped away */
.onset{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:960px){.onset{grid-template-columns:repeat(2,1fr)}}
.onset figure{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:var(--surface)}
.onset img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;transition:transform .6s}
.onset figure:hover img{transform:scale(1.04)}
.onset figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 9px;font-size:12px;font-weight:600;background:linear-gradient(0deg,rgba(0,0,0,.75),transparent)}

/* service tiles */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:960px){.services{grid-template-columns:1fr}}
.service{position:relative;border-radius:14px;overflow:hidden;min-height:440px;display:flex;align-items:flex-end;isolation:isolate;border:1px solid var(--line)}
.service img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s}
.service::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(5,7,12,.97) 15%,rgba(5,7,12,.35) 70%,rgba(5,7,12,.15))}
.service:hover img{transform:scale(1.07)}
.service .in{padding:28px}
.service .num{font-family:var(--font-display);font-size:18px;color:var(--blue-2);letter-spacing:.1em}
.service h3{font-family:var(--font-display);font-size:clamp(40px,4vw,56px);line-height:.9;text-transform:uppercase;margin:6px 0 10px}
.service p{color:#b9c3d4;font-size:15px}
.service ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.service li{font-size:12px;padding:4px 10px;border-radius:99px;background:rgba(255,255,255,.08);border:1px solid var(--line)}

/* institute band */
.band{position:relative;border-radius:18px;overflow:hidden;isolation:isolate;padding:clamp(36px,6vw,90px);min-height:420px;display:flex;align-items:center}
.band img.bg{position:absolute;top:0;right:0;width:62%;height:100%;object-fit:cover;object-position:50% 25%;z-index:-2}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#04102c 0%,#04102c 38%,rgba(4,16,44,.55) 52%,rgba(4,16,44,0) 75%)}
@media (max-width:860px){
  .band{flex-direction:column;align-items:stretch;padding:0 0 32px;min-height:0}
  .band img.bg{position:relative;width:100%;height:auto;aspect-ratio:4/3;z-index:0}
  .band::before{background:linear-gradient(0deg,#04102c 0%,#04102c 45%,rgba(4,16,44,0) 70%)}
  .band .in{padding:22px 22px 0;position:relative;z-index:1}
}
.band .in{max-width:620px;display:flex;flex-direction:column;gap:18px}

/* team */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:860px){.team{grid-template-columns:1fr}}
.member{border-radius:14px;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.member .ph{aspect-ratio:4/5;background:radial-gradient(circle at 50% 35%,#1b3366,#0a0f1b 70%);display:flex;align-items:center;justify-content:center;position:relative}
.member .ph img{width:100%;height:100%;object-fit:cover}
.member .ph .ini{font-family:var(--font-display);font-size:120px;color:rgba(255,255,255,.12)}
.member .in{padding:22px}
.member h3{font-size:22px;font-weight:700}
.member .aka{color:var(--blue-2);font-size:13px;font-weight:600}
.member .role{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:6px 0 10px}
.member p{color:#b5bfd0;font-size:15px}

/* timeline */
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.timeline div{padding:26px 22px 0 0;position:relative}
.timeline div::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px var(--blue-glow)}
.timeline b{font-family:var(--font-display);font-size:42px;font-weight:400;line-height:1;display:block;margin-bottom:6px}
.timeline p{color:var(--muted);font-size:14px}
@media (max-width:860px){.timeline{grid-template-columns:1fr 1fr;row-gap:26px}}

/* catalogue page */
.page-hero{padding:140px 0 30px}
.page-hero h1{font-family:var(--font-display);font-size:clamp(64px,10vw,150px);line-height:.85;text-transform:uppercase}
.page-hero p{color:var(--muted);max-width:560px;margin-top:14px;font-size:17px}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:24px 0 30px}
.chip{padding:8px 16px;border-radius:99px;border:1px solid rgba(255,255,255,.18);font-size:14px;font-weight:500;color:#c9d2e2;transition:.2s}
.chip:hover{border-color:#fff;color:#fff}
.chip.on{background:#fff;color:#000;border-color:#fff}
.search{margin-left:auto;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.18);border-radius:99px;padding:7px 14px;min-width:240px}
.search input{background:none;border:0;color:#fff;font:inherit;font-size:14px;outline:none;width:100%}
.search svg{width:16px;height:16px;color:var(--muted)}
@media (max-width:700px){.search{margin-left:0;width:100%}}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px 12px}
.empty{padding:60px 0;text-align:center;color:var(--muted)}

/* ---------- modal player ---------- */
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:flex-start;justify-content:center;background:rgba(0,0,0,.82);backdrop-filter:blur(6px);overflow-y:auto;padding:40px 16px}
.modal.open{display:flex;animation:fade .25s}
@keyframes fade{from{opacity:0}}
.modal .box{width:min(1100px,100%);background:var(--bg-2);border-radius:14px;overflow:hidden;box-shadow:0 40px 120px rgba(0,0,0,.8);border:1px solid var(--line);animation:rise .35s cubic-bezier(.2,.8,.2,1)}
@keyframes rise{from{transform:translateY(30px) scale(.97);opacity:0}}
.modal .player{position:relative;aspect-ratio:16/9;background:#000}
.modal .player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.modal .close{position:fixed;top:14px;right:14px;z-index:120;width:44px;height:44px;border-radius:50%;background:rgba(20,26,40,.9);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center}
.modal .close:hover{background:var(--blue)}
.modal .close svg{width:20px;height:20px}
.modal .info{padding:clamp(20px,3vw,34px);display:grid;grid-template-columns:2fr 1fr;gap:24px}
.modal .info h3{font-size:clamp(22px,2.4vw,30px);font-weight:800;line-height:1.15;margin-bottom:8px}
.modal .info .chips{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--muted);align-items:center}
.modal .info .chips .year{color:#46d369;font-weight:700}
.modal .info .chips .hd{border:1px solid rgba(255,255,255,.4);padding:0 6px;border-radius:3px;font-size:11px}
.modal .info aside{font-size:14px;color:var(--muted)}
.modal .info aside b{color:#dfe6f2;font-weight:500}
.modal .info .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.modal .more{padding:0 clamp(20px,3vw,34px) clamp(20px,3vw,34px)}
.modal .more h4{font-size:18px;margin-bottom:12px}
.modal .more .grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
@media (max-width:700px){.modal{padding:0}.modal .box{border-radius:0;min-height:100%}.modal .info{grid-template-columns:1fr}}

/* ---------- forms ---------- */
.tabs{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:4px;margin-bottom:28px}
.tabs button{padding:10px 22px;border-radius:99px;font-weight:600;font-size:14px;color:var(--muted);transition:.2s}
.tabs button.on{background:var(--blue);color:#fff}
form.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
form.form .full{grid-column:1/-1}
@media (max-width:700px){form.form{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.field input,.field select,.field textarea{background:var(--surface);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:13px 14px;color:#fff;font:inherit;font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-glow)}
.field select option{background:var(--surface)}
.hp{position:absolute;left:-9999px}
.form-note{font-size:13px;color:var(--muted)}
.form-msg{grid-column:1/-1;padding:14px 16px;border-radius:8px;display:none}
.form-msg.ok{display:block;background:rgba(70,211,105,.12);border:1px solid rgba(70,211,105,.4)}
.form-msg.err{display:block;background:rgba(255,90,90,.1);border:1px solid rgba(255,90,90,.4)}
.contact-cards{display:grid;gap:12px}
.contact-card{display:flex;gap:16px;align-items:center;padding:18px 20px;border-radius:12px;background:var(--surface);border:1px solid var(--line);transition:border-color .2s}
.contact-card:hover{border-color:var(--blue)}
.contact-card .ic{width:44px;height:44px;border-radius:10px;background:rgba(47,123,255,.15);color:var(--blue-2);display:flex;align-items:center;justify-content:center;flex:none}
.contact-card .ic svg{width:22px;height:22px}
.contact-card small{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* ---------- blog ---------- */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:960px){.posts{grid-template-columns:1fr}}
.post{border-radius:14px;overflow:hidden;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .3s,border-color .3s}
.post:hover{transform:translateY(-4px);border-color:rgba(47,123,255,.6)}
.post .img{aspect-ratio:16/9;overflow:hidden}
.post .img img{width:100%;height:100%;object-fit:cover}
.post .in{padding:22px;display:flex;flex-direction:column;gap:8px;flex:1}
.post h3{font-size:20px;line-height:1.25}
.post p{color:var(--muted);font-size:15px}
.post .tag{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-2);font-weight:700}
.post .soon{margin-top:auto;font-size:12px;color:var(--dim)}

/* ---------- quiz / game ---------- */
.game{max-width:820px;margin-inline:auto;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,4vw,44px);position:relative;overflow:hidden}
.game .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;font-size:13px;color:var(--muted)}
.game .bar{height:4px;background:var(--surface-2);border-radius:4px;margin-bottom:28px;overflow:hidden}
.game .bar i{display:block;height:100%;background:var(--blue);width:0;transition:width .4s}
.game h3{font-size:clamp(22px,2.6vw,30px);line-height:1.25;margin-bottom:22px}
.game .opts{display:grid;gap:10px}
.game .opt{text-align:left;padding:16px 18px;border-radius:10px;background:var(--bg-2);border:1px solid rgba(255,255,255,.1);font-size:16px;transition:.2s;display:flex;gap:12px;align-items:center}
.game .opt:hover:not([disabled]){border-color:var(--blue);background:#0d1424}
.game .opt .k{width:28px;height:28px;border-radius:6px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex:none}
.game .opt.right{border-color:#46d369;background:rgba(70,211,105,.1)}
.game .opt.wrong{border-color:#ff5a5a;background:rgba(255,90,90,.08)}
.game .explain{margin-top:18px;padding:14px 16px;border-left:3px solid var(--blue);background:rgba(47,123,255,.08);border-radius:0 8px 8px 0;color:#c9d2e2;display:none}
.game .explain.show{display:block}
.game .foot{display:flex;justify-content:flex-end;margin-top:22px}
.game .result{text-align:center;padding:20px 0}
.game .result b{font-family:var(--font-display);font-size:120px;line-height:1;font-weight:400;display:block;color:var(--blue-2)}
.game-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:40px}
@media (max-width:860px){.game-pick{grid-template-columns:1fr}}
.game-pick button{text-align:left;padding:22px;border-radius:14px;background:var(--surface);border:1px solid var(--line);transition:.2s}
.game-pick button.on,.game-pick button:hover{border-color:var(--blue);background:#0d1424}
.game-pick b{display:block;font-family:var(--font-display);font-size:30px;font-weight:400;text-transform:uppercase}
.game-pick span{font-size:14px;color:var(--muted)}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);margin-top:60px;padding:60px 0 30px;background:linear-gradient(180deg,transparent,#03050a)}
.foot-cta{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;padding-bottom:50px;border-bottom:1px solid var(--line);margin-bottom:40px}
.foot-cta h2{font-family:var(--font-display);font-size:clamp(48px,7vw,110px);line-height:.85;text-transform:uppercase}
.foot-cta h2 span{color:var(--blue)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:30px}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
.foot-grid h5{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.foot-grid ul{list-style:none;display:grid;gap:8px;font-size:15px}
.foot-grid ul a{color:#c3cbda}
.foot-grid ul a:hover{color:#fff}
.socials{display:flex;gap:10px;margin-top:16px}
.socials a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;transition:.2s}
.socials a:hover{background:var(--blue);border-color:var(--blue)}
.socials svg{width:18px;height:18px}
.copy{margin-top:40px;font-size:13px;color:var(--dim);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* whatsapp float */
.wa{position:fixed;right:18px;bottom:18px;z-index:40;width:56px;height:56px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:transform .2s}
.wa:hover{transform:scale(1.08)}
.wa svg{width:30px;height:30px;color:#fff}

/* screen-reader / search-engine only text */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* follow the journey */
.follow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media (max-width:960px){.follow{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.follow{grid-template-columns:1fr}}
.follow-card{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"i c" "n n" "b b";gap:14px 14px;padding:22px;border-radius:14px;background:var(--surface);border:1px solid var(--line);transition:transform .25s,border-color .25s,box-shadow .25s}
.follow-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.25);box-shadow:0 18px 40px rgba(0,0,0,.4)}
.follow-card .fi{grid-area:i;width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}
.follow-card .fi svg{width:24px;height:24px}
.follow-card.youtube .fi{background:#ff0033}
.follow-card.instagram .fi{background:linear-gradient(45deg,#f9a825,#e91e63 50%,#7b1fa2)}
.follow-card.facebook .fi{background:#1877f2}
.follow-card .fc{grid-area:c;display:flex;flex-direction:column;justify-content:center}
.follow-card .fc b{font-family:var(--font-display);font-size:40px;line-height:.9;font-weight:400}
.follow-card .fc small{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.follow-card .fn{grid-area:n;font-weight:700}
.follow-card .fn em{display:block;font-style:normal;font-weight:400;font-size:13px;color:var(--muted)}
.follow-card .fb{grid-area:b;text-align:center;padding:9px;border-radius:8px;background:rgba(255,255,255,.08);font-weight:600;font-size:14px;transition:background .2s}
.follow-card:hover .fb{background:#fff;color:#000}

/* team social handle */
.member .handle{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-size:14px;font-weight:600;color:var(--blue-2)}
.member .handle svg{width:16px;height:16px}
.member .handle:hover{color:#fff}

/* player: up next + end card */
.upnext{display:flex;align-items:center;gap:10px;width:100%;margin-top:14px;padding:8px;border-radius:10px;background:var(--surface);border:1px solid var(--line);text-align:left;transition:border-color .2s}
.upnext:hover{border-color:var(--blue)}
.upnext img{width:96px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;flex:none}
.upnext span{flex:1;font-size:13px;font-weight:600;color:#e6ebf4;line-height:1.3}
.upnext small{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}
.upnext svg{width:18px;height:18px;flex:none;color:var(--blue-2)}
.box.dhriti .upnext:hover{border-color:var(--dhriti)}
.box.dhriti .upnext svg{color:var(--dhriti-2)}
.modal .more+.more{padding-top:6px}
.modal .end-card{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:10px clamp(20px,3vw,34px) clamp(20px,3vw,34px);padding:22px!important;border-radius:12px;background:linear-gradient(120deg,#0d1a36,#0b0f18);border:1px solid var(--line)}
.box.dhriti .end-card{background:linear-gradient(120deg,#3a0a12,#0b0f18)}
.modal .end-card .end-acts{display:flex;gap:10px;flex-wrap:wrap}
.modal .end-card .socials{margin-top:0}

/* FAQ */
.faq{display:grid;gap:10px;max-width:980px}
.faq details{border-radius:12px;background:var(--surface);border:1px solid var(--line);padding:18px 22px}
.faq summary{cursor:pointer;font-weight:700;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;line-height:1;color:var(--blue-2);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:#b9c3d4;margin-top:10px}

/* ==========================================================
   DHRITI — its own sindoor-red identity, applied automatically to
   any title whose id starts with "dhriti" and to the featured hero.
   ========================================================== */
.btn-dhriti{background:var(--dhriti);color:#fff;box-shadow:0 8px 30px var(--dhriti-glow)}
.btn-dhriti:hover{background:#e0213f;transform:translateY(-1px)}
.billboard.dhriti .kicker{color:var(--dhriti-2)}
.billboard.dhriti h1,.billboard.dhriti .bb-title{text-shadow:0 0 90px rgba(200,16,46,.6),0 10px 60px rgba(0,0,0,.5)}
.billboard.dhriti .shade{background:
  radial-gradient(55% 65% at 12% 72%,rgba(200,16,46,.30),rgba(200,16,46,0) 70%),
  linear-gradient(90deg,rgba(5,7,12,.92) 0%,rgba(5,7,12,.55) 38%,rgba(5,7,12,0) 70%),
  linear-gradient(0deg,var(--bg) 0%,rgba(5,7,12,.2) 30%,rgba(5,7,12,0) 60%)}
.billboard.dhriti .subtitle{color:#f3d6d9}
.billboard.dhriti .mute-btn{border-color:rgba(255,74,92,.7)}
/* cards & posters */
.tile[data-open^="dhriti"] .badge,.card[data-id^="dhriti"] .badge{background:var(--dhriti)}
.tile[data-open^="dhriti"]:hover .card,.tile[data-open^="dhriti"]:focus-visible .card,
.card[data-id^="dhriti"]:hover,.card[data-id^="dhriti"]:focus-visible{box-shadow:0 20px 50px rgba(0,0,0,.6),0 0 0 2px var(--dhriti),0 0 40px var(--dhriti-glow)}
.tile[data-open^="dhriti"] .cap h4::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--dhriti);margin-right:7px;vertical-align:2px;box-shadow:0 0 8px var(--dhriti-glow)}
.tile[data-open^="dhriti"]:hover .cap h4{color:var(--dhriti-2)}
.tile[data-open^="dhriti"] .play,.card[data-id^="dhriti"] .play{background:var(--dhriti);color:#fff}
/* player pop-up */
.modal .box.dhriti{border-color:rgba(200,16,46,.55);box-shadow:0 40px 120px rgba(0,0,0,.8),0 0 80px rgba(200,16,46,.25)}
.modal .box.dhriti .player{border-bottom:2px solid var(--dhriti)}
.modal .box.dhriti .info .chips .year{color:var(--dhriti-2)}
.modal .box.dhriti .info h3{color:#fff}
.modal .box.dhriti .btn-primary{background:var(--dhriti);color:#fff}
/* photo captions */
.onset figure.dhriti figcaption{color:#ffd9dd}
.onset figure.dhriti figcaption::before{content:"";display:inline-block;width:3px;height:11px;background:var(--dhriti);margin-right:7px;vertical-align:-1px}
.onset figure.dhriti:hover{box-shadow:0 0 0 2px var(--dhriti)}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* intro (first visit) */
.intro{position:fixed;inset:0;z-index:200;background:#000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;animation:introOut .7s 2.1s forwards}
.intro .word{font-family:var(--font-display);font-size:clamp(70px,14vw,180px);letter-spacing:.12em;line-height:1;background:linear-gradient(90deg,#fff 0%,#fff 40%,var(--blue-2) 50%,#fff 60%,#fff 100%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 1.6s .2s ease-in-out both,introZoom 2.6s ease-out both}
.intro small{font-size:12px;letter-spacing:.6em;color:var(--muted);text-transform:uppercase;animation:fade 1s .5s both}
@keyframes shine{from{background-position:100% 0}to{background-position:0 0}}
@keyframes introZoom{from{transform:scale(.92);opacity:0}25%{opacity:1}to{transform:scale(1.04)}}
@keyframes introOut{to{opacity:0;visibility:hidden}}
