@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&display=swap');
:root{--bg:#111211;--paper:#eeeee8;--muted:#999b94;--line:#353732;--accent:#eb603f;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;--body:'DM Sans','Noto Sans JP',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--body);font-size:16px}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:5px}header{height:105px;display:flex;align-items:center;gap:35px;padding:0 4%;border-bottom:1px solid var(--line)}.brand{font:700 26px/1 var(--display);letter-spacing:.5px;white-space:nowrap}.brand span,footer a span{display:block;font:500 10px/1.9 var(--body);letter-spacing:2.4px}.brand span{font-size:12px;letter-spacing:1.5px}nav{display:flex;align-items:center;justify-content:center;gap:25px;flex:1}nav a{font-size:14px;white-space:nowrap;color:#bfc1b9;padding:12px 0}nav a.active{color:white;border-bottom:2px solid var(--accent)}nav a:hover{color:var(--accent)}.language{display:flex;gap:9px;align-items:center;font-size:12px;white-space:nowrap}.language button{border:0;background:none;color:#8a8d84;padding:4px;font-size:13px}.language button[aria-pressed=true]{color:#fff}.menu{display:none}.hero{position:relative;min-height:480px;height:45vw;max-height:660px;overflow:hidden;background:#25231e}.hero img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:brightness(.64)}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#111211 0%,transparent 65%),linear-gradient(90deg,#1119,transparent 70%)}.hero-content{position:absolute;z-index:1;left:7%;right:7%;bottom:60px}.eyebrow{font-size:12px;font-weight:500;letter-spacing:2.8px;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:12px}.eyebrow:before{content:'';height:1px;width:28px;background:var(--accent)}h1,h2,h3,p{margin-top:0}.hero h1{font:700 clamp(65px,9.7vw,150px)/.88 var(--display);letter-spacing:-1px;margin:25px 0 20px}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end}.hero-bottom p{font-size:13px;letter-spacing:4px;margin:0}.textlink{border-bottom:1px solid #777;padding:12px 0;display:inline-flex;gap:30px;align-items:center;font-size:14px}.textlink:hover{color:var(--accent)}.credentials{border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:26px 7%;gap:20px}.credentials div{font-size:12px;letter-spacing:1.5px;color:#b7b9b0}.credentials strong{color:var(--paper);font-weight:500}.credentials i{color:var(--accent);font-style:normal;margin-right:10px}.wrap{max-width:1440px;margin:auto;padding:70px 7% 100px}.section-head{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:28px;gap:20px}h2{font:600 60px/1 var(--display);margin:15px 0 0;text-transform:uppercase}.filters{display:flex;gap:12px}select{appearance:none;border:1px solid #45473f;background:#181a17;color:var(--paper);padding:12px 35px 12px 16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8'%3E%3Cpath d='m1 1 4 4 4-4' stroke='%23ddd' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;font-size:14px;border-radius:0}.journal{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:60px}.post{padding:35px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:115px minmax(0,1fr);gap:30px}.post-date{font-size:12px;color:var(--muted);letter-spacing:1px;line-height:1.9;text-transform:uppercase}.post-date b{font-size:32px;font-family:var(--display);color:var(--paper);display:block;font-weight:500}.post-tag{font-size:12px;letter-spacing:2px;color:var(--accent);text-transform:uppercase;margin-bottom:14px}.post h3{font:500 30px/1.15 var(--display);margin-bottom:14px}.post p{color:#b4b7af;line-height:1.8;max-width:650px;margin-bottom:18px}.post img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;margin-top:8px}.post img.portrait{object-fit:contain;background:#181a17}.media-link{position:relative;display:block}.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border:1px solid #fff8;background:#1119;border-radius:50%;display:grid;place-items:center}.aside{padding:37px 0}.aside img{width:100%;filter:grayscale(1);margin-bottom:22px}.aside h3{font:600 29px var(--display);margin-bottom:13px}.aside p{color:var(--muted);font-size:14px;line-height:1.8}.aside .small{margin-top:40px;border-top:1px solid var(--line);padding-top:28px}.aside .small span{display:block;font-size:12px;color:var(--accent);letter-spacing:2px;margin-bottom:15px}.load{display:block;width:100%;padding:21px;border:1px solid var(--line);background:none;color:var(--paper);margin:35px 0;font-size:14px}.load:hover{background:#22251f}.empty{padding:50px 0;color:var(--muted)}footer{border-top:1px solid var(--line);padding:40px 7%;display:flex;align-items:center;justify-content:space-between;gap:30px}footer a{font:600 24px var(--display)}footer p,footer>span{font-size:12px;color:var(--muted);line-height:1.7}footer p{margin:0}.page-title{padding:65px 0 40px}.page-title h1{font:600 clamp(60px,8vw,110px)/1 var(--display);margin:22px 0 0;text-transform:uppercase}.page-title p{color:var(--muted);margin:24px 0 0;line-height:1.8;max-width:650px}.two-col{display:grid;grid-template-columns:1fr 1.15fr;gap:65px;align-items:start}.two-col img{width:100%}.prose{font-size:18px;line-height:1.9;color:#bfc2b9}.prose h2{color:var(--paper);font-size:43px;margin:0 0 25px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:25px;border-top:1px solid var(--line);padding:30px 0;font-size:14px}.facts dt{color:var(--muted);margin-bottom:7px}.facts dd{margin:0}.button{background:var(--accent);color:#111;padding:15px 24px;display:inline-block;font-size:14px;font-weight:600;border:0}.button:hover{background:#ff7958}.reel-frame{width:100%;aspect-ratio:16/9;border:0;background:#050605}.reel-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:45px}.reel-grid h3{font:500 27px var(--display);margin:20px 0}.reel-grid iframe{width:100%;aspect-ratio:16/9;border:0}.resume-head{display:flex;justify-content:space-between;gap:30px;align-items:center;padding-bottom:30px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:2px;padding:17px 12px}td{padding:24px 12px;border-top:1px solid var(--line);color:#bfc2b9;line-height:1.5;font-size:14px}td:first-child{color:var(--paper);font-size:17px}.award{padding:38px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:100px 1fr 210px;gap:35px;align-items:center}.award .award-year{font:500 48px var(--display);color:var(--accent)}.award h2{font-size:43px;margin:0 0 15px}.award p{color:var(--muted);line-height:1.7;margin:0}.award img{width:100%;height:180px;object-fit:cover}.press-item{display:grid;grid-template-columns:110px 1fr auto;gap:30px;padding:30px 0;border-top:1px solid var(--line);align-items:center}.press-item img{width:100%;height:140px;object-fit:cover}.press-item h2{font-size:32px;margin:10px 0 15px}.press-item p{font-size:13px;color:var(--muted)}.contact{padding:40px 0 90px}.contact .email{font:500 clamp(26px,5vw,70px) var(--display);border-bottom:1px solid #555;display:inline-block;padding:20px 0}.contact p{line-height:1.8;color:var(--muted)}.gallery-teaser{position:relative;margin-bottom:30px}.gallery-teaser img{width:100%;max-height:530px;object-fit:cover}.gallery-teaser .button{position:absolute;bottom:30px;left:30px}.skiplink{position:fixed;top:-100px;z-index:100;background:var(--paper);color:#111;padding:15px}.skiplink:focus{top:0}#cinema{position:fixed;inset:0;background:#080908;z-index:50;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s both}#cinema[hidden]{display:none}.cinema-frame{width:100%;aspect-ratio:2.39;position:relative;overflow:hidden;background:#111}.frames{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.65;animation:slowPan 2.5s ease-out both}.intro-name{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font:800 12vw/.85 var(--display);white-space:nowrap;letter-spacing:-.2vw;animation:nameReveal 4.4s both;background-position:center;background-size:cover;color:transparent;background-clip:text;-webkit-background-clip:text}.intro-name span{font:500 1.5vw var(--body);letter-spacing:.7vw;margin-top:30px;color:var(--paper)}#cinema.intro .frames{opacity:.18}#cinema.transition .intro-name{display:none}.transition-caption{position:absolute;bottom:10%;left:7%;font:600 7vw var(--display);text-transform:uppercase;text-shadow:0 2px 20px #000}#cinema.intro .transition-caption{display:none}#cinema.leaving{animation:fadeOut .4s both}.mobile-only{display:none}@keyframes nameReveal{0%{transform:scale(5);opacity:0}10%{opacity:1}58%{transform:scale(1);color:transparent}80%,100%{transform:scale(1);color:#eee}}@keyframes slowPan{from{transform:scale(1.1)}to{transform:scale(1)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@media(min-width:1600px){header{padding-left:7%;padding-right:7%}}@media(max-width:1150px){nav{gap:15px}header{gap:18px}.brand{font-size:23px}nav a{font-size:12px}.journal{gap:35px;grid-template-columns:1fr 215px}}@media(max-width:900px){header{height:85px}.menu{display:block;background:none;color:#eee;border:0;font-size:25px}.language{margin-left:auto}nav{display:none;position:fixed;top:var(--mobile-menu-top,var(--header-mobile,85px));left:0;right:0;z-index:5;background:#111;padding:20px 7%;border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr}nav.open{display:grid}nav a{font-size:16px}.hero{min-height:450px}.hero-content{bottom:45px}.hero h1{font-size:13vw}.credentials{flex-wrap:wrap;gap:15px}.journal{grid-template-columns:1fr}.aside{display:none}.wrap{padding:45px 6% 65px}.two-col{gap:35px}.award{grid-template-columns:70px 1fr}.award img{display:none}}@media(max-width:600px){.hero{height:520px}.hero img{object-position:62% center}.hero h1{font-size:19vw;max-width:90%;line-height:.85}.hero-bottom{display:block}.hero-bottom p{font-size:11px;letter-spacing:2px;margin-bottom:20px}.credentials{display:block;padding:23px 6%}.credentials div{margin:8px 0;font-size:11px}.section-head{display:block}h2{font-size:48px}.filters{margin-top:25px}.filters select{flex:1;min-width:0}.post{grid-template-columns:60px 1fr;gap:18px;padding:30px 0}.post-date{font-size:11px}.post-date b{font-size:28px}.post h3{font-size:27px}.post p{font-size:15px;line-height:1.75}.two-col,.reel-grid{grid-template-columns:1fr}.page-title{padding-top:25px}.page-title h1{font-size:65px}.resume-head{align-items:start;flex-direction:column}.award{gap:20px}.award h2{font-size:32px}.award .award-year{font-size:35px}.press-item{grid-template-columns:65px 1fr;gap:20px}.press-item>span{display:none}.press-item h2{font-size:27px}.press-item img{height:100px}footer{align-items:start;flex-direction:column;padding:30px 6%;gap:20px}footer>span{font-size:11px}.intro-name span{font-size:2vw}.cinema-frame{min-height:0}.prose{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}#cinema{display:none!important}}
.masked-video{position:absolute;width:100%;height:100%;object-fit:cover;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 400'%3E%3Ctext x='600' y='235' text-anchor='middle' font-family='Arial,sans-serif' font-weight='900' font-size='142' textLength='1140' lengthAdjust='spacingAndGlyphs'%3EHIROO MINAMI%3C/text%3E%3C/svg%3E");mask-size:100% 100%;mask-repeat:no-repeat;animation:videoReveal 4.4s both;z-index:2}.transition-video{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.55}.frames{transition:opacity .5s}.transition-caption{z-index:3}.intro-name{z-index:3}.intro-name span{position:relative;z-index:4}@keyframes videoReveal{0%{transform:scale(5);opacity:0}10%{opacity:1}58%{transform:scale(1);opacity:1}78%,100%{transform:scale(1);opacity:0}}

/* Upright theater posters at independent depths in a 2.39:1 stage. */
#cinema.transition .cinema-frame{container-type:inline-size;perspective:1100px;background:#060807}
#cinema.transition .frames{opacity:1;animation:none;transform:none;background:none;overflow:visible}
.poster-wall{position:absolute;inset:0;transform-style:preserve-3d;perspective:1100px;perspective-origin:50% 50%}
.poster-tile{position:absolute;left:50%;top:50%;width:16cqw;aspect-ratio:2/3;border:3px solid #272a25;box-shadow:0 0 0 1px #ffffff20,0 12px 38px #000b;background:#111;transform-style:preserve-3d;animation:posterApproach 1.75s cubic-bezier(.18,.35,.55,1) both;animation-delay:var(--arrival);will-change:transform;backface-visibility:hidden}
.poster-tile img{width:100%;height:100%;display:block;object-fit:contain;background:#090b09}
#cinema.transition .transition-video{opacity:.23;filter:brightness(.65);width:100%;height:100%;object-fit:cover}
#cinema.transition .cinema-frame:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#050705e8,transparent 30%,transparent 75%,#05070575),linear-gradient(90deg,#05070566,transparent 15%,transparent 85%,#05070566)}
#cinema.transition .transition-caption{font-size:clamp(20px,3.4vw,54px);bottom:6%;left:6%;letter-spacing:.08em;z-index:4;text-shadow:0 2px 20px #000}
@keyframes posterApproach{from{opacity:0;transform:translate(-50%,-50%) translate3d(var(--x),calc(var(--y) + 4cqw),var(--z-from))}15%{opacity:1}to{opacity:1;transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z-to))}}
@media(max-width:600px){#cinema.transition .cinema-frame,.poster-wall{perspective:650px}.poster-tile{border-width:1px}}

.custom-logo{width:auto;max-width:190px;height:52px;object-fit:contain;display:block}footer .custom-logo{height:46px}.hero h1{overflow-wrap:anywhere}.post-tag,.eyebrow{color:var(--accent)}.hero .hero-content{color:var(--paper)}@media(max-width:600px){.custom-logo{max-width:150px;height:44px}}

nav a,.post p,.aside p,.prose,.page-title p,.award p,.contact p{color:var(--muted)}nav a.active,.language button[aria-pressed=true],.prose h2{color:var(--paper)}nav a:hover{color:var(--accent)}select{background:var(--bg);color:var(--paper);border-color:var(--line)}.hero-content .eyebrow,.post-tag{color:var(--accent)}

header{height:var(--header-desktop,105px)}.hero h1{font-size:var(--title-desktop,clamp(65px,9.7vw,150px))}.page-title h1{font-size:var(--title-desktop,clamp(60px,8vw,110px))}@media(max-width:900px){header{height:var(--header-mobile,85px)}nav{top:var(--mobile-menu-top,var(--header-mobile,85px))}.hero h1{font-size:var(--title-mobile,13vw)}.page-title h1{font-size:var(--title-mobile,clamp(60px,8vw,110px))}}@media(max-width:600px){.hero h1{font-size:var(--title-mobile,19vw)}.page-title h1{font-size:var(--title-mobile,65px)}}

.page-title h1{overflow-wrap:anywhere}

.resume-profile{padding:0 0 26px}.resume-recognition{color:var(--accent);line-height:1.8;white-space:pre-line;font-size:15px}.resume-contact{font-size:14px;color:var(--muted);margin:18px 0}.resume-measurements{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.resume-measurements dt{font-size:12px;color:var(--muted);margin-bottom:7px}.resume-measurements dd{margin:0;font-size:15px}.resume-category th{padding:36px 12px 18px;border-top:1px solid var(--line);font:500 29px var(--display);color:var(--accent);letter-spacing:1px}.resume-note{font-size:13px;color:var(--muted);padding-top:20px}@media(max-width:700px){.resume-measurements{grid-template-columns:repeat(2,1fr)}.table-scroll table{min-width:650px}}

.back-to-top{display:inline-block;margin-top:28px;padding:12px 0;font-size:16px}

#cinema.transition .cinema-frame{width:100%;height:100%;aspect-ratio:auto;overflow:visible}
#cinema.transition .poster-tile{width:min(14cqw,22vh)}

#cinema.intro .cinema-frame{background:#070807}
#cinema.intro .frames{opacity:.1;filter:brightness(.65);animation:slowPan 3.5s ease-out both}
#cinema.intro .intro-name{font-family:Arial,sans-serif;font-weight:900;font-size:11.8vw;line-height:1;letter-spacing:-.035em;animation:introTitle 3.1s cubic-bezier(.22,.61,.36,1) both}
#cinema.intro .intro-name span{font-family:var(--body);font-size:clamp(10px,1.2vw,20px);font-weight:500;letter-spacing:.42em;margin-top:25px;animation:introSubtitle 3.1s ease both}
#cinema.intro .masked-video{filter:brightness(1.35) contrast(1.1);animation:introFootage 3.1s cubic-bezier(.22,.61,.36,1) both}
@keyframes introTitle{0%{transform:scale(1.8);opacity:0;color:transparent}12%{opacity:1;color:transparent}58%{transform:scale(1);color:transparent}78%,100%{transform:scale(1);opacity:1;color:#f4f4ee}}
@keyframes introFootage{0%{transform:scale(1.8);opacity:0}12%{opacity:1}58%{transform:scale(1);opacity:1}78%,100%{transform:scale(1);opacity:0}}
@keyframes introSubtitle{0%,60%{opacity:0;transform:translateY(8px)}85%,100%{opacity:1;transform:translateY(0)}}
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:20;margin:0;padding:13px 18px;background:var(--paper);color:var(--bg);border:1px solid var(--line);border-radius:4px;box-shadow:0 4px 20px #0004;font-size:14px;text-decoration:none}.back-to-top:focus-visible{outline:3px solid var(--accent);outline-offset:4px}@media(max-width:600px){.back-to-top{right:16px;bottom:16px}}

#cinema.intro .cinema-frame{width:100%;height:100%;aspect-ratio:auto;overflow:hidden}
#cinema.intro .intro-name{display:none}
#cinema.intro .frames{opacity:1;filter:none;animation:none}
.intro-action-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.intro-mask-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:3;animation:maskEnter 4.4s linear both}
.intro-mask-letters{animation:maskPullback 4.4s cubic-bezier(.65,0,.2,1) both}
.intro-final-title{animation:solidTitle 4.4s ease both}
.intro-final-tagline{position:absolute;top:calc(50% + 9vw);width:100%;text-align:center;z-index:4;color:#f4f4ee;font:500 clamp(11px,1.3vw,21px) var(--body);letter-spacing:.35em;animation:solidTitle 4.4s ease both;padding:0 20px}
@keyframes maskEnter{0%,22%{opacity:0}35%,100%{opacity:1}}
@keyframes maskPullback{0%,22%{transform:scale(28)}77%,100%{transform:scale(1)}}
@keyframes solidTitle{0%,78%{opacity:0}92%,100%{opacity:1}}
.award{grid-template-columns:max-content minmax(0,1fr) 210px;column-gap:clamp(24px,3vw,48px)}.award>div{min-width:0}.award .award-year{white-space:nowrap;font-size:clamp(32px,3.5vw,48px)}.award h2{overflow-wrap:anywhere;line-height:1.15}.award p{overflow-wrap:anywhere}@media(max-width:900px){.award{grid-template-columns:max-content minmax(0,1fr)}}@media(max-width:600px){.award{grid-template-columns:1fr;gap:16px}.award .award-year{font-size:32px}.award h2{font-size:clamp(26px,7vw,32px)}}
.post .textlink{padding-bottom:8px}

.post>div{min-width:0}.post h3{overflow-wrap:anywhere;white-space:normal}
.post .textlink{gap:8px}

.hero{background:var(--bg)}.hero img{object-fit:cover}
/* Navigation and reading refinements. */
.hero img{object-fit:cover}.hero{background:#111211}
.textlink{padding-bottom:2px}.textlink span{display:inline-block;transition:transform .2s ease}.textlink:hover span,.textlink:focus-visible span{transform:rotate(-25deg) translate(1px,-1px)}.post .textlink{padding-bottom:2px}.hero .textlink{gap:10px}.hero .textlink span{font-size:20px}
.filters select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='9' viewBox='0 0 13 9'%3E%3Cpath d='m1.5 1.5 5 5 5-5' fill='none' stroke='%23eeeeee' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;padding-right:38px}
#news-filters{scroll-margin-top:30px}.post-media,.post .media-link{aspect-ratio:16/9;background:#171a17;display:grid;place-items:center;margin-top:14px;overflow:hidden}.post-media img,.post .media-link img{width:100%;height:100%;max-height:none;object-fit:contain;margin:0}.post-media[hidden]{display:none}
.credentials div:last-child{white-space:nowrap}@media(max-width:600px){.credentials{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.credentials div{margin:0}}
#navigation a{width:max-content;max-width:100%}@media(max-width:900px){#navigation a.active{border-bottom:0;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:8px}}
.hero h1,.page-title h1,h2,.post h3,.award h2,.transition-caption{line-height:var(--heading-leading,1.12)}html[lang=ja] .page-title h1,html[lang=ja] h2,html[lang=ja] .post h3{line-break:strict}
#cinema.transition .transition-caption{font-size:clamp(38px,5.2vw,90px);line-height:1.12;max-width:86%;overflow-wrap:anywhere}
#cinema.transition.preparing .poster-wall{opacity:0}#cinema.transition .poster-wall{transition:opacity .12s ease}#cinema.transition.preparing .poster-tile{animation-play-state:paused}
#cinema.transition .poster-tile{width:min(calc(14cqw * var(--scale,1)),25vh)}
@keyframes posterApproach{from{opacity:0;transform:translate(-50%,-50%) translate3d(var(--x),calc(var(--y) + 4vh),var(--z-from)) rotate(var(--angle,0deg))}15%{opacity:1}to{opacity:1;transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z-to)) rotate(var(--angle,0deg))}}
@media(max-width:700px){.table-scroll{overflow:visible}.table-scroll table{min-width:0;width:100%;display:block}.table-scroll thead{display:none}.table-scroll tbody{display:block}.table-scroll tr:not(.resume-category){display:block;padding:19px 0;border-top:1px solid var(--line)}.table-scroll tr:not(.resume-category) td{display:grid;grid-template-columns:minmax(95px,32%) minmax(0,1fr);gap:12px;border:0;padding:5px 0;font-size:14px;overflow-wrap:anywhere}.table-scroll tr:not(.resume-category) td:first-child{font-size:16px}.table-scroll tr:not(.resume-category) td:before{content:attr(data-label);color:var(--muted);font-size:12px;line-height:1.6}.table-scroll .resume-category{display:block;padding-top:22px}.table-scroll .resume-category th{display:block;padding:20px 0 10px;text-align:left}.resume-measurements{grid-template-columns:repeat(2,minmax(0,1fr))}}

.back-to-top{padding:13px 18px}

.award-group{margin:50px 0 70px}.award-group-title{color:var(--accent);font-size:clamp(34px,4vw,58px);margin:0 0 22px}.award h3{font:600 clamp(28px,3vw,43px)/var(--heading-leading,1.12) var(--display);margin:10px 0 15px;overflow-wrap:anywhere}.award-source{margin-top:14px}

/* Crisp dropdown carets and upright poster movement. */
.filters .filter-control{position:relative;display:block;flex:1}.filters .filter-control select{width:100%;background-image:none!important;padding-right:34px;cursor:pointer}.filter-chevron{position:absolute;right:15px;top:50%;width:8px;height:8px;border-right:2px solid var(--paper);border-bottom:2px solid var(--paper);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.hero .textlink span{font-size:16px}.award-source{gap:8px}.award-source span{display:inline-block}
.textlink:hover span,.textlink:focus-visible span{transform:rotate(45deg)}
#cinema.leaving{animation-duration:.25s}.poster-tile{animation-duration:1.05s}#cinema.transition .poster-tile{animation-duration:1.05s}
@keyframes posterApproach{from{opacity:0;transform:translate(-50%,-50%) translate3d(var(--x),calc(var(--y) + 4vh),var(--z-from))}15%{opacity:1}to{opacity:1;transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z-to))}}

/* One central feature poster, framed by smaller posters at varied depths. */
#cinema.transition .poster-tile[data-depth=near]{width:min(11.5cqw,24vh)}
#cinema.transition .poster-tile[data-depth=middle]{width:min(10cqw,21vh)}
#cinema.transition .poster-tile[data-depth=far]{width:min(8.5cqw,17vh)}
#cinema.transition .poster-tile[data-featured=true]{width:min(17cqw,32vh)}
@media(max-width:600px){#cinema.transition .poster-tile[data-depth=near]{width:24cqw}#cinema.transition .poster-tile[data-depth=middle]{width:19cqw}#cinema.transition .poster-tile[data-depth=far]{width:15cqw}#cinema.transition .poster-tile[data-featured=true]{width:35cqw}}

/* Reserve a frame while lazy images load, then show their full native ratio. */
.post-media{display:block;aspect-ratio:16/9;overflow:hidden;background:#171a17}
.post-media.loaded{aspect-ratio:auto;overflow:visible}
.post-media img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;margin:0}
.post-media:not(.loaded) img{opacity:0}

.post h3{overflow-wrap:break-word;word-break:normal}

#cinema #skip{position:absolute;right:24px;bottom:24px;z-index:100;pointer-events:auto;min-height:44px;padding:12px 18px;border:1px solid #ffffff99;border-radius:4px;background:#111e;color:#fff;font:600 14px var(--body);cursor:pointer}#cinema #skip:focus-visible{outline:3px solid var(--accent);outline-offset:4px}@media(max-width:600px){#cinema #skip{right:16px;bottom:16px}}

/* Cover the initial load and reveal destinations only after the transition. */
#cinema{animation:none}html.intro-pending #cinema[hidden]{display:flex}html.intro-pending #cinema .cinema-frame{opacity:0}

.bio-banner{width:100%;height:min(38vw,500px);max-height:500px;overflow:hidden}.bio-banner img{display:block;width:100%;height:100%;object-fit:cover}.bio-story{padding-top:64px}.bio-copy{max-width:820px;margin:0 auto;line-height:1.9}.bio-copy p{margin:0 0 1.4em}.bio-copy h2{font-size:clamp(26px,3vw,42px);margin:2em 0 .7em;line-height:1.2}@media(max-width:700px){.bio-banner{height:60vw;max-height:300px}.bio-story{padding-top:36px}}

/* Global heading scale: preserve a strict hierarchy on each screen size. */
:root{--global-h2:var(--h2-desktop,48px);--global-h3:var(--h3-desktop,32px);--global-h1:max(var(--title-desktop,clamp(56px,7vw,110px)),calc(var(--global-h2) + 4px))}#main h1{font-size:var(--global-h1)!important}#main h2{font-size:var(--global-h2)!important}#main h3{font-size:var(--global-h3)!important}#main h4{font-size:calc(var(--global-h3)*.85)!important}#main h5{font-size:calc(var(--global-h3)*.72)!important}#main h6{font-size:calc(var(--global-h3)*.61)!important}@media(max-width:900px){:root{--global-h2:var(--h2-mobile,32px);--global-h3:var(--h3-mobile,24px);--global-h1:max(var(--title-mobile,clamp(40px,9vw,70px)),calc(var(--global-h2) + 4px))}}

:root{--body-copy:var(--body-desktop,18px)}#main :is(.post p,.aside p,.prose,.prose>p,.bio-copy p,.page-title p,.award p,.contact p){font-size:var(--body-copy);line-height:var(--body-leading,1.8)}@media(max-width:900px){:root{--body-copy:var(--body-mobile,16px)}}

header.compact-nav{height:var(--header-mobile,85px)}header.compact-nav .menu{display:block;background:none;color:var(--paper);border:0;font-size:25px;flex:none}header.compact-nav .language{margin-left:auto}header.compact-nav #navigation{display:none;position:fixed;top:var(--mobile-menu-top,var(--header-mobile,85px));left:0;right:0;z-index:5;background:var(--bg);padding:20px 7%;border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));max-height:calc(100dvh - var(--mobile-menu-top,var(--header-mobile,85px)));overflow:auto}header.compact-nav #navigation.open{display:grid}header.compact-nav #navigation a{white-space:normal;overflow-wrap:anywhere}header.compact-nav .brand{min-width:0;overflow-wrap:anywhere}

:root{--kicker-size:var(--kicker-desktop,12px)}#main .eyebrow,#main .post-tag{font-size:var(--kicker-size)}@media(max-width:900px){:root{--kicker-size:var(--kicker-mobile,12px)}}

/* Anchor the mobile dropdown to the header, not the viewport. */
#site-header{position:relative;z-index:20;background:var(--bg)}
header.compact-nav{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px}
header.compact-nav .brand{white-space:normal;font-size:clamp(17px,4.7vw,23px);line-height:1.1;overflow-wrap:normal}
header.compact-nav .brand span{font-size:9px;letter-spacing:1px;line-height:1.6}
header.compact-nav .custom-logo{max-width:100%;height:auto;max-height:52px}
header.compact-nav .menu{min-width:44px;min-height:44px;touch-action:manipulation}
header.compact-nav #navigation{top:var(--mobile-menu-top,var(--header-mobile,85px));z-index:21;overscroll-behavior:contain}
header.compact-nav #navigation a{min-height:44px;display:flex;align-items:center}
#cinema .poster-tile[hidden]{display:none}


/* Fixed flyout uses the measured viewport edge of the header. */
@media(max-width:900px){#site-header #navigation{position:fixed;top:var(--mobile-menu-top,var(--header-mobile,85px));left:0;right:0;max-height:calc(100dvh - var(--mobile-menu-top,var(--header-mobile,85px)));overflow-y:auto;z-index:21}}

/* Keep transition labels and the skip control in one mobile flow. */
#cinema .cinema-controls{display:contents}
@media(max-width:900px){
  #cinema .cinema-controls{
    position:absolute;
    left:max(20px,env(safe-area-inset-left));
    right:max(20px,env(safe-area-inset-right));
    bottom:max(16px,env(safe-area-inset-bottom));
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
    z-index:5;
    pointer-events:none;
  }
  #cinema.transition .transition-caption{
    position:static;
    width:100%;
    max-width:none;
    margin:0;
    font-size:clamp(32px,7vw,54px);
    line-height:1.2;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  #cinema #skip{
    position:static;
    flex:none;
    max-width:100%;
    min-height:44px;
    text-align:left;
    touch-action:manipulation;
  }
}
