:root{--bg:#c8cbe0;--paper:#f7f7f5;--white:#fff;--ink:#303044;--muted:#666676;--header:#252427;--purple:#7971be;--purple-dark:#584992;--lime:#d8fb75;--mint:#dce9e2;--lemon:#edf0c7;--peach:#f0ded1;--rose:#efdee6;--line:#dcdce3;--thumb:#8c88a3;--track:#eeeef2;--thumb-hover:#706785;--thumb-active:#51485f;--pad:6.3vw;--radius:16px;--header-height:80px;--display:Impact,'Arial Narrow',sans-serif;--body:Arial,'PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px;scrollbar-gutter:stable;scrollbar-color:var(--thumb) var(--track);scrollbar-width:thin}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0}button,a,summary{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.5}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--purple-dark);outline-offset:6px}button:active,.pill:active{transform:translateY(1px)}img{display:block;max-width:100%;height:auto}p,h1,h2,h3{margin-top:0}h1,h2,h3{line-height:1.3;letter-spacing:-.04em}h1{font-size:clamp(40px,5.7vw,86px);font-weight:650}h2{font-size:clamp(30px,3.7vw,58px);font-weight:600}h3{font-size:26px;font-weight:600}p{margin-bottom:20px}ul{padding-left:1.2em}.section{padding:100px var(--pad)}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:600;line-height:1.6;margin-bottom:24px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:58px}.section-heading h2{margin-bottom:0}.section-heading>p{color:var(--muted);font-size:14px;line-height:1.9}.lilac{background:var(--bg)}.mint{background:var(--mint)}.lemon{background:var(--lemon)}.peach{background:var(--peach)}.rose{background:var(--rose)}.violet-dot{color:var(--purple-dark)}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:var(--track)}::-webkit-scrollbar-thumb{background:var(--thumb);border:2px solid var(--track);border-radius:9px}::-webkit-scrollbar-thumb:hover{background:var(--thumb-hover)}::-webkit-scrollbar-thumb:active{background:var(--thumb-active)}
.skip-link{position:fixed;top:-100px;left:15px;z-index:1000;background:var(--lime);color:var(--ink);padding:12px 20px}.skip-link:focus{top:10px}.site-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);background:var(--header);color:var(--white);position:sticky;top:0;z-index:50;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:19px;line-height:1}.monogram{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font:28px Georgia,serif;background:var(--purple)}.site-header nav{display:flex;gap:40px;align-items:center}.site-header nav a{font-size:14px;color:#c5c3cb;position:relative;padding:26px 0}.site-header nav a[aria-current=page],.site-header nav a:hover{color:var(--white)}.site-header nav a[aria-current=page]:after{content:'';position:absolute;bottom:16px;height:2px;left:0;right:0;background:var(--lime)}.site-header a:focus-visible,.site-header button:focus-visible{outline-color:var(--lime)}.header-actions{display:flex;gap:12px;align-items:center}.contact-button{background:var(--lime);color:var(--ink);border-radius:5px;padding:10px 21px;font-size:14px;font-weight:700;display:flex;gap:18px;align-items:center}.contact-button:hover{background:#e6ffa5}.contact-button span{font-size:20px}.menu-toggle{display:none}.pill{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid var(--ink);border-radius:50px;padding:14px 25px;min-height:50px;font-size:13px;white-space:nowrap;transition:background .2s,color .2s,transform .2s}.pill.primary{background:var(--white);border-color:var(--white)}.pill.dark{background:var(--ink);color:var(--white);border-color:var(--ink)}.pill:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}.text-link,.text-button{font-size:13px;font-weight:600;border-bottom:1px solid currentColor;padding:8px 0;display:inline-flex;gap:20px;align-items:center;min-height:42px}.text-link:hover,.text-button:hover{color:var(--purple-dark)}
/* Character animations are local transparent WebP clips with still posters. */
.character{position:relative;width:100%;aspect-ratio:9/16}.character>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.motion-toggle{position:absolute;left:50%;bottom:0;transform:translateX(-50%);padding:7px 13px;background:rgb(247 247 245 / .9);border-radius:40px;font-size:10px;line-height:1.4;white-space:nowrap;color:var(--ink);z-index:4;display:flex;gap:12px;min-height:30px}.motion-toggle:hover{background:var(--white);color:var(--purple-dark)}.motion-toggle:active{transform:translateX(-50%) translateY(1px)}
/* Original central-character composition extended to a complete site. */
.home-hero{position:relative;min-height:640px;height:calc(100svh - var(--header-height));max-height:1100px;background:var(--bg);isolation:isolate;overflow:hidden}.dots{position:absolute;inset:0;background-image:radial-gradient(#fff7 .7px,transparent .8px);background-size:24px 24px;z-index:-1}.hero-word{position:absolute;top:5%;left:var(--pad);right:var(--pad);font:900 17.4vw/.95 var(--display);letter-spacing:.005em;color:var(--white);text-align:center;white-space:nowrap}.hero-character{position:absolute;width:auto;height:80%;left:50%;bottom:-5%;transform:translateX(-50%);z-index:2}.hero-character .motion-toggle{bottom:7%}.hero-intro{position:absolute;left:var(--pad);top:47%;width:32%;z-index:3}.hero-intro .eyebrow{font-size:10px;margin-bottom:16px}.hero-intro h1{font-size:clamp(22px,2.32vw,38px);line-height:1.5;letter-spacing:-.025em;margin-bottom:23px;font-weight:650}.hero-intro>p:not(.eyebrow){font-size:13px;line-height:1.9;color:var(--ink)}.hero-actions{display:flex;gap:13px;margin-top:32px}.hero-actions .pill{padding:13px 22px;min-width:135px}.hero-profile{position:absolute;left:76%;top:51%;width:21%;padding-left:22px;border-left:1px solid var(--ink);z-index:3}.profile-name{font-size:24px;font-weight:600;display:block;margin-bottom:24px}.hero-profile .eyebrow{font-size:12px;letter-spacing:.08em;margin-bottom:12px}.hero-profile ul{list-style:none;padding:0;margin:0;font-size:12px;line-height:2.05}.hero-caption{position:absolute;right:var(--pad);bottom:5%;font-size:10px;letter-spacing:.13em;text-align:right;display:flex;flex-direction:column}.scroll-cue{position:absolute;left:var(--pad);bottom:3.8%;font-size:9px;letter-spacing:.11em;padding:5px 0}.scroll-cue:hover{color:var(--purple-dark)}
/* Featured work: large visual canvases with a quieter written column. */
.selected-section{padding-bottom:110px}.feature{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:6.5%;align-items:center;padding:44px 0 64px;border-bottom:1px solid var(--line)}.feature+.feature{padding-top:64px}.feature:last-child{padding-bottom:0;border:0}.feature-image{display:block;position:relative;border-radius:var(--radius);min-height:460px;overflow:hidden;display:flex;align-items:center;padding:36px}.feature-image>img{width:100%;object-fit:contain;border-radius:3px;transition:transform .5s}.feature-image:hover>img{transform:scale(1.035)}.feature-summer .feature-image{background:#272329}.feature-dcar .feature-image{background:#dce8dd}.feature-tianmao .feature-image{background:#e8eec3}.feature-copy .eyebrow{color:var(--purple-dark);margin-bottom:16px}.feature-copy h3{font-size:clamp(30px,3.1vw,47px);margin-bottom:12px}.feature-copy h3 a:hover{color:var(--purple-dark)}.project-label{font-size:12px;line-height:1.7;margin-bottom:25px;color:var(--muted);letter-spacing:.02em}.project-summary{font-size:14px;color:var(--muted);line-height:1.9;margin-bottom:21px}.role{font-size:11px!important;line-height:1.8;color:var(--muted);margin-bottom:24px!important}.feature-fact{display:flex;align-items:baseline;gap:15px;margin:24px 0 21px}.feature-fact strong{font-size:40px;letter-spacing:-.04em;font-weight:500}.feature-fact span{font-size:11px;color:var(--muted)}.image-arrow{position:absolute;bottom:18px;right:18px;border:1px solid #fff7;background:var(--white);color:var(--ink);border-radius:50%;width:43px;height:43px;display:grid;place-items:center;font-size:22px;transition:transform .2s}.feature-image:hover .image-arrow,.work-art:hover .image-arrow{transform:rotate(45deg)}
.methods-section{display:grid;grid-template-columns:1fr 1.1fr;gap:9%;background:var(--mint);padding-top:100px;padding-bottom:80px}.method-intro{position:relative;min-height:700px}.method-intro h2{font-size:clamp(30px,3.1vw,46px)}.method-intro>p:not(.eyebrow){font-size:14px;color:var(--muted)}.method-character{width:285px;height:410px;margin:-5px auto -15px;aspect-ratio:auto}.methods-list{padding-top:5px}.methods-list article{display:flex;gap:20px;padding:27px 0;border-top:1px solid #30304435}.methods-list article:last-child{border-bottom:1px solid #30304435}.method-number{font:26px/1.3 var(--display);color:var(--purple-dark);min-width:38px}.methods-list h3{font-size:23px;letter-spacing:-.02em;margin-bottom:14px}.methods-list p{font-size:13px;line-height:1.95;color:var(--muted);margin-bottom:8px}.methods-list .text-link{font-size:11px}.more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.small-image{aspect-ratio:1.3;overflow:hidden;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:20px}.small-image>img{width:100%;max-height:100%;object-fit:contain;transition:transform .4s}.small-card:hover img{transform:scale(1.04)}.small-card .eyebrow{margin:22px 0 10px;color:var(--muted);font-size:10px}.small-card h3{font-size:18px;line-height:1.7}.small-card:hover h3{color:var(--purple-dark)}.small-image .graphic-art{padding:0}.small-image .graphic-art strong{font-size:clamp(22px,2.3vw,35px)}.small-image .graphic-art small{display:none}.small-image .diagram-pills{gap:4px}.small-image .diagram-pills b{font-size:8px;padding:5px}.about-teaser{background:#ebebf0;display:grid;grid-template-columns:.65fr 1.35fr;gap:10%;align-items:center}.portrait-wrap{position:relative;max-width:340px;margin:auto;width:100%;padding-bottom:24px}.portrait-wrap>img{width:100%;height:420px;object-fit:cover;object-position:center;border-radius:180px 180px 12px 12px}.photo-caption{position:absolute;left:20px;bottom:0;background:var(--lime);padding:9px 16px;font-size:11px;transform:rotate(-3deg);white-space:nowrap;letter-spacing:.06em}.about-teaser h2{font-size:clamp(29px,3.4vw,49px)}.about-teaser p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:640px;line-height:1.95}.about-teaser .text-link{margin-top:15px}
/* Shared contact; the fifth character closes the story. */
.contact-section{padding:100px var(--pad) 60px;display:grid;grid-template-columns:1.5fr 1fr;gap:5%;background:var(--bg);position:relative;overflow:hidden}.contact-copy{position:relative;z-index:2}.contact-copy h2{font-size:clamp(38px,4.5vw,68px);margin-bottom:24px}.contact-copy>p:not(.eyebrow){font-size:13px;line-height:1.95;max-width:590px}.email-link{font-size:clamp(21px,2.4vw,36px);font-weight:500;letter-spacing:-.025em;display:inline-flex;align-items:center;gap:30px;border-bottom:1px solid #30304455;padding:7px 0;margin-top:10px}.email-link:hover{color:var(--purple-dark)}.contact-tools{display:flex;gap:30px;margin-top:18px}.contact-tools>*{font-size:11px}.contact-character{position:relative;align-self:end;display:grid;grid-template-columns:94px minmax(190px,1fr);align-items:end;gap:4px}.wechat-contact{position:relative;z-index:4;display:grid;justify-items:center;gap:7px;margin:0 0 42px;padding:8px 8px 10px;background:#fff;border:1px solid #30304418;border-radius:9px;box-shadow:0 14px 35px #30304416;transform:rotate(-4deg)}.wechat-contact img{width:78px;height:78px;object-fit:contain;background:#fff;border-radius:4px}.wechat-contact figcaption{color:var(--muted);font-size:9px;line-height:1.4;white-space:nowrap}.contact-character .character{height:340px;aspect-ratio:auto}.speech{position:absolute;left:49%;top:-8px;z-index:5;border-radius:30px;background:var(--lime);padding:10px 20px;font-size:12px;transform:rotate(5deg)}.site-footer{padding:27px var(--pad);display:flex;align-items:center;gap:25px;background:var(--header);color:#c5c3cb;font-size:10px}.site-footer>a:first-child{font-size:15px;font-weight:700;color:var(--white)}.site-footer p{margin:0 auto 0 15px}.back-top{font-size:20px;border:1px solid #c5c3cb66;border-radius:50%;width:35px;height:35px;display:grid;place-items:center}.back-top:hover{color:var(--lime);border-color:var(--lime)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:120;background:var(--ink);color:var(--white);font-size:13px;max-width:90vw;padding:13px 24px;border-radius:10px;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
/* Subpage mastheads: same IP, a different working mode. */
.page-masthead{position:relative;min-height:510px;overflow:hidden;isolation:isolate;display:flex;align-items:center;padding-top:80px;padding-bottom:80px}.page-masthead>div:first-child{z-index:2;position:relative;max-width:68%}.page-masthead h1{margin-bottom:22px}.page-masthead h1>span{color:var(--purple-dark)}.page-masthead p:not(.eyebrow){font-size:14px;line-height:1.9}.works-masthead{background:var(--mint)}.about-masthead{background:var(--bg);min-height:590px}.masthead-character{position:absolute;right:9%;bottom:-28px;width:310px;height:470px;aspect-ratio:auto;z-index:1}.masthead-character .motion-toggle{bottom:30px}.about-masthead .masthead-character{height:540px;width:340px;right:9%}.masthead-word{position:absolute;right:2%;bottom:-40px;font:180px/1 var(--display);color:#ffffff70;z-index:-1}.tag-list{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}.tag-list span{border:1px solid #30304440;border-radius:30px;padding:6px 15px;font-size:11px}.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:45px}.filters{display:flex;gap:9px;flex-wrap:wrap}.filters button{border:1px solid var(--line);padding:10px 22px;min-height:44px;border-radius:50px;font-size:13px;transition:background .2s}.filters button span{font-size:10px;margin-left:6px}.filters button:hover{border-color:var(--ink)}.filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--white)}#filter-count{margin:0;font-size:11px;color:var(--muted);white-space:nowrap}.works-section{padding-top:50px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 35px;align-items:start}.work-card{min-width:0;scroll-margin-top:160px}.work-card[hidden]{display:none}.work-art{display:flex;align-items:center;justify-content:center;aspect-ratio:1.6;border-radius:var(--radius);position:relative;overflow:hidden;padding:30px}.work-art>img{max-height:100%;width:100%;object-fit:contain;transition:transform .4s}.work-art:hover>img{transform:scale(1.025)}.work-copy{padding:25px 7px 0}.work-copy .eyebrow{font-size:10px;color:var(--purple-dark);margin-bottom:13px}.work-copy h2{font-size:29px;margin-bottom:12px}.work-copy h2 br{display:none}.work-copy>p:not(.eyebrow):not(.role):not(.project-label){font-size:13px;color:var(--muted);line-height:1.85;margin-bottom:16px}.work-copy .project-label{font-size:11px;margin-bottom:15px}.work-copy .role{margin-bottom:12px!important}.work-card summary{list-style:none;display:inline-flex;padding:8px 0;font-size:13px;font-weight:600;border-bottom:1px solid var(--ink);min-height:42px}.work-card summary::-webkit-details-marker{display:none}.work-card summary:hover{color:var(--purple-dark)}.when-open{display:none}details[open] .when-open{display:inline}details[open] .when-closed{display:none}.mini-case{margin-top:25px;background:#eeeef1;padding:26px;border-radius:12px;font-size:13px;line-height:1.95}.mini-case h3{font-size:17px;margin:25px 0 12px}.mini-case h3:first-child{margin-top:0}.mini-case p{color:var(--muted);margin-bottom:16px}.mini-case ul{margin-bottom:20px}.mini-case .zoom-image{margin-top:12px;width:100%}.graphic-art{width:100%;padding:12px;display:flex;flex-direction:column;justify-content:center;gap:20px;align-self:stretch}.graphic-art>span{font-size:10px;letter-spacing:.12em}.graphic-art strong{font-size:clamp(32px,3.7vw,54px);line-height:1.2;letter-spacing:-.055em}.graphic-art strong i{font-style:normal;font-size:.8em}.graphic-art small{font-size:11px}.diagram-pills{display:flex;gap:8px}.diagram-pills b{font-size:11px;font-weight:400;border:1px solid #30304470;border-radius:30px;padding:8px 12px}.asrc-art strong{white-space:nowrap;font-size:clamp(24px,3vw,45px)}.asrc-art strong span{font-weight:300;color:var(--purple-dark)}.growth-bars{display:flex;gap:12px;align-items:end;height:60px}.growth-bars i{width:32%;height:25%;background:var(--purple)}.growth-bars i:last-child{height:100%;background:var(--purple-dark);width:55%}
.about-story{display:grid;grid-template-columns:.6fr 1.4fr;gap:11%;align-items:center}.about-story h2{font-size:clamp(29px,3vw,45px)}.about-story p:not(.eyebrow){font-size:14px;line-height:2;color:var(--muted)}.about-story .education{font-size:12px!important;padding-top:15px;border-top:1px solid var(--line);color:var(--ink)!important}.capabilities{background:#eaeaf0}.capabilities h2{margin-bottom:50px}.cap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 7%}.cap-grid article{border-top:1px solid #30304435;padding:32px 0 42px}.cap-symbol{font-size:35px;line-height:1;color:var(--purple-dark);display:block;margin-bottom:22px}.cap-grid h3{font-size:25px}.cap-grid p{font-size:14px;color:var(--muted);line-height:1.95}.cap-grid .evidence{font-size:12px;color:var(--ink);border-left:2px solid var(--purple);padding-left:16px}.journey{display:grid;grid-template-columns:.8fr 1.2fr;gap:9%;align-items:start}.journey-heading{position:sticky;top:130px}.journey-heading h2{font-size:clamp(29px,3vw,44px)}.journey-heading>p:not(.eyebrow){font-size:13px;line-height:1.95;color:var(--muted)}.timeline{border-left:1px solid var(--line);padding-left:34px}.timeline article{position:relative;padding-bottom:35px;margin-bottom:22px;border-bottom:1px solid var(--line)}.timeline article:last-child{margin-bottom:0;padding-bottom:0;border:0}.timeline article:before{content:'';position:absolute;left:-40px;top:7px;width:11px;height:11px;background:var(--purple);border-radius:50%;border:2px solid var(--paper)}.timeline-date{font-size:11px;letter-spacing:.07em;color:var(--purple-dark);display:block;margin-bottom:15px}.timeline h3{font-size:20px;line-height:1.55;margin-bottom:6px}.timeline .timeline-role{font-size:12px;color:var(--ink);margin-bottom:15px}.timeline p{font-size:12px;line-height:1.95;color:var(--muted)}.art-section{background:var(--mint)}.art-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:24px}.art-grid .zoom-image{padding:13px;background:var(--white);transform:rotate(-3deg)}.art-grid .zoom-image:nth-child(even){transform:rotate(3deg)}.art-grid img{width:100%;height:230px;object-fit:contain}.art-note{font-size:12px;text-align:center;margin-top:50px;color:var(--muted)}
/* Detail pages retain project ownership and a readable editorial column. */
.case-masthead{padding-top:35px;padding-bottom:35px;position:relative;overflow:hidden}.breadcrumb{display:flex;gap:12px;align-items:center;font-size:11px;margin-bottom:25px}.breadcrumb a{border-bottom:1px solid #30304460}.breadcrumb a:hover{color:var(--purple-dark)}.case-heading{display:grid;grid-template-columns:1.5fr .6fr;gap:6%;align-items:center;min-height:370px}.case-heading h1{font-size:clamp(40px,5.1vw,76px);margin-bottom:25px}.case-heading .eyebrow{font-size:12px;margin-bottom:20px}.case-subtitle{font-size:18px;line-height:1.8}.case-character{height:350px;aspect-ratio:auto}.case-meta{display:grid;grid-template-columns:.7fr 1.3fr 1fr;gap:30px;border-top:1px solid #30304440;padding-top:24px}.case-meta span{font-size:10px;letter-spacing:.06em;color:var(--muted)}.case-meta p{font-size:12px;line-height:1.8;margin:7px 0}.case-cover{max-width:1600px;margin:0 auto;padding:55px var(--pad) 0}.case-cover img{width:100%;height:auto;border-radius:10px;max-height:600px;object-fit:contain;background:#e9e9e5}.case-facts{display:grid;grid-template-columns:repeat(3,1fr);padding-top:45px;padding-bottom:50px}.case-facts>div{display:flex;flex-direction:column;align-items:center;gap:4px;border-right:1px solid var(--line)}.case-facts>div:last-child{border:0}.case-facts strong{font-size:clamp(33px,4.3vw,62px);font-weight:500;line-height:1.3;letter-spacing:-.045em}.case-facts span{font-size:12px;color:var(--muted)}.case-article{max-width:1050px;margin:auto;padding:10px 35px 70px}.case-lead{font-size:18px;line-height:1.95;max-width:780px;margin:0 0 65px auto}.case-block{display:grid;grid-template-columns:145px minmax(0,1fr);gap:40px;border-top:1px solid var(--line);padding:45px 0 25px}.case-step{font-size:11px;color:var(--purple-dark);letter-spacing:.05em;padding-top:10px}.case-block h2{font-size:30px;line-height:1.5;margin-bottom:26px}.case-block h3{font-size:18px;line-height:1.6;margin-top:32px;margin-bottom:12px}.case-block p{font-size:14px;line-height:2;color:var(--muted)}.case-block ul{font-size:14px;line-height:2.2;color:var(--ink);margin-bottom:25px}.case-gallery{display:flex;gap:25px;align-items:start;margin:15px 0 60px 185px}.case-gallery figure{margin:0;flex:1;min-width:0}.case-gallery img{width:100%;max-height:1000px;object-fit:contain}.case-gallery figcaption{font-size:10px;color:var(--muted);margin-top:12px}.zoom-image{padding:0;display:block;overflow:hidden;border-radius:3px}.zoom-image:hover{outline:2px solid var(--purple);outline-offset:5px}.next-case{display:flex;align-items:center;justify-content:space-between;gap:50px;background:#eaeaf0}.next-case h2{font-size:clamp(29px,3.5vw,50px)}.next-case h2 a:hover{color:var(--purple-dark)}.next-thumbnail{width:31%;padding:20px;background:var(--bg);border-radius:12px}.next-thumbnail img{width:100%;height:170px;object-fit:contain}.image-dialog{border:0;border-radius:12px;padding:55px 25px 20px;width:min(1000px,92vw);max-height:92svh;background:var(--paper);color:var(--ink)}.image-dialog::backdrop{background:#252427d9}.image-dialog>img{max-height:73svh;max-width:100%;object-fit:contain;margin:0 auto}.image-dialog>p{text-align:center;font-size:12px;margin:15px 0 0}.dialog-close{position:absolute;right:18px;top:12px;font-size:12px;border-radius:30px;background:var(--lime);padding:7px 17px;min-height:34px}.dialog-close:hover{background:var(--bg)}
@media(min-width:1700px){:root{--pad:max(6.3vw,calc((100vw - 1560px)/2))}.hero-word{font-size:290px}.hero-intro h1{font-size:38px}.hero-intro{width:29%}.hero-profile{left:75%}.section{padding-top:120px;padding-bottom:120px}.case-article{max-width:1200px}.hero-character{height:80%}.hero-word{top:5%}}
@media(max-width:1100px){.hero-profile{left:77%;padding-left:16px;width:21%}.hero-profile ul{font-size:11px}.hero-intro{width:35%;top:45%}.hero-intro h1{font-size:25px}.hero-actions{gap:8px;flex-wrap:wrap}.hero-actions .pill{min-width:118px;padding:12px 18px;font-size:12px}.feature{gap:5%}.feature-image{min-height:390px;padding:22px}.feature-copy h3{font-size:34px}.feature-fact{margin:15px 0}.method-character{width:250px}.methods-section{gap:6%}.methods-list h3{font-size:21px}.about-masthead .masthead-character{right:3%;width:290px}.masthead-character{right:3%;width:280px}.page-masthead>div:first-child{max-width:68%}.case-heading h1{font-size:55px}.case-character{height:320px}}
@media(max-width:800px){:root{--pad:5.5vw;--header-height:70px}.site-header nav{gap:22px}.brand{font-size:16px}.contact-button{padding:8px 14px;font-size:12px}.home-hero{min-height:730px}.hero-word{top:6%}.hero-character{height:72%;bottom:2%;left:49%}.hero-intro{top:36%;width:39%}.hero-intro h1{font-size:23px}.hero-profile{top:50%;left:76%;width:23%;padding-left:10px}.hero-profile .profile-name{font-size:20px}.hero-profile ul{font-size:10px}.hero-intro>p:not(.eyebrow){font-size:11px}.hero-actions{flex-direction:column;width:max-content;gap:9px;margin-top:22px}.hero-actions .pill{min-height:43px}.section{padding-top:75px;padding-bottom:75px}.section-heading{gap:20px;margin-bottom:35px}.section-heading>p{font-size:12px}.feature{grid-template-columns:1.1fr 1fr;gap:5%}.feature-image{min-height:330px;padding:20px}.feature-copy h3{font-size:29px}.project-summary{font-size:12px}.feature-fact strong{font-size:33px}.feature-fact span{font-size:9px}.role{font-size:10px!important}.methods-section{grid-template-columns:.85fr 1.15fr;gap:5%}.method-intro h2{font-size:29px}.method-character{width:220px;height:350px}.methods-list article{gap:10px}.methods-list h3{font-size:19px}.methods-list p{font-size:12px}.method-number{min-width:25px;font-size:23px}.more-grid{gap:18px}.small-image{padding:13px}.small-card h3{font-size:15px}.about-teaser,.about-story{gap:7%;grid-template-columns:.7fr 1.3fr}.portrait-wrap>img{height:350px}.contact-section{grid-template-columns:1.5fr .8fr;padding-top:75px}.contact-character .character{height:260px}.speech{left:0;font-size:10px;padding:9px 15px}.site-footer{flex-wrap:wrap;gap:14px}.site-footer p{order:4;width:100%;margin:0;font-size:9px}.site-footer>span{margin-left:auto}.page-masthead{min-height:440px}.page-masthead h1{font-size:49px}.page-masthead>div:first-child{max-width:67%}.masthead-character{height:370px;width:240px;right:2%}.about-masthead{min-height:500px}.about-masthead .masthead-character{height:425px;width:265px;right:1%}.masthead-word{font-size:130px;bottom:-20px}.page-masthead p:not(.eyebrow){font-size:12px}.work-grid{gap:45px 22px}.work-art{padding:18px}.work-copy h2{font-size:24px}.work-copy{padding:20px 0 0}.work-copy>p:not(.eyebrow):not(.role):not(.project-label){font-size:12px}.graphic-art{gap:15px;padding:0}.diagram-pills b{font-size:9px;padding:5px 9px}.graphic-art strong{font-size:33px}.asrc-art strong{font-size:29px}.cap-grid h3{font-size:22px}.cap-grid p{font-size:13px}.journey{grid-template-columns:.75fr 1.25fr;gap:7%}.journey-heading h2{font-size:30px}.timeline{padding-left:25px}.timeline article:before{left:-31px}.art-grid{gap:15px}.art-grid img{height:170px}.case-masthead{padding-top:25px;padding-bottom:25px}.case-heading h1{font-size:45px}.case-heading{min-height:310px;gap:4%;grid-template-columns:1.5fr .6fr}.case-character{height:270px}.case-subtitle{font-size:15px}.case-meta{gap:15px}.case-meta p{font-size:11px}.case-article{padding:0 var(--pad) 40px}.case-lead{font-size:16px;margin-bottom:40px}.case-block{grid-template-columns:100px 1fr;gap:25px}.case-block h2{font-size:26px}.case-gallery{margin-left:125px}.case-block p{font-size:13px}.next-thumbnail{width:35%}.next-thumbnail img{height:120px}}
@media(max-width:600px){:root{--pad:6vw;--header-height:66px}.site-header{gap:10px}.brand{font-size:14px;gap:8px}.monogram{width:30px;height:30px;font-size:23px}.header-actions{gap:6px}.contact-button{padding:8px 12px;gap:8px;font-size:11px}.contact-button span{font-size:16px}.menu-toggle{display:flex;gap:5px;font-size:11px;padding:10px 4px;min-height:44px}.site-header nav{display:none;position:absolute;top:66px;left:0;right:0;padding:12px var(--pad) 20px;background:var(--header);gap:25px;border-top:1px solid #ffffff20}.site-header nav.open{display:flex}.site-header nav a{padding:12px 0;font-size:13px}.site-header nav a[aria-current=page]:after{bottom:4px}.home-hero{height:850px;min-height:0;max-height:none}.hero-word{top:28px;font-size:17.8vw;left:5%;right:5%}.hero-intro{top:112px;width:88%}.hero-intro .eyebrow{font-size:9px;margin-bottom:12px}.hero-intro h1{font-size:29px;line-height:1.45;margin-bottom:16px}.hero-intro>p:not(.eyebrow){font-size:11px;line-height:1.85}.hero-actions{flex-direction:row;gap:10px;margin-top:20px}.hero-actions .pill{font-size:11px;padding:10px 18px;min-width:120px}.hero-character{height:350px;left:36%;bottom:20px}.hero-character .motion-toggle{bottom:17px;left:42%;font-size:8px;min-height:28px}.hero-profile{left:auto;right:5.5%;top:510px;width:35%;border-color:#30304470;padding-left:13px}.profile-name{font-size:19px!important;margin-bottom:17px}.hero-profile .eyebrow{font-size:10px;margin-bottom:9px}.hero-profile ul{font-size:10px;line-height:2.1}.hero-caption{bottom:28px;font-size:8px;right:6%}.scroll-cue{display:none}.section{padding:62px var(--pad)}.eyebrow{font-size:9px;margin-bottom:18px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{font-size:33px;line-height:1.4}.section-heading>p{margin-top:22px;margin-bottom:0;font-size:12px}.section-heading>.pill{margin-top:25px;font-size:11px;padding:11px 19px;min-height:44px}.feature{display:flex;flex-direction:column;gap:28px;padding:0 0 40px;align-items:stretch}.feature+.feature{padding-top:40px}.feature-image{min-height:0;aspect-ratio:1.3;border-radius:12px;padding:23px}.feature-copy h3{font-size:32px;line-height:1.35}.feature-copy .eyebrow{font-size:10px;margin-bottom:12px}.feature-copy .project-label{margin-bottom:16px;font-size:11px}.project-summary{font-size:13px}.feature-copy .role{font-size:10px!important;margin-bottom:14px!important}.feature-fact{float:right;margin:0;display:block;text-align:right}.feature-fact strong{display:block;font-size:31px}.feature-fact span{font-size:9px}.feature-copy .text-link{margin-top:10px;font-size:12px}.methods-section{display:block}.method-intro{min-height:0;padding-right:110px;position:relative;margin-bottom:35px}.method-intro h2{font-size:28px;line-height:1.45}.method-intro>p:not(.eyebrow){font-size:12px}.method-character{position:absolute;right:-20px;bottom:-30px;width:135px;height:230px;margin:0}.method-character .motion-toggle{font-size:8px;padding:5px 8px;gap:6px;bottom:15px;min-height:26px}.methods-list article{gap:15px;padding:25px 0}.methods-list h3{font-size:20px}.methods-list p{font-size:12px}.methods-list .text-link{font-size:10px}.more-grid{grid-template-columns:1fr;gap:30px}.small-image{aspect-ratio:1.7;padding:27px}.small-image .graphic-art strong{font-size:38px}.small-image .graphic-art{gap:14px}.small-image .diagram-pills b{font-size:10px;padding:7px 12px}.small-card .eyebrow{margin-top:17px;margin-bottom:8px}.small-card h3{font-size:18px}.about-teaser,.about-story{display:flex;flex-direction:column;gap:42px;align-items:stretch}.portrait-wrap{width:65%;max-width:240px;margin:0 auto}.portrait-wrap>img{height:300px}.photo-caption{left:10px;font-size:10px}.about-teaser h2,.about-story h2{font-size:29px;line-height:1.4}.about-teaser p:not(.eyebrow),.about-story p:not(.eyebrow){font-size:13px}.contact-section{display:block;padding:60px var(--pad) 40px;min-height:650px}.contact-copy h2{font-size:39px;line-height:1.4;margin-bottom:20px}.contact-copy>p:not(.eyebrow){font-size:12px}.desktop-only{display:none}.email-link{font-size:24px;gap:20px;margin-top:6px}.contact-tools{margin-top:12px}.contact-character{width:200px;height:240px;margin:10px -10px -30px auto}.contact-character .character{height:240px}.speech{font-size:10px;top:0;left:-45px}.contact-character .motion-toggle{bottom:0;font-size:8px}.site-footer{padding:22px var(--pad);gap:15px}.site-footer>a:first-child{font-size:13px}.site-footer>span{font-size:8px}.site-footer p{font-size:8px;line-height:1.8}.back-top{width:32px;height:32px;font-size:18px}.page-masthead{padding-top:45px;padding-bottom:30px;min-height:590px;display:block}.page-masthead>div:first-child{max-width:100%}.page-masthead h1{font-size:41px;line-height:1.4;margin-bottom:18px}.page-masthead p:not(.eyebrow){font-size:12px;max-width:290px}.masthead-character{height:300px;width:180px;right:8%;bottom:-8px}.masthead-character .motion-toggle{bottom:14px;font-size:8px}.masthead-word{font-size:110px;right:auto;left:6%;bottom:5px;color:#fff9}.works-masthead .masthead-character{right:0;height:310px;width:210px}.works-masthead .masthead-word{font-size:95px;bottom:5px}.about-masthead{min-height:650px}.about-masthead .masthead-character{height:330px;width:230px;right:1%;bottom:-18px}.about-masthead .tag-list{max-width:210px;gap:7px;margin-top:17px}.tag-list span{font-size:9px;padding:4px 9px}.about-masthead h1{font-size:42px}.about-masthead .masthead-word{font-size:95px;left:5%;bottom:8px}.filter-bar{display:block;margin-bottom:30px}.filters{gap:7px}.filters button{font-size:11px;padding:8px 13px;min-height:40px}.filters button span{display:none}#filter-count{font-size:10px;margin-top:15px}.works-section{padding-top:30px}.work-grid{grid-template-columns:1fr;gap:40px}.work-art{aspect-ratio:1.45;padding:25px}.work-copy h2{font-size:27px}.work-copy>p:not(.eyebrow):not(.role):not(.project-label){font-size:13px}.graphic-art{gap:20px}.graphic-art strong{font-size:41px}.graphic-art>span{font-size:10px}.asrc-art strong{font-size:35px}.diagram-pills b{font-size:10px;padding:7px 12px}.work-card summary{font-size:12px}.mini-case{padding:22px}.capabilities h2{font-size:30px;margin-bottom:32px}.cap-grid{display:block}.cap-grid article{padding:28px 0 30px}.cap-grid h3{font-size:23px}.cap-grid p{font-size:13px}.cap-symbol{font-size:29px;margin-bottom:16px}.journey{display:block}.journey-heading{position:static;margin-bottom:40px}.journey-heading h2{font-size:32px}.timeline{padding-left:26px;margin-left:5px}.timeline article:before{left:-32px}.timeline h3{font-size:18px}.timeline-date{font-size:10px}.timeline p{font-size:12px}.art-grid{grid-template-columns:1fr 1fr;gap:25px 16px}.art-grid img{height:150px}.art-grid .zoom-image{padding:9px}.art-note{font-size:11px;text-align:left;margin-top:35px}.case-masthead{padding-top:25px;padding-bottom:25px}.breadcrumb{font-size:9px;gap:8px;flex-wrap:wrap;line-height:1.8}.case-heading{display:block;min-height:0;position:relative;padding-bottom:195px}.case-heading h1{font-size:39px;line-height:1.4}.case-heading .eyebrow{font-size:10px;margin-bottom:17px}.case-subtitle{font-size:13px;line-height:1.85;max-width:100%}.case-character{height:235px;width:150px;position:absolute;right:-2%;bottom:-10px}.case-character .motion-toggle{bottom:10px;font-size:8px;padding:5px 9px}.case-meta{grid-template-columns:1fr 1fr;gap:13px}.case-meta>div:last-child{grid-column:1 / -1}.case-meta span{font-size:9px}.case-meta p{font-size:10px;margin-bottom:0}.case-cover{padding-top:30px}.case-cover img{border-radius:6px}.case-facts{padding-top:28px;padding-bottom:30px;gap:10px}.case-facts strong{font-size:29px}.case-facts span{font-size:9px;text-align:center}.case-article{padding-top:0;padding-bottom:35px}.case-lead{font-size:14px;line-height:1.95;margin-bottom:35px}.case-block{display:block;padding-top:28px}.case-step{display:block;padding:0;margin-bottom:20px;font-size:10px}.case-block h2{font-size:25px;line-height:1.5}.case-block h3{font-size:17px}.case-block p{font-size:13px;line-height:1.95}.case-block ul{font-size:13px;line-height:2}.case-gallery{margin:0 0 35px;display:block}.case-gallery figure+figure{margin-top:25px}.case-gallery figcaption{font-size:9px}.case-gallery img{max-height:850px}.next-case{display:block}.next-case h2{font-size:30px;line-height:1.4}.next-thumbnail{display:none}.image-dialog{padding:55px 15px 20px;border-radius:8px}.image-dialog>p{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.feature-image:hover>img,.small-card:hover img,.work-art:hover>img{transform:none}}
@media(forced-colors:active){html{scrollbar-color:auto}.pill,.contact-button,.filters button,.motion-toggle,.back-top{border:1px solid ButtonText}.site-header nav a[aria-current=page]:after{background:LinkText}.cap-symbol,.violet-dot{color:CanvasText}}
@media print{.site-header,.character,.contact-character,.filter-bar,.contact-tools,.site-footer,.skip-link,.next-case,.toast{display:none!important}.section{padding:30px 0}.page-masthead,.home-hero{height:auto;min-height:0}.work-grid{display:block}.work-card{break-inside:avoid;margin-bottom:30px}.case-block{break-inside:avoid}.page-masthead>div:first-child{max-width:100%}.contact-section{display:block;min-height:0;padding:30px 0}.case-heading{padding:0;min-height:0}}
@media(max-width:600px){.hero-character{left:29%}.hero-profile{right:4%;width:33%}}

/* Portfolio revision: compact global chrome and complete project archive. */
:root{--header-height:60px}
.site-header nav a{padding:17px 0}.site-header nav a[aria-current=page]:after{bottom:10px}
.contact-button{padding:6px 13px;gap:8px;min-height:34px;font-size:12px;border-radius:4px}.contact-button span{font-size:16px}
.monogram{width:31px;height:31px;font-size:24px}.brand{font-size:17px}
.home-sections{display:flex;justify-content:center;gap:42px;padding:18px var(--pad);border-bottom:1px solid var(--line);font-size:13px;background:var(--bg)}
.home-sections a:hover{color:var(--purple)}#selected,#methods,#intro,#contact,.work-card{scroll-margin-top:80px}
.feature-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.feature-facts strong{display:block;font-size:clamp(21px,2.5vw,36px);line-height:1.2;letter-spacing:-1px}.feature-facts span{display:block;font-size:11px;margin-top:8px;line-height:1.7;color:var(--muted)}
.archive-art{display:flex;flex-direction:column;justify-content:space-between;padding:10%;height:100%;min-height:260px;background:linear-gradient(135deg,#e3e0f0,#c8cbe0);color:#282632}.archive-art>strong{font-size:clamp(24px,3vw,40px);font-weight:600;max-width:13em;line-height:1.4}.archive-art>span,.archive-art>small{font-size:12px}
.work-art{aspect-ratio:16/10;overflow:hidden}.work-art img{width:100%;height:100%;object-fit:cover}.work-copy h2 a{color:inherit}.work-copy .eyebrow{line-height:1.8}
.case-return{font-weight:600}.case-bottom-nav{display:flex;gap:28px;align-items:center;border-top:1px solid var(--line)}.metric-note{font-size:12px;color:var(--muted);margin:0 0 40px}.case-gallery figure{margin:0 0 24px}.case-gallery img{width:100%;height:auto}.art-complete .art-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:35px}.art-complete img{width:100%;height:auto}.breadcrumb{flex-wrap:wrap;line-height:1.8}.filter-bar{align-items:flex-start}.filters button{white-space:nowrap}
@media(max-width:800px){:root{--header-height:58px}.contact-button{padding:5px 11px}.feature-facts{gap:8px}.feature-facts strong{font-size:26px}}
@media(max-width:600px){:root{--header-height:56px}.site-header nav{top:56px}.site-header nav a{padding:12px 0}.brand{font-size:13px}.contact-button{padding:4px 9px;min-height:32px;font-size:11px}.contact-button span{font-size:14px}.home-sections{gap:0;justify-content:space-between;padding:16px 6vw;font-size:12px}.feature-facts strong{font-size:26px}.feature-facts span{font-size:10px}.archive-art{min-height:220px}.art-complete .art-grid{grid-template-columns:1fr}.case-bottom-nav{flex-wrap:wrap}}

/* Case reading layout: explanations remain text, figures support the specific argument. */
.case-reading{max-width:1120px;padding:0 38px;margin:0 auto}
.case-outline{display:flex;flex-wrap:wrap;gap:12px 26px;padding:27px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7}.case-outline a{color:var(--purple-dark)}.case-outline a:hover{text-decoration:underline;text-underline-offset:5px}
.editorial-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;margin:42px 0 16px}.editorial-facts strong{display:block;font-size:clamp(30px,4vw,46px);font-weight:600;letter-spacing:-1px}.editorial-facts span{display:block;font-size:13px;color:var(--muted);margin-top:9px}
.case-reading .metric-note{margin:0 0 24px;line-height:1.8}
.editorial-chapter{display:grid;grid-template-columns:140px minmax(0,1fr);gap:36px;padding:55px 0;border-bottom:1px solid var(--line);scroll-margin-top:85px}
.chapter-kind{font-size:12px;color:var(--purple-dark);line-height:1.7;margin:8px 0 0}.chapter-content{min-width:0;max-width:820px}.chapter-content h2{font-size:clamp(25px,2.4vw,34px);font-weight:600;line-height:1.55;letter-spacing:-.035em;margin:0 0 24px}.chapter-content>p{font-size:17px;line-height:2;color:var(--ink);margin:0 0 18px}.chapter-content>p:last-child{margin-bottom:0}
.editorial-figure{margin:32px 0 0}.editorial-figure .zoom-image{width:100%;background:transparent}.editorial-figure img{width:100%;height:auto;display:block;max-height:none}.editorial-figure figcaption{font-size:12px;line-height:1.8;color:var(--muted);margin-top:13px}.case-story{padding-bottom:50px}
@media(max-width:800px){.case-reading{padding:0 6vw}.editorial-chapter{grid-template-columns:100px minmax(0,1fr);gap:25px}.chapter-content>p{font-size:16px}.case-outline{gap:12px 22px}}
@media(max-width:600px){.editorial-chapter{display:block;padding:34px 0}.chapter-kind{margin:0 0 14px}.chapter-content h2{font-size:25px;line-height:1.55;margin-bottom:20px}.chapter-content>p{font-size:16px;line-height:1.95}.case-outline{font-size:12px;gap:12px 20px;padding:23px 0}.editorial-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 18px;margin-top:30px}.editorial-facts strong{font-size:30px}.editorial-facts span{font-size:12px}.editorial-figure{margin-top:24px}}

/* Concise homepage identity and smaller greeting figure. */
.hero-profile .profile-role{font-size:14px;line-height:1.8;margin:0;max-width:12em}.hero-profile .profile-role strong{font-weight:600}
@media(max-width:800px){.hero-profile .profile-role{font-size:12px}}
@media(max-width:600px){.hero-profile .profile-role{font-size:12px;line-height:1.8}}
/* Monochrome arc composition, matching the supplied reference. */
.hero-character{height:97%;bottom:-4%}.profile-name{font-weight:800;margin-bottom:16px}.hero-profile .profile-role{font-weight:400;font-size:14px}.profile-experience{font-size:12px;line-height:1.9;margin-top:20px;font-weight:400}
.ability-section{background:#f5f5f7;padding:65px 3vw 30px;overflow:hidden;color:var(--ink)}.ability-heading{text-align:center}.ability-heading h2{font-size:clamp(30px,4vw,58px);letter-spacing:-.05em;margin:14px 0}.ability-heading>p:last-child{font-size:14px;line-height:1.8;color:#606064}.ability-wall{position:relative;max-width:1440px;margin:45px auto 0;height:590px}.reaction-character{position:absolute;left:50%;top:185px;width:280px;height:405px;overflow:hidden;transform:translateX(-50%);pointer-events:none}.reaction-character #reaction-person{position:relative;width:100%;height:100%;transform:none}.reaction-frame{position:absolute;inset:0;width:100%;height:auto;opacity:0;visibility:hidden}.reaction-frame.is-active{opacity:1;visibility:visible}.ability-card{position:absolute;width:22%;max-width:285px;border:1px solid #2b2b2d;border-radius:5px;background:#171719;color:#fff;box-shadow:0 6px 15px #00000012;transform:rotate(var(--tilt));transition:transform .16s ease;z-index:2}.ability-card-0{left:0;top:210px;--tilt:-13deg}.ability-card-1{left:24%;top:30px;--tilt:-7deg}.ability-card-2{right:24%;top:30px;--tilt:7deg}.ability-card-3{right:0;top:210px;--tilt:13deg}.ability-card:hover,.ability-card:focus-within,.ability-card.is-open{transform:rotate(var(--tilt)) translateY(-5px);z-index:5}.ability-open{display:block;width:100%;padding:7px;text-align:left;color:inherit;background:none;border:0;cursor:pointer}.ability-open>img{width:100%;aspect-ratio:1.9;object-fit:cover;display:block;border-radius:1px}.ability-label{display:none}.ability-open>strong{display:block;font-size:14px;line-height:1.5;margin:10px 5px 2px;font-weight:500}.ability-project{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;margin:0 5px 4px;color:#b8b8bd}.ability-project b{font-size:19px;font-weight:300;color:white}.ability-detail{padding:0 12px 15px}.ability-detail p{font-size:12px;line-height:1.8;margin:8px 0 12px;color:#dedee3}.ability-detail a{display:inline-block;font-size:12px;font-weight:500;border-bottom:1px solid #888;padding:8px 0}.ability-hint{text-align:center;font-size:12px;margin:12px 0;color:#747478}.touch-hint{display:none}
@media(min-width:1700px){.hero-character{height:97%}}
@media(max-width:800px){.hero-character{height:88%}.ability-wall{height:510px}.reaction-character{top:160px;width:230px;height:350px}.ability-card{width:23%}.ability-card-0,.ability-card-3{top:200px}.ability-card-1{left:24%;top:15px}.ability-card-2{right:24%;top:15px}.ability-open>strong{font-size:12px}.ability-project{font-size:9px}}
@media(max-width:600px){.hero-character{height:425px;bottom:0;left:30%}.hero-profile{top:490px;right:4%;width:36%}.hero-profile .profile-role{font-size:12px}.profile-experience{font-size:10px;margin-top:14px}.ability-section{padding:50px 4vw 25px}.ability-heading h2{font-size:28px}.ability-heading>p:last-child{font-size:12px}.ability-wall{height:620px;margin-top:35px}.ability-card{width:44%;max-width:none}.ability-card-0{left:-4%;top:200px;--tilt:-11deg}.ability-card-1{left:3%;top:0;--tilt:-5deg}.ability-card-2{right:3%;top:0;--tilt:5deg}.ability-card-3{right:-4%;top:200px;--tilt:11deg}.reaction-character{top:300px;width:220px;height:320px}.ability-open{padding:5px}.ability-open>strong{font-size:12px;margin-top:7px}.ability-project{font-size:9px}.ability-detail{padding:0 10px 12px}.ability-detail p{font-size:12px}.ability-card.is-open{transform:rotate(0);z-index:8}.ability-hint{font-size:11px}}
@media(hover:none){.hover-hint{display:none}.touch-hint{display:inline}}
@media(prefers-reduced-motion:reduce){.ability-card{transition:none}}

/* Smaller cards and more air around the central character. */
.ability-card{width:18%;max-width:235px}.ability-card-0{left:0;top:170px}.ability-card-1{left:22%;top:0}.ability-card-2{right:22%;top:0}.ability-card-3{right:0;top:170px}.ability-label{display:block;color:#bcbcc2;font-size:10px;line-height:1.5;margin:9px 5px 0}.ability-open>strong{font-size:13px;margin-top:5px}.ability-card-3 .ability-open>img{clip-path:inset(2px);background:#171719}.ability-open{background:#171719;border-radius:4px}
@media(max-width:800px){.ability-card{width:21%}.ability-card-1{left:23%}.ability-card-2{right:23%}.ability-label{font-size:9px}}
@media(max-width:600px){.ability-card{width:40%;max-width:none}.ability-card-0{left:-2%;top:190px}.ability-card-1{left:4%;top:0}.ability-card-2{right:4%;top:0}.ability-card-3{right:-2%;top:190px}.reaction-character{top:350px}.ability-wall{height:675px}.ability-open>strong{font-size:12px}.ability-label{font-size:9px;margin-top:7px}}

/* Wider cards, secondary labels, and light interaction feedback. */
.ability-card{width:20%;max-width:260px;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease}.ability-open>strong{margin-top:10px}.ability-label{font-size:9px;margin:3px 5px 5px;color:#a6a6ae}.ability-card:hover,.ability-card:focus-within{transform:rotate(calc(var(--tilt) * .65)) translateY(-8px);box-shadow:0 14px 25px #0000001c}.ability-card.is-open{transform:rotate(calc(var(--tilt) * .35)) translateY(-8px)}.ability-detail:not([hidden]){animation:card-reveal .18s ease-out}@keyframes card-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){.ability-card{width:23%}}
@media(max-width:600px){.ability-card{width:43%;max-width:none}.ability-label{font-size:8px}.ability-card.is-open{transform:rotate(0)}}
@media(prefers-reduced-motion:reduce){.ability-card{transition:none}.ability-detail:not([hidden]){animation:none}}

/* Matched hero copy, lower compact actions and evenly spaced cards. */
.home-hero>.hero-actions{position:absolute;left:var(--pad);bottom:calc(3.8% + 35px);margin:0;z-index:4;flex-direction:row;gap:10px;width:auto}.home-hero>.hero-actions .pill{font-size:11px;min-width:104px;min-height:34px;padding:8px 15px;gap:14px}.site-header .contact-button{height:28px;min-height:28px;padding:3px 12px;font-size:11px;line-height:1;border-radius:4px}.site-header .contact-button span{font-size:16px}
@media(min-width:801px){.home-hero{--hero-copy-height:clamp(99px,10.44vw,171px)}.hero-intro,.hero-profile{top:47%;height:var(--hero-copy-height)}.hero-intro h1{margin:0;font-size:clamp(22px,2.32vw,38px);line-height:1.5}.hero-profile{display:flex;flex-direction:column;justify-content:space-between;padding-top:0;padding-bottom:0}.hero-profile .profile-name,.hero-profile .profile-role,.hero-profile .profile-experience{margin:0}.hero-profile .profile-name{line-height:1.35}.hero-profile .profile-role{max-width:none;font-size:clamp(11px,1vw,15px)}.hero-profile .profile-experience{font-size:clamp(10px,.85vw,13px);line-height:1.7}}
.ability-wall{--card-width:min(20%,260px)}.ability-card{width:var(--card-width)}.ability-card-0{left:0}.ability-card-1{left:calc((100% - var(--card-width)) / 3)}.ability-card-2{right:calc((100% - var(--card-width)) / 3)}.ability-card-3{right:0}.ability-card-1 .ability-open>img{object-position:center top}
@media(max-width:800px){.ability-wall{--card-width:23%}}
@media(max-width:600px){.home-hero>.hero-actions{bottom:auto;top:300px}.home-hero>.hero-actions .pill{min-height:32px;min-width:96px;font-size:10px;padding:7px 12px}.ability-wall{--card-width:43%}.ability-card-1{left:4%}.ability-card-2{right:4%}.ability-card-0{left:-2%}.ability-card-3{right:-2%}}

/* Reveal the profile only after the first complete greeting. */
.hero-profile{transition:opacity .65s ease,translate .65s ease}
.greeting-pending .home-hero .hero-profile{opacity:0;translate:0 10px;pointer-events:none}
@media(prefers-reduced-motion:reduce){.greeting-pending .home-hero .hero-profile{opacity:1;translate:none}.hero-profile{transition:none}}
/* Case archive: photographic scale, quiet captions, controlled motion. */
.page-works{background:#fafaf9;color:var(--ink)}
.portfolio-intro{padding:88px var(--pad) 48px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.portfolio-intro .eyebrow{font-size:12px;letter-spacing:.14em;margin:0 0 18px}
.portfolio-intro h1{font-size:clamp(48px,7vw,100px);line-height:1.06;font-weight:600;letter-spacing:-.055em;margin:0}
.portfolio-intro>p{font-size:17px;line-height:1.9;color:#68686d;margin:0 0 3px}
.portfolio-reel{margin:0 0 65px}.reel-window{overflow:auto;scrollbar-width:none;touch-action:pan-x pan-y}.reel-window::-webkit-scrollbar{display:none}.reel-track{display:flex;width:max-content;gap:20px}.reel-group{display:flex;gap:20px;padding-right:0}.reel-item{display:block;position:relative;width:clamp(340px,48vw,820px);height:clamp(240px,30vw,450px);overflow:hidden;border:0;padding:0;text-align:left;border-radius:8px;background:#121212}.reel-item img{width:100%;height:100%;object-fit:cover;display:block}.reel-item span{position:absolute;left:22px;bottom:18px;color:#fff;font-size:14px;text-shadow:0 1px 10px #000}.reel-item:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#0006);pointer-events:none}.reel-item span{z-index:1}
.reel-controls{display:flex;align-items:center;justify-content:space-between;padding:16px var(--pad) 0;color:#666;font-size:12px}.reel-controls>div{display:flex;align-items:center;gap:8px}.reel-controls button{background:none;color:#333;border:1px solid #ddd;border-radius:30px;padding:8px 13px;font-size:12px;min-height:34px}.reel-controls button:hover{border-color:#333}
.portfolio-archive{padding:0 var(--pad) 110px}.portfolio-filterbar{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid #ddd;padding:24px 0 42px}.portfolio-filterbar .filters{display:flex;gap:8px;flex-wrap:wrap}.portfolio-filterbar .filters button{font-size:14px;padding:10px 18px;border-radius:30px;background:#efefee;border:1px solid transparent;color:#606065;min-height:40px}.portfolio-filterbar .filters button[aria-pressed=true]{background:#202124;color:#fff}.portfolio-filterbar #filter-count{font-size:13px;color:#777;white-space:nowrap;margin:0}
.portfolio-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:66px 32px;align-items:start}.portfolio-grid>.portfolio-card{padding:0;display:block;border:0;margin:0;background:transparent;min-width:0}.portfolio-card.span-7{grid-column:span 7}.portfolio-card.span-5{grid-column:span 5}.portfolio-card.span-5:nth-child(4n+2){padding-top:72px}.portfolio-card.span-5:nth-child(4n+3){padding-top:0}.portfolio-grid>.portfolio-card[hidden],.portfolio-other>.archive-row[hidden]{display:none}
.portfolio-cover{display:block;position:relative;aspect-ratio:1.56;overflow:hidden;border-radius:7px;background:#e8e8e8;isolation:isolate;transform:perspective(1100px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));transition:transform .3s ease,box-shadow .3s ease;will-change:auto}.span-5 .portfolio-cover{aspect-ratio:1.22}.portfolio-cover>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.65,.3,1)}.portfolio-cover:hover>img,.portfolio-cover:focus-visible>img{transform:scale(1.045)}.portfolio-cover:hover{box-shadow:0 18px 35px #00000012}.portfolio-enter{position:absolute;right:20px;bottom:20px;width:42px;height:42px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-size:23px;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}.portfolio-cover:hover .portfolio-enter,.portfolio-cover:focus-visible .portfolio-enter{opacity:1;transform:none}.portfolio-card-caption{display:flex;justify-content:space-between;gap:20px;padding-top:18px}.portfolio-card-caption p{margin:0 0 6px;font-size:13px;color:#78787b}.portfolio-card-caption h2{font-size:clamp(20px,2vw,28px);line-height:1.45;font-weight:500;margin:0 0 9px;letter-spacing:-.025em}.portfolio-card-caption h2 a{color:inherit}.portfolio-card-caption div>span{font-size:13px;color:#747479;line-height:1.7}.portfolio-number{font-size:12px;color:#909096;padding-top:3px}
.archive-more-heading{margin-top:95px;padding:26px 0;border-top:1px solid #ddd}.archive-more-heading h2{font-size:24px;font-weight:500;margin:0}.portfolio-other{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}.portfolio-other .archive-row{display:block;padding:0;border:0;margin:0}.archive-row>a{display:block;position:relative;padding:30px 25px 30px 0;border-bottom:1px solid #e0e0e0;height:100%;color:inherit}.archive-row span{font-size:13px;color:#777;line-height:1.7}.archive-row h2{font-size:19px;font-weight:500;line-height:1.55;margin:8px 0 10px}.archive-row p{font-size:13px;line-height:1.7;color:#888;margin:0}.archive-row b{position:absolute;right:0;top:34px;font-size:20px;font-weight:400}.archive-row>a:hover h2{color:var(--purple-dark)}
/* Reviewed case narratives: reader-first, original project imagery. */
.project-detail{background:#fafaf9;color:#242426}.project-intro{padding:50px var(--pad) 46px}.project-back{display:inline-block;font-size:13px;color:#707074;margin-bottom:46px}.project-title-line{display:flex;justify-content:space-between;gap:30px;align-items:flex-end}.project-client{font-size:14px;color:#737378;margin:0 0 16px}.project-title-line h1{font-size:clamp(38px,5vw,74px);line-height:1.2;font-weight:550;letter-spacing:-.04em;margin:0}.project-index{font-size:13px;white-space:nowrap;color:#777;padding-bottom:8px}.project-deck{font-size:clamp(17px,1.6vw,23px);line-height:1.85;color:#66666d;max-width:900px;margin:24px 0 30px}.project-responsibility{display:flex;gap:24px;align-items:baseline;font-size:14px}.project-responsibility>span{color:#888;white-space:nowrap}.project-responsibility p{margin:0;line-height:1.8}.project-hero{margin:0 var(--pad);background:#161616;border-radius:7px;overflow:hidden}.project-hero img{display:block;width:100%;height:auto;max-height:76vh;object-fit:cover;object-position:center}.project-body{padding:0 var(--pad);max-width:1600px;margin:auto}.project-chapters{display:flex;gap:28px;flex-wrap:wrap;padding:28px 0;border-bottom:1px solid #ddd;font-size:13px;color:#707075}.project-chapters a:hover{color:#222}.project-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:30px;padding:52px 0 22px}.project-results strong{display:block;font-size:clamp(34px,4vw,62px);line-height:1.2;font-weight:500;letter-spacing:-.05em}.project-results span{display:block;color:#777;font-size:14px;margin-top:10px}.project-data-note{font-size:12px;color:#999;margin:0 0 10px}.project-chapter{padding:65px 0 0;scroll-margin-top:95px}.project-prose{display:grid;grid-template-columns:1fr 3fr;gap:45px;max-width:1180px;margin:0 0 40px}.project-prose>.chapter-kind{font-size:13px;letter-spacing:.06em;color:#86868b;margin:8px 0 0}.project-prose h2{font-size:clamp(25px,2.5vw,38px);line-height:1.45;font-weight:500;letter-spacing:-.025em;margin:0 0 24px}.project-prose div>p{font-size:16px;line-height:1.95;color:#626268;margin:0 0 16px}.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.gallery-item{margin:0;min-width:0}.gallery-item.single{grid-column:1/-1}.gallery-item .zoom-image{width:100%;display:block;padding:0;background:#f0f0ef;border:0;border-radius:4px;overflow:hidden}.gallery-item img{display:block;width:100%;height:auto;max-height:none}.gallery-caption{font-size:12px;color:#89898c;margin:12px 0 0;line-height:1.8}.case-film{padding:80px 0 20px;scroll-margin-top:85px}.film-heading h2{font-size:28px;font-weight:500}.film-poster{display:block;position:relative;aspect-ratio:16/9;background:#111;border-radius:6px;overflow:hidden}.film-poster img{width:100%;height:100%;object-fit:cover;filter:brightness(.8);transition:filter .3s}.film-poster:hover img{filter:brightness(1)}.film-action{position:absolute;bottom:28px;right:28px;background:#fff;color:#222;padding:14px 22px;border-radius:30px;font-size:14px}.film-action b{margin-left:16px}.film-note{font-size:13px;color:#777}.project-ending{margin:80px var(--pad) 0;padding:40px 0 65px;display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid #ddd}.project-ending>.case-return{font-size:14px}.project-next{display:flex;flex-direction:column;gap:10px;text-align:right}.project-next span{color:#888;font-size:12px}.project-next strong{font-size:24px;font-weight:500}
@media(max-width:800px){.portfolio-intro{padding-top:55px}.portfolio-grid{gap:45px 20px}.portfolio-card.span-5:nth-child(4n+2){padding-top:35px}.portfolio-other{grid-template-columns:repeat(2,minmax(0,1fr))}.project-title-line{display:block}.project-index{display:block;margin-top:20px}.project-prose{grid-template-columns:1fr 4fr;gap:24px}.project-hero img{max-height:none}}
@media(max-width:600px){.portfolio-intro{padding-top:42px;padding-bottom:30px;display:block}.portfolio-intro>p{font-size:15px;margin-top:24px}.portfolio-intro h1{font-size:48px}.reel-item{width:82vw;height:55vw}.reel-track,.reel-group{gap:12px}.reel-item span{font-size:12px;left:14px;bottom:14px}.portfolio-reel{margin-bottom:40px}.portfolio-filterbar{display:block;padding-bottom:28px}.portfolio-filterbar #filter-count{margin-top:18px}.portfolio-filterbar .filters{gap:5px}.portfolio-filterbar .filters button{font-size:12px;padding:9px 12px}.portfolio-grid{display:block}.portfolio-grid>.portfolio-card{padding:0;margin-bottom:38px}.portfolio-cover,.span-5 .portfolio-cover{aspect-ratio:1.5}.portfolio-card-caption h2{font-size:22px}.portfolio-enter{opacity:1;transform:none;width:32px;height:32px;font-size:20px;bottom:12px;right:12px}.portfolio-other{grid-template-columns:1fr}.archive-more-heading{margin-top:50px}.portfolio-archive{padding-bottom:65px}.project-intro{padding-top:32px;padding-bottom:30px}.project-back{margin-bottom:34px}.project-title-line h1{font-size:38px}.project-deck{font-size:17px;margin:20px 0}.project-responsibility{gap:15px;font-size:13px}.project-chapters{gap:14px 20px;font-size:12px}.project-results{gap:24px 12px;padding-top:32px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-results strong{font-size:38px}.project-results span{font-size:12px}.project-chapter{padding-top:42px}.project-prose{display:block;margin-bottom:24px}.project-prose>.chapter-kind{margin-bottom:18px}.project-prose h2{font-size:26px;margin-bottom:18px}.project-prose div>p{font-size:16px}.project-gallery{gap:12px}.gallery-item.single{grid-column:1/-1}.project-ending{display:block;margin-top:45px;padding-bottom:40px}.project-next{text-align:left;margin-top:32px}.project-next strong{font-size:22px}.film-action{bottom:15px;right:15px;padding:11px 17px;font-size:12px}.case-film{padding-top:45px}.film-heading h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){.portfolio-cover,.portfolio-cover:hover>img{transform:none!important}.portfolio-enter{transition:none}}

/* Works revision: original mint opening, a compact ribbon and three equal columns. */
.page-works .portfolio-reel{padding-top:42px;margin-bottom:42px}
.page-works .reel-item{width:clamp(210px,24vw,410px);height:clamp(135px,15vw,225px)}
.page-works .reel-controls{padding-top:16px}
.page-works .portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 26px}
.page-works .portfolio-grid>.portfolio-card{grid-column:auto;padding:0;margin:0}
.page-works .portfolio-cover{aspect-ratio:1.5;transform:perspective(1000px) translateZ(0) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));transition:transform .24s cubic-bezier(.2,.7,.25,1),box-shadow .24s ease}
.page-works .portfolio-cover:hover,.page-works .portfolio-cover:focus-visible{transform:perspective(1000px) translateZ(32px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));box-shadow:0 20px 35px #0002;z-index:2}
.page-works .portfolio-cover.is-entering{z-index:3;box-shadow:0 24px 50px #0003;pointer-events:none}
.page-works .portfolio-cover:hover>img,.page-works .portfolio-cover:focus-visible>img{transform:scale(1.018)}
.page-works .portfolio-card-caption{gap:12px;padding-top:15px}
.page-works .portfolio-card-caption h2{font-size:clamp(19px,1.5vw,24px)}
.page-works .portfolio-card-caption div>span{font-size:12px}
@media(max-width:950px) and (min-width:601px){.page-works .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.page-works .portfolio-reel{padding-top:26px;margin-bottom:30px}.page-works .reel-item{width:52vw;height:34vw;min-width:0}.page-works .reel-item span{font-size:10px;left:10px;bottom:10px}.page-works .portfolio-grid{grid-template-columns:1fr;gap:32px}.page-works .portfolio-filterbar .filters{flex-wrap:wrap}.page-works .portfolio-filterbar .filters button{padding:8px 10px;font-size:11px}.page-works .portfolio-cover:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.page-works .portfolio-cover,.page-works .portfolio-cover:hover,.page-works .portfolio-cover:hover>img{transform:none!important;transition:none}}
.page-works #tmall-38 .portfolio-cover>img{object-position:center 20%}
/* Approved case layout: unchanged copy on the left, compact complete images on the right. */
.project-detail .project-chapter{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;padding:44px 0;border-bottom:1px solid #dededb;align-items:start}
.project-detail .project-prose{display:block;margin:0;min-width:0}
.project-detail .project-prose>.chapter-kind{margin:0 0 20px}
.project-detail .project-prose h2{font-size:clamp(25px,2.3vw,34px);margin:0 0 22px}
.project-detail .project-visuals{min-width:0;padding-top:30px}
.project-detail .project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.project-detail .project-gallery.dense-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.project-detail .gallery-item .zoom-image{background:transparent;border-radius:0;cursor:zoom-in}
.project-detail .gallery-item img{width:100%;height:180px;max-height:none;object-fit:contain}
.project-detail .dense-gallery .gallery-item img{height:140px}
.project-detail .project-gallery.long-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-detail .long-gallery .gallery-item img{height:600px;object-fit:contain}
.project-detail .gallery-item.single img{height:240px}
.project-detail .long-gallery .gallery-item.single img{height:600px}
.project-detail .project-chapter.has-results{align-items:center}
.project-detail .has-results .project-visuals{padding-top:0}
.project-detail .project-results{display:flex;justify-content:center;align-items:center;gap:0;padding:18px 0;margin:0;text-align:center}
.project-detail .project-results>div{flex:1;min-width:0;padding:0 9px}
.project-detail .project-results>div+div{border-left:1px solid #dededb}
.project-detail .project-results strong{font-size:clamp(23px,2.5vw,36px);letter-spacing:-.025em;white-space:nowrap}
.project-detail .project-results span{font-size:12px;line-height:1.7;margin-top:12px}
.project-detail .project-results+.project-gallery{margin-top:28px}
.project-detail .case-film{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;align-items:center;padding:44px 0;border-bottom:1px solid #dededb}
.project-detail .film-heading h2{font-size:27px;line-height:1.6}
.project-detail .film-poster{width:100%;max-width:460px;justify-self:center}
.project-detail .film-action{padding:10px 15px;font-size:12px;right:14px;bottom:14px}
@media(max-width:800px){.project-detail .project-chapter,.project-detail .case-film{gap:28px}.project-detail .project-results{flex-wrap:wrap;row-gap:20px}.project-detail .project-results>div{flex-basis:45%}.project-detail .project-results>div+div{border:0}}
@media(max-width:600px){.project-detail .project-chapter,.project-detail .case-film{grid-template-columns:1fr;gap:20px;padding:32px 0}.project-detail .project-visuals{padding-top:0}.project-detail .gallery-item img{height:160px}.project-detail .dense-gallery .gallery-item img{height:125px}.project-detail .long-gallery .gallery-item img{height:420px}.project-detail .project-results{flex-wrap:nowrap}.project-detail .project-results>div{flex-basis:0;padding:0 6px}.project-detail .project-results strong{font-size:25px}.project-detail .project-results span{font-size:11px}.project-detail .project-prose h2{font-size:25px}}
/* Equal image frames, with full originals available in the zoom dialog. */
.project-detail .project-gallery,.project-detail .project-gallery.dense-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.project-detail .gallery-item.single{grid-column:auto}
.project-detail .gallery-item .zoom-image{aspect-ratio:1.45;overflow:hidden;background:#eee}
.project-detail .gallery-item img,.project-detail .dense-gallery .gallery-item img,.project-detail .gallery-item.single img{width:100%;height:100%;aspect-ratio:1.45;object-fit:cover}
.project-detail .project-gallery.long-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-detail .long-gallery .zoom-image{aspect-ratio:auto;height:600px;background:transparent}
.project-detail .long-gallery .gallery-item img,.project-detail .long-gallery .gallery-item.single img{height:100%;aspect-ratio:auto;object-fit:contain}
.project-player{display:block;width:100%;max-width:100%;aspect-ratio:16/9;object-fit:contain;background:#111;border-radius:5px;align-self:center}
@media(max-width:600px){.project-detail .long-gallery .zoom-image{height:420px}}

/* C overlay: original document typography and spacing, uncropped centered media. */
.project-detail .project-chapter{align-items:center}
.project-detail .project-visuals{padding-top:0;align-self:center}
.project-detail .project-gallery{align-items:center}
.project-detail .gallery-item .zoom-image,
.project-detail .long-gallery .zoom-image{aspect-ratio:auto;height:auto;background:transparent;overflow:visible}
.project-detail .gallery-item img,
.project-detail .dense-gallery .gallery-item img,
.project-detail .gallery-item.single img,
.project-detail .long-gallery .gallery-item img,
.project-detail .long-gallery .gallery-item.single img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.project-detail .project-hero img{height:auto;max-height:none;object-fit:contain}
.project-modal-open{overflow:hidden}
.project-modal{position:fixed;width:90vw;max-width:1800px;height:90dvh;max-height:none;padding:0;border:1px solid #ffffffc9;border-radius:28px;background:#fafaf9;color:#242426;overflow:hidden;box-shadow:0 28px 80px #14182045}
.project-modal::backdrop{background:rgba(65,69,78,.48);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}
.project-modal[open]{animation:project-modal-in .26s ease-out}
.project-modal iframe{display:block;width:100%;height:100%;border:0;background:#fafaf9}
.project-modal-close{position:absolute;z-index:2;top:16px;right:20px;width:40px;height:40px;border:0;border-radius:50%;background:#ededf0;color:#45454b;font:30px/1 Arial,sans-serif;cursor:pointer}
.project-modal-close:hover{background:#dddde3}
.project-modal-close:focus-visible{outline:2px solid #584992;outline-offset:3px}
.project-modal-status{position:absolute;top:40%;width:100%;text-align:center;font-size:16px}
.case-embedded .site-header,.case-embedded footer,.case-embedded .contact-section{display:none}
.case-embedded body{padding-top:0}
@keyframes project-modal-in{from{opacity:0;transform:perspective(1200px) translateY(16px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:600px){.project-modal{width:96vw;height:94dvh;border-radius:18px}.project-modal-close{top:10px;right:12px}.case-embedded .project-intro{padding-top:64px}}
@media(prefers-reduced-motion:reduce){.project-modal[open]{animation:none}}

/* Reviewed case system: complete images, stable stack height, original typography. */
.project-detail .project-hero{height:auto;aspect-ratio:1800/771;display:flex;align-items:center;justify-content:center;overflow:hidden;background:transparent}
.project-detail .project-hero img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain}
.project-detail .project-chapter.text-only{grid-template-columns:1fr}
.project-chapter.text-only .project-visuals{display:none}
.project-detail .project-ending{border-top:0}
.project-detail .project-results{border:0}
.project-detail .project-results strong{white-space:nowrap}
.project-detail .project-results span{word-break:keep-all;overflow-wrap:normal}
.image-stack{width:100%;max-width:560px;margin:0 auto;padding:25px 16px 0}
.stack-stage{position:relative;height:320px;isolation:isolate;touch-action:pan-y}
.stack-card{position:absolute;inset:0;margin:0;transform-origin:center 85%;background:#fff;border:1px solid #ececea;border-radius:10px;box-shadow:0 9px 25px #2424260c;transform:translate(calc(var(--stack-position)*7px),calc(var(--stack-position)*-9px)) rotate(calc(var(--stack-position)*-2deg));z-index:calc(4 - var(--stack-position));transition:transform .38s cubic-bezier(.2,.65,.2,1),opacity .28s ease}
.stack-card[hidden]{display:none}
.stack-card:not([data-active]){pointer-events:none}
.project-detail .stack-card .zoom-image{width:100%;height:100%;padding:12px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;border-radius:10px;cursor:zoom-in;overflow:hidden}
.project-detail .stack-card img{display:block;width:100%;height:100%;object-fit:contain;aspect-ratio:auto;max-height:100%}
.stack-controls{display:flex;justify-content:center;align-items:center;gap:22px;margin-top:22px;color:#76767b;font-size:12px;font-variant-numeric:tabular-nums}
.stack-controls button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #dededb;border-radius:50%;background:transparent;color:#45454b;cursor:pointer;font-size:18px}
.stack-controls button:hover{background:#efefef}
.zoom-image:focus:not(:focus-visible),.stack-controls button:focus:not(:focus-visible){outline:none;box-shadow:none}
.zoom-image:focus-visible,.stack-controls button:focus-visible{outline:2px solid #45454b;outline-offset:4px}
.image-dialog{padding:48px 20px 20px;border:0;border-radius:16px;background:#fafaf9;max-width:94vw;max-height:94dvh;overflow:auto}
.image-dialog img{display:block;max-width:88vw;max-height:82dvh;width:auto;height:auto;object-fit:contain;margin:auto}
.image-dialog .dialog-close{position:absolute;top:10px;right:12px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#e9e9eb;color:#444;font:26px/1 Arial;cursor:pointer}
.image-dialog::backdrop{background:#34363b80;backdrop-filter:blur(15px)}
.case-film-list .case-film:last-child{border-bottom:0}
.project-modal[open]{animation:none}
.project-modal-status[hidden]{display:none}
.project-modal-status .loading-wheel{display:inline-block;width:28px;height:28px;border:2px solid #dbdbe0;border-top-color:#71658c;border-radius:50%;animation:loading-spin .85s linear infinite}
@keyframes loading-spin{to{transform:rotate(360deg)}}
.project-transition-image{position:absolute;z-index:1;pointer-events:none;object-fit:contain;background:#fafaf9;border-radius:8px;will-change:transform,width,height}
@media(max-width:600px){.stack-stage{height:280px}.image-stack{padding:20px 10px 0}.stack-card .zoom-image{padding:8px}.project-detail .project-results strong{font-size:clamp(20px,6vw,25px)}}
@media(prefers-reduced-motion:reduce){.stack-card{transition:none}.loading-wheel{animation-duration:2s}}
.project-detail .zoom-image:hover{outline:none;box-shadow:none}
.image-dialog img{max-width:100%;max-height:calc(90dvh - 68px)}
.project-modal-close[hidden]{display:none}

/* Review 19: consistent wide heroes; preserve chapter artwork in full. */
.project-detail .project-hero{position:relative;aspect-ratio:1800/771;height:auto;display:block}
.project-detail .project-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
:is(a,button,[tabindex]):focus,:is(a,button,[tabindex]):focus-visible{outline:none!important}
html.keyboard-navigation :is(a,button,[tabindex]):focus-visible{box-shadow:inset 0 0 0 2px #777!important}
.case-loading{position:relative;cursor:progress}
.case-loading::after{content:'';position:absolute;right:20px;top:20px;width:24px;height:24px;border:3px solid #fff8;border-top-color:#fff;border-radius:50%;animation:case-loading-spin .7s linear infinite;z-index:3;filter:drop-shadow(0 1px 3px #555)}
@keyframes case-loading-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.case-loading::after{animation:none}}

/* Review 21: full-page cases with restrained progressive text. */
.scroll-reveal{opacity:0;translate:0 15px;transition:opacity .75s ease,translate .75s cubic-bezier(.2,.7,.25,1)}
.scroll-reveal.text-revealed{opacity:1;translate:0 0}
.project-detail.case-audi .project-hero,.project-detail.case-audi-used .project-hero{aspect-ratio:auto}
.project-detail.case-audi .project-hero img,.project-detail.case-audi-used .project-hero img{position:static;height:auto;max-height:none;object-fit:contain}
/* Exclude the red promotional strip on the right, then center the remaining scene. */
#tmall-cny .portfolio-cover img{width:100%;max-width:100%;object-position:18% center}
#tianmao .portfolio-cover img{object-position:78% center}

/* 2026-09-17 final portfolio refinements */
.motion-toggle,.motion-toggle:hover{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:4px!important;min-height:0!important;gap:7px!important;color:var(--ink)!important}
.hero-tags{display:flex;flex-wrap:wrap;gap:7px}.hero-tags span{font-size:11px;line-height:1.2;padding:6px 10px;border:1px solid #30304455;border-radius:30px;white-space:nowrap}
.ability-heading h2{display:flex;justify-content:center;align-items:center;gap:clamp(12px,2vw,36px)}
@media(min-width:801px){.home-hero{--hero-copy-height:clamp(126px,12.5vw,196px)}.hero-intro h1{font-size:clamp(28px,2.75vw,46px);line-height:1.42}.hero-profile{left:74%;top:47%;width:23%;justify-content:center;gap:14px}.hero-profile .profile-name{font-size:clamp(24px,2vw,34px)}.hero-profile .profile-experience{margin-top:2px}.hero-actions{margin-top:24px}.hero-tags span{font-size:clamp(9px,.72vw,12px)}}

.personal-films-detail{--personal-accent:#5b48a6;background:#f6f5f1;color:#171719}.personal-films-intro{padding:56px var(--pad) 70px;max-width:1540px;margin:auto}.personal-films-title{display:flex;justify-content:space-between;align-items:end;margin-top:55px}.personal-films-title h1{font-size:clamp(58px,7.2vw,112px);letter-spacing:-.07em;line-height:1;margin:12px 0}.personal-films-title>span{color:#77777b;line-height:1.65}.personal-films-title small{font-size:11px;letter-spacing:.08em}.personal-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:65px}.personal-intro-grid>div+div{border-left:1px solid #d4d4d0;padding-left:8%}.personal-intro-grid b{display:block;color:var(--personal-accent);font-size:12px;font-weight:500;letter-spacing:.08em;margin-bottom:18px}.personal-intro-grid p{font-size:16px;line-height:2;color:#5f5f64;margin:0}.personal-responsibility{display:flex;gap:42px;align-items:baseline;margin-top:45px}.personal-responsibility span{font-size:13px;color:#77777b}.personal-responsibility p{font-size:15px;margin:0}.personal-film-body{max-width:1540px;margin:auto;padding:0 var(--pad)}.personal-film-section{padding:72px 0 25px}.personal-film-section>header{display:grid;grid-template-columns:65px 1fr;gap:18px;border-bottom:1px solid #cbcbc7;padding-bottom:38px}.personal-film-section>header>span{font-size:17px;color:var(--personal-accent)}.personal-film-section h2{font-size:clamp(30px,3vw,46px);margin:-8px 0 30px}.personal-film-section strong{display:block;font-size:clamp(18px,1.8vw,28px);margin-bottom:18px}.personal-film-section header p{max-width:950px;color:#66666b;font-size:15px;line-height:1.9}.personal-film-band{position:relative;margin-top:38px;padding:74px 36px 70px;background:#111113;border-radius:14px;display:grid;gap:28px}.personal-film-band:before,.personal-film-band:after{content:"";position:absolute;left:32px;right:32px;height:1px;background:#454549}.personal-film-band:before{top:28px}.personal-film-band:after{bottom:28px}.ai-band{grid-template-columns:repeat(3,1fr)}.personal-film-card{display:block;text-align:left;color:#eeeeeb;background:none;border:0;padding:0;cursor:pointer;min-width:0}.personal-film-image{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:5px;background:#070708}.personal-film-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease,opacity .35s ease}.personal-film-card:hover img{transform:scale(1.025);opacity:.9}.personal-film-label{display:block;font-size:12px;letter-spacing:.08em;margin-top:13px;color:#aaaab0}.line-play{position:absolute;right:17px;bottom:16px;width:18px;height:22px}.line-play:before{content:"";position:absolute;inset:0;border:1.5px solid #f2f2ef;clip-path:polygon(0 0,100% 50%,0 100%,0 0)}.life-band{grid-template-columns:.72fr 1fr 1fr;grid-template-rows:1fr 1fr}.life-band .personal-film-card:nth-of-type(1){grid-row:1/3}.life-band .personal-film-card:nth-of-type(2){grid-column:2/4}.life-band .personal-film-card:nth-of-type(1) .personal-film-image{aspect-ratio:9/16;height:100%;max-height:670px}.life-band .personal-film-card:nth-of-type(2) .personal-film-image{aspect-ratio:2.25}.cat-band{grid-template-columns:repeat(4,minmax(0,1fr));justify-content:center}.cat-band .personal-film-card:nth-of-type(n+5){transform:translateX(50%)}.cat-band .personal-film-image{aspect-ratio:9/16}.film-dialog{width:min(92vw,1280px);padding:50px 28px 28px;border:0;border-radius:18px;background:#111;color:white}.film-dialog::backdrop{background:#151518cc;backdrop-filter:blur(14px)}.film-dialog video{display:block;width:100%;max-height:78vh;background:#000}.film-dialog-close{position:absolute;right:12px;top:10px;width:40px;height:40px;display:grid;place-items:center;padding:0;color:#49494d;background:#e9e9eb;border:0;border-radius:50%;font-size:30px;line-height:1;cursor:pointer}.film-dialog{padding-top:62px}.project-modal-close[hidden]{display:none}.film-dialog-title{margin:0 0 14px;font-size:13px;letter-spacing:.08em;color:#aaa}.page-works #personal-films .portfolio-cover img{object-position:center}

@media(max-width:600px){.hero-intro h1{font-size:33px}.hero-profile{top:500px;width:43%;right:2%;padding-left:10px}.hero-tags{gap:5px}.hero-tags span{font-size:8px;padding:5px 7px}.ability-heading h2{gap:5.5px}.personal-films-intro{padding-top:35px}.personal-films-title{margin-top:35px}.personal-films-title h1{font-size:52px}.personal-intro-grid{display:block;margin-top:45px}.personal-intro-grid>div+div{border-left:0;border-top:1px solid #d4d4d0;padding:28px 0 0;margin-top:28px}.personal-intro-grid p{font-size:14px}.personal-responsibility{display:block;margin-top:34px}.personal-responsibility p{margin-top:10px;font-size:13px}.personal-film-section{padding-top:52px}.personal-film-section>header{grid-template-columns:42px 1fr}.personal-film-section h2{font-size:29px}.personal-film-section strong{font-size:17px;line-height:1.7}.personal-film-section header p{font-size:13px}.personal-film-band{padding:58px 18px 56px;gap:22px 12px}.ai-band{grid-template-columns:1fr}.life-band{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto}.life-band .personal-film-card:nth-of-type(1){grid-row:1/3}.life-band .personal-film-card:nth-of-type(2){grid-column:2}.life-band .personal-film-card:nth-of-type(n+3){grid-column:1/-1}.life-band .personal-film-card:nth-of-type(1) .personal-film-image{height:auto;max-height:none}.cat-band{grid-template-columns:repeat(2,1fr)}.cat-band .personal-film-card:nth-of-type(n+5){transform:none}.personal-film-label{font-size:10px}.film-dialog{width:96vw;padding:48px 12px 14px}}

@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;translate:none;transition:none}}
@media print{.scroll-reveal{opacity:1;translate:none}}
/* Loading lives only inside the frosted case overlay. */
.project-modal-status{inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;pointer-events:none}
.project-modal-status[hidden]{display:none}
.project-modal-status img{display:block;width:96px;height:170px;object-fit:contain;background:transparent}
.project-modal-status button{pointer-events:auto;padding:8px 16px;border:1px solid #ddd;border-radius:18px;background:white;cursor:pointer}
.case-loading{cursor:pointer}.case-loading::after{display:none}

.project-modal-status .case-loading-caption{font-size:14px;line-height:1.6;color:#828286;letter-spacing:.03em}

@media screen and (prefers-reduced-motion:no-preference){.case-embedded .scroll-reveal:not(.text-revealed){opacity:.08}}

/* Film contact sheet: every image stays inside its own explicit grid cell. */
.personal-film-band{align-items:start}
.film-band-roll,.film-band-frame,.film-band-footer{position:absolute;z-index:1;color:#76767d;font-size:9px;line-height:1;letter-spacing:.08em;font-family:Arial,sans-serif;font-weight:400;pointer-events:none}
.film-band-roll{top:42px;left:36px}.film-band-frame{top:42px;right:36px;text-align:right}.film-band-footer{bottom:43px;left:36px}
.ai-band:has(.film-band-footer){padding-bottom:86px}
.personal-film-card{width:100%;min-width:0;max-width:100%;align-self:start}
.personal-film-image{width:100%;min-width:0;height:auto;max-width:100%}
.personal-film-image img{position:absolute;inset:0;object-fit:contain}
.line-play{width:22px;height:27px;color:white;opacity:.58;transition:opacity .2s}
.line-play::before,.line-play::after{content:none}
.personal-film-card:hover .line-play,.personal-film-card:focus-visible .line-play{opacity:.85}
.life-band{grid-template-columns:minmax(0,.82fr) repeat(2,minmax(0,1fr));grid-template-rows:auto auto;gap:26px}
.life-band .personal-film-card:nth-of-type(1){grid-column:1;grid-row:1/3}
.life-band .personal-film-card:nth-of-type(2){grid-column:2/4;grid-row:1}
.life-band .personal-film-card:nth-of-type(3){grid-column:2;grid-row:2}
.life-band .personal-film-card:nth-of-type(4){grid-column:3;grid-row:2}
.life-band .personal-film-card:nth-of-type(1) .personal-film-image{height:auto;max-height:none;aspect-ratio:9/16}
.life-band .personal-film-card:nth-of-type(2) .personal-film-image{aspect-ratio:16/9}
.cat-band{grid-template-columns:repeat(8,minmax(0,1fr));gap:26px;padding-left:7%;padding-right:7%}
.cat-band .personal-film-card{grid-column:span 2}
.cat-band .personal-film-card:nth-of-type(n+5){transform:none}
.cat-band .personal-film-card:nth-of-type(5){grid-column:2/4}
.cat-band .personal-film-card:nth-of-type(6){grid-column:4/6}
.cat-band .personal-film-card:nth-of-type(7){grid-column:6/8}
.drawing-band{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,76px);padding-left:clamp(36px,8vw,130px);padding-right:clamp(36px,8vw,130px);padding-bottom:86px}
.drawing-card{display:block;width:100%;padding:0;border:0;background:transparent;color:#eeeeeb;text-align:left;cursor:zoom-in;min-width:0}
.drawing-image{display:block;aspect-ratio:1240/1754;overflow:hidden;border-radius:5px;background:#f4f4f1}
.drawing-image img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .35s ease,opacity .35s ease}
.drawing-card:hover img,.drawing-card:focus-visible img{transform:scale(1.015);opacity:.94}
.drawing-card small{display:block;margin-top:7px;color:#76767d;font-size:10px;letter-spacing:.05em}
.about-masthead .about-title{font-size:clamp(28px,3.55vw,59px);line-height:1.5;letter-spacing:-.045em}
.about-title .about-title-line{display:block;color:var(--ink);white-space:nowrap}
.page-works .portfolio-card-caption h2{color:var(--ink)}
@media(max-width:600px){
 .film-band-roll,.film-band-frame,.film-band-footer{font-size:7px;letter-spacing:.06em}.film-band-roll{left:18px;top:39px}.film-band-frame{right:18px;top:39px}.film-band-footer{left:18px;bottom:38px}.ai-band:has(.film-band-footer){padding-bottom:72px}
 .life-band{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}
 .life-band .personal-film-card:nth-of-type(1){grid-column:1/-1;grid-row:auto;width:58%;justify-self:center}
 .life-band .personal-film-card:nth-of-type(2){grid-column:1/-1;grid-row:auto}
 .life-band .personal-film-card:nth-of-type(3){grid-column:1;grid-row:auto}
 .life-band .personal-film-card:nth-of-type(4){grid-column:2;grid-row:auto}
 .cat-band{grid-template-columns:repeat(4,minmax(0,1fr));padding-left:18px;padding-right:18px;gap:24px 14px}
 .cat-band .personal-film-card:nth-of-type(n){grid-column:span 2}
 .cat-band .personal-film-card:last-child{grid-column:2/4}
 .drawing-band{grid-template-columns:1fr;padding-left:18px;padding-right:18px;gap:30px;padding-bottom:72px}
 .about-masthead .about-title{font-size:clamp(21px,5.5vw,32px)}
 .about-masthead .tag-list{max-width:100%}
}
@media(max-width:800px){
 .contact-character{grid-template-columns:82px minmax(170px,1fr);gap:4px}
 .wechat-contact{margin-bottom:34px;padding:7px 7px 9px}
 .wechat-contact img{width:66px;height:66px}
 .speech{left:49%}
}
@media(max-width:600px){
 .contact-character{width:min(280px,100%);height:250px;grid-template-columns:76px minmax(160px,1fr);gap:4px;margin:18px -5px -30px auto}
 .wechat-contact{margin-bottom:28px;padding:7px 7px 9px}
 .wechat-contact img{width:60px;height:60px}
 .wechat-contact figcaption{font-size:8px}
 .contact-character .character{height:240px}
 .speech{left:49%;top:0}
}
