@charset "UTF-8";:root{color-scheme:dark;--bg: #111214;--panel: #1c1d22;--line: #34343d;--text: #f2f0ed;--muted: #aaa8b4;--purple: #c5b2ff;--radius: 18px;font-family:Arial,Microsoft YaHei,PingFang SC,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;max-width:100%;height:auto}picture{display:block}[hidden]{display:none!important}::selection{background:#6b4fae;color:#fff}:where(a,button,summary):focus-visible{outline:2px solid var(--purple);outline-offset:4px}p{line-height:1.9}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2,h3{overflow-wrap:anywhere}.wrap{width:calc(100% - 96px);max-width:1240px;margin-inline:auto}.icon{display:inline-block;width:18px;height:18px;flex:none;filter:invert(93%);vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:-90px;left:16px;z-index:50;padding:14px;background:var(--purple);color:#20192f}.skip-link:focus{top:12px}.nav-shell{position:sticky;top:14px;z-index:20;width:calc(100% - 64px);max-width:1180px;min-height:62px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin:18px auto 0;padding:8px 12px 8px 22px;border:1px solid #383840;border-radius:38px;background:#24252a}.brand{width:fit-content;font-size:23px;font-weight:700;letter-spacing:-.085em;white-space:nowrap}.brand span{font-weight:400}.brand .brand-period{color:var(--purple);font-weight:700}.desktop-nav{display:flex;gap:clamp(20px,4vw,54px);font-size:14px;color:var(--muted)}:where(.desktop-nav,.mobile-nav,.footer) a:hover,.desktop-nav a[aria-current]{color:var(--purple)}.nav-cta{justify-self:end;display:inline-flex;align-items:center;gap:8px;padding:11px 15px;border:1px solid #44434e;border-radius:26px;background:#31313a;font-size:12px;white-space:nowrap}.nav-cta[aria-current]{border-color:var(--purple);color:var(--purple)}.mobile-nav{display:none}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.14em}.purple{color:var(--purple)}.status-dot{display:inline-block;width:6px;height:6px;flex:none;border-radius:50%;background:var(--purple)}.button,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:13px;font-weight:600}.button{width:fit-content;min-height:44px;padding:12px 18px;border:1px solid var(--line);border-radius:32px;background:var(--panel)}.button.primary{background:var(--purple);border-color:var(--purple);color:#201730}.button.primary .icon{filter:brightness(0)}.button.primary:hover{background:#dfd3ff}.text-link{width:fit-content;padding-block:5px;border-bottom:1px solid #5a5366}.text-link:hover{color:var(--purple)}:where(.button,.text-link,.nav-cta) .icon{width:15px;height:15px}.hero{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);align-items:center;gap:clamp(32px,5vw,82px);padding-block:clamp(60px,8vw,115px) 46px}.hero-single{grid-template-columns:1fr}.hero-index{margin-bottom:20px}.hero h1{font-size:clamp(45px,5.15vw,78px);line-height:1.15;letter-spacing:-.065em;font-weight:700}.hero h1 span{color:var(--purple)}.hero-copy>p{max-width:390px;margin-top:23px;color:var(--muted);font-size:15px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:13px 20px;margin-top:27px}.feature{display:block;min-width:0;padding:10px;border:1px solid var(--line);border-radius:22px;background:#222329}.feature:hover,.project-card:hover{border-color:#8b76a9}.feature-top{display:flex;justify-content:space-between;gap:12px;padding:8px 8px 14px;font-size:11px;letter-spacing:.08em;color:var(--muted)}.feature-top>span:first-child{display:flex;align-items:center;gap:8px;color:var(--purple)}.feature-media,.project-image{aspect-ratio:16/9;overflow:hidden;background:#292633}.feature-media{border-radius:13px}:where(.feature-media,.project-image) :where(picture,img){width:100%;height:100%}:where(.feature-media,.project-image) img{object-fit:cover}.image-placeholder{display:grid;place-items:center;height:100%;padding:18px;color:var(--purple);font-size:clamp(20px,3vw,40px);text-align:center}.feature-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 9px 7px}.feature-caption div>span{display:block;margin-bottom:7px;color:var(--muted);font-size:11px}.feature-caption strong{font-size:24px;font-weight:600}.feature-arrow,.project-view{display:grid;place-items:center;width:40px;height:40px;flex:none;border:1px solid #575260;border-radius:50%;background:#24232b}.practice-strip{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}.practice-strip>span{display:flex;align-items:center;gap:10px;padding:15px 12px;font-size:13px;color:var(--muted)}.practice-strip>span:before{content:"";width:5px;height:5px;flex:none;border-radius:50%;background:#79678f}.section{padding-block:78px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:26px}.section-heading h2,.about-teaser h2,.contact-panel h2{margin-top:12px;font-size:clamp(28px,3.45vw,47px);letter-spacing:-.045em;line-height:1.24;font-weight:600}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.home-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);transition:border-color .15s ease}.project-link{display:block;height:100%}.project-image{position:relative;margin:7px;border-radius:12px}.project-image img{transition:transform .23s ease}.project-link:hover .project-image img{transform:scale(1.025)}.project-view{position:absolute;right:11px;bottom:11px;width:35px;height:35px;background:#22232bec}.project-view .icon{width:15px;height:15px}.project-caption{padding:15px 18px 23px}.project-category{display:flex;justify-content:space-between;gap:8px;color:var(--purple);font-size:11px;line-height:1.5}.project-category span:last-child{color:var(--muted)}.project-caption h3{font-size:22px;font-weight:600;margin:11px 0 8px;line-height:1.35}.project-caption p{color:var(--muted);font-size:13px}.about-teaser{display:grid;grid-template-columns:1fr 1.15fr;align-items:start;gap:42px;border-top:1px solid var(--line);padding-block:53px}.about-teaser p{max-width:640px;margin-bottom:17px;color:var(--muted);white-space:pre-line;font-size:15px}.contact-panel{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:34px 38px;margin-block:20px 66px;border:1px solid #454053;border-radius:var(--radius);background:#262330}.contact-panel p{margin-top:10px;color:var(--muted);font-size:14px}.contact-panel .button{flex:none}.footer{border-top:1px solid var(--line);padding-block:30px 20px}.footer-top,.footer-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.footer-top p{margin-top:9px;color:var(--muted);font-size:13px}.footer-top nav{display:flex;flex-wrap:wrap;gap:18px;color:var(--muted);font-size:14px}.footer-bottom{margin-top:25px;padding-top:17px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.7}.footer-bottom>div{display:flex;flex-wrap:wrap;gap:10px 16px}.footer-bottom .icon{width:12px;height:12px}.page-heading{padding-block:clamp(58px,8vw,100px) 42px}.page-heading h1,.case-heading h1{margin:14px 0;font-size:clamp(45px,6vw,83px);font-weight:700;line-height:1.16;letter-spacing:-.065em}.page-heading p,.case-heading-grid p{max-width:650px;color:var(--muted);font-size:15px}.archive-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.archive-count{display:grid;gap:4px;color:var(--muted);text-align:right;font-size:11px;white-space:nowrap}.archive-count strong{color:var(--purple);font-size:clamp(44px,6vw,75px);letter-spacing:-.06em;font-variant-numeric:tabular-nums;line-height:1}.works-section{padding-block:21px 80px;border-top:1px solid var(--line)}.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}.filters button{min-height:42px;padding:9px 15px;border:1px solid var(--line);border-radius:28px;background:var(--panel);font-size:13px}.filters button[aria-pressed=true]{border-color:var(--purple);background:var(--purple);color:#211730}.filters button>span{margin-left:4px;opacity:.75}.empty-state{padding:55px 0}.empty-state .text-link,.not-found .button{margin-top:18px}.not-found{min-height:65vh}.case-heading{padding-block:48px 32px}.back-link{display:inline-flex;align-items:center;gap:9px;margin-bottom:27px;color:var(--muted);font-size:13px}.back-link:hover{color:var(--purple)}.case-heading-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.35fr);align-items:end;gap:26px 45px}.case-heading h1{font-size:clamp(40px,5.9vw,78px);text-wrap:balance}.case-meta{display:grid;gap:12px;padding:14px 0 14px 20px;border-left:1px solid var(--line)}.case-meta dt{color:var(--muted);font-size:11px}.case-meta dd{margin-top:5px;font-size:13px;line-height:1.55}.case-cover>picture{overflow:hidden;border-radius:var(--radius);background:var(--panel)}.case-cover img{width:100%;max-height:850px;object-fit:contain}.case-outline{display:flex;align-items:baseline;flex-wrap:wrap;gap:14px 24px;padding-block:18px;margin-top:18px;border-bottom:1px solid var(--line)}.case-outline>div{display:flex;flex-wrap:wrap;gap:9px 18px}.case-outline a{color:var(--purple);font-size:13px;line-height:1.5}.case-outline a:hover{text-decoration:underline}.case-story{display:grid;grid-template-columns:minmax(175px,.6fr) minmax(0,1.4fr);gap:36px;padding-block:48px;border-bottom:1px solid var(--line)}.case-story h2,.gallery-heading h2,.practice-section h2{margin:11px 0 0;font-size:clamp(25px,3vw,37px);font-weight:600;line-height:1.35;letter-spacing:-.035em}.case-story p{margin-bottom:13px;color:var(--muted);font-size:15px;white-space:pre-line}.case-story .case-intro{font-size:clamp(18px,2vw,24px);color:var(--text)}.case-story .case-disclosure{margin-top:17px;padding-left:14px;border-left:2px solid #776491;font-size:13px}.case-gallery{padding-top:45px}.gallery-heading{margin-bottom:18px}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px}.gallery-grid.single{grid-template-columns:1fr}.gallery-grid :where(img,video){width:100%;height:auto;border-radius:14px}.zoom-image{display:block;position:relative;width:100%;padding:0;border:0;background:transparent}.zoom-hint{display:inline-flex;align-items:center;gap:7px;position:absolute;right:12px;bottom:12px;padding:8px 12px;border:1px solid #ffffff35;border-radius:25px;background:#17181ae0;font-size:11px}.zoom-hint .icon{width:12px;height:12px}.gallery-caption,.gallery-grid figcaption,.case-credits p{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.8;white-space:pre-line}.case-credits{margin-block:38px;padding-block:24px;border-block:1px solid var(--line)}.next-case{margin-block:40px 65px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.next-case>a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:12px}.next-case a span{color:var(--muted);font-size:12px}.next-case h2{font-size:clamp(24px,3.5vw,40px);font-weight:600}.preview-banner{padding:10px 16px;margin-top:18px;background:#332743;color:#e0ceff;text-align:center;font-size:13px}.about-heading{display:grid;grid-template-columns:1fr minmax(240px,.66fr);align-items:center;gap:35px}.about-heading .about-subtitle{color:var(--text);font-size:19px}.about-heading p+p{margin-top:9px}.monogram{display:grid;justify-items:start;gap:8px;padding:19px 24px;border:1px solid #4c425d;border-radius:var(--radius);background:#231f2b}.monogram>span{color:var(--muted);font-size:10px;letter-spacing:.13em}.monogram strong{font-size:clamp(80px,12vw,170px);color:#e4d9ff;font-weight:700;letter-spacing:-.105em;line-height:.98}.monogram strong span{color:#a486fb}.practice-section,.experience{padding-block:43px}.practice-grid,.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:23px}.practice-grid article,.contact-card{padding:23px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.practice-grid article>span{color:var(--purple);font-size:11px;letter-spacing:.08em}.practice-grid h3{margin-block:12px 9px;font-size:20px;font-weight:600}.practice-grid p,.experience p,.contact-methods>p{color:var(--muted);font-size:14px}.experience>article{display:grid;grid-template-columns:minmax(120px,.6fr) minmax(0,1.4fr);gap:18px 36px;padding-block:19px;border-top:1px solid var(--line)}.experience>article>span{color:var(--purple);font-size:13px}.experience h3{font-size:19px;margin-bottom:5px}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:68px;margin-top:0}.contact-card h2{margin-block:12px 18px;font-size:28px}.contact-topics{list-style:none;margin:0;padding:0}.contact-topics li{border-top:1px solid var(--line);padding-block:12px;color:var(--muted);font-size:14px;line-height:1.65}.contact-methods{display:grid;gap:12px;justify-items:start;overflow-wrap:anywhere}.contact-methods>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.contact-methods small,.copy-status{color:var(--muted)}.copy-status{font-size:13px}.lightbox{max-width:94vw;max-height:94vh;padding:46px 12px 12px;border:1px solid #585261;border-radius:12px;background:#151519}.lightbox::backdrop{background:#09090bec}.lightbox>img{max-width:90vw;max-height:80vh;width:auto;margin:auto;object-fit:contain}.lightbox-close{position:absolute;right:8px;top:5px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:#24242b}@media(max-width:1000px){.wrap{width:calc(100% - 52px)}.hero{gap:30px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-grid{gap:12px}.practice-grid article{padding:18px}}@media(max-width:700px){html{scroll-padding-top:86px}.wrap{width:calc(100% - 32px)}.nav-shell{top:9px;width:calc(100% - 22px);min-height:54px;grid-template-columns:1fr auto auto;gap:10px;margin-top:10px;padding:6px 9px 6px 14px}.desktop-nav{display:none}.brand{font-size:21px}.nav-cta{padding:8px 11px;font-size:11px}.mobile-nav{display:block}.mobile-nav summary{display:grid;place-items:center;width:37px;height:37px;list-style:none;cursor:pointer}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{position:absolute;top:calc(100% + 6px);right:0;display:grid;min-width:140px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#24242b}.mobile-nav nav a{min-height:40px;display:flex;align-items:center;padding-inline:12px;font-size:14px}.hero,.about-heading{grid-template-columns:1fr}.hero{padding-block:40px 24px;gap:27px}.hero h1{font-size:clamp(39px,11vw,60px)}.hero-index{margin-bottom:14px}.hero-copy>p{margin-top:15px;font-size:14px}.hero-actions{margin-top:19px}.feature-caption strong{font-size:21px}.practice-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-strip>span{padding:10px 6px;font-size:12px}.section{padding-block:48px}.section-heading{gap:12px;margin-bottom:18px}.section-heading .text-link{flex:none;font-size:12px}.about-teaser,.case-story,.case-heading-grid,.contact-grid{grid-template-columns:1fr;gap:18px}.about-teaser{padding-block:35px}.contact-panel{flex-wrap:wrap;padding:22px;margin-block:14px 42px}.footer-top,.footer-bottom{flex-wrap:wrap;gap:14px}.page-heading{padding-block:45px 28px}.archive-heading{align-items:start}.archive-count{margin-top:13px;font-size:9px}.archive-count strong{font-size:43px}.works-section,.contact-grid{padding-bottom:47px}.case-heading{padding-block:28px 21px}.case-heading h1{font-size:clamp(37px,10vw,56px)}.case-meta{grid-template-columns:repeat(2,minmax(0,1fr));border-left:0;border-top:1px solid var(--line);padding:14px 0 0}.case-story,.practice-section,.experience{padding-block:30px}.case-gallery{padding-top:30px}.gallery-grid,.practice-grid{grid-template-columns:1fr}.next-case{margin-block:25px 40px;padding:18px}.monogram{max-width:480px}.contact-card{padding:18px}}@media(max-width:550px){.project-grid{grid-template-columns:1fr;gap:15px}.experience>article{grid-template-columns:1fr;gap:7px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
