/* ============================================================
   TMVS — Option B "The Session" · shared stylesheet
   From-scratch TMVS-native design: recording-session HUD language
   #0D0D0D · #FF6B2B · Bebas Neue display · DM Sans body · Space Grotesk HUD
   ============================================================ */
:root{
  --bg:#0D0D0D; --bg2:#111111; --bg3:#1A1A1A;
  --line:#242424; --line2:#303030;
  --txt:#C9C9C9; --dim:#8A8A8A; --white:#FFFFFF;
  --org:#FF6B2B; --org-dim:rgba(255,107,43,.14);
  --beb:"Bebas Neue",Impact,sans-serif;
  --dm:"DM Sans",-apple-system,sans-serif;
  --gro:"Space Grotesk","DM Sans",monospace;
  --max:1360px; --pad:clamp(20px,4vw,60px);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font-family:var(--dm);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--org);color:#0D0D0D}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
section{position:relative;padding:clamp(70px,9vw,130px) 0}

/* type */
.d1,.d2,.d3,h1,h2{font-family:var(--beb);font-weight:400;color:var(--white);line-height:.92;letter-spacing:.01em;text-transform:uppercase}
.d1{font-size:clamp(64px,11vw,170px)}
.d2{font-size:clamp(44px,7vw,104px)}
.d3{font-size:clamp(30px,4.4vw,60px)}
.period{color:var(--org)}
.hud{font-family:var(--gro);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
.hud b{color:var(--org);font-weight:500}
.lead{font-size:clamp(16px,1.35vw,20px);max-width:62ch}
.dim{color:var(--dim)}
h3{font-family:var(--dm);font-weight:600;color:var(--white);letter-spacing:-.01em}

/* slate label — the section ID chip */
.slate{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--line2);padding:8px 16px;font-family:var(--gro);font-size:11px;letter-spacing:.22em;color:var(--dim);text-transform:uppercase;margin-bottom:34px;background:rgba(17,17,17,.7)}
.slate .rec{width:8px;height:8px;border-radius:50%;background:var(--org);animation:blink 1.6s steps(2) infinite}
@keyframes blink{50%{opacity:.25}}
.slate b{color:var(--white);font-weight:500}

/* ---------- header HUD bar ---------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:90;border-bottom:1px solid transparent;transition:background-color .4s,border-color .4s}
.hdr.scrolled{background:rgba(13,13,13,.88);backdrop-filter:blur(16px);border-color:var(--line)}
.hdr-in{max-width:var(--max);margin:0 auto;padding:16px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:20px}
.hdr-logo img{height:38px;width:auto}
.hdr-nav{display:flex;gap:6px}
.hdr-nav a{font-family:var(--gro);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);padding:9px 14px;border:1px solid transparent;transition:.25s}
.hdr-nav a:hover{color:var(--white)}
.hdr-nav a.active{color:var(--org);border-color:var(--line2)}
.hdr-right{display:flex;align-items:center;gap:18px}
.tc{font-family:var(--gro);font-size:11.5px;letter-spacing:.14em;color:var(--dim);display:flex;align-items:center;gap:9px}
.tc span:last-child{font-variant-numeric:tabular-nums;min-width:8ch;display:inline-block}
.tc .rec{width:7px;height:7px;border-radius:50%;background:var(--org);animation:blink 1.6s steps(2) infinite}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--gro);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;background:var(--org);color:#0D0D0D;padding:13px 24px;border:1px solid var(--org);transition:.3s;cursor:pointer}
.btn:hover{background:transparent;color:var(--org)}
.btn.ghost{background:transparent;color:var(--white);border-color:var(--line2)}
.btn.ghost:hover{border-color:var(--org);color:var(--org)}
.burger{display:none;width:40px;height:40px;border:1px solid var(--line2);background:none;cursor:pointer;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:1.5px;background:#fff}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:23px}
@media(max-width:1020px){.hdr-nav,.hdr .btn,.tc{display:none}.burger{display:block}}
.menu-ov{position:fixed;inset:0;background:rgba(13,13,13,.97);z-index:100;display:flex;flex-direction:column;justify-content:center;padding:0 var(--pad);opacity:0;pointer-events:none;transition:opacity .4s}
.menu-ov.open{opacity:1;pointer-events:auto}
.menu-ov a.mlink{font-family:var(--beb);font-size:clamp(40px,8vw,76px);color:var(--white);line-height:1.15;text-transform:uppercase;display:flex;align-items:baseline;gap:18px}
.menu-ov a.mlink .mn{font-family:var(--gro);font-size:12px;color:var(--org);letter-spacing:.2em}
.menu-ov a.mlink:hover{color:var(--org)}
.menu-x{position:absolute;top:20px;right:var(--pad);width:42px;height:42px;border:1px solid var(--line2);background:none;color:#fff;font-size:17px;cursor:pointer}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;padding:150px 0 110px}
.hero-ghost{position:absolute;right:-2vw;top:8vh;font-family:var(--beb);font-size:46vh;line-height:1;color:transparent;-webkit-text-stroke:1px #1E1E1E;pointer-events:none;user-select:none}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line>span{display:inline-block;transform:translateY(110%);animation:rise 1s var(--ease) forwards}
@keyframes rise{to{transform:none}}
.morph{color:var(--org);display:inline-block;min-width:6ch}
.hero-foot{position:absolute;left:var(--pad);right:var(--pad);bottom:30px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.scroll-cue{display:flex;align-items:center;gap:10px;font-family:var(--gro);font-size:11px;letter-spacing:.2em;color:var(--dim);text-transform:uppercase}
.scroll-cue::after{content:"";width:1px;height:34px;background:linear-gradient(var(--org),transparent);animation:cue 1.8s ease infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1)}100%{transform:scaleY(0);transform-origin:bottom}}

/* waveform divider */
.wave{display:block;width:100%;height:70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2)}
.wave canvas{width:100%;height:100%;display:block}

