/* The film player. The page works without JavaScript: the MP4 plays in a native <video>. */
@font-face{font-family:Outfit;src:url('../fonts/outfit-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('../fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
.film-page main{padding:56px 0 96px}
.film-head{max-width:760px}
.film-head h1{font-size:clamp(34px,5vw,56px);line-height:1.05;font-weight:600;letter-spacing:-.01em;margin:10px 0 0}
.film-head .lead{margin-top:18px;color:var(--muted);font-size:18px}
.film{margin-top:40px;position:relative;background:#15170f;border:1px solid var(--line);aspect-ratio:16/9;overflow:hidden}
.film video,.film canvas{display:block;width:100%;height:100%;object-fit:contain;background:#15170f}
.film canvas{position:absolute;inset:0}
/* Phones held upright: the player draws the full-screen vertical cut (player.js, same media query). */
@media(max-width:760px) and (orientation:portrait){.film{aspect-ratio:9/16;max-width:min(100%,calc(80svh*9/16));margin-left:auto;margin-right:auto}}
.film:not(.is-live) canvas,.film:not(.is-live) .film-bar,.film:not(.is-live) .film-play{display:none}
.film.is-live video{visibility:hidden}
.film-play{position:absolute;inset:0;margin:auto;width:112px;height:112px;border-radius:50%;border:0;background:var(--gold);color:#15170f;cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 0 rgba(0,0,0,.25);transition:transform .2s}
.film-play:hover{transform:scale(1.05)}
.film-play svg{width:40px;height:40px;margin-left:6px}
.film.is-playing .film-play{display:none}
.film-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:6px;padding:10px 12px;background:linear-gradient(transparent,rgba(16,17,15,.88));opacity:0;transition:opacity .25s}
.film:hover .film-bar,.film:focus-within .film-bar,.film:not(.is-playing) .film-bar{opacity:1}
.film-bar button{min-width:44px;min-height:44px;background:none;border:0;color:var(--paper);font:500 13px/1 var(--mono);letter-spacing:.06em;cursor:pointer;padding:0 8px}
.film-bar button:hover,.film-bar button[aria-pressed="true"]{color:var(--gold)}
.film-bar input{flex:1;accent-color:var(--gold);min-height:44px;cursor:pointer}
.film-bar time{font:400 12px/1 var(--mono);color:var(--muted);min-width:84px;text-align:right}
.film-meta{margin-top:18px;display:flex;flex-wrap:wrap;gap:12px 28px;font:400 13px/1.6 var(--mono);color:var(--muted-2)}
.film-meta a{color:var(--gold)}
.film-transcript{margin-top:56px;max-width:760px;border-top:1px solid var(--line);padding-top:28px}
details.film-transcript{margin-top:28px;padding-top:18px}
details.film-transcript summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center}
details.film-transcript summary::-webkit-details-marker{display:none}
details.film-transcript summary::after{content:"+";margin-left:10px;color:var(--gold)}
details.film-transcript[open] summary::after{content:"−"}
details.film-transcript[open] summary{margin-bottom:12px}
.film-transcript p:not(.eyebrow){color:var(--paper);font-weight:300;font-size:18px;line-height:1.7;margin:0 0 12px}
.film-transcript .note{color:var(--muted-2);font-size:14px;margin-top:22px}
@media (max-width:720px){.film-page main{padding-top:32px}.film-play{width:84px;height:84px}.film-bar time{display:none}}
/* The web series under the film: one episode after another, native video, no JavaScript. */
.film-series{margin-top:96px;border-top:1px solid var(--line);padding-top:48px}
.film-series h2{font-size:clamp(30px,4vw,44px);line-height:1.08;font-weight:600;margin:10px 0 0}
.film-series>.lead{margin-top:14px;color:var(--muted);font-size:18px;max-width:640px}
.film-series>.note{margin-top:8px;color:var(--muted-2);font-size:14px}
.episodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:48px 40px;margin-top:40px}
.episode{min-width:0}
.episode h3{font-size:26px;font-weight:600;margin:8px 0 0}
.episode-film{margin:20px 0 0;max-width:min(100%,calc(80svh * 9 / 16));border:1px solid var(--line);background:#15170f}
.episode-film video{display:block;width:100%;height:auto;aspect-ratio:9/16;background:#15170f}
/* Todd 2.0: each episode's sources, plain links under its transcript */
.episode-sources{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.episode-sources .sources{margin-top:10px;font-size:14px;line-height:1.5;color:var(--muted)}

/* Humans Only review page (/dev/film/song/): vertical test clips at phone size (the CSP blocks inline styles) */
.song-clip { display: block; width: 100%; max-width: 360px; height: auto; border-radius: 12px; }
.song-pair { display: flex; flex-wrap: wrap; gap: 16px; }
.song-pair figure { margin: 0; max-width: 300px; }
.song-pair .song-clip { max-width: 300px; }
.song-sheet { display: block; width: 100%; max-width: 960px; height: auto; border-radius: 12px; }
.copybox { display: block; width: 100%; max-width: 760px; margin-top: 8px; padding: 12px; background: #0b0c0a; color: #e8e4d8; border: 1px solid #34362e; border-radius: 8px; font: 14px/1.5 ui-monospace, Menlo, monospace; resize: vertical; }
/* the intro film's review page (/dev/film/intro/) */
.intro-wide { display: block; width: 100%; height: auto; border-radius: 12px; background: #000; }
.intro-pair { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 28px; }
@media (max-width: 760px) { .intro-pair { grid-template-columns: 1fr; } }
.voice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin: 12px 0 32px; }
.voice-card { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 8px; }
.voice-card figcaption span { display: block; color: var(--muted); font-size: 13px; }
.voice-card audio { width: 100%; }
.voice-card code { font-size: 11px; color: var(--muted); }
/* /film/: the lead film (pruf.net, from zero) above the cut-paper film */
.film-feature { margin: 28px 0 0; }
.film-feature video { width: 100%; height: auto; border-radius: 12px; background: #000; }
.film-paper { margin-top: 72px; }

/* review pages on a phone: the player and the audio fit the screen (the native controls carry full screen) */
.film-feature video { max-width: 100%; aspect-ratio: 16 / 9; }
.film-audio { display: block; width: 100%; max-width: 640px; }

/* Before Zero: the film's sources, one per line under the transcript */
.sources { margin: 1rem 0 0; padding-left: 1.4em; line-height: 1.55; }
.sources li { margin: 0 0 .7em; }
.sources .src { display: block; font-size: .86em; opacity: .75; }
