@font-face{font-family:Inter;src:url('fonts/inter.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}

@font-face{font-family:Arimo;src:url('fonts/arimo.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}

:root{--paper:#a3a3a3;--ink:#000;--red:#b31d1d;--muted-black:#272727;--edge:1.65vw;--gap:1.65vw;--font:Inter,Arial,Helvetica,sans-serif;--display-font:Arimo,Arial,Helvetica,sans-serif;--ui:clamp(14px,1.3vw,28px);--copy:clamp(14px,1.3vw,23px);--display:9vw;--tracking:-.055em;--line:.79;--header:clamp(54px,4.4vw,90px);--logo-gap:1.35vw}

*{box-sizing:border-box}
html{background:var(--paper);color:var(--ink);font-family:var(--font);font-weight:700;scrollbar-gutter:stable}
body{margin:0}
a{color:inherit;text-decoration:none}
button{border:0;border-radius:0;background:none;color:inherit;padding:0;font:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:5px}
h1,h2,p,figure,dl,dd{margin:0}
img{display:block;max-width:100%}
button img{pointer-events:none}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.upper{text-transform:uppercase}
.site-header{height:var(--header);min-height:54px;margin:0;padding:0 var(--edge);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--paper);z-index:10;font-size:var(--ui);letter-spacing:-.045em;line-height:1}
.brand,.descriptor{white-space:nowrap}
.navigation{display:flex;gap:2.55vw;align-items:center}
.navigation a{padding:8px 0;white-space:nowrap}
.navigation a[aria-current=page]{text-decoration:underline;text-decoration-thickness:.1em;text-underline-offset:.23em}
.navigation a:hover,.brand:hover,.social:hover{text-decoration:underline;text-underline-offset:.2em}
.star{display:block;background:var(--red);clip-path:polygon(50% 0%,61% 33.3%,100% 25%,72% 50%,100% 75%,61% 66.7%,50% 100%,39% 66.7%,0% 75%,28% 50%,0% 25%,39% 33.3%)}
.home-link{position:absolute;left:50%;top:50%;width:2.55vw;height:2.9vw;min-width:25px;min-height:29px;transform:translate(-50%,-50%)}
.home-link .star{width:100%;height:100%}
.site-footer{display:flex;align-items:center;justify-content:flex-end;margin:0 var(--edge);padding:22px 0;font-size:var(--ui);letter-spacing:-.045em;line-height:1}
.simple-page{min-height:100svh;display:flex;flex-direction:column}
.simple-page main{flex:1}
.home-page{height:max(640px,100svh);position:relative;overflow:hidden}
.home-page .site-header{position:absolute;top:0;left:0;right:0}
.home-page .site-footer{position:absolute;bottom:0;left:0;right:0}
.home-canvas{position:absolute;inset:0;container-type:inline-size}
.home-star{position:absolute;left:25.6%;top:6%;width:48.8%;height:87.5%;z-index:0;pointer-events:none}
.display-name{position:absolute;top:20.3%;left:7.8%;width:56.8%;font-size:var(--display);font-weight:700;line-height:var(--line);letter-spacing:var(--tracking);text-align:right;z-index:3;pointer-events:none}
.display-name span{display:block;white-space:nowrap;transform:none}
.display-name span+span{margin-top:.025em}
.home-artwork{position:absolute;left:49.7%;top:35.2%;width:42%;z-index:2}
.home-cover{display:block;position:relative;aspect-ratio:16/9;overflow:hidden}
.home-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.home-cover .cover-mono{filter:url('#soft-mono');opacity:1;transition:opacity 420ms ease}
.home-cover:focus-visible .cover-mono{opacity:0}
@media(hover:hover) and (pointer:fine){.home-artwork:hover .cover-mono{opacity:0}
}
.home-caption{display:flex;justify-content:space-between;align-items:baseline;gap:18px;margin-top:12px;font-size:var(--ui);line-height:1.05;letter-spacing:-.045em}
.project-cta{white-space:nowrap;display:inline-flex;align-items:center;gap:.55em}
.project-cta:hover{text-decoration:underline;text-underline-offset:.2em}
.home-selector{position:absolute;top:69.3%;left:8%;width:28%;z-index:4;font-size:var(--ui);line-height:1.05}
.home-selector button{display:grid;grid-template-columns:3.5em 1fr;gap:1.2em;text-align:left;align-items:baseline;min-height:2em;width:100%}
.home-selector .index{font-variant-numeric:tabular-nums;letter-spacing:.1em;text-align:center}
.home-selector .label{letter-spacing:-.03em}
.home-selector button:hover .label{text-decoration:underline;text-underline-offset:.2em}
.works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin:0 var(--edge);padding-top:0}
.work-card{min-width:0}
.work-card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.work-card h1{font-size:var(--ui);letter-spacing:-.04em;line-height:1.1;margin-top:12px}
.work-card a:hover h1{text-decoration:underline;text-underline-offset:.2em}
.project-content{margin:0 var(--edge)}
.video-stage{position:relative;aspect-ratio:16/9;width:100%;background:#080808;overflow:hidden}
.video-stage img{width:100%;height:100%;object-fit:contain}
.video-start{position:absolute;inset:0;width:100%;height:100%;display:grid;place-items:center}
.play-box{width:8.5%;aspect-ratio:1;background:var(--paper);display:grid;place-items:center}
.play-box:after{content:'';width:0;height:0;border-top:1.9vw solid transparent;border-bottom:1.9vw solid transparent;border-left:3.2vw solid black;margin-left:.55vw}
.video-start:hover .play-box{background:#d0d0d0}
.video-stage iframe{width:100%;height:100%;border:0;position:absolute;inset:0}
.project-info{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,2.22fr);gap:var(--gap);margin-top:var(--gap);align-items:start}
.project-logo{width:100%;height:auto}
.project-facts{margin-top:var(--logo-gap);font-size:var(--copy);line-height:1.23;letter-spacing:-.05em;text-transform:uppercase}
.fact-row{display:flex;align-items:baseline;min-width:0}
.fact-row dt{flex:0 0 auto}
.fact-row:after{content:'';order:1;flex:1 1 auto;min-width:.8em;border-bottom:.12em dotted currentColor;margin:0 .08em;align-self:baseline;transform:translateY(-.1em)}
.fact-row dd{order:2;flex:0 1 auto;text-align:right;overflow-wrap:anywhere;max-width:65%}
.project-description{font-size:var(--copy);line-height:calc(1.26 * var(--body-leading,1));letter-spacing:calc(-.045em + var(--body-tracking,0em));text-transform:uppercase}
.project-description p+p{margin-top:calc(1.4em * var(--body-paragraph-gap,1))}
.stills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin-top:3.2vw}
.still-button{width:100%;display:block}
.still-button img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#090909}
.credits-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin-top:3.2vw;font-size:var(--copy);line-height:1.3;letter-spacing:-.04em;text-transform:uppercase}
.credit-item+.credit-item{margin-top:1.6em}
.credit-item p{overflow-wrap:anywhere}
.project-footer{margin:0 var(--edge);position:relative;display:flex;align-items:center;justify-content:space-between;min-height:90px;padding:3.5vw 0 1.65vw;font-size:var(--copy);letter-spacing:-.04em;text-transform:uppercase}
.project-footer .home-link{top:auto;bottom:1.3vw;transform:translateX(-50%)}
.project-footer a:hover{text-decoration:underline;text-underline-offset:.2em}
.info-page main{position:relative;min-height:0}
.info-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);padding:7vw 6.2vw 6vw}
.info-title{font-family:var(--display-font);grid-column:1/9;grid-row:1;font-size:var(--display);line-height:var(--line);letter-spacing:var(--tracking);text-align:right;font-weight:700;z-index:1}
.info-title span{display:block;transform:none}
.info-title span+span{margin-top:.025em}
.info-title.about{grid-column:1/8}
.info-title.contact{grid-column:1/10;white-space:nowrap}
.info-copy{grid-column:7/13;font-size:clamp(18px,1.65vw,30px);line-height:1.27;letter-spacing:-.045em;padding-top:4.5vw}
.info-copy p+p{margin-top:1.25em}
.info-aside{grid-column:1/5;grid-row:2;align-self:start;padding-top:4.5vw;font-size:var(--ui);letter-spacing:-.04em;line-height:1.2;text-transform:uppercase}
.contact-links{margin-top:3vw}
.contact-links .contact-item+.contact-item{margin-top:1.6em}
.contact-item dt{font-size:var(--ui);margin-bottom:.45em}
.contact-item dd{font-size:clamp(20px,2.35vw,46px);overflow-wrap:anywhere}
.contact-item a:hover{text-decoration:underline;text-underline-offset:.2em}
.lightbox{border:0;margin:auto;padding:0;background:var(--paper);color:var(--ink);width:96vw;max-width:none;max-height:96svh;overflow:hidden}
.lightbox::backdrop{background:rgb(0 0 0 / .9)}
.lightbox-inner{display:flex;flex-direction:column;max-height:96svh;padding:16px}
.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px;margin-bottom:14px}
.lightbox-toolbar button{min-width:44px;min-height:36px}
.lightbox-image{width:100%;height:min(80svh,900px);object-fit:contain}
.lightbox-controls{display:flex;gap:25px}
.error-page{padding:10vw var(--edge);font-size:22px}
.error-page a{text-decoration:underline}