/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.bx{background:var(--bg2);border:1px solid var(--line);padding:34px 30px;position:relative;overflow:hidden;transition:border-color .3s,background .3s}
.bx:hover{border-color:rgba(255,107,43,.5);background:var(--bg3)}
.bx .bx-id{position:absolute;top:14px;right:16px;font-family:var(--gro);font-size:10px;letter-spacing:.18em;color:#3A3A3A}
.bx h3{font-size:19px;margin-bottom:10px}
.bx p{font-size:14.5px;color:var(--dim)}
.bx .bnum{font-family:var(--beb);font-size:clamp(46px,5vw,74px);color:var(--white);line-height:1}
.bx .bnum em{font-style:normal;color:var(--org)}
.bx .blbl{font-family:var(--gro);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-top:8px}
.c12{grid-column:span 12}.c8{grid-column:span 8}.c6{grid-column:span 6}.c4{grid-column:span 4}.c3{grid-column:span 3}
@media(max-width:980px){.c8,.c6{grid-column:span 12}.c4,.c3{grid-column:span 6}}
@media(max-width:600px){.c4,.c3{grid-column:span 12}}
.bx.feature{background:linear-gradient(150deg,var(--org-dim),var(--bg2) 60%)}
.bx.dark-art{display:flex;align-items:flex-end;min-height:240px;background:linear-gradient(160deg,#1C1C1C,#0D0D0D)}

/* channel-strip service card */
.strip{background:var(--bg2);border:1px solid var(--line);padding:30px 26px 26px;position:relative;transition:.3s}
.strip:hover{border-color:rgba(255,107,43,.5);transform:translateY(-4px)}
.strip .ch{font-family:var(--gro);font-size:10.5px;letter-spacing:.2em;color:var(--org);margin-bottom:16px;display:flex;justify-content:space-between}
.strip h3{font-size:18.5px;margin-bottom:10px}
.strip p{font-size:14px;color:var(--dim)}
.strip .vu{display:flex;gap:3px;margin-top:22px;height:5px}
.strip .vu i{flex:1;background:#262626;transition:background .4s}
.strip:hover .vu i:nth-child(-n+7){background:var(--org)}
.strip:hover .vu i:nth-child(-n+9){transition-delay:.1s}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;white-space:nowrap}
.marquee .track{display:inline-flex;align-items:baseline;animation:mq var(--mq-speed,42s) linear infinite}
.marquee.rev .track{animation-direction:reverse}
.marquee .mi{font-family:var(--beb);font-size:clamp(30px,4.4vw,64px);color:var(--white);padding:0 .45em;text-transform:uppercase}
.marquee .mi.o{color:transparent;-webkit-text-stroke:1px var(--org)}
.marquee .dot{color:var(--org);font-size:clamp(18px,2.4vw,30px);padding:0 .2em}
@keyframes mq{to{transform:translateX(-33.333%)}}

/* ---------- session-files credit list ---------- */
.files{border:1px solid var(--line);background:var(--bg2)}
.file{display:grid;grid-template-columns:120px 1fr auto auto;gap:24px;align-items:center;padding:24px 28px;border-bottom:1px solid var(--line);font-family:var(--gro);position:relative;transition:background .25s;cursor:pointer}
.file:last-child{border-bottom:none}
.file:hover{background:var(--bg3)}
.file .f-id{font-size:11px;letter-spacing:.16em;color:var(--org)}
.file .f-name{font-family:var(--beb);font-size:clamp(22px,2.6vw,38px);color:var(--white);text-transform:uppercase;letter-spacing:.02em;transition:.3s}
.file:hover .f-name{color:var(--org);transform:translateX(10px)}
.file .f-fmt{font-size:11px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase}
.file .f-role{font-size:12px;color:var(--dim);text-align:right;max-width:250px;font-family:var(--dm)}
.file .f-collab{display:block;color:var(--org);font-size:11px;margin-top:3px}
.file .f-bar{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--org);transform:scaleY(0);transition:transform .3s var(--ease)}
.file:hover .f-bar{transform:none}
@media(max-width:760px){.file{grid-template-columns:70px 1fr;row-gap:4px}.file .f-role{text-align:left;max-width:none}}
.hover-img{position:fixed;z-index:60;width:250px;aspect-ratio:3/4;overflow:hidden;pointer-events:none;opacity:0;transform:scale(.92);transition:opacity .25s,transform .25s;background:#161616;border:1px solid var(--line2);box-shadow:0 30px 80px rgba(0,0,0,.65)}
.hover-img.on{opacity:1;transform:scale(1)}
.hover-img img{width:100%;height:100%;object-fit:cover}
.hover-img .ph{display:flex;align-items:center;justify-content:center;height:100%;color:var(--org);font-family:var(--beb);font-size:26px;text-transform:uppercase;padding:20px;text-align:center}

/* ---------- process rail ---------- */
.rail{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--line)}
@media(max-width:900px){.rail{grid-template-columns:1fr}}
.rail .rstep{padding:36px 26px;border-right:1px solid var(--line);position:relative;transition:background .3s}
.rail .rstep:last-child{border-right:none}
@media(max-width:900px){.rail .rstep{border-right:none;border-bottom:1px solid var(--line)}}
.rail .rstep:hover{background:var(--bg2)}
.rail .rn{font-family:var(--beb);font-size:54px;color:transparent;-webkit-text-stroke:1px #3A3A3A;line-height:1;transition:.35s}
.rail .rstep:hover .rn{color:var(--org);-webkit-text-stroke:1px var(--org)}
.rail h3{font-size:16.5px;margin:16px 0 8px}
.rail p{font-size:13.5px;color:var(--dim)}

/* ---------- clients ---------- */
.clients{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);border:1px solid var(--line)}
.client{flex:1 1 220px;min-height:150px;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:28px 30px;transition:background .3s}
.client:hover{background:var(--bg2)}
.client img{max-height:72px;max-width:82%;width:auto;height:auto;object-fit:contain;filter:grayscale(1) brightness(1.7);opacity:.75;transition:.3s}
.client:hover img{filter:none;opacity:1}
.client img.inv{filter:grayscale(1) invert(1) brightness(1.1)}
.client:hover img.inv{filter:invert(1)}

/* ---------- FAQ console ---------- */
.faq{border:1px solid var(--line);background:var(--bg2)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:last-child{border-bottom:none}
.faq-q{width:100%;background:none;border:none;color:var(--white);font-family:var(--dm);font-size:clamp(16px,1.7vw,20px);font-weight:600;text-align:left;padding:24px 60px 24px 26px;cursor:pointer;position:relative;display:flex;gap:18px;align-items:baseline}
.faq-q .fn{font-family:var(--gro);color:var(--org);font-size:11.5px;letter-spacing:.14em;flex:0 0 44px}
.faq-q::after{content:"+";position:absolute;right:24px;top:50%;transform:translateY(-50%);color:var(--org);font-size:24px;font-weight:300;transition:transform .3s}
.faq-item.open .faq-q::after{transform:translateY(-50%) rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease)}
.faq-a p{padding:0 26px 26px 88px;color:var(--dim);max-width:75ch}

/* ---------- CTA ---------- */
.cta-band{text-align:center;padding:clamp(90px,12vw,170px) 0;position:relative;overflow:hidden}
.cta-band .glow{position:absolute;inset:0;background:radial-gradient(ellipse 55% 55% at 50% 110%,rgba(255,107,43,.13),transparent 70%);pointer-events:none}
.cta-band .d2{margin-bottom:38px}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);background:var(--bg2);padding:66px 0 30px}
.ft-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:50px}
.ft-big{font-family:var(--beb);font-size:clamp(44px,7vw,100px);color:var(--white);line-height:.95;text-transform:uppercase}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:36px;margin-bottom:50px}
@media(max-width:860px){.ft-grid{grid-template-columns:1fr 1fr}}
.ft-grid h3{font-family:var(--gro);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--org);margin-bottom:16px;font-weight:500}
.ft-grid a{display:block;padding:5px 0;font-size:14.5px;color:var(--txt);transition:.25s}
.ft-grid a:hover{color:var(--org)}
.ft-about{font-size:14px;color:var(--dim);max-width:34ch}
.ft-logo{height:42px;width:auto;margin-bottom:16px}
.ft-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:var(--gro);font-size:11px;letter-spacing:.1em;color:var(--dim)}

