:root{--bg:#111;--ink:#ece9e3;--orange:#ff7948;--muted:#aaa8a4;--line:#ffffff26;--pad:5vw;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:6px}::selection{background:var(--orange);color:#111}button{touch-action:manipulation}img{max-width:100%;object-fit:contain}p{line-height:1.7}h1,h2,h3,p{margin-top:0}a,button{transition:background .2s,color .2s,opacity .2s}a:hover{opacity:.82}.skip{position:fixed;top:-100px;left:20px;background:var(--orange);padding:15px;z-index:100}.skip:focus{top:20px}.nav{height:100px;display:flex;align-items:center;justify-content:space-between;margin:0 var(--pad);border-bottom:1px solid var(--line)}.logo{font-size:32px;font-weight:850;letter-spacing:-2px}.nav nav{display:flex;gap:38px;align-items:center;font-size:14px}.nav-contact{border-bottom:1px solid var(--orange);padding-bottom:5px}.menu{display:none}.hero{position:relative;min-height:710px;height:calc(100svh - 100px);max-height:1100px;margin:0 var(--pad);overflow:hidden}.eyebrow{font-size:12px;line-height:1.4;letter-spacing:2px;font-weight:550}.hero-label{position:absolute;top:26px;left:0}.hero h1{font-size:clamp(140px,18vw,290px);line-height:.84;letter-spacing:-.075em;font-weight:900;margin:0;position:absolute;top:90px;left:-.008em;color:var(--orange);z-index:1}.hero-portrait{position:absolute;bottom:0;left:53%;width:42%;height:96%;display:flex;justify-content:center;align-items:end;pointer-events:none;will-change:transform}.hero-portrait img{height:100%;width:100%;object-position:center bottom}.hero-intro{position:absolute;bottom:75px;left:0;z-index:2}.hero-intro>p:last-child{font-size:clamp(19px,1.7vw,28px);line-height:1.5;margin-bottom:0}.hero-intro .eyebrow{margin-bottom:18px}.pill{display:inline-flex;align-items:center;gap:32px;border-radius:50px;background:var(--orange);color:#111;padding:21px 30px;font-size:14px;font-weight:600;min-height:56px}.pill span{font-size:24px;line-height:1}.hero-cta{position:absolute;bottom:85px;right:0;z-index:2}.scroll-cue{position:absolute;left:0;bottom:22px;font-size:12px;color:var(--muted);display:flex;gap:70px}.scroll-cue span{font-size:16px}.gallery{padding:105px 0 55px;overflow:hidden}.gallery-label{display:flex;justify-content:space-between;margin:0 var(--pad) 32px;font-size:14px}.gallery-track{display:flex;width:max-content;gap:18px;margin-bottom:18px;will-change:transform}.gallery-card{position:relative;flex:none;display:block;border:0;width:340px;height:230px;overflow:hidden;border-radius:18px;text-align:left;padding:25px;color:#181818}.gallery-card img{position:absolute;height:110%;width:70%;right:-20px;bottom:-48px;transition:transform .35s}.gallery-card:hover img{transform:rotate(3deg) scale(1.07)}.gallery-card strong{position:relative;z-index:1;display:block;font-size:30px;letter-spacing:-1px;max-width:140px;line-height:1.1}.gallery-card small{position:absolute;bottom:23px;left:25px;font-size:12px}.gallery-note{font-size:12px;color:var(--muted);margin:25px var(--pad) 0}.section-pad{padding:100px var(--pad)}.section-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:65px;padding-top:20px;border-top:1px solid var(--line);gap:20px;font-size:13px}.display{font-size:clamp(50px,7.7vw,124px);letter-spacing:-.065em;line-height:1.06;margin-bottom:45px;font-weight:800}.orange{color:var(--orange)}.muted{color:var(--muted);font-size:16px;line-height:1.9}.about-layout{display:grid;grid-template-columns:4fr 6fr;align-items:center;gap:8%}.about-image{position:relative;height:620px;display:flex;align-items:center}.about-image:before{content:"";position:absolute;inset:22% 0 6%;background:#272521;border-radius:50% 50% 25px 25px;z-index:-1}.about-image img{width:100%;height:100%;object-position:center}.image-caption{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:12px;white-space:nowrap}.about-copy .display{font-size:clamp(58px,6.8vw,110px);color:var(--orange)}.reveal-copy{font-size:clamp(24px,2.8vw,40px);line-height:1.7;font-weight:500}.reveal-copy span{transition:opacity .15s}.tags{display:flex;flex-wrap:wrap;gap:9px;margin:30px 0}.tags span{border:1px solid #ffffff40;border-radius:30px;padding:10px 16px;font-size:12px}.text-link{display:inline-flex;gap:70px;border-bottom:1px solid var(--orange);padding-bottom:10px;font-size:15px}.text-link span{color:var(--orange);font-size:24px}.light{background:#eeeae2;color:#191919;border-radius:48px 48px 0 0;--line:#19191930;--muted:#625f5b}.skill-list{margin-top:70px}.skill{border-top:1px solid var(--line)}.skill:last-child{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.skill summary{display:grid;grid-template-columns:140px 1fr 40px;gap:30px;align-items:center;padding:34px 0}.skill-number{font-size:82px;letter-spacing:-6px;font-weight:800;line-height:1}.skill h3{font-size:28px;margin:0 0 10px}.skill summary p{font-size:16px;color:#625f5b;max-width:720px;margin:0}.plus{font-size:30px;font-weight:300;transition:transform .2s}.skill[open] .plus,.job[open] .plus{transform:rotate(45deg)}.skill-body{padding:0 70px 35px 170px;font-size:16px;line-height:2}.skill-body ul{margin:0;padding-left:20px}.projects{position:relative;border-radius:48px 48px 0 0;margin-top:-38px;background:#111;padding-top:100px}.title-line{display:flex;justify-content:space-between;gap:30px;align-items:center}.title-line .muted{font-size:14px}.project-stack{padding-top:20px}.project-slot{height:850px}.project-card{position:sticky;top:35px;border:1px solid #85837e;border-radius:30px;padding:35px;background:#191919;transform-origin:top center;overflow:hidden}.project-head{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:25px}.project-head>div{display:flex;align-items:center;gap:25px}.project-number{font-size:68px;font-weight:750;letter-spacing:-4px}.project-category{font-size:11px;letter-spacing:1.5px;color:#aaa;margin-bottom:6px}.project-head h3{font-size:clamp(20px,2vw,32px);margin:0;letter-spacing:-1px}.outline{border:1px solid #a4a19a;border-radius:40px;padding:14px 23px;white-space:nowrap;background:transparent;font-size:13px}.outline:hover{background:var(--ink);color:#111}.project-visual{display:grid;grid-template-columns:1fr 1.15fr;gap:20px;min-height:430px}.concept-text{background:var(--project-color);color:#181818;border-radius:17px;padding:35px;display:flex;flex-direction:column;justify-content:space-between}.concept-text .big-word{font-size:clamp(48px,5.4vw,84px);line-height:1.05;font-weight:800;letter-spacing:-4px}.concept-text p{font-size:16px;max-width:400px;margin:25px 0 0}.concept-image{background:#252525;border-radius:17px;position:relative;overflow:hidden}.concept-image img{width:100%;height:440px;display:block;object-position:center 30%;transform:scale(1.05)}.concept-image small{position:absolute;bottom:17px;left:20px;font-size:11px;background:#111d;padding:5px 10px;border-radius:20px}.experience{padding-top:20px;padding-bottom:150px}.experience-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:7%}.experience .display{font-size:clamp(44px,4.9vw,80px)}.job{border-top:1px solid var(--line)}.job:last-child{border-bottom:1px solid var(--line)}.job summary{display:flex;justify-content:space-between;align-items:center;padding:28px 0;gap:15px}.job summary span:first-child{flex:1}.job small{font-size:12px;color:var(--muted)}.job h3{font-size:25px;margin:12px 0 0}.job-body{font-size:15px;line-height:1.8;padding-bottom:28px}.job-body dt{font-size:12px;color:var(--orange);margin-top:20px}.job-body dd{margin:7px 0}.contact{background:var(--orange);color:#171717;--line:#1717174d;padding-bottom:20px;border-radius:48px 48px 0 0}.contact-layout{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:20px}.contact .display{font-size:clamp(66px,8.4vw,134px);margin-bottom:28px}.contact-layout>img{height:620px;width:100%}.contact p{font-size:17px}.contact .dot{color:#f4eadd}.contact-link{background:#171717;color:#f4eadd;margin-top:18px}.contact p.contact-note{font-size:12px;margin-top:25px}.contact footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #1717174d;margin-top:80px;padding:30px 0;gap:20px}.contact footer p{margin:0;font-size:13px}.contact footer>a:last-child{font-size:13px}.contact p.teaching-note{font-size:11px;margin-bottom:0;color:#4c281a}dialog{border:1px solid #777;background:#eeeae2;color:#161616;border-radius:22px;width:min(760px,90vw);max-height:85svh;padding:65px 50px 40px}dialog::backdrop{background:#000b;backdrop-filter:blur(8px)}dialog h2{font-size:34px;line-height:1.3;letter-spacing:-1px}dialog .eyebrow{font-size:11px;color:#67605b}dialog p,dialog dd{font-size:16px;line-height:1.8}dialog dt{font-size:12px;font-weight:bold;margin-top:24px}dialog dd{margin:8px 0}body:has(dialog[open]){overflow:hidden}.dialog-close{position:absolute;top:20px;right:25px;background:none;border:0;font-size:13px;padding:10px}.motion-toggle{position:fixed;bottom:15px;right:20px;z-index:20;border:1px solid #777;background:#181818ed;color:#eee;border-radius:22px;padding:10px 14px;font-size:11px;backdrop-filter:blur(10px)}
@media(min-width:1000px) and (prefers-reduced-motion:no-preference){.hero h1{animation:enter .8s both}.hero-portrait img{animation:enter 1.2s both}.hero-intro,.hero-cta{animation:enter 1s .15s both}@keyframes enter{from{opacity:0;translate:0 25px}to{opacity:1;translate:0 0}}}
@media(min-width:1800px){:root{--pad:max(5vw,calc((100vw - 1620px)/2))}}
@media(max-width:1000px){.nav nav{gap:20px}.hero{min-height:670px}.hero h1{top:110px}.hero-portrait{width:49%;left:48%;height:86%}.hero-intro{bottom:100px}.hero-cta{bottom:35px}.about-layout{gap:4%;grid-template-columns:3fr 5fr}.about-image{height:500px}.about-copy .display{font-size:60px}.project-head>div{gap:15px}.project-head h3{font-size:22px}.project-number{font-size:48px}.concept-text{padding:25px}.contact-layout>img{height:500px}.project-slot{height:820px}.experience-layout{gap:5%}}
@media(max-width:700px){:root{--pad:6vw}.nav{height:75px}.logo{font-size:29px}.menu{display:flex;align-items:center;gap:20px;background:none;border:0;padding:12px 0;font-size:13px}.menu span{font-size:22px}.nav nav{display:none;position:absolute;left:0;right:0;top:75px;background:#171717;z-index:30;padding:25px 6vw;border-bottom:1px solid #555}.nav.open nav{display:flex;flex-direction:column;align-items:stretch;gap:0}.nav nav a{padding:15px 0;font-size:17px}.hero{height:calc(100svh - 75px);min-height:705px;max-height:950px}.hero-label{font-size:10px;letter-spacing:1.4px;top:23px}.hero h1{font-size:23.5vw;top:77px;line-height:.9}.hero-portrait{left:21%;width:80%;height:62%;bottom:120px;z-index:1}.hero-intro{bottom:53px;max-width:200px}.hero-intro .eyebrow{font-size:10px;letter-spacing:1px;margin-bottom:10px}.hero-intro>p:last-child{font-size:19px}.hero-cta{bottom:56px;padding:16px 19px;gap:16px;font-size:12px;min-height:48px;right:0}.hero-cta span{font-size:20px}.scroll-cue{bottom:17px;font-size:10px}.gallery{padding-top:65px}.gallery-label{gap:15px;align-items:center}.gallery-label .eyebrow{font-size:10px;max-width:140px}.gallery-label>span:last-child{font-size:11px}.gallery-card{width:235px;height:180px;padding:20px}.gallery-card strong{font-size:24px;max-width:110px}.gallery-card small{font-size:10px;left:20px;bottom:20px}.gallery-card img{bottom:-35px}.gallery-track{gap:12px;margin-bottom:12px}.gallery-note{font-size:10px}.section-pad{padding:65px var(--pad)}.section-top{margin-bottom:45px;gap:16px;font-size:11px}.section-top .eyebrow{font-size:10px;letter-spacing:1px}.display{font-size:51px;margin-bottom:30px}.about-layout{display:flex;flex-direction:column-reverse;gap:10px}.about-image{height:380px;width:80%}.about-image:before{inset:20% 0 8%}.about-copy .display{font-size:60px}.reveal-copy{font-size:24px}.muted{font-size:14px}.tags{gap:6px}.tags span{font-size:11px;padding:8px 12px}.light,.projects,.contact{border-radius:28px 28px 0 0}.skill-list{margin-top:40px}.skill summary{grid-template-columns:55px 1fr 22px;gap:14px;padding:27px 0}.skill-number{font-size:42px;letter-spacing:-2px}.skill h3{font-size:22px}.skill summary p{font-size:13px;line-height:1.7}.plus{font-size:25px}.skill-body{padding:0 15px 25px 70px;font-size:13px}.projects{margin-top:-24px;padding-top:70px}.title-line{display:block}.title-line .muted{font-size:13px}.project-slot{height:auto;margin-bottom:25px}.project-card{position:relative;top:auto!important;border-radius:22px;padding:20px;transform:none!important}.project-head{align-items:flex-start;flex-wrap:wrap;gap:12px}.project-head>div{gap:13px}.project-number{font-size:42px}.project-head h3{font-size:19px;letter-spacing:-.5px;line-height:1.5}.project-category{font-size:10px}.outline{padding:11px 17px;font-size:12px}.project-visual{grid-template-columns:1fr;gap:12px;min-height:0}.concept-text{padding:25px;min-height:235px}.concept-text .big-word{font-size:48px;letter-spacing:-2px}.concept-text p{font-size:14px}.concept-image img{height:300px;object-position:center 25%}.concept-image small{font-size:10px}.experience{padding-top:25px}.experience-layout{grid-template-columns:1fr;gap:25px}.experience .display{font-size:48px}.job small{font-size:11px}.job h3{font-size:23px}.job-body{font-size:14px}.contact-layout{grid-template-columns:1fr}.contact .display{font-size:64px}.contact p{font-size:15px}.contact-layout>img{height:380px;max-width:340px;justify-self:center}.contact p.contact-note{font-size:11px}.contact footer{margin-top:20px;gap:15px;flex-wrap:wrap}.contact footer p{font-size:11px}.contact p.teaching-note{font-size:10px;padding-bottom:35px}dialog{padding:65px 25px 30px}dialog h2{font-size:27px}dialog p,dialog dd{font-size:14px}.motion-toggle{bottom:12px;right:12px;padding:9px 12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.gallery-track{transform:none!important}.project-card{transform:none!important}.reveal-copy span{opacity:1!important}}
html.motion-off{scroll-behavior:auto}html.motion-off *{animation:none!important;transition:none!important}html.motion-off .gallery-track,html.motion-off .project-card,html.motion-off .hero-portrait{transform:none!important}html.motion-off .reveal-copy span{opacity:1!important}
/* User-selected upper-body crop: enlarge the existing character without changing identity. */
.hero-portrait{left:43%;width:65%;height:90%;overflow:hidden;align-items:flex-start}
.hero-portrait img{position:absolute;top:-1%;left:0;width:100%;height:auto;max-width:none;object-fit:initial}
.hero-cta{bottom:55px}
@media(min-width:1800px){.hero-portrait img{top:-8%}}
@media(max-width:1000px) and (min-width:701px){.hero-portrait{left:40%;width:76%;height:88%}.hero-portrait img{top:5%}}
@media(max-width:700px){.hero h1{z-index:2}.hero-portrait{left:4%;width:112%;height:65%;bottom:95px;mask-image:linear-gradient(#000 85%,transparent)}.hero-portrait img{top:0}.hero-intro{z-index:3;bottom:50px}.hero-cta{z-index:4;bottom:52px}}
.hero-portrait{left:37%;width:76%}
@media(max-width:1000px) and (min-width:701px){.hero-portrait{left:33%;width:86%}}
@media(max-width:700px){.hero-portrait{left:-36%;width:170%;height:59%;bottom:100px}.hero-portrait img{top:-1%}}
/* Interaction v2: all page layers pin in one shared scroll container. */
main{position:relative}.layer-anchor{height:0;pointer-events:none}.stack-page{position:sticky;top:var(--pin-top,18px);background:#111;box-shadow:0 -24px 65px #0005;border-radius:36px 36px 0 0;isolation:isolate}.stack-page:after{content:"";position:absolute;inset:0;background:#000;opacity:calc(var(--cover,0)*.23);pointer-events:none;border-radius:inherit;z-index:8}.hero.stack-page{border-radius:0;box-shadow:none}.skills.stack-page{background:#eeeae2}.contact.stack-page{background:#ff7948}.gallery.stack-page{background:#1b1b1b;border-top:1px solid #45413c}.projects.stack-page{margin-top:0}.about.stack-page{border-top:1px solid #383838}.experience.stack-page{background:#201d1b;padding-top:70px}.hero-intro{bottom:160px}.hero-modules{position:absolute;bottom:45px;left:0;width:47%;z-index:5;display:grid;grid-template-columns:1fr 1fr;gap:8px}.hero-modules button{display:flex;align-items:center;gap:14px;background:#1b1b1be8;border:1px solid #555;border-radius:8px;padding:14px 16px;font-size:13px;text-align:left}.hero-modules button:hover{background:#ff7948;color:#111;border-color:#ff7948}.hero-modules small{font-size:10px;color:#a5a19b}.hero-modules button span{margin-left:auto}.hero .scroll-cue{bottom:15px}.hero-portrait.directional{left:46%;width:56%;height:auto;aspect-ratio:1;bottom:0;overflow:visible;display:block;mask-image:none;transform:none!important}.look-portrait{position:relative;width:100%;height:100%;border:0;background:transparent;padding:0;display:block;transform-origin:50% 65%;transition:none;cursor:default;mask-image:linear-gradient(#000 92%,transparent)}.look-pose,.look-previous{position:absolute;inset:0;background-image:url('assets/bust-directions.png');background-size:300% 300%;background-position:50% 50%;background-repeat:no-repeat}.look-previous{opacity:0;pointer-events:none}.module-open{margin-left:auto;background:none;border:1px solid currentColor;padding:11px 18px;border-radius:30px;white-space:nowrap;font-size:12px}.section-top{align-items:center}.section-top>span:nth-child(2){margin-left:auto}.dialog-project{display:block;margin-top:15px;border:1px solid #777;border-radius:30px;background:transparent;padding:10px 18px;font-size:13px}.project-slot{display:contents}.project-card{margin-bottom:20vh;box-shadow:0 -15px 40px #0005}.project-card:last-child{margin-bottom:0}.project-stack{padding-bottom:30px}.projects .project-visual{min-height:330px}.projects .concept-image img{height:360px}.project-card{padding:26px}.project-head{margin-bottom:18px}.concept-text .big-word{font-size:clamp(45px,4.6vw,72px)}
@media(max-width:1000px) and (min-width:701px){.hero-portrait.directional{left:40%;width:65%}.hero-modules{width:52%}.hero-intro{bottom:170px}}
@media(max-width:700px){.stack-page{border-radius:25px 25px 0 0}.hero.stack-page{min-height:850px;height:calc(100svh - 75px);margin:0 var(--pad)}.hero-portrait.directional{left:-13%;width:126%;height:auto;aspect-ratio:1;bottom:210px}.hero-intro{bottom:143px}.hero-intro>p:last-child{font-size:17px}.hero-intro .eyebrow{display:none}.hero-cta{bottom:157px;font-size:11px;padding:14px 16px;gap:10px}.hero-modules{bottom:43px;width:100%;gap:7px}.hero-modules button{padding:13px 12px;font-size:12px}.hero .scroll-cue{bottom:12px}.hero h1{font-size:23vw}.section-top{gap:10px;flex-wrap:wrap}.section-top>span:nth-child(2){display:none}.module-open{font-size:11px;padding:10px 14px}.project-card{position:sticky;top:20px!important;margin-bottom:12vh;padding:18px}.project-visual{grid-template-columns:1fr 1fr;gap:10px;min-height:260px!important}.concept-text{padding:15px;min-height:0}.concept-text .big-word{font-size:31px;letter-spacing:-1.5px}.concept-text p{font-size:12px;line-height:1.6;margin-top:16px}.concept-image img,.projects .concept-image img{height:100%;min-height:280px;object-fit:cover;object-position:50% 20%}.concept-image small{left:5px;right:5px;bottom:10px;font-size:9px;padding:5px;text-align:center}.project-head h3{font-size:16px}.project-number{font-size:34px}.project-category{font-size:9px}.project-head{margin-bottom:15px}.project-card .outline{padding:10px 14px}.project-stack{padding-bottom:0}.experience.stack-page{padding-top:50px}}
@media(prefers-reduced-motion:reduce){.look-portrait{transform:none!important}.look-previous{display:none}.stack-page:after{opacity:0}}
html.motion-off .look-portrait{transform:none!important}html.motion-off .look-previous{display:none}
@media(max-width:700px){.hero.stack-page{min-height:720px}.hero-portrait.directional{left:-5%;width:110%;bottom:210px}}
/* Letter-by-letter entrance; text remains available with motion disabled. */
.hero h1.letter-intro{animation:none;opacity:1;translate:none;line-height:.95}
.intro-line{display:block;white-space:nowrap}
.intro-greeting{font-size:.48em;letter-spacing:-.065em;margin-bottom:.13em}
.intro-name{font-size:1em;letter-spacing:-.075em}
.intro-letter{display:inline-block;animation:letter-arrive .52s cubic-bezier(.2,.75,.25,1) both;animation-delay:calc(.18s + var(--letter)*.075s);will-change:transform,opacity}
@keyframes letter-arrive{from{opacity:0;transform:translateY(.23em);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(prefers-reduced-motion:reduce){.intro-letter{animation:none;opacity:1;transform:none;filter:none;will-change:auto}}
html.motion-off .intro-letter{animation:none;opacity:1;transform:none;filter:none;will-change:auto}
/* V4: five distinct editorial cards, no repeated tracks or cloned items. */
.gallery{padding-top:65px;padding-bottom:40px}.gallery-track{gap:22px;margin:0;padding:0 5vw;transition:none}.gallery-unique{width:clamp(290px,30vw,460px);height:390px;padding:28px;border-radius:20px}.gallery-index{font-size:11px;letter-spacing:1.5px;position:relative;z-index:2}.gallery-unique strong{font-size:35px;letter-spacing:-1.5px;max-width:none;margin-top:22px}.gallery-unique img{height:85%;width:80%;right:-14px;bottom:15px;object-position:center;mask-image:linear-gradient(#000 87%,transparent)}.gallery-unique small{display:flex;justify-content:space-between;left:28px;right:28px;bottom:23px;z-index:2;font-size:10px;letter-spacing:1px}.gallery-unique small span{font-size:23px;line-height:1}.gallery-unique:nth-child(2) img{height:90%;right:-45px;bottom:4px}.gallery-unique:nth-child(3) img{height:77%;width:90%;bottom:12px}.gallery-unique:nth-child(4) img{height:79%;right:-30px}.gallery-unique:nth-child(5) img{height:89%;right:-32px}
/* Shared detail pages: dark canvas, large editorial heading, character feature. */
#project-detail{width:min(1060px,94vw);max-height:90svh;padding:0;border:1px solid #4c4841;border-radius:24px;background:#181817;color:#e9e5dc;--detail-accent:#ff7948;box-shadow:0 35px 140px #000b;scrollbar-color:#656056 #181817}
#project-detail::backdrop{background:#090909d9;backdrop-filter:blur(12px)}
.detail-toolbar{position:sticky;top:0;z-index:5;background:#181817f5;backdrop-filter:blur(15px);border-bottom:1px solid #ffffff1f;padding:19px 35px;display:flex;align-items:center;justify-content:space-between}.detail-toolbar>span{display:flex;align-items:center;gap:22px}.detail-toolbar b{font-size:26px;letter-spacing:-2px}.detail-toolbar>span>span{font-size:10px;letter-spacing:2px;color:#aaa69d}
#project-detail .dialog-close{position:static;background:#2a2926;color:#e9e5dc;border:1px solid #4c4841;padding:10px 17px;border-radius:25px;font-size:12px}.dialog-close:hover{background:#444039!important}
.detail-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;margin:0 42px;min-height:350px;border-bottom:1px solid #ffffff26;overflow:hidden}.detail-heading{padding:50px 0 32px;align-self:center;position:relative;z-index:2}
#project-detail .eyebrow{font-size:11px;color:#b1aba2;letter-spacing:2px;margin-bottom:24px}
#project-detail h2{font-size:clamp(32px,4.4vw,66px);line-height:1.13;letter-spacing:-2px;font-weight:750;color:var(--detail-accent);margin:0 0 24px;max-width:640px}
#project-detail .detail-intro{color:#e0d9ce;font-size:18px;line-height:1.85;margin:0;max-width:510px;text-wrap:pretty}
.detail-figure{position:relative;min-height:350px;display:flex;justify-content:center;align-items:end;isolation:isolate}.detail-figure img{position:absolute;height:355px;width:100%;bottom:-10px;object-fit:contain;object-position:50% 25%;z-index:1;mask-image:linear-gradient(#000 85%,transparent)}.detail-orbit{position:absolute;width:250px;height:250px;bottom:12px;border-radius:50%;background:#292722;border:1px solid #504a40;z-index:0}.detail-signature{position:absolute;right:0;bottom:18px;font-family:Georgia,serif;font-style:italic;font-size:22px;color:var(--detail-accent);z-index:2}
.detail-body{padding:36px 42px 26px}.detail-body dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:30px 38px}.detail-block{padding-top:18px;border-top:1px solid #ffffff24;min-width:0}.detail-number{color:var(--detail-accent);font-size:12px;font-weight:400;letter-spacing:1px;margin-right:15px}
#project-detail dt{margin:0 0 17px;font-size:17px;font-weight:600;line-height:1.7;letter-spacing:0}#project-detail dd{margin:0;color:#bfb9ae;font-size:15px;line-height:1.95;text-wrap:pretty}#project-detail dd ul{padding-left:18px;margin:12px 0 0;color:#a6a095;font-size:14px}#project-detail dd li{padding:3px 0}.detail-block:last-child:nth-child(odd){grid-column:1/-1}.detail-tag{display:inline-block;font-size:12px;padding:9px 17px;border:1px solid #5c5143;border-radius:25px;color:#e5d9c7;margin:0 8px 8px 0;background:#27241f}.detail-foot{margin-top:35px;padding-top:20px;border-top:1px solid #ffffff1a;display:flex;justify-content:space-between;gap:20px;color:#8b867d;font-size:11px}.detail-foot span:last-child{font-size:9px;letter-spacing:1.5px}.dialog-project{border-color:#655a4c;background:#2a251e;color:#eedcc2;margin-top:18px}.dialog-project:hover{background:var(--detail-accent);color:#111}.detail-body .pill{background:var(--detail-accent)}
@media(max-width:700px){.gallery-track{padding:0 6vw;gap:15px;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#666 #222;padding-bottom:15px;transform:none!important}.gallery-unique{width:78vw;height:340px;scroll-snap-align:center;padding:24px}.gallery-unique strong{font-size:30px;margin-top:18px}.gallery-unique small{left:24px;right:24px;font-size:9px}.gallery-note{margin-top:20px}
#project-detail{width:94vw;max-height:92svh;border-radius:19px}.detail-toolbar{padding:14px 20px}.detail-toolbar>span{gap:13px}.detail-toolbar>span>span{font-size:8px;letter-spacing:1px}.detail-toolbar b{font-size:23px}#project-detail .dialog-close{font-size:11px;padding:9px 13px}.detail-hero{margin:0 23px;gap:0;grid-template-columns:1fr;min-height:0;position:relative}.detail-heading{padding:32px 0 25px}#project-detail .eyebrow{font-size:9px;letter-spacing:1.3px;margin-bottom:18px}#project-detail h2{font-size:40px;letter-spacing:-1.5px;max-width:none;margin-bottom:20px}#project-detail .detail-intro{font-size:15px;line-height:1.8}.detail-figure{min-height:210px}.detail-figure img{height:240px;object-position:50% 25%;width:80%}.detail-orbit{width:180px;height:180px}.detail-signature{font-size:21px}.detail-body{padding:27px 23px 24px}.detail-body dl{grid-template-columns:1fr;gap:24px}#project-detail dt{font-size:16px;margin-bottom:12px}#project-detail dd{font-size:14px;line-height:1.9}.detail-number{margin-right:12px}.detail-foot{font-size:10px;gap:12px}.detail-foot span:last-child{font-size:8px;letter-spacing:.6px}.detail-tag{padding:7px 12px;font-size:11px}}
.gallery-track{width:100%;overflow-x:auto;transform:none!important;scrollbar-width:none}.gallery-track::-webkit-scrollbar{display:none}.gallery-controls{display:flex;justify-content:flex-end;gap:9px;margin:18px 5vw 0}.gallery-controls button{width:44px;height:40px;border:1px solid #55514a;background:#25231f;border-radius:25px;font-size:20px}.gallery-controls button:hover{background:#ff7948;color:#111}.gallery-note{margin-top:-29px;margin-right:170px;min-height:29px;pointer-events:none}@media(max-width:700px){.gallery-note{font-size:10px;margin-right:125px}.gallery-controls{margin-right:6vw}.gallery-controls button{width:38px;height:36px}}
/* V5: two opposing rows, ten distinct entries; no cloned cards. */
.gallery-track{gap:18px;padding:0 5vw}.track-two{margin-top:18px}.gallery-unique{width:360px;height:255px;padding:25px;text-align:left;display:block}.gallery-unique .gallery-index{position:absolute;left:25px;top:23px}.gallery-unique strong{position:absolute;left:25px;top:58px;margin:0;font-size:29px;max-width:125px;line-height:1.18;z-index:2}.gallery-unique small{left:25px;right:25px;bottom:20px;font-size:9px;letter-spacing:.8px}.gallery-unique img,.gallery-unique:nth-child(n) img{height:94%;width:68%;right:-15px;bottom:10px;object-fit:contain;object-position:center;mask-image:linear-gradient(#000 84%,transparent)}.gallery-pose{position:absolute;bottom:15px;right:0;background-repeat:no-repeat;mask-image:linear-gradient(#000 85%,transparent);transition:transform .35s}.full-pose{height:235px;aspect-ratio:2/3;right:8px}.bust-pose{width:230px;height:230px;right:-25px;bottom:9px}.gallery-unique:hover .gallery-pose{transform:scale(1.04) rotate(2deg)}.gallery-controls{margin-top:20px}.gallery-label{margin-bottom:28px}.gallery{padding-top:55px;padding-bottom:35px}
@media(max-width:700px){.gallery-track{padding:0 6vw;gap:12px;padding-bottom:0}.track-two{margin-top:12px}.gallery-unique{width:290px;height:230px;padding:20px}.gallery-unique .gallery-index{left:20px;top:20px;font-size:10px}.gallery-unique strong{left:20px;top:50px;font-size:25px;max-width:100px}.gallery-unique small{left:20px;right:20px;font-size:8px}.gallery-unique img,.gallery-unique:nth-child(n) img{right:-13px;width:68%;height:90%}.full-pose{height:205px;right:0;bottom:16px}.bust-pose{width:195px;height:195px;right:-24px;bottom:15px}}
/* Mobile shares the same scroll interactions, with touch replacing the mouse. */
.hero-portrait.directional{pointer-events:auto}.look-portrait{touch-action:pan-y}
@media(max-width:700px){.project-card{transform:scale(var(--card-scale,1))!important}.gallery-track{scroll-snap-type:none}}
@media(prefers-reduced-motion:reduce){.project-card{transform:none!important}}
html.motion-off .project-card{transform:none!important}