@media(max-width:1100px) and (min-width:761px){.project-facts{font-size:12px}
.navigation{gap:2vw}
.info-copy{grid-column:6/13}
}

@media(max-width:760px){:root{--edge:18px;--gap:18px;--header:108px;--ui:14px;--copy:14px;--display:12vw;--logo-gap:16px}
.site-header{height:108px;align-items:flex-start;padding-top:22px;display:block;font-size:13px}
.navigation{position:absolute;bottom:18px;left:0;right:0;justify-content:space-between;gap:16px}
.navigation a{padding:8px 0}
.home-link{left:auto;right:0;top:15px;transform:none;width:28px;height:32px}
.site-footer{font-size:13px;padding:22px 0}
.home-page{height:auto;min-height:100svh;overflow:hidden}
.home-page .site-header{position:relative;margin:0 var(--edge)}
.home-page .site-footer{position:relative}
.home-canvas{position:relative;inset:auto;min-height:540px;display:flex;flex-direction:column;padding-top:68px}
.home-star{top:15px;left:16%;width:72%;height:490px}
.display-name{position:relative;inset:auto;width:91%;margin-left:3%;font-size:13.1vw;line-height:.83}
.home-artwork{position:relative;inset:auto;width:82%;margin:-10px 0 0 14%}
.home-caption{font-size:12px;margin-top:9px;gap:14px;line-height:1.2}
.home-caption .type{max-width:115px}
.home-selector{position:relative;inset:auto;width:75%;margin:40px 0 24px 5%;font-size:14px}
.home-selector button{min-height:44px;grid-template-columns:3em 1fr;gap:1.2em}
.works-grid{grid-template-columns:1fr;gap:32px}
.work-card h1{font-size:16px;margin-top:10px}
.works-page main{padding-bottom:36px}
.project-info{grid-template-columns:1fr;gap:30px;margin-top:24px}
.project-identity{width:82%}
.project-description{font-size:15px;line-height:calc(1.35 * var(--body-leading,1));letter-spacing:calc(-.035em + var(--body-tracking,0em))}
.play-box{width:16%}
.play-box:after{border-top:3.4vw solid transparent;border-bottom:3.4vw solid transparent;border-left:5.7vw solid black}
.stills-grid{grid-template-columns:1fr;margin-top:32px;gap:16px}
.credits-grid{grid-template-columns:1fr 1fr;margin-top:32px;gap:24px 18px;font-size:13px}
.credits-label{grid-column:1/-1}
.project-footer{min-height:110px;align-items:flex-start;padding:38px 0 20px;font-size:12px;gap:45px}
.project-footer>a:last-child{text-align:right}
.project-footer .home-link{left:50%;right:auto;bottom:15px;transform:translateX(-50%);width:24px;height:28px}
.info-page main{min-height:0}
.info-layout{padding:55px 18px 60px;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 14px}
.info-title.about,.info-title.contact{grid-column:1/-1;font-size:15vw}
.info-title.about{max-width:90%}
.info-title.contact{font-size:13.7vw}
.info-aside{grid-row:auto;grid-column:1/-1;padding-top:20px;font-size:13px}
.info-copy{grid-column:1/-1;padding-top:0;font-size:20px;margin-left:12%;line-height:1.32}
.contact-links{margin-top:30px}
.contact-item dd{font-size:24px}
.lightbox{width:100vw;max-height:100svh}
.lightbox-inner{padding:12px}
.lightbox-toolbar{font-size:12px}
.lightbox-controls{gap:12px}
.lightbox-image{height:76svh}
}