/* ---------- inner page hero ---------- */
.page-hero{padding:185px 0 60px;position:relative;overflow:hidden}
.page-hero .crumb{font-family:var(--gro);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:26px}
.page-hero .crumb a:hover{color:var(--org)}
.pull-quote{font-size:clamp(18px,2vw,26px);color:var(--white);line-height:1.5;max-width:36ch;border-left:2px solid var(--org);padding-left:26px;margin-top:40px;font-weight:500}

/* ---------- split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,6vw,90px);align-items:start}
@media(max-width:860px){.split{grid-template-columns:1fr}}

/* ---------- compare meters ---------- */
.meter{margin:26px 0}
.meter .m-l{display:flex;justify-content:space-between;font-family:var(--gro);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.meter .m-l b{color:var(--white)}
.meter .bar{height:8px;background:#1E1E1E;position:relative;overflow:hidden}
.meter .bar i{position:absolute;inset:0;width:0;background:#4A4A4A;transition:width 1.4s var(--ease)}
.meter.org .bar i{background:var(--org)}
.meter.in .bar i{width:var(--w)}

/* ---------- forms ---------- */
.form{display:grid;gap:16px}
.form .frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.form .frow{grid-template-columns:1fr}}
.form input,.form select,.form textarea{width:100%;background:var(--bg2);border:1px solid var(--line2);color:var(--white);font-family:var(--dm);font-size:15px;padding:16px 18px;transition:border-color .3s;-webkit-appearance:none;border-radius:0}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--org)}
.form textarea{min-height:140px;resize:vertical}
.form label{font-family:var(--gro);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

/* ---------- case study ---------- */
.case-hero{padding:175px 0 50px}
.case-meta{display:flex;gap:0;flex-wrap:wrap;margin-top:36px;border:1px solid var(--line);background:var(--bg2)}
.case-meta div{padding:20px 28px;border-right:1px solid var(--line);flex:1 1 160px}
.case-meta div:last-child{border-right:none}
.case-meta div b{display:block;font-family:var(--gro);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);font-weight:500;margin-bottom:7px}
.case-meta div span{color:var(--white);font-size:14.5px}
.case-poster{aspect-ratio:2/1;overflow:hidden;background:linear-gradient(150deg,#1B1B1B,#0D0D0D);border:1px solid var(--line);position:relative;display:flex;align-items:center;justify-content:center}
.case-poster img{width:100%;height:100%;object-fit:cover}
.case-poster .ph-title{font-family:var(--beb);font-size:clamp(46px,9vw,130px);color:transparent;-webkit-text-stroke:1px #353535;text-transform:uppercase;text-align:center;padding:20px;line-height:.95}
.collab-tag{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 10px;border:1px solid var(--line2);padding:9px 18px;font-family:var(--gro);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--txt);line-height:1.5}
.collab-tag b{color:var(--org);font-weight:500}
/* From the Sessions strip (Kalki) */
.sessions{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.sframe{position:relative;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line);background:#141414}
.sframe img{width:100%;height:100%;object-fit:cover;display:block}
.sframe::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 70px 12px rgba(0,0,0,.45);pointer-events:none}
.sframe figcaption{position:absolute;left:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:8px;font-family:var(--gro);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--white);background:rgba(8,8,8,.55);border:1px solid var(--line2);padding:6px 11px;backdrop-filter:blur(3px)}
@media(max-width:760px){.sessions{grid-template-columns:none;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:8px}.sframe{flex:0 0 72%;scroll-snap-align:start}}
/* Video embed row (FF MAX ON AIR) */
.vembeds{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
.vframe{position:relative;aspect-ratio:16/9;border:1px solid var(--line2);overflow:hidden;background:#000}
.vframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
@media(max-width:860px){.vembeds{grid-template-columns:1fr;gap:14px;max-width:520px}}
.case-nav{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line)}
.case-nav a{background:var(--bg);padding:42px var(--pad);transition:background .3s}
.case-nav a:hover{background:var(--bg2)}
.case-nav .cn-l{font-family:var(--gro);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.case-nav .cn-t{font-family:var(--beb);font-size:clamp(24px,3vw,40px);color:var(--white);text-transform:uppercase;margin-top:8px}

/* ---------- filters ---------- */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:38px 0 14px}
.fpill{background:none;border:1px solid var(--line2);color:var(--txt);padding:10px 20px;font-family:var(--gro);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:.3s}
.fpill:hover{border-color:var(--org);color:var(--org)}
.fpill.on{background:var(--org);border-color:var(--org);color:#0D0D0D;font-weight:600}

/* ---------- founders ---------- */
.founder{display:grid;grid-template-columns:280px 1fr;gap:40px;align-items:start;padding:46px 0;border-top:1px solid var(--line)}
@media(max-width:760px){.founder{grid-template-columns:1fr}}
.founder .fphoto{aspect-ratio:3/4;background:linear-gradient(160deg,#1E1E1E,#101010);border:1px solid var(--line);overflow:hidden;display:flex;align-items:center;justify-content:center}
.founder .fphoto img{width:100%;height:100%;object-fit:cover}
.founder .fphoto .ini{font-family:var(--beb);font-size:74px;color:var(--org)}
.founder h3{font-family:var(--beb);font-size:clamp(28px,3.4vw,44px);text-transform:uppercase;font-weight:400}
.founder .frole{font-family:var(--gro);color:var(--org);font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin:8px 0 20px}
.founder p{color:var(--dim);max-width:62ch;margin-bottom:14px}
.credit-cloud{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:28px}
.credit-cloud span{font-size:14px;color:var(--txt);border-bottom:1px solid var(--line2);padding-bottom:3px;transition:.25s}
.credit-cloud span:hover{color:var(--org);border-color:var(--org)}
.tag-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.tag{border:1px solid var(--line2);padding:8px 16px;font-family:var(--gro);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}

/* ---------- reveals ---------- */
.rv{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.1s}.rv-d2{transition-delay:.2s}.rv-d3{transition-delay:.3s}.rv-d4{transition-delay:.4s}

/* ---------- topbtn ---------- */
.topbtn{position:fixed;right:24px;bottom:24px;width:50px;height:50px;z-index:80;cursor:pointer;opacity:0;transition:opacity .4s;background:rgba(13,13,13,.8);border:1px solid var(--line2)}
.topbtn.show{opacity:1}
.topbtn .arr{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--org);font-size:16px}
.topbtn .pb{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--org)}
.hr{border:none;border-top:1px solid var(--line)}

/* ============================================================
   v2 additions — Jun 12 2026
   ============================================================ */

/* ---------- hero ambient waveform background ---------- */
.hero-wave{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5}
.hero-wave canvas{width:100%;height:100%;display:block}
.hero .wrap,.hero-foot,.hero-ghost{z-index:1}

/* ---------- showreel slot ---------- */
.reel-stage{transform:scale(.9);transform-origin:center;transition:none;will-change:transform}
.reel-frame{position:relative;aspect-ratio:16/9;background:linear-gradient(155deg,#181818,#0D0D0D);border:1px solid var(--line2);overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center}
.reel-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reel-frame .reel-ghost{font-family:var(--beb);font-size:clamp(56px,11vw,170px);color:transparent;-webkit-text-stroke:1px #2C2C2C;text-transform:uppercase;line-height:.95;text-align:center;user-select:none}
.reel-frame .reel-hud{position:absolute;top:18px;left:20px;display:flex;align-items:center;gap:10px;font-family:var(--gro);font-size:11px;letter-spacing:.2em;color:var(--dim);text-transform:uppercase}
.reel-frame .reel-hud .rec{width:8px;height:8px;border-radius:50%;background:var(--org);animation:blink 1.6s steps(2) infinite}
.reel-frame .reel-tc{position:absolute;top:18px;right:20px;font-family:var(--gro);font-size:11px;letter-spacing:.14em;color:var(--dim)}
.reel-frame .reel-note{position:absolute;bottom:18px;left:20px;font-family:var(--gro);font-size:11px;letter-spacing:.18em;color:var(--dim);text-transform:uppercase}
.reel-play{position:absolute;width:92px;height:92px;border-radius:50%;border:1px solid rgba(255,107,43,.65);background:rgba(13,13,13,.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;transition:.35s;z-index:2}
.reel-play::after{content:"";border-style:solid;border-width:12px 0 12px 20px;border-color:transparent transparent transparent var(--org);margin-left:5px}
.reel-frame:hover .reel-play{transform:scale(1.08);background:rgba(255,107,43,.16)}
.reel-corners i{position:absolute;width:22px;height:22px;border:0 solid var(--org);opacity:.8}
.reel-corners i:nth-child(1){top:10px;left:10px;border-top-width:1.5px;border-left-width:1.5px}
.reel-corners i:nth-child(2){top:10px;right:10px;border-top-width:1.5px;border-right-width:1.5px}
.reel-corners i:nth-child(3){bottom:10px;left:10px;border-bottom-width:1.5px;border-left-width:1.5px}
.reel-corners i:nth-child(4){bottom:10px;right:10px;border-bottom-width:1.5px;border-right-width:1.5px}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(8,8,8,.94);display:none;align-items:center;justify-content:center;padding:4vw}
.lightbox.open{display:flex}
.lightbox .lb-in{position:relative;width:min(1100px,94vw);aspect-ratio:16/9;background:#000;border:1px solid var(--line2)}
.lightbox iframe{width:100%;height:100%;border:0;display:block}
.lightbox .lb-soon{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}
.lightbox .lb-x{position:absolute;top:-50px;right:0;width:42px;height:42px;border:1px solid var(--line2);background:none;color:#fff;font-size:17px;cursor:pointer}
.lightbox .lb-x:hover{border-color:var(--org);color:var(--org)}

/* ---------- client logo marquee (two rows) ---------- */
.lgmq-lbl{font-family:var(--gro);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);padding:0 var(--pad);max-width:var(--max);margin:0 auto 12px}
.lgmq-lbl b{color:var(--org);font-weight:500}
.marquee.lgmq{padding:24px 0;border-bottom:none}
.marquee.lgmq+ .marquee.lgmq{border-top:none;border-bottom:1px solid var(--line)}
.marquee.lgmq .track{align-items:center;height:clamp(76px,9vw,120px)}
.marquee.lgmq .li{display:inline-flex;align-items:center;justify-content:center;height:100%;padding:0 clamp(20px,2.6vw,40px);vertical-align:middle}
/* dynamic logo sizing — main.js classifies each logo by its artwork aspect ratio:
   square canvases fill the band (.tall default), mid-width marks sit between, wide wordmark crops stay shorter */
.marquee.lgmq .li img{height:clamp(70px,8.4vw,112px);width:auto;max-width:280px;object-fit:contain;filter:grayscale(1) brightness(1.8);opacity:.85;transition:filter .3s,opacity .3s;display:inline-block}
.marquee.lgmq .li.mid img{height:clamp(46px,5.4vw,74px);max-width:300px}
.marquee.lgmq .li.wide img{height:clamp(30px,3.4vw,50px);max-width:320px}
.marquee.lgmq .li:hover img{filter:none;opacity:1}
.marquee.lgmq .li img.inv{filter:grayscale(1) invert(1) brightness(1.1)}
.marquee.lgmq .li:hover img.inv{filter:invert(1)}
.marquee.lgmq .dot{vertical-align:middle}

/* ---------- platform pills — "work featured on" ---------- */
.plat-row{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.plat{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line2);background:var(--bg2);padding:14px 24px;transition:border-color .3s}
.plat:hover{border-color:rgba(255,107,43,.5)}
.plat img{height:22px;width:auto;max-width:130px;object-fit:contain;filter:grayscale(1) brightness(1.6);opacity:.85;transition:.3s}
.plat:hover img{filter:none;opacity:1}
.plat img.inv{filter:grayscale(1) invert(1) brightness(1.05)}
.plat:hover img.inv{filter:invert(1)}
.plat.tall img{height:30px}

/* ---------- film divider (Production) — variant A + REC ---------- */
.film-div{position:relative;display:block;width:100%;height:70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2);overflow:hidden}
.film-div canvas{width:100%;height:100%;display:block}
.film-tag{position:absolute;top:8px;right:14px;display:flex;align-items:center;gap:8px;font-family:var(--gro);font-size:10px;letter-spacing:.18em;color:var(--dim);text-transform:uppercase;pointer-events:none}
.film-tag .rec{width:7px;height:7px;border-radius:50%;background:var(--org);animation:blink 1.2s steps(2) infinite}

/* ---------- ops divider (Gaming) — patch-note ship log ---------- */
.ops-div{position:relative;display:block;width:100%;height:70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2);overflow:hidden}
.ops-div canvas{width:100%;height:100%;display:block}

/* ---------- timeline divider (Work) — session archive ---------- */
.tl-div{position:relative;display:block;width:100%;height:70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2);overflow:hidden}
.tl-div canvas{width:100%;height:100%;display:block}

/* ---------- poster fly-in CTA set piece ---------- */
.flyin{position:relative;height:280vh}
.flyin-sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.flyin-p{position:absolute;width:clamp(120px,15vw,220px);aspect-ratio:2/3;overflow:hidden;border:1px solid var(--line2);box-shadow:0 24px 70px rgba(0,0,0,.6);will-change:transform,opacity;background:#161616}
.flyin-p img{width:100%;height:100%;object-fit:cover}
.flyin-core{position:relative;z-index:5;text-align:center;padding:0 var(--pad)}
.flyin-core .slate{margin-bottom:26px}
.flyin-cta{opacity:0;transform:translateY(24px) scale(.94);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.flyin-cta.in{opacity:1;transform:none}
.flyin-grid{display:none}
/* phones get a smaller poster so the fly-in frames the CTA instead of covering it */
@media(max-width:767px){.flyin .flyin-p{width:clamp(92px,26vw,150px)}}
/* static fallback — JS adds .static under reduced-motion / Save-Data (or no JS via the
   no-`.live` path); the cinematic sticky fly-in runs at every other width incl. phones+iPad */
.flyin.static{height:auto}
.flyin.static .flyin-sticky{position:static;height:auto;display:block;padding:clamp(70px,12vw,110px) 0}
.flyin.static .flyin-p{display:none}
.flyin.static .flyin-cta{opacity:1;transform:none}
.flyin.static .flyin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:34px auto 0;max-width:520px;padding:0 var(--pad)}
.flyin.static .flyin-grid .gp{aspect-ratio:2/3;overflow:hidden;border:1px solid var(--line2);background:#161616}
.flyin.static .flyin-grid .gp img{width:100%;height:100%;object-fit:cover}

/* ---------- founder cards ---------- */
.fcards{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:860px){.fcards{grid-template-columns:1fr}}
.fcard{background:var(--bg2);border:1px solid var(--line);padding:0;position:relative;transition:border-color .3s;display:flex;flex-direction:column}
.fcard:hover{border-color:rgba(255,107,43,.5)}
.fcard .fc-id{position:absolute;top:14px;right:16px;font-family:var(--gro);font-size:10px;letter-spacing:.18em;color:#3A3A3A;z-index:2}
.fcard .fphoto{aspect-ratio:3/4;background:linear-gradient(160deg,#1E1E1E,#101010);border-bottom:1px solid var(--line);overflow:hidden;display:flex;align-items:center;justify-content:center}
.fcard .fphoto img{width:100%;height:100%;object-fit:cover;object-position:center top}
.fcard .fphoto .ini{font-family:var(--beb);font-size:74px;color:var(--org)}
.fcard .fc-body{padding:30px 28px 28px;display:flex;flex-direction:column;flex:1}
.fcard h3{font-family:var(--beb);font-size:clamp(28px,3vw,40px);text-transform:uppercase;font-weight:400;color:var(--white)}
.fcard .frole{font-family:var(--gro);color:var(--org);font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin:8px 0 18px}
.fcard p{color:var(--dim);font-size:14.5px;margin-bottom:12px}
.fcard .fc-social{margin-top:auto;padding-top:18px;display:flex;gap:10px}
.fcard .fc-social a{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line2);padding:9px 16px;font-family:var(--gro);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);transition:.25s}
.fcard .fc-social a:hover{border-color:var(--org);color:var(--org)}

/* ---------- AI stance ---------- */
.ai-line{border:1px solid var(--line);background:var(--bg2);padding:clamp(34px,5vw,56px);position:relative}
.ai-line .d3{margin-bottom:14px}
.ai-line p{color:var(--dim);max-width:70ch}

/* ---------- QA-pass fixes (Jun 12) ---------- */
section[id]{scroll-margin-top:90px}
/* hero morph word: foreign-script fallback fonts run wide — shrink on small screens */
@media(max-width:640px){.morph{font-size:.72em;min-width:auto}}
@media(max-width:430px){.morph{font-size:.6em}}
/* hero foot collides with CTAs on short phones — go in-flow */
@media(max-width:480px){
  .hero{padding-bottom:60px}
  .hero-foot{position:static;margin-top:48px;padding:0 var(--pad);flex-direction:column;align-items:flex-start;gap:16px}
}
/* second logo-marquee row needs a closing border */
.marquee.lgmq.rev{border-bottom:1px solid var(--line)}
/* only linked session-file rows should advertise a click */
.file{cursor:default}
a.file{cursor:pointer}
.file:hover .f-name{color:var(--white);transform:none}
a.file:hover .f-name{color:var(--org);transform:translateX(10px)}
.file:hover .f-bar{transform:scaleY(0)}
a.file:hover .f-bar{transform:none}
/* session-file format chip: give it the full row on mobile */
@media(max-width:760px){.file .f-fmt{grid-column:1/-1}}
/* FAQ answers: drop the desktop indent on phones */
@media(max-width:640px){.faq-a p{padding:0 26px 26px 26px}}
/* touch targets */
.burger{width:44px;height:44px}
.burger span{left:11px;right:11px}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:25px}
/* keyboard affordance on the reel */
.reel-frame:focus-visible{outline:2px solid var(--org);outline-offset:3px}

/* ---------- feedback round 1 (Jun 12) ---------- */
/* floating social rail — every page, vertically centered */
.srail{position:fixed;left:18px;top:50%;transform:translateY(-50%);z-index:85;display:flex;flex-direction:column;gap:8px}
.srail a{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:rgba(13,13,13,.82);border:1px solid var(--line2);color:var(--dim);transition:border-color .25s,color .25s;backdrop-filter:blur(8px)}
.srail a:hover{border-color:var(--org);color:var(--org)}
.srail svg{width:17px;height:17px;display:block;fill:currentColor}
.srail svg.st{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* below 1100px the centered rail would sit on the text column — drop to a compact bottom row */
@media(max-width:1100px){.srail{flex-direction:row;top:auto;bottom:12px;left:10px;transform:none;gap:5px}.srail a{width:36px;height:36px}.srail svg{width:15px;height:15px}}

/* footer brand lockup — orange outline+wordmark badge | text */
.ft-brand{display:flex;gap:24px;align-items:center}
.ft-mark{height:116px;width:auto;flex:0 0 auto}
.ft-brand-r{display:flex;flex-direction:column}
.ft-geo{font-family:var(--gro);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-top:14px}
.ft-geo b{color:var(--org);font-weight:500}
@media(max-width:480px){.ft-brand{gap:18px}.ft-mark{height:84px}}
.ft-bottom a{color:inherit}
.ft-bottom a:hover{color:var(--org)}

/* session-file poster thumbs (Work + Localization featured) */
.files.thumbed .file{grid-template-columns:54px 110px 1fr auto auto}
.f-th{width:54px;aspect-ratio:2/3;background:#161616;border:1px solid var(--line2);overflow:hidden;display:flex;align-items:center;justify-content:center}
.f-th img{width:100%;height:100%;object-fit:cover}
.f-th .fph{font-family:var(--beb);font-size:15px;color:var(--org);opacity:.7}
@media(max-width:760px){.files.thumbed .file{grid-template-columns:54px 70px 1fr}}

/* ============================================================
   v2.1 additions — Jun 12 2026
   Gaming page · Join-the-Bench page · index credential row
   ============================================================ */

/* credential chips — index "RECEIPTS" row (slate/pill family) */
.cred-row{display:flex;flex-wrap:wrap;gap:10px}
.cred{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line2);background:var(--bg2);padding:12px 18px;font-family:var(--gro);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);transition:border-color .3s}
.cred::before{content:"";width:7px;height:7px;background:var(--org);flex:0 0 auto}
.cred b{color:var(--white);font-weight:500}
.cred:hover{border-color:rgba(255,107,43,.5)}

/* session-file proof links — gaming credits (BGMI video proof) */
.f-proof{display:block;margin-top:7px}
.f-proof a{font-family:var(--gro);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line2);margin-left:12px;transition:.25s}
.f-proof a:first-child{margin-left:0}
.f-proof a:hover{color:var(--org);border-color:var(--org)}

/* bench door cards — CTA pinned to the card foot */
.bx.door{display:flex;flex-direction:column}
.bx.door .tag-row{margin:18px 0 26px}
.bx.door .btn{margin-top:auto;align-self:flex-start}

/* mobile session-file rows — stop the role column squeezing into the
   54/70px grid track (gaming credits: role text + proof links) */
@media(max-width:760px){
  .file .f-role{grid-column:1/-1}
  .files.thumbed .file{grid-template-columns:54px auto 1fr}
}

/* ---------- "Hear the work" — case-page trailer embeds (Jun 17 2026) ---------- */
.htw{display:grid;gap:18px;grid-template-columns:1fr;max-width:760px;margin-top:8px}
.htw.two{max-width:none;grid-template-columns:1fr 1fr}
@media(max-width:860px){.htw.two{grid-template-columns:1fr;max-width:560px}}
.htw figure{margin:0}
.htw .vframe{position:relative;aspect-ratio:16/9;border:1px solid var(--line2);overflow:hidden;background:#000}
.htw .vframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.htw .vcap{font-family:var(--gro);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-top:10px;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.htw .vcap b{color:var(--white);font-weight:500}
.htw .vcap a{color:var(--dim);border-bottom:1px solid var(--line2);transition:.25s}
.htw .vcap a:hover{color:var(--org);border-color:var(--org)}

/* ============================================================
   reduced-motion — honour the OS setting on every device (Jun 17 2026)
   Canvas loops + scroll/fly-in transforms are already gated in JS (STATIC);
   this stills the CSS-driven motion to match.
   ============================================================ */
@media(prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .marquee .track{animation:none}
  .scroll-cue::after{animation:none}
  .hero h1 .line>span{animation:none;transform:none}
  .slate .rec,.tc .rec,.film-tag .rec,.reel-frame .reel-hud .rec{animation:none}
  .rv{opacity:1;transform:none;transition:none}
  .reel-stage{transform:none}
  .meter .bar i{transition:none}
}
