/* Red motion study: abstract optical rhythm, with quiet work pages. */
:root{--paper:#171514;--ink:#f2e7cc;--line:#51423a;--acid:#ec482d;--motion-red:#a52920;--motion-cream:#f2e7cc}
body.retro-home{padding:16px;background:#e1d6be;color:var(--ink)}
.retro-home>header{background:#a52920;background-image:none;color:var(--motion-cream);padding:25px 4vw;border-bottom:1px solid #f2e7cc40}
.retro-home>main,.retro-home>footer{background:#171514;background-image:none}
.retro-home header .brand{font-size:13px;letter-spacing:.03em;font-weight:500}
.retro-home header .nav{font-size:10px;letter-spacing:.12em}
.retro-home .hero{background:#a52920;color:#f2e7cc;padding:25px 4vw 30px;min-height:700px;min-height:calc(94svh - 88px);display:flex;flex-direction:column;isolation:isolate;overflow:hidden}
.retro-home .hero:before{background:radial-gradient(ellipse at 32% 20%,#db513b25,transparent 65%);mix-blend-mode:normal}
.retro-home .hero:after{opacity:.075;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath d='M0 0h180v180H0z' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;mix-blend-mode:soft-light}
.retro-home .eyebrow{z-index:2;font-size:9px;letter-spacing:.12em;color:#f2e7ccc9}
.retro-home .eyebrow .dot{background:#f2e7cc;width:5px;height:5px}
.retro-home .motion-score{position:absolute;top:55px;right:3vw;width:min(58vw,820px);height:58%;z-index:0;pointer-events:none;color:#f2e7cc;overflow:visible}
.motion-score .score-line{fill:none;stroke:currentColor;stroke-width:1;opacity:.5}
.motion-score .score-orbit{transform-origin:470px 220px;animation:score-orbit 28s linear infinite}
.motion-score .score-pulse{transform-box:fill-box;transform-origin:center;animation:score-pulse 7s ease-in-out infinite}
.motion-score .score-dot{animation:score-travel 11s cubic-bezier(.65,0,.35,1) infinite}
.motion-score .score-ticks{stroke:currentColor;stroke-width:2;stroke-dasharray:2 18;opacity:.6}
.motion-score .score-short{stroke-dasharray:90 800;animation:score-trace 12s ease-in-out infinite}
.motion-score .score-satellite{transform-origin:470px 220px;animation:score-orbit 19s linear infinite reverse}
@keyframes score-orbit{to{transform:rotate(360deg)}}
@keyframes score-pulse{0%,22%,100%{transform:scale(.8)}45%,65%{transform:scale(1.12)}}
@keyframes score-travel{0%,18%,100%{transform:translateX(0)}45%,65%{transform:translateX(220px)}}
@keyframes score-trace{0%,20%,100%{stroke-dashoffset:0}55%,75%{stroke-dashoffset:-450}}
.retro-home .wordmark{max-width:none;width:100%;margin:auto 0 28px;padding:230px 0 0;text-align:left;position:relative;z-index:1}
.retro-home .wordmark .echo{display:none}
.retro-home .wordmark h1{font-family:'Helvetica Neue',Arial,sans-serif;font-size:clamp(70px,13.3vw,220px);font-weight:500;letter-spacing:-.075em;line-height:.9;clip-path:none;transform:none;text-shadow:none;background:none;margin:0;padding:0;white-space:nowrap}
.retro-home .wordmark .archive{font-family:'Courier New',monospace;font-size:9px;letter-spacing:.32em;margin:20px 0 0;padding:0;color:#f2e7ccbd}
.retro-home .intro{z-index:2;position:relative;padding:22px 0 0;border-top:1px solid #f2e7cc55;grid-template-columns:1fr 1fr 1fr;gap:30px;color:#f2e7cc}
.retro-home .intro .hide-mobile{font-size:8px;line-height:1.7;letter-spacing:.12em}
.retro-home .intro .statement{font-size:12px;line-height:1.6;max-width:300px;letter-spacing:0;text-transform:none}
.retro-home .intro .scroll{font-size:9px;letter-spacing:.06em;text-align:right;align-self:end}
.retro-home .biography{position:relative;padding:85px 5vw;border-bottom:1px solid #51423a}
.retro-home .bio-label{color:#ee654d;font-size:9px;letter-spacing:.1em}
.retro-home .bio-copy h2{font-size:25px;color:#f2e7cc}
.retro-home .bio-copy h2 span{color:#d4c5b0;font-size:8px}
.retro-home .bio-copy p{color:#c1b5a4;font-size:11px;line-height:1.9}
.retro-home .bio-photo{position:relative}
.retro-home .bio-photo:before{content:'';position:absolute;width:14px;height:14px;border:1px solid #ee654d;border-radius:50%;left:-28px;top:0}
.retro-home .work{padding:55px 4vw 85px;background:#171514}
.retro-home .sectionline{border-top:0;border-bottom:1px solid #51423a;padding:0 0 20px;gap:20px}
.retro-home .sectionline>span{font-size:9px;color:#ef765d;letter-spacing:.1em}
.retro-home .filters button{font-size:9px;letter-spacing:.035em;color:#cbbdaa;border-radius:0}
.retro-home .filters button.active{background:#a52920;color:#f2e7cc;border-color:#a52920}
.retro-home .grid{gap:32px 24px;padding-top:28px}
.retro-home .project{position:relative}
.retro-home .project:after{content:'';position:absolute;right:13px;top:13px;width:7px;height:7px;background:#f2e7cc;border-radius:50%;opacity:0;transform:scale(.2);transition:opacity .25s,transform .25s;pointer-events:none}
.retro-home .project:hover:after,.retro-home .project:focus-visible:after{opacity:1;transform:scale(1)}
.retro-home .project:hover .visual{filter:brightness(1.04)}
.retro-home .caption{background:linear-gradient(transparent,#110c0be8);color:#f2e7cc}
.retro-home .caption .meta{color:#d3c4ac}
.retro-home .foot{border-top:1px solid #51423a;color:#bcae9c;padding:25px 4vw;font-size:8px}
.retro-home .draft{display:none}
.retro-home a:focus-visible,.retro-home button:focus-visible{outline-color:#ef765d}
body.retro-project{background:#e1d6be;color:#f2e7cc}
.retro-project main{background:#171514}
.retro-project header{border-bottom:1px solid #58423a;color:#f2e7cc;background:#85271f}
.retro-project .title{background:linear-gradient(transparent,#160d0ce8)}
.retro-project .title p,.retro-project h2,.retro-project .overview-info dt{color:#d68b74}
.retro-project .overview-info dd,.retro-project .synopsis p{color:#ded2bc}
.retro-project footer{border-top:1px solid #58423a;color:#d68b74}
.retro-project button:focus-visible,.retro-project a:focus-visible{outline-color:#ee654d}
@media(max-width:650px){body.retro-home{padding:8px}.retro-home>header{padding:20px 5vw}.retro-home .hero{padding:22px 5vw 26px;min-height:640px;min-height:calc(92svh - 65px)}.retro-home .eyebrow{font-size:7px;gap:12px}.retro-home .motion-score{width:95%;height:45%;top:65px;right:-13%}.retro-home .wordmark{padding-top:210px;margin-bottom:26px}.retro-home .wordmark h1{font-size:15vw}.retro-home .wordmark .archive{font-size:8px;margin-top:15px}.retro-home .intro{grid-template-columns:1fr 1fr;gap:18px;padding-top:20px}.retro-home .intro .statement{grid-column:1;font-size:11px}.retro-home .intro .scroll{grid-column:2;font-size:8px}.retro-home .biography{padding:50px 5vw}.retro-home .bio-copy p{font-size:11px}.retro-home .work{padding:35px 5vw 55px}.retro-home .sectionline{align-items:flex-start;flex-direction:column;gap:14px}.retro-home .filters{gap:2px}.retro-home .filters button{padding:7px 8px;font-size:8px}.retro-home .grid{gap:20px 14px}.retro-home .foot{font-size:7px}}
@media(prefers-reduced-motion:reduce){.motion-score *{animation:none!important}.retro-home .project:after{transition:none}}
/* Lo-fi optical film study: printed colour, soft registration, stepped rhythm. */
body.retro-home{background:#cfc5a9}
.retro-home>header{background:#ad321b}
.retro-home .hero{background:#ad321b}
.retro-home .hero:before{background:radial-gradient(ellipse at 8% 24%,#e0782433,transparent 60%),linear-gradient(100deg,#92291c22,transparent 55%,#711c2520)}
.retro-home .hero:after{opacity:.24;mix-blend-mode:soft-light;background-size:120px 120px}
.retro-home .motion-score{width:min(63vw,900px);height:56%;top:60px;right:3vw;filter:url(#optical-print);opacity:.95;overflow:visible}
.lofi-bars{animation:lofi-slip 8s steps(3,end) infinite;transform-origin:450px 200px}
.lofi-discs{animation:lofi-bob 10s steps(4,end) infinite}
.lofi-tracks{animation:lofi-track 14s steps(5,end) infinite}
.lofi-frame{animation:lofi-weave 5s steps(2,end) infinite}
@keyframes lofi-slip{0%,25%,100%{transform:translateX(0)}50%,70%{transform:translateX(18px)}}
@keyframes lofi-bob{0%,22%,100%{transform:translateY(0)}44%,70%{transform:translateY(14px)}}
@keyframes lofi-track{0%,25%,100%{transform:translateY(0)}50%,75%{transform:translateY(-20px)}}
@keyframes lofi-weave{0%,100%{transform:translate(0,0)}50%{transform:translate(.8px,-.7px)}}
.retro-home .wordmark h1{font-family:'Cooper Black','Bookman Old Style',Georgia,serif;font-size:clamp(64px,12.6vw,205px);font-weight:900;letter-spacing:-.075em;line-height:.88;text-shadow:2px 1px 0 #153c5a88,-1px -.5px 0 #f6c98d66;transform:rotate(-1.1deg);transform-origin:left bottom;filter:url(#letter-print)}
.retro-home .wordmark .archive{font-family:'Courier New',monospace;font-weight:bold;letter-spacing:.22em;color:#f4dfb7;margin-top:24px}
.retro-home header .brand{font-family:Georgia,serif;font-weight:bold;font-size:15px;letter-spacing:-.04em}
.retro-home .eyebrow,.retro-home .intro .hide-mobile,.retro-home .intro .scroll,.retro-home .nav{font-family:'Courier New',monospace;font-weight:bold;letter-spacing:.06em}
.retro-home .intro{border-top:1px solid #f4dfb766}
.retro-home .biography{background:#191a16}
.retro-home .bio-copy h2{font-family:'Cooper Black','Bookman Old Style',Georgia,serif;font-weight:bold;letter-spacing:-.04em;font-size:30px}
.retro-home .bio-copy h2 span{font-family:'Courier New',monospace;letter-spacing:.05em}
.retro-home .work{background:#191a16}
.retro-home .filters button.active{background:#b33420;border-color:#b33420}
.retro-home .project .visual{border-radius:0;border:0}
.retro-home .caption h2{font-family:'Courier New',monospace;font-weight:bold;letter-spacing:-.05em}
.retro-home .caption .meta{font-size:7px;letter-spacing:0}
.retro-home .arrow{border:none;border-radius:0}
.retro-home .project:after{background:#f5dca9;border-radius:46% 54% 48% 52%}
.retro-project header{background:#922d1d}
.retro-project .title h1{font-family:'Cooper Black','Bookman Old Style',Georgia,serif;font-weight:bold;letter-spacing:-.055em;text-shadow:1px 1px 0 #ac543c55}
.retro-project header,.retro-project dt,.retro-project h2,.retro-project figcaption{font-family:'Courier New',monospace}
@media(max-width:650px){.retro-home .motion-score{width:104%;height:43%;right:-12%;top:70px}.retro-home .wordmark h1{font-size:14vw}.retro-home .wordmark .archive{font-size:9px;margin-top:19px}.retro-home .caption h2{font-size:15px}.retro-home .caption .meta{font-size:6px}}
@media(prefers-reduced-motion:reduce){.lofi-frame,.lofi-bars,.lofi-discs,.lofi-tracks{animation:none!important}}
/* Refine hierarchy; extend the optical choreography beyond the corner. */
.retro-home .caption h2,.retro-project .title h1{font-family:Arial,'Helvetica Neue',sans-serif;font-weight:500;letter-spacing:-.04em;text-shadow:none}
.retro-home .caption h2{font-size:clamp(15px,1.7vw,25px)}
.retro-home .wordmark h1{font-size:clamp(60px,10.7vw,175px);letter-spacing:-.065em;transform:rotate(-.5deg);text-shadow:1px 1px 0 #153c5a66}
.retro-home .wordmark{margin-bottom:32px;padding-top:270px}
.retro-home .wordmark .archive{font-family:'Courier New',monospace;font-size:clamp(13px,1.45vw,21px);font-weight:400;letter-spacing:.5em;margin-top:26px;padding-left:4px;color:#f4dfb7}
.retro-home .motion-score{width:100%;max-width:none;height:73%;top:2%;right:0;opacity:.85}
.retro-home .motion-score .lofi-bars{opacity:.6}
.lofi-sweep{fill:none;stroke:#eed5ae;stroke-width:2;stroke-dasharray:180 1000;animation:wide-sweep 18s ease-in-out infinite;opacity:.5}
.lofi-wander{animation:wide-wander 21s cubic-bezier(.45,0,.55,1) infinite;transform-box:fill-box;transform-origin:center}
.lofi-left-score{transform-origin:100px 225px;animation:left-score 24s linear infinite}
@keyframes wide-sweep{0%,12%,100%{stroke-dashoffset:140}65%,80%{stroke-dashoffset:-850}}
@keyframes wide-wander{0%,100%{transform:translate(0,0)}30%{transform:translate(320px,-90px)}65%{transform:translate(510px,45px)}85%{transform:translate(110px,95px)}}
@keyframes left-score{to{transform:rotate(360deg)}}
.retro-home .biography{overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 95% 10%,#6d281c22,transparent 50%),#191a16}
.retro-home .bio-copy,.retro-home .bio-photo{position:relative;z-index:1}
.bio-motion{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;color:#bf5739;opacity:.24}
.bio-motion:before{content:'';position:absolute;width:52vw;height:52vw;border:1px solid #ab684750;border-radius:50%;left:-33vw;top:15%;box-shadow:0 0 0 35px #ab68470a,0 0 0 80px #ab684708}
.bio-motion svg{position:absolute;width:100%;height:100%;inset:0}
.bio-motion .bio-orbit{transform-origin:850px 300px;animation:bio-orbit 65s linear infinite}
.bio-motion .bio-drift{animation:bio-drift 28s ease-in-out infinite}
@keyframes bio-orbit{to{transform:rotate(360deg)}}
@keyframes bio-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(45px)}}
@media(max-width:650px){.retro-home .wordmark h1{font-size:12.6vw}.retro-home .wordmark{padding-top:245px;margin-bottom:28px}.retro-home .wordmark .archive{font-size:13px;letter-spacing:.4em;margin-top:23px}.retro-home .motion-score{width:150%;height:58%;right:-31%;top:9%}.retro-home .caption h2{font-size:16px}.bio-motion{opacity:.16}}
@media(prefers-reduced-motion:reduce){.lofi-sweep,.lofi-wander,.lofi-left-score,.bio-motion *{animation:none!important}}
@media(min-width:651px){.retro-home .motion-score{height:58%;top:1%;width:100%}}

/* Personal films — concise director statements */
.retro-project .director-statement{display:grid;grid-template-columns:minmax(125px,.7fr) minmax(0,2fr);gap:35px;padding:34px 0 40px;margin:34px 0 8px;border-top:1px solid #80705a66}
.retro-project .director-statement h2{font:8px/1.8 'Courier New',monospace;letter-spacing:.12em;color:#c6ac83;margin:3px 0 0}
.retro-project .statement-copy{max-width:760px}
.retro-project .statement-copy p{font-size:11px;line-height:1.95;letter-spacing:.01em;text-transform:none;color:#d1c5b0;margin:0 0 18px}
.retro-project .statement-copy p:last-child{margin-bottom:0}
@media(max-width:650px){.retro-project .director-statement{grid-template-columns:1fr;gap:19px;padding:26px 0 30px;margin-top:26px}.retro-project .statement-copy p{font-size:10px;line-height:1.95}.retro-project .director-statement h2{font-size:8px}}

/* Park festival list: balanced columns rather than a long single stack. */
.retro-project .park-honours .park-selections ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.retro-project .park-honours .park-selections li{padding:7px 0;min-width:0}
@media(max-width:650px){.retro-project .park-honours .park-selections ul{grid-template-columns:1fr;gap:0}}

/* Compact festival listings on Personal film pages. */
.retro-project .compact-honours{margin-top:32px;gap:24px 38px}
.retro-project .compact-honours h2{margin-bottom:12px}
.retro-project .compact-honours li{padding:6px 0}
.retro-project .compact-honours .compact-festival-section{grid-column:1/-1}
.retro-project .compact-honours .compact-festival-section ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
@media(max-width:650px){.retro-project .compact-honours{margin-top:26px;gap:22px}.retro-project .compact-honours .compact-festival-section ul{grid-template-columns:1fr;gap:0}}

/* Contact sheet and a continuous, wide-ranging cover choreography. */
.retro-home .intro{display:flex;justify-content:flex-end;border-top:0;padding-top:4px;min-height:20px}
.retro-home .intro .scroll{grid-column:auto}
.retro-home .motion-score{filter:none}
.lofi-frame{transform-origin:400px 210px;animation:cover-crossing 18s cubic-bezier(.45,0,.55,1) infinite;will-change:transform}
.lofi-bars{animation:cover-bars 12s ease-in-out infinite}
.lofi-discs{transform-origin:355px 100px;animation:cover-discs 13s ease-in-out infinite}
.lofi-tracks{animation:cover-tracks 15s ease-in-out infinite}
.lofi-left-score{animation:cover-orbit 22s linear infinite;transform-origin:100px 225px}
.lofi-sweep{stroke-dasharray:270 1000;animation:cover-sweep 14s ease-in-out infinite}
.lofi-wander{animation:cover-wander 17s ease-in-out infinite}
@keyframes cover-crossing{0%,100%{transform:translate(-220px,4px) rotate(-8deg) scale(.92)}25%{transform:translate(-65px,-28px) rotate(1deg) scale(1.02)}50%{transform:translate(145px,14px) rotate(8deg) scale(.96)}75%{transform:translate(-20px,35px) rotate(-2deg) scale(1.04)}}
@keyframes cover-bars{0%,100%{transform:translate(-24px,0)}50%{transform:translate(65px,20px)}}
@keyframes cover-discs{0%,100%{transform:translate(0,-20px) rotate(-7deg)}50%{transform:translate(36px,34px) rotate(13deg)}}
@keyframes cover-tracks{0%,100%{transform:translateY(-18px)}50%{transform:translateY(35px)}}
@keyframes cover-orbit{0%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(430px,-60px) rotate(180deg)}100%{transform:translate(0,0) rotate(360deg)}}
@keyframes cover-sweep{0%,100%{stroke-dashoffset:260}50%{stroke-dashoffset:-950}}
@keyframes cover-wander{0%,100%{transform:translate(-80px,-20px)}35%{transform:translate(450px,-100px)}65%{transform:translate(540px,70px)}}
.contact-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;padding:65px 6vw 75px;background:#21221b;color:#eee1c1;border-top:1px solid #84745566;scroll-margin-top:25px}
.contact-index{font:8px/1.6 'Courier New',monospace;letter-spacing:.12em;color:#c7a67e}
.contact-heading h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(36px,6vw,80px);font-weight:400;letter-spacing:-.055em;line-height:1.1;margin:18px 0 0}
.contact-list{min-width:0}
.contact-item{display:grid;grid-template-columns:90px minmax(0,1fr) 18px;gap:18px;align-items:baseline;border-bottom:1px solid #a3947655;padding:20px 0;text-transform:none}
.contact-item:first-child{padding-top:0}
.contact-item>span{font:9px/1.7 'Courier New',monospace;color:#baa98a}
.contact-item strong{font-size:clamp(12px,1.3vw,19px);font-weight:400;letter-spacing:.01em;overflow-wrap:anywhere;user-select:text}
.contact-item i{font-style:normal;font-size:20px;color:#d8a77e}
a.contact-item:hover{color:#e7b38a}
header{gap:18px}
.language-switch{display:flex;align-items:center;gap:7px;white-space:nowrap;font:9px/1.3 'Courier New',monospace;letter-spacing:.03em}
.language-switch a{padding:6px 7px;opacity:.65;border:1px solid transparent;text-decoration:none}
.language-switch a[aria-current="true"]{opacity:1;border-color:currentColor}
.retro-home>header .language-switch{margin-left:0}
.retro-project header .language-switch{margin-left:0}
.retro-project header nav{margin-left:auto}
html[lang="zh-CN"] .title h1,html[lang="zh-CN"] .caption h2{letter-spacing:.025em;line-height:1.2}
html[lang="zh-CN"] .statement-copy p,html[lang="zh-CN"] .synopsis p,html[lang="zh-CN"] .dj-bio-copy p{line-height:1.95;letter-spacing:.04em}
@media(max-width:650px){.retro-home .intro{display:flex;justify-content:flex-end}.retro-home .intro .scroll{grid-column:auto}.contact-section{grid-template-columns:1fr;gap:30px;padding:40px 5vw 45px}.contact-heading h2{font-size:43px;margin-top:12px}.contact-item{grid-template-columns:65px minmax(0,1fr) 14px;gap:12px;padding:17px 0}.contact-item strong{font-size:12px}.contact-item>span{font-size:8px}.language-switch{font-size:8px;gap:2px}.language-switch a{padding:5px}.retro-home>header{flex-wrap:wrap;gap:12px}.retro-home .nav{gap:14px;margin-left:auto}.retro-project header{flex-wrap:wrap;gap:12px}.retro-project header nav{gap:14px}.retro-project header .language-switch{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.motion-score *{animation:none!important;will-change:auto}}

/* Independent parts: asynchronous bars, counter-moving tracks and orbiting discs. */
.lofi-frame,.lofi-bars,.lofi-discs,.lofi-tracks{animation:none;will-change:auto}
.lofi-bars>path{transform-box:fill-box;transform-origin:center;animation:bar-independent var(--period,13s) cubic-bezier(.42,0,.58,1) var(--delay,0s) infinite;will-change:transform}
@keyframes bar-independent{0%,100%{transform:translate(0,0) rotate(0deg) scaleX(1)}30%{transform:translate(var(--dx),var(--dy)) rotate(var(--tilt)) scaleX(.62)}65%{transform:translate(calc(var(--dx) * -.55),calc(var(--dy) * -1)) rotate(calc(var(--tilt) * -.6)) scaleX(1.13)}}
.lofi-tracks>path{transform-box:fill-box;transform-origin:center;animation:track-independent 19s ease-in-out infinite}
.lofi-tracks>path:nth-child(3n+1){--slide:-75px;animation-duration:17s;animation-delay:-3s}
.lofi-tracks>path:nth-child(3n+2){--slide:100px;animation-duration:23s;animation-delay:-8s}
.lofi-tracks>path:nth-child(3n){--slide:-45px;animation-duration:14s;animation-delay:-5s}
@keyframes track-independent{0%,100%{transform:translate(0,-15px) scaleY(.9)}50%{transform:translate(var(--slide),55px) scaleY(1.15)}}
.lofi-discs ellipse{transform-box:fill-box;transform-origin:center;animation:disc-independent 14s ease-in-out infinite}
.lofi-discs ellipse:nth-child(1){--disc-x:-100px;--disc-y:55px;animation-delay:-2s;animation-duration:17s}
.lofi-discs ellipse:nth-child(2){--disc-x:75px;--disc-y:-45px;animation-delay:-7s;animation-duration:13s}
.lofi-discs ellipse:nth-child(3){--disc-x:140px;--disc-y:80px;animation-delay:-4s;animation-duration:19s}
@keyframes disc-independent{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(var(--disc-x),var(--disc-y)) scale(.75)}}
.language-switch{position:fixed;right:24px;bottom:24px;z-index:1000;display:flex;align-items:center;gap:5px;padding:7px 9px;background:#24251f;color:#f2e5c8;border:1px solid #b6a17c;box-shadow:0 4px 18px #0003;font:11px/1.3 'Courier New',monospace}
.language-switch>span{color:#a38c6a;font-size:10px}
.language-switch a{opacity:.8;padding:7px 8px;border:1px solid transparent}
.language-switch a[aria-current="true"]{background:#a53924;color:#fff1d0;border-color:#bd6e4b;opacity:1}
.language-switch a:hover{opacity:1;color:#ffdf9c}
@media(max-width:650px){.language-switch{right:15px;bottom:15px;font-size:10px;padding:5px 7px}.language-switch a{padding:6px 7px}}
@media(prefers-reduced-motion:reduce){.motion-score *{animation:none!important;will-change:auto}}

/* Edge-to-edge opening and a full-height About spread. */
body.retro-home{padding:0;--home-header-height:72px;background:#191a16}
.retro-home>header{height:var(--home-header-height);box-sizing:border-box;justify-content:space-between;padding:18px 4vw;flex-wrap:nowrap}
.retro-home>header .brand{font-size:11px;font-family:Georgia,'Times New Roman',serif;letter-spacing:.015em;white-space:nowrap}
.retro-home .hero{box-sizing:border-box;min-height:calc(100vh - var(--home-header-height));min-height:calc(100svh - var(--home-header-height));padding-bottom:28px}
.retro-home .wordmark{padding-top:clamp(120px,23svh,270px);margin-top:auto}
.retro-home .biography{box-sizing:border-box;min-height:100vh;min-height:100svh;align-content:center;padding-top:65px;padding-bottom:65px}
.retro-home .bio-photo{max-width:460px}
.retro-home .bio-photo img{max-height:70svh;object-fit:contain}
/* Film uses the same numbered section rhythm as Music. */
.film-group{grid-column:1/-1;min-width:0;margin:0 0 30px}
.film-group-head{padding:5px 0 22px}
.film-group-head h3{font-size:20px;font-weight:400;letter-spacing:-.025em;margin:0}
.film-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
.film-group .project{grid-column:auto}
.film-group .project .visual{aspect-ratio:1.35}
.film-group:first-child .project:first-child{grid-column:1/-1}
.film-group:first-child .project:first-child .visual{aspect-ratio:16/9}
@media(max-width:650px){body.retro-home{padding:0;--home-header-height:64px}.retro-home>header{padding:18px 5vw;gap:14px}.retro-home>header .brand{font-size:10px}.retro-home .nav{gap:15px}.retro-home .hero{min-height:calc(100svh - var(--home-header-height));padding-bottom:26px}.retro-home .wordmark{padding-top:clamp(150px,29svh,245px)}.retro-home .biography{padding-top:45px;padding-bottom:45px}.retro-home .bio-photo{max-width:360px}.film-group{margin-bottom:22px}.film-group-head{padding-bottom:18px}.film-group-head h3{font-size:18px}.film-cards{grid-template-columns:1fr;gap:20px}.film-group .project .visual{aspect-ratio:16/9}.film-group:first-child .project:first-child{grid-column:auto}}

/* Each Film category opens with its own full-width lead image. */
.film-group .project:first-child{grid-column:1/-1}
.film-group .project:first-child .visual{aspect-ratio:16/9}

/* Main section labels share one position, typographic scale and accent. */
.retro-home .biography{grid-template-rows:auto 1fr;align-content:stretch;row-gap:34px;padding-left:4vw;padding-right:4vw}
.retro-home .bio-section-heading{grid-column:1/-1;position:relative;z-index:1;align-self:start}
.retro-home .bio-copy,.retro-home .bio-photo{align-self:center}
.retro-home .bio-section-heading,.retro-home .sectionline>span,.retro-home .contact-index{font:9px/1.6 'Courier New',monospace;letter-spacing:.1em;font-weight:400;color:#ef765d}
@media(max-width:650px){.retro-home .biography{grid-template-rows:auto;row-gap:28px;padding-left:5vw;padding-right:5vw}.retro-home .bio-section-heading,.retro-home .sectionline>span,.retro-home .contact-index{font-size:8px}}

/* Two singles per row; numbered work headings share the About identity. */
.retro-home .release-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:90%;max-width:780px;margin-inline:auto}
.retro-home .film-group-head h3,.retro-home .music-group-head h3{font-family:Arial,'Helvetica Neue',sans-serif;font-weight:500;letter-spacing:-.025em;font-size:20px;line-height:1.2}
@media(max-width:1000px){.retro-home .release-grid{max-width:650px}}
@media(max-width:650px){.retro-home .release-grid{width:90%;max-width:none}.retro-home .film-group-head h3,.retro-home .music-group-head h3{font-size:18px}}

.retro-home .filters button{font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;padding:10px 19px}
@media(max-width:650px){.retro-home .filters button{font-size:12px;padding:9px 16px}}

/* Compact 2 × 2 releases, scaled to the available desktop viewport height. */
.retro-home .release-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:min(90%,520px,max(340px,calc(100svh - 310px)));max-width:520px;gap:20px 24px;margin-inline:auto}
.retro-home .release-index{padding:8px 0;font-size:7px}
.retro-home .release-caption{margin:9px 0 5px}
.retro-home .release-caption h4{font-size:16px;margin-bottom:5px}
.retro-home .release-progress{height:10px}
.retro-home .release-card{padding-bottom:0}
.retro-home .release-status:empty{display:none}
@media(max-width:650px){.retro-home .release-grid{width:85%;max-width:440px;gap:18px 18px}.retro-home .release-index{font-size:6px}.retro-home .release-caption h4{font-size:14px}}

/* Detail-page covers must leave room for the first project information. */
body.retro-project .hero>img{width:100%;height:auto;min-height:0;max-height:58vh;max-height:58svh;object-fit:cover}
@media(max-width:650px){body.retro-project .hero>img{min-height:0;max-height:54vh;max-height:54svh;object-fit:cover}}

/* A shared tonal fade joins each cover to the content, without blurring pixels. */
body.retro-project .hero{isolation:isolate;overflow:hidden;background:#171514}
body.retro-project .hero:after{content:"";position:absolute;left:0;right:0;bottom:0;top:auto;height:clamp(70px,15svh,155px);background:linear-gradient(to bottom,#17151400 0%,#17151433 28%,#171514b8 70%,#171514 100%);z-index:1;pointer-events:none}
body.retro-project .hero>.title{z-index:2;background:linear-gradient(to bottom,transparent,#17151480 65%,#171514 100%)}

/* Contact opens as a complete screen rather than a short closing strip. */


/* Radio durations are rendered immediately; audio loads on demand. */
.radio-player{display:flex;gap:14px;align-items:center;border:1px solid #7a715d88;padding:12px 14px;background:#24251f;color:#eee5cc}
.radio-player .dj-audio{display:none}
.radio-toggle,.radio-mute{border:0;background:none;color:inherit;cursor:pointer;padding:5px;flex-shrink:0}
.radio-toggle{width:28px;font-size:17px}
.radio-mute{font:8px 'Courier New',monospace;min-width:40px}
.radio-timeline{flex:1;min-width:0}
.radio-clock{display:block;font:9px/1.4 'Courier New',monospace;letter-spacing:.03em;margin-bottom:6px;font-variant-numeric:tabular-nums}
.radio-seek{display:block;width:100%;height:10px;margin:0;accent-color:#d29870;cursor:pointer}
.radio-toggle:focus-visible,.radio-mute:focus-visible,.radio-seek:focus-visible{outline:2px solid #d29870;outline-offset:3px}
@media(max-width:650px){.radio-player{gap:8px;padding:10px}.radio-clock{font-size:8px}.radio-toggle{width:23px;font-size:15px}.radio-mute{min-width:32px;font-size:7px}}

/* Park honours: awards left, markets right, selections below. */
.retro-project .park-honours{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.retro-project .park-honours .park-awards{grid-column:auto}
.retro-project .park-honours .park-selections{grid-column:1/-1}
@media(max-width:650px){.retro-project .park-honours{grid-template-columns:1fr}}

/* Keep Music mounted while browsing Film so active audio continues. */
#film-content,#music-content{display:contents}
#film-content[hidden],#music-content[hidden]{display:none!important}
.dj-local-video:not(.has-started)::-webkit-media-controls-current-time-display,.dj-local-video:not(.has-started)::-webkit-media-controls-time-remaining-display{display:none}

body.project-open{overflow:hidden}
.project-frame{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;border:0;z-index:500;background:#171514}
.music-carry-control{position:fixed;right:20px;bottom:20px;z-index:501;background:#24251f;color:#eee5cc;border:1px solid #b49b70;padding:11px 15px;font:9px 'Courier New',monospace;letter-spacing:.06em;cursor:pointer;box-shadow:0 3px 14px #0005}

/* Keep the work index at a comfortable reading scale on wide displays. */
.retro-home .work>.sectionline,
.retro-home .work>.subfilters,
.retro-home .work>.grid{box-sizing:border-box;width:100%;max-width:1160px;margin-inline:auto}
@media(min-width:901px){
 .retro-home .film-cards{gap:28px 24px}
 .retro-home .film-group .project .visual{aspect-ratio:1.5}
 .retro-home .film-group .project:first-child .visual{aspect-ratio:2.05;max-height:54svh}
 .retro-home .score-live .music-art{aspect-ratio:2.65;max-height:46svh}
 .retro-home .score-live .music-caption h4{font-size:clamp(26px,2.5vw,40px)}
}

/* Definite widths prevent the lead image's height cap from narrowing its box. */
.retro-home .film-group .project .visual,
.retro-home .score-live .music-art{width:100%;min-width:100%;box-sizing:border-box}
@media(min-width:651px){
 .retro-home .biography{
  padding-inline:max(4vw,calc((100% - 1160px)/2));
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  column-gap:clamp(36px,5vw,80px);
 }
 .retro-home .bio-copy{width:100%;max-width:560px;min-width:0}
 .retro-home .bio-photo{width:100%;max-width:460px;min-width:0;margin:0}
}

/* Detail pages share the index's restrained, centered viewing width. */
body.retro-project>main{box-sizing:border-box;width:100%;max-width:1160px;margin-inline:auto}
@media(min-width:651px){
 body.retro-project>main>header,
 body.retro-project .content,
 body.retro-project>main>footer{padding-inline:clamp(26px,4vw,56px)}
 body.retro-project .hero>.title{padding-left:clamp(26px,4vw,56px);padding-right:clamp(26px,4vw,56px)}
 body.retro-project .hero>.title h1{font-size:clamp(26px,3vw,44px)}
 body.retro-project .hero>img{width:100%;min-width:100%;max-height:54svh}
}

/* Dark gutters are part of the same page, with restrained mechanical motion. */
body.retro-project{background:#191a16}
.edge-motion{display:none;position:fixed;top:88px;bottom:30px;width:max(0px,calc((100vw - 1160px)/2 - 32px));z-index:15;pointer-events:none;overflow:hidden;color:#ac9470;opacity:.23;mask-image:linear-gradient(transparent,#000 12%,#000 86%,transparent)}
.edge-motion-left{left:10px}
.edge-motion-right{right:10px;color:#b45f43;transform:scaleX(-1)}
.edge-motion svg{display:block;width:100%;height:100%}
.edge-motion-right svg{transform:translateY(-3%)}
.edge-track{transform-box:fill-box;transform-origin:center;animation:edge-shift var(--time,23s) cubic-bezier(.65,0,.35,1) var(--delay,0s) infinite}
.edge-motion-right .edge-track{animation-direction:reverse}
.edge-turn{transform-box:fill-box;transform-origin:center;animation:edge-turn 37s steps(4,end) -11s infinite}
.retro-home .edge-motion{opacity:0;transition:opacity .7s}
.retro-home.has-side-motion .edge-motion{opacity:.23}
@keyframes edge-shift{0%,14%,100%{transform:translate(0,0)}40%,58%{transform:translate(var(--dx,0px),var(--dy,25px))}76%,84%{transform:translate(calc(var(--dx,0px) * -.5),calc(var(--dy,25px) * .3))}}
@keyframes edge-turn{0%,15%{transform:rotate(0)}65%,100%{transform:rotate(90deg)}}
@media(min-width:1360px){.edge-motion{display:block}}
@media(prefers-reduced-motion:reduce){.edge-motion *{animation:none!important}.retro-home .edge-motion{transition:none}}

/* One continuous surface, including the space around the centered project. */
body.retro-project{background:#171514;padding-top:0;padding-bottom:0}
body.retro-project>main,body.retro-project .content,body.retro-project>main>footer{background:#171514;border:0;box-shadow:none}

/* Draw transport and navigation symbols rather than relying on emoji fonts. */
.retro-home .arrow svg{display:block;width:20px;height:20px}
.radio-toggle>span,.release-play{display:inline-flex;align-items:center;justify-content:center}
.radio-toggle>span{width:18px;height:20px}
.radio-toggle>span:before,.release-play:before{content:'';display:block;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid currentColor;margin-left:2px}
.radio-toggle[aria-pressed="true"]>span:before,.release-cover[aria-pressed="true"] .release-play:before{width:10px;height:12px;border:0;border-left:3px solid currentColor;border-right:3px solid currentColor;margin-left:0}

/* Keep the editorial composition on phones, with a smaller type scale. */
@media(max-width:650px){
 .retro-home .hero{overflow:hidden}
 .retro-home .motion-score{width:94%;height:48%;right:3%;top:8%}
 .retro-home .wordmark{padding-top:0;margin-top:auto}
 .retro-home .biography{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:18px;row-gap:24px;padding:30px 5vw;min-height:100svh}
 .retro-home .bio-section-heading{grid-column:1/-1}
 .retro-home .bio-copy{min-width:0;width:100%;max-width:none;align-self:center}
 .retro-home .bio-copy h2{font-size:clamp(18px,5vw,25px);margin-bottom:14px}
 .retro-home .bio-copy p{font-size:10px;line-height:1.65;margin-bottom:16px}
 .retro-home .bio-copy h2 span{font-size:6px;line-height:1.6;letter-spacing:0}
 .retro-home .bio-photo{width:100%;max-width:none;min-width:0;margin:0;align-self:center}
 .retro-home .bio-photo:before{width:8px;height:8px;left:-13px}
 .retro-home .bio-photo img{width:100%;height:auto;max-height:none}
 .retro-home .sectionline{flex-direction:row;align-items:center;gap:10px}
 .retro-home .filters button{font-size:11px;padding:8px 12px}
 .retro-home .film-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
 .retro-home .film-group .project:first-child{grid-column:1/-1}
 .retro-home .film-group .project .visual{aspect-ratio:1.4}
 .retro-home .film-group .project:first-child .visual{aspect-ratio:1.85}
 .retro-home .caption{padding:32px 10px 10px;gap:6px}
 .retro-home .caption h2{font-size:clamp(10px,2.8vw,14px);line-height:1.15;letter-spacing:-.025em}
 .retro-home .caption .meta{font-size:5.5px;line-height:1.5}
 .retro-home .project:first-child .caption h2{font-size:17px}
 .retro-home .arrow svg{width:13px;height:13px}
 .retro-home .arrow{width:16px;height:16px;flex-shrink:0}
 .retro-home .dj-video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}
 .retro-home .dj-video-caption{padding-top:9px}
 .retro-home .dj-video-caption h4{font-size:11px;line-height:1.3;margin-top:7px}
 .retro-home .video-index{font-size:6px;letter-spacing:.02em}
 .retro-home .dj-feature{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:14px}
 .retro-home .dj-copy{min-width:0}
 .retro-home .dj-copy h4{font-size:17px}
 .retro-home .dj-description{font-size:10px;line-height:1.65}
 .retro-home .dj-meta,.retro-home .dj-links{font-size:6px;line-height:1.7}
 .radio-player{gap:4px;padding:8px 5px}
 .radio-timeline{min-width:0;flex:1}
 .radio-toggle{width:22px;padding:2px}
 .radio-mute{min-width:24px;padding:2px;font-size:6px}
 .radio-clock{font-size:7px;white-space:nowrap}
 .retro-home .dj-bio{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:12px;padding:20px 14px}
 .retro-home .dj-bio-title{min-width:0;max-width:none;transform:none}
 .retro-home .dj-bio-photo{margin:0;transform:rotate(-3deg)}
 .retro-home .dj-bio-name{font-size:58px;margin-left:0}
 .retro-home .dj-bio-copy{min-width:0;padding:14px 10px;margin:0}
 .retro-home .dj-bio-copy .dj-bio-opening:first-child{font-size:15px;margin-bottom:12px}
 .retro-home .dj-bio-copy p:not(.dj-bio-opening){font-size:10px;line-height:1.65;margin-bottom:12px}
 body.retro-project{padding-inline:4vw}
 body.retro-project .project-overview{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:18px}
 body.retro-project .project-overview .poster-block{width:100%;margin:0}
 body.retro-project .stills{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}

.contact-item i svg{display:block;width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5}
/* Shared phone detail template: poster, two-column facts, full-width synopsis. */
@media(max-width:650px){
 body.retro-project .content{padding:24px 5vw 36px}
 body.retro-project .project-overview,body.retro-project .fairy-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
 body.retro-project .project-overview .poster-block,body.retro-project .fairy-overview .poster-block{width:50%;max-width:none;margin:0}
 body.retro-project .overview-info,body.retro-project .fairy-info{width:100%;min-width:0;grid-column:1/-1}
 body.retro-project .overview-info dl,body.retro-project .fairy-info dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px;margin:0;font-size:9px}
 body.retro-project dl>div{min-width:0}
 body.retro-project .content dt{font:7px/1.6 'Courier New',monospace;letter-spacing:.12em;color:#bda88c;margin:0 0 7px}
 body.retro-project .content dd{font-size:9px;line-height:1.8;color:#e0ddcf;margin:0;text-transform:none}
 body.retro-project .content h2{font:8px/1.6 'Courier New',monospace;letter-spacing:.14em;color:#bda88c;margin:0 0 16px}
 body.retro-project .overview-info .synopsis,body.retro-project .fairy-info .synopsis{width:100%;max-width:none;margin:30px 0 0}
 body.retro-project .content .synopsis p{max-width:none;width:100%;font-size:10px;line-height:1.9;color:#e0ddcf;margin:0;text-transform:none}
}
/* Small, stable controls replace the oversized iOS waiting-state overlay. */
.has-inline-controls{position:relative}
.inline-video-controls{position:absolute;z-index:3;bottom:0;left:0;right:0;display:flex;align-items:center;gap:7px;padding:18px 9px 5px;background:linear-gradient(transparent,#0009);color:#f2e7cc}
.inline-video-controls button{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:7px;border:0;background:transparent;color:inherit;cursor:pointer}
.inline-video-controls svg{display:block;width:18px;height:18px}
.inline-video-controls :focus-visible{outline:1px solid #f2e7cc;outline-offset:2px}
.inline-video-status{position:absolute;left:10px;bottom:42px;color:#f2e7cc;background:#171514;font:9px/1.5 Arial,sans-serif}
.inline-video-status:empty{display:none}
.has-inline-controls video:not([data-native-fullscreen="true"])::-webkit-media-controls{display:none!important}
.has-inline-controls video:not([data-native-fullscreen="true"])::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}

/* Poster and facts share the first row; editorial copy uses the full next row. */
@media(max-width:650px){
 body.retro-project .project-overview,body.retro-project .fairy-overview{grid-template-columns:minmax(0,1fr);gap:22px 16px}
 body.retro-project .project-overview:has(>.poster-block),body.retro-project .fairy-overview:has(>.poster-block){grid-template-columns:minmax(0,.9fr) minmax(0,2fr)}
 body.retro-project .project-overview .poster-block,body.retro-project .fairy-overview .poster-block{width:100%;max-width:none;grid-column:1;grid-row:1;margin:0}
 body.retro-project .overview-info,body.retro-project .fairy-info{display:contents}
 body.retro-project .overview-info dl,body.retro-project .fairy-info dl{grid-column:1/-1;gap:14px 12px}
 body.retro-project .project-overview:has(>.poster-block) dl,body.retro-project .fairy-overview:has(>.poster-block) dl{grid-column:2;grid-row:1}
 body.retro-project .overview-info .synopsis,body.retro-project .fairy-info .synopsis{grid-column:1/-1;margin:0}
 body.retro-project .overview-info .film-note,body.retro-project .fairy-info .film-note{grid-column:1/-1}
}
.inline-video-controls button:first-child{margin-right:auto}

/* Phone gutters retain quiet mechanical movement around dark sections. */
@media(max-width:650px){
 .edge-motion{display:block;top:70px;bottom:24px;width:4vw;opacity:.32}
 .edge-motion-left{left:0}
 .edge-motion-right{right:0}
 .edge-motion path{vector-effect:non-scaling-stroke;stroke-width:.65}
 .retro-home.has-side-motion .edge-motion{opacity:.32}
 .retro-home .edge-motion{width:4.5vw}
 .edge-motion .edge-track{animation-duration:18s}
}

/* Full-width page surfaces; reading width belongs to the content itself. */
body.retro-project{padding:0;background:#171514}
body.retro-project>main{max-width:none;width:100%;margin:0;background:#171514}
body.retro-project>main>header,body.retro-project>main>footer{padding-inline:max(5vw,calc((100vw - 1048px)/2))}
body.retro-project .hero{max-width:1160px;margin-inline:auto;position:relative;z-index:2}
body.retro-project .content{width:100%;max-width:1160px;margin-inline:auto;background:transparent;position:relative;z-index:2}
body.retro-project>main>header{position:relative;z-index:2;border:0;box-shadow:none}
body.retro-project>main>footer{background:transparent;position:relative;z-index:2}
/* Sparse marks inhabit the same dark surface, rather than outlining a panel. */
.edge-motion{z-index:1;opacity:.16;color:#b7aa92;width:clamp(50px,10vw,160px)}
.edge-motion-left{left:0}
.edge-motion-right{right:0;color:#b7aa92}
.edge-motion path,.edge-motion circle,.edge-motion rect{vector-effect:non-scaling-stroke;stroke-width:.7}
.retro-home.has-side-motion .edge-motion{opacity:.16}
@media(max-width:650px){
 body.retro-project .hero{max-width:none;width:100%}
 body.retro-project>main>header,body.retro-project>main>footer{padding-inline:6vw}
 body.retro-project .content{padding-inline:6vw}
 .edge-motion,.retro-home .edge-motion{width:22vw;opacity:.12}
 .retro-home.has-side-motion .edge-motion{opacity:.12}
 .edge-motion .edge-track{animation-duration:29s}
 body.retro-project .overview-info dl>.role-credit-row{grid-column:auto}
 body.retro-project .score-essay,body.retro-project .film-and-poster{display:block;margin:28px 0}
 body.retro-project .score-essay>div{min-width:0}
 body.retro-project .score-essay p,body.retro-project .film-copy p{font-size:10px;line-height:1.9;max-width:none;margin:0 0 16px;text-transform:none;color:#e0ddcf}
 body.retro-project .score-image-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:28px 0}
 body.retro-project .audio-track{grid-template-columns:22px minmax(0,1fr);gap:10px}
 body.retro-project .audio-track audio{grid-column:1/-1;width:100%;min-width:0;max-width:100%}
 body.retro-project .score-heading{flex-wrap:wrap;gap:10px}
}
.video-loading-ring{position:absolute;z-index:4;top:50%;left:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border:1.5px solid #f2e7cc40;border-top-color:#f2e7ccdd;border-right-color:#f2e7cc90;border-radius:50%;background:transparent;pointer-events:none;animation:video-buffer-spin .9s linear infinite}
.video-loading-ring[hidden]{display:none}
@keyframes video-buffer-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.video-loading-ring{animation:none;border-style:dashed}}

/* Keep lettering sharp; texture belongs to the background, not the glyphs. */
.retro-home .wordmark{z-index:3}
.retro-home .wordmark h1{filter:none;transform:none;text-shadow:none}
/* Wider, independent trajectories across the available cover space. */
.retro-home .motion-score{--travel-gain:1.45;--vertical-gain:1.7}
@keyframes bar-independent{
 0%,100%{transform:translate(0,0) rotate(0deg) scaleX(1)}
 23%{transform:translate(calc(var(--dx) * var(--travel-gain)),calc(var(--dy) * var(--vertical-gain))) rotate(var(--tilt)) scaleX(.62)}
 57%{transform:translate(calc(var(--dx) * -.8),calc(var(--dy) * var(--vertical-gain) * -1.4)) rotate(calc(var(--tilt) * -1.2)) scaleX(1.2)}
 81%{transform:translate(calc(var(--dx) * .4),calc(var(--dy) * var(--vertical-gain) * .8)) rotate(2deg) scaleX(.86)}
}
@keyframes track-independent{0%,100%{transform:translate(0,-30px) scaleY(.9)}34%{transform:translate(calc(var(--slide) * 1.6),calc(75px * var(--vertical-gain))) scaleY(1.1)}72%{transform:translate(calc(var(--slide) * -.6),calc(-45px * var(--vertical-gain))) scaleY(.75)}}
@keyframes disc-independent{0%,100%{transform:translate(0,0) scale(1)}31%{transform:translate(calc(var(--disc-x) * var(--travel-gain)),calc(var(--disc-y) * var(--vertical-gain))) scale(.75)}73%{transform:translate(calc(var(--disc-x) * -.7),calc(var(--disc-y) * var(--vertical-gain) * -.6)) scale(1.1)}}
@media(max-width:650px){.retro-home .motion-score{height:62%;top:3%;--travel-gain:2.15;--vertical-gain:3.2}}
@media(prefers-reduced-motion:reduce){.motion-score *{animation:none!important}}
@media(min-width:651px){
 body.score-detail-with-poster .project-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.65fr);gap:40px}
 body.score-detail-with-poster .film-and-poster{display:block}
}

/* Phone typography stays compact and consistent across every project. */
@media(max-width:650px){
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 body.retro-project .content dt{font-size:6.5px;letter-spacing:.1em;margin-bottom:5px}
 body.retro-project .content dd{font-size:8px;line-height:1.75}
 body.retro-project .content h2,body.retro-project .director-statement h2{font-size:7px}
 body.retro-project .content .synopsis p,body.retro-project .statement-copy p,
 body.retro-project .score-essay p,body.retro-project .film-copy p{font-size:9px;line-height:1.85}
 body.retro-project .hero>.title h1{font-size:22px}
 body.retro-project .hero>.title p{font-size:7px}
 body.retro-project .content li{font-size:7px;line-height:1.8}
 .retro-project .park-honours .park-selections ul,
 .retro-project .compact-honours .compact-festival-section ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
 .retro-project .park-honours .park-selections li,
 .retro-project .compact-honours .compact-festival-section li{min-width:0;padding:6px 0}
 .retro-home .bio-copy p{font-size:9px;line-height:1.7}
 .retro-home .film-group-head h3,.retro-home .music-group-head h3{font-size:16px}
 .retro-home .caption h2{font-size:clamp(9.5px,2.6vw,12px)}
 .retro-home .project:first-child .caption h2{font-size:15px}
 .retro-home .score-live .music-caption h4{font-size:18px}
 .retro-home .dj-video-caption h4{font-size:10px}
 .retro-home .dj-copy h4{font-size:15px}
 .retro-home .dj-description{font-size:9px}
 .retro-home .dj-bio-copy .dj-bio-opening:first-child{font-size:13px;margin-bottom:10px}
 .retro-home .dj-bio-copy p:not(.dj-bio-opening){font-size:8.8px;line-height:1.65;letter-spacing:0;margin-bottom:11px}
 .retro-home .dj-bio-copy{padding:12px 10px}
 .retro-home .release-caption h4{font-size:12px}
 .contact-item strong{font-size:11px}
 .inline-video-status{right:8px;left:8px;font-size:7px;line-height:1.5;text-transform:none;padding:3px 5px}
}
@media(max-width:650px){
 body.retro-project .score-selections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
 body.retro-project .score-selections h2{grid-column:1/-1}
 body.retro-project .score-selections p{font-size:7px;line-height:1.8;margin:0}
}