@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}
}


/* Viewport compositions keep the artboard and the star proportional. */
html:has(.home-page),body:has(.home-page){overflow:hidden;height:100%;overscroll-behavior:none}

.home-page{height:100svh;height:100dvh;min-height:0}

.home-page .site-header{position:fixed;margin:0}

.home-page .site-footer{position:absolute;bottom:0;margin:0 var(--edge);padding:20px 0;z-index:5}

.home-canvas{position:absolute;inset:auto;left:50%;top:50%;width:min(100%,156.1svh);width:min(100%,156.1dvh);height:auto;aspect-ratio:2048/1312;transform:translate(-50%,-50%);display:block;min-height:0;padding:0;container-type:inline-size}

.home-star{left:50%;top:50%;width:48.8%;height:auto;aspect-ratio:1000/1155;transform:translate(-50%,-50%)}

.display-name{position:absolute;top:20.3%;left:7.8%;width:56.8%;margin:0;font-family:var(--display-font);font-size:9cqw;font-weight:700;letter-spacing:-.055em;line-height:.79}

.display-name span{transform:none}

.display-name span+span{margin-top:0}

.home-artwork{position:absolute;left:49.7%;top:35.2%;width:42%;margin:0}

.home-caption{font-size:clamp(12px,1.3cqw,28px);align-items:flex-start;min-height:2.2em}

