/* Use installed Bodoni 72 where available; the bundled OFL font is the fallback. */
@font-face{
 font-family:"Portfolio Bodoni";
 src:local("BodoniSvtyTwoITCTT-BookIta"),local("Bodoni 72 Book Italic"),url("assets/fonts/libre-bodoni-italic.ttf") format("truetype");
 font-weight:400;
 font-style:italic;
 font-display:swap;
}
@font-face{
 font-family:"Portfolio Sans";
 src:url("assets/fonts/open-sans-light-italic.ttf") format("truetype");
 font-weight:300;
 font-style:italic;
 font-display:swap;
}
:root{color-scheme:dark;--bg:#050505;--text:#ededeb;--muted:#aaa9a5;--line:#30302e;--accent:#bd9562;--title:"Portfolio Bodoni","Bodoni 72","Georgia",serif;--display:"Baskerville","Iowan Old Style","Palatino Linotype","Songti SC",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,'PingFang SC','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;width:100%;height:auto}header{height:85px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#050505;position:relative;z-index:5}.brand{font-size:17px;font-weight:400;letter-spacing:.2px;white-space:nowrap}.brand span{font-size:14px;margin-left:10px}nav{display:flex;gap:32px;font-size:12px;color:#b9b9b6}nav a{padding:10px 0}nav a:hover,nav a:focus-visible{color:var(--accent)}nav [aria-current]{color:var(--text)}nav [aria-current]{border-bottom:1px solid #aaa}.skip{position:fixed;top:-60px;padding:12px;background:#fff;color:#000;z-index:20}.skip:focus{top:0}:focus-visible{outline:2px solid #ccc;outline-offset:6px}.eyebrow{font-size:11px;letter-spacing:1.6px;line-height:1.7;color:var(--muted)}.home{height:100svh;overflow:hidden}.home-main{height:calc(100svh - 85px);position:relative;background:#000}.slides{position:absolute;inset:0;overflow:hidden}.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease}.slide.current{opacity:1}.slides:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.75),transparent 28%,rgba(0,0,0,.08) 70%);pointer-events:none}.home-identity{position:absolute;top:42%;left:0;right:0;text-align:center;text-shadow:0 2px 12px #000}.home-identity h1,.home-identity p{font-family:inherit;font-size:15px;font-weight:400;letter-spacing:.6px;margin:10px}.home-identity p{font-size:12px}.home-bottom{position:absolute;bottom:32px;left:5%;right:5%;display:flex;justify-content:center;align-items:center}.explore{font-size:12px;letter-spacing:1.4px;padding:12px}.explore span{margin-left:12px}.editing,.film,.about{margin:0 5%}.page-intro{display:flex;align-items:end;justify-content:space-between;padding:60px 0 50px}.page-intro h1{font-size:26px;font-weight:400;margin:0}.page-intro h1 span{font-size:13px;color:var(--muted);margin-left:18px}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px 38px;padding-bottom:100px}.work-card{position:relative;min-width:0}.work-image{display:block;overflow:hidden}.work-image img{aspect-ratio:16/9;object-fit:cover;transition:opacity .3s}.work-info{padding:25px 0 0;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s;min-height:235px}.work-card:hover .work-info,.work-card:focus-within .work-info{opacity:1;transform:none}.work-info h2{font-weight:400;font-size:23px;letter-spacing:1px;margin:13px 0 8px}.en-title{font-size:16px;margin:0 0 20px}.brief{font-size:13px;line-height:1.9;color:#c2c2bf;max-width:600px}.festival{font-size:12px;line-height:1.8;color:#adaca5;border-top:1px solid var(--line);padding-top:13px}.film-link{font-size:12px;display:inline-block;padding:8px 0}.back{font-size:12px;color:var(--muted);display:inline-block;margin:35px 0 50px}.film-heading h1{font:clamp(40px,6.4vw,94px)/1.15 Georgia,serif;letter-spacing:-1px;margin:20px 0 35px}.film-sub{display:flex;justify-content:space-between;gap:20px;margin-bottom:35px;align-items:center;font-size:14px;color:var(--muted)}.film-sub>span:first-child{font-size:25px;color:var(--text);letter-spacing:2px}.zoom{background:transparent;border:0;padding:0;display:block;width:100%;cursor:zoom-in}.film-hero img{max-height:740px;object-fit:contain;background:#000}.film-info{display:grid;grid-template-columns:20% 1fr;gap:10%;padding:80px 0}.poster{max-width:245px}.synopsis{font-size:21px;line-height:1.9;margin:25px 0 60px}.credits{display:grid;grid-template-columns:1fr 2fr;gap:36px}.credits h2{font:28px Georgia,serif;margin:0 0 25px}.credits h2 span{font:15px Arial,'PingFang SC',sans-serif;margin-left:12px;color:#c3c3bf}dl{display:grid;grid-template-columns:90px 1fr;gap:10px 12px;font-size:15px;line-height:1.9}dt{color:var(--muted)}dd{margin:0}.credits ul{list-style:none;padding:0;margin:0;font-size:15px;line-height:1.9}.credits li{padding:12px 0;border-bottom:1px solid var(--line)}.credits li:first-child{padding-top:0}.stills{border-top:1px solid var(--line);padding:25px 0 80px}.stills-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px;align-items:center}.stills-grid img{width:100%;height:auto}.next-film{border-top:1px solid var(--line);display:flex;flex-direction:column;gap:20px;padding:35px 0 70px}.next-film>span:last-child{font:36px Georgia,serif}.about{padding:80px 0 100px;display:grid;grid-template-columns:1fr 1.2fr;gap:12%;min-height:calc(100svh - 180px)}.about h1{font-size:30px;font-weight:400;margin:30px 0}.about h1 span{display:block;font-size:22px;margin-top:15px}.portrait{width:165px}.bio>p{font-size:16px;line-height:2;margin:0 0 25px}.bio .english{font-size:15px;line-height:1.9;color:var(--muted)}.contact{margin-top:55px;padding-top:25px;border-top:1px solid var(--line);display:grid;gap:25px}.contact>div{display:flex;flex-direction:column;gap:8px;font-size:16px}.contact a{width:fit-content}footer{border-top:1px solid var(--line);padding:30px 5%;display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.lightbox{position:fixed;inset:0;border:0;padding:50px 70px;background:#000;width:100vw;height:100dvh;max-width:none;max-height:none;color:white}.lightbox::backdrop{background:#000}.lightbox[open]{display:flex;align-items:center;justify-content:center}.lightbox figure{margin:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none}.lightbox img{max-width:100%;max-height:calc(100dvh - 140px);width:auto;object-fit:contain}.lightbox figcaption{font-size:12px;color:#aaa;padding-top:20px}.lightbox button{position:absolute;border:0;background:transparent;cursor:pointer;padding:15px;font-size:26px;z-index:2}.close{top:10px;right:15px}.previous{left:5px;top:45%}.following{right:5px;top:45%}body.modal-open{overflow:hidden}@media(min-width:1500px){.work-grid{gap:65px 50px}.work-card{display:grid;grid-template-columns:1.6fr 1fr;gap:25px}.work-info{padding:0;min-height:0}.work-info h2{font-size:20px}.brief{font-size:12px}.work-image img{aspect-ratio:4/3}}@media(hover:none){.work-info{opacity:1;transform:none;min-height:0}}@media(max-width:760px){header{height:100px;padding:20px 5%;flex-direction:column;align-items:flex-start;gap:12px}.brand{font-size:16px}nav{gap:24px;font-size:11px;width:100%;justify-content:space-between}nav a{padding:3px 0}.home-main{height:calc(100svh - 100px)}.home-identity{top:40%}.home-bottom{bottom:25px;flex-direction:column;gap:15px}.page-intro{padding:45px 0 30px;display:block}.page-intro>.eyebrow{display:block;margin-top:18px}.work-grid{grid-template-columns:1fr;gap:35px;padding-bottom:65px}.work-info{opacity:1;transform:none;min-height:0;padding:20px 0 0}.work-info h2{font-size:22px}.work-info .brief{font-size:14px}.film-heading h1{font-size:43px}.film-sub{flex-direction:column;align-items:start;font-size:12px}.film-sub>span:first-child{font-size:22px}.back{margin:30px 0 35px}.film-info{grid-template-columns:1fr;gap:35px;padding:40px 0}.poster{width:140px}.synopsis{font-size:18px;margin-bottom:35px}.credits{grid-template-columns:1fr;gap:35px}.credits h2{font-size:27px}.credits li,dl{font-size:15px}.stills-grid{gap:10px}.next-film>span:last-child{font-size:28px}.about{grid-template-columns:1fr;gap:35px;padding:40px 0 65px}.portrait{width:120px}.bio>p{font-size:15px}.lightbox{padding:55px 35px}.lightbox button{font-size:22px;padding:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(min-width:1000px){.work-grid{grid-template-columns:1fr;gap:45px;max-width:1300px;margin:auto}.work-card{display:grid;grid-template-columns:62% 1fr;gap:5%;align-items:center}.work-info{padding:0;min-height:0}.work-image img{aspect-ratio:2/1}.work-card:nth-child(even){grid-template-columns:1fr 62%}.work-card:nth-child(even) .work-image{grid-column:2;grid-row:1}.work-card:nth-child(even) .work-info{grid-column:1;grid-row:1}.work-info h2{font-size:24px}.brief{font-size:13px}}

/* Refined typography and warm ochre accents. */
.brand{font-size:15px;letter-spacing:1.6px;font-weight:400}.brand span{letter-spacing:1px}
nav{gap:28px}nav a{transition:color .2s}nav a span{font-size:11px;margin-left:4px}nav [aria-current]{border-color:var(--accent)}
.home-identity h1{font-family:var(--display);font-weight:400;font-size:24px;letter-spacing:.8px;margin:10px}
.home-identity p{font-family:"Portfolio Sans","Helvetica Neue",Arial,sans-serif;font-size:15px;font-weight:300;letter-spacing:.25px;font-style:italic;color:#d0d0cc;margin:12px}
.identity-cn{font-family:var(--display);font-weight:400;color:var(--text);display:block;font-style:normal;font-size:15px;letter-spacing:4px;margin-top:10px}
.explore:hover,.explore:focus-visible,.back:hover,.film-link:hover,.next-film:hover>span:last-child,.contact a:hover{color:var(--accent)}
.film-heading h1{font-family:var(--title);font-size:clamp(28px,4.3vw,64px);font-style:italic;font-weight:400;letter-spacing:.1px}
.film-sub>span:first-child{font-family:var(--display);font-size:26px;letter-spacing:3px}
.film-heading .eyebrow,.stills>.eyebrow,.next-film>.eyebrow,.about .eyebrow{color:var(--accent)}
.film-info>div>.eyebrow{color:var(--accent)}
.synopsis{font-size:18px;line-height:1.95;margin-bottom:48px}.synopsis>span{display:block}
.credits h2{font-family:var(--display);font-size:25px}.credits h2 span{font-size:14px}
.next-film>span:last-child{font-family:var(--title);font-size:28px;font-style:italic;transition:color .2s}
.trailer{margin:0}.video-stage{position:relative;aspect-ratio:16/9;background:#000;width:100%;overflow:hidden}
.trailer-cover{padding:0;border:0;cursor:pointer;display:block;background:#000;width:100%;height:100%;position:relative}
.trailer-cover[hidden]{display:none}.trailer-cover>img{width:100%;height:100%;object-fit:contain;transition:filter .3s}
.trailer-cover:hover>img,.trailer-cover:focus-visible>img{filter:brightness(.75)}
.trailer-prompt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px}
.play-icon{display:grid;place-items:center;border:1px solid #ddd9;border-radius:50%;width:64px;height:64px;font-size:31px;padding-left:3px;background:#0003;transition:color .2s,border-color .2s}
.trailer-label{font-size:13px;letter-spacing:1.5px;opacity:0;transition:opacity .2s;text-shadow:0 1px 6px #000}
.trailer-label>span{font-size:12px;margin-left:10px}.trailer-cover:hover .trailer-label,.trailer-cover:focus-visible .trailer-label{opacity:1}
.trailer-cover:hover .play-icon{color:var(--accent);border-color:var(--accent)}
.video-stage iframe{border:0;display:block;width:100%;height:100%;position:absolute;inset:0}
.trailer-meta{display:flex;justify-content:space-between;gap:20px;padding:16px 0;font-size:11px;line-height:1.8;color:var(--muted)}
.trailer-meta>span{color:#fff;letter-spacing:.5px}.trailer-meta>div{display:flex;gap:20px}.trailer-meta a:hover{color:var(--accent)}
.reset-video{border:0;background:none;padding:0;color:var(--muted);cursor:pointer;font-size:11px}.reset-video:hover{color:var(--accent)}
.about{max-width:1000px;margin:0 auto;padding:75px 35px 90px;grid-template-columns:220px minmax(0,1fr);gap:65px}
.about h1{font-family:var(--title);font-size:29px;font-style:italic}.about h1 span{font-family:var(--display);font-style:normal;font-size:24px;letter-spacing:3px;color:var(--accent)}
.bio>p{font-size:15px;line-height:2}.bio .english{color:#c1c0bb;font-size:15px;line-height:1.85}.bio em{font-family:inherit;font-size:inherit;font-style:italic;color:inherit}
.contact{margin-top:38px}.contact>div{font-size:15px}.portrait{width:180px}.lightbox figcaption{color:#c2b8a8}
@media(hover:none){.trailer-label{opacity:1}}
@media(max-width:760px){
 header{height:110px;padding:18px 5%;gap:16px}nav{gap:10px;font-size:10px;align-items:start}nav a{display:flex;flex-direction:column;gap:4px;padding-bottom:5px}nav a span{margin:0;font-size:10px}
 .home-main{height:calc(100svh - 110px)}.home-identity h1{font-size:22px}.home-identity p{font-size:14px}.identity-cn{font-size:14px}
 .film-heading h1{font-size:30px}.film-sub>span:first-child{font-size:24px}.synopsis{font-size:16px;line-height:1.95}
 .credits h2{font-size:24px}.next-film>span:last-child{font-size:23px}.about{padding:40px 5% 65px;grid-template-columns:1fr;gap:32px;margin:0 auto}
 .about-identity{display:grid;grid-template-columns:1fr 100px;column-gap:20px;align-items:center}.about-identity .eyebrow{grid-column:1}.about h1{font-size:28px;margin:15px 0}.about .portrait{grid-column:2;grid-row:1/3;width:100px}
 .trailer-label{opacity:1;font-size:11px}.trailer-label>span{font-size:10px}.play-icon{width:48px;height:48px;font-size:24px}.trailer-prompt{gap:12px}
 .trailer-meta{font-size:10px;gap:15px}.trailer-meta>div{flex-direction:column;gap:5px;align-items:end}.stills-grid{align-items:start}
}

/* Bilingual film notes: Chinese leads, translations sit directly underneath. */
.synopsis{margin-bottom:16px}
.synopsis-en{max-width:74ch;margin:0 0 48px;font-size:15px;line-height:1.8;color:#aaa9a5;text-wrap:pretty}
.award-cn,.award-en{display:block}
.award-en{margin-top:5px;font-size:13px;line-height:1.65;color:#aaa9a5;text-wrap:pretty}
.credits li{padding-top:15px;padding-bottom:15px}
@media(max-width:760px){
 .synopsis-en{font-size:14px;line-height:1.8;margin-bottom:36px}
 .award-en{font-size:13px;line-height:1.7}
}

/* A published film opens at its publisher instead of loading a player. */
.external-film .trailer-label{opacity:1}
.external-film .play-icon{padding-left:0;font-size:26px}
.publication>span{display:block}
.publication>span[lang="en"]{margin-top:5px;font-size:12px;line-height:1.65;color:var(--muted)}

/* Keep the rider's head inside the work-index crop. */
.work-image[href="graveyard.html"] img{object-position:50% 15%}
