.fave-page { scroll-behavior:smooth; }
.fave-page body { background:var(--bg-cream); }
.fave-page figure,.fave-page h1,.fave-page h2,.fave-page h3,.fave-page p { margin:0; }
.fave-page a { text-underline-offset:5px; }
.fave-page img,.fave-page video { height:auto; }
.fv-player { position:relative; }
.fv-play { position:absolute; left:20px; bottom:20px; display:inline-flex; align-items:center; gap:12px; min-height:46px; padding:11px 17px; background:var(--bg-cream); color:var(--ink); border:0; border-radius:0; font-size:13px; cursor:pointer; }
.fv-play:hover { background:white; }
.fv-play[hidden] { display:none; }
.fv-play:disabled { cursor:wait; }
.fv-shell { width:min(100%,1400px); padding-inline:var(--site-gutter); margin-inline:auto; }
.fv-masthead { padding-top:118px; padding-bottom:42px; }
.fv-back { display:inline-flex; align-items:center; min-height:44px; gap:12px; font-size:13px; text-decoration:none; }
.fv-back:hover { text-decoration:underline; }
.fv-title-row { display:grid; grid-template-columns:1.15fr 1fr; gap:48px; align-items:end; margin-top:22px; }
.fv-title-row h1 { font-size:clamp(96px,13.7vw,184px); font-weight:500; line-height:.83; letter-spacing:-.075em; }
.fv-title-row h1 span { display:block; font-size:clamp(19px,2.3vw,29px); font-weight:400; line-height:1.3; letter-spacing:-.025em; margin-top:22px; }
.fv-intro { max-width:430px; padding-bottom:3px; }
.fv-intro p { font-size:clamp(19px,2.05vw,26px); line-height:1.4; letter-spacing:-.02em; text-wrap:pretty; }
.fv-meta { display:flex; flex-wrap:wrap; gap:8px 26px; color:var(--ink-soft); font-size:12px; margin-top:20px; }
.fv-opening { display:grid; grid-template-columns:1.15fr 1fr; gap:48px; align-items:start; padding-top:24px; }
.fv-lead-film { grid-column:2; grid-row:1; width:100%; max-width:462px; justify-self:end; }
.fv-lead-film video { display:block; width:100%; aspect-ratio:9/16; background:var(--bg-cream-alt); object-fit:contain; }
.fv-caption { display:flex; justify-content:space-between; align-items:baseline; gap:8px 20px; flex-wrap:wrap; padding-top:14px; font-size:14px; }
.fv-caption a { font-size:13px; text-decoration:none; }
.fv-caption a:hover { text-decoration:underline; }
.fv-caption small { color:var(--ink-soft); font-size:13px; }
.fv-opening-copy { grid-column:1; grid-row:1; padding-top:4px; }
.fv-opening-copy h2 { font-size:clamp(27px,3.25vw,44px); font-weight:400; letter-spacing:-.035em; line-height:1.13; max-width:440px; }
.fv-opening-copy>p { margin-top:18px; max-width:400px; font-size:16px; color:var(--ink-soft); line-height:1.6; }
.fv-response { margin:32px 0 34px; }
.fv-response strong { display:block; font-size:clamp(62px,6.4vw,88px); line-height:1; letter-spacing:-.055em; font-weight:400; }
.fv-response span { display:block; font-size:16px; margin-top:10px; }
.fv-response small { display:block; color:var(--ink-soft); font-size:12px; margin-top:8px; line-height:1.5; }
.fv-secondary-still img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.fv-section { padding-top:88px; }
.fv-section-head { display:grid; grid-template-columns:1.15fr 1fr; gap:48px; align-items:end; margin-bottom:30px; }
.fv-section-head h2 { font-size:clamp(34px,4.5vw,62px); letter-spacing:-.045em; font-weight:400; line-height:1.05; }
.fv-section-head p { max-width:415px; font-size:16px; color:var(--ink-soft); }
.fv-pair { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.fv-pair video { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; background:var(--bg-cream-alt); }
.fv-work-note { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:10px 30px; padding-top:18px; font-size:13px; }
.fv-work-note p { color:var(--ink-soft); }
.fv-work-note a { text-decoration:none; }
.fv-work-note a:hover { text-decoration:underline; }
.fv-work-note strong { color:var(--ink); font-weight:500; }
.fv-details { padding-bottom:80px; }
.fv-details-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; align-items:start; }
.fv-detail:nth-child(2) { margin-top:72px; }
.fv-detail video { width:100%; display:block; aspect-ratio:3/4; object-fit:contain; background:var(--bg-cream-alt); }
.fv-detail:nth-child(2) video { aspect-ratio:4/3; }
.fv-detail h3 { font-size:26px; font-weight:400; letter-spacing:-.025em; margin-top:22px; }
.fv-detail>p { font-size:15px; color:var(--ink-soft); max-width:440px; margin-top:10px; }
.fv-detail .fv-caption { margin-top:7px; }
.fv-scope { padding-block:62px 70px; background:var(--bg-cream-alt); }
.fv-scope-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:48px; }
.fv-scope h2 { font-size:clamp(30px,3.3vw,44px); font-weight:400; line-height:1.15; letter-spacing:-.035em; max-width:460px; }
.fv-scope p { max-width:480px; color:var(--ink-soft); font-size:16px; }
.fv-scope p+p { margin-top:16px; }
.fv-scope .fv-scope-response { color:var(--ink); font-size:14px; }
.fv-scope details { margin-top:25px; font-size:12px; color:var(--ink-soft); }
.fv-scope summary { cursor:pointer; display:list-item; width:fit-content; min-height:44px; padding-block:10px; color:var(--ink); }
.fv-scope details p { font-size:12px; line-height:1.65; margin-top:10px; }
.fv-end { display:flex; justify-content:space-between; align-items:end; gap:30px; padding-block:80px; }
.fv-end h2 { font-size:clamp(32px,4.4vw,58px); font-weight:400; line-height:1.1; letter-spacing:-.04em; max-width:650px; }
.fv-contact { display:inline-flex; gap:30px; align-items:center; min-height:50px; padding-bottom:6px; border-bottom:1px solid currentColor; font-size:17px; text-decoration:none; white-space:nowrap; }
.fv-contact:hover { opacity:.65; }
.fv-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px; border-top:1px solid var(--ink-hairline); padding-block:25px 32px; font-size:12px; color:var(--ink-soft); }
.fv-footer a { text-decoration:none; min-height:44px; display:inline-flex; align-items:center; }
.fv-footer a:hover { text-decoration:underline; }
.fv-video-note { margin-top:18px!important; font-size:12px!important; color:var(--ink-soft); }
/* The project entry uses the same framing on Work and the home page. */
.fave-entry { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center; margin-block:12px 76px; text-decoration:none; }
.fave-entry-media { display:grid; grid-template-columns:1.2fr 1fr; gap:12px; background:var(--bg-cream-alt); padding:24px; align-items:center; }
.fave-entry-media img { display:block; width:100%; height:auto; }
.fave-entry-media img:first-child { aspect-ratio:3/4; object-fit:cover; }
.fave-entry-media img:last-child { aspect-ratio:9/16; object-fit:cover; }
.fave-entry-copy .fave-entry-label { display:block; font-size:12px; color:var(--ink-soft); margin-bottom:16px; }
.fave-entry-copy h2,.fave-entry-copy h3 { margin:0 0 18px; font-weight:400; font-size:clamp(38px,5vw,64px); line-height:1; letter-spacing:-.04em; }
.fave-entry-copy p { max-width:350px; font-size:17px; color:var(--ink-soft); }
.fave-entry-copy .fave-entry-result { font-size:14px; color:var(--ink); margin-top:22px; }
.fave-entry-result small { display:block; margin-top:4px; color:var(--ink-soft); font-size:11px; }
.fave-entry-cta { display:inline-block; margin-top:25px; font-size:15px; text-decoration:underline; text-underline-offset:5px; }
.fave-entry:hover .fave-entry-cta { text-decoration-thickness:2px; }
@media(min-width:1600px){.fv-lead-film{max-width:490px;}}
@media(max-width:960px){
 .fv-title-row,.fv-opening,.fv-section-head,.fv-scope-grid{gap:32px;grid-template-columns:1fr 1fr;}
 .fv-opening-copy h2{font-size:32px;} .fv-opening-copy>p{font-size:15px;}
 .fv-response{margin-block:25px;} .fv-response strong{font-size:64px;}
 .fv-details-grid{gap:32px;} .fv-detail:nth-child(2){margin-top:90px;}
 .fv-section{padding-top:85px;} .fave-entry{gap:24px;}
}
@media(max-width:640px){
 .fv-masthead{padding-top:98px;padding-bottom:23px;}
 .fv-back{display:none;}
 .fv-title-row{grid-template-columns:1fr;gap:20px;margin-top:0;}
 .fv-title-row h1{font-size:clamp(88px,28vw,154px);}
 .fv-title-row h1 span{font-size:22px;margin-top:16px;}
 .fv-intro p{font-size:20px;max-width:380px;}
 .fv-meta{margin-top:14px;font-size:12px;gap:5px 17px;}
 .fv-opening{display:flex;flex-direction:column;padding-top:0;gap:22px;}
 .fv-lead-film{width:100%;max-width:none;order:-1;margin-bottom:8px;}
 .fv-opening-copy{display:contents;}
 .fv-opening-copy h2{font-size:34px;max-width:320px;}
 .fv-opening-copy>p{font-size:16px;}
 .fv-response{order:-2;margin:0 0 4px;display:grid;grid-template-columns:auto 1fr;gap:4px 18px;align-items:center;}
 .fv-response strong{font-size:38px;grid-row:1/3;}
 .fv-response span{font-size:13px;margin:0;}
 .fv-response small{font-size:11px;margin:0;max-width:190px;}
 .fv-lead-film .fv-play{top:16px;bottom:auto;left:16px;}
 .fv-opening-copy>p{margin-top:-10px;}
 .fv-section{padding-top:70px;}
 .fv-section-head{grid-template-columns:1fr;gap:18px;margin-bottom:23px;}
 .fv-section-head h2{font-size:40px;}
 .fv-pair{gap:14px;}
 .fv-pair .fv-caption{font-size:12px;line-height:1.4;padding-top:10px;}
 .fv-pair .fv-play{left:8px;bottom:8px;min-height:44px;padding:8px 10px;font-size:11px;gap:7px;}
 .fv-details-grid{grid-template-columns:1fr;gap:40px;}
 .fv-detail:nth-child(2){margin-top:0;}
 .fv-detail h3{font-size:25px;margin-top:18px;}
 .fv-details{padding-bottom:64px;}
 .fv-scope{padding-block:42px;}
 .fv-scope-grid{grid-template-columns:1fr;gap:24px;}
 .fv-scope h2{font-size:34px;}
 .fv-end{align-items:start;flex-direction:column;padding-block:58px;gap:27px;}
 .fv-end h2{font-size:38px;}
 .fv-caption{font-size:13px;gap:6px 10px;}
 .fv-caption a,.fv-work-note a{min-height:32px;display:inline-flex;align-items:center;}
 .fave-entry{grid-template-columns:1fr;gap:24px;margin-bottom:48px;}
 .fave-entry-media{padding:16px;gap:10px;}
 .fave-entry-copy h2,.fave-entry-copy h3{font-size:42px;}
 .fave-entry-copy p{font-size:16px;}
}
@media(prefers-reduced-motion:reduce){.fave-page{scroll-behavior:auto;}}