.home-caption .type{max-width:none}

.home-selector{position:absolute;top:69.3%;left:8%;width:28%;margin:0;font-size:clamp(14px,1.3cqw,28px)}

.home-selector button{min-height:2.15em}

.home-selector [aria-pressed=true] .label{text-decoration:underline;text-underline-offset:.2em}

.home-link{height:auto;aspect-ratio:1000/1155;min-height:0}

.info-title span{transform:none}

@media(max-width:760px){
 :root{--header:96px}

 .site-header{position:sticky;height:var(--header);padding:20px var(--edge) 0;margin:0}

 .navigation{left:var(--edge);right:var(--edge);bottom:12px}

 .home-link{right:var(--edge);top:14px}

 .home-page .site-header{position:fixed;margin:0}

 .home-page .site-footer{position:absolute;bottom:0;padding:16px 0}

 .home-canvas{top:calc(var(--header) + (100svh - var(--header) - 46px)/2);top:calc(var(--header) + (100dvh - var(--header) - 46px)/2);width:min(100%,calc((100svh - var(--header) - 46px)*.79));width:min(100%,calc((100dvh - var(--header) - 46px)*.79));aspect-ratio:79/100}

 .home-star{top:50%;left:52%;width:88%;height:auto;aspect-ratio:1000/1155}

 .display-name{top:12%;left:4%;width:91%;font-size:14.4cqw;line-height:.8}

 .home-artwork{top:29%;left:14%;width:82%}

 .home-caption{font-size:clamp(10px,3.1cqw,14px);line-height:1.2;margin-top:9px;gap:10px;min-height:2.4em}

 .home-caption .type{max-width:48%}

 .home-selector{top:75%;left:5%;width:90%;font-size:clamp(12px,3.6cqw,16px)}

 .home-selector button{min-height:clamp(32px,9cqw,44px);grid-template-columns:3em 1fr;gap:1.2em}

 .project-identity{width:100%;min-width:0}

 .project-logo{width:46%;height:auto}

 .project-facts{width:100%;font-size:clamp(12px,3.6vw,16px);margin-top:22px}

 .info-title.about,.info-title.contact{font-family:var(--display-font)}

}

@media(max-height:480px) and (min-aspect-ratio:1/1){
 :root{--header:54px}

 .site-header{display:flex;align-items:center;padding:0 var(--edge);font-size:12px;height:54px}

 .navigation{position:static;gap:18px}

 .home-link{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:22px}

 .home-canvas{top:50%;width:min(100%,170dvh);aspect-ratio:2048/1312}

 .home-star{width:48.8%;left:50%}

 .display-name{top:20.3%;left:7.8%;width:56.8%;font-size:9cqw}

 .home-artwork{top:35.2%;left:49.7%;width:42%}

 .home-caption{font-size:11px;margin-top:7px;gap:10px}

 .home-selector{top:65%;left:8%;width:32%;font-size:12px}

 .home-selector button{min-height:28px}

 .home-page .site-footer{padding:10px 0;font-size:11px}

}

