.u357{--ux-ink: var(--ink);--ux-accent: var(--accent);-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}.u357 .u357-line{display:flex;pointer-events:none}.u357 .u357-c{display:inline-block;flex:0 0 auto;text-align:center;letter-spacing:-.035em;font-weight:var(--w, 800);transform-origin:left center;transform:translate(var(--shift, 0px)) scaleX(var(--stretch, 1));color:var(--ux-ink)}.u357 .u357-hint{position:absolute;left:var(--cursor-x, 50%);top:var(--cursor-y, 50%);display:flex;color:var(--ux-ink);pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .12s}.u357 .u357-arrow-outline{stroke:var(--surface);stroke-width:5.5}.u357:focus-visible .u357-hint{opacity:1}.u357:focus-visible:not(:hover) .u357-hint{left:calc(100% - 16px);top:-24px}.u357:is(:active,:focus-visible) .u357-c{color:var(--ux-accent)}@media(hover:hover)and (pointer:fine){.u357:hover .u357-hint{opacity:1}.u357:hover .u357-c{color:var(--ux-accent)}.u357:hover{cursor:none}}@media(hover:none),(pointer:coarse){.u357 .u357-hint{display:none}}@media(prefers-reduced-motion:reduce){.u357 .u357-hint{transition:none}}@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.u357 .u357-c{font-weight:700;transform:none;color:var(--ux-ink)}}.journey-page{padding:clamp(16px,2vw,28px) 0 clamp(96px,10vw,160px)}.journey-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.55fr);gap:32px;align-items:center;margin-bottom:20px}.journey-intro h1{font-family:var(--font-display);font-size:clamp(36px,3.5vw,52px);font-weight:500;line-height:1.12;letter-spacing:-.03em}.journey-intro h1 em{font-family:var(--font-body);font-weight:400}.journey-intro p{max-width:30ch;margin:0 0 4px auto;font-size:clamp(19px,1.6vw,24px);line-height:1.45}.journey-layout{display:grid;gap:clamp(40px,5vw,72px)}.journey-map-wrap{background:var(--surface);min-width:0}.journey-map-header,.journey-map-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px clamp(20px,3vw,40px);font-family:var(--font-display);font-size:14px}.journey-map-header{color:var(--ink);padding-block:14px}.journey-map-header span:last-child{color:var(--secondary);font-variant-numeric:tabular-nums}.journey-map{position:relative;overflow:hidden}.journey-map>svg{display:block;width:100%;height:auto}.journey-map-scene>image{opacity:.65}.journey-map-scene{transition:transform .8s var(--ease-out)}.journey-traveler{pointer-events:none}.journey-paper-plane{transform:scale(.8)}.journey-plane-paper{fill:#fff;stroke:#171717;stroke-width:1.6;stroke-linejoin:round}.journey-plane-fold{fill:none;stroke:#171717;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.journey-map-label{fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:3px;font:18px var(--font-display);pointer-events:none}.journey-map-label.is-active{font-weight:700}.journey-map-ocean{position:absolute;left:44%;top:47%;color:var(--secondary);font:10px var(--font-display);letter-spacing:.18em;pointer-events:none}.journey-map-ocean.is-hidden{opacity:0}.journey-route{fill:none;stroke:var(--secondary);stroke-width:2;opacity:.3;vector-effect:non-scaling-stroke}.journey-route.is-traveled{stroke:var(--accent);stroke-width:2.5;opacity:.95}.journey-route.is-planned{stroke-dasharray:.02 .02}.journey-point{color:var(--ink);cursor:pointer}.journey-point-hit{fill:transparent}.journey-map .journey-point:focus{outline:none}.journey-point.is-active{color:var(--accent)}.journey-point-leader{fill:none;stroke:currentColor;stroke-width:1.5}.journey-point-dot{fill:currentColor;stroke:var(--surface);stroke-width:1.5;vector-effect:non-scaling-stroke}.journey-point-badge{fill:#faf9f4;stroke:#202326;stroke-width:1.5}.journey-point-art{pointer-events:none}.journey-point-ring{fill:none;stroke:currentColor;stroke-width:2;opacity:0}.journey-point.is-active .journey-point-ring,.journey-point:focus-visible .journey-point-ring{opacity:1}.journey-point.is-planned .journey-point-ring{opacity:1;stroke-dasharray:4 3}.journey-point:focus-visible .journey-point-ring{stroke:var(--focus);stroke-width:3;stroke-dasharray:none}@media(hover:hover)and (pointer:fine){.journey-point:hover{color:var(--accent)}.journey-point:hover .journey-point-ring{opacity:1}}.journey-map-caption{align-items:end;flex-wrap:wrap;padding-top:12px;padding-bottom:24px}.journey-map-places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;width:100%}.journey-map-places button{display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;padding:6px 8px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left}.journey-map-places button[aria-pressed=true]{background:var(--ground);color:var(--accent)}.journey-map-places img{width:28px;height:28px;flex:none}.journey-map-context{min-width:0}.journey-map-caption p{color:var(--secondary);line-height:1.5}.journey-map-context>p:last-child{font-size:13px}.journey-map-current{display:grid;gap:3px;margin-bottom:8px}.journey-map-current strong{color:var(--ink);font:400 clamp(22px,2.2vw,30px)/1.15 var(--font-body)}.journey-map-current span{color:var(--secondary);font-size:13px}.journey-play{flex:none;display:inline-flex;align-items:center;gap:14px;min-height:48px;padding:0 18px;border:0;background:var(--ink);color:var(--ground);font:inherit;font-weight:600;white-space:nowrap;transition:background .16s ease,color .16s ease}.journey-play-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.journey-map-caption .journey-play{margin-left:auto}@media(min-width:1050px){.journey-intro{grid-template-columns:minmax(0,1fr) clamp(240px,25%,320px);gap:0}.journey-intro p{max-width:none;margin:0;padding-left:clamp(20px,3vw,40px)}.journey-map{display:grid;grid-template-columns:minmax(0,1fr) clamp(240px,25%,320px);align-items:center}.journey-map-ocean{left:calc((100% - clamp(240px,25%,320px))*.44)}.journey-map-caption{align-items:flex-start;flex-direction:column;gap:24px;padding-block:24px}.journey-map-caption .journey-play{margin-left:0}}@media(hover:hover)and (pointer:fine){.journey-play:hover{background:var(--accent);color:var(--ground)}}.journey-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,5vw,72px);padding:20px clamp(20px,3vw,40px) 24px;border-top:1px solid color-mix(in srgb,var(--secondary) 25%,transparent)}.journey-stat{display:flex;align-items:baseline;gap:12px;min-width:0}.journey-stat strong{font-family:var(--font-body);font-size:32px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums}.journey-stat>span{font-family:var(--font-display);font-size:13px;line-height:1.4}.journey-stat small{display:block;margin-top:5px;color:var(--secondary);font-size:13px}.journey-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,110px);align-items:start}.journey-current{max-width:550px}.journey-current h2{font-family:var(--font-body);font-size:clamp(32px,3vw,42px);font-weight:400;line-height:1.1;letter-spacing:-.025em;text-wrap:balance}.journey-current-description{max-width:42ch;margin-top:28px;font-size:clamp(19px,1.6vw,23px);line-height:1.5}.journey-chapters{display:grid;gap:4px}.journey-chapters button{display:grid;grid-template-columns:82px minmax(0,1fr) 14px;align-items:start;gap:18px;width:100%;min-height:80px;padding:20px;text-align:left;border:0;background:transparent;transition:background .16s ease}.journey-chapters button[aria-pressed=true]{background:var(--surface)}@media(hover:hover)and (pointer:fine){.journey-chapters button:hover{background:var(--surface)}}.journey-chapter-year{color:var(--secondary);font:13px/1.6 var(--font-display);font-variant-numeric:tabular-nums}.journey-chapter-place,.journey-chapter-date,.journey-chapter-summary{display:block}.journey-chapter-place{font-family:var(--font-display);font-size:16px;line-height:1.4}.journey-chapter-date{margin-top:5px;color:var(--secondary);font:13px/1.45 var(--font-display)}.journey-chapter-marker{width:10px;height:10px;margin-top:6px;border:1px solid var(--secondary);border-radius:50%}.journey-chapters button[aria-pressed=true] .journey-chapter-marker{border-color:var(--accent);background:var(--accent)}.journey-chapter-summary{display:none}.journey-source{margin:0;padding:0 clamp(20px,3vw,40px) 16px;color:var(--secondary);font:13px var(--font-display)}.journey-source a{text-decoration:underline;text-underline-offset:3px}.journey-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){.journey-map-scene,.journey-play,.journey-chapters button{transition:none}}@media(pointer:coarse){.journey-map>svg{pointer-events:none}}@media(max-width:900px){.journey-intro{grid-template-columns:1fr 1fr}.journey-story{gap:36px}.journey-chapters button{grid-template-columns:62px minmax(0,1fr) 10px;gap:12px;padding:16px 12px}.journey-stat{gap:12px}.journey-map>svg{pointer-events:none}.journey-map-label,.journey-map-ocean{display:none}.journey-point-illustration{transform:scale(1.2)}}@media(max-width:720px){.journey-page{padding-top:16px}.journey-intro{grid-template-columns:1fr;gap:12px;margin-bottom:20px}.journey-intro h1{font-size:clamp(32px,6vw,42px)}.journey-intro p{max-width:45ch;margin:0;font-size:17px}.journey-layout{gap:48px}.journey-map-header,.journey-map-caption{padding-left:18px;padding-right:18px}.journey-map-header{padding-top:18px;padding-bottom:18px}.journey-paper-plane{transform:scale(1.3)}.journey-map-caption{align-items:flex-start;flex-direction:column;gap:14px;padding-top:4px}.journey-map-caption .journey-play{margin-left:0}.journey-map-caption p{font-size:13px}.journey-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:20px 18px}.journey-source{padding-inline:18px}.journey-stat{display:block}.journey-stat strong{display:block;margin-bottom:6px;font-size:32px}.journey-stat>span{font-size:14px}.journey-stat small{font-size:13px}.journey-story{grid-template-columns:1fr;gap:32px}.journey-current-description{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.journey-chapter-summary{display:block;margin-top:12px;font-size:16px;line-height:1.5}}@media(max-width:480px){.journey-point-illustration{transform:scale(1.8)}}.about-gallery{grid-column:1 / -1;min-width:0;margin-top:clamp(80px,10vw,140px)}.about-gallery-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px}.about-gallery h2{font-family:var(--font-display);font-size:clamp(30px,3.5vw,42px);font-weight:600;letter-spacing:-.045em}.about-gallery-heading p{color:var(--secondary);font-family:var(--font-display);font-size:14px}.about-gallery-track{display:flex;align-items:center;overflow:visible;overscroll-behavior-inline:contain;padding:20px 8px 24px;margin-inline:-8px;scrollbar-width:thin;scrollbar-color:var(--secondary) transparent}.about-gallery-print{flex:1 1 0;min-width:0;position:relative;padding:0;transform:rotate(-2deg);touch-action:pan-x pan-y}.about-gallery-print+.about-gallery-print{margin-left:-5px}.about-gallery-print:nth-child(3n+2){transform:rotate(2deg)}.about-gallery-print:nth-child(3n){transform:rotate(-1deg)}.about-gallery-paper{display:block;padding:5px;background:#f4f4ef;box-shadow:0 2px 8px #0003;transform-origin:center bottom;transition:transform .25s cubic-bezier(.23,1,.32,1)}.about-gallery-paper img{aspect-ratio:2 / 3}.about-gallery-print:first-child .about-gallery-paper{transform-origin:left bottom}.about-gallery-print:last-child .about-gallery-paper{transform-origin:right bottom}.about-gallery-caption{position:absolute;bottom:calc(100% + 20px);left:calc(122.5% + 12px);width:200px;color:var(--ink);font-size:16px;line-height:1.45;text-align:left;overflow-wrap:anywhere;pointer-events:none;opacity:0}.about-gallery-caption span{opacity:0}.about-gallery-print:first-child .about-gallery-caption{left:calc(145% + 12px)}.about-gallery-print:nth-child(n+5) .about-gallery-caption{left:auto;right:calc(122.5% + 12px);text-align:right}.about-gallery-print:last-child .about-gallery-caption{right:calc(145% + 12px)}@media(min-width:701px)and (hover:hover)and (pointer:fine){.about-gallery:has(.about-gallery-print:hover) .about-gallery-heading{opacity:0}.about-gallery-print:hover{z-index:2}.about-gallery-print:hover .about-gallery-paper{transform:scale(1.45)}.about-gallery-print:hover .about-gallery-caption,.about-gallery-print:hover .about-gallery-caption span{opacity:1}.about-gallery-print:hover .about-gallery-caption span{transition:opacity 1ms step-end;transition-delay:calc(.1s + var(--letter-index) * 12ms)}.about-gallery:has(.about-gallery-print:focus-visible) .about-gallery-heading{opacity:0}.about-gallery-print:focus-visible{z-index:2}.about-gallery-print:focus-visible .about-gallery-paper{transform:scale(1.45)}.about-gallery-print:focus-visible .about-gallery-caption,.about-gallery-print:focus-visible .about-gallery-caption span{opacity:1}}.about-gallery-dialog{max-width:min(90vw,960px);max-height:90dvh;padding:16px;border:0;background:var(--ground);color:var(--ink);text-align:center}.about-gallery-dialog::backdrop{background:#000b}.about-gallery-dialog img{width:auto;max-width:100%;max-height:70dvh;margin:auto;-o-object-fit:contain;object-fit:contain}.about-gallery-dialog p{margin:12px auto 0;font-family:var(--font-display);font-size:14px}.about-gallery-close{display:block;min-width:44px;min-height:44px;margin-left:auto;font-size:28px;line-height:1}@media(max-width:700px),(hover:none){.about-gallery-track{overflow-x:auto}.about-gallery-print{flex:0 0 100px}.about-gallery-caption{display:none}}@media(max-width:600px){.about-gallery{grid-column:1;margin-top:40px}}@media(prefers-reduced-motion:reduce){.about-gallery-paper,.about-gallery-caption span{transition:none!important}.about-gallery-print:hover .about-gallery-paper,.about-gallery-print:focus-visible .about-gallery-paper{transform:none}}.about-music{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);gap:clamp(36px,6vw,64px);align-items:start;max-width:800px;margin:clamp(64px,8vw,100px) auto 0}.about-music-heading{padding-top:12px}.about-music-heading h2{font-family:var(--font-display);font-size:16px;font-weight:500;color:var(--secondary)}.music-experience{width:min(100%,520px)}.music-speaker{position:relative;width:100%;aspect-ratio:1.8;isolation:isolate}.music-speaker-canvas{position:absolute;inset:0;cursor:grab;touch-action:pan-y}.music-speaker-canvas:active{cursor:grabbing}.music-speaker-canvas canvas{display:block;width:100%;height:100%}.music-speaker-fallback{position:absolute;inset:9% 6%;border:13px solid #202626;border-radius:8px;background:radial-gradient(circle at 20% 30%,#293031 0 6%,#080c0c 6.5% 13%,transparent 13.5%),radial-gradient(circle at 80% 70%,#293031 0 6%,#080c0c 6.5% 13%,transparent 13.5%),linear-gradient(135deg,#bed2d326,#384a4c0f);box-shadow:0 8px 15px #0004}.has-webgl .music-speaker-fallback{display:none}.music-speaker-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.music-speaker-face{--speaker-ink: #f4f5ed;--speaker-muted: rgba(239, 245, 239, .65);--speaker-shadow: #000;position:absolute;top:0;left:0;width:714px;height:370px;color:var(--speaker-ink);font-family:var(--font-display);pointer-events:none!important}:root[data-theme=light] .music-speaker-face{--speaker-ink: #172022;--speaker-muted: rgba(23, 32, 34, .74);--speaker-shadow: #fff}.music-speaker-canvas:not(.has-webgl) .music-speaker-face{left:6%;top:9%}.speaker-title{position:absolute;top:17%;left:26%;right:26%;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;text-shadow:0 1px 6px var(--speaker-shadow)}.speaker-title strong{font-family:var(--font-body);font-size:28px;font-weight:400;letter-spacing:.1em}.speaker-title span{color:var(--speaker-muted);font-size:12px}.speaker-lyrics{position:absolute;inset:33% 23% 22%;overflow:hidden;text-align:center;-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}.speaker-lyrics-list{position:absolute;top:50%;left:0;width:100%;opacity:0;transition:transform .65s cubic-bezier(.32,.72,0,1),opacity .65s cubic-bezier(.23,1,.32,1)}.speaker-lyrics-list[data-visible=true]{opacity:1}.speaker-lyric{display:grid;grid-template-columns:minmax(0,1fr);padding:8px 0;overflow-wrap:anywhere;color:var(--speaker-muted);font-size:23px;line-height:1.2;text-shadow:0 1px 6px var(--speaker-shadow);transition:opacity .5s ease}.speaker-lyric:not(.is-current){opacity:.45;white-space:nowrap}.speaker-lyric:not(.is-current)>span{overflow:hidden;text-overflow:ellipsis}.speaker-lyric>span{grid-area:1 / 1}.speaker-lyric-highlight{color:var(--speaker-ink);opacity:0;clip-path:inset(0 100% 0 0);transition:opacity .5s ease,clip-path 0s .5s}.speaker-lyric.is-current .speaker-lyric-highlight{opacity:1;clip-path:inset(0);transition:opacity .3s ease,clip-path .9s linear}.compact .speaker-lyrics{inset:34% 35% 27%}.compact .speaker-lyric{font-size:28px}.compact .speaker-lyric.is-long{font-size:24px}.speaker-lyrics-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.speaker-lyrics-empty{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);color:var(--speaker-ink);text-shadow:0 1px 6px var(--speaker-shadow);font-size:15px;opacity:0;transition:opacity .3s cubic-bezier(.23,1,.32,1)}.speaker-lyrics-empty[data-visible=true]{opacity:1}.speaker-button{position:absolute;left:78%;top:24%;transform:translate(-50%,-50%);display:grid;place-items:center;width:160px;height:160px;padding:0;border:0;background:transparent;pointer-events:auto;cursor:pointer}.speaker-button-face{display:grid;place-items:center;width:48px;height:48px;color:var(--speaker-ink);filter:drop-shadow(0 1px 2px var(--speaker-shadow));transition:transform .14s var(--ease-out),opacity .14s ease}.speaker-button-face svg{display:block;width:44px;height:44px}.speaker-button:active .speaker-button-face{transform:scale(.94)}.speaker-button:focus-visible{outline:none}.speaker-button:focus-visible .speaker-button-face{outline:4px solid var(--focus);outline-offset:4px}@media(hover:hover)and (pointer:fine){.speaker-button:hover .speaker-button-face{opacity:.7}}.about-music-status{margin:12px 4% 0;color:var(--secondary);font-size:14px;text-align:center}@media(min-width:761px){.music-experience{transform:translate(20px)}}@media(max-width:760px){.about-music{grid-template-columns:1fr;gap:12px}.about-music-heading{padding-top:0}}@media(max-width:600px){.music-speaker{aspect-ratio:1.65}}@media(max-width:480px){.speaker-lyrics-accessible{position:static;width:auto;height:auto;margin:4px 8% 0;overflow:visible;clip-path:none;white-space:normal;color:var(--secondary);font-size:16px;line-height:1.4;text-align:center}}@media(prefers-reduced-motion:reduce){.speaker-lyrics-list,.speaker-lyrics-empty,.speaker-lyric,.speaker-lyric-highlight,.speaker-button-face{transition:none}.speaker-button:active .speaker-button-face{transform:none}}@font-face{font-family:Inter Navigation;src:url(/fonts/inter-navigation.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Libre Franklin;src:url(/fonts/libre-franklin-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Source Serif 4";src:url(/fonts/source-serif-latin.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}@font-face{font-family:"Source Serif 4";src:url(/fonts/source-serif-italic-latin.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[ar\:artist\]{ar:artist}:root{--ground: #181a1b;--ink: #f4f4ef;--secondary: #b9bdbf;--surface: #242728;--surface-strong: #303435;--accent: #a9c1ff;--button: #b5caff;--button-ink: #142446;--transition-ground: var(--button);--transition-ink: var(--button-ink);--transition-path: var(--button-ink);--focus: #aac4ff;--page-pad: clamp(20px, 3.4vw, 48px);--section-gap: clamp(100px, 12vw, 180px);--font-display: "Libre Franklin", "PingFang SC", "Microsoft YaHei", sans-serif;--font-body: "Source Serif 4", "Songti SC", "Noto Serif CJK SC", serif;--small: 14px;--body: clamp(17px, 1.25vw, 19px);--lead: clamp(22px, 2.05vw, 30px);--head: clamp(36px, 4.2vw, 62px);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--page-transition-ease: cubic-bezier(.76, 0, .24, 1);--dropdown-open-dur: .25s;--dropdown-close-dur: .15s;--dropdown-pre-scale: .97;--dropdown-closing-scale: .99;--dropdown-ease: cubic-bezier(.22, 1, .36, 1);--icon-swap-dur: .25s;--icon-swap-blur: 2px;--icon-swap-start-scale: .9;--text-swap-dur: .15s;--text-swap-translate-y: 4px;--text-swap-blur: 2px;--text-swap-ease: ease-in-out;--acc-expand: .25s;--acc-collapse: .25s;--acc-chevron: .25s;--acc-ease: cubic-bezier(.22, 1, .36, 1);color-scheme:dark}:root[data-theme=light]{--ground: #f4f4ef;--ink: #202425;--secondary: #515b60;--surface: #e7e9e5;--surface-strong: #d8ddd9;--accent: #244fbd;--button: #244fbd;--button-ink: #fff;--transition-ground: #dcd5cc;--transition-ink: var(--ink);--transition-path: var(--accent);--focus: #244fbd;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{scroll-padding-top:110px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit;cursor:pointer;-moz-user-select:none;user-select:none;-webkit-user-select:none}a{color:inherit;text-decoration:none}a,button{touch-action:manipulation}button{border:0;background:none}button,a,img{transition:color .18s ease,background-color .18s ease,transform .14s var(--ease-out)}button:disabled{cursor:default}@media(hover:hover)and (pointer:fine){button:hover,a:hover{color:var(--accent)}}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--focus);outline-offset:5px}[tabindex="-1"]:focus{outline:none}::-moz-selection{background:var(--button);color:var(--button-ink)}::selection{background:var(--button);color:var(--button-ink)}img{width:100%;height:auto;display:block;-o-object-fit:cover;object-fit:cover}figure,p,h1,h2,h3,ul,dl,dd{margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.045em;text-wrap:balance}h1{font-weight:700}h2{font-size:var(--head);line-height:1.08}h3{font-size:var(--lead);line-height:1.25;letter-spacing:-.025em}p{max-width:68ch}p+p{margin-top:24px}ul{padding:0;list-style:none}svg{flex:0 0 auto}[hidden]{display:none!important}main,.site-header,.site-footer{max-width:1800px;margin-inline:auto}main,.site-footer{padding-left:max(var(--page-pad),env(safe-area-inset-left,0px));padding-right:max(var(--page-pad),env(safe-area-inset-right,0px))}.section-space{margin-top:var(--section-gap);scroll-margin-top:14px}.lead{font-size:var(--lead);line-height:1.4}.secondary,figcaption,.project-count{color:var(--secondary)}figcaption{margin-top:14px;font-size:var(--small);font-family:var(--font-display);line-height:1.5}.skip-link{position:fixed;top:12px;left:16px;padding:12px 20px;background:var(--button);color:var(--button-ink);z-index:100;transform:translateY(-160%);font-family:var(--font-display)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:30;min-height:104px;padding:24px var(--page-pad);padding-left:max(var(--page-pad),env(safe-area-inset-left,0px));padding-right:max(var(--page-pad),env(safe-area-inset-right,0px));display:flex;gap:24px;align-items:center;font-family:var(--font-display);font-size:var(--small);background:linear-gradient(var(--ground) 0 80%,color-mix(in srgb,var(--ground) 90%,transparent) 90%,transparent);pointer-events:none}.site-header>:is(.wordmark,.desktop-nav,.header-tools){pointer-events:auto}@media(min-width:961px){.site-header>:is(.wordmark,.header-location,.desktop-nav,.header-tools){transition:transform .2s var(--ease-out)}.site-header[data-scrolled]{background:linear-gradient(var(--ground) 0 68%,color-mix(in srgb,var(--ground) 90%,transparent) 78%,transparent 94%)}.site-header[data-scrolled]>:is(.wordmark,.header-location,.desktop-nav,.header-tools){transform:translateY(-12px)}}:root[data-page-transition] .site-header{visibility:hidden}.page-transition{position:fixed;inset:0;z-index:80;touch-action:none;overflow:hidden}.page-transition[hidden]{display:none}.page-transition-panels{position:absolute;inset:0;display:flex}.page-transition-panel{flex:1;margin-right:-1px;background:var(--transition-ground);transform:translateY(101%)}.page-transition-journey{position:absolute;top:30%;left:74%;width:min(43vw,620px);height:auto;transform:translate(-50%,-50%) rotate(-6deg);color:var(--transition-path);opacity:0}.page-transition-trail{stroke:var(--transition-ground);stroke-width:5;opacity:.85}.page-transition-copy{position:absolute;display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.55fr);align-items:end;-moz-column-gap:clamp(36px,6vw,100px);column-gap:clamp(36px,6vw,100px);left:max(var(--page-pad),env(safe-area-inset-left));right:max(var(--page-pad),env(safe-area-inset-right));bottom:max(8vh,40px,env(safe-area-inset-bottom));color:var(--transition-ink);opacity:0}.page-transition-title{max-width:12ch;font-family:var(--font-body);font-style:italic;font-size:clamp(72px,10vw,160px);font-weight:400;letter-spacing:-.055em;line-height:1;text-wrap:balance;overflow:hidden;padding:.08em .12em .16em;margin:-.08em -.12em -.16em -.155em}.page-transition-title span{display:block;transform-origin:left bottom}.page-transition-copy[data-greeting] .page-transition-title{font-size:clamp(128px,min(25vw,38vh),360px);line-height:.9}.page-transition-detail{margin:0 0 .2em;max-width:30ch;font-family:var(--font-display);font-size:clamp(18px,1.8vw,26px);line-height:1.4;text-wrap:pretty}:lang(zh-CN) .page-transition-title{font-style:normal;letter-spacing:-.06em;line-height:1.1}:lang(zh-CN) .page-transition-copy[data-greeting] .page-transition-title{font-size:clamp(104px,18vw,240px)}@media(max-width:600px){.page-transition-copy{display:block}.page-transition-journey{top:28%;left:65%;width:64vw}.page-transition-title{max-width:100%;font-size:clamp(54px,18vw,86px)}.page-transition-copy[data-greeting] .page-transition-title{font-size:clamp(128px,min(55vw,38vh),240px)}.page-transition-detail{margin-top:20px}}@media(prefers-reduced-motion:reduce){.page-transition{display:none}}.wordmark{font-weight:700;font-size:19px;letter-spacing:-.05em;display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.wordmark-mark{color:var(--accent);font-size:30px;line-height:.5}.desktop-nav{display:flex;align-items:center;gap:clamp(20px,2.6vw,42px);font-family:"Inter Navigation",var(--font-display)}.desktop-nav a{padding-block:12px;color:var(--secondary)}.nav-label{display:inline-flex;white-space:nowrap}.nav-letter{position:relative;display:inline-block;overflow:hidden;line-height:1.2}.nav-letter>span{display:block;transition:transform .42s var(--ease-out);transition-delay:calc(var(--letter-index) * 18ms)}.nav-letter>span+span{position:absolute;inset:0;transform:translateY(100%)}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.desktop-nav a:hover .nav-letter>span:first-child{transform:translateY(-100%)}.desktop-nav a:hover .nav-letter>span+span{transform:translateY(0)}}@media(hover:hover)and (pointer:fine){.desktop-nav a:hover{color:var(--ink)}}@media(prefers-reduced-motion:reduce){.nav-letter>span{transition:none}}.desktop-nav a[aria-current]{color:var(--ink)}.header-tools{display:flex;align-items:center;gap:8px;margin-left:clamp(8px,2vw,24px)}.header-tools button,.preference-controls button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.preference-controls{--glass-fill: rgba(56, 60, 63, .46);--glass-rim: rgba(255, 255, 255, .12);--glass-lens: rgba(255, 255, 255, .16);--glass-lens-rim: rgba(255, 255, 255, .42);display:flex;align-items:center;padding:0 2px;border-radius:999px;background:linear-gradient(155deg,rgba(255,255,255,.06),transparent 58%),var(--glass-fill);box-shadow:inset 0 1px 1px var(--glass-rim),inset 0 -1px 2px #0000002e,0 3px 10px #0000000f;-webkit-backdrop-filter:blur(12px) saturate(150%);backdrop-filter:blur(12px) saturate(150%);font-size:14px;font-weight:600}:root[data-theme=light] .preference-controls{--glass-fill: rgba(221, 225, 223, .48);--glass-rim: rgba(255, 255, 255, .55);--glass-lens: rgba(255, 255, 255, .52);--glass-lens-rim: rgba(255, 255, 255, .95)}.preference-controls button{position:relative;isolation:isolate;width:44px;height:44px;padding:0;border-radius:50%;color:var(--ink);transition:color .18s ease}.preference-controls button:before{content:"";position:absolute;inset:3px;z-index:-1;border-radius:inherit;background:linear-gradient(150deg,var(--glass-lens),transparent 78%);box-shadow:inset 0 1px 1px var(--glass-lens-rim),inset 0 -1px 2px #0000001f,0 3px 8px #0000001f;opacity:0;transform:scale(.88);transition:opacity .18s ease,transform .26s var(--ease-out)}.preference-controls button:focus-visible{z-index:1;outline-offset:1px}.preference-controls button:focus-visible:before,.preference-controls button:active:before{opacity:1;transform:scale(1)}@media(hover:hover)and (pointer:fine){.preference-controls button:hover{color:var(--ink)}.preference-controls button:hover:before{opacity:1;transform:scale(1.08)}}.preference-controls button:active:before{transform:scale(.95);transition-duration:.1s}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.preference-controls{background:var(--surface);box-shadow:inset 0 0 0 1px var(--secondary);-webkit-backdrop-filter:none;backdrop-filter:none}.preference-controls button:before{background:var(--surface-strong);box-shadow:none}}.theme-icon{display:inline-flex;transition:transform .6s cubic-bezier(.3,1.4,.5,1)}:root[data-theme=light] .theme-icon{transform:rotate(-90deg)}:root[data-theme-transition]::view-transition-old(root),:root[data-theme-transition]::view-transition-new(root){animation:none;mix-blend-mode:normal}.header-resume{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 16px;border-radius:999px;font-weight:600;white-space:nowrap}.header-resume{background:linear-gradient(155deg,color-mix(in srgb,var(--ground) 90%,white),color-mix(in srgb,var(--surface) 55%,transparent));color:var(--ink);box-shadow:inset 0 1px 1px #ffffff59,inset 0 -1px 3px #00000010,0 3px 10px #00000008;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.header-resume svg,.mobile-menu .mobile-resume svg{width:18px;height:18px;color:var(--accent)}.header-resume:is(:hover,:focus-visible){background:linear-gradient(155deg,color-mix(in srgb,var(--ground) 65%,white),var(--surface-strong));color:var(--ink)}.header-location,.footer-location{display:flex;justify-content:center;align-items:center;gap:14px;color:var(--secondary);font-size:12px;letter-spacing:.06em;white-space:nowrap}.header-location{margin-right:auto}.header-location time{font-variant-numeric:tabular-nums;min-width:5ch}.menu-button{display:none!important}.mobile-menu{display:none}.t-dropdown{transform-origin:top left;transform:scale(var(--dropdown-pre-scale));opacity:0;pointer-events:none;transition:transform var(--dropdown-open-dur) var(--dropdown-ease),opacity var(--dropdown-open-dur) var(--dropdown-ease)}.t-dropdown[data-origin=top-right]{transform-origin:top right}.t-dropdown[data-origin=top-center]{transform-origin:top center}.t-dropdown[data-origin=bottom-left]{transform-origin:bottom left}.t-dropdown[data-origin=bottom-center]{transform-origin:bottom center}.t-dropdown[data-origin=bottom-right]{transform-origin:bottom right}.t-dropdown.is-open{transform:scale(1);opacity:1;pointer-events:auto}.t-dropdown.is-closing{transform:scale(var(--dropdown-closing-scale));opacity:0;pointer-events:none;transition:transform var(--dropdown-close-dur) var(--dropdown-ease),opacity var(--dropdown-close-dur) var(--dropdown-ease)}@media(prefers-reduced-motion:reduce){.t-dropdown{transition:none!important}}.hero{padding-top:clamp(20px,2.5vw,40px)}.hero-title{font-size:clamp(68px,min(max(16vw,min(23vw,111px + 4.5vw)),25svh),260px);line-height:.86;letter-spacing:-.075em;text-transform:uppercase}.hero-title span{display:block;width:-moz-fit-content;width:fit-content}.hero-title span:last-child{margin-left:auto}.hero-bottom{margin-top:clamp(24px,4vh,44px);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);gap:64px;align-items:center}.hero-intro{max-width:660px}.hero-intro>p+p{margin-top:20px;color:var(--secondary)}.hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:20px}.hero-cta-beam{width:-moz-fit-content;width:fit-content;flex-shrink:0}.hero-cta-beam .button-primary{width:100%}.hero-cta-beam:has(:focus-visible){outline:3px solid var(--focus);outline-offset:5px}.button-primary{display:inline-flex;min-height:56px;padding:17px 25px;gap:14px;justify-content:center;align-items:center;background:var(--button);color:var(--button-ink);font-family:var(--font-display);font-size:var(--small);font-weight:600;border-radius:999px}.button-primary:is(:hover,:focus-visible){background:color-mix(in srgb,var(--button) 88%,var(--ink));color:var(--button-ink)}@media(prefers-reduced-motion:no-preference){:root:not([data-input=keyboard]) :is(.button-primary,.filters button,.pipeline-tabs button,.tool-selector button,.expertise-toggle,.header-tools button,.preference-controls button,.header-resume,.mobile-resume,.email-copy):active{transform:scale(.97)}}.text-link,.project-link,.text-button{font-family:var(--font-display);font-size:var(--small);display:inline-flex;align-items:center;gap:14px;min-height:44px}.text-link{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.project-link svg{transition:transform .2s var(--ease-out)}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-bottom:46px}.section-heading>:last-child{max-width:540px;margin-left:auto}.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px;font-family:var(--font-display);font-size:var(--small)}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters button{padding:12px 18px;min-height:46px}.filters button[aria-pressed=true]{background:var(--ink);color:var(--ground)}.filters button:not([aria-pressed=true]):is(:hover,:focus-visible){background:var(--surface);color:var(--ink)}.project-count{white-space:nowrap}.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 28px}.project-row{min-width:0;padding:clamp(18px,2vw,28px);border-radius:28px;background:var(--surface)}.project-image-link{display:block;position:relative;overflow:hidden;background:var(--surface);border-radius:16px}.project-image{aspect-ratio:16 / 10;-o-object-fit:cover;object-fit:cover;transition:transform .28s var(--ease-out)}.project-aurabot .project-image{-o-object-position:center bottom;object-position:center bottom}.project-image-action{position:absolute;bottom:20px;right:20px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ground);color:var(--ink);transition:background-color .2s,color .2s}.project-image-action svg{transition:transform .2s var(--ease-out)}.project-row:is(:hover,:focus-within) .project-image-action{background:var(--button);color:var(--button-ink)}.project-bincredible .project-image{-o-object-fit:contain;object-fit:contain;background:#e9ede5;padding:6%}.project-description{padding-top:24px}.project-description>p{margin-top:12px}.project-contribution{font-family:var(--font-display);font-size:16px;line-height:1.6}.more-work{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px;font-family:var(--font-display);font-size:16px}.more-work>p{color:var(--secondary)}.project-title-row{display:flex;align-items:baseline;gap:20px;justify-content:space-between}.project-title-row h3{font-family:var(--font-body);font-weight:400;font-size:clamp(28px,2.6vw,38px);transition:transform .2s var(--ease-out),color .2s}.project-row:is(:hover,:focus-within) h3{color:var(--accent)}.project-title-row>span{color:var(--secondary);font-family:var(--font-display);font-size:var(--small)}.project-categories{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;color:var(--secondary);font-family:var(--font-display);font-size:var(--small)}.project-categories li{border:1px solid color-mix(in srgb,var(--secondary) 28%,transparent);border-radius:999px;padding:5px 12px}.project-description .project-link{margin-top:12px}.stack-list{display:flex;flex-wrap:wrap;gap:8px 18px;margin:24px 0;font-family:var(--font-display);font-size:var(--small);color:var(--secondary)}.system-section{background:var(--surface);padding:56px}.system-section .section-heading{grid-template-columns:1fr 1fr}.system-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:center}.system-photo img{aspect-ratio:4 / 3}.pipeline-tabs{display:flex;gap:8px;padding:8px;background:var(--ground);font-family:var(--font-display)}.pipeline-tabs button{flex:1;min-height:54px;padding:12px 10px;display:flex;justify-content:center;align-items:center;gap:10px;font-size:var(--small);color:var(--secondary)}.pipeline-tabs button[aria-selected=true]{background:var(--ink);color:var(--ground)}.pipeline-tabs button:not([aria-selected=true]):is(:hover,:focus-visible){background:var(--surface-strong);color:var(--ink)}.pipeline-panel{min-height:230px;padding:24px;background:var(--ground);margin-top:8px}.pipeline-hardware{font-family:var(--font-display);font-size:var(--lead);letter-spacing:-.03em}.pipeline-panel p+p{margin-top:16px}.system-explorer>.project-link{margin-top:16px}.expertise-list{display:flex;flex-direction:column}.expertise-row{padding:40px 0;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.65fr);gap:48px;align-items:start}.expertise-row+.expertise-row{background:var(--surface);margin-inline:calc(-1 * var(--page-pad));padding-inline:var(--page-pad)}.expertise-row:last-child{background:var(--ground)}.expertise-evidence{color:var(--secondary);font-family:var(--font-display);font-size:var(--small);margin-top:16px}.tool-hint{margin-bottom:8px;color:var(--secondary);font-family:var(--font-display);font-size:var(--small)}.tool-selector{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.tool-selector button{min-height:44px;padding:10px 16px;background:var(--surface-strong);color:var(--ink);font-family:var(--font-display);font-size:17px;font-weight:600}.tool-selector button[aria-pressed=true]{background:var(--button);color:var(--button-ink)}.tool-selector button:not([aria-pressed=true]):is(:hover,:focus-visible){background:var(--ink);color:var(--ground)}.tool-context{min-height:150px;max-width:64ch}.tool-context .project-link{margin-top:16px}.expertise-body{min-width:0}.t-text-swap{display:inline-block;transform:translateY(0);filter:blur(0);opacity:1;transition:transform var(--text-swap-dur) var(--text-swap-ease),filter var(--text-swap-dur) var(--text-swap-ease),opacity var(--text-swap-dur) var(--text-swap-ease);will-change:transform,filter,opacity}.t-text-swap.is-exit{transform:translateY(calc(var(--text-swap-translate-y) * -1));filter:blur(var(--text-swap-blur));opacity:0}.t-text-swap.is-enter-start{transform:translateY(var(--text-swap-translate-y));filter:blur(var(--text-swap-blur));opacity:0;transition:none}.selection-panels{display:grid}.selection-panels>*{grid-area:1 / 1;min-width:0}.selection-panels>.project-list{display:grid}.selection-panels>[aria-hidden=true]{pointer-events:none;visibility:hidden;transition:transform var(--text-swap-dur) var(--text-swap-ease),filter var(--text-swap-dur) var(--text-swap-ease),opacity var(--text-swap-dur) var(--text-swap-ease),visibility 0s var(--text-swap-dur)}.t-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--acc-collapse) var(--acc-ease)}.t-acc[data-open=true] .t-acc-panel{grid-template-rows:1fr;transition:grid-template-rows var(--acc-expand) var(--acc-ease)}.t-acc-panel-inner{overflow:hidden;opacity:0;filter:blur(2px);transition:opacity var(--acc-collapse) var(--acc-ease),filter var(--acc-collapse) var(--acc-ease)}.t-acc[data-open=true] .t-acc-panel-inner{opacity:1;filter:blur(0);transition:opacity var(--acc-expand) var(--acc-ease),filter var(--acc-expand) var(--acc-ease)}@media(prefers-reduced-motion:reduce){.t-text-swap,.t-acc-panel,.t-acc-panel-inner,.t-acc-chevron{transition:none!important}}.person-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(48px,8vw,140px);align-items:center}.person-photo{overflow:hidden}.person-photo img{aspect-ratio:4 / 5;-o-object-position:50% 45%;object-position:50% 45%}.person-copy h2{max-width:12ch;margin-bottom:36px}.person-copy .lead+p{margin-top:24px}.person-copy .project-link{margin-top:24px}.contact-prompt{margin-bottom:32px;color:var(--secondary);text-transform:uppercase}.contact-cta{position:relative;display:block;width:-moz-fit-content;width:fit-content;font-size:clamp(44px,16.5cqi,280px);font-weight:700;letter-spacing:-.065em;line-height:1;text-transform:uppercase}.contact-cta:focus-visible{color:var(--accent)}.contact-links{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:40px 32px;margin-top:clamp(40px,5vw,72px);min-width:0;color:var(--secondary)}.contact-links .email-link{color:var(--ink);font-size:clamp(18px,1.4vw,20px);letter-spacing:-.035em}.footer-email{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content;max-width:100%;min-width:0}.email-link{display:block;min-width:0;font-family:var(--font-display);font-size:var(--small);letter-spacing:0;overflow-wrap:anywhere;text-align:left;-webkit-user-select:text;-moz-user-select:text;user-select:text}.email-copy{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:6px;color:var(--secondary)}.copy-icon{display:grid;flex:none;width:20px;height:20px}.copy-icon>svg{grid-area:1 / 1;width:100%;height:100%;transition:opacity var(--icon-swap-dur) var(--ease-out),transform var(--icon-swap-dur) var(--ease-out),filter var(--icon-swap-dur) var(--ease-out)}.copy-icon[data-copied=false] .copy-icon-check,.copy-icon[data-copied=true] .copy-icon-original{opacity:0;transform:scale(var(--icon-swap-start-scale));filter:blur(var(--icon-swap-blur))}.copy-icon-check path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset var(--icon-swap-dur) var(--ease-out)}.copy-icon[data-copied=true] .copy-icon-check path{stroke-dashoffset:0}@media(prefers-reduced-motion:reduce){.copy-icon>svg,.copy-icon-check path{transition:none}.copy-icon[data-copied=false] .copy-icon-check,.copy-icon[data-copied=true] .copy-icon-original{transform:none;filter:none}}.email-copy:is(:active,:focus-visible){background:var(--surface-strong);color:var(--accent)}.footer-email[data-status=copied] .email-copy{color:var(--accent)}.copy-status{flex-basis:100%;color:var(--secondary);font-family:var(--font-display);font-size:var(--small);line-height:1.5;opacity:0;transform:translateY(var(--text-swap-translate-y));filter:blur(var(--text-swap-blur));transition:opacity var(--text-swap-dur) var(--text-swap-ease),transform var(--text-swap-dur) var(--text-swap-ease),filter var(--text-swap-dur) var(--text-swap-ease)}.copy-status:not(:empty){opacity:1;transform:translateY(0);filter:blur(0)}.copy-status:not([data-failed]),.contact-draft-status:empty,.contact-draft-status[data-success]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.footer-email[data-status=copyFailed] .copy-status{color:var(--ink)}.site-footer{container-type:inline-size;margin-top:var(--section-gap);padding-block:96px 28px;font-family:var(--font-display);font-size:var(--small);text-align:left;background:var(--surface)}.footer-compact{padding-top:28px}.footer-compact .contact-links{margin-top:0}.footer-wordmark{display:block;font-family:var(--font-body);width:100%;height:auto;margin-top:clamp(32px,5vw,80px);margin-bottom:-28px;overflow:hidden;fill:var(--ink);opacity:.1;-webkit-mask-image:linear-gradient(to bottom,#000 20%,transparent 100%);mask-image:linear-gradient(to bottom,#000 20%,transparent 100%);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.footer-meta{display:flex;flex-wrap:wrap;grid-column:1 / -1;justify-content:space-between;align-items:center;gap:16px 24px}.footer-location{flex-wrap:wrap;justify-content:flex-start;font-size:var(--small);letter-spacing:0;justify-self:start}.footer-meta .copyright{margin:0}.footer-socials{display:flex;flex-wrap:wrap;gap:24px;font-size:16px;color:var(--ink)}.footer-socials a{display:inline-flex;align-items:center;gap:8px;min-height:44px}.footer-socials svg{width:18px;height:18px}.site-footer .text-button{justify-self:end;white-space:nowrap}.site-footer :is(.footer-socials a,.text-button):active{color:var(--accent)}@media(hover:hover)and (pointer:fine){.email-copy:hover{background:var(--surface-strong);color:var(--accent)}}.site-footer svg{transition:transform .2s}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){:root:not([data-input=keyboard]) .project-row:hover .project-image{transform:scale(1.025)}:root:not([data-input=keyboard]) .project-link:hover svg,:root:not([data-input=keyboard]) .project-row:hover .project-image-action svg{transform:translate(4px)}:root:not([data-input=keyboard]) .site-footer .text-button:hover svg{transform:translateY(-3px)}}.copyright{font-size:var(--small);font-family:var(--font-display);color:var(--secondary)}.contact-page{padding-top:clamp(32px,5vw,72px);font-family:var(--font-display)}.contact-page h1{font-size:clamp(52px,6vw,88px);line-height:1.05;letter-spacing:-.04em}.contact-intro{max-width:760px;margin:0 auto clamp(40px,5vw,72px);text-align:center}.contact-intro .lead{max-width:48ch;margin:20px auto 0;color:var(--secondary);font-size:clamp(18px,1.5vw,22px);line-height:1.5}.contact-page-layout{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start;max-width:1040px;margin-inline:auto;padding:clamp(20px,4vw,48px);background:var(--surface);border-radius:32px}.contact-details{padding-top:8px}.contact-details h2{font-size:var(--small);line-height:1.5;letter-spacing:0;color:color-mix(in srgb,var(--ink) 65%,var(--ground));font-weight:400;margin-top:36px}.contact-details h2:first-child{margin-top:0}.contact-details .email-link,.contact-location-copy{color:var(--ink);font-size:clamp(17px,1.4vw,20px);font-weight:500;line-height:1.5;letter-spacing:0}.contact-details h2+p{margin-top:8px}.contact-form{display:grid;gap:20px;min-width:0;padding:clamp(20px,2.5vw,36px);background:var(--ground);border-radius:24px;font-size:16px}.contact-form fieldset{padding:0;margin:0;border:0;min-width:0}.contact-form legend{margin-bottom:16px}.inquiry-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inquiry-topics label{position:relative;min-width:0}.inquiry-topics input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.inquiry-topics span{display:flex;align-items:center;justify-content:center;min-height:48px;height:100%;padding:10px 12px;text-align:center;line-height:1.3;border-radius:999px;background:transparent;border:1px solid color-mix(in srgb,var(--secondary) 40%,transparent);font-size:16px;transition:background-color .18s,color .18s,border-color .18s}.inquiry-topics input:checked+span{background:var(--button);color:var(--button-ink);border-color:var(--button)}.inquiry-topics input:focus-visible+span{outline:3px solid var(--focus);outline-offset:4px}@media(hover:hover)and (pointer:fine){.inquiry-topics input:hover:not(:checked)+span{background:var(--surface-strong)}}.contact-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.contact-field{display:grid;gap:8px}.contact-field small{color:var(--secondary);font-size:14px;line-height:1.5}.contact-field input,.contact-field textarea{width:100%;min-height:48px;padding:12px 0;background:transparent;color:var(--ink);font:inherit;border:0;border-bottom:2px solid color-mix(in srgb,var(--secondary) 40%,transparent);border-radius:0;transition:border-color .18s}.contact-field textarea{resize:vertical}.contact-field textarea::-moz-placeholder{color:var(--secondary);opacity:1}.contact-field textarea::placeholder{color:var(--secondary);opacity:1}.contact-field :is(input,textarea):focus-visible{outline:none;border-bottom-color:var(--focus)}.contact-form-actions{display:grid;gap:16px}.contact-form .button-primary{background:var(--ink);color:var(--ground)}.contact-form .button-primary:is(:hover,:focus-visible){background:color-mix(in srgb,var(--ink) 85%,var(--ground));color:var(--ground)}.contact-action-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.contact-copy-draft{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:12px 20px;border:1px solid color-mix(in srgb,var(--secondary) 55%,transparent);border-radius:999px;font-size:14px;font-weight:600}.contact-copy-draft .copy-icon{width:18px;height:18px}@media(hover:hover)and (pointer:fine){.contact-copy-draft:hover{background:var(--surface-strong);color:var(--ink)}}.contact-form-note{color:var(--secondary);font-size:14px;line-height:1.5}.contact-draft-status{color:var(--ink);font-size:14px}@media(max-width:480px){.contact-field-row{grid-template-columns:1fr}}main:has(>.about-hero){background-image:linear-gradient(to right,color-mix(in srgb,var(--ink) 4%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--ink) 4%,transparent) 1px,transparent 1px);background-size:40px 40px}.about-hero,.education-section,.experience-section{max-width:800px;margin-inline:auto}.about-hero{padding-top:clamp(72px,9vw,140px);display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,250px);-moz-column-gap:clamp(48px,9vw,140px);column-gap:clamp(48px,9vw,140px);align-items:start}.about-heading h1{font-size:clamp(36px,4vw,48px);line-height:1.1}.about-heading>p{margin-top:20px;max-width:42ch;font-size:clamp(18px,1.55vw,21px);line-height:1.55}.about-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:28px;color:var(--secondary);font-family:var(--font-display);font-size:14px}.about-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px}.about-links svg{width:18px;height:18px}.about-links .about-resume{padding-left:16px;border-left:1px solid color-mix(in srgb,var(--ink) 20%,transparent)}.about-photo-print{padding:9px;border-radius:4px;background:#f9f9f7;transform:rotate(2deg);transition:transform .25s cubic-bezier(.23,1,.32,1)}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.about-photo-print:hover{transform:rotate(-1deg) scale(1.01)}}@media(prefers-reduced-motion:reduce){.about-photo-print{transition:none}}.about-photo img{aspect-ratio:4 / 5;-o-object-position:50% 44%;object-position:50% 44%;border-radius:7px}.education-section,.experience-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,64px);align-items:start}.education-aside{grid-column:1;grid-row:1}.education-list{grid-column:2;grid-row:1}#education-title,#experience-title{font-size:clamp(30px,3.5vw,42px)}.education-list,.experience-section>div:last-child{min-width:0}.education-list article,.experience-row{padding-top:20px;border-top:1px solid color-mix(in srgb,var(--ink) 20%,transparent)}.education-list article+article,.experience-row+.experience-row{margin-top:32px}.education-list h3,.experience-row h3{font-size:clamp(20px,2vw,24px);line-height:1.3}.education-list p,.experience-row p{margin-top:8px}.education-list .secondary,.experience-row .secondary{margin-top:6px;font-family:var(--font-display);font-size:var(--small)}.experience-row>p{margin-top:16px}.case-back{padding-top:24px}.back-link{font-family:var(--font-display);font-size:var(--small);display:inline-flex;gap:12px;min-height:44px;align-items:center}.case-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:center;padding-top:24px}.case-hero-copy{min-width:0}.case-hero h1{font-size:clamp(48px,6.3vw,96px);line-height:1.05;letter-spacing:-.06em;overflow-wrap:anywhere}.case-purpose{margin-top:24px;font-family:var(--font-display);font-size:clamp(26px,2.5vw,36px);line-height:1.2;letter-spacing:-.035em;text-wrap:balance;max-width:24ch}.case-deck{margin-top:20px;max-width:46ch}.case-role{margin-top:20px;font-family:var(--font-display);font-size:16px}.case-role span{color:var(--secondary)}.case-actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:28px}.case-image{min-width:0}.case-image img{height:clamp(360px,54vh,560px);-o-object-position:center;object-position:center}.case-aurabot img{-o-object-position:center bottom;object-position:center bottom}.case-bincredible img{-o-object-fit:contain;object-fit:contain;padding:6%;background:#e9ede5}.case-zotfitness img{-o-object-position:center 60%;object-position:center 60%}.case-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:28px 32px;margin-top:40px;background:var(--surface);font-family:var(--font-display)}.case-meta dt{color:var(--secondary);font-size:var(--small);margin-bottom:8px}.case-meta dd{font-size:16px;line-height:1.5}.case-opening,.case-result-with-image{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}.case-opening.section-space,.case-opening~.section-space{margin-top:clamp(72px,8vw,120px)}.case-opening h2,.case-result h2,.case-decisions>h2,.system-case h2{font-size:clamp(30px,3vw,44px)}.case-opening h2+p,.case-result h2+p,.case-follow-up h3+p{margin-top:24px}.case-opening .project-link{margin-top:24px}.system-case{padding:clamp(36px,4.5vw,64px);font-family:var(--font-display)}.system-case .section-heading{margin-bottom:48px;align-items:start}.system-case .section-heading p{font-size:17px;line-height:1.7;max-width:48ch}.system-case .system-layout{grid-template-columns:1fr}.system-case .pipeline-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;overflow:visible;padding:0;background:none}.system-case .pipeline-tabs button{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:32px;min-width:0;min-height:168px;padding:28px;white-space:normal;background:var(--ground);text-align:left;font-size:clamp(24px,2.5vw,36px);font-weight:450;letter-spacing:-.035em}.system-case .pipeline-tabs button[aria-selected=true]{background:var(--button);color:var(--button-ink)}.flow-hardware{font-size:15px;line-height:1.5;font-weight:400;letter-spacing:0}.system-case .flow-connector{position:absolute;top:calc(50% - 10px);right:-30px;color:var(--ink)}.system-case .pipeline-tabs button:last-child .flow-connector{display:none}.system-case .pipeline-panel{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;min-height:0;max-width:none;padding:36px;margin-top:28px}.system-case .pipeline-panel p{max-width:56ch;font-size:17px;line-height:1.75}.system-case .pipeline-panel .pipeline-hardware{font-size:clamp(22px,2vw,28px);line-height:1.35;font-weight:500;letter-spacing:-.025em}.system-case .pipeline-panel p+p{margin-top:0}.case-decisions>h2{margin-bottom:36px}.case-decision-list article{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;padding:32px}.case-decision-list article:nth-child(odd){background:var(--surface)}.case-decision-list h3{max-width:26ch}.case-evidence-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:20px;font-family:var(--font-display);font-size:16px}.case-source{color:var(--secondary);font-family:var(--font-display);font-size:var(--small)}.case-result{padding:40px;background:var(--surface)}.case-result-copy{min-width:0}.case-result .lead{font-size:clamp(20px,1.7vw,24px);line-height:1.5}.case-follow-up{margin-top:32px}.case-follow-up h3{font-size:22px}.case-reflection{margin-top:32px}.case-result:not(.case-result-with-image) .case-result-copy{display:grid;grid-template-columns:1fr 1fr;gap:48px}.case-result:not(.case-result-with-image) .case-follow-up{margin-top:0}.case-gallery img{aspect-ratio:4 / 3}.next-project h2{font-size:var(--lead)}.next-project a{display:flex;gap:28px;align-items:center;margin-top:24px;padding-block:16px;font-family:var(--font-display);font-size:var(--head);letter-spacing:-.05em}.next-project img{width:180px;flex-shrink:0;aspect-ratio:4 / 3}.next-project a>span{min-width:0;overflow-wrap:anywhere}.next-project small{display:block;margin-top:8px;font-size:18px;letter-spacing:0;color:var(--secondary)}.next-project a>svg{margin-left:auto}.not-found{min-height:60vh;padding-block:80px}.not-found h1{font-size:var(--head)}.not-found p,.not-found .button-primary{margin-top:32px}:lang(zh-CN) .hero-title{text-transform:none;font-size:min(220px,25svh,max(15vw,min(22vw,106px + 4vw)));letter-spacing:-.05em}:lang(zh-CN) .hero-title span:last-child{font-size:.48em;margin-top:30px;letter-spacing:-.06em}:lang(zh-CN) h2{letter-spacing:-.03em}:lang(zh-CN) .contact-cta{font-size:clamp(56px,23cqi,340px);letter-spacing:-.04em}:lang(zh-CN) .person-copy h2{max-width:8ch}@media(max-width:1200px){.desktop-nav{margin-left:auto}}@media(max-width:1050px){.site-header{gap:16px}.desktop-nav{gap:18px}.header-tools{margin-left:0}.system-section{padding:36px}.system-layout{gap:32px}.expertise-row{grid-template-columns:.8fr 1.2fr;gap:32px}.expertise-evidence{margin-top:16px}.case-hero{gap:32px}.case-image img{height:auto;aspect-ratio:4 / 3}.case-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.case-opening{grid-template-columns:1fr 1fr;gap:32px}.case-result-with-image{grid-template-columns:1fr;gap:32px}.case-gallery img{aspect-ratio:16 / 9}.system-case .pipeline-tabs{gap:28px}.system-case .pipeline-tabs button{padding:24px}.system-case .pipeline-panel{grid-template-columns:1fr;gap:20px;padding:32px}.system-case .flow-connector{right:-24px}}@media(max-width:960px){html{scroll-padding-top:calc(88px + env(safe-area-inset-top,0px))}.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-height:72px;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:12px;gap:8px;background:linear-gradient(var(--ground) 0 78%,color-mix(in srgb,var(--ground) 90%,transparent) 88%,transparent)}.wordmark{font-size:16px;flex-shrink:0}.header-location{margin-inline:auto;flex-direction:column;gap:2px;font-size:12px;line-height:1.25;letter-spacing:0}.header-location>[aria-hidden=true]{display:none}.header-location time{font-size:12px;text-align:center}.desktop-nav{display:none}.header-resume,.header-tools>.preference-controls{display:none}.header-tools{margin-left:0;flex-shrink:0;justify-self:end}.mobile-menu{display:block;position:fixed;inset:0;pointer-events:none}.mobile-menu-brand{position:absolute;z-index:2;top:calc(12px + env(safe-area-inset-top,0px));left:max(var(--page-pad),env(safe-area-inset-left,0px));min-height:44px;display:flex;align-items:center;font-size:16px;font-weight:700;letter-spacing:-.05em;visibility:hidden}.mobile-menu.is-open .mobile-menu-brand{visibility:visible}.menu-button{position:absolute;z-index:2;top:calc(12px + env(safe-area-inset-top,0px));right:max(var(--page-pad),env(safe-area-inset-right,0px));display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--ink) 6%,transparent);pointer-events:auto;transition:background-color .4s}.mobile-menu.is-open .menu-button{background:var(--surface-strong)}@media(hover:hover)and (pointer:fine){.menu-button:hover{background:var(--surface-strong)}}.menu-icon{position:relative;width:18px;height:18px}.menu-icon span{position:absolute;left:0;top:8px;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .3s var(--ease-out),opacity .15s}.menu-icon span:first-child{transform:translateY(-6px)}.menu-icon span:nth-child(2){width:12px;left:6px}.menu-icon span:last-child{transform:translateY(6px)}.menu-button[aria-expanded=true] .menu-icon span:first-child{transform:rotate(45deg)}.menu-button[aria-expanded=true] .menu-icon span:nth-child(2){opacity:0;transform:translate(8px)}.menu-button[aria-expanded=true] .menu-icon span:last-child{transform:rotate(-45deg)}.mobile-menu-sheet{position:absolute;inset:0;overflow:hidden;background:var(--ground);color:var(--ink);clip-path:circle(0 at calc(100% - max(var(--page-pad),env(safe-area-inset-right,0px)) - 22px) calc(34px + env(safe-area-inset-top,0px)));visibility:hidden;transition:clip-path .3s cubic-bezier(.2,.8,.2,1),visibility 0s .3s}.mobile-menu.is-open .mobile-menu-sheet{clip-path:circle(150vmax at calc(100% - max(var(--page-pad),env(safe-area-inset-right,0px)) - 22px) calc(34px + env(safe-area-inset-top,0px)));visibility:visible;pointer-events:auto;transition:clip-path .4s cubic-bezier(.2,.8,.2,1),visibility 0s}.mobile-menu.is-closing .mobile-menu-sheet{visibility:visible}.mobile-menu-content{position:absolute;inset:calc(72px + env(safe-area-inset-top,0px)) 0 0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding:24px max(var(--page-pad),env(safe-area-inset-right,0px)) max(26px,env(safe-area-inset-bottom,0px)) max(var(--page-pad),env(safe-area-inset-left,0px))}.mobile-menu-label{margin:0 0 12px;color:var(--secondary);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.mobile-menu-links{display:grid;align-content:start}.mobile-menu-links a{display:flex;align-items:baseline;gap:14px;width:-moz-fit-content;width:fit-content;max-width:100%;padding:7px 0;font-size:clamp(34px,6vw,56px);line-height:1.2;font-weight:800;letter-spacing:-.05em;opacity:0;transform:translateY(26px);transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1)}.mobile-menu-links a em{color:var(--secondary);font-size:12px;font-style:normal;font-weight:700;letter-spacing:0;font-variant-numeric:tabular-nums}.mobile-menu-links a span{background:linear-gradient(var(--accent),var(--accent)) no-repeat 0 100% / 0 3px;padding-bottom:2px;transition:background-size .45s cubic-bezier(.2,.8,.2,1)}.mobile-menu-links a:focus-visible span{background-size:100% 3px}@media(hover:hover)and (pointer:fine){.mobile-menu-links a:hover span{background-size:100% 3px}}.mobile-menu-links a[aria-current] em{color:var(--accent)}.mobile-menu.is-open .mobile-menu-links a{opacity:1;transform:none;transition:opacity .2s var(--ease-out) calc(80ms + var(--item) * 40ms),transform .3s var(--ease-out) calc(80ms + var(--item) * 40ms)}.mobile-menu-links a:nth-child(1){--item: 0}.mobile-menu-links a:nth-child(2){--item: 1}.mobile-menu-links a:nth-child(3){--item: 2}.mobile-menu-links a:nth-child(4){--item: 3}.mobile-menu-links a:nth-child(5){--item: 4}.mobile-menu-utilities{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-top:auto;padding-top:32px;opacity:0;transform:translateY(14px);transition:opacity .25s,transform .3s}.mobile-menu.is-open .mobile-menu-utilities{opacity:1;transform:none;transition:opacity .2s .2s,transform .3s var(--ease-out) .2s}.mobile-menu .mobile-resume{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border-radius:999px;font-size:var(--small);font-weight:600;background:var(--button);color:var(--button-ink)}.mobile-menu .mobile-resume svg{color:currentColor}@media(min-width:600px)and (max-height:520px){.mobile-menu-links{grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:24px;column-gap:24px}.mobile-menu-links a{font-size:clamp(30px,4vw,38px)}.mobile-menu-utilities{padding-top:16px}}}@media(max-width:760px){:root{--head: clamp(34px, 7.5vw, 48px);--lead: 23px}.hero-title{font-size:clamp(54px,min(25svh,calc(20.7vw - 12px)),260px);line-height:.9}.hero-intro .lead{font-size:20px}.hero-title span:last-child{margin-top:8px}.hero{padding-top:28px}.hero-bottom{grid-template-columns:1fr;gap:24px;margin-top:28px}.hero-intro>p+p{margin-top:16px}.hero+.section-space{margin-top:72px}.hero-actions{flex-direction:row;align-items:center;justify-content:space-between;gap:20px}.button-primary{padding:16px 20px;gap:24px}.section-heading{grid-template-columns:1fr;gap:28px;margin-bottom:32px}.section-heading>:last-child{margin-left:0}.filter-bar{display:block;margin-bottom:28px}.filters{gap:8px}.filters button{padding:11px 13px}.project-count{margin-top:16px}.project-list{grid-template-columns:1fr;gap:64px}.project-title-row h3{font-size:34px}.project-description{padding-top:20px}.stack-list{margin-block:18px}.system-section{padding:32px 24px;margin-inline:calc(-1 * var(--page-pad))}.system-section .section-heading{grid-template-columns:1fr}.system-layout{grid-template-columns:1fr;gap:32px}.pipeline-tabs button{font-size:14px;flex-direction:column;gap:6px;padding:10px 6px;min-width:0}.pipeline-panel{min-height:210px;padding:20px}.expertise-row{grid-template-columns:1fr;gap:0;padding-block:24px}.expertise-section .section-heading{margin-bottom:20px}.expertise-section .section-heading>:last-child,.expertise-evidence{display:none}.expertise-section .tool-hint{margin-bottom:16px;font-size:16px;line-height:1.5}.expertise-toggle{display:flex;width:100%;min-height:48px;justify-content:space-between;align-items:center;gap:16px;padding:0;font:inherit;font-size:21px;line-height:1.3;letter-spacing:-.025em;text-align:left}.expertise-toggle svg{color:var(--secondary)}.expertise-toggle .expand-vertical{transition:opacity var(--acc-chevron) var(--acc-ease)}.expertise-toggle[aria-expanded=true] .expand-vertical{opacity:0}.expertise-tool-preview{margin-top:8px;color:var(--secondary);font-family:var(--font-display);font-size:15px;line-height:1.6}.expertise-body-content{padding-top:20px}.expertise-preview{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--acc-collapse) var(--acc-ease),opacity var(--acc-collapse) var(--acc-ease)}.expertise-preview>div{overflow:hidden}.t-acc[data-open=true] .expertise-preview{grid-template-rows:0fr;opacity:0}.tool-selector{gap:8px;margin-bottom:20px}.tool-selector button{padding:10px 12px;font-size:15px}.tool-context{min-height:0;font-size:17px;line-height:1.65}.person-section{grid-template-columns:1fr;gap:40px}.person-photo img{aspect-ratio:4 / 4.5}.person-copy h2{max-width:15ch;margin-bottom:28px}.site-footer{padding-top:40px;padding-bottom:max(24px,env(safe-area-inset-bottom,0px))}.footer-compact{padding-top:28px}.footer-wordmark{margin-bottom:calc(-1*max(24px,env(safe-area-inset-bottom,0px)))}.contact-prompt{max-width:30ch;margin-bottom:24px;font-size:16px;line-height:1.5;text-transform:none}.contact-links{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;margin-top:40px}.email-link{font-size:16px}.footer-meta{gap:8px 16px;margin-top:16px}.footer-socials{grid-column:1;grid-row:auto}.footer-location{flex-basis:100%;font-size:13px;text-transform:none}.footer-meta .copyright{font-size:13px}.site-footer .text-button{margin-left:auto;font-size:13px;text-transform:none;gap:8px}.contact-page{padding-top:32px}.contact-page-layout{grid-template-columns:1fr;gap:28px}.about-hero{padding-top:56px;grid-template-columns:minmax(0,1fr) minmax(150px,220px);gap:40px}.case-opening,.case-result-with-image,.case-result:not(.case-result-with-image) .case-result-copy{grid-template-columns:1fr;gap:32px}.case-back{padding-top:12px}.case-hero{grid-template-columns:1fr;padding-top:16px;gap:28px}.case-hero h1{font-size:clamp(44px,10vw,72px)}.case-purpose{font-size:24px;margin-top:16px;max-width:28ch}.case-deck{margin-top:16px}.case-image img{height:auto;aspect-ratio:4 / 3}.case-meta{grid-template-columns:1fr;padding:24px;gap:24px 20px;margin-top:28px}.system-case,.case-result{padding:28px 20px}.system-case{padding:36px 24px}.system-case .section-heading{gap:24px;margin-bottom:36px}.system-case .pipeline-tabs{grid-template-columns:1fr;gap:28px}.system-case .pipeline-tabs button{min-height:88px;padding:20px;gap:16px;flex-direction:row-reverse;align-items:center;justify-content:space-between;font-size:22px}.flow-hardware{font-size:14px;max-width:55%;text-align:right}.system-case .flow-connector{right:calc(50% - 10px);top:auto;bottom:-24px;transform:rotate(90deg);width:16px;height:16px}.system-case .pipeline-panel{grid-template-columns:1fr;gap:20px;padding:28px 24px;margin-top:28px}.case-decision-list article{grid-template-columns:1fr;padding:24px 20px;gap:16px}.case-result:not(.case-result-with-image) .case-follow-up{margin-top:0}.next-project a{gap:16px}.next-project img{width:80px}.next-project small{font-size:16px}.next-project a>svg{width:24px;height:24px}.case-gallery img{aspect-ratio:4 / 3}.next-project a{font-size:24px}:lang(zh-CN) .hero-title span:last-child{font-size:.43em;margin-top:24px}}@media(max-width:360px){.hero-actions{flex-direction:column;align-items:stretch;gap:16px}.hero-cta-beam{width:100%}}:root[data-input=keyboard] *,:root[data-input=keyboard] *:before,:root[data-input=keyboard] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.project-row:is(:hover,:focus-within) .project-image,.button-primary:active,.project-row:is(:hover,:focus-within) h3,.project-row:is(:hover,:focus-within) svg,.site-footer .text-button:is(:hover,:focus-visible) svg,.project-link:hover svg{transform:none}}.journey-about-link{margin-top:24px;font-family:var(--font-display);font-size:15px}.journey-about-link a{color:var(--accent)}@media(max-width:760px){.education-section,.experience-section{grid-template-columns:1fr;gap:32px}.education-aside,.education-list{grid-column:auto;grid-row:auto}.about-hero{grid-template-columns:1fr;gap:32px}.about-photo{grid-row:1;width:min(62%,230px);justify-self:center}.about-heading{grid-row:2}.about-heading>p{max-width:60ch}}@media(max-width:360px){.site-header{grid-template-columns:auto minmax(0,1fr) auto}.contact-details .email-link{font-size:14px}.inquiry-topics span{font-size:13px;padding-inline:4px}}
