:root{color-scheme:dark;--color-background: #000000;--color-surface: rgba(0, 0, 0, .46);--color-surface-secondary: rgba(0, 0, 0, .68);--color-text-primary: #f5f5f7;--color-text-secondary: #a1a1a6;--color-text-tertiary: #8e8e93;--color-accent: #f5f5f7;--color-accent-hover: #f5f5f7;--color-accent-pressed: #a1a1a6;--color-separator: rgba(235, 239, 244, .22);--color-wire: rgba(235, 239, 244, .38);--font-sans: "SF Pro Display", "PingFang SC", "Helvetica Neue", Arial, sans-serif;--font-text: "SF Pro Text", "PingFang SC", "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "SFMono-Regular", Consolas, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-30: 120px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--radius-pill: 999px;--shadow-float: 0 8px 24px rgba(0, 0, 0, .28);--container: 1200px;--ease-enter: cubic-bezier(.2, .8, .2, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1)}@layer reset,base,components,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box}html{scrollbar-width:none;scroll-behavior:smooth}html::-webkit-scrollbar{display:none}body,h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}}@layer base{body{overflow-x:clip;background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-text);font-size:16px;line-height:1.5}main{min-height:60vh}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.02em;text-wrap:balance}h1{font-size:clamp(2.75rem,7vw,4rem);line-height:1.08}h2{font-size:clamp(1.75rem,4vw,2rem);line-height:1.2}h3{font-size:1.25rem;line-height:1.25}p{max-width:680px}:focus-visible{outline:3px solid var(--color-text-primary);outline-offset:3px}::selection{background:#ffffff38;color:var(--color-text-primary)}}@layer components{.skip-link{position:fixed;z-index:10;top:var(--space-3);left:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:var(--radius-md);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}.site-header{position:sticky;top:0;z-index:5;border-bottom:1px solid var(--color-separator);background:color-mix(in srgb,var(--color-background) 78%,transparent);backdrop-filter:blur(20px)}.header-inner{min-height:80px;display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.brand{font-family:var(--font-sans);font-weight:650;letter-spacing:-.02em}.brand[hidden]{display:none}.brand--back{display:inline-flex;width:44px;min-height:44px;align-items:center;justify-content:flex-start;transition:color .18s var(--ease-enter),transform .18s var(--ease-enter)}.brand--back svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.brand--back:is(:hover,:focus-visible){color:var(--color-text-secondary);transform:translate(-3px)}.site-nav{position:relative;display:flex;align-items:center;gap:var(--space-5);color:var(--color-text-secondary)}.site-nav a{min-height:44px;display:inline-flex;align-items:center;transition:color .18s var(--ease-enter)}.site-nav a[aria-current=page]{color:var(--color-text-primary)}.site-nav__indicator{position:absolute;bottom:0;left:0;height:2px;background:var(--color-text-primary);border-radius:var(--radius-pill);opacity:0;transition:transform .32s cubic-bezier(.2,.8,.2,1),width .32s cubic-bezier(.2,.8,.2,1),opacity .12s ease}.site-nav__indicator[data-ready=true]{opacity:1}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 var(--space-5);border:1px solid var(--color-separator);border-radius:var(--radius-md);background:#0000006b;backdrop-filter:blur(14px) saturate(0);-webkit-backdrop-filter:blur(14px) saturate(0);color:var(--color-text-primary);font-weight:600;transition:background-color .15s,border-color .15s,transform .15s}.button:is(:hover,:focus-visible){border-color:#fff9;background:#0000006b;box-shadow:0 8px 24px #00000047;transform:translateY(-1px)}.button--primary,.button--secondary{color:var(--color-text-primary);background:#0000006b}.button:active{background:#0000008f;transform:scale(.98)}.section{padding-block:var(--space-20)}.section-label{margin-bottom:var(--space-3);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:13px;text-transform:uppercase;letter-spacing:.08em}.section-copy{margin-top:var(--space-4);color:var(--color-text-secondary)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-12);align-items:center;min-height:calc(100svh - 80px);padding-block:var(--space-16)}.hero--project-stack{grid-template-columns:minmax(0,1.34fr) minmax(0,.66fr);align-items:start;min-height:calc(100svh + 3680px);gap:clamp(var(--space-8),4vw,var(--space-16))}.hero__copy{position:relative;z-index:1;padding-top:clamp(40px,8vh,120px);margin-left:clamp(8px,2vw,40px)}.hero-copy{color:var(--color-text-secondary);font-size:19px;margin-top:var(--space-5)}.hero--project-stack .hero__copy,.hero--project-stack .project-stack{position:sticky;top:clamp(96px,16svh,156px)}.project-stack{position:relative;width:min(100%,700px);min-height:720px;margin-inline-start:clamp(120px,14vw,200px)}.project-stack__scene{position:absolute;inset:0;isolation:isolate;perspective:980px;perspective-origin:38% 44%;transform-style:preserve-3d}.project-stack-card{position:absolute;display:flex;width:min(56%,390px);aspect-ratio:1.42;padding:var(--space-6);overflow:hidden;border:1px solid transparent;border-radius:var(--radius-xl);background:linear-gradient(132deg,rgba(255,255,255,.055),transparent 26%),#030304b8;box-shadow:-16px 30px 74px #00000075;backface-visibility:hidden;-webkit-backface-visibility:hidden;opacity:var(--card-visibility, .18);pointer-events:none;transform-origin:50% 50%;transform-style:preserve-3d;will-change:transform,opacity;contain:paint}.project-stack-card:before{content:"";position:absolute;z-index:1;inset:1px;border-radius:calc(var(--radius-xl) - 1px);pointer-events:none;opacity:var(--card-noise-opacity, 0);background-image:radial-gradient(circle at 20% 35%,rgba(255,255,255,.3) 0 .45px,transparent .75px),radial-gradient(circle at 70% 64%,rgba(255,255,255,.22) 0 .4px,transparent .72px),radial-gradient(circle at 42% 78%,rgba(255,255,255,.16) 0 .35px,transparent .66px);background-size:8px 11px,13px 9px,17px 14px;mix-blend-mode:screen}.project-transition-frame{position:absolute;z-index:5;inset:0;border:1px solid rgb(245 250 255 / var(--card-border-opacity, .14));border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff09;pointer-events:none;transform:translateZ(72px)}.project-stack-card:is(:hover,:focus-visible) .project-transition-frame,.project-stack-card.is-active .project-transition-frame{border-color:#ffffffc7}.project-stack-card:is(:hover,:focus-visible),.project-stack-card.is-active{box-shadow:-10px 34px 80px #00000094,0 0 0 1px #ffffff29}.project-stack-card.is-active{pointer-events:auto;backdrop-filter:blur(8px) saturate(0);-webkit-backdrop-filter:blur(8px) saturate(0)}.project-stack.is-project-transitioning .project-stack-card:not(.is-transition-source){opacity:0!important}.project-stack-card.is-transition-source{z-index:30!important;pointer-events:none;will-change:transform,opacity}.project-stack-card__index{position:absolute;z-index:3;top:var(--space-6);right:var(--space-6);color:#f5f5f7eb;font-family:var(--font-mono);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.08em;line-height:18px;opacity:var(--card-index-opacity, .68);pointer-events:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;backface-visibility:hidden}.project-stack-card__content{position:absolute;right:var(--space-6);bottom:var(--space-6);z-index:6;display:grid;width:min(46%,248px);align-content:end;gap:4px;margin:0;padding:48px 0 0;text-align:left;opacity:max(var(--card-content-opacity, 0),var(--card-resting-content-opacity, 0));filter:blur(var(--card-content-blur, 0));pointer-events:none;transform:translateZ(84px);background:none}.project-stack-card:not(.is-active) .project-stack-card__action{opacity:0}.project-stack-card__category{display:inline-block;justify-self:start;width:max-content;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:13px;font-weight:400;letter-spacing:.08em;line-height:18px;text-transform:uppercase;opacity:1}.project-stack-card__content strong{display:inline-block;justify-self:start;width:max-content;max-width:100%;font-family:var(--font-sans);font-size:28px;font-weight:600;letter-spacing:-.022em;line-height:34px;opacity:1;text-wrap:pretty}.project-stack-card--project-03 .project-stack-card__content strong{white-space:nowrap;font-size:22px;line-height:28px;text-transform:uppercase}.project-stack-card__content strong.project-stack-card__logo{width:min(100%,156px);line-height:0}.project-stack-card__logo img{display:block;width:100%;height:auto;opacity:1;filter:grayscale(1) invert(1) brightness(1.35) contrast(1.08)}.project-stack-card__action{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:17px;font-weight:600;line-height:22px;opacity:1}.project-stack-card__action b{color:var(--color-text-primary);font-size:15px}.project-stack-card__artwork{position:absolute;z-index:2;inset:0;overflow:hidden;opacity:var(--card-surface-detail, .1);pointer-events:none;transform:translateZ(16px);transition:opacity .22s var(--ease-enter)}.project-stack-card__artwork img{position:absolute;top:50%;left:10%;display:block;width:auto;max-width:none;height:64%;transform:translateY(-50%)}.project-stack-card--project-03 .project-stack-card__artwork img{left:auto;right:2%;height:92%}.project-stack-card--project-04 .project-stack-card__artwork img{left:8%;top:62%;height:76%}.project-stack-card--project-06 .project-stack-card__artwork img{left:15%;top:53%;height:94%}.project-stack-card--project-01 .project-stack-card__artwork img{left:12%;top:52%;height:96%}.project-stack-card__artwork-base{opacity:.52;filter:grayscale(1) brightness(.82)}.project-stack-card__artwork-accent{opacity:0;filter:saturate(1.22) brightness(.9);mix-blend-mode:color;transition:opacity .22s var(--ease-enter)}.project-stack-card:is(:hover,:focus-visible) .project-stack-card__artwork-accent{opacity:1}.project-stack-card__geometry{position:absolute;inset:16% 14%;transform:translateZ(16px);opacity:var(--card-geometry-opacity, 0)}.project-stack-card__geometry i{position:absolute;display:block;border:1px solid rgba(235,240,245,.54);opacity:1}.project-stack-card__geometry i:nth-child(1){inset:0 10% 18% 2%;border-radius:50% 14px 14px 50%}.project-stack-card__geometry i:nth-child(2){inset:23% 25% 0 21%;border-radius:var(--radius-md)}.project-stack-card__geometry i:nth-child(3){width:42%;height:42%;top:30%;left:31%;border-radius:50%}.project-stack-card--blue .project-stack-card__geometry i:nth-child(1){border-radius:50%}.project-stack-card--violet .project-stack-card__geometry{transform:translateZ(16px) rotate(24deg)}.project-stack-card--orange .project-stack-card__geometry i:nth-child(1){border-radius:var(--radius-pill)}.project-stack-card--green .project-stack-card__geometry i:nth-child(1){border-radius:50% 50% var(--radius-md) var(--radius-md)}.project-transition-card{contain:layout paint;position:fixed;z-index:7;left:0;top:0;width:0;height:0;pointer-events:none;opacity:0;transform-origin:50% 50%;backface-visibility:hidden;will-change:transform,opacity}.project-transition-card>.project-stack-card{inset:0;width:100%;height:100%;aspect-ratio:auto;transform:none!important;opacity:1!important;z-index:1!important;pointer-events:none!important;will-change:auto;background:#030304eb;box-shadow:0 18px 54px #0000005c;backdrop-filter:none;-webkit-backdrop-filter:none;transform-style:flat}.project-transition-card>.project-stack-card:before,.project-transition-card>.project-stack-card .project-stack-card__geometry,.project-transition-card>.project-stack-card .project-stack-card__artwork{display:none}.project-transition-card[data-copy-fields~=category]>.project-stack-card [data-shared-text=category],.project-transition-card[data-copy-fields~=title]>.project-stack-card [data-shared-text=title],.project-transition-card[data-copy-fields~=index]>.project-stack-card [data-shared-text=index]{visibility:hidden}.project-transition-card>.project-stack-card .project-stack-card__content,.project-transition-card>.project-stack-card .project-stack-card__index{backface-visibility:hidden;-webkit-backface-visibility:hidden}.project-transition-copy{contain:layout paint;position:fixed;z-index:8;left:0;top:0;width:0;height:0;opacity:0;pointer-events:none;transform-origin:0 0;backface-visibility:hidden;will-change:transform,opacity;white-space:nowrap}.project-transition-copy--title{z-index:9}.project-transition-copy>span{display:block;width:max-content;text-wrap:nowrap}.case-hero{position:relative;display:grid;align-items:center;padding-block:var(--space-16) var(--space-4);background:transparent}.case-hero>.container>.section-label{margin-bottom:4px}.case-hero>.container>.section-label[data-shared-text=category]{display:inline-block;width:max-content;line-height:18px}.case-hero>.container>h1{margin-top:var(--space-5);font-family:var(--font-sans);font-weight:600;letter-spacing:-.022em;line-height:1.2142857143}.case-hero>.container>h1>[data-case-title-text]{display:inline-block}.case-hero>.container>h1>[data-case-title-text]:has(img){line-height:0}.case-title-logo{display:block;width:clamp(220px,24vw,340px);height:auto;opacity:1;filter:grayscale(1) invert(1) brightness(1.35) contrast(1.08)}.case-hero--reference .case-title-logo,.project-stack-card--project-01 .project-stack-card__logo img{filter:none}.case-subtitle{margin-top:var(--space-2);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:clamp(12px,1.15vw,15px);font-weight:600;letter-spacing:.12em;line-height:1.4}.case-index{position:absolute;top:var(--space-6);right:max(var(--space-5),calc((100vw - var(--container)) / 2));margin:0;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:13px;font-weight:600;letter-spacing:.08em;line-height:18px}.case-summary{margin-top:var(--space-5);color:var(--color-text-secondary);font-size:19px}.case-hero--reference{padding-block:var(--space-16) var(--space-24)}.case-hero--reference .case-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(var(--space-8),5vw,var(--space-16));align-items:end}.case-hero__media{margin:0;overflow:hidden;border-radius:var(--radius-xl);align-self:end;display:flex;justify-content:flex-end}.case-hero__media img{display:block;height:min(68svh,680px);width:auto;-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent 100%);mask-image:linear-gradient(to bottom,#000 60%,transparent 100%)}.case-hero--reference .case-hero__copy{display:grid;gap:var(--space-3);justify-items:center;text-align:center;align-self:center;align-content:center;margin-left:clamp(0px,5vw,110px)}.case-hero--reference .case-title-logo{margin-inline:auto}.case-hero__mark{display:block;margin-inline:auto;width:clamp(52px,5vw,84px);height:auto;filter:none}.case-hero__subtitle{margin-top:var(--space-1);font-family:var(--font-sans);font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary)}.case-hero--reference .case-hero__copy h1{margin-top:var(--space-3)}.case-brief-label{margin-top:var(--space-5);font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary)}.case-hero--reference .case-hero__copy .case-summary{margin-top:var(--space-2);max-width:44ch;color:var(--color-text-primary);font-size:clamp(17px,1.4vw,21px);line-height:1.55}.case-hero--reference .case-index{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary)}.case-hero__meta-row{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-4);font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary)}.case-hero__meta-item{display:inline-flex;align-items:center;gap:var(--space-2)}.case-hero__meta-sep{color:var(--color-separator);font-style:normal}@media(max-width:899px){.case-hero--reference .case-hero__grid{grid-template-columns:1fr;gap:var(--space-8)}.case-hero--reference .case-hero__copy{padding-top:var(--space-6)}.case-hero__media{justify-content:center}.case-hero__media img{height:min(52svh,420px)}.case-hero__corner{display:none}}.metadata{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-top:var(--space-10)}.metadata dt{color:var(--color-text-tertiary);font-size:13px}.metadata dd{margin:var(--space-1) 0 0}.case-pagination{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);padding-block:var(--space-8)}.case-pagination a{display:grid;gap:var(--space-1);min-height:88px;align-content:center;padding:var(--space-5);border:0;border-radius:var(--radius-lg);background:transparent;transition:color .15s,transform .15s var(--ease-enter)}.case-pagination a:last-child{text-align:right}.case-pagination a:is(:hover,:focus-visible){color:var(--color-text-secondary);background:transparent;box-shadow:none;transform:translateY(-2px)}.case-pagination__direction{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:13px}.placeholder-panel{padding:var(--space-8) 0;border:0;border-radius:0;background:transparent;color:var(--color-text-secondary)}.case-media{display:grid;gap:var(--space-6);margin-top:var(--space-8)}.case-media__figure{margin:0;overflow:hidden;border:0;border-radius:var(--radius-lg);background:transparent}.case-media__figure img{display:block;width:100%;height:auto}.case-media__interlude{grid-column:1 / -1;display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:clamp(var(--space-8),6vw,var(--space-20));align-items:start;padding-block:clamp(var(--space-5),3vw,var(--space-8))}.case-media__interlude-heading{display:grid;gap:var(--space-2)}.case-media__interlude-heading>p{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.case-media__interlude-heading h3{max-width:18ch;font-size:clamp(22px,2.3vw,34px);font-weight:600;letter-spacing:-.025em;line-height:1.15;text-wrap:pretty}.case-media__interlude-copy{max-width:58ch;color:var(--color-text-secondary);font-size:clamp(16px,1.35vw,19px);line-height:1.65;text-wrap:pretty}.case-media__interlude--model{margin-top:clamp(var(--space-5),3vw,var(--space-8));padding-bottom:var(--space-4)}.case-model-embed{grid-column:1 / -1;min-width:0}.case-media--board{grid-template-columns:repeat(12,1fr);gap:var(--space-4)}.case-media--board .case-media__figure{grid-column:span 4}.case-media--board .case-media__figure--hero{grid-column:9 / 13;grid-row:1 / span 5;align-self:start}.contact-page{min-height:calc(100svh - 64px);display:flex;flex-direction:column}.contact-lede{max-width:560px;margin-top:var(--space-6);color:var(--color-text-secondary);font-size:clamp(1.05rem,1.5vw,1.2rem)}.contact-directory{width:min(100%,680px);margin-top:var(--space-12);border-top:1px solid var(--color-separator)}.contact-channel{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding-block:var(--space-3);border-bottom:1px solid var(--color-separator);transition:color .18s var(--ease-enter),transform .18s var(--ease-enter)}.contact-channel__label{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.contact-channel__value{font-family:var(--font-sans);font-size:clamp(1.05rem,2vw,1.25rem);font-weight:600;letter-spacing:-.02em}a.contact-channel:is(:hover,:focus-visible){color:var(--color-text-primary);transform:translate(4px)}.contact-directory__pending{padding-block:var(--space-5);color:var(--color-text-secondary)}.about-page .about-lead{max-width:680px;margin-top:var(--space-5);color:var(--color-text-secondary);font-size:20px;line-height:1.6}.about-page .about-layout{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(var(--space-10),5vw,var(--space-16));margin-top:var(--space-12);align-items:start}.about-page .about-aside{position:sticky;top:clamp(96px,16svh,156px)}.about-page .aside-block+.aside-block{margin-top:var(--space-12)}.about-page .aside-block>h2{margin:0 0 var(--space-4)}.about-page .about-skills{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4)}.about-page .about-skills li{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-primary);font-size:16px}.about-page .about-skills img{width:32px;height:32px;display:block;object-fit:contain}.about-page .about-interests{list-style:none;margin:var(--space-6) 0 0;padding:0;display:grid;gap:var(--space-3);color:var(--color-text-secondary);font-size:15px}.about-page .about-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);color:var(--color-text-secondary);font-size:16px;line-height:1.5}.about-page .about-contact-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.about-page .about-contact-list a{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-secondary);transition:color .16s var(--ease-enter),transform .16s var(--ease-enter)}.about-page .about-contact-list svg{flex:0 0 auto}.about-page .about-contact-list a:is(:hover,:focus-visible){color:var(--color-text-primary);transform:translate(2px)}.about-page .about-main>h2{margin:0 0 var(--space-6)}.about-page .about-timeline{list-style:none;margin:0;padding:0}.about-page .about-entry{position:relative;padding-left:var(--space-16)}.about-page .about-entry+.about-entry{margin-top:var(--space-12)}.about-page .about-entry:before{content:"";position:absolute;left:12px;top:12px;width:15px;height:15px;border-radius:50%;background:var(--color-background);border:2px solid var(--color-text-tertiary)}.about-page .about-entry:after{content:"";position:absolute;left:19px;top:28px;bottom:calc(-1 * (var(--space-12) + 12px));width:1px;background:var(--color-separator)}.about-page .about-entry:last-child:after{display:none}.about-page .about-period__label{margin:0 0 var(--space-3);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:18px;letter-spacing:.02em}.about-page .about-logo{width:56px;height:56px;flex:0 0 auto;object-fit:contain}.about-page .about-logo--weilai{width:64px;height:64px}.about-page .about-logo--large{width:auto;height:80px}.about-page .about-entry__row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.about-page .about-entry__left{display:flex;align-items:center;gap:var(--space-4);min-width:0}.about-page .about-entry__id{min-width:0}.about-page .about-entry__name{margin:0;color:var(--color-text-primary);font-weight:600;font-size:18px;letter-spacing:-.01em}.about-page .about-entry__role{margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:16px}.about-page .about-entry__note{margin:var(--space-2) 0 0;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:13px;letter-spacing:.04em}.about-page .about-entry__meta{margin:0;display:grid;gap:2px;justify-items:end;flex:0 0 auto;text-align:right}.about-page .about-entry__date{color:var(--color-text-primary);font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:.04em}.about-page .about-entry__place{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:13px;letter-spacing:.04em}.about-page .about-entry__points{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;gap:var(--space-3);color:var(--color-text-secondary);font-size:16px;line-height:1.6}.about-page .about-entry__points li{position:relative;padding-left:var(--space-4)}.about-page .about-entry__points li:before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--color-text-tertiary)}.about-page .about-entry__points li.about-point-ready:before{opacity:0;transform:scale(0)}.about-page .about-entry__points li.is-revealing:before,.about-page .about-entry__points li.is-revealed:before{opacity:1;transform:scale(1)}.about-page .about-entry__points li:before{transition:opacity .24s var(--ease-enter),transform .24s var(--ease-enter)}.about-page .about-split-char{will-change:transform,opacity}.about-page .about-entry__sub{list-style:none;margin:var(--space-4) 0 0;padding:0 0 0 var(--space-8)}.about-page .about-sub__name{margin:0;color:var(--color-text-primary);font-weight:600;font-size:16px}.about-page .about-sub__role{margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:14px}.about-page .about-sub__role+.about-entry__points{margin-top:var(--space-3)}.about-page .about-entry .about-recognition{margin:var(--space-6) 0 0;padding-left:var(--space-8)}.about-page .about-recognition h3{margin:0 0 var(--space-3);font-size:16px;font-weight:600;letter-spacing:-.01em}.about-page .about-method{margin-top:var(--space-16);padding-top:var(--space-8);border-top:1px solid var(--color-separator)}.about-page .about-method>h2{margin:0 0 var(--space-5)}.about-page .about-principles{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.about-page .about-principles li{padding:var(--space-4);border:1px solid var(--color-separator);border-radius:var(--radius-md);background:var(--color-surface);font-size:16px;line-height:1.5}.about-page .about-principles strong{display:block;margin-bottom:4px;color:var(--color-text-primary)}.about-page svg text{user-select:none;-webkit-user-select:none}@media(max-width:899px){.about-page .about-layout{grid-template-columns:1fr}.about-page .about-aside{position:static}}.contact-page .cat-yarn{width:min(100%,680px);margin-top:auto}.cat-yarn{display:block;min-height:180px;margin-top:var(--space-16);border-top:1px solid var(--color-separator);overflow:hidden}.cat-yarn__trigger{display:block;width:100%;min-height:180px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}.cat-yarn__trigger:focus-visible{outline-offset:-6px}.cat-yarn__art{display:block;width:min(100%,960px);height:180px;margin-inline:auto;overflow:visible}.cat-yarn__art path,.cat-yarn__art circle{fill:none;stroke:var(--color-wire);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5;vector-effect:non-scaling-stroke}.cat-yarn__ground path{opacity:.5}.cat-yarn__cat{transform-box:view-box;transform-origin:180px 261px}.cat-yarn__tail{transform-box:view-box;transform-origin:211px 232px}.cat-yarn__paw{transform-box:view-box;transform-origin:205px 231px}.cat-yarn__thread{stroke-dasharray:10 10}.cat-yarn__ball{transform-box:view-box;transform-origin:692px 194px}.cat-yarn__spark{transform-box:view-box}.cat-yarn__trigger:is(:hover,:focus-visible) .cat-yarn__cat{transform:translateY(-2px)}.cat-yarn.is-playing .cat-yarn__cat{animation:cat-settle .85s cubic-bezier(.2,1.35,.4,1) both}.cat-yarn.is-playing .cat-yarn__tail{animation:cat-tail .48s ease-in-out 3 alternate}.cat-yarn.is-playing .cat-yarn__paw{animation:cat-paw .38s cubic-bezier(.2,1.3,.4,1) 3 alternate}.cat-yarn.is-playing .cat-yarn__thread{animation:thread-pull .72s linear 2}.cat-yarn.is-playing .cat-yarn__ball{animation:yarn-roll 1.15s cubic-bezier(.2,1.25,.4,1) both}.cat-yarn.is-playing .cat-yarn__spark{animation:yarn-spark .42s var(--ease-enter) 3 alternate}.custom-cursor{display:none}.custom-cursor__grid{position:fixed;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}@media(hover:hover)and (pointer:fine){*{cursor:none!important}.custom-cursor{display:block;position:fixed;inset:0;z-index:100;pointer-events:none;transition:opacity .24s ease}.custom-cursor.is-hidden{opacity:0}.custom-cursor__dot,.custom-cursor__ring,.custom-cursor__flash{position:fixed;top:0;left:0;pointer-events:none}.custom-cursor__dot{z-index:103;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--color-text-primary);transform:translate3d(var(--cursor-x, 0px),var(--cursor-y, 0px),0)}.custom-cursor__ring{z-index:102;width:32px;height:32px;margin:-16px 0 0 -16px;border:1px solid rgba(245,245,247,.55);border-radius:50%;transition:transform .2s cubic-bezier(.2,.8,.2,1),border-color .16s ease,opacity .16s ease;transform:translate3d(var(--cursor-x, 0px),var(--cursor-y, 0px),0) scale(1)}.custom-cursor.is-hovering .custom-cursor__ring{border-color:#f5f5f7e6;transform:translate3d(var(--cursor-x, 0px),var(--cursor-y, 0px),0) scale(1.7)}.custom-cursor__flash{z-index:101;width:32px;height:32px;margin:-16px 0 0 -16px;border:1.5px solid rgba(245,245,247,.95);border-radius:50%;box-shadow:0 0 18px #f5f5f78c,inset 0 0 12px #f5f5f738;background:radial-gradient(circle,rgba(245,245,247,.32) 0%,transparent 55%);opacity:0}.custom-cursor.is-on-image .custom-cursor__dot{background:#1c1c1e}.custom-cursor.is-on-image .custom-cursor__ring{border-color:#1c1c1ee6}.custom-cursor.is-on-image .custom-cursor__flash{border:1.5px solid rgba(28,28,30,.95);box-shadow:0 0 18px #1c1c1e73,inset 0 0 12px #1c1c1e33;background:radial-gradient(circle,rgba(28,28,30,.3) 0%,transparent 55%)}}@media(hover:none)and (pointer:coarse){.custom-cursor{display:none}}@media(prefers-reduced-motion:reduce){.custom-cursor__grid,.custom-cursor__flash{display:none}.custom-cursor__ring{transition:none}.custom-cursor.is-hovering .custom-cursor__ring{border-color:#f5f5f78c;transform:translate3d(var(--cursor-x, 0px),var(--cursor-y, 0px),0) scale(1)}}}@layer components{.hero--project-stack .project-option-wheel{--ow-text-color: #a6a6a6;--ow-active-color: #ffffff;--ow-font-size: 2rem;--ow-inset: 44px;position:fixed;z-index:40;top:56%;right:auto;left:0;width:min(360px,30vw);height:min(72svh,520px);overflow:hidden;outline:none;cursor:grab;transform:translateY(-50%);touch-action:none;user-select:none}.hero--project-stack .project-option-wheel.is-dragging{cursor:grabbing}.hero--project-stack .project-option-wheel:focus-visible{outline:1px solid rgba(245,245,247,.72);outline-offset:8px}.project-option-wheel__item{position:absolute;top:50%;left:var(--ow-inset);display:flex;align-items:baseline;gap:10px;width:max-content;margin:0;padding:0;border:0;background:transparent;color:color-mix(in srgb,var(--ow-active-color) calc(var(--option-progress, 0) * 100%),var(--ow-text-color));font-family:var(--font-sans);font-size:var(--ow-font-size);font-weight:200;letter-spacing:-.042em;line-height:1;text-align:left;white-space:nowrap;transform-origin:left center;will-change:transform,opacity,filter}.project-option-wheel__item.is-selected{font-weight:600}.project-option-wheel__item:is(:hover,:focus-visible){color:var(--color-text-primary)}.project-option-wheel__item--project-05{font-size:1.55rem;letter-spacing:-.035em}@media(max-width:1180px){.project-option-wheel__item--project-05{font-size:1.3rem}}@media(max-width:899px){.project-option-wheel__item--project-05{font-size:.95rem}}@media(max-width:1180px){.hero--project-stack .project-option-wheel{left:0;right:auto;width:280px;height:440px;--ow-font-size: 1.65rem;--ow-inset: 34px}}@media(max-width:899px){.hero--project-stack .project-option-wheel{top:auto;right:0;bottom:14px;width:210px;height:260px;transform:none;--ow-font-size: 1.25rem;--ow-inset: 28px}}@media(max-width:599px),(prefers-reduced-motion:reduce){.hero--project-stack .project-option-wheel{display:none}}}@layer utilities{.stack>*+*{margin-top:var(--space-4)}.muted{color:var(--color-text-secondary)}.mono{font-family:var(--font-mono)}}@keyframes cat-settle{0%,to{transform:translateY(0)}48%{transform:translateY(-9px)}72%{transform:translateY(2px)}}@keyframes cat-tail{0%{transform:rotate(-4deg)}to{transform:rotate(8deg)}}@keyframes cat-paw{0%{transform:rotate(-4deg) translate(0)}to{transform:rotate(10deg) translate(16px)}}@keyframes thread-pull{to{stroke-dashoffset:-40}}@keyframes yarn-roll{0%{transform:translate(-2px) rotate(-9deg)}72%{transform:translate(42px) rotate(42deg)}to{transform:translate(34px) rotate(34deg)}}@keyframes yarn-spark{0%{opacity:.25;transform:translateY(3px)}to{opacity:1;transform:translateY(-3px)}}@layer components{.case-cover{margin:0 0 var(--space-16);overflow:hidden;border-radius:var(--radius-xl)}.case-cover img{display:block;width:100%;height:auto}[data-project-slug=project-01] .case-cover img{height:min(68svh,680px);width:auto;margin-inline:auto}.case-drift-wall{width:min(calc(100vw - 32px),1480px);height:clamp(440px,60svh,720px);margin:0 auto var(--space-12)}.case-sections{padding-top:0;padding-bottom:var(--space-4)}.case-section{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);column-gap:clamp(var(--space-8),6vw,var(--space-20));padding-block:var(--space-6)}.case-section__heading{align-self:start}.case-section__content{min-width:0}.case-section__copy{display:grid;gap:var(--space-4);color:var(--color-text-secondary);font-size:17px;line-height:1.65}.case-section__copy p{text-wrap:pretty}.case-section .case-media{grid-column:1 / -1}.case-specifications{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.15fr) minmax(0,1.15fr) minmax(0,.7fr);margin:var(--space-4) 0 0;border:1px solid var(--color-separator)}.case-specifications div{min-width:0;padding:var(--space-2) var(--space-5);border-right:1px solid var(--color-separator);border-bottom:1px solid var(--color-separator)}.case-specifications div:nth-child(4n){border-right:0}.case-specifications div[data-spec-index="3"]{grid-column:4;grid-row:1 / 3;border-left:1px solid var(--color-separator)}.case-specifications div[data-spec-index="2"],.case-specifications div[data-spec-index="6"]{border-right:0}.case-specifications dt{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.case-specifications dd{margin:var(--space-1) 0 0;text-wrap:pretty}}@media(max-width:1023px){.container{width:min(calc(100% - 64px),var(--container))}.hero--project-stack{grid-template-columns:minmax(320px,.95fr) minmax(0,1fr);min-height:calc(100svh + 2780px);gap:var(--space-8)}.project-stack{min-height:600px;margin-inline-start:0}.project-stack-card{width:min(76%,520px);aspect-ratio:1.42}}@media(max-width:899px){.hero--project-stack{display:block;position:relative;min-height:calc(100svh + 2780px)}.hero--project-stack .project-stack{position:sticky;top:72px;z-index:1;width:min(100%,640px)}.hero--project-stack .hero__copy{position:absolute;z-index:2;top:calc(100svh + 2610px);left:0;right:0}}@media(max-width:599px){.container{width:calc(100% - 40px)}.header-inner{min-height:68px;align-items:flex-start;padding-block:var(--space-3)}.brand{min-height:44px;display:flex;align-items:center}.site-nav{gap:0;font-size:12px}.site-nav a{justify-content:center;min-width:44px;padding-inline:var(--space-1)}.hero{grid-template-columns:1fr;gap:var(--space-10);min-height:auto;padding-block:var(--space-16)}.hero--project-stack{min-height:calc(100svh + 2380px);gap:var(--space-8)}.hero--project-stack .hero__copy{top:calc(100svh + 2210px)}.project-stack{width:100%;min-height:520px;perspective:none}.project-stack-card{width:min(84%,390px);aspect-ratio:1.42;box-shadow:-5px 14px 30px #0003}.project-stack-card__content strong{font-size:24px;line-height:29px}.metadata,.case-pagination{grid-template-columns:1fr}.section{padding-block:var(--space-16)}.contact-channel{min-height:64px}.cat-yarn{min-height:140px;margin-top:var(--space-12)}.cat-yarn__trigger{min-height:140px}.cat-yarn__art{height:140px}.case-pagination a:last-child{text-align:left}}@media(max-width:899px){.case-section{grid-template-columns:1fr;gap:var(--space-6)}.case-media__interlude{grid-template-columns:1fr;gap:var(--space-5)}}@media(max-width:599px){.case-hero{min-height:auto;padding-block:var(--space-12) var(--space-8)}.case-summary{font-size:17px}.case-sections{padding-block:var(--space-4)}.case-section{padding-block:var(--space-8)}.case-section__copy{font-size:16px}.case-specifications{grid-template-columns:repeat(2,minmax(0,1fr))}.case-specifications div:nth-child(4n){border-right:1px solid var(--color-separator)}.case-specifications div:nth-child(2n){border-right:0}}@media(prefers-reduced-motion:no-preference){::view-transition-group(root),::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-group(main-content){animation-duration:.3s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-old(main-content){animation:page-slide-out .14s cubic-bezier(.4,0,1,1) both;mix-blend-mode:normal}::view-transition-new(main-content){animation:page-slide-in .3s cubic-bezier(.32,.72,0,1) both;mix-blend-mode:normal}::view-transition-group(case-frame-project-01),::view-transition-group(case-frame-project-02),::view-transition-group(case-frame-project-03),::view-transition-group(case-frame-project-04),::view-transition-group(case-frame-project-05){animation-duration:.4s;animation-timing-function:cubic-bezier(.32,.72,0,1)}}@media(prefers-reduced-motion:no-preference){html[data-project-transition=open]::view-transition-group(main-content),html[data-project-transition=open]::view-transition-old(main-content),html[data-project-transition=open]::view-transition-new(main-content),html[data-project-transition=back]::view-transition-group(main-content),html[data-project-transition=back]::view-transition-old(main-content),html[data-project-transition=back]::view-transition-new(main-content),html[data-project-transition=back]::view-transition-group(case-frame-project-01),html[data-project-transition=back]::view-transition-group(case-frame-project-02),html[data-project-transition=back]::view-transition-group(case-frame-project-03),html[data-project-transition=back]::view-transition-group(case-frame-project-04),html[data-project-transition=back]::view-transition-group(case-frame-project-05),html[data-project-transition=back]::view-transition-old(case-frame-project-01),html[data-project-transition=back]::view-transition-old(case-frame-project-02),html[data-project-transition=back]::view-transition-old(case-frame-project-03),html[data-project-transition=back]::view-transition-old(case-frame-project-04),html[data-project-transition=back]::view-transition-old(case-frame-project-05),html[data-project-transition=back]::view-transition-new(case-frame-project-01),html[data-project-transition=back]::view-transition-new(case-frame-project-02),html[data-project-transition=back]::view-transition-new(case-frame-project-03),html[data-project-transition=back]::view-transition-new(case-frame-project-04),html[data-project-transition=back]::view-transition-new(case-frame-project-05){animation:none!important}html[data-project-transition=back]::view-transition-old(main-content){opacity:0!important}}@keyframes page-slide-out{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-14px) scale(.996)}}@keyframes page-slide-in{0%{opacity:0;transform:translate(28px) scale(.994)}to{opacity:1;transform:translate(0) scale(1)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.cat-yarn__cat,.cat-yarn__tail,.cat-yarn__paw,.cat-yarn__thread,.cat-yarn__ball,.cat-yarn__spark{animation:none!important}.hero--project-stack{min-height:auto!important;align-items:start}.hero--project-stack .hero__copy,.hero--project-stack .project-stack{position:relative;top:auto}.project-stack{min-height:auto;margin-inline-start:0;perspective:none}.project-stack__scene{position:relative;display:grid;gap:var(--space-4)}.project-stack-card{position:relative;width:100%;aspect-ratio:1.42;transform:none!important;opacity:1!important;pointer-events:auto!important;border-color:#ffffff75!important;box-shadow:none}.project-stack-card__index,.project-stack-card__content{opacity:1!important}.project-stack-card__geometry{opacity:.14!important;transform:none}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.fullscreen-hint[data-astro-cid-drsgmtle]{position:fixed;z-index:110;left:50%;bottom:clamp(28px,5vh,56px);width:min(calc(100% - 40px),460px);padding:1px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffff6b,#ffffff14);box-shadow:0 22px 64px #0000007a;opacity:0;pointer-events:none;transform:translate3d(-50%,18px,0) scale(.985);transition:opacity .52s var(--ease-enter),transform .62s cubic-bezier(.16,1,.3,1)}.fullscreen-hint[data-astro-cid-drsgmtle]:before{content:"";position:absolute;inset:1px;border-radius:calc(var(--radius-lg) - 1px);background:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px),#040506e0;background-size:18px 18px,18px 18px,auto;backdrop-filter:blur(18px) saturate(0);-webkit-backdrop-filter:blur(18px) saturate(0)}.fullscreen-hint__copy[data-astro-cid-drsgmtle]{position:relative;display:grid;gap:5px;padding:18px 20px;text-align:center}.fullscreen-hint[data-astro-cid-drsgmtle] strong[data-astro-cid-drsgmtle]{font-family:var(--font-sans);font-size:16px;font-weight:600;letter-spacing:-.01em}.fullscreen-hint[data-astro-cid-drsgmtle] span[data-astro-cid-drsgmtle]{color:var(--color-text-secondary);font-size:13px}.fullscreen-hint[data-astro-cid-drsgmtle] kbd[data-astro-cid-drsgmtle]{display:inline-flex;min-width:30px;height:22px;margin-inline:3px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#ffffff14;color:var(--color-text-primary);font-family:var(--font-mono);font-size:11px;box-shadow:inset 0 -2px #00000052}.fullscreen-hint[data-astro-cid-drsgmtle][data-visible=true]{opacity:1;transform:translate3d(-50%,0,0) scale(1)}@media(prefers-reduced-motion:reduce){.fullscreen-hint[data-astro-cid-drsgmtle]{transition:none;transform:translate3d(-50%,0,0)}}