@media(prefers-reduced-motion:reduce){.home-cover .cover-mono{transition:none}
}


/* Optional author-defined project sections share the existing project grid. */
.extra-block{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,2.22fr);gap:var(--gap);margin-top:3.2vw;font-size:var(--copy);line-height:1.3;letter-spacing:-.04em;text-transform:uppercase}
.extra-block h2{font:inherit}
.extra-body p+p{margin-top:calc(1em * var(--body-paragraph-gap,1))}
.extra-body a{text-decoration:underline;text-underline-offset:.2em}
.extra-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);margin-top:1.5em}
.extra-images img{width:100%;height:auto}
.extra-images figcaption{margin-top:.6em}
@media(max-width:760px){.extra-block{grid-template-columns:1fr;margin-top:32px;gap:20px}.extra-images{grid-template-columns:1fr}}

/* Stable page width, including pages that do not scroll. */
html{scrollbar-gutter:stable}
.home-page .site-header{position:absolute;background:transparent}
.project-footer{display:flex}
.project-footer .previous-project{margin-right:auto}
.project-footer .next-project{margin-left:auto;text-align:right}
.project-footer .home-link{left:50%;right:auto}
.home-cover[aria-busy=true]{cursor:progress}

/* Letter cells follow the actual glyph edges; both final O's share one right edge. */
.display-name{letter-spacing:0;font-kerning:none;font-feature-settings:"kern" 0}
.display-name .name-line{display:flex;justify-content:flex-end;gap:.018em;white-space:nowrap}
.display-name .name-letter{position:relative;display:block;flex:none;margin:0;letter-spacing:0}
.display-name .name-letter i{display:block;font-style:normal}
.cover-frame{position:absolute;inset:0}
.home-link .star{overflow:hidden}
.star-motion{width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 180ms ease}
@media(hover:hover) and (pointer:fine){.home-link:hover .star-motion{opacity:1}}
.home-link:focus-visible .star-motion{opacity:1}

