/* NashFilm festival hero, time-boxed; see index.html comment. */
/* TVI Festival Edit. Namespaced to avoid changing the rest of the homepage.
   Reuse the site's Instrument Serif / DM Sans fonts; no font files are bundled. */
.nf-shell {
  --nf-ink:#141412; --nf-paper:#f6f2eb; --nf-copper:#d59670;
  --nf-muted:#bbb6ac; --nf-line:rgba(246,242,235,.19);
  --nf-serif:'Instrument Serif','GFS Didot','Bodoni MT','Times New Roman',serif;
  --nf-sans:'DM Sans','Inter Display',Arial,sans-serif;
  color:var(--nf-paper); background:var(--nf-ink); font:400 16px/1.6 var(--nf-sans);
  -webkit-font-smoothing:antialiased; isolation:isolate;
}
.nf-shell *, .nf-shell *::before, .nf-shell *::after { box-sizing:border-box; }
.nf-shell a { color:inherit; text-decoration:none; }
.nf-shell button { font:inherit; }
.nf-shell button, .nf-shell a { -webkit-tap-highlight-color:transparent; }
.nf-shell :focus-visible { outline:3px solid var(--nf-copper); outline-offset:6px; }
.nf-shell img { display:block; max-width:100%; }
.nf-shell .nf-h1, .nf-shell h2, .nf-shell h3, .nf-shell p, .nf-shell figure { margin:0; }
.nf-wrap { width:min(1280px,calc(100% - 112px)); margin-inline:auto; }
.nf-kicker { font-size:10px; letter-spacing:.17em; font-weight:600; line-height:1.5; text-transform:uppercase; }
.nf-copper { color:var(--nf-copper); }
.nf-topline { display:flex; align-items:center; justify-content:space-between; padding:24px 0 17px; border-bottom:1px solid var(--nf-line); }
.nf-topline-left { display:flex; align-items:center; gap:12px; }
.nf-square { width:6px; height:6px; background:var(--nf-copper); flex:none; }
.nf-topline-right { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--nf-muted); }
.nf-hero { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:60px; padding:48px 0 42px; }
.nf-hero-copy { position:relative; z-index:1; }
.nf-hero-label { display:flex; align-items:center; gap:15px; color:var(--nf-copper); margin-bottom:25px; }
.nf-hero-label::after { content:''; display:block; height:1px; width:38px; background:var(--nf-copper); }
.nf-hero .nf-h1 { font-family:var(--nf-serif); font-size:clamp(66px,7.9vw,116px); font-weight:400; line-height:.91; letter-spacing:-.043em; }
.nf-hero .nf-h1 em { display:block; font-weight:400; color:var(--nf-copper); }
.nf-hero-deck { max-width:465px; color:#d0ccc3; font-size:16px; line-height:1.7; margin-top:26px !important; }
.nf-hero-deck strong { color:var(--nf-paper); font-weight:500; }
.nf-actions { display:flex; flex-wrap:wrap; gap:12px 22px; align-items:center; margin-top:28px; }
.nf-button { min-height:50px; padding:14px 22px; background:var(--nf-paper); color:var(--nf-ink) !important; display:inline-flex; align-items:center; justify-content:space-between; gap:24px; font-size:12px; line-height:1.4; font-weight:600; transition:background .18s ease; }
.nf-button:hover { background:var(--nf-copper); }
.nf-arrow { display:inline-block; transition:transform .18s ease; font:400 23px/1 Arial,sans-serif; }
.nf-button:hover .nf-arrow, .nf-link:hover .nf-arrow { transform:translateX(3px); }
.nf-link { display:inline-flex; gap:12px; align-items:center; min-height:44px; font-size:12px; font-weight:500; }
.nf-link:hover { color:var(--nf-copper); }
.nf-byline { margin-top:25px !important; color:var(--nf-muted); font-size:10px; letter-spacing:.015em; }
.nf-hero-art { position:relative; min-width:0; padding:0 0 20px 0; }
.nf-edition-art { position:relative; overflow:hidden; aspect-ratio:1.04; width:100%; background:#24231f; border:1px solid #504338; }
.nf-edition-art::after { content:''; position:absolute; inset:13px; border:1px solid rgba(246,242,235,.13); pointer-events:none; }
.nf-edition-art img { width:100%;height:100%;object-fit:cover; }
.nf-art-caption { display:flex; justify-content:space-between; padding-top:12px; gap:10px; font-size:9px; color:var(--nf-muted); }
.nf-number-tab { position:relative; display:inline-block; margin-top:16px; padding:10px 17px; background:var(--nf-paper); color:var(--nf-ink); font-size:10px; letter-spacing:.09em; font-weight:600; }
.nf-official-art { margin-top:13px !important; display:flex; align-items:center; gap:10px; font-size:9px; line-height:1.5; color:var(--nf-muted); }
.nf-official-art img {width:126px; height:42px; object-fit:contain; flex:none;}
.nf-paths { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--nf-line); border-bottom:1px solid var(--nf-line); }
.nf-path { display:grid; grid-template-columns:27px 1fr 22px; gap:15px; align-items:start; padding:23px 0; }
.nf-path + .nf-path {border-left:1px solid var(--nf-line); padding-left:28px; margin-left:28px;}
.nf-path-number {font-family:var(--nf-serif);font-size:18px;line-height:1.3;color:var(--nf-copper);}
.nf-path h2 {font-size:13px;line-height:1.5;font-weight:500;}
.nf-path p {font-size:11px;color:var(--nf-muted);margin-top:4px;line-height:1.55;max-width:230px;}
.nf-path:hover h2 {color:var(--nf-copper);}
.nf-path .nf-arrow {font-size:17px;align-self:center;padding-right:12px;}
.nf-slate { padding:44px 0 46px; scroll-margin-top:100px; }
.nf-section-head {display:flex; align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:24px;}
.nf-section-head h2 {font:400 39px/1.1 var(--nf-serif);letter-spacing:-.015em;margin-top:9px;}
.nf-filterbar {display:flex;flex-wrap:wrap;gap:6px;}
.nf-filterbar[hidden] {display:none;}
.nf-filter {background:transparent;border:1px solid transparent;color:var(--nf-muted);padding:10px 13px;cursor:pointer;min-height:44px;font-size:11px !important;line-height:1.3;}
.nf-filter[aria-pressed='true'] {border-color:#6d6256;color:var(--nf-paper);background:#24221e;}
.nf-filter:hover {color:var(--nf-paper);border-color:#6d6256;}
.nf-card-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;}
.nf-card {min-width:0;}
.nf-card[hidden] {display:none;}
.nf-card-image {position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#262622;}
.nf-card-image picture, .nf-card-image > img {position:absolute;inset:0;width:100%;height:100%;}
.nf-card-image img {width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.nf-card-image:hover img {transform:scale(1.03);}
.nf-card-fallback {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;}
.nf-card-fallback b {font:400 45px/1 var(--nf-serif);letter-spacing:-.02em;position:relative;z-index:1;}
.nf-card-fallback::before {content:'';position:absolute;inset:16px;border:1px solid rgba(246,242,235,.18);}
.nf-card--music .nf-card-fallback {background:repeating-linear-gradient(90deg,transparent 0,transparent 42px,rgba(213,150,112,.08) 43px,transparent 44px),#33291f;color:#f4dfc2;}
.nf-card--family .nf-card-fallback {background:radial-gradient(ellipse at center,#44473d 0, #272c28 55%,#202722 100%);color:#e5e6d6;}
.nf-card--place .nf-card-fallback {background:repeating-linear-gradient(0deg,transparent 0,transparent 29px,rgba(246,242,235,.09) 30px,transparent 31px),#35312e;color:#eae3d8;}
.nf-thumb-label {position:absolute;bottom:12px;left:12px;z-index:2;line-height:1;font-size:8px;letter-spacing:.1em;background:rgba(20,20,18,.93);padding:7px 9px;color:#f6f2eb;}
.nf-card-meta {display:flex;justify-content:space-between;gap:10px;margin:17px 0 8px;font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--nf-muted);}
.nf-card-meta span:first-child {color:var(--nf-copper);}
.nf-card h3 {font:400 28px/1.17 var(--nf-serif);letter-spacing:-.015em;}
.nf-card h3 a:hover {color:var(--nf-copper);}
.nf-card p {font-size:12px;line-height:1.7;color:var(--nf-muted);margin-top:9px;max-width:345px;}
.nf-card .nf-link {border-bottom:1px solid #574b40;padding-bottom:2px;min-height:36px;margin-top:12px;font-size:10px;}
.nf-card .nf-link .nf-arrow {font-size:18px;}
.nf-slate-caption {margin-top:22px !important;display:flex;justify-content:space-between;gap:20px;font-size:9px;line-height:1.6;color:var(--nf-muted);}
.nf-slate-caption a {text-decoration:underline;text-underline-offset:3px;}
.nf-desk {background:var(--nf-paper);color:var(--nf-ink);padding:38px 0;}
.nf-desk .nf-wrap {display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;}
.nf-desk h2 {font:400 38px/1.1 var(--nf-serif);letter-spacing:-.015em;margin-top:9px;}
.nf-desk p {font-size:12px;line-height:1.75;color:#5a564f;max-width:470px;margin-top:12px;}
.nf-desk .nf-kicker {color:#875132;}
.nf-desk .nf-link {font-size:11px;border-bottom:1px solid #c4b29e;color:var(--nf-ink);margin-top:9px;}
.nf-desk .nf-link:hover {color:#7e4226;}
.nf-people {display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.nf-person {border-top:1px solid #b8aea0;padding-top:14px;}
.nf-person .nf-initials {font:400 22px/1 var(--nf-serif);color:#875132;margin-bottom:12px;}
.nf-person h3 {font-size:12px;font-weight:600;line-height:1.6;}
.nf-person p {font-size:10px;line-height:1.7;margin-top:4px;}
.nf-follow {border-top:1px solid var(--nf-line);padding:35px 0;}
.nf-follow .nf-wrap {display:flex;align-items:center;justify-content:space-between;gap:24px;}
.nf-follow h2 {font:400 32px/1.1 var(--nf-serif);}
.nf-follow p {font-size:12px;line-height:1.7;color:var(--nf-muted);margin-top:8px;}
.nf-follow .nf-button {background:transparent;color:var(--nf-paper) !important;border:1px solid #736659;min-width:210px;}
.nf-follow .nf-button:hover {background:var(--nf-paper);color:var(--nf-ink) !important;}
.nf-official-links {padding:16px 0;border-top:1px solid var(--nf-line);}
.nf-official-links .nf-wrap {display:flex;flex-wrap:wrap;align-items:center;gap:8px 23px;}
.nf-official-links span {font-size:9px;letter-spacing:.08em;color:var(--nf-muted);text-transform:uppercase;}
.nf-official-links a {min-height:32px;display:inline-flex;align-items:center;font-size:10px;color:#d0ccc3;}
.nf-official-links a:hover {color:var(--nf-copper);text-decoration:underline;text-underline-offset:4px;}
.nf-sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media(min-width:1600px) {.nf-hero .nf-h1{font-size:123px;}.nf-hero{padding:57px 0 47px;}}
@media(max-width:1100px){.nf-wrap{width:calc(100% - 64px)}.nf-hero{gap:36px}.nf-hero .nf-h1{font-size:87px}.nf-hero-deck{font-size:14px}.nf-desk .nf-wrap{gap:32px}.nf-people{gap:14px}.nf-section-head{align-items:flex-start}.nf-section-head h2{font-size:34px}.nf-filter{padding:9px}.nf-path+.nf-path{margin-left:20px;padding-left:20px}}
@media(max-width:760px){
.nf-wrap{width:calc(100% - 40px)}
.nf-topline{padding:18px 0 15px}.nf-topline-right{font-size:8px;letter-spacing:.02em}.nf-topline-left .nf-kicker{font-size:8px;letter-spacing:.1em}
.nf-hero{grid-template-columns:1fr;gap:28px;padding:30px 0 24px}.nf-hero-label{margin-bottom:19px;font-size:9px}
.nf-hero .nf-h1{font-size:clamp(64px,16vw,95px);line-height:.94;letter-spacing:-.04em}
.nf-hero-deck{font-size:14px;margin-top:21px !important;max-width:475px}.nf-actions{margin-top:22px;gap:8px 16px}.nf-button{min-height:49px;font-size:11px;padding:14px 17px;gap:20px}.nf-link{font-size:11px}.nf-byline{margin-top:16px !important;font-size:9px;max-width:330px;}
.nf-hero-art{padding:0 0 8px}.nf-edition-art{aspect-ratio:1.55;max-height:325px}.nf-edition-art img{object-position:50% 50%}.nf-number-tab{font-size:8px;padding:8px 13px}.nf-art-caption{font-size:8px}.nf-official-art{font-size:8px}.nf-official-art img{width:111px;height:37px}
.nf-paths{grid-template-columns:1fr}.nf-path{grid-template-columns:25px 1fr 18px;padding:17px 0;gap:13px}.nf-path+.nf-path{padding:17px 0;margin:0;border-left:0;border-top:1px solid var(--nf-line)}.nf-path p{max-width:none;font-size:10px;margin-top:2px}.nf-path h2{font-size:12px}.nf-path-number{font-size:18px}
.nf-slate{padding:32px 0 29px}.nf-section-head{display:block;margin-bottom:19px}.nf-section-head h2{font-size:35px;margin-top:8px}.nf-filterbar{margin-top:17px;gap:3px}.nf-filter{font-size:10px !important;padding:9px 10px;min-height:44px}
.nf-card-grid{grid-template-columns:1fr;gap:30px}.nf-card-image{aspect-ratio:1.85}.nf-card h3{font-size:31px}.nf-card p{font-size:12px;max-width:none}.nf-card-meta{margin-top:14px}.nf-card .nf-link{font-size:11px;min-height:44px;margin-top:5px}.nf-slate-caption{display:block;font-size:9px}.nf-slate-caption span{display:block;margin-bottom:8px}
.nf-desk{padding:30px 0}.nf-desk .nf-wrap{grid-template-columns:1fr;gap:27px}.nf-desk h2{font-size:35px}.nf-desk p{font-size:12px}.nf-people{gap:14px}.nf-person h3{font-size:11px;line-height:1.6}.nf-person p{font-size:9px;line-height:1.65}.nf-person .nf-initials{font-size:20px}
.nf-follow{padding:28px 0}.nf-follow .nf-wrap{display:block}.nf-follow h2{font-size:32px}.nf-follow p{font-size:11px}.nf-follow .nf-button{margin-top:18px;width:100%;}
.nf-official-links .nf-wrap{gap:0 19px}.nf-official-links span{flex-basis:100%;padding-bottom:5px}.nf-official-links a{font-size:10px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){.nf-shell *, .nf-shell *::before,.nf-shell *::after{animation:none !important;transition:none !important;scroll-behavior:auto !important;}}
.nf-published{padding:8px 0 35px;scroll-margin-top:100px;}
.nf-published-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:26px;}
.nf-published-card{padding:25px;border:1px solid var(--nf-line);background:#201d19;}
.nf-published-card h3{font:400 33px/1.13 var(--nf-serif);margin:12px 0 !important;max-width:720px;}
.nf-published-card>p:not(.nf-kicker){font-size:13px;color:var(--nf-muted);max-width:740px;}
.nf-published-card small{display:block;font-size:10px;color:var(--nf-muted);margin:14px 0 3px;}

/* Readability pass */
.nf-button{font-size:13px}.nf-link{font-size:13px}.nf-path h2{font-size:14px}.nf-path p{font-size:12px}.nf-card p{font-size:14px}.nf-card .nf-link{font-size:12px}.nf-card-meta{font-size:10px}.nf-card{scroll-margin-top:100px}.nf-byline{font-size:11px}.nf-desk p{font-size:14px}.nf-person p{font-size:11px}.nf-follow p{font-size:14px}.nf-official-links a{font-size:11px}.nf-card small{font-size:11px}
@media(max-width:760px){.nf-hero-deck{font-size:15px}.nf-button{font-size:12px}.nf-link{font-size:12px}.nf-path h2{font-size:13px}.nf-path p{font-size:11px}.nf-card p{font-size:14px}.nf-card-meta{font-size:10px}.nf-card .nf-link{font-size:12px}.nf-byline{font-size:10px}.nf-desk p{font-size:14px}.nf-person p{font-size:10px}.nf-follow p{font-size:13px}}
