/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--gap:26px}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.78rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-lg:1.2rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.5rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.9rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:2.4rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:#1c1917;--color-ink-soft:#57534e;--color-ink-faint:#6b645e;--color-paper:#fafaf9;--color-veil:#f4f3f1;--color-card:#fff;--color-line:#e7e5e4;--color-line-soft:#efedeb;--color-accent:#a16207;--color-accent-deep:#7c4a06;--color-accent-wash:#f7f1e6;--color-ink-rgb:28 25 23;--color-paper-rgb:250 250 249;--color-veil-rgb:244 243 241;--color-card-rgb:255 255 255;--color-accent-rgb:161 98 7;--color-accent-wash-rgb:247 241 230;--text-2xs:.6875rem;--ease-out-soft:cubic-bezier(.22, .68, .28, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--dur-fast:.18s;--dur-base:.32s;--dur-slow:.62s;--shadow-card:0 1px 2px #1c19170a, 0 8px 24px -8px #1c191714;--shadow-lift:0 2px 4px #1c19170d, 0 20px 48px -16px #1c191724}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-x-0{inset-inline:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.isolate{isolation:isolate}.z-40{z-index:40}.z-50{z-index:50}.z-\[2\]{z-index:2}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.h-16{height:calc(var(--spacing) * 16)}.h-\[2px\]{height:2px}.h-full{height:100%}.h-px{height:1px}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-xl{max-width:var(--container-xl)}.flex-shrink{flex-shrink:1}.origin-left{transform-origin:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-line>:not(:last-child)){border-color:var(--color-line)}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-line{border-color:var(--color-line)}.border-line\/50{border-color:#e7e5e480}@supports (color:color-mix(in lab,red,red)){.border-line\/50{border-color:color-mix(in oklab,var(--color-line) 50%,transparent)}}.border-line\/70{border-color:#e7e5e4b3}@supports (color:color-mix(in lab,red,red)){.border-line\/70{border-color:color-mix(in oklab,var(--color-line) 70%,transparent)}}.bg-accent{background-color:var(--color-accent)}.bg-line{background-color:var(--color-line)}.bg-transparent{background-color:#0000}.bg-veil\/40{background-color:#f4f3f166}@supports (color:color-mix(in lab,red,red)){.bg-veil\/40{background-color:color-mix(in oklab,var(--color-veil) 40%,transparent)}}.bg-veil\/50{background-color:#f4f3f180}@supports (color:color-mix(in lab,red,red)){.bg-veil\/50{background-color:color-mix(in oklab,var(--color-veil) 50%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.bg-white\/70{background-color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-4{padding-left:calc(var(--spacing) * 4)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-2xs{font-size:var(--text-2xs)}.text-\[clamp\(2\.1rem\,7vw\,4rem\)\]{font-size:clamp(2.1rem,7vw,4rem)}.text-\[clamp\(2rem\,6vw\,3\.6rem\)\]{font-size:clamp(2rem,6vw,3.6rem)}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-accent{color:var(--color-accent)}.text-accent-deep{color:var(--color-accent-deep)}.text-ink{color:var(--color-ink)}.text-ink-faint{color:var(--color-ink-faint)}.text-ink-soft{color:var(--color-ink-soft)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-35{opacity:.35}.opacity-45{opacity:.45}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px);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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:border-ink:hover{border-color:var(--color-ink)}.hover\:bg-white:hover{background-color:var(--color-white)}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:top-3:focus{top:calc(var(--spacing) * 3)}.focus\:left-3:focus{left:calc(var(--spacing) * 3)}.focus\:z-50:focus{z-index:50}.focus\:rounded-lg:focus{border-radius:var(--radius-lg)}.focus\:bg-ink:focus{background-color:var(--color-ink)}.focus\:px-4:focus{padding-inline:calc(var(--spacing) * 4)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:text-white:focus{color:var(--color-white)}@media(min-width:40rem){.sm\:inline{display:inline}.sm\:grid-cols-\[8rem_minmax\(0\,1fr\)\]{grid-template-columns:8rem minmax(0,1fr)}.sm\:gap-8{gap:calc(var(--spacing) * 8)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-10{padding-inline:calc(var(--spacing) * 10)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}}@media(min-width:48rem){.md\:h-24{height:calc(var(--spacing) * 24)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[13rem_1fr\]{grid-template-columns:13rem 1fr}.md\:gap-16{gap:calc(var(--spacing) * 16)}.md\:py-20{padding-block:calc(var(--spacing) * 20)}.md\:pt-32{padding-top:calc(var(--spacing) * 32)}}}.mask-reveal{vertical-align:bottom;display:inline-block;overflow:hidden}.mask-reveal>*{will-change:transform;display:inline-block}.mesh{z-index:-10;background:radial-gradient(46rem 36rem at 12% 16%,#e8e2d6e6,transparent 64%),radial-gradient(38rem 32rem at 86% 12%,#efe9dee0,transparent 66%),radial-gradient(34rem 30rem at 74% 84%,rgb(var(--color-accent-rgb) / .13),transparent 62%),radial-gradient(30rem 28rem at 20% 88%,#e4ded2c2,transparent 64%),radial-gradient(28rem 26rem at 46% 44%,#ffffffeb,transparent 68%);filter:blur(52px);opacity:.62;position:absolute;inset:-25%}.mesh-panel{z-index:-11;background:linear-gradient(152deg,#fdfcfa,#f7f3ec 46%,#f8f4ee);border-radius:2rem;position:absolute;inset:1.25rem;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.mesh-panel{background:linear-gradient(152deg,#fdfcfa,#f7f3ec 46%,color-mix(in oklab,var(--color-accent) 7%,white))}}.mesh-panel{box-shadow:inset 0 0 0 1px #1c19170d}@media(min-width:640px){.mesh-panel{border-radius:2.5rem;inset:2rem}}.tilt{transform-style:preserve-3d;transition:transform var(--dur-base) var(--ease-out-soft),box-shadow var(--dur-base) var(--ease-out-soft),border-color var(--dur-base) var(--ease-out-soft)}.tilt__zone{z-index:1;width:50%;position:absolute;inset:0}.tilt__zone--r{left:50%}@media(hover:hover){.tilt:hover{border-color:rgb(var(--color-ink-rgb) / .22);box-shadow:0 2px 4px #2f8f8a0f,0 22px 48px -12px #2f8f8a38}.tilt:has(.tilt__zone--l:hover){transform:perspective(1100px)rotateY(-2.2deg)rotateX(1.4deg)translateY(-6px)}.tilt:has(.tilt__zone--r:hover){transform:perspective(1100px)rotateY(2.2deg)rotateX(1.4deg)translateY(-6px)}@supports not selector(:has(*)){.tilt:hover{transform:translateY(-6px)}}}.glass{background:rgb(var(--color-paper-rgb) / .72);-webkit-backdrop-filter:saturate(180%)blur(14px)}@media(prefers-reduced-motion:no-preference){.mesh{animation:26s ease-in-out infinite alternate mesh-drift}.breathe{animation:4.5s ease-in-out infinite breathe}.hero-in{animation:hero-rise .9s var(--ease-out-soft) both}.hero-in--paint{animation:hero-rise-opaque .9s var(--ease-out-soft) both}.hero-in-1{animation-delay:40ms}.hero-in-2{animation-delay:.14s}.hero-in-3{animation-delay:.26s}.hero-in-4{animation-delay:.4s}.hero-in-5{animation-delay:.54s}.mask-reveal>*{animation:mask-up 1s var(--ease-out-soft) both}.mask-reveal:nth-of-type(2)>*{animation-delay:.11s}.mask-reveal:nth-of-type(3)>*{animation-delay:.22s}@supports (animation-timeline:view()){.rise{animation:linear both rise-in;animation-timeline:view();animation-range:entry cover 30%}.rise-scale{animation:linear both rise-scale-in;animation-timeline:view();animation-range:entry cover 32%}.slide-in{animation:linear both slide-in-x;animation-timeline:view();animation-range:entry cover 28%}.rise-fade{animation:linear both rise-in,linear both fade-out;animation-timeline:view(),view();animation-range:entry cover 30%,exit -10% exit 60%}.grow-line{transform-origin:top;animation:linear both grow-y;animation-timeline:view();animation-range:entry 8% cover 68%}.stagger>*{animation:linear both rise-in;animation-timeline:view();animation-range:entry cover 28%}.stagger>:nth-child(2){animation-range:entry cover 34%}.stagger>:nth-child(3){animation-range:entry cover 40%}.stagger>:nth-child(4){animation-range:entry cover 46%}.stagger>:nth-child(5){animation-range:entry cover 52%}.stagger>:nth-child(6){animation-range:entry cover 58%}.metric-reveal>*{animation:linear both mask-up;animation-timeline:view();animation-range:entry 6% cover 34%}.metric-reveal:nth-child(2)>*{animation-range:entry 6% cover 40%}.metric-reveal:nth-child(3)>*{animation-range:entry 6% cover 46%}.metric-reveal:nth-child(4)>*{animation-range:entry 6% cover 52%}.parallax-slow{animation:linear both parallax-y;animation-timeline:view();animation-range:cover}.hero-exit{animation:linear both hero-dissolve;animation-timeline:view();animation-range:exit exit 90%}.pin-progress{transform-origin:0;animation:linear both progress-grow;animation-timeline:view();animation-range:contain}.progress-bar{transform-origin:0;animation:linear both progress-grow;animation-timeline:scroll(root)}.rule-draw{transform-origin:0;animation:linear both rule-draw;animation-timeline:view();animation-range:entry cover 26%}}}@keyframes rise-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes rise-scale-in{0%{opacity:0;transform:translateY(38px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slide-in-x{0%{opacity:0;transform:translate(-26px)}to{opacity:1;transform:translate(0)}}@keyframes fade-out{0%{opacity:1}to{opacity:.12}}@keyframes mask-up{0%{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes grow-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes rule-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes hero-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-rise-opaque{0%{transform:translateY(24px)scale(.985)}to{transform:translateY(0)scale(1)}}@keyframes hero-dissolve{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(40px)scale(.985)}}@keyframes parallax-y{0%{transform:translateY(-7%)}to{transform:translateY(7%)}}@keyframes mesh-drift{0%{transform:translate(0)scale(1)rotate(0)}50%{transform:translate(2.5%,-2%)scale(1.08)rotate(3deg)}to{transform:translate(-2%,2.5%)scale(1.04)rotate(-2deg)}}@keyframes breathe{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}@keyframes marquee-x{0%{transform:translate(0)}to{transform:translate(-50%)}}@media print{.rise,.rise-scale,.rise-fade,.slide-in,.stagger>*,.hero-in,.mask-reveal>*,.metric-reveal>*{opacity:1!important;animation:none!important;transform:none!important}.grow-line,.rule-draw{animation:none!important;transform:scaleX(1)scaleY(1)!important}.progress-bar,.mesh{display:none!important}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.mesh{opacity:.35}}.pin-col{align-self:start;position:sticky;top:6rem}.gallery{overflow:hidden}.gallery__track{will-change:transform;gap:1.25rem;width:max-content;display:flex}.char-stagger>span{will-change:transform,opacity;display:inline-block}.cursor-glow{z-index:0;pointer-events:none;opacity:0;background:radial-gradient(circle,rgb(var(--color-accent-rgb) / .16),transparent 66%);filter:blur(36px);width:26rem;height:26rem;transform:translate3d(var(--mx,50vw),var(--my,50vh),0);transition:opacity .6s var(--ease-out-soft);border-radius:50%;margin:-13rem 0 0 -13rem;position:fixed;top:0;left:0}@media(pointer:fine)and (prefers-reduced-motion:no-preference){html.has-pointer .cursor-glow{opacity:1}}@media(prefers-reduced-motion:no-preference){.char-stagger>span{animation:char-up .76s var(--ease-out-soft) both}@supports (animation-timeline:view()){.gallery__track{animation:linear both gallery-x;animation-timeline:view();animation-range:cover}.pin-progress-y{transform-origin:top;animation:linear both grow-y;animation-timeline:view();animation-range:contain}}}@keyframes char-up{0%{opacity:0;transform:translateY(.8em)rotate(3deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes gallery-x{0%{transform:translate(2%)}to{transform:translate(-32%)}}@media print{.char-stagger>span,.gallery__track{opacity:1!important;animation:none!important;transform:none!important}.cursor-glow{display:none!important}}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.tilt{--px:.5;--py:.5;transform-style:preserve-3d;transition:transform .42s var(--ease-out-soft),box-shadow .42s var(--ease-out-soft),border-color .42s var(--ease-out-soft)}.tilt:hover{transform:perspective(1200px) rotateY(calc((var(--px) - .5) * 5deg)) rotateX(calc((var(--py) - .5) * -4deg)) translateY(-6px);border-color:rgb(var(--color-accent-rgb) / .4);box-shadow:0 2px 6px #2f8f8a14,0 28px 60px -18px #2f8f8a42}.tilt:before{content:"";z-index:0;border-radius:inherit;opacity:0;transition:opacity .42s var(--ease-out-soft);background:radial-gradient(22rem 22rem at calc(var(--px) * 100%) calc(var(--py) * 100%),rgb(var(--color-accent-rgb) / .11),transparent 62%);position:absolute;inset:0}.tilt:hover:before{opacity:1}.tilt__zone{display:none}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.wipe{animation:linear both wipe-up;animation-timeline:view();animation-range:entry 5% cover 34%}.track-in{animation:linear both track-tighten;animation-timeline:view();animation-range:entry cover 40%}}}@keyframes wipe-up{0%{clip-path:inset(14% 0 0 round 1rem);opacity:0;transform:translateY(24px)scale(.985)}to{clip-path:inset(0 round 1rem);opacity:1;transform:translateY(0)scale(1)}}@keyframes track-tighten{0%{letter-spacing:.04em;opacity:.35}to{letter-spacing:-.01em;opacity:1}}.press{transition:transform .14s var(--ease-out-soft),filter .14s var(--ease-out-soft)}.press:active{filter:brightness(.96);transform:scale(.972)}@media print{.wipe,.track-in{opacity:1!important;clip-path:none!important;animation:none!important;transform:none!important}}.portrait-frame{isolation:isolate;display:inline-block;position:relative}.portrait-img{z-index:1;aspect-ratio:1;object-fit:cover;background:var(--color-veil);width:clamp(11.875rem,40vw,16.25rem);height:auto;box-shadow:var(--shadow-card);border-radius:1.25rem;display:block;position:relative}.portrait-rule{z-index:0;border:1px solid var(--color-ink);opacity:.28;transition:transform var(--dur-slow) var(--ease-out-soft),opacity var(--dur-slow) var(--ease-out-soft);border-radius:1.25rem;position:absolute;inset:0;transform:translate(14px,14px)}@media(min-width:1024px){.portrait-img{width:21.25rem}.portrait-rule{transform:translate(18px,18px)}}@media(hover:hover){.portrait-frame:hover .portrait-rule{opacity:.45;transform:translate(6px,6px)}}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.portrait-rule{animation:portrait-rule-in var(--dur-slow) var(--ease-out-soft) .62s both}}}@keyframes portrait-rule-in{0%{opacity:0;transform:translate(0)}}.timeline{gap:0;margin:0;padding:0;list-style:none;display:grid}.timeline__item{grid-template-columns:1.75rem 1fr;padding-bottom:2.75rem;display:grid;position:relative}.timeline__axis{grid-column:1;width:1.75rem;position:relative}.timeline__track,.timeline__fill{width:1px;position:absolute;top:0;bottom:-2.75rem;left:3px}.timeline__item:last-child .timeline__track,.timeline__item:last-child .timeline__fill{height:1.5rem;bottom:auto}.timeline__track{background:var(--color-line)}.timeline__fill{background:var(--color-accent);transform-origin:top}.timeline__node{background:var(--color-paper);width:7px;height:7px;box-shadow:0 0 0 1.5px var(--color-accent);border-radius:50%;position:absolute;top:.5rem;left:0}.timeline__arrow{display:none}.timeline__body{grid-column:2;padding-bottom:.5rem}@media(min-width:900px){.timeline{grid-auto-columns:1fr;grid-auto-flow:column;gap:2.5rem}.timeline__item{grid-template-rows:2.25rem auto;grid-template-columns:1fr;padding-bottom:0}.timeline__axis{grid-area:1/1;width:auto;height:2.25rem}.timeline__track,.timeline__fill{width:auto;height:1px;inset:3px -3.75rem auto 0}.timeline__item:last-child .timeline__track,.timeline__item:last-child .timeline__fill{height:1px;right:0}.timeline__fill{transform-origin:0}.timeline__node{top:0;left:0}.timeline__arrow{border-top:1px solid var(--color-accent);border-right:1px solid var(--color-accent);width:7px;height:7px;display:block;position:absolute;top:0;right:-1px;transform:rotate(45deg)}.timeline__body{grid-area:2/1;padding-right:.5rem}}.timeline__year{font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:-.01em;color:var(--color-ink);font-weight:600;display:block}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.timeline__fill{animation:linear both tl-fill-x;animation-timeline:view();animation-range:entry 12% cover 42%;transform:scaleX(0)}@media(max-width:899px){.timeline__fill{animation-name:tl-fill-y;transform:scaleY(0)}}.timeline__node{animation:tl-node var(--dur-base) var(--ease-out-expo) both;animation-timeline:view();animation-range:entry 14% cover 30%}.timeline__body{animation:tl-body var(--dur-slow) var(--ease-out-soft) both;animation-timeline:view();animation-range:entry 10% cover 34%}}}@keyframes tl-fill-x{to{transform:scale(1)}}@keyframes tl-fill-y{to{transform:scale(1)}}@keyframes tl-node{0%{box-shadow:0 0 0 1.5px var(--color-line);transform:scale(0)}to{box-shadow:0 0 0 1.5px var(--color-accent);transform:scale(1)}}@keyframes tl-body{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@supports not (animation-timeline:view()){.timeline__fill{transform:none}}@media(prefers-reduced-motion:reduce){.timeline__fill{animation:none!important;transform:none!important}}@media print{.timeline__fill{transform:none!important}}.showcase{position:relative}.showcase__stage{gap:4rem;display:grid}.sc{align-items:center;gap:2rem;display:grid}@media(min-width:900px){.sc{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:3.5rem}}.sc__media{border:1px solid var(--color-line);background:var(--color-card);box-shadow:var(--shadow-card);border-radius:1.25rem;overflow:hidden}.sc__video{aspect-ratio:16/9;object-fit:cover;background:var(--color-veil);width:100%;height:auto;display:block}.sc__mask{overflow:hidden}.showcase__rail{display:none}.kb{gap:.625rem;padding:1.5rem;display:grid}.kb__row{border:1px solid var(--color-line);background:var(--color-paper);font-size:var(--text-sm);border-radius:.75rem;grid-template-columns:4.5rem 1fr auto;align-items:center;gap:.75rem;padding:.75rem .875rem;display:grid}.kb__tag{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.04em;color:var(--color-ink);font-weight:600}.kb__desc{color:var(--color-ink-soft)}.kb__path{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-faint);white-space:nowrap}.kb__row--hard{border-color:#c8aa81}@supports (color:color-mix(in lab,red,red)){.kb__row--hard{border-color:color-mix(in oklab,var(--color-accent) 45%,var(--color-line))}}.kb__row--hard .kb__path{color:var(--color-accent-deep);font-weight:600}.kb__note{font-size:var(--text-2xs);color:var(--color-ink-faint);margin-top:.25rem;line-height:1.7}@supports (animation-timeline:view()){@media(min-width:900px)and (prefers-reduced-motion:no-preference){.showcase__track{view-timeline-name:--sc;view-timeline-axis:block;height:340vh}.showcase__pin{height:100vh;position:sticky;top:0;overflow:hidden}.showcase__stage{height:68vh;min-height:30rem;display:block;position:relative}.sc{align-content:center;animation:linear both sc-card;animation-timeline:--sc;position:absolute;inset:0}.sc:first-child{animation-range:contain contain 34%}.sc:nth-child(2){animation-range:contain 33% contain 67%}.sc:nth-child(3){animation-range:contain 66%}.sc:first-child{animation-name:sc-card-first}.sc:nth-child(3){animation-name:sc-card-last}.sc__title,.sc__lede{animation:linear both sc-slide;animation-timeline:--sc;display:block}.sc:first-child .sc__title,.sc:first-child .sc__lede{animation:none}.sc:nth-child(2) .sc__title,.sc:nth-child(2) .sc__lede{animation-range:contain 35% contain 47%}.sc:nth-child(3) .sc__title,.sc:nth-child(3) .sc__lede{animation-range:contain 68% contain 80%}.sc__lede{opacity:.999;animation-delay:0s}.showcase__rail{grid-auto-columns:1fr;grid-auto-flow:column;gap:.5rem;margin:2.5rem 0 0;padding:0;list-style:none;display:grid}.showcase__seg{background:var(--color-line);border-radius:2px;height:2px;overflow:hidden}.showcase__segfill{background:var(--color-accent);transform-origin:0;height:100%;animation:linear both sc-seg;animation-timeline:--sc;display:block;transform:scaleX(0)}.showcase__seg:first-child .showcase__segfill{animation-range:contain contain 34%}.showcase__seg:nth-child(2) .showcase__segfill{animation-range:contain 33% contain 67%}.showcase__seg:nth-child(3) .showcase__segfill{animation-range:contain 66%}}}@keyframes sc-card{0%{opacity:0;transform:translateY(26px)scale(.985)}14%{opacity:1;transform:none}86%{opacity:1;transform:none}to{opacity:0;transform:translateY(-18px)scale(.99)}}@keyframes sc-card-first{0%{opacity:1;transform:none}86%{opacity:1;transform:none}to{opacity:0;transform:translateY(-18px)scale(.99)}}@keyframes sc-card-last{0%{opacity:0;transform:translateY(26px)scale(.985)}14%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes sc-slide{0%{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes sc-seg{to{transform:scaleX(1)}}.site-nav{padding-top:.55rem}.np{--nav-fg:#1c1917;--nav-fg-soft:#57534e;border:1px solid var(--color-line-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);max-width:72rem;height:3.1rem;box-shadow:var(--shadow-card);color:var(--nav-fg);background:#ffffff9e;border-radius:9999px;justify-content:space-between;align-items:center;margin-inline:auto;padding-inline:1.1rem .55rem;display:flex}.np__brand{color:var(--nav-fg)}.np__cn{color:var(--nav-fg-soft)}.nav-link{color:var(--nav-fg-soft);transition:color var(--dur-fast) var(--ease-out-soft)}.nav-link:hover,.nav-link--on{color:var(--nav-fg)}.nav-link--on{font-weight:600}@media(prefers-reduced-motion:no-preference){.site-nav{animation:nav-in .7s var(--ease-out-soft) .12s both}}@keyframes nav-in{0%{opacity:0;transform:translateY(-16px)}}@supports (animation-timeline:scroll()){@media(prefers-reduced-motion:no-preference){.np{animation:linear both nav-island;animation-timeline:scroll(root);animation-range:30px 200px}}}@keyframes nav-island{30%{background:rgb(var(--color-ink-rgb) / .82);--nav-fg:#fafaf9;--nav-fg-soft:#d6d3d1;border-color:#0000}to{background:rgb(var(--color-ink-rgb) / .93);--nav-fg:#fafaf9;--nav-fg-soft:#d6d3d1;border-color:#0000;max-width:42rem;height:2.8rem;margin-top:.35rem;box-shadow:0 2px 4px #1c19171f,0 18px 44px -14px #1c191761}}.shine{position:relative;overflow:hidden}.shine:after{content:"";z-index:3;pointer-events:none;background:linear-gradient(105deg,#0000 42%,#ffffff52,#0000 58%);position:absolute;inset:0;transform:translate(-130%)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.shine:hover:after{transition:transform .52s var(--ease-out-soft);transform:translate(130%)}}.timeline__item:last-child .timeline__node:after{content:"";border:1px solid var(--color-accent);opacity:0;border-radius:50%;position:absolute;inset:-5px}@media(prefers-reduced-motion:no-preference){.timeline__item:last-child .timeline__node:after{animation:node-ping 2.6s var(--ease-out-soft) infinite}}@keyframes node-ping{0%{opacity:.55;transform:scale(.5)}70%{opacity:0;transform:scale(1.25)}to{opacity:0;transform:scale(1.25)}}.icon-lift svg{transition:transform var(--dur-fast) var(--ease-out-expo)}@media(hover:hover){.icon-lift:hover svg{transform:translateY(-2px)rotate(-4deg)}}.arch{--gap:26px;--plate-w:230px;--plate-h:144px;gap:1.5rem 0;margin:0;display:grid}@media(min-width:900px){.arch{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:center;gap:0 1.25rem}}@property --gap{syntax:"<length>";inherits:true;initial-value:26px}.arch__scene{perspective:1100px;perspective-origin:50% 42%;min-height:calc(var(--plate-h) + var(--layers) * 26px);place-items:center;padding:.5rem 0;display:grid}.arch__stack{transform-style:preserve-3d;width:var(--plate-w);height:var(--plate-h);position:relative;transform:rotateX(52deg)rotate(-40deg)}.arch__layer{transform-style:preserve-3d;transform:translateZ(calc((var(--layers) - 1 - var(--i)) * var(--gap)));position:absolute;inset:0}.arch__plate{border:1px solid rgb(var(--color-ink-rgb) / .34);background:linear-gradient(135deg,var(--color-card),#f6f5f4);border-radius:3px;position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.arch__plate{background:linear-gradient(135deg,var(--color-card),color-mix(in oklab,var(--color-veil) 82%,var(--color-card)))}}.arch__plate{box-shadow:6px 8px 16px -8px rgb(var(--color-ink-rgb) / .42)}.arch__edge{background:rgb(var(--color-ink-rgb) / .12);border-radius:3px;position:absolute;inset:0;transform:translateZ(-4px)}.arch__layer.is-key .arch__plate{border-color:var(--color-accent);background:linear-gradient(135deg,rgb(var(--color-accent-wash-rgb) / .96),#f4ece3);background:linear-gradient(135deg,rgb(var(--color-accent-wash-rgb) / .96),#f4ece1)}@supports (color:color-mix(in lab,red,red)){.arch__layer.is-key .arch__plate{background:linear-gradient(135deg,rgb(var(--color-accent-wash-rgb) / .96),color-mix(in oklab,var(--color-accent) 12%,var(--color-card)))}}.arch__layer.is-key .arch__plate{box-shadow:0 0 0 1px rgb(var(--color-accent-rgb) / .35)}.arch__layer.is-key .arch__edge{background:rgb(var(--color-accent-rgb) / .3)}.arch__conduit{background:rgb(var(--color-ink-rgb) / .22);transform-origin:50%;width:2px;height:2px;transform:translateZ(calc((var(--layers) - 1) * var(--gap) / 2)) scaleZ(calc((var(--layers) - 1) * var(--gap) / 2));margin:-1px 0 0 -1px;position:absolute;top:50%;left:50%}.arch__pulse{background:var(--color-accent);width:7px;height:7px;box-shadow:0 0 0 3px rgb(var(--color-accent-rgb) / .22);opacity:0;border-radius:50%;margin:-3.5px 0 0 -3.5px;position:absolute;top:50%;left:50%}.arch__legend{flex-direction:column;gap:.875rem;margin:0;padding:0;list-style:none;display:flex}.arch__item{font-size:var(--text-sm);padding-left:1.75rem;line-height:1.6;position:relative}.arch__item b{font-size:var(--text-base);color:var(--color-ink);letter-spacing:-.01em;font-weight:650;display:block}.arch__item span{color:var(--color-ink-soft)}.arch__item.is-key b{color:var(--color-accent-deep)}.arch__lead{background:var(--color-line);transform-origin:0;width:1.1rem;height:1px;position:absolute;top:.62em;left:0}.arch__lead:after{content:"";border:1px solid var(--color-line);background:var(--color-paper);border-radius:50%;width:5px;height:5px;position:absolute;top:-2px;right:-2px}.arch__item.is-key .arch__lead{background:var(--color-accent)}.arch__item.is-key .arch__lead:after{border-color:var(--color-accent);background:var(--color-accent)}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.arch{animation:linear both arch-open;animation-timeline:view();animation-range:entry 12% cover 42%}.arch__stack{animation:linear both arch-turn;animation-timeline:view();animation-range:entry 10% cover 55%}.arch__layer{animation:arch-layer-in var(--dur-slow) var(--ease-out-soft) both;animation-timeline:view();animation-range:entry 14% cover 40%;animation-delay:calc(var(--i) * -40ms)}.arch__pulse{animation:arch-pulse 2.8s var(--ease-out-soft) infinite}.arch__lead{animation:linear both arch-lead;animation-timeline:view();animation-range:entry 18% cover 44%}.arch__item b,.arch__item span{animation:linear both arch-item-in;animation-timeline:view();animation-range:entry calc(14% + var(--i) * 4%) entry calc(58% + var(--i) * 4%)}}}@keyframes arch-open{0%{--gap:4px}to{--gap:26px}}@keyframes arch-turn{0%{transform:rotateX(64deg)rotate(-52deg)}to{transform:rotateX(52deg)rotate(-40deg)}}@keyframes arch-layer-in{0%{opacity:0}to{opacity:1}}@keyframes arch-pulse{0%{opacity:0;transform:translateZ(calc((var(--layers) - 1) * var(--gap)))}8%{opacity:1}82%{opacity:1}to{opacity:0;transform:translateZ(0)}}@keyframes arch-lead{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes arch-item-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}@media(max-width:899px){.arch{--plate-w:150px;--plate-h:94px;--gap:20px}@keyframes arch-open{0%{--gap:4px}to{--gap:20px}}}@media print{.arch__pulse{display:none}}.arch__no{font-family:var(--font-mono);color:rgb(var(--color-ink-rgb) / .45);transform-origin:100% 100%;font-size:11px;font-weight:700;position:absolute;bottom:6px;right:8px;transform:rotate(40deg)rotateX(-52deg)translateZ(1px)}.arch__layer.is-key .arch__no{color:var(--color-accent-deep)}.arch__num{width:1.15rem;font-family:var(--font-mono);color:var(--color-ink-faint);text-align:center;font-size:11px;font-weight:700;position:absolute;top:.1em;left:0}.arch__item.is-key .arch__num{color:var(--color-accent-deep)}.arch__lead{width:.55rem;left:1.15rem}.arch__item{padding-left:2.1rem}.portrait-frame{perspective:900px;perspective-origin:50%}.portrait-frame>picture,.portrait-frame>.portrait-rule{transform-style:preserve-3d}@media(hover:hover)and (prefers-reduced-motion:no-preference){.has-pointer .portrait-frame{--rx:calc((var(--py,.5) - .5) * -7deg);--ry:calc((var(--px,.5) - .5) * 9deg)}.has-pointer .portrait-frame>picture{transform:rotateX(var(--rx)) rotateY(var(--ry)) translateZ(26px);transition:transform .26s var(--ease-out-soft);display:block}.has-pointer .portrait-frame>.portrait-rule{transform:rotateX(var(--rx)) rotateY(var(--ry)) translate3d(14px,14px,-18px);transition:transform .38s var(--ease-out-soft)}.has-pointer .portrait-frame:after{content:"";pointer-events:none;z-index:2;background:radial-gradient(42% 42% at calc(var(--px,.5) * 100%) calc(var(--py,.5) * 100%),#ffffff8c,transparent 70%);mix-blend-mode:soft-light;transform:rotateX(var(--rx)) rotateY(var(--ry)) translateZ(40px);transition:transform .2s var(--ease-out-soft);border-radius:1.25rem;position:absolute;inset:0}}.trace{width:100%;height:auto;display:block;overflow:visible}.trace__line{fill:none;stroke:var(--color-line);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.trace__live{fill:none;stroke:rgb(var(--color-accent-rgb) / .72);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.trace__node{fill:var(--color-paper);stroke:var(--color-line);stroke-width:1.5px}.trace__node--key{fill:var(--color-accent);stroke:var(--color-accent)}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.trace__live{animation:linear both trace-draw;animation-timeline:view();animation-range:entry 20% cover 50%}.trace__dot{offset-path:var(--trace-path);offset-rotate:0deg;animation:trace-run 3.2s var(--ease-out-soft) infinite}}}@keyframes trace-draw{to{stroke-dashoffset:0}}@keyframes trace-run{0%{offset-distance:0%;opacity:0}6%{opacity:1}88%{opacity:1}to{offset-distance:100%;opacity:0}}@supports not (animation-timeline:view()){.trace__live{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.trace__live{stroke-dashoffset:0!important;animation:none!important}.trace__dot{display:none}}@supports (animation-timeline:view()){@media(min-width:900px)and (prefers-reduced-motion:no-preference){.showcase__stage{perspective:1600px;perspective-origin:50% 45%;transform-style:preserve-3d}.sc{transform-style:preserve-3d}.sc:first-child{animation-name:sc-z-first}.sc:nth-child(2){animation-name:sc-z-mid}.sc:nth-child(3){animation-name:sc-z-last}}}@keyframes sc-z-first{0%{opacity:1;filter:blur();transform:translateZ(0)}86%{opacity:1;filter:blur();transform:translateZ(0)}to{opacity:0;filter:blur(6px);transform:translateZ(170px)translateY(-14px)}}@keyframes sc-z-mid{0%{opacity:0;filter:blur(8px);transform:translateZ(-420px)translateY(30px)}16%{opacity:1;filter:blur();transform:translateZ(0)}86%{opacity:1;filter:blur();transform:translateZ(0)}to{opacity:0;filter:blur(6px);transform:translateZ(170px)translateY(-14px)}}@keyframes sc-z-last{0%{opacity:0;filter:blur(8px);transform:translateZ(-420px)translateY(30px)}16%{opacity:1;filter:blur();transform:translateZ(0)}to{opacity:1;filter:blur();transform:translateZ(0)}}.seq{grid-auto-columns:1fr;grid-auto-flow:column;gap:1rem;margin:2.25rem 0 0;padding:0;list-style:none;display:grid;position:relative}.seq__line{border-top:1px dashed var(--color-line);position:absolute;top:52px;left:4%;right:4%}.seq__step{text-align:center;flex-direction:column;align-items:center;padding:0 .25rem;display:flex;position:relative}.seq__tag{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.08em;color:var(--color-ink-faint);height:16px}.seq__dot{background:var(--color-veil);border:1px solid var(--color-line);width:52px;height:52px;color:var(--color-ink-soft);box-shadow:0 0 0 6px var(--color-paper);z-index:1;border-radius:50%;place-items:center;margin-top:10px;display:grid;position:relative}.seq__name{font-size:var(--text-sm);color:var(--color-ink);letter-spacing:-.01em;margin-top:14px;font-weight:650}.seq__note{font-size:var(--text-2xs);color:var(--color-ink-faint);max-width:17ch;margin-top:5px;line-height:1.65}.seq__step.is-key .seq__dot{background:var(--color-accent-wash);border-color:var(--color-accent);color:var(--color-accent-deep)}.seq__step.is-key .seq__name{color:var(--color-accent-deep)}.sc__foot{border-top:1px solid var(--color-line-soft);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-top:2.25rem;padding-top:1.5rem;display:flex}.seq__metrics{gap:3rem;margin:0;display:flex}.seq__n{font-family:var(--font-mono);font-size:var(--text-2xl);color:var(--color-ink);margin:0;font-weight:700;line-height:1}.seq__l{font-size:var(--text-xs);color:var(--color-ink-soft);margin-top:.45rem}@media(max-width:899px){.seq{grid-auto-columns:auto;grid-auto-flow:row;gap:1.1rem}.seq__line{border-top:0;border-left:1px dashed var(--color-line);inset:8px auto 8px 25px}.seq__step{text-align:left;grid-template-columns:52px 1fr;grid-template-areas:"dot name""dot note";align-items:start;gap:2px 14px;padding:0;display:grid}.seq__tag{display:none}.seq__dot{grid-area:dot;width:44px;height:44px;margin-top:0}.seq__name{grid-area:name;margin-top:4px}.seq__note{grid-area:note;max-width:none;margin-top:0}.seq__metrics{gap:2rem}}@supports (animation-timeline:view()){@media(min-width:900px)and (prefers-reduced-motion:no-preference){.sc .seq__step{animation:linear both seq-in;animation-timeline:--sc}.sc:first-child .seq__step{animation-range:contain calc(2% + var(--i) * 1.5%) contain calc(10% + var(--i) * 1.5%)}.sc:nth-child(2) .seq__step{animation-range:contain calc(35% + var(--i) * 1.5%) contain calc(43% + var(--i) * 1.5%)}.sc:nth-child(3) .seq__step{animation-range:contain calc(68% + var(--i) * 1.5%) contain calc(76% + var(--i) * 1.5%)}}}@keyframes seq-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.seq--page .seq__step{animation:linear both seq-in;animation-timeline:view();animation-range:entry calc(8% + var(--i) * 4%) cover calc(20% + var(--i) * 4%)}.seq--page .seq__line{transform-origin:0;animation:linear both seq-line-draw;animation-timeline:view();animation-range:entry 10% cover 32%}@media(max-width:899px){.seq--page .seq__line{transform-origin:top;animation-name:seq-line-draw-y}}}}@keyframes seq-line-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes seq-line-draw-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.idsw{align-items:baseline;gap:.3rem;display:inline-flex}.idsw__win{vertical-align:bottom;height:1.5em;display:inline-block;overflow:hidden}.idsw__list{display:block}.idsw__list>span{height:1.5em;color:var(--color-ink);white-space:nowrap;font-weight:600;line-height:1.5em;display:block}@media(prefers-reduced-motion:no-preference){.idsw__list{animation:idsw-roll 13.75s var(--ease-out-expo) infinite}}@keyframes idsw-roll{0%,15.6%{transform:translateY(0)}20%,35.6%{transform:translateY(-16.667%)}40%,55.6%{transform:translateY(-33.333%)}60%,75.6%{transform:translateY(-50%)}80%,95.6%{transform:translateY(-66.667%)}to{transform:translateY(-83.333%)}}.path-link{border:1px solid var(--color-line);color:var(--color-ink-soft);background:rgb(var(--color-card-rgb) / .55);transition:border-color var(--dur-fast) var(--ease-out-expo),color var(--dur-fast) var(--ease-out-expo),transform var(--dur-fast) var(--ease-out-expo);border-radius:999px;align-items:center;gap:.45rem;padding:.5rem 1.05rem;display:inline-flex}@media(hover:hover){.path-link:hover{border-color:var(--color-ink);color:var(--color-ink);transform:translateY(-2px)}}.cut{isolation:isolate;display:inline-block;position:relative}.cut__halo{z-index:0;aspect-ratio:1;background:radial-gradient(closest-side,rgb(var(--color-accent-rgb) / .16),rgb(var(--color-veil-rgb) / .8) 58%,transparent 72%);filter:blur(10px);border-radius:50%;width:114%;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.cut__pic{z-index:1;display:block;position:relative}.cut__img{width:clamp(15rem,42vw,23.75rem);height:auto;display:block;-webkit-mask-image:linear-gradient(#000 62%,#00000080 84%,#0000 100%);mask-image:linear-gradient(#000 62%,#00000080 84%,#0000)}.darts{z-index:2;pointer-events:none;margin:0;padding:0;list-style:none;position:absolute;inset:-4% -2% -4% -8%}.dart-slot{width:0;height:0;position:absolute}.dart-slot--1 .dart,.dart-slot--3 .dart,.dart-slot--5 .dart{left:0}.dart-slot--2 .dart,.dart-slot--4 .dart,.dart-slot--6 .dart{right:0}.dart-slot .dart+.dart{opacity:0}.dart{white-space:nowrap;font-size:var(--text-2xs);color:var(--color-ink-soft);background:rgb(var(--color-card-rgb) / .88);border:1px solid var(--color-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;align-items:center;gap:.4rem;padding:.38rem .8rem;display:inline-flex;position:absolute;top:0;box-shadow:0 6px 16px -8px #1c191759}.dart>span{color:var(--color-accent-deep);display:inline-flex}.dart-slot--1{top:6%;left:0}.dart-slot--2{top:20%;right:0}.dart-slot--3{top:44%;left:2%}.dart-slot--4{top:58%;right:4%}.dart-slot--5{top:76%;left:0}.dart-slot--6{top:90%;right:10%}@media(prefers-reduced-motion:no-preference){.dart-slot{animation:dart-in .62s var(--ease-out-expo) backwards;animation-delay:calc(1.1s + var(--i) * .12s)}.dart-slot--1,.dart-slot--3,.dart-slot--5{--from-x:-46px;--tilt:-7deg}.dart-slot--2,.dart-slot--4,.dart-slot--6{--from-x:46px;--tilt:6deg}.dart-slot.is-swap .dart{animation:16s linear infinite dart-swap;animation-delay:calc(var(--j) * -8s - var(--i) * 2.3s)}}@keyframes dart-in{0%{opacity:0;transform:translate(var(--from-x,0),10px) rotate(var(--tilt,0)) scale(.9)}to{opacity:1;transform:none}}@keyframes dart-swap{0%,38%{opacity:1;transform:none}44%{opacity:0;transform:translate(calc(var(--from-x,0px) * .32),-3px) scale(.96)}94%{opacity:0;transform:translate(calc(var(--from-x,0px) * .32),3px) scale(.96)}to{opacity:1;transform:none}}@media(hover:hover){.darts{pointer-events:auto}.dart-slot{transition:transform var(--dur-fast) var(--ease-out-expo)}.dart-slot:hover{transform:translateY(-3px)}.dart{transition:border-color var(--dur-fast) var(--ease-out-expo)}.dart-slot:hover .dart{border-color:var(--color-accent)}}@media(max-width:1023px){.dart-slot--2,.dart-slot--4,.dart-slot--6{display:none}.darts{inset:-3% -6% -3% 0}.dart-slot--1{top:4%;left:2%}.dart-slot--3{top:46%;left:6%}.dart-slot--5{top:84%;left:0}}.ex-list{flex-direction:column;gap:4.5rem;display:flex}.ex{align-items:center;gap:1.75rem;display:grid}@media(min-width:900px){.ex{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:3.5rem}.ex--nomedia{grid-template-columns:minmax(0,1fr)}.ex--nomedia .ex__text{max-width:46rem}}.ex__title{font-weight:600;line-height:1.3}.ex__status{font-size:var(--text-2xs);white-space:nowrap;border-radius:999px;align-items:center;padding:.18rem .6rem;font-weight:600;display:inline-flex}.ex__statusnote{opacity:.78;font-weight:400}.ex__status--live{background:rgb(var(--color-accent-rgb) / .12);color:var(--color-accent-deep)}.ex__status--wip{background:rgb(var(--color-ink-rgb) / .07);color:var(--color-ink-soft)}.ex__status--demo{background:rgb(var(--color-veil-rgb) / .9);color:var(--color-ink-faint);border:1px dashed var(--color-line)}.ex__meta{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-faint);margin-top:.7rem}.ex__lede{font-size:var(--text-sm);color:var(--color-ink-soft);margin-top:.9rem;line-height:1.8}.ex__did{gap:.55rem;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.ex__did li{font-size:var(--text-sm);color:var(--color-ink-soft);padding-left:1.15rem;line-height:1.75;position:relative}.ex__did li:before{content:"";background:var(--color-line);width:.5rem;height:1px;position:absolute;top:.82em;left:0}.ex__tags{flex-wrap:wrap;gap:.4rem;margin-top:1.25rem;display:flex}.ex__tags span{border:1px solid var(--color-line);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-soft);border-radius:999px;padding:.22rem .65rem}.ex__nums{border-top:1px dashed var(--color-line);flex-wrap:wrap;gap:.75rem 1.35rem;margin:1.4rem 0 0;padding:1.1rem 0 0;list-style:none;display:flex}.ex__nums li{border-left:1px solid var(--color-line);flex-direction:column;gap:.12rem;padding-left:.95rem;display:flex}.ex__nums b{font-family:var(--font-mono);color:var(--color-ink);font-size:1.02rem}.ex__nums span{font-size:var(--text-2xs);color:var(--color-ink-faint)}.ex__media{margin:0}.ex__frame{aspect-ratio:16/10;border:1px solid var(--color-line);background:var(--color-card);box-shadow:var(--shadow-card);border-radius:1.25rem;position:relative;overflow:hidden}.ex__frame img{width:100%;height:100%;display:block}.ex__media figcaption{font-size:var(--text-2xs);color:var(--color-ink-faint);margin-top:.55rem}.ex__media[data-frame=wide] img{object-fit:cover;object-position:center}.ex__media[data-frame=page] img{object-fit:cover;object-position:top}.ex__media[data-frame=page] .ex__frame:after{content:"";background:linear-gradient(to bottom,rgb(var(--color-card-rgb) / 0),var(--color-card));pointer-events:none;height:28%;position:absolute;inset:auto 0 0}.ex__media[data-frame=doc] .ex__frame,.ex__media[data-frame=device] .ex__frame{background:var(--color-veil)}.ex__media[data-frame=doc] img,.ex__media[data-frame=device] img{object-fit:contain;filter:drop-shadow(0 6px 18px rgb(var(--color-ink-rgb) / .16));padding:.7rem}@media(max-width:480px){.ex-list{gap:3.25rem}.ex__frame{border-radius:1rem}}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.ex{animation:linear both ex-in;animation-timeline:view();animation-range:entry 6% entry 42%}}}@keyframes ex-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}:root{--portfolio-brass:#b8892e;--portfolio-blue:#536b7f}.portfolio-container{width:min(100% - 2rem,72rem);margin-inline:auto}.portfolio-eyebrow{color:var(--color-ink-soft);letter-spacing:.13em;margin:0 0 .9rem;font-size:.75rem}.portfolio-section-heading{justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:2.5rem;display:flex}.portfolio-section-heading h2{font-size:clamp(1.55rem,3vw,2.25rem)}.portfolio-section-heading p:not(.portfolio-eyebrow){max-width:40rem;color:var(--color-ink-soft);margin-top:.8rem;font-size:.95rem}.portfolio-section-link{min-height:44px;color:var(--color-ink);text-underline-offset:.35em;flex:none;align-items:center;gap:.8rem;font-size:.9rem;text-decoration:underline;display:inline-flex}.portfolio-button{border:1px solid var(--color-ink);min-height:46px;color:var(--color-paper);background:var(--color-ink);border-radius:.5rem;justify-content:center;align-items:center;gap:.8rem;padding:.65rem 1.2rem;font-size:.9rem;font-weight:600;display:inline-flex}.portfolio-button--secondary{color:var(--color-ink);border-color:var(--color-line);background:0 0}.portfolio-button:hover{background:var(--color-ink-soft);color:#fff}.portfolio-button--secondary:hover{background:var(--color-veil);color:var(--color-ink)}.cursor-glow{contain:paint;filter:none;background:0 0;border-radius:0;width:auto;height:auto;margin:0;inset:0;overflow:hidden;transform:none}.cursor-glow:before{content:"";background:radial-gradient(circle,rgb(var(--color-accent-rgb) / .16),transparent 66%);filter:blur(36px);width:26rem;height:26rem;transform:translate3d(var(--mx,50vw),var(--my,50vh),0);border-radius:50%;margin:-13rem 0 0 -13rem;position:absolute;top:0;left:0}.restore-hero{align-items:center;min-height:88svh;padding:2rem 1rem;display:flex}.restore-hero__grid{grid-template-columns:minmax(0,1fr);gap:1.5rem;width:100%;max-width:72rem;margin-inline:auto;padding:4.7rem 1rem 4rem;display:grid}.restore-hero__identity,.restore-hero__summary{min-width:0}.restore-hero__portrait{justify-self:center}.restore-hero__intro{max-width:31rem;color:var(--color-ink-soft);font-size:1.05rem;line-height:1.9}.restore-hero__primary{min-height:46px;color:var(--color-paper);background:var(--color-ink);border-radius:999px;justify-content:center;align-items:center;gap:.8rem;padding:.65rem 1.3rem;font-size:.9rem;font-weight:600;display:inline-flex}.restore-hero__scroll{min-height:44px;color:var(--color-ink-faint);font-family:var(--font-mono);letter-spacing:.05em;justify-content:center;align-items:center;gap:.8rem;font-size:.7rem;display:inline-flex;position:absolute;bottom:2.3rem;left:0;right:0}.personal-hero__eyebrow{color:var(--color-ink-soft);font-size:.9rem}.personal-hero__name{letter-spacing:-.07em;white-space:nowrap;margin-top:.75rem;font-size:clamp(5.2rem,14vw,9rem);font-weight:700;line-height:.94}.personal-hero__period{color:var(--color-accent)}.personal-hero__identity{color:var(--color-ink-soft);align-items:center;gap:.8rem;margin-top:1.45rem;font-size:.88rem;display:flex}.personal-hero__identity>span:first-child{color:#a8a29e}.personal-hero__location{align-items:center;gap:.3rem;display:inline-flex}.personal-hero__paths{flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem;margin-top:1.8rem;display:flex}.personal-text-link{min-height:44px;color:var(--color-ink);text-decoration:underline;-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line);text-underline-offset:.35em;justify-content:space-between;align-items:center;gap:.75rem;font-size:.88rem;display:inline-flex}.personal-text-link:hover{text-decoration-color:currentColor}.personal-nav-links{align-items:center;gap:1.4rem;font-size:.85rem;display:flex}@media(min-width:640px){.restore-hero{padding:2rem}.restore-hero__grid{grid-template-columns:minmax(0,1fr) auto;gap:1.5rem 2rem;padding:5rem 2.5rem 4rem}.restore-hero__identity{grid-area:1/1;align-self:center}.restore-hero__portrait{grid-area:1/2;justify-self:end}.restore-hero__summary{grid-area:2/1/auto/-1}.restore-hero .cut__img{width:clamp(12rem,30vw,18.75rem)}}@media(min-width:1024px){.restore-hero__grid{gap:1.5rem 4rem}.restore-hero__identity{align-self:end}.restore-hero__summary{grid-area:2/1;align-self:start}.restore-hero__portrait{grid-area:1/2/3;align-self:center}.restore-hero .cut__img{width:23.75rem}.restore-hero__intro{font-size:1.1rem}}@media(max-width:599px){.personal-nav-links{gap:.8rem;font-size:.74rem}.personal-hero__paths{gap:.7rem 1rem}.restore-hero__intro{font-size:1rem}}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.restore-hero__primary{transition:transform .22s ease-out}.restore-hero__primary:hover{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.restore-hero *,.site-nav{transition:none!important;animation:none!important}.cursor-glow{display:none!important}}@media print{.restore-hero__grid,.restore-hero *{opacity:1!important;animation:none!important;transform:none!important}.site-nav,.restore-hero__scroll,.restore-hero .darts{display:none!important}}.project-section{padding-block:clamp(3.5rem,7vw,6rem)}.project-list{gap:2rem;display:grid}.project-card{border:1px solid var(--color-line);background:var(--color-card);border-radius:1rem;grid-template-rows:min-content 1fr;grid-template-columns:minmax(0,45fr) minmax(0,55fr);gap:1rem 2rem;padding:2rem;scroll-margin-top:6rem;display:grid}.project-card__evidence,.project-card__body{min-width:0}.project-card__evidence{grid-area:1/1}.project-card__body{grid-area:1/2/span 2}.project-card__evidence figure{margin:0}.project-card__frame{aspect-ratio:16/9;border:1px solid var(--color-line);background:var(--color-veil);border-radius:.5rem;display:block;position:relative;overflow:hidden}.project-card__frame img{object-fit:contain;width:100%;height:100%;display:block}.project-card__frame[data-frame=page] img{object-fit:cover;object-position:top}.project-card__frame[data-frame=doc] img,.project-card__frame[data-frame=device] img{padding:.7rem}.project-card__open{background:var(--color-ink);color:#fff;border-radius:.25rem;padding:.2rem .5rem;font-size:.7rem;position:absolute;bottom:.5rem;right:.5rem}.project-card__evidence figcaption{color:var(--color-ink-soft);margin-top:.7rem;font-size:.75rem;line-height:1.6}.project-card__topline{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-bottom:.9rem;display:flex}.project-card__period{font-family:var(--font-mono);color:var(--color-ink-soft);font-size:.72rem}.project-card__title{font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.35}.project-card__title a{text-decoration:none}.project-card__title a:hover{text-underline-offset:.15em;text-decoration:underline}.project-card__title-arrow{color:var(--color-ink-soft);margin-left:.4rem;font-size:.7em;display:inline-block}.project-card__role{color:var(--color-ink-soft);margin-top:.6rem;font-size:.78rem}.project-card__context{color:var(--color-ink-soft);margin-top:1rem;font-size:.9rem;line-height:1.8}.project-card__did{gap:.6rem;margin:1.2rem 0 0;padding:0;list-style:none;display:grid}.project-card__did li{color:var(--color-ink);padding-left:.95rem;font-size:.85rem;line-height:1.75;position:relative}.project-card__did li:before{content:"";background:var(--color-ink-soft);width:.35rem;height:1px;position:absolute;top:.85em;left:0}.project-card__stack{flex-wrap:wrap;gap:.4rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.project-card__stack li{border:1px solid var(--color-line);color:var(--color-ink-soft);font-family:var(--font-mono);border-radius:.25rem;padding:.2rem .5rem;font-size:.68rem}.project-card__scope{color:var(--color-ink-soft);grid-area:2/1;align-self:start;margin:0;font-size:.73rem;line-height:1.7}.project-card__detail{min-height:44px;color:var(--color-ink);text-underline-offset:.3em;align-items:center;gap:1rem;margin-top:.8rem;font-size:.82rem;font-weight:600;text-decoration:underline;display:inline-flex}.project-status{border-radius:.3rem;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.7rem;font-weight:600;line-height:1.5;display:inline-flex}.project-status--live{background:var(--color-ink);color:#fff}.project-status--building{color:#fff;background:var(--portfolio-blue)}.project-status--demo{color:var(--color-accent-deep);background:var(--color-accent-wash);border:1px solid var(--portfolio-brass)}.project-status__dot{background:currentColor;border-radius:50%;flex:none;width:.3rem;height:.3rem}.project-status__note{font-weight:400}.project-results{border-top:1px solid var(--color-line);margin-top:1.6rem;padding-top:1.3rem}.project-results__label{color:var(--color-ink-soft);margin:0 0 .85rem;font-size:.7rem}.project-metrics{flex-wrap:wrap;gap:1rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.project-metrics li{flex-direction:column;gap:.4rem;min-width:0;display:flex;position:relative}.project-metrics strong{letter-spacing:-.035em;color:var(--portfolio-brass);overflow-wrap:anywhere;font-size:clamp(1.45rem,2.8vw,2rem);font-weight:700;line-height:1.15}.project-metrics__label{color:var(--color-ink-soft);font-size:.7rem;line-height:1.6}.project-metrics--stages{grid-template-columns:repeat(var(--stages),minmax(0,1fr));gap:1rem;display:grid}.project-metrics--stages strong{white-space:nowrap;font-size:clamp(1.25rem,2.25vw,1.85rem)}.project-metrics__arrow{text-align:center;width:1rem;color:var(--color-ink-soft);font-size:1rem;position:absolute;top:.05rem;right:-1rem}.project-process{border-top:2px solid var(--color-ink);background:var(--color-veil);padding:1.25rem}.project-process__label{margin-bottom:1rem;font-size:.75rem;font-weight:600}.project-process__label span{color:var(--color-ink-soft);font-weight:400}.project-process ol{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.project-process li{grid-template-columns:1.6rem minmax(0,1fr);gap:.5rem;display:grid}.project-process__marker{color:var(--color-ink-soft);font-family:var(--font-mono);font-size:.72rem}.project-process strong{margin-bottom:.25rem;font-size:.83rem;display:block}.project-process li p{color:var(--color-ink-soft);font-size:.76rem;line-height:1.7}.project-process__note{border-top:1px solid var(--color-line);color:var(--color-ink-soft);margin-top:1.25rem;padding-top:.8rem;font-size:.7rem}.catalog-header{padding-block:7rem 3rem}.catalog-header h1{margin-top:1.3rem;font-size:clamp(2rem,5vw,3.5rem)}.catalog-header__intro{max-width:42rem;color:var(--color-ink-soft);margin-top:1.25rem}.catalog-nav{flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.75rem;display:flex}.catalog-nav a{text-underline-offset:.3em;align-items:center;min-height:44px;font-size:.85rem;text-decoration:underline;display:inline-flex}.catalog-group{padding-bottom:4.5rem;scroll-margin-top:6rem}.catalog-group__heading{border-top:1px solid var(--color-line);align-items:baseline;gap:.75rem;margin-bottom:1rem;padding-block:1rem;display:flex}.catalog-group__heading h2{font-size:1.2rem}.catalog-group__heading span{color:var(--color-ink-soft);font-size:.75rem}.portfolio-contact{border-top:1px solid var(--color-line);padding-block:clamp(4.5rem,8vw,7rem)}.portfolio-contact h2{font-size:clamp(1.8rem,4vw,3rem)}.portfolio-contact__intro{max-width:38rem;color:var(--color-ink-soft);margin-block:1.25rem 2rem}.portfolio-contact__links{flex-wrap:wrap;gap:1.5rem;margin-top:2.5rem;font-size:.85rem;display:flex}.portfolio-contact__colophon{color:var(--color-ink-soft);margin-top:2.5rem;font-size:.7rem}.email-contact img{max-width:100%;height:auto}.email-contact__actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.email-contact__actions[hidden]{display:none}.email-contact__actions button,.email-contact__fallback button{border:1px solid var(--color-ink);cursor:pointer;border-radius:.4rem;align-items:center;min-height:44px;padding:.5rem .85rem;font-size:.82rem;display:inline-flex}.email-contact__actions button:first-child{background:var(--color-ink);color:#fff}.email-contact__feedback{min-height:1.7em;color:var(--color-ink-soft);margin-top:.65rem;font-size:.8rem}.email-contact__fallback{max-width:26rem;margin-top:.6rem}.email-contact__fallback[hidden]{display:none}.email-contact__fallback label{gap:.4rem;font-size:.8rem;display:grid}.email-contact__fallback input{border:1px solid var(--color-ink-soft);width:100%;min-width:0;color:var(--color-ink);font:inherit;background:#fff;border-radius:.3rem;padding:.7rem}.email-contact__fallback button{margin-top:.6rem}.case-gallery{gap:2rem;display:grid}.case-gallery figure{margin:0}.case-gallery a{display:block}.case-gallery img{border:1px solid var(--color-line);border-radius:.5rem;width:100%;height:auto}.case-gallery figcaption{color:var(--color-ink-soft);margin-top:.75rem;font-size:.82rem}.case-results .project-results{border:0;margin:0;padding:0}.case-results .project-metrics{gap:1.5rem 3rem}.case-results .project-metrics--stages{gap:1.5rem}.case-results .project-metrics__arrow{right:-1.25rem}@media(max-width:899px){.project-card{grid-template-rows:none;grid-template-columns:minmax(0,1fr);gap:1.5rem;padding:1.5rem}.project-card__evidence,.project-card__body,.project-card__scope{grid-area:auto/1}.project-card__frame{max-width:100%}}@media(max-width:599px){.portfolio-section-heading{flex-direction:column;align-items:start;gap:.5rem;margin-bottom:1.75rem}.project-card{border-radius:.75rem;padding:1rem}.project-list{gap:1.5rem}.project-card__title{font-size:1.35rem}.project-metrics--stages{gap:.75rem}.project-metrics--stages[data-stage-count="5"]{grid-template-columns:minmax(0,1.25fr) repeat(4,minmax(0,1fr))}.project-metrics--stages strong{font-size:1.1875rem}.project-metrics__arrow{width:.8rem;right:-.8rem}.project-metrics--stages .project-metrics__label{text-wrap:balance;font-size:.72rem}.project-card__scope{font-size:.72rem}.case-results .project-metrics--stages{gap:.9rem}.case-results .project-metrics__arrow{right:-.85rem}}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.project-card__frame img{transition:transform .22s ease-out}.project-card__frame:hover img{transform:scale(1.025)}}@media(prefers-reduced-motion:reduce){.project-card *,.email-contact *{transition:none!important;animation:none!important}}.personal-section{padding-block:clamp(4rem,8vw,7rem)}.personal-section-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:3rem;display:flex}.personal-section-kicker{color:var(--color-ink-faint);font-family:var(--font-mono);letter-spacing:.06em;margin:0 0 1.15rem;font-size:.7rem}.personal-section-heading h2{letter-spacing:-.035em;font-size:clamp(2rem,4vw,3.1rem);line-height:1.25}.personal-section-heading>p{max-width:22rem;color:var(--color-ink-soft);font-size:.92rem;line-height:1.8}.personal-writing{border-top:1px solid var(--color-line)}.personal-reading-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.65fr);gap:clamp(2.5rem,7vw,6rem);display:grid}.personal-section-heading--aside{flex-direction:column;justify-content:start;align-items:start;gap:1.2rem;margin:0;display:flex}.personal-section-heading--aside h2{font-size:clamp(1.85rem,3.2vw,2.5rem);line-height:1.35}.personal-section-heading--aside .personal-text-link{margin-top:.25rem}.personal-note-list{border-top:1px solid var(--color-line);margin:0;padding:0;list-style:none}.personal-note-list>li{border-bottom:1px solid var(--color-line)}.personal-note-link{padding-block:1.7rem;display:block}.personal-note-link h3{text-wrap:pretty;font-size:clamp(1.1rem,2.1vw,1.45rem);font-weight:600;line-height:1.55}.personal-note-link p{color:var(--color-ink-soft);margin-top:.7rem;font-size:.88rem;line-height:1.85}.personal-note-read{color:var(--color-ink-faint);align-items:center;gap:.75rem;margin-top:.95rem;font-size:.75rem;display:inline-flex}.personal-note-link:hover h3{text-underline-offset:.3em;text-decoration:underline;text-decoration-thickness:1px}.personal-collections{background:var(--color-veil);border-block:1px solid var(--color-line)}.personal-collection-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;margin:0;padding:0;list-style:none;display:grid}.personal-collection-link{border:1px solid var(--color-line);background:var(--color-paper);border-radius:1.25rem;flex-direction:column;min-width:0;height:100%;padding:1.5rem;display:flex}.personal-collection-meta{color:var(--color-ink-faint);justify-content:space-between;align-items:center;gap:1rem;font-size:.72rem;display:flex}.personal-collection-meta svg{color:var(--color-accent-deep)}.personal-collection-link h3{letter-spacing:-.025em;margin-top:1.8rem;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:600}.personal-collection-link p{color:var(--color-ink-soft);margin:.85rem 0 1.8rem;font-size:.85rem;line-height:1.85}.personal-collection-more{border-top:1px solid var(--color-line);justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:1rem;font-size:.78rem;display:flex}.personal-collection-link:hover{border-color:#a8a29e}.personal-contact{border-top:0;padding-block:clamp(3.5rem,7vw,6rem) 2rem}.personal-contact__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:3rem;display:grid}.personal-contact h2{font-size:clamp(1.8rem,3.5vw,2.7rem)}.personal-contact .portfolio-contact__intro{margin:1rem 0 0;font-size:.92rem}.personal-contact__email{justify-self:end;width:min(100%,25rem)}.personal-contact__bottom{border-top:1px solid var(--color-line);color:var(--color-ink-soft);flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:1rem 2rem;margin-top:1rem;padding-top:1.5rem;font-size:.76rem;display:flex}.personal-contact__bottom>a:first-child{font-size:1rem;font-weight:600}.personal-contact__bottom>a:first-child span{font-size:.74rem;font-weight:400}.personal-contact__bottom a{align-items:center;min-height:44px;display:inline-flex}.personal-contact__bottom nav{align-items:center;gap:1.5rem;display:flex}.personal-note-link:focus-visible,.personal-collection-link:focus-visible{outline-offset:5px;border-radius:.4rem}@media(max-width:900px){.personal-reading-grid{grid-template-columns:minmax(0,1fr);gap:2rem}.personal-section-heading--aside{gap:1rem}.personal-desktop-break{display:none}.personal-collection-list{gap:.8rem}.personal-collection-link{padding:1.2rem}.personal-contact__grid{gap:2.5rem 1.5rem}}@media(max-width:599px){.personal-section-heading{flex-direction:column;align-items:start;gap:1rem;margin-bottom:2rem}.personal-section-heading--aside{margin-bottom:0}.personal-note-link h3{font-size:1.2rem}.personal-collection-list{grid-template-columns:minmax(0,1fr);gap:1rem}.personal-collection-link{padding:1.5rem}.personal-collection-link h3{margin-top:1.1rem}.personal-collection-link p{margin-bottom:1.2rem}.personal-contact__grid{grid-template-columns:minmax(0,1fr)}.personal-contact__email{justify-self:start}.personal-contact__bottom{gap:.7rem 1.5rem}}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.personal-collection-link{transition:transform .22s var(--ease-out-soft),border-color .22s ease}.personal-collection-link:hover{transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.personal-section *,.personal-contact *{transition:none!important;animation:none!important}}:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "PingFang SC", monospace}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:4.5rem}body{font-family:var(--font-sans);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.75}h1,h2,h3{letter-spacing:-.015em;font-weight:700;line-height:1.22}p{text-wrap:pretty}h1,h2,h3{text-wrap:balance}.tabular,time,.metric-n{font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent)}::selection{background:var(--color-ink);color:var(--color-paper)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}.card-lift{transition:transform var(--dur-base) var(--ease-out-soft),box-shadow var(--dur-base) var(--ease-out-soft),border-color var(--dur-base) var(--ease-out-soft)}@media(hover:hover){.card-lift:hover{border-color:var(--color-ink);box-shadow:var(--shadow-lift);transform:translateY(-4px)}}.link-underline{text-decoration:none;position:relative}.link-underline:after{content:"";transform-origin:100%;width:100%;height:1.5px;transition:transform var(--dur-base) var(--ease-out-soft);background:currentColor;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.link-underline:hover:after,.link-underline:focus-visible:after{transform-origin:0;transform:scaleX(1)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.np__avatar[data-astro-cid-dmqpwcec]{position:relative;display:block;width:2rem;height:2rem;flex-shrink:0;overflow:hidden;border-radius:50%;border:1px solid #c9ced2;background:#f3f1ed;transition:border-color .18s ease,box-shadow .18s ease}.np__avatar[data-astro-cid-dmqpwcec] img[data-astro-cid-dmqpwcec]{position:absolute;width:130%;max-width:none;height:auto;left:-15%;top:0}body:has(.guyu-hero) .np__avatar[data-astro-cid-dmqpwcec]{border-color:#89ddea80}.np__brand[data-astro-cid-dmqpwcec]:hover .np__avatar[data-astro-cid-dmqpwcec],.np__brand[data-astro-cid-dmqpwcec]:focus-visible .np__avatar[data-astro-cid-dmqpwcec]{border-color:#438999;box-shadow:0 0 0 2px #89ddea24}body:has(.guyu-hero) .np__brand[data-astro-cid-dmqpwcec]:hover .np__avatar[data-astro-cid-dmqpwcec],body:has(.guyu-hero) .np__brand[data-astro-cid-dmqpwcec]:focus-visible .np__avatar[data-astro-cid-dmqpwcec]{border-color:#89ddea}@media(prefers-reduced-motion:reduce){.np__avatar[data-astro-cid-dmqpwcec]{transition:none}}@view-transition{navigation:auto}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation:vt-out .22s cubic-bezier(.4,0,1,1) both}::view-transition-new(root){animation:vt-in .34s cubic-bezier(0,0,.2,1) both}}@keyframes vt-out{to{opacity:0;transform:translateY(-10px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(14px)}}