/* About and Contact are two compositions of the same full-screen artboard. */
:root{--profile-star:#898989;--profile-blue:#1c1cff;--card-frame:clamp(5px,.65vw,14px)}
html:has(.profile-page),body:has(.profile-page){height:100%;overflow:hidden;overscroll-behavior:none}
.profile-page{position:relative;height:100svh;height:100dvh;overflow:hidden}
.profile-page .site-header{position:absolute;inset:0 0 auto;background:transparent}
.profile-star{position:absolute;left:50%;top:50%;width:min(48.8%,76.18dvh);aspect-ratio:1000/1155;transform:translate(-50%,-50%);background:var(--profile-star);pointer-events:none}
.profile-main{position:absolute;inset:0;display:flex;align-items:center;padding:calc(var(--header) + 12px) 0;min-height:0}
.about-layout{--about-size:clamp(14px,1.3vw,30px);display:grid;grid-template-columns:17fr 56fr;column-gap:9%;padding:0 9%;width:100%;align-items:start;font-size:var(--about-size);line-height:calc(1.3 * var(--body-leading,1));letter-spacing:calc(-.045em + var(--body-tracking,0em));text-transform:uppercase}
/* Grid gaps resolve against the inner width: use an explicit page-relative gutter. */
.about-layout{column-gap:9vw;grid-template-columns:17vw minmax(0,1fr)}
.portrait{border:clamp(2px,.3vw,6px) solid var(--profile-blue);width:100%}
.portrait img{width:100%;height:auto;display:block}
.about-copy p{white-space:normal}
.about-copy p+p{margin-top:calc(1.3em * var(--body-paragraph-gap,1))}
.about-name{color:var(--profile-blue)}
.profile-main.content-overflow{align-items:flex-start;overflow-y:auto}
.contact-page:after{content:'';position:fixed;left:0;top:0;width:100vw;height:100svh;height:100dvh;border:var(--card-frame) solid var(--red);pointer-events:none;z-index:20}
.contact-list{width:100%;padding:0 9%;text-align:center;text-transform:uppercase;letter-spacing:-.045em}
.contact-entry+.contact-entry{margin-top:3.8vw}
.contact-entry dt{font-size:clamp(14px,1.35vw,30px);line-height:1;margin-bottom:.7em}
.contact-entry dd{font-size:clamp(22px,2.65vw,58px);line-height:1.1}
.contact-entry a:hover{text-decoration:underline;text-underline-offset:.16em;text-decoration-thickness:.055em}
@media(max-width:760px){
 .profile-star{width:min(88%,72dvh)}
 .profile-main{padding:calc(var(--header) + 16px) var(--edge) 20px}
 .about-layout{--about-size:clamp(12px,3.2vw,16px);display:block;padding:0;font-size:var(--about-size);line-height:calc(1.24 * var(--body-leading,1));letter-spacing:calc(-.035em + var(--body-tracking,0em))}
 .about-layout:after{content:'';display:block;clear:both}
 .portrait{float:left;width:25%;margin:0 var(--edge) var(--edge) 0}
 .about-copy p+p{margin-top:calc(.85em * var(--body-paragraph-gap,1))}
 .about-copy p:first-child{min-height:calc((100vw - 2 * var(--edge)) * .25);margin-bottom:var(--edge)}
 .contact-list{padding:0}
 .contact-entry+.contact-entry{margin-top:clamp(32px,7dvh,70px)}
 .contact-entry dt{font-size:13px;margin-bottom:.7em}
 .contact-entry dd{font-size:clamp(18px,5.4vw,38px)}
}
@media(max-height:480px) and (min-aspect-ratio:1/1){
 .profile-main{padding:calc(var(--header) + 8px) var(--edge) 16px}
 .about-layout{--about-size:12px;display:grid;grid-template-columns:17vw minmax(0,1fr);column-gap:4vw;padding:0 4vw;line-height:calc(1.18 * var(--body-leading,1))}
 .portrait{float:none;width:100%;margin:0}
 .about-copy p:first-child{min-height:0;margin-bottom:0}
 .about-copy p+p{margin-top:calc(.65em * var(--body-paragraph-gap,1))}
 .contact-entry+.contact-entry{margin-top:22px}
 .contact-entry dt{font-size:12px}
 .contact-entry dd{font-size:24px}
}

/* Keep identical full-width geometry on every route, without a scrollbar gutter. */
html{scrollbar-gutter:auto;scrollbar-width:none}
html::-webkit-scrollbar{display:none}
.contact-page:after{box-sizing:border-box}
@media(max-width:760px) and (max-height:620px){
 .about-layout{line-height:calc(1.13 * var(--body-leading,1))}
 .about-copy p+p{margin-top:calc(.65em * var(--body-paragraph-gap,1))}
 .portrait{width:22%}
 .about-copy p:first-child{min-height:calc((100vw - 2 * var(--edge)) * .22)}
}

/* One viewport coordinate system for the background mark on all three pages. */
.home-page>.home-star,.profile-star{position:absolute;left:50%;top:50%;width:min(48.8vw,76.18dvh);height:auto;aspect-ratio:1000/1155;transform:translate(-50%,-50%);pointer-events:none}
.contact-page .profile-main{padding:calc(var(--header) + 12px) var(--edge);justify-content:center}
@media(max-width:760px){
 .home-page>.home-star,.profile-star{width:min(88vw,76.18dvh)}
 .home-canvas{top:50%;width:min(100%,calc((100dvh - 2 * var(--header)) * .79));aspect-ratio:79/100}
 .about-layout{display:flex;flex-direction:column;align-items:flex-start;gap:14px;text-align:left;line-height:calc(1.18 * var(--body-leading,1))}
 .about-layout:after{display:none}
 .portrait{float:none;flex:none;width:clamp(64px,20vw,100px);margin:0}
 .about-copy{width:100%;min-width:0}
 .about-copy p:first-child{min-height:0;margin-bottom:0}
 .about-copy p+p{margin-top:calc(.65em * var(--body-paragraph-gap,1))}
}
@media(max-width:760px) and (max-height:620px){
 .about-layout{gap:10px;line-height:calc(1.12 * var(--body-leading,1))}
 .portrait{width:64px}
 .about-copy p+p{margin-top:calc(.5em * var(--body-paragraph-gap,1))}
}
@media(max-height:480px) and (min-aspect-ratio:1/1){
 .home-canvas{top:50%;width:min(100%,170dvh);aspect-ratio:2048/1312}
 .home-page>.home-star,.profile-star{width:min(48.8vw,76.18dvh)}
}

/* Home title is sharp on every device. */
.display-name{filter:none;transition:none;pointer-events:none}
.display-name .name-line{pointer-events:auto}
.display-name:focus-visible{outline:1px solid var(--red);outline-offset:12px}
@media(hover:none){.display-name{filter:none}}
.project-recognition{font-size:var(--ui);line-height:1.4}
.project-recognition a{display:inline-block}
.project-recognition a:hover{text-decoration:underline;text-underline-offset:.2em}
.recognition-source{display:block;font-size:.8em}
.extra-body .video-stage{margin-top:0}
@media(prefers-reduced-motion:reduce){.display-name{transition:none}}
.video-title{position:absolute;left:var(--gap);bottom:var(--gap);color:var(--paper);font-size:var(--ui);letter-spacing:-.04em}

/* Five-point award marker follows the author's reference; source stays aligned. */
.project-recognition a{position:relative;padding-left:1.25em}
.recognition-star{position:absolute;left:0;top:0;font-size:1.05em;line-height:inherit}
@media(max-height:480px) and (min-aspect-ratio:1/1){.home-selector{width:37%;font-size:clamp(10px,1.1cqw,12px)}.home-selector button{gap:.65em}}

/* Shared typography roles: preserve hierarchy, remove near-duplicate scales. */
:root{--type-label:clamp(14px,1.3vw,28px);--type-body:var(--type-label);--type-secondary:12px;--ui:var(--type-label);--copy:var(--type-body)}
.about-layout{--about-size:var(--type-body)}
.contact-entry dt{font-size:var(--type-label)}
.home-caption,.home-selector{font-size:clamp(14px,1.3cqw,28px)}
.project-description{white-space:normal}
.project-footer .next-project{margin-left:0;margin-right:auto;text-align:left}
.project-footer .previous-project{margin-left:auto;margin-right:0;text-align:right}
@media(max-width:760px){
 :root{--type-label:14px;--type-body:14px;--type-artboard:clamp(12px,3.4cqw,16px)}
 .site-header,.site-footer,.work-card h1,.project-footer,.contact-entry dt{font-size:var(--type-label)}
 .project-description,.project-facts,.credits-grid,.extra-block{font-size:var(--type-body)}
 .home-caption,.home-selector{font-size:var(--type-artboard)}
 .about-page .profile-main{display:block;padding:var(--about-top,calc(var(--header) + 16px)) var(--edge) 16px;overflow-y:auto;scrollbar-width:none}
 .about-layout{--about-size:var(--type-body);gap:16px;line-height:calc(1.2 * var(--body-leading,1))}
 .about-copy p+p{margin-top:calc(.65em * var(--body-paragraph-gap,1))}
 .portrait{width:clamp(96px,29vw,140px)}
 .home-selector{max-height:25%;overflow-y:auto;scrollbar-width:none}
 .home-selector button{flex-shrink:0}
 .project-footer>a:last-child{ text-align:inherit }
 .project-footer .previous-project{ text-align:right }
 .project-footer .next-project{ text-align:left }
}
@media(max-height:480px) and (min-aspect-ratio:1/1){
 .about-layout{display:grid;grid-template-columns:clamp(96px,17vw,140px) minmax(0,1fr);column-gap:4vw;padding:0;--about-size:var(--type-secondary);line-height:calc(1.18 * var(--body-leading,1))}
 .portrait{width:100%}
 .site-header,.home-caption,.home-selector,.site-footer{font-size:var(--type-secondary)}
 .home-selector{width:37%;max-height:24%;overflow-y:auto;scrollbar-width:none}
}

/* v13: keep mobile type metrics stable and deliberate touch gestures. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.home-page{touch-action:manipulation}
/* Keep the background star continuous while scrolling copy stays below the menu. */
.about-page .site-header{background:transparent}
.about-page .profile-main{clip-path:inset(var(--header) 0 0)}
.display-name{--name-gap:.018;}
.display-name .name-line{gap:calc(var(--name-gap) * 1em)}
@media(max-width:760px){
 .home-caption .type{display:none}
 .home-caption{justify-content:flex-end;min-height:1.2em}
 .display-name{--name-gap:.01}
 .home-selector{top:79%;max-height:max(96px,25%)}
}
@media(hover:none){
 .display-name,.display-name:hover,.display-name:focus{filter:none}
}
@media(max-height:480px) and (min-aspect-ratio:1/1){
 .home-selector{top:65%;max-height:24%}
}

/* v14: one touch policy; preserve deliberate two-finger zoom. */
html,body,body *{touch-action:manipulation}
.display-name .mobile-name-line,.display-name .mobile-director{display:none}
@media(max-width:760px){
 .home-page{--header:56px}
 .home-page .descriptor{display:none}
 .home-page .site-header{height:var(--header)}
 .home-page .navigation{width:auto}
 .display-name,.display-name:hover,.display-name:focus{filter:none;transition:none}
 .display-name>.name-line{display:none}
 .display-name .mobile-name-line{display:block;white-space:nowrap;letter-spacing:-.065em;font-kerning:normal;font-feature-settings:"kern" 1;text-align:right}
 .display-name .mobile-director{display:block;position:absolute;left:0;top:calc(41% - .5em);font-family:var(--font);font-size:12px;line-height:1;letter-spacing:-.025em;font-weight:700;text-transform:none}
}
@media(max-width:760px) and (min-height:481px){
 .home-canvas{display:flex;flex-direction:column;width:min(calc(100% - 2 * var(--edge)),calc((100dvh - var(--header) - 78px) * .95));aspect-ratio:auto}
 .display-name{position:relative;inset:auto;width:100%;margin:0;font-size:17cqw;line-height:.84;flex:none}
 .home-artwork{position:relative;inset:auto;width:88%;margin:-1cqw 0 0 auto;flex:none}
 .home-caption{margin-top:10px}
 .home-caption,.home-selector{font-size:var(--type-label)}
 .home-selector{position:relative;inset:auto;width:100%;margin:clamp(22px,6cqw,30px) 0 0;max-height:max(96px,25dvh);flex:none}
 .home-selector button{grid-template-columns:2.5em 1fr;gap:.9em}
}
@media(max-width:760px) and (max-height:480px) and (min-aspect-ratio:1/1){
 .home-page .navigation{width:100%}
}

/* v15: restored mobile masthead and measured overlap/spacing. */
@media(max-width:760px){
 .home-page{--header:96px}
 .home-page .descriptor{display:inline}
 .display-name .mobile-director{display:none}
}
@media(max-width:760px) and (min-height:481px){
 .home-artwork{margin-top:-3cqw}
 .home-selector{margin-top:clamp(34px,9cqw,44px)}
}
@media(max-width:760px) and (max-height:480px) and (min-aspect-ratio:1/1){
 .home-page{--header:54px}
 .home-page .navigation{width:auto}
}

/* v16: smaller mobile title, preserving its lower edge over the cover. */
@media(max-width:760px){
 .display-name{--mobile-tracking:-.06;transform:translateX(-2cqw) scale(.94);transform-origin:right bottom}
 .display-name .mobile-name-line{letter-spacing:calc(var(--mobile-tracking) * 1em)}
 .home-caption{margin-top:4px}
 .portrait{border-width:3px}
}
.lightbox-advance{display:block;width:100%;min-height:0;cursor:pointer;flex-shrink:1}
.lightbox-advance:focus-visible{outline-offset:-3px}

/* v17: English labels on mobile; one bounded vector for the CTA arrow. */
.arrow-ne{display:block;width:.9em;height:.9em;flex:0 0 .9em;overflow:visible}
.home-selector .title-english{display:none}
@media(max-width:760px){
 .home-selector .title-bilingual{display:none}
 .home-selector .title-english{display:inline}
}

.extra-body{letter-spacing:calc(-.04em + var(--body-tracking,0em));line-height:calc(1.3 * var(--body-leading,1))}
.dn-text-link{text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:1px;overflow-wrap:anywhere}.dn-text-link:hover{opacity:.7}.dn-text-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}

/* WordPress admin toolbar must not add a hidden extra viewport. */
body.admin-bar .home-page,body.admin-bar .profile-page{height:calc(100dvh - 32px)}
@media(max-width:782px){body.admin-bar .home-page,body.admin-bar .profile-page{height:calc(100dvh - 46px)}}
