@charset "UTF-8";
:root{--paper:#f8f8f5;--ink:#191919;--muted:#62625d;--line:#c6c6c0;--red:#e33720;--margin:clamp(22px,4vw,72px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:6px}::selection{background:var(--red);color:white}.red{color:var(--red)}.skip{position:fixed;top:-100px;background:var(--ink);color:white;padding:16px;z-index:20}.skip:focus{top:0}.nav{height:96px;display:flex;align-items:center;justify-content:space-between;margin:0 var(--margin);border-bottom:1px solid var(--ink)}.wordmark{font-size:27px;font-weight:700;letter-spacing:-1.5px}.wordmark span{font-size:15px;vertical-align:super;margin-left:4px}.nav nav{display:flex;gap:42px;font-size:14px}.nav nav span{font-size:10px;margin-left:5px;vertical-align:super}.nav a:hover,footer a:hover{color:var(--red)}main{min-height:60vh}.hero{padding:48px var(--margin) 70px;display:grid;grid-template-columns:2fr 1fr;gap:30px;position:relative}.eyebrow{font-size:12px;letter-spacing:.08em;margin:0 0 32px;display:flex;align-items:center;gap:10px}.dot{width:7px;height:7px;border-radius:100%;background:var(--red);display:inline-block}.hero h1{margin:0;font-size:clamp(58px,8.1vw,140px);line-height:1.05;font-weight:600;letter-spacing:-.075em}.hero-side{align-self:end;padding-bottom:5px;max-width:285px;justify-self:end}.hero-side p{font-size:17px;line-height:1.9;margin:0 0 30px}.hero-side a{font-size:13px;border-bottom:1px solid;padding-bottom:7px;display:flex;justify-content:space-between}.section-label{display:flex;justify-content:space-between;align-items:center;padding-top:17px;border-top:1px solid var(--ink);margin:0 0 28px;font-size:12px}.section-label h2{font-size:12px;font-weight:400;margin:0}.works{margin:0 var(--margin);scroll-margin-top:24px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px 24px}.work{display:block;min-width:0}.art{aspect-ratio:1.38;position:relative;overflow:hidden;isolation:isolate}.art img{transition:transform .55s ease;display:block}.work:hover .art img{transform:translateY(-5px)}.work:hover .work-name{color:var(--red)}.work .view{position:absolute;right:18px;bottom:18px;background:var(--paper);width:39px;height:39px;display:grid;place-items:center;border-radius:50%;z-index:3;transition:background .2s,color .2s}.work:hover .view{background:var(--ink);color:white}.gg-art{background:#f5c665;display:flex;justify-content:center;align-items:center;gap:6%;padding:8% 13% 0}.gg-art img{width:42%;height:auto;box-shadow:0 6px 22px #60381020;border-radius:13px}.gg-art img:first-child{margin-top:24%}.gg-art img:nth-child(2){margin-top:-10%}.room-art{background:#dedfd9;display:flex;justify-content:center;align-items:center;gap:7%;padding:7% 14% 0}.room-art img{width:43%;height:auto;box-shadow:0 6px 22px #0002;border-radius:16px}.room-art img:nth-child(2){margin-top:32%}.book-art{background:#e7e6df;display:grid;place-items:center;padding:9%}.book-art img{width:100%;box-shadow:0 7px 13px #0002;transform:rotate(-5deg)}.work:hover .book-art img{transform:rotate(-3deg) translateY(-5px)}.pain-art{background:#b9d6e5;display:grid;place-items:center;padding:10% 13%}.pain-art img{width:100%;mix-blend-mode:multiply}.work-info{display:grid;grid-template-columns:30px 1fr auto;gap:13px;padding-top:17px}.work-num{font-size:11px;padding-top:6px;font-variant-numeric:tabular-nums;color:var(--muted)}.work-name{font-size:clamp(21px,2.3vw,34px);line-height:1.15;letter-spacing:-.055em;margin:0 0 9px;font-weight:500}.work-desc{font-size:13px;line-height:1.6;margin:0;color:var(--muted)}.work-type{font-size:11px;line-height:1.7;text-align:right;padding-top:4px;white-space:nowrap}.about{margin:100px var(--margin) 85px;display:grid;grid-template-columns:1fr 2fr;gap:20px;border-top:1px solid var(--ink);padding-top:22px}.about h2{font-size:12px;font-weight:400;margin:0}.about-copy{max-width:780px}.about-copy p{font-size:clamp(23px,3vw,43px);line-height:1.65;letter-spacing:-.035em;margin:0 0 30px}.about-copy small{font-size:13px;color:var(--muted)}footer{border-top:1px solid var(--ink);margin:0 var(--margin);padding:23px 0 30px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.detail{padding:34px var(--margin) 80px}.back{display:inline-block;font-size:13px;margin-bottom:54px}.back:hover{color:var(--red)}.detail-header{display:grid;grid-template-columns:2fr 1fr;gap:30px;margin-bottom:46px}.detail-header h1{font-size:clamp(45px,7vw,108px);font-weight:500;letter-spacing:-.065em;line-height:1;margin:0 0 22px;overflow-wrap:anywhere}.detail-header .intro{font-size:19px;line-height:1.7;margin:0;max-width:650px}.detail-meta{align-self:end;font-size:12px;line-height:1.9}.detail-meta div{border-top:1px solid var(--line);padding:12px 0;display:flex;justify-content:space-between;gap:25px}.detail-meta dt{color:var(--muted)}.detail-meta dd{margin:0;text-align:right}.detail-hero{margin:0 0 64px;max-height:760px}.detail-hero .art{aspect-ratio:2.2;max-height:760px}.detail-hero .gg-art{padding:6% 28% 0}.detail-hero .room-art{padding:5% 29% 0}.detail-hero .book-art{padding:5% 22%}.detail-hero .pain-art{padding:4% 24%}.detail-content{display:grid;grid-template-columns:1fr 2fr;gap:20px;margin:0 0 45px;border-top:1px solid var(--ink);padding-top:22px}.detail-content h2{font-size:13px;font-weight:400;margin:0}.detail-content h3{font-size:24px;font-weight:500;line-height:1.5;margin:0 0 14px}.detail-content p{font-size:15px;line-height:1.9;margin:0 0 18px;max-width:740px;color:#44443f}.screens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;background:#eeeeea;padding:6% 12%;margin:0 0 70px}.figure{margin:0;min-width:0}.zoom{padding:0;border:0;background:transparent;cursor:zoom-in;display:block;width:100%}.zoom img{display:block;width:100%;height:auto}.screens .zoom img{border-radius:12px;box-shadow:0 3px 10px #0001}.figure figcaption{font-size:12px;line-height:1.7;color:var(--muted);margin-top:14px}.spreads{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:70px}.spreads .figure:first-child{grid-column:1/-1}.spreads .zoom{background:#e8e7e1;padding:4%}.spreads .figure:first-child .zoom{padding:6% 13%}.storyboards{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:0 0 70px}.storyboards .zoom{background:#e7eff3;padding:8%}.project-end{border-top:1px solid var(--ink);padding-top:23px;display:flex;justify-content:space-between;gap:20px;font-size:14px}.next{font-size:22px;letter-spacing:-.04em}.next:hover{color:var(--red)}dialog{border:0;width:min(1200px,94vw);max-height:94dvh;background:var(--paper);padding:65px 20px 20px;overflow:auto}dialog::backdrop{background:#111d}dialog img{display:block;max-width:100%;max-height:78dvh;object-fit:contain;margin:auto}dialog p{font-size:13px;text-align:center}.close-image{position:absolute;right:20px;top:20px;border:0;background:transparent;cursor:pointer;padding:5px}.empty{padding:100px var(--margin)}
@media(min-width:1700px){body{max-width:2000px;margin:auto}}@media(max-width:800px){.nav{height:78px}.nav nav{gap:25px}.hero{grid-template-columns:1fr;padding-top:35px;padding-bottom:45px;gap:28px}.eyebrow{margin-bottom:23px}.hero h1{font-size:clamp(56px,10vw,90px)}.hero-side{justify-self:start;max-width:100%;display:flex;align-items:end;gap:35px;width:100%}.hero-side p{font-size:14px;margin:0;flex:1}.hero-side a{width:130px;flex-shrink:0}.project-grid{gap:36px 18px}.work-info{grid-template-columns:22px 1fr;gap:5px}.work-type{grid-column:2;text-align:left;font-size:10px;padding:0}.work-name{font-size:23px}.work-desc{font-size:12px}.about{margin-top:65px;grid-template-columns:1fr 3fr}.detail-header{grid-template-columns:1fr}.detail-meta{margin:0}.detail-meta div{padding:7px 0}.detail-hero .art{aspect-ratio:1.5}.detail-hero .gg-art,.detail-hero .room-art{padding:6% 18% 0}.detail-hero .book-art{padding:8% 12%}.detail-hero .pain-art{padding:8% 12%}.detail-content{grid-template-columns:1fr;gap:24px}.screens{padding:6%;gap:18px}.storyboards{grid-template-columns:repeat(2,1fr);gap:20px}.detail-header h1{font-size:65px}.back{margin-bottom:40px}.detail-header .intro{font-size:17px}}
@media(max-width:540px){.project-grid{grid-template-columns:1fr;gap:36px}.hero h1{font-size:14vw}.hero-side p{font-size:13px}.hero-side{gap:15px}.art{aspect-ratio:1.3}.work-info{grid-template-columns:24px 1fr auto;gap:9px}.work-type{grid-column:3;text-align:right;padding-top:3px}.about{grid-template-columns:1fr;gap:25px;margin-bottom:50px}.about-copy p{font-size:24px}.detail-header h1{font-size:48px}.screens{grid-template-columns:1fr;padding:9% 18%;gap:35px}.screens .figure figcaption{text-align:center}.spreads{grid-template-columns:1fr;gap:30px}.spreads .figure:first-child .zoom{padding:4%}.storyboards{gap:14px}.storyboards figcaption{font-size:11px}.project-end{flex-direction:column;gap:28px}.detail{padding-bottom:50px}.detail-hero{margin-bottom:45px}.next{font-size:22px}.detail-content h3{font-size:22px}.detail-content p{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

.project-film{margin:0 0 64px}
.project-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#e4f4f4;object-fit:contain}
.project-film video:focus-visible{outline:2px solid var(--red);outline-offset:6px}
.project-film figcaption{display:flex;justify-content:space-between;gap:20px;padding-top:14px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:540px){.project-film{margin-bottom:45px}}

/* A shared twelve-column rhythm and quieter artwork presentation. */
:root{--paper:#fff;--line:#d5d5d0;--grid-gap:24px}
main:focus,h1:focus{outline:none}
.hero,.detail-header{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--grid-gap)}
.hero{padding-top:40px;padding-bottom:56px}
.hero h1{letter-spacing:-.06em;line-height:1.08}
.hero-side{justify-self:stretch;max-width:310px}
.work .view{border-radius:0;background:#fff;width:40px;height:40px}
.work-info{border-top:1px solid var(--ink);margin-top:16px;padding-top:16px}
.work-num{color:var(--ink)}
.book-art img,.work:hover .book-art img{transform:none}
.book-art img{box-shadow:0 5px 12px #00000013}
.about{gap:var(--grid-gap)}
.about-copy p{line-height:1.5;max-width:720px}
.detail-hero .gg-art,.detail-hero .room-art{height:clamp(370px,44vw,630px);aspect-ratio:auto;padding:40px;gap:40px}
.detail-hero .gg-art img,.detail-hero .room-art img{height:100%;width:auto;max-width:42%;object-fit:contain;margin:0;flex-shrink:1}
.detail-hero .book-art{aspect-ratio:1.8;padding:5% 15%}
.detail-hero .pain-art{aspect-ratio:1.8;padding:5% 20%}
.figure .zoom:focus-visible{outline-offset:8px}
.viewer-open{overflow:hidden}
dialog{position:fixed;width:min(1240px,94vw);height:min(880px,94dvh);max-height:94dvh;padding:0;overflow:hidden}
dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.viewer-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 24px;border-bottom:1px solid var(--line);font-size:12px}
.viewer-head .close-image{position:static;min-height:36px}
.viewer-stage{min-height:0;padding:24px;display:flex;align-items:center;justify-content:center;background:#f1f1ee}
.viewer-stage img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.viewer-foot{display:grid;grid-template-columns:100px minmax(0,1fr) 100px;align-items:center;gap:20px;padding:18px 24px;min-height:78px}
.viewer-foot p{margin:0;font-size:13px;line-height:1.6}
.viewer-foot button{background:transparent;border:0;padding:10px 0;cursor:pointer;font-size:12px}
.viewer-prev{text-align:left}.viewer-next{text-align:right}
.viewer-foot button:hover:not(:disabled),.close-image:hover{color:var(--red)}
.viewer-foot button:disabled{color:#a3a39e;cursor:default}
@media(max-width:800px){
  .hero,.detail-header{grid-template-columns:1fr}
  .hero{padding-top:32px;padding-bottom:40px}
  .hero-side{max-width:none}
  .detail-hero .gg-art,.detail-hero .room-art{height:440px;padding:28px;gap:28px}
  .detail-hero .book-art,.detail-hero .pain-art{aspect-ratio:1.4;padding:8%}
}
@media(max-width:540px){
  .hero h1{font-size:14vw}
  .work-info{grid-template-columns:24px minmax(0,1fr)}
  .work-type{grid-column:2;text-align:left;padding:0}
  .about{gap:24px}
  .detail-header h1{font-size:clamp(40px,11.5vw,60px)}
  .detail-hero .gg-art,.detail-hero .room-art{height:370px;padding:24px 16px;gap:18px}
  .detail-hero .gg-art img,.detail-hero .room-art img{max-width:46%}
  .viewer-head{padding:10px 16px}
  .viewer-stage{padding:12px}
  .viewer-foot{grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px}
  .viewer-foot p{grid-column:1/-1;grid-row:1;font-size:12px;text-align:left}
  .viewer-foot .viewer-prev{grid-column:1;grid-row:2}
  .viewer-foot .viewer-next{grid-column:2;grid-row:2}
}

/* Poster collection follows the portfolio's existing grid and type scale. */
.nav [aria-current]{color:var(--red)}
.text-link{font-size:12px;line-height:1.6;border-bottom:1px solid currentColor;padding-bottom:3px}
.text-link:hover{color:var(--red)}
.poster-preview{margin:96px var(--margin) 0}
.poster-preview-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}
.poster-preview-heading>p{font-size:clamp(22px,2.8vw,38px);line-height:1.4;letter-spacing:-.04em;margin:0}
.ai-label{display:inline-flex;align-items:center;gap:9px;font-size:12px;white-space:nowrap}
.poster-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.poster-preview-item{display:block;min-width:0}
.poster-preview-item img{width:100%;height:auto;aspect-ratio:2/3;object-fit:contain;display:block;background:#f1f1ee}
.poster-preview-item>span{display:flex;justify-content:space-between;font-size:13px;padding-top:13px}
.poster-preview-item:hover>span{color:var(--red)}
.posters-page{padding:34px var(--margin) 72px}
.posters-header{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--grid-gap);margin-bottom:60px}
.posters-header h1{margin:0;font-size:clamp(56px,7.4vw,118px);font-weight:500;letter-spacing:-.065em;line-height:1.12}
.posters-intro{align-self:end;max-width:380px}
.posters-intro>p{font-size:17px;line-height:1.85;margin:0 0 28px;max-width:300px}
.ai-disclosure{border-top:1px solid var(--ink);padding-top:15px}
.ai-disclosure h2{font-size:13px;font-weight:500;margin:0 0 10px}
.ai-disclosure p{font-size:12px;line-height:1.9;color:var(--muted);margin:0}
.poster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 32px}
.poster-card{margin:0;min-width:0}
.poster-zoom{background:#f1f1ee;overflow:visible}
.poster-zoom img{width:100%;height:auto;aspect-ratio:2/3;object-fit:contain;display:block}
.poster-card figcaption{border-top:1px solid var(--ink);padding-top:16px;margin-top:18px}
.poster-caption-top{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:12px;align-items:start}
.poster-number{font-size:11px;font-variant-numeric:tabular-nums;padding-top:5px}
.poster-caption-top h3{font-size:clamp(19px,2.1vw,30px);font-weight:500;line-height:1.2;letter-spacing:-.025em;margin:0 0 8px;overflow-wrap:anywhere}
.poster-caption-top p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}
.poster-ai{font-size:10px;line-height:1.6;padding-top:4px;white-space:nowrap;color:var(--muted)}
.poster-note{font-size:12px;line-height:1.7;color:var(--muted);margin:12px 0 0 38px}
.posters-end{margin-top:64px;padding-top:20px;border-top:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:12px;color:var(--muted)}
@media(max-width:800px){
  .poster-preview{margin-top:64px}
  .poster-preview-grid{gap:16px}
  .posters-header{grid-template-columns:1fr;gap:32px;margin-bottom:44px}
  .posters-intro{max-width:560px}
  .posters-intro>p{max-width:none;font-size:15px;margin-bottom:20px}
  .poster-grid{gap:42px 24px}
  .poster-caption-top{grid-template-columns:22px minmax(0,1fr);gap:10px}
  .poster-ai{grid-column:2;padding:0}
  .poster-note{margin-left:32px}
}
@media(max-width:540px){
  .nav nav{gap:18px;font-size:12px}
  .wordmark{font-size:23px}
  .nav nav span{font-size:9px;margin-left:3px}
  .poster-preview-heading{align-items:start;flex-direction:column;gap:13px;margin-bottom:22px}
  .poster-preview-grid{gap:10px}
  .poster-preview-item>span{font-size:11px;padding-top:10px}
  .posters-header h1{font-size:clamp(48px,12vw,66px)}
  .posters-page{padding-bottom:48px}
  .poster-grid{grid-template-columns:1fr;gap:38px}
  .poster-caption-top h3{font-size:24px}
  .posters-end{align-items:start;flex-direction:column;gap:20px;margin-top:44px}
}

/* A concise profile page shares the portfolio's editorial grid. */
.about-more{display:table;margin-top:24px}
.about-page{padding:34px var(--margin) 72px}
.about-header{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--grid-gap);padding-bottom:62px}
.about-header h1{font-size:clamp(64px,9.2vw,145px);line-height:1.05;letter-spacing:-.065em;font-weight:500;margin:0 0 22px}
.about-role{font-size:14px;line-height:1.8;margin:0;color:var(--muted)}
.about-statement{font-size:clamp(18px,2.1vw,28px);line-height:1.7;letter-spacing:-.025em;margin:0;align-self:end;padding-bottom:2px}
.about-profile{border-top:1px solid var(--ink);padding-top:22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--grid-gap)}
.about-profile h2{font-size:12px;font-weight:400;line-height:1.8;margin:0}
.about-profile-content{max-width:820px;min-width:0}
.about-bio{font-size:clamp(18px,2vw,24px);line-height:1.85;letter-spacing:-.015em;margin:0 0 42px;text-wrap:pretty}
.about-facts{margin:0;font-size:13px;line-height:1.9}
.about-facts>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:24px;border-top:1px solid var(--line);padding:16px 0}
.about-facts dt{color:var(--muted)}
.about-facts dd{margin:0;overflow-wrap:anywhere}
.about-page-end{margin-top:64px;border-top:1px solid var(--ink);padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:12px;color:var(--muted)}
.about-page-end>div{display:flex;gap:32px;flex-wrap:wrap}
@media(max-width:800px){
  .about-header{grid-template-columns:1fr;gap:30px;padding-bottom:42px}
  .about-statement{font-size:23px}
  .about-profile{grid-template-columns:1fr;gap:24px}
  .about-bio{font-size:20px;margin-bottom:32px}
}
@media(max-width:540px){
  .about-page{padding-bottom:48px}
  .about-header h1{font-size:clamp(58px,17vw,82px)}
  .about-role{font-size:13px}
  .about-statement{font-size:21px}
  .about-bio{font-size:18px;line-height:1.9}
  .about-facts>div{grid-template-columns:82px minmax(0,1fr);gap:16px;padding:14px 0;font-size:12px}
  .about-page-end{align-items:start;flex-direction:column;margin-top:44px}
  .about-page-end>div{gap:24px}
}

/* Contact details stay selectable and fit the same profile grid. */
.about-contact{margin-top:64px}
.about-contact .about-facts>div:first-child{border-top:0;padding-top:0}
.contact-email{border-bottom:1px solid currentColor;padding-bottom:2px}
.contact-email:hover{color:var(--red)}
footer{flex-wrap:wrap;align-items:baseline}
.footer-contact{display:flex;flex-wrap:wrap;gap:8px 20px;min-width:0}
.footer-contact a{overflow-wrap:anywhere}
@media(max-width:540px){.about-contact{margin-top:44px}.footer-contact{flex-basis:100%;order:1}footer>#back-top{margin-left:auto}}
