:root{--type-label:12px;--type-nav:13px;--type-body:15px;--type-project:22px;--section-space:clamp(90px,9vw,160px);--gutter:6%;--slow-ease:cubic-bezier(.22,1,.36,1)}
body{font-family:var(--font-sans);font-size:var(--type-body);font-weight:400;line-height:1.7;letter-spacing:.005em;-webkit-font-smoothing:antialiased}
button,input,a{font-family:inherit}
h2,h3,p{font-family:inherit}
.reveal,.visible{opacity:1;transform:none;transition:none;will-change:auto}
.motion-mask{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.motion-line{display:block;transform-origin:50% 100%}
.motion-enabled .motion-line{will-change:auto}
.chapter-meta{display:flex;justify-content:space-between;gap:20px;padding:22px 0 28px;border-top:1px solid var(--line);font-size:var(--type-label);font-weight:500;line-height:1.5;letter-spacing:.07em}
.chapter-meta>span:last-child{letter-spacing:.02em;color:var(--muted)}
header{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;padding:26px var(--gutter);align-items:start}
header nav{gap:24px;counter-reset:navigation}
header nav a,.nav-right a,.nav-right button{min-width:0;padding:5px 0;border:0;background:transparent;font-size:var(--type-nav);line-height:1.5;font-weight:500;letter-spacing:.02em;white-space:nowrap}
header nav a::before{counter-increment:navigation;content:"0" counter(navigation);font-size:var(--type-label);color:#b8b7b1;margin-right:8px;font-weight:400}
header nav a,.nav-right a{position:relative}
header nav a::after,.nav-right a::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--slow-ease)}
header nav a:hover::after,.nav-right a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-right{justify-self:end;gap:30px}
.logo{position:static;transform:none;max-width:none;justify-self:center;font-size:15px;font-weight:550;letter-spacing:.08em;line-height:1.4}
.logo .mark{display:none}
.logo small{font-size:var(--type-label);font-weight:400;letter-spacing:.025em;margin-top:6px;line-height:1.5;color:#cbc9c2}
.hero-track{height:190svh}
.hero-sticky{height:100svh;min-height:0}
.hero-media{width:100%;height:100%;transform-origin:center}
.hero-background img{display:block}
.hero-title .hero-letter-mask{overflow:hidden}
.hero-letter-inner{display:block;width:100%;height:100%;transform-origin:50% 100%}
.hero-title{will-change:transform,clip-path!important}
.hero-side p{font-size:clamp(22px,2.15vw,32px);font-weight:450;line-height:1.55;letter-spacing:.01em}
.hero-side a{font-size:var(--type-nav);line-height:1.5;min-width:205px;padding:12px 0;letter-spacing:.02em;border-bottom-color:#e4e2dc65}
.hero-bottom{font-size:var(--type-label);font-weight:400;letter-spacing:.04em;line-height:1.5;bottom:32px}
.scroll-guide span{font-size:var(--type-label);letter-spacing:.045em}
.scroll-guide b{font-size:18px;line-height:1.5}
.motion-enabled .hero-background img{animation:none}
.motion-enabled .mist{filter:none;background:linear-gradient(transparent 0%,var(--paper) 75%)}
.motion-enabled .cloud{display:none}
.works{padding:130px var(--gutter) var(--section-space)}
.section-title,.archive-heading h2,.about h2,.skills-heading h2{font-size:clamp(44px,6.4vw,92px);font-weight:500;line-height:1.16;letter-spacing:-.04em;text-align:left;margin:12px 0 42px}
.work-nav{margin:0 0 34px;align-items:center}
.work-nav p{font-size:var(--type-label);line-height:1.6;color:var(--muted);letter-spacing:.06em;font-weight:500;margin:0}
.work-controls{gap:12px}
.work-controls>span{font-size:var(--type-label);line-height:1.5;letter-spacing:.08em;min-width:62px;font-weight:500;margin-right:18px}
.work-nav button{width:45px;height:40px;border:0;border-bottom:1px solid var(--line);background:transparent;font-size:24px;transition:transform .6s var(--slow-ease)}
.work-nav button:hover{transform:translateX(4px)}
.work-nav button#prev:hover{transform:translateX(-4px)}
.work-card{transition:flex 1.05s var(--slow-ease),transform 1.05s var(--slow-ease)}
.work-card h3{font-size:clamp(22px,2.2vw,32px);font-weight:500;line-height:1.3;letter-spacing:-.015em}
.work-card .meta{font-size:var(--type-label);line-height:1.7;letter-spacing:.02em}
.explore{font-size:var(--type-nav);font-weight:500;letter-spacing:.02em;padding:11px 0}
.card-number{font-size:var(--type-label);line-height:1.5;letter-spacing:.08em}
.demo-note{font-size:var(--type-label);letter-spacing:.02em;margin-top:38px;line-height:1.5}
.introduction{padding:0 var(--gutter) var(--section-space);margin:0;border:0}
.statement-title{font-size:clamp(46px,7.4vw,112px)!important;font-weight:500;line-height:1.2!important;letter-spacing:-.04em;text-align:left!important;max-width:none!important;margin:38px 0 0!important;padding:0!important;color:var(--ink)}
.statement-title>.motion-mask:nth-child(2){padding-left:12%}
.scene-track{height:170svh;margin:0}
.scene-sticky{height:100svh}
.scene-sticky>img{display:block;filter:grayscale(.88) sepia(.12);transform-origin:center}
.scene-content{left:var(--gutter);right:var(--gutter);top:34%;display:block;transform:none;text-align:left}
.scene-content>p{font-size:var(--type-label);line-height:1.5;font-weight:500;letter-spacing:.05em;margin:0 0 36px}
.scene-content h2{font-size:clamp(46px,7vw,106px);font-weight:500;line-height:1.16;margin:0;letter-spacing:-.04em}
.scene-mask{display:none}
.archive{padding:var(--section-space) var(--gutter)}
.archive-heading{align-items:end;gap:25px}
.archive-heading h2{margin-bottom:0}
.archive-heading>span{font-size:var(--type-label);line-height:1.5;letter-spacing:.04em;padding-bottom:10px}
.archive-filters{gap:12px 30px;margin:38px 0 54px}
.archive-filters button{font-size:var(--type-nav);font-weight:450;line-height:1.5;letter-spacing:.01em;padding:9px 0}
.archive-grid{column-gap:30px}
.archive-grid.masonry{--archive-card-gap:54px}
.archive-card{border:0;background:transparent;padding:0;box-shadow:none}
.archive-image{background:#d5d3cd}
.archive-image img{padding:0;background:transparent;transition:transform .9s var(--slow-ease)}
.archive-card:nth-child(2) .archive-image img{background:transparent}
.archive-image>span{right:14px;bottom:14px;width:34px;height:34px;font-size:19px;background:#e4e2dc;line-height:1}
.archive-meta{border:0;margin:0;padding:18px 0 0;gap:18px;align-items:baseline}
.archive-meta h3{font-size:var(--type-project);font-weight:500;line-height:1.4;letter-spacing:-.012em}
.archive-meta>span{font-size:var(--type-label);line-height:1.6;letter-spacing:.01em}
.about{position:relative;padding:0 var(--gutter) var(--section-space);text-align:left;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.about>.chapter-meta{grid-column:1/-1}
.about h2{grid-column:1/8;margin:28px 0 0}
.about>p{grid-column:1/8;font-size:var(--type-label)!important;font-weight:500;line-height:1.6;letter-spacing:.04em;margin:24px 0 0;color:var(--muted)}
.about-brief{grid-column:9/-1;grid-row:2/4;align-self:end;margin:0;max-width:none;padding-bottom:6px}
.education{font-size:var(--type-body);font-weight:500;line-height:1.8;margin:0 0 25px}
.education>span{display:block;font-size:var(--type-label);line-height:1.5;letter-spacing:.06em;margin:10px 0 0;font-weight:400}
.about-intro{font-size:var(--type-body);line-height:1.9;letter-spacing:.005em;max-width:none;margin:0}
.skills{padding:0 var(--gutter) var(--section-space)}
.skills-inner{max-width:none}
.skills-heading{border:0;padding:0;margin:22px 0 50px;gap:20px;align-items:end}
.skills-heading h2{margin:0}
.skills-heading>span{font-size:var(--type-label);line-height:1.5;letter-spacing:.02em;padding-bottom:10px}
.skills-grid{gap:44px 64px;counter-reset:skill}
.skill-item{padding-top:24px;position:relative}
.skill-item::before{counter-increment:skill;content:"0" counter(skill);display:block;font-size:var(--type-label);font-weight:500;line-height:1.5;letter-spacing:.08em;color:var(--muted);margin:0 0 17px}
.skill-item h3{font-size:26px;font-weight:500;line-height:1.35;letter-spacing:-.015em;margin:0 0 14px}
.skill-item p{font-size:var(--type-body);line-height:1.85;max-width:34ch;margin:0 0 20px}
.skill-tools{gap:6px 0}
.skill-tools li{font-size:var(--type-label);line-height:1.6;border:0;border-radius:0;padding:0;margin:0;color:var(--muted);letter-spacing:.015em}
.skill-tools li+li::before{content:" / ";color:#939188;margin:0 7px}
footer{padding:64px var(--gutter) 30px;overflow:hidden;background:#181a18}
footer>.chapter-meta{border-color:#eeece632;color:#eeece6}
footer>.chapter-meta>span:last-child{color:#bcbcb2}
footer>h2{font-size:clamp(44px,7.7vw,116px);font-weight:500;line-height:1.17;letter-spacing:-.04em;margin:44px 0 90px}
.footer-grid{font-size:var(--type-nav);line-height:1.6;grid-template-columns:2fr 1fr 1.6fr .7fr;gap:30px}
.footer-name{font-size:24px;font-weight:500;letter-spacing:.025em;line-height:1.3}
.footer-name small{font-size:var(--type-label);line-height:1.6;letter-spacing:.02em;margin-top:15px;font-weight:400;color:#bcbcb2}
.footer-grid h3{font-size:var(--type-label);line-height:1.5;letter-spacing:.07em;margin:0 0 22px}
.footer-grid a{margin:0 0 12px;line-height:1.6}
.email-link{font-size:var(--type-nav)}
.copyright{font-size:var(--type-label);font-weight:400;line-height:1.5;letter-spacing:.02em;margin-top:72px;padding-top:24px;border-color:#eeece632}
#menu{padding:110px var(--gutter);gap:18px;background:#181a18}
#menu a{font-size:clamp(36px,5.8vw,88px);font-weight:500;line-height:1.2;letter-spacing:-.03em;overflow:hidden}
#menu button,.close{font-size:var(--type-nav);font-weight:500;line-height:1.5;letter-spacing:.02em;padding:10px 18px}
.detail-hero .eyebrow,.project-study-link,.project-download,.project-gallery figcaption,.film-poster figcaption,.film-caption{font-size:var(--type-label);line-height:1.7;letter-spacing:.015em}
.detail-hero h2{font-size:clamp(30px,3.2vw,48px);font-weight:500;line-height:1.2;letter-spacing:-.025em}
.project-summary{font-size:var(--type-body);line-height:1.85;max-width:60ch}
.gallery-section-title{font-size:16px;font-weight:500;letter-spacing:.01em}
.detail-next{font-size:20px;font-weight:500;line-height:1.5;letter-spacing:-.01em}
.motion-enabled dialog[open],.motion-enabled #menu:not([hidden]){animation:none}
.work-card:focus-within>button,.archive-card:focus-within .archive-image img{transform:none!important;clip-path:none!important}
.opening-screen{display:none;position:fixed;inset:0;z-index:70;overflow:hidden;pointer-events:none;color:#eeece6}
.motion-pending .opening-screen,.is-opening .opening-screen{display:block}
.opening-panel{position:absolute;top:0;bottom:0;width:calc(33.333333% + 1px);background:#111311;z-index:1}
.opening-panel:nth-child(1){left:0}.opening-panel:nth-child(2){left:33.333333%}.opening-panel:nth-child(3){left:66.666666%}
.opening-dossier{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(480px,calc(100% - 72px));z-index:2}
.opening-name{font-size:clamp(52px,7vw,104px);font-weight:500;line-height:1.25;letter-spacing:-.03em;margin:0 0 30px;overflow:hidden}
.opening-name>span{display:block}
.opening-rule{height:1px;background:#eeece658;transform-origin:left;margin-bottom:22px}
.opening-meta{display:flex;justify-content:space-between;gap:20px;font-size:var(--type-label);font-weight:500;line-height:1.5;letter-spacing:.04em;margin:0;overflow:hidden}
.opening-meta>span{display:block}
.opening-skip{position:fixed;right:var(--gutter);bottom:28px;z-index:72;color:#eeece6;background:transparent;border:0;border-bottom:1px solid #eeece648;padding:8px 0;font-size:var(--type-label);letter-spacing:.02em;line-height:1.5}
.opening-skip[hidden]{display:none}
.motion-pending .opening-name>span,.motion-pending .opening-meta>span{transform:translateY(110%)}
.motion-pending .opening-rule{transform:scaleX(0)}
.motion-pending .hero-letter-inner{transform:translateY(130%) scale(.76)}
.is-opening .opening-panel,.is-opening .hero-letter-inner,.is-opening .hero-media{will-change:transform}
.is-opening .hero-background{will-change:clip-path}
@media(max-width:1100px){header nav{gap:14px}.nav-right{gap:20px}.archive-meta{display:block}.archive-meta>span{display:block;margin-top:7px}.about{column-gap:20px}.about h2{grid-column:1/9}.about-brief{grid-column:9/-1}.footer-grid{grid-template-columns:1.8fr 1fr 1.6fr}}
@media(max-width:800px){
 :root{--gutter:7%;--type-label:12px;--type-project:20px;--section-space:86px}
 header{grid-template-columns:1fr auto;padding:23px var(--gutter);gap:20px}
 header nav{display:none}.logo{justify-self:start;font-size:15px}.logo small{font-size:12px}.nav-right button{font-size:13px;min-width:0;padding:4px 0}.nav-right a{display:none}
 .hero-track{height:165svh}.hero-side{bottom:21%;left:var(--gutter);right:var(--gutter)}.hero-side p{font-size:23px;line-height:1.55;letter-spacing:0}.hero-side a{font-size:13px;min-width:180px;padding:10px 0}.hero-bottom{left:var(--gutter);font-size:12px;letter-spacing:.02em;bottom:25px}.scroll-guide{left:82%;bottom:6%}.scroll-guide i{height:54px}.scroll-guide span{font-size:12px;letter-spacing:.02em}
 .chapter-meta{font-size:12px;padding:20px 0 25px;gap:18px}.chapter-meta>span:last-child{text-align:right;max-width:45%}
 .works{padding-top:110px}.section-title,.archive-heading h2,.about h2,.skills-heading h2{font-size:clamp(42px,7.8vw,64px);line-height:1.2;margin:12px 0 34px;letter-spacing:-.035em}
 .work-nav{margin-bottom:25px}.work-controls>span{font-size:12px;margin-right:4px;min-width:55px}.work-nav p{font-size:12px}.work-nav button{width:33px;height:35px}.work-controls{gap:7px}.work-card h3{font-size:26px}.work-card .meta{font-size:12px}.explore{font-size:13px}.card-content{inset:24px}
 .introduction{padding-bottom:86px}.statement-title{font-size:clamp(40px,6.5vw,64px)!important;line-height:1.25!important;letter-spacing:-.04em}.statement-title>.motion-mask:nth-child(2){padding-left:0}
 .scene-track{height:150svh}.scene-content{left:var(--gutter);right:var(--gutter);top:35%;transform:none}.scene-content>p{font-size:12px;margin-bottom:27px}.scene-content h2{font-size:clamp(44px,7vw,68px);line-height:1.2}
 .archive-heading h2{margin-bottom:0}.archive-heading>span{font-size:12px;padding-bottom:8px}.archive-filters{font-size:13px;gap:8px 22px;margin:30px 0 37px}.archive-filters button{font-size:13px}.archive-grid{column-gap:22px}.archive-grid.masonry{--archive-card-gap:36px}.archive-card{padding:0}.archive-meta{padding:14px 0 0}.archive-meta h3{font-size:20px}.archive-meta>span{font-size:12px;margin-top:6px}.archive-image>span{width:31px;height:31px;font-size:17px}
 .about{display:block}.about h2{margin-top:22px}.about>p{font-size:12px!important;margin:0 0 35px}.about-brief{max-width:440px;margin:0 0 0 16%;padding:0}.education{font-size:15px;margin-bottom:24px}.education>span{font-size:12px;margin-top:10px}.about-intro{font-size:15px;line-height:1.85}
 .skills-heading{margin:22px 0 36px}.skills-heading h2{margin:0}.skills-heading>span{font-size:12px;padding-bottom:6px}.skills-grid{gap:35px 30px}.skill-item h3{font-size:24px}.skill-item p{font-size:15px}.skill-tools li{font-size:12px}.skill-item{padding-top:21px}
 footer{padding-top:45px}footer>h2{font-size:clamp(42px,6.5vw,70px);margin:34px 0 60px;line-height:1.25}.footer-grid{grid-template-columns:1fr 1fr;gap:36px 24px;font-size:13px}.footer-name{grid-column:1/-1;font-size:24px}.footer-name small{font-size:12px}.footer-grid h3{font-size:12px}.email-link{font-size:13px}.copyright{font-size:12px;gap:18px;margin-top:55px}.back-top{grid-column:1/-1}
 .detail-hero h2{font-size:30px}.project-summary{font-size:15px}.detail-next{font-size:18px}.gallery-section-title{font-size:15px}
 .opening-dossier{width:calc(100% - 56px)}.opening-name{font-size:56px;margin-bottom:26px}.opening-meta{font-size:12px;letter-spacing:.01em}.opening-skip{font-size:12px}
}
@media(max-width:600px){.skills-grid{grid-template-columns:1fr}.skills-heading>span{padding:0}.skills-heading{gap:14px}.archive-heading{gap:15px}.archive-heading>span{white-space:nowrap}.work-nav p{max-width:40%}.about-brief{margin-left:12%}}
@media(max-height:500px) and (min-width:801px){.hero-side{bottom:12%}.hero-side p{font-size:20px;margin-bottom:10px}.hero-side a{padding:8px 0}.scroll-guide i{height:35px}.hero-bottom{font-size:12px;bottom:18px}}
@media(prefers-reduced-motion:reduce){
 .hero-track,.scene-track{height:100svh}.hero-background img{animation:none}.scroll-guide i::after{animation:none}.mist{display:none}.motion-mask{overflow:visible}.motion-line,.hero-letter-inner{transform:none!important}.opening-screen,.opening-skip{display:none!important}.work-card,.work-cover::before,.card-content,.archive-image img{transition:none!important}.hero-title{clip-path:none!important;transform:none!important}
}
@media(max-height:500px){.hero-side{bottom:12%}.hero-side p{font-size:18px;line-height:1.45;margin:0 0 12px}.hero-side a{padding:8px 0;min-width:170px}.scroll-guide i{height:30px}.hero-bottom{font-size:12px;bottom:18px}}

/* Original scroll-driven character lighting; later sections stay static. */
.statement-title.word-reveal{color:#292a2740}
.statement-title.word-reveal .lit{color:var(--ink);transition:color .2s}
footer>.footer-grid{margin-top:44px}
@media(prefers-reduced-motion:reduce){.statement-title.word-reveal{color:var(--ink)}}
