:host { all:initial; display:block; background:#000; color:#f5f5f5; font:16px/1.65 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif; -webkit-text-size-adjust:100%; }
*,*::before,*::after { box-sizing:border-box; }
[hidden] { display:none!important; }
a { color:inherit; text-underline-offset:4px; }
a:focus-visible,button:focus-visible { outline:2px solid #fff; outline-offset:4px; }
button { font:inherit; }
img,video { display:block; max-width:100%; }
.phone-header { position:relative; z-index:10; width:100%; padding:14px max(22px,env(safe-area-inset-right)) 14px max(22px,env(safe-area-inset-left)); background:#000; border-bottom:1px solid #222; }
.phone-header[data-home] { position:absolute; inset:0 0 auto; border:0; background:linear-gradient(#000b,transparent); }
.phone-header[data-home].menu-open { background:#080808f5; }
.phone-header-row { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:44px; }
.phone-brand { font-size:17px; font-weight:600; line-height:1.3; text-decoration:none; text-shadow:0 1px 12px #0008; }
.phone-menu-button { display:flex; align-items:center; justify-content:flex-end; gap:10px; min-width:74px; min-height:44px; border:0; padding:8px 0 8px 8px; color:#fff; background:transparent; font-size:14px; cursor:pointer; }
.phone-menu-icon { width:19px; height:12px; border-top:1px solid; border-bottom:1px solid; }
.phone-nav { padding-top:16px; max-height:calc(100svh - 100px); overflow-y:auto; }
.phone-nav a { display:flex; align-items:center; min-height:46px; padding:11px 0; border-top:1px solid #ffffff20; text-decoration:none; font-size:14px; }
.phone-nav .phone-film-link { padding-left:18px; font-size:13px; color:#ccc; }
.phone-main { max-width:760px; margin:auto; padding:24px 22px 48px; overflow-wrap:break-word; }
.phone-main h1,.phone-main h2,.phone-main h3,.phone-main h4,.phone-main h5 { font-family:Georgia,serif; font-weight:500; line-height:1.2; margin:0 0 18px; }
.phone-main h1 { font-size:clamp(30px,8vw,42px); }
.phone-main h2 { font-size:27px; }
.phone-main h3,.phone-main h4,.phone-main h5 { font-size:22px; }
.phone-main p { margin:0 0 16px; }
.phone-main ul { margin:10px 0 24px; padding-left:22px; }
.phone-main li { margin-bottom:10px; }
.phone-main li p { margin:0; }
.phone-main img { width:100%; height:auto; }
.phone-main a { overflow-wrap:anywhere; }
.mobile-kicker { color:#aaa; margin-bottom:30px!important; }
.mobile-film-card { display:block; margin-bottom:36px; text-decoration:none; }
.mobile-film-card img { aspect-ratio:1.9; object-fit:cover; margin-bottom:14px; }
.mobile-portrait,.mobile-wide { width:100%; margin-bottom:28px; }
.mobile-wide { aspect-ratio:16/9; object-fit:cover; }
.mobile-text { margin-bottom:24px; }
.mobile-gallery { display:grid; gap:16px; margin:32px 0; }
.mobile-trailer video { width:100%; aspect-ratio:16/9; object-fit:contain; background:#000; }
.mobile-event { padding:20px 0; margin:0; border-bottom:1px solid #292929; }
.mobile-event p { margin-bottom:4px; }
.mobile-event-date { color:#aaa; font-size:14px; }
.mobile-instagram { display:inline-flex; align-items:center; min-height:44px; }
.phone-main-home { margin:0; padding:0; max-width:none; }
.phone-scene { position:relative; isolation:isolate; width:100%; height:100vh; height:100svh; min-height:320px; overflow:hidden; background:#000; }
/* Limit the zoom on tall phones so the two characters stay in the crop. */
.phone-scene-poster,.phone-scene-video { position:absolute; top:0; left:0; width:100%; height:min(100%,195vw); max-width:none; object-fit:cover; object-position:48% center; }
.phone-scene-poster { z-index:0; }
.phone-scene-video { z-index:1; }
.phone-scene-shade { position:absolute; inset:0; z-index:2; background:linear-gradient(180deg,#0003 0%,transparent 24%,transparent 60%,#0007 82%,#000e 100%); pointer-events:none; }
.phone-scene-caption { position:absolute; z-index:3; left:max(24px,env(safe-area-inset-left)); right:max(24px,env(safe-area-inset-right)); bottom:max(26px,env(safe-area-inset-bottom)); color:#fff; }
.phone-scene-caption .phone-eyebrow { margin:0 0 8px; font-size:10px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:#ddd; }
.phone-scene-caption h1 { font:500 clamp(28px,8vw,36px)/1.12 Georgia,serif; margin:0 0 12px; }
.phone-scene-links { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.phone-scene-links a { display:inline-flex; align-items:center; gap:12px; min-height:44px; text-decoration:none; font-size:13px; }
.phone-scene-links a:last-child { color:#ddd; }
@media(orientation:landscape) {
 .phone-scene-caption { bottom:16px; }
 .phone-scene-caption h1 { font-size:28px; margin-bottom:4px; }
 .phone-scene-caption .phone-eyebrow { margin-bottom:4px; }
}
@media(prefers-reduced-motion:reduce) { .phone-scene-video { visibility:hidden; } }
