/* Friendly Foes: Originals panels + film pages (Sayawan, Rage Radio). */
:root{--th:var(--ff-topbar-h,8px);--a:var(--ff-accent);--tx:var(--ff-text);--ink:var(--ff-ink);--f:var(--ff-font)}
.ff-film{margin:0;padding:0}
.ff-film .sr,.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.ff-film .small{font-size:13px}
.ff-snap .ff-footer{display:none}

/* ---------- Originals ---------- */
.orig-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:36px 32px 22px;scroll-snap-align:start}
.orig-head h1{margin:0;font-size:12px;font-weight:500;letter-spacing:.35em;text-transform:uppercase}
.orig-head p{margin:0;max-width:440px;font-size:14px;color:var(--tx);text-align:right}
.panel{position:relative;height:calc(100vh - var(--th));min-height:520px;overflow:hidden;display:block;color:#fff;background:#0e1518;scroll-snap-align:start;scroll-snap-stop:always;scroll-margin-top:var(--th);text-decoration:none!important}
.panel img,.panel .art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.panel .art{background-size:cover;background-position:center 35%;background-repeat:no-repeat}
.panel::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to left,rgba(0,0,0,.55) 0,rgba(0,0,0,0) 42%)}
.panel::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 50%)}
.panel .big{position:absolute;left:24px;bottom:14px;z-index:2;margin:0;font-size:clamp(84px,13.5vw,250px);line-height:.86;font-weight:500;letter-spacing:-.045em;color:#fff;white-space:nowrap;display:inline-block;text-transform:none}
.panel .meta{position:absolute;right:28px;top:50%;transform:translateY(-50%);z-index:2;text-align:right;max-width:300px}
.panel .meta .fmt{display:block;font-size:11px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;margin-bottom:10px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.panel .meta .line{display:block;font-size:15px;line-height:1.5;margin-bottom:16px;text-shadow:0 1px 10px rgba(0,0,0,.6)}
.panel .cta{display:inline-block;border:1px solid #fff;padding:9px 16px;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.15)}
.panel:hover .cta{background:#fff;color:var(--ink)}
.panel img{transition:transform 1.2s}.panel:hover img{transform:scale(1.03)}
.panel img.rr-crop{transform:scale(1.08)}.panel:hover img.rr-crop{transform:scale(1.11)}
@media(max-width:800px){.panel{height:78vh}.panel .meta{top:28px;transform:none;right:20px;left:20px;text-align:left}.panel .big{font-size:clamp(56px,19vw,120px);white-space:normal}}
.follow{position:relative;background:#111;color:#fff;min-height:calc(100vh - var(--th));display:flex;align-items:center;justify-content:center;text-align:center;scroll-snap-align:end}
.follow-in{padding:70px 28px;max-width:760px}
.follow .kicker{font-size:11px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:#9a9a9a;margin:0 0 14px}
.follow-h{margin:0 0 14px;color:#fff;font-size:clamp(34px,4.6vw,64px);font-weight:500;letter-spacing:-.03em;line-height:1.05}
.follow-p{color:#bdbdbd;margin:0 0 30px;font-size:17px}
.yt-btn{display:inline-flex;align-items:center;gap:12px;background:#ff0033;color:#fff!important;padding:16px 28px;font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;text-decoration:none!important}
.socials{list-style:none;margin:34px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 30px}
.socials a{color:#fff;font-size:12px;font-weight:500;letter-spacing:.25em;text-transform:uppercase}
.follow .small{color:#8d8d8d;margin-top:34px}.follow .small a{color:#fff}
html:has(body.ff-snap){scroll-snap-type:y mandatory}
@media (pointer:fine){html:has(body.ff-snap){scroll-snap-type:none}}

/* ---------- Film pages (shared) ---------- */
.ip{--bg:#0b1416;--fg:#e9e4d8;--mu:#8fa3a6;--ac:#e0a84a;background:var(--bg);color:var(--fg);font-family:var(--f);font-weight:300;line-height:1.7}
.ip a{color:var(--ac)}.ip .ph{color:var(--mu);opacity:.75}
.ip h1,.ip h2,.ip h3{color:inherit}
.ip-hero{position:relative;height:calc(100vh - var(--th));min-height:560px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center}
.ip-hero img,.ip-hero .art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center}
.ip-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--bg) 0,rgba(0,0,0,0) 55%)}
.ip-hero .lock{position:relative;z-index:2;text-align:center;padding:0 24px 56px}
.ip-studio{font-size:11px;font-weight:500;letter-spacing:.4em;text-transform:uppercase;color:var(--mu);margin:0 0 14px}
.ip-tagline{max-width:760px;margin:26px auto 0;padding:0 24px;text-align:center;font-size:12px;font-weight:500;letter-spacing:.28em;line-height:2;text-transform:uppercase}
.ip-run{display:flex;justify-content:center;gap:26px;margin-top:14px;font-size:12px;letter-spacing:.3em;color:var(--mu)}
.laurels{display:flex;justify-content:center;flex-wrap:wrap;gap:20px 46px;padding:44px 24px 10px}
.laurel{display:flex;align-items:center;gap:6px}.laurel .lf{width:18px;height:40px}.laurel .lf.r{transform:scaleX(-1)}
.laurel .lt{text-align:center;line-height:1.25}.laurel b{display:block;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase}.laurel span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.ip-sec{padding:84px 28px;max-width:1100px;margin:0 auto}
.ip-h{font-size:12px;font-weight:500;letter-spacing:.4em;text-transform:uppercase;margin:0 0 26px;color:var(--fg)}
.ip-center{text-align:center}
.watch{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#000}
.watch iframe{position:absolute;inset:0;width:100%;height:100%;border:0;margin:0}
.ip-cta{display:inline-block;background:var(--ac);color:var(--bg)!important;padding:17px 36px;font-size:12px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;text-decoration:none!important}
.ip-story{max-width:720px;margin:0 auto;font-size:20px;line-height:1.75}
.keyart{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden}
.keyart img,.keyart .art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.keyart::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0,rgba(0,0,0,0) 60%)}
.keyart h2{position:relative;z-index:2;margin:0;padding:0 40px 60px;max-width:1100px;font-size:clamp(28px,3.6vw,52px);line-height:1.15;color:#fff;text-transform:uppercase;font-weight:500;letter-spacing:.02em}
.stillrow{display:grid;grid-template-columns:repeat(3,1fr)}
.stillrow>*{aspect-ratio:16/9;width:100%;height:100%;object-fit:cover}
.chars2{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:900px){.chars2{grid-template-columns:1fr 1fr}}
.chars2 img{aspect-ratio:3/4;object-fit:cover;width:100%}
.chars2 b{display:block;margin-top:12px;font-size:12px;letter-spacing:.25em;text-transform:uppercase}.chars2 span{font-size:13px}
.ip-foot{text-align:center;padding:70px 24px 90px;border-top:1px solid rgba(255,255,255,.1)}

/* ---------- Sayawan ---------- */
.ip-say{--bg:#0b0708;--fg:#f3e7e3;--mu:#b39a9c;--ac:#e2336b;--wine:#2b1315}
.ip-say .ip-hero{height:auto;min-height:0;aspect-ratio:1024/576}
.ip-say .ip-hero::after{background:linear-gradient(to top,var(--bg) 0,rgba(11,7,8,0) 30%)}
.ip-say .ip-tagline{color:var(--fg)}.ip-say .ip-h{color:var(--ac)}
.ip-say .ip-cta{background:var(--ac);color:#fff!important}
.ip-say .say-story{aspect-ratio:16/9;max-height:90vh;align-items:flex-start;min-height:0}
.ip-say .say-story::after{background:linear-gradient(to bottom,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 45%)}
.ip-say .say-story h2{font-size:clamp(18px,1.7vw,26px);line-height:1.35;max-width:620px;padding:44px 40px 0;letter-spacing:.04em;color:var(--ac);text-shadow:0 2px 18px rgba(0,0,0,.5)}
.ip-say .stillrow{grid-template-columns:repeat(2,1fr)}
@media(max-width:700px){.ip-say .stillrow{grid-template-columns:1fr}}
.ip-say .island-k{aspect-ratio:679/330;min-height:0;align-items:flex-start}
.ip-say .island-k img{object-position:center top}
.ip-say .island-k::after{background:linear-gradient(to bottom,rgba(0,0,0,.55) 0,rgba(0,0,0,0) 40%)}
.ip-say .island-h{padding:0;margin:-.06em 0 0;width:100%;max-width:none;white-space:nowrap;line-height:.92;letter-spacing:-.01em;text-align:left;font-weight:600;color:var(--ac);text-shadow:0 2px 18px rgba(0,0,0,.5)}
.say-making{text-align:center;padding:96px 28px;background:#000}
.say-making .ip-h{color:var(--ac)}
.say-making h2{margin:0 0 14px;font-family:Oswald,sans-serif;font-weight:600;font-size:clamp(34px,4.4vw,60px);line-height:1.05;text-transform:uppercase;color:var(--fg);letter-spacing:.02em}
.say-making .sm-sub{max-width:560px;margin:0 auto 32px;color:var(--mu);font-size:17px}
.say-making .sm-btn{display:inline-flex;align-items:center;gap:12px;background:var(--ac);color:#fff!important;padding:16px 30px;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;text-decoration:none!important}

/* ---------- Rage Radio ---------- */
.ip-rage{--bg:#0d0b10;--fg:#f4f1ea;--mu:#a59cb1;--ac:#ff3d8b}
.ip-rage .title{font-family:Anton,Impact,sans-serif;font-weight:400;font-size:clamp(80px,13vw,210px);line-height:.9;margin:0;letter-spacing:.01em;text-transform:uppercase;color:#fff;transform:skew(-6deg);text-shadow:6px 6px 0 var(--ac)}
.ip-rage .ip-h{font-family:Anton,Impact,sans-serif;font-size:30px;letter-spacing:.04em;font-weight:400;color:#fff}
.ip-rage .ip-h em{font-style:normal;color:var(--ac)}
.ip-rage .ip-tagline b{color:#ffe14d;font-weight:500}
.ip-rage .keyart{min-height:0;aspect-ratio:2400/936}
.ip-rage .keyart h2{font-family:Anton,Impact,sans-serif;font-weight:400;font-size:clamp(40px,5.6vw,86px);line-height:1;letter-spacing:.01em}
.ip-rage .keyart h2 span{color:var(--ac)}
.ip-rage .chars2{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.ip-rage .chars2{grid-template-columns:1fr 1fr}}
.ip-rage .rr-stills{grid-template-columns:repeat(2,1fr)}
.ip-rage .rr-stills>img:first-child{grid-column:1/-1}
@media(max-width:700px){.ip-rage .rr-stills{grid-template-columns:1fr}}
.ip-rage .stripe{height:14px;background:repeating-linear-gradient(-45deg,#ffe14d 0 14px,#0d0b10 14px 28px)}

/* ---------- v1.1.1 responsive fixes ---------- */
.keyart,.ip-hero,.watch,.stillrow{width:100%}
.ip-say .say-story{max-height:none}
.ip img{max-width:none}
.keyart img,.ip-hero img{max-width:none;height:100%}
@media (max-width:1199px){
	.panel,.follow{min-height:0}
}
@media (max-width:800px){
	.orig-head{flex-direction:column;align-items:flex-start;gap:8px;padding:24px 20px 18px}
	.orig-head p{text-align:left}
	.ip-sec{padding:56px 20px}
	.ip-hero{height:auto;min-height:0;aspect-ratio:4/5}
	.ip-say .ip-hero{aspect-ratio:1024/576}
	.ip-hero .lock{padding:0 16px 32px}
	.ip-rage .title{font-size:clamp(48px,15vw,90px);text-shadow:4px 4px 0 var(--ac)}
	.ip-tagline{font-size:11px;letter-spacing:.2em}
	.ip-run{gap:16px;font-size:11px;letter-spacing:.2em}
	.keyart{min-height:60vh}
	.keyart h2{padding:0 20px 28px;font-size:clamp(22px,6.5vw,34px)}
	.ip-say .say-story{aspect-ratio:auto;min-height:62vh}
	.ip-say .say-story h2{padding:24px 20px 0;font-size:16px;max-width:none}
	.ip-say .island-k{aspect-ratio:auto;min-height:56vh}
	.ip-rage .keyart{aspect-ratio:auto;min-height:56vh}
	.ip-rage .keyart h2{font-size:clamp(28px,8.5vw,44px)}
	.say-making{padding:64px 20px}
	.ip-cta,.sm-btn,.yt-btn{padding:14px 22px;letter-spacing:.18em}
	.laurels{gap:16px 28px;padding:32px 16px 0}
}

/* ---------- About ---------- */
.ab{--abg:#f6f1fb;--aink:#3b1f4a;--aac:#8e4fb5;background:var(--abg);color:var(--aink)}
.ab-hero{position:relative;aspect-ratio:16/9;max-height:calc(100vh - var(--th));width:100%;overflow:hidden}
.ab-hero img{width:100%;height:100%;object-fit:cover;max-width:none}
.ab-hero .ab-title{position:absolute;left:32px;bottom:22px;margin:0;font-size:clamp(64px,10vw,170px);line-height:.85;font-weight:600;letter-spacing:-.04em;color:#fff;text-transform:none;text-shadow:0 4px 30px rgba(59,31,74,.45)}
.ab-intro{max-width:860px;padding:90px 32px 40px;margin:0 auto}
.ab-kicker{font-size:11px;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--aac);margin:0 0 18px}
.ab-lead{font-size:clamp(26px,3vw,40px);line-height:1.25;font-weight:500;letter-spacing:-.01em;margin:0 0 24px}
.ab-intro p:last-child{font-size:18px;line-height:1.75;margin:0}
.ab-cols{display:grid;grid-template-columns:repeat(3,1fr);max-width:1100px;margin:40px auto 0;padding:0 32px}
.ab-cols>div{padding:34px 28px 40px 0;border-top:2px solid var(--aink)}
.ab-cols>div+div{padding-left:28px;border-left:1px solid rgba(59,31,74,.15)}
.ab h3{margin:0 0 12px;font-size:13px;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--aink)}
.ab-cols p{margin:0 0 16px;font-size:16px;line-height:1.6}
.ab a{color:var(--aac);font-weight:500}
.ab-cols a,.ab-soc a{font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.ab-contact{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:1100px;margin:70px auto 0;padding:56px 32px 90px;border-top:1px solid rgba(59,31,74,.15)}
.ab-contact p{margin:0 0 6px;font-size:16px;line-height:1.6}
.ab .mu{opacity:.7;font-size:14px}
.ab-soc{display:flex;flex-wrap:wrap;gap:6px 18px}
@media(max-width:800px){.ab-hero{aspect-ratio:4/3}.ab-hero .ab-title{left:20px}.ab-intro{padding:56px 20px 24px}.ab-cols,.ab-contact{grid-template-columns:1fr;padding-left:20px;padding-right:20px}.ab-cols>div+div{padding-left:0;border-left:0}.ab-cols>div{padding-right:0}}
.ab-hero .ab-sentence{font-size:clamp(30px,4.2vw,68px);line-height:1.05;letter-spacing:-.02em;max-width:min(980px,85%);font-weight:600}

/* About: intro paragraphs + photo row */
.ab-intro p:not(.ab-kicker){font-size:18px;line-height:1.75;margin:0 0 1.1em}
.ab-intro p:last-child{margin-bottom:0}
.ab-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:1100px;margin:30px auto 0;padding:0 32px}
.ab-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.ab-photos img.ab-wide{grid-column:1/-1;aspect-ratio:3/2}
@media(max-width:760px){.ab-photos{grid-template-columns:1fr 1fr;padding:0 20px}}

/* Footer matches the page background on film and About pages */
body:has(.ip) .ff-footer{background:#0b1416;color:#8fa3a6}
body:has(.ip-say) .ff-footer{background:#0b0708;color:#b39a9c}
body:has(.ip-rage) .ff-footer{background:#0d0b10;color:#a59cb1}
body:has(.ab) .ff-footer{background:#f6f1fb;color:#3b1f4a}
body:has(.ip) .ff-footer a,body:has(.ab) .ff-footer a{color:inherit}

/* Yama: The Golden Lily */
.ip-yama{--bg:#140b08;--fg:#f6ead8;--mu:#bfa48c;--ac:#f0a43a}
.ip-yama .say-making .sm-btn{color:#140b08!important}
body:has(.ip-yama) .ff-footer{background:#140b08;color:#bfa48c}
/* Yama story + stills */
.ip-yama .ym-story{text-align:center;padding:90px 28px 70px}
.ip-yama .ym-copy{max-width:820px;margin:0 auto;font-size:clamp(20px,2vw,30px);line-height:1.5;color:var(--fg);font-weight:300}
.ip-yama .ym-lineup{display:block;width:100%;height:auto}
.ip-yama .stillrow{grid-template-columns:repeat(2,1fr)}
@media(max-width:700px){.ip-yama .stillrow{grid-template-columns:1fr}.ip-yama .ym-story{padding:56px 20px 40px}}
/* Yama hero: show the whole key art (title included) so the logline sits just below */
.ip-yama .ip-hero{height:auto;min-height:0;aspect-ratio:16/9;max-height:none}
.ip-yama .ip-hero .art{background-size:cover;background-position:center;background-repeat:no-repeat}
.ip-yama .ip-hero::after{background:linear-gradient(to top,var(--bg) 0,rgba(0,0,0,0) 16%)}
.ip-yama .ip-tagline{margin-top:0}

/* Lolo Boso */
.ip-lolo{--bg:#fff1d2;--fg:#3b1c12;--mu:#8c5b43;--ac:#e8456b}
.ip-lolo .ip-tagline{margin-top:0;color:var(--fg)}
.ip-lolo .lb-film h2 span{color:var(--ac)}
/* Lolo Boso header: field still with the logo on a soft cream glow so it stays readable */
.ip-lolo .lb-logo{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;max-height:calc(100vh - 140px);width:100%;padding:0 24px;background-position:center;background-size:cover;background-repeat:no-repeat}
.ip-lolo .lb-logo::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 48% 42% at 50% 50%,rgba(255,241,210,.92) 0,rgba(255,241,210,.6) 55%,rgba(255,241,210,0) 100%),linear-gradient(to top,var(--bg) 0,rgba(255,241,210,0) 18%)}
.ip-lolo .lb-logo img{position:relative;width:min(620px,70%);height:auto;filter:drop-shadow(0 0 2px #3b1c12) drop-shadow(0 6px 16px rgba(59,28,18,.45))}
.ip-lolo .ip-tagline{padding-top:10px}
.lb-film{padding:90px 0 0;text-align:center}
.lb-film .ip-h{color:var(--ac)}
.lb-film h2{margin:0 0 14px;padding:0 24px;font-family:Oswald,sans-serif;font-weight:600;font-size:clamp(34px,4.4vw,60px);line-height:1.05;text-transform:uppercase;color:var(--fg);letter-spacing:.02em}
.lb-film h2 span{color:var(--mu);font-weight:400}
.lb-film .lb-line{max-width:640px;margin:0 auto 40px;padding:0 24px;color:var(--mu)}
.lb-gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;margin-top:4px}
.lb-gallery img{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.lb-gallery .lb-poster{grid-row:span 3;aspect-ratio:auto}
@media(max-width:700px){.lb-gallery{grid-template-columns:1fr 1fr}.lb-gallery .lb-poster{grid-column:1/-1;grid-row:auto;aspect-ratio:2/3}.lb-film{padding-top:60px}}
body:has(.ip-lolo) .ff-footer{background:#fff1d2;color:#8c5b43}
/* Rage Radio hero art has a white frame baked in: zoom slightly to crop it off */
.ip-rage .ip-hero img{transform:scale(1.06);transform-origin:center}

/* Makopa MD */
.ip-mk{--bg:#e6f6f4;--fg:#23324f;--mu:#5f6f8a;--ac:#ec5f8f}
.ip-mk .ip-hero{height:auto;min-height:0;aspect-ratio:16/9;max-height:none}
.ip-mk .ip-hero .art{background-size:cover;background-position:center;background-repeat:no-repeat}
.ip-mk .ip-hero::after{background:linear-gradient(to top,var(--bg) 0,rgba(0,0,0,0) 12%)}
.ip-mk .ip-tagline{margin-top:0;color:var(--fg)}
.ip-mk .mk-story{text-align:center;padding:70px 28px 60px}
.ip-mk .mk-story p{max-width:820px;margin:0 auto;font-size:clamp(19px,1.8vw,27px);line-height:1.55;color:var(--fg)}
.ip-mk .mk-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.ip-mk .mk-grid img,.ip-mk .mk-ail-list img{width:100%;height:auto;display:block}
.ip-mk .mk-ail{text-align:center;padding:90px 24px 30px}
.ip-mk .mk-ail .ip-h{color:var(--ac)}
.ip-mk .mk-ail h2{margin:0;font-family:Oswald,sans-serif;font-weight:600;font-size:clamp(34px,4.4vw,60px);line-height:1.05;text-transform:uppercase;color:var(--fg)}
.ip-mk .mk-ail-list{display:grid;gap:4px}
@media(max-width:700px){.ip-mk .mk-grid{grid-template-columns:1fr}.ip-mk .mk-story{padding:48px 20px 40px}.ip-mk .mk-ail{padding-top:60px}}
body:has(.ip-mk) .ff-footer{background:#e6f6f4;color:#5f6f8a}
.ip-mk .mk-ail-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:24px 24px 0}
.ip-mk .mk-ail-pair img{border-radius:14px}
@media(max-width:700px){.ip-mk .mk-ail-pair{grid-template-columns:1fr;padding:16px 16px 0}}

/* Video pages: work items + Showreel */
.vp{background:#fff;color:#222;min-height:calc(100vh - 8px);padding:28px 32px 80px}
.vp-wrap{width:min(100%,calc((100vh - 230px)*16/9));min-width:min(100%,640px);margin:0 auto}
.vp-frame{width:100%;aspect-ratio:16/9;background:#000}
.vp-frame iframe{width:100%;height:100%;border:0;display:block}
.vp-info{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 40px;flex-wrap:wrap;margin-top:26px}
.vp-kicker{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#888;margin:0 0 8px}
.vp-title{font-family:Oswald,sans-serif;font-weight:600;font-size:clamp(32px,4vw,56px);line-height:1;text-transform:uppercase;letter-spacing:.02em;margin:0;color:#111}
.vp-side{text-align:right}
.vp-cats{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#e94e77;margin:0;line-height:1.9}
.vp-btn{display:inline-block;margin-top:14px;border:1px solid #111;color:#111!important;padding:13px 24px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none!important}
.vp-btn:hover{background:#111;color:#fff!important}
.vp-more{margin-top:64px;border-top:1px solid #262626;padding-top:24px}
.vp-more-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
.vp-more-head p{margin:0;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#8b8b8b}
.vp-more-head a{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#fff;text-decoration:none}
.vp-next{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vp-next a{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;color:#fff;text-decoration:none;background:#1a1a1a}
.vp-next img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.vp-next a:hover img{transform:scale(1.04)}
.vp-next a::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75),rgba(0,0,0,0) 55%)}
.vp-next span{position:absolute;left:18px;bottom:16px;right:18px;z-index:1}
.vp-next small{display:block;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:#cfcfcf;margin-bottom:4px}
.vp-next b{font-family:Oswald,sans-serif;font-weight:500;font-size:clamp(18px,1.8vw,26px);text-transform:uppercase;letter-spacing:.03em}
.vp-next a:last-child span{text-align:right}
@media(max-width:760px){.vp{padding:0 0 60px}.vp-wrap{min-width:0}.vp-info,.vp-more{padding-left:20px;padding-right:20px}.vp-side{text-align:left}.vp-next{grid-template-columns:1fr}.vp-next a:last-child span{text-align:left}}
body:has(.vp) .ff-footer{background:#fff}
.vp-frame iframe,.vp-frame video,.vp-frame embed,.vp-frame object{width:100%;height:100%;border:0;display:block}
.vp-frame .vp-poster{width:100%;height:100%;object-fit:cover;display:block}
.vp-cats a{color:inherit;text-decoration:none}
.vp-cats a:hover{color:#111}
.vp-share{margin:10px 0 0;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#888}
.vp-share a{color:#444;margin-left:10px;text-decoration:none}
.vp-desc{max-width:760px;margin:30px 0 0;color:#555;line-height:1.75}
.vp-desc img{max-width:100%;height:auto}
.vp-next>span{display:block}

/* Say hey */
.sh{max-width:720px;margin:0 auto;padding:60px 24px 90px;text-align:center;color:#222}
.sh-img{width:min(260px,60%);height:auto;display:block;margin:0 auto 10px}
.sh-title{font-family:Oswald,sans-serif;font-weight:600;font-size:clamp(44px,6vw,80px);line-height:1;text-transform:uppercase;letter-spacing:.02em;margin:0 0 40px;color:#111}
.sh-row{padding:22px 0;border-top:1px solid #e6e6e6}
.sh-row:last-child{border-bottom:1px solid #e6e6e6}
.sh-k{margin:0 0 8px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#888}
.sh-mail{font-size:clamp(20px,2.4vw,30px);color:#111!important;text-decoration:none!important;font-weight:400}
.sh-mail:hover{color:#e94e77!important}
.sh-soc{margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px}
.sh-soc a{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#111;text-decoration:none}
.sh-soc a:hover{color:#e94e77}
/* Say hey: compact, fits one desktop screen */
.sh{padding:24px 24px 30px}
.sh-img{width:min(170px,45%);margin:0 auto 6px}
.sh-title{font-size:clamp(36px,3.6vw,52px);margin:0 0 20px}
.sh-row{padding:12px 0}
.sh-k{font-size:10px;margin:0 0 4px}
.sh-mail{font-size:clamp(17px,1.5vw,21px)}
.sh-soc a{font-size:11px}
body:has(.sh) .ff-footer{padding:14px 24px 18px}
@media(min-width:761px){.sh{min-height:calc(100vh - 70px);display:flex;flex-direction:column;justify-content:center}.sh-list{width:100%}}
/* Say hey: Friendly Foes logo colors (teal #58a0a0, pink #f88898) */
.sh-title{color:#58a0a0}
.sh-k{color:#f88898;font-weight:500}
.sh-mail{color:#58a0a0!important}
.sh-mail:hover{color:#f88898!important}
.sh-row{border-color:rgba(88,160,160,.28)!important}
.sh-soc a{color:#58a0a0}
.sh-soc a:hover{color:#f88898}
/* Friendly Foes colors (teal #58a0a0, pink #f88898) on the studio pages: video pages + About */
.vp-title{color:#58a0a0}
.vp-cats{color:#f88898}
.vp-cats a:hover{color:#58a0a0}
.vp-btn{border-color:#58a0a0;color:#58a0a0!important}
.vp-btn:hover{background:#58a0a0;color:#fff!important}
.vp-share a:hover{color:#f88898}
.ab{--abg:#fff;--aink:#2a3a3a;--aac:#58a0a0}
.ab-kicker{color:#f88898}
.ab h3{color:#f88898}
.ab a:hover{color:#f88898}
body:has(.ab) .ff-footer{background:#fff;color:#888}
/* Originals: side dots, one per film */
.ff-dots{display:none;position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:60;flex-direction:column;align-items:flex-end;gap:12px;transition:opacity .3s}
.ff-snap .ff-dots,html.snap .ff-dots{display:flex}
.ff-dots.past{opacity:0;pointer-events:none}
.ff-dots button{position:relative;width:10px;height:10px;padding:0;border:0;border-radius:6px;background:rgba(255,255,255,.45);cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.35);transition:height .25s,background .25s}
.ff-dots button:hover{background:rgba(255,255,255,.8)}
.ff-dots button.on{height:28px;background:#fff}
.ff-dots button span{position:absolute;right:22px;top:50%;transform:translateY(-50%);white-space:nowrap;font:500 11px/1 Roboto,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.7);opacity:0;pointer-events:none;transition:opacity .2s}
.ff-dots button:hover span,.ff-dots button:focus-visible span{opacity:1}
@media(max-width:760px){.ff-dots{right:10px;gap:10px}.ff-dots button{width:8px;height:8px}.ff-dots button.on{height:22px}.ff-dots button span{display:none}}
@media(min-width:761px){.panel .meta{right:64px}}

/* Friendship Fest */
.fx{--fx-bg:#fff6e8;--fx-ink:#2a2230;--fx-pink:#ff5c9d;--fx-orange:#ff9a2e;--fx-yellow:#ffd23f;background:var(--fx-bg);color:var(--fx-ink)}
.fx-hero{position:relative;aspect-ratio:16/8;max-height:calc(100vh - 60px);background:center 40%/cover no-repeat;display:flex;align-items:flex-end;justify-content:center}
.fx-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--fx-bg) 0,rgba(255,246,232,0) 30%),linear-gradient(to top,rgba(0,0,0,.35),rgba(0,0,0,0) 60%)}
.fx-logo{display:block;width:min(420px,70%);height:auto;margin:-80px auto 26px;position:relative;z-index:2;filter:drop-shadow(0 6px 16px rgba(42,34,48,.18))}
.fx-intro{max-width:760px;margin:0 auto;padding:0 28px 20px;text-align:center}
.fx-kicker{margin:0 0 10px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--fx-pink);font-weight:500}
.fx-intro h2,.fx-cta h2{font-family:Oswald,sans-serif;font-weight:600;font-size:clamp(34px,4.6vw,62px);line-height:1.02;text-transform:uppercase;margin:0 0 24px;color:var(--fx-ink)}
.fx-intro p:not(.fx-kicker){font-size:18px;line-height:1.75;margin:0 0 1em}
.fx-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;max-width:900px;margin:20px auto 0;padding:0 24px}
.fx-stats div{flex:1 1 200px;background:#fff;border-radius:18px;padding:22px 18px;text-align:center;box-shadow:0 2px 0 rgba(42,34,48,.08)}
.fx-stats b{display:block;font-family:Oswald,sans-serif;font-weight:600;font-size:clamp(26px,2.6vw,38px);line-height:1.1;color:var(--fx-orange)}
.fx-stats div:nth-child(2) b{color:var(--fx-pink)}
.fx-stats div:nth-child(3) b{font-size:clamp(20px,1.8vw,26px);color:#2fa6a0;padding:6px 0}
.fx-stats span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.75}
.fx-sec{padding:80px 24px 0;max-width:1240px;margin:0 auto}
.fx-h{text-align:center;margin:0 0 26px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--fx-pink);font-weight:500}
.fx-posters{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.fx-poster{margin:0}
.fx-poster img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;display:block;box-shadow:0 10px 24px rgba(42,34,48,.18);transition:transform .3s}
.fx-poster:nth-child(odd) img{transform:rotate(-1.5deg)}
.fx-poster:nth-child(even) img{transform:rotate(1.5deg)}
.fx-poster:hover img{transform:rotate(0) scale(1.03)}
.fx-poster figcaption{text-align:center;margin-top:16px;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.fx-poster figcaption b{display:block;font-size:11px;letter-spacing:.24em;color:var(--fx-orange);font-weight:500}
.fx .watch{max-width:1000px;margin:0 auto}
.fx-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.fx-photos img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px;display:block}
.fx-cta{text-align:center;padding:90px 24px 100px}
.fx-cta p{margin:0 0 26px;font-size:17px}
.fx-btns{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.fx-btns a{display:inline-block;padding:14px 28px;border-radius:999px;background:var(--fx-pink);color:#fff!important;text-decoration:none!important;font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.fx-btns a+a{background:var(--fx-orange)}
.fx-btns a:hover{filter:brightness(1.08)}
body:has(.fx) .ff-footer{background:#fff6e8}
@media(max-width:900px){.fx-posters{grid-template-columns:repeat(2,1fr)}.fx-photos{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.fx-hero{aspect-ratio:4/3}.fx-intro{padding-top:40px}.fx-sec{padding-top:56px}.fx-photos{grid-template-columns:1fr}}
.fx-sub{max-width:620px;margin:-8px auto 26px;text-align:center;font-size:17px;line-height:1.7}
.fx-merch{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.fx-merch img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px;display:block}
@media(max-width:600px){.fx-merch{grid-template-columns:1fr}}
.fx-merch .fx-wide{grid-column:1/-1;aspect-ratio:16/9}
.fx-merch{grid-template-columns:repeat(3,1fr)}
@media(max-width:600px){.fx-merch{grid-template-columns:1fr}}
