@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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-outline-style:solid;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Inter", "SansSC", -apple-system, "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-900:oklch(21% .034 264.665);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-7xl:80rem;--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-medium:500;--tracking-tighter:-.05em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-md:.375rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", "SansSC", -apple-system, "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--default-mono-font-family:var(--font-mono);--font-zh:"SansSC", -apple-system, "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--font-display:"Inter", "SansSC", sans-serif;--font-hand:"Hand", "SansSC", cursive;--font-serif-hero:"SerifHero", "Songti SC", "Noto Serif SC", serif}}@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]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration: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{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.top-4{top:calc(var(--spacing) * 4)}.top-full{top:100%}.left-1\/2{left:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-5{margin-inline:calc(var(--spacing) * -5)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-px{margin-top:1px}.mb-1{margin-bottom:var(--spacing)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-1{height:var(--spacing)}.h-\[100dvh\]{height:100dvh}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[100dvh\]{min-height:100dvh}.min-h-full{min-height:100%}.w-1{width:var(--spacing)}.w-\[calc\(33\%-1rem\)\]{width:calc(33% - 1rem)}.w-full{width:100%}.w-sm{width:var(--container-sm)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[65ch\]{max-width:65ch}.max-w-\[1400px\]{max-width:1400px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-\[1px\]{--tw-translate-y:calc(1px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-\[0\.98\]{scale:.98}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.touch-none{touch-action:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}: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)))}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-\[1\.2rem\]{border-radius:1.2rem}.rounded-full{border-radius:2147483647px}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-ink{background-color:var(--ink)}.bg-paper{background-color:var(--paper)}.bg-white{background-color:var(--color-white)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-zinc-950{background-color:var(--color-zinc-950)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-32{padding-block:calc(var(--spacing) * 32)}.py-48{padding-block:calc(var(--spacing) * 48)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pb-1{padding-bottom:var(--spacing)}.text-left{text-align:left}.font-display{font-family:Inter,SansSC,sans-serif}.font-mono{font-family:var(--font-mono)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.95rem\]{font-size:.95rem}.text-\[1rem\]{font-size:1rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\],.leading-none{--tw-leading:1;line-height:1}.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)}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-wrap{text-wrap:wrap}.text-accent{color:var(--accent)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-ink{color:var(--ink)}.text-muted{color:var(--muted)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.shadow{--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)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.1\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff1a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:text-ink:hover{color:var(--ink)}}@media (width>=40rem){.sm\:mx-0{margin-inline:0}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-full{height:100%}.sm\:w-full{width:100%}.sm\:flex-1{flex:1}.sm\:grid-cols-\[14rem_1fr\]{grid-template-columns:14rem 1fr}.sm\:flex-col{flex-direction:column}.sm\:justify-between{justify-content:space-between}.sm\:justify-center{justify-content:center}.sm\:gap-0{gap:0}.sm\:gap-7{gap:calc(var(--spacing) * 7)}.sm\:gap-10{gap:calc(var(--spacing) * 10)}.sm\:overflow-visible{overflow:visible}.sm\:px-0{padding-inline:0}.sm\:py-8{padding-block:calc(var(--spacing) * 8)}}@media (width>=48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.md\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}@media (width>=64rem){.lg\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}@media (prefers-color-scheme:dark){.dark\:bg-zinc-950{background-color:var(--color-zinc-950)}.dark\:text-gray-100{color:var(--color-gray-100)}}}:root{--paper:#fff;--grey:#f2f2f2;--ink:#1c1d20;--muted:#6b6e76;--rule:#dadbdf;--accent:#455ce9;--accent-soft:#e8ebfc;--ink-pen:#1b3fb3;--card-paper:#fbfaf6;--dark:#1c1d20;--dark-line:#3a3b40;--dark-muted:#9a9ba0;--proj-bg:var(--grey);--proj-ink:var(--ink);--g-bg:#ffffff8c;--g-edge:#fffc;--g-spec:#fffffff2;--g-shadow:#14192814;--rail-line:#1b3fb3;--rail-pending:#6b6e768c;--act-ny:#f5f0fa;--act-du:#f0f4f9;--act-bj:#faf2eb;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#131416;--grey:#1b1c1f;--ink:#f2f2f2;--muted:#9a9ba0;--rule:#2c2d31;--accent:#6c7ff0;--accent-soft:#1e2447;--dark:#0b0b0d;--dark-line:#2c2d31;--dark-muted:#8a8b90;--proj-bg:var(--grey);--proj-ink:var(--ink);--g-bg:#ffffff14;--g-edge:#ffffff2e;--g-spec:#ffffff4d;--g-shadow:#00000073;--rail-line:#7e97f5;--ink-pen:#7e97f5;--rail-pending:#9a9ba080;--act-ny:#17141e;--act-du:#13181f;--act-bj:#1c1513;color-scheme:dark}}:root[data-theme=dark]{--paper:#131416;--grey:#1b1c1f;--ink:#f2f2f2;--muted:#9a9ba0;--rule:#2c2d31;--accent:#6c7ff0;--accent-soft:#1e2447;--dark:#0b0b0d;--dark-line:#2c2d31;--dark-muted:#8a8b90;--proj-bg:var(--grey);--proj-ink:var(--ink);--g-bg:#ffffff14;--g-edge:#ffffff2e;--g-spec:#ffffff4d;--g-shadow:#00000073;--rail-line:#7e97f5;--ink-pen:#7e97f5;--rail-pending:#9a9ba080;--act-ny:#17141e;--act-du:#13181f;--act-bj:#1c1513;color-scheme:dark}@font-face{font-family:Inter;src:url(/fonts/inter.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:SerifHero;src:url(/fonts/serif-hero-v7.woff2)format("woff2");font-weight:200 900;font-display:swap}@font-face{font-family:Hand;src:url(/fonts/hand-v7.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:SansSC;src:url(/fonts/notosanssc.woff2)format("woff2");font-weight:300 700;font-display:swap}html{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{background:var(--paper);margin:0;font-size:1rem;line-height:1.5;overflow-x:hidden}::selection{background:var(--accent-soft)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.num{font-variant-numeric:tabular-nums}:root{--ease-film:cubic-bezier(.16, 1, .3, 1)}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}[data-fx]{opacity:0;transition:opacity 1.1s var(--ease-film), transform 1.1s var(--ease-film);transform:translateY(2.2rem)}[data-fx].in{opacity:1;transform:none}h1[data-fx]{transition-duration:1.4s;transform:translateY(3rem)}.navpill{transition:transform .4s var(--ease-film), opacity .4s ease}.navpill.is-hidden{opacity:0;transform:translateY(-140%)}@media (prefers-reduced-motion:reduce){[data-fx]{opacity:1;transition:none;transform:none}}::view-transition-old(*),::view-transition-new(*){animation-duration:.9s;animation-timing-function:var(--ease-film);mix-blend-mode:normal;object-fit:cover;border-radius:.6rem;overflow:hidden}::view-transition-old(root){border-radius:0;animation:.42s ease-out both root-out}::view-transition-new(root){border-radius:0;animation:.56s ease-out both root-in}::view-transition-old(navpill),::view-transition-new(navpill){border-radius:999px;animation-duration:.6s}@keyframes root-out{to{opacity:0}}@keyframes root-in{0%{opacity:0}to{opacity:1}}.proj .title{opacity:var(--title-o,1);animation:title-in .9s var(--ease-film) .12s both}@keyframes title-in{0%{opacity:0;transform:translate(-2rem)}to{opacity:var(--title-o,1);transform:none}}@media (prefers-reduced-motion:reduce){.proj .title{animation:none}}.proj .mid{cursor:pointer}.glass{background:var(--g-bg);-webkit-backdrop-filter:blur(16px)saturate(160%);border:1px solid var(--g-edge);box-shadow:inset 0 1.5px 0 var(--g-spec), 0 10px 30px var(--g-shadow)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.glass{background:color-mix(in srgb, var(--paper) 92%, white)}}}.wrap{width:min(80rem,100vw - 2.5rem);margin:0 auto}@media (width>=40rem){.wrap{width:min(80rem,100vw - 6rem)}}.hd1{font-family:var(--font-zh);letter-spacing:0;text-wrap:balance;max-width:18ch;color:var(--ink);margin:0;font-size:2.4rem;font-weight:500;line-height:1.15}@media (width>=40rem){.hd1{font-size:4.6rem}}html[lang=en] .hd1{font-family:var(--font-sans);letter-spacing:-.02em;font-weight:400;line-height:1.04}.rule{background:var(--rule);height:1px;margin:2.2rem 0;position:relative}@media (width>=40rem){.rule{margin:3rem 0}}.eyebrow{color:var(--muted);letter-spacing:.08em;margin:0;font-size:.7rem}.cap{max-width:30ch;color:var(--ink);margin:0;font-size:1rem;line-height:1.7}.cap .m{color:var(--muted);margin-top:1rem;display:block}.three{grid-template-columns:1fr;gap:2.2rem;margin-top:3rem;display:grid}@media (width>=40rem){.three{grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:4rem}}.three .k{color:var(--muted);letter-spacing:.08em;border-bottom:1px solid var(--rule);margin-bottom:1.4rem;padding-bottom:1rem;font-size:.7rem}.three h3{font-family:var(--font-zh);color:var(--ink);margin:0 0 1rem;font-size:1.5rem;font-weight:500}.three h3.big{font-family:var(--font-sans);font-size:2.4rem;font-weight:400}.three p{color:var(--muted);margin:0;font-size:.95rem;line-height:1.7}.list{border-top:1px solid var(--rule);margin-top:2rem}.row{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:1rem;padding:1.6rem .5rem;transition:padding-left .3s cubic-bezier(.22,1,.36,1),color .2s;display:flex}@media (width>=40rem){.row{padding:2.6rem 1rem}}a.row:hover{color:var(--muted);padding-left:1.6rem}.row .t{font-family:var(--font-zh);color:inherit;font-size:1.6rem;font-weight:500}@media (width>=40rem){.row .t{font-size:2.6rem}}html[lang=en] .row .t{font-family:var(--font-sans);font-weight:400}.row .s{color:var(--muted);flex-shrink:0;font-size:.85rem}.pill{border:1px solid var(--dark-line);border-radius:999px;margin:0 .6rem .6rem 0;padding:.85rem 1.5rem;font-size:.9rem;transition:background .2s,color .2s;display:inline-block}.pill:hover{background:var(--accent);border-color:var(--accent);color:#fff}.foot{background:var(--dark);color:#fff;border-radius:45vw 45vw 0 0/3rem 3rem 0 0;margin-top:6rem;padding:5rem 0 3rem}@media (width>=40rem){.foot{border-radius:45vw 45vw 0 0/5rem 5rem 0 0;margin-top:8rem;padding:8rem 0 4rem}}.foot .hd1{color:#fff}.foot-pills{margin-top:4rem}@media (width>=40rem){.foot-pills{margin-top:3rem}}.foot .meta{color:var(--dark-muted);flex-wrap:wrap;gap:2rem 4rem;margin-top:4rem;font-size:.75rem;display:flex}.foot .meta b{color:#fff;margin-top:.3rem;font-weight:500;display:block}.proj{background:var(--paper);color:var(--ink);flex-direction:column;justify-content:flex-start;width:100vw;min-height:auto;margin-left:calc(50% - 50vw);padding:8.5rem 1.25rem 2.5rem;display:flex;position:relative}@media (width>=64rem){.proj{justify-content:center;min-height:86svh;padding:2.5rem 3rem}}.proj .top{letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:flex-start;font-size:.75rem;display:flex}.proj .brand{letter-spacing:.02em;text-transform:none;font-size:.95rem;font-weight:600;line-height:1}.proj .mid{text-align:center;font-size:.75rem}.proj .mid i{background:currentColor;width:1px;height:1.4rem;margin:.4rem auto;display:block}.proj .title{--title-o:.08;font-family:var(--font-display);letter-spacing:-.045em;color:var(--ink);z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:clamp(2.8rem,10.8vw,12.5rem);font-weight:700;line-height:.9;position:absolute;top:5.5rem;left:1.25rem}@media (width>=64rem){.proj .title{font-size:clamp(4rem,16vw,12.5rem);top:3rem;left:3rem}}.proj .cover{z-index:2;aspect-ratio:2160/1239;background:var(--paper);border-radius:.6rem;width:min(100%,60rem);margin:2.2rem 0 0;position:relative;overflow:hidden;box-shadow:0 20px 60px #1419281a}.proj .cover img{object-fit:cover;width:100%;height:100%;display:block}@media (width>=64rem){.proj .cover{width:60%;margin:7rem 0 0 17%}}.overlay-head header{z-index:40;pointer-events:none;position:absolute;top:0;left:50%;transform:translate(-50%)}.overlay-head header>a{visibility:hidden}.overlay-head header nav{pointer-events:auto}.overlay-head main{position:relative}@media (width>=64rem){.rail-left{align-self:stretch;display:block}.rail-sticky{position:sticky;top:7rem}}.jname{font-family:var(--font-serif-hero);letter-spacing:-.015em;color:var(--ink);margin:0;font-size:clamp(2.9rem,5.8vw,5rem);font-weight:680;line-height:1.06}@supports ((-webkit-background-clip:text)){.jname{color:#0000;background:url(/washes/title-ink.webp) 50% 38%/cover;-webkit-background-clip:text;background-clip:text}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .jname{color:var(--ink);background:0 0}}html[data-theme=dark] .jname{color:var(--ink);background:0 0}}.jname b{font-weight:inherit;margin-left:.9em;display:inline-block}.jname-has-art .jname-art{width:clamp(15rem,23vw,20.5rem);margin-left:-.3rem;display:block}.jname-has-art .jname-art img{height:auto;display:block}.jname-has-art .jname-art .l1{width:100%}.jname-has-art .jname-art .l2{width:85.6%;margin:.6rem 0 0 52%}.jname-has-art .jname-text{display:none}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .jname-has-art .jname-art{display:none}html:not([data-theme=light]) .jname-has-art .jname-text{display:block}}html[data-theme=dark] .jname-has-art .jname-art{display:none}html[data-theme=dark] .jname-has-art .jname-text{display:block}.rw{position:relative}.rw-scenes,.rw-mark{display:none}.rw.is-map .rw-scenes{z-index:0;pointer-events:none;display:block;position:fixed;inset:0}.rw.is-map .rw-act{opacity:0;will-change:opacity, transform;position:absolute;inset:-5%}.rw-act[data-scene=ny]{background:var(--act-ny)}.rw-act[data-scene=du]{background:var(--act-du)}.rw-act[data-scene=bj]{background:var(--act-bj)}.rw.is-map .rw-act img{mix-blend-mode:multiply;opacity:0;height:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rw-act[data-scene=ny] img{width:min(62vw,900px)}.rw-act[data-scene=du] img{width:min(67vw,980px)}.rw-act[data-scene=bj] img{width:min(68vw,990px)}@media (width<=64rem){.rw.is-map .rw-act img{width:125vw!important}}.rw-city{display:none}.rw.is-map .rw-city{opacity:0;z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;mix-blend-mode:multiply;height:auto;display:block;position:absolute}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .rw.is-map .rw-city{display:none}}html[data-theme=dark] .rw.is-map .rw-city{display:none}.rw>.wrap{z-index:1;position:relative}.rw.is-map .rw-mark{display:none}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .rw.is-map .rw-scenes,.rw-mark{display:none}html:not([data-theme=light]) .rw.is-map .rw-mark{display:block}}html[data-theme=dark] .rw.is-map .rw-scenes,.rw-mark{display:none}html[data-theme=dark] .rw.is-map .rw-mark{display:block}.rw.is-map .rw-svg{z-index:1}.rw.is-map .rw-list,.rw.is-map .rw-inset{z-index:2}.rw.is-map .rw-mark{opacity:0;letter-spacing:.14em;color:var(--ink);margin:0;font-size:clamp(3.6rem,6.4vw,6.4rem);font-weight:250;line-height:1;position:absolute}@supports (color:color-mix(in lab, red, red)){.rw.is-map .rw-mark{color:color-mix(in srgb, var(--ink) 7%, transparent)}}.rw.is-map .rw-mark{white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none}html[lang=en] .rw.is-map .rw-mark{letter-spacing:.1em;font-size:clamp(2.6rem,4.6vw,4.6rem)}.rw-title{margin:0 0 1.6rem}.rw-stage{width:100%;position:relative}.rw-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.rw-list{flex-direction:column;gap:2.4rem;display:flex;position:relative}.rw-st{padding-left:2.4rem;position:relative}.rw-dot{box-sizing:border-box;background:var(--paper);border:3px solid var(--rail-line);border-radius:50%;width:1rem;height:1rem;margin:-.5rem;position:absolute;top:.95rem;left:.9rem}.rw-st.pending .rw-dot{border-color:var(--rail-pending);border-style:dashed}.rw-card{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.rw-year{color:var(--muted);font-size:1.9rem;font-weight:250;line-height:1;display:block}@supports (color:color-mix(in lab, red, red)){.rw-year{color:color-mix(in srgb, var(--muted) 62%, transparent)}}.rw-year{font-variant-numeric:tabular-nums;letter-spacing:.06em}.rw-head{align-items:center;gap:.6rem;display:flex}.rw-logo{align-items:center;display:flex}html[lang=zh] .rw-logo{transform:translateY(1.5px)}.rw-logo img{object-fit:contain;width:auto;max-width:2.4rem;height:1.4rem}.rw-logo img[src*=meituan]{border-radius:22%;height:1.5rem}.rw-logo img[src*=sottoread]{height:1.2rem}.rw-logo img[src*=nyu]{height:1rem}.rw-logo img[src*=duke]{width:2.6rem;max-width:none;height:auto}.rw-logo img[src*=csc]{width:3.8rem;max-width:none;height:auto}.rw-logo img[src*=ccmc]{width:1.4rem;max-width:none;height:1.4rem}.rw-logo img[src*=cms]{border-radius:22%;width:1.4rem;max-width:none;height:1.4rem}.rw-org{font-family:var(--font-zh);color:var(--ink);white-space:nowrap;font-size:1.3rem;font-weight:500;line-height:1.2}html[lang=en] .rw-org{font-family:var(--font-sans);letter-spacing:-.02em;font-weight:400}a.rw-head{text-decoration:none}a.rw-head:hover .rw-org{color:var(--rail-line)}.rw-detail{flex-direction:column;gap:.22rem;margin-top:.3rem;display:flex}.rw-place,.rw-role,.rw-span,.rw-desc{color:var(--muted);letter-spacing:.02em;font-size:.95rem;line-height:1.5}.rw-desc{display:block}.rw-when{align-items:baseline;gap:.75em;display:flex}.rw-span{font-variant-numeric:tabular-nums}.rw-st.pending .rw-org{color:var(--muted)}.rw-inset{width:100%;max-width:30rem;margin:2.6rem auto 0;display:block}.rw-inset .cover{aspect-ratio:2160/1239;background:var(--paper);border-radius:.15rem;width:100%;display:block;overflow:hidden}.rw-inset .cover img{object-fit:cover;width:100%;height:100%;display:block}.rw-more{margin-top:3rem;position:relative}.rw.is-map .rw-list{gap:0;display:block;position:absolute;inset:0}.rw.is-map .rw-st{opacity:0;width:max-content;max-width:13rem;padding-left:0;position:absolute}.rw.is-map .rw-st.pending{max-width:10rem}.rw.is-map .rw-st.pending .rw-org{white-space:normal;font-size:.95rem;line-height:1.25}.rw.is-map .rw-st.pending .rw-role,.rw.is-map .rw-dot{display:none}.rw.is-map .rw-detail{gap:.2rem;margin-top:.35rem}.rw.is-map .rw-st.to-l,.rw.is-map .rw-st.to-sw{text-align:right}.rw.is-map .rw-st.to-l .rw-card,.rw.is-map .rw-st.to-sw .rw-card{align-items:flex-end}.rw.is-map .rw-st.to-l .rw-head,.rw.is-map .rw-st.to-sw .rw-head{flex-direction:row-reverse}.rw.is-map .rw-st.to-l .rw-detail,.rw.is-map .rw-st.to-sw .rw-detail{align-items:flex-end}.rw.is-map .rw-st.to-a,.rw.is-map .rw-st.to-b{text-align:center}html[lang=en] .rw.is-map .rw-st.to-a{max-width:23rem}html[lang=en] .rw.is-map .rw-st.to-a .rw-desc{white-space:normal}.rw.is-map .rw-st.to-a .rw-card,.rw.is-map .rw-st.to-b .rw-card,.rw.is-map .rw-st.to-a .rw-detail,.rw.is-map .rw-st.to-b .rw-detail{align-items:center}.rw.is-map .rw-st.to-a .rw-logo,.rw.is-map .rw-st.to-b .rw-logo{display:none}.rw.is-map .rw-place,.rw.is-map .rw-role,.rw.is-map .rw-span{color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.rw.is-map .rw-place,.rw.is-map .rw-role,.rw.is-map .rw-span{color:color-mix(in srgb, var(--ink) 86%, var(--muted))}}.rw.is-map .rw-year{color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.rw.is-map .rw-year{color:color-mix(in srgb, var(--ink) 62%, transparent)}}.rw.is-map .rw-st.here .rw-org{color:var(--rail-line)}.rw.is-map .rw-inset{margin:0;position:absolute}.rw-start{font-family:var(--font-hand);color:var(--ink-pen);white-space:nowrap;align-items:flex-start;gap:.3rem;margin:0;font-size:1.2rem;display:flex}.rw-start img{width:3.4rem;height:auto;margin-top:-1.6rem}.rw.is-map .rw-start{z-index:0;position:absolute}@media (width>=64rem){.rw-start{font-size:1.5rem}.rw-start img{width:4rem;margin-top:-2rem}.rw-year{font-size:2.2rem}.rw-org{font-size:1.6rem}.rw-place,.rw-role,.rw-span,.rw-desc{font-size:1rem}.rw.is-map .rw-st{max-width:19rem}}@media (width>=78rem){.rw-year{font-size:2.7rem}.rw-org{font-size:1.95rem}.rw-place,.rw-role,.rw-span,.rw-desc{font-size:1.12rem}.rw.is-map .rw-st{max-width:28rem}.rw.is-map .rw-role,.rw.is-map .rw-when{white-space:nowrap}.rw-logo img{max-width:3rem;height:1.7rem}.rw-logo img[src*=meituan]{height:1.8rem}.rw-logo img[src*=sottoread]{height:1.45rem}.rw-logo img[src*=nyu]{height:1.2rem}.rw-logo img[src*=duke]{width:3.1rem}.rw-logo img[src*=csc]{width:4.5rem}.rw-logo img[src*=cms],.rw-logo img[src*=ccmc]{width:1.7rem;height:1.7rem}}@media (prefers-reduced-motion:reduce){.rw-dot{display:none}.rw-st{padding-left:0}}.chron{--s-pair:.3rem;--s-list:1.2rem;--s-block:2rem;--s-entry:3.4rem;--s-group:5rem;max-width:64rem;padding-bottom:4rem}@media (width>=64rem){.chron{--s-list:1.4rem;--s-block:2.8rem;--s-entry:5.2rem;--s-group:7rem}}.chron{padding-top:3rem}@media (width>=40rem){.chron{padding-top:5rem}}.ch-pdf{margin:var(--s-group) 0 0;font-size:.95rem}.ch-group{margin-top:var(--s-group)}.ch-group:first-of-type{margin-top:0}.ch-flow.is-num li{padding-left:3.2em;position:relative}.ch-ino{font-family:var(--font-serif-hero);letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--muted);font-size:1em;font-weight:400;line-height:1.85;position:absolute;top:0;left:0}@supports (color:color-mix(in lab, red, red)){.ch-ino{color:color-mix(in srgb, var(--muted) 58%, transparent)}}.ch-gname{font-family:var(--font-zh);letter-spacing:.16em;color:var(--muted);margin:0;font-size:1rem;font-weight:500}.ch-entry{margin-top:var(--s-entry)}.ch-gname+.ch-entry{margin-top:var(--s-block)}.ch-hd{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.3rem 2rem;display:flex}.ch-org{font-family:var(--font-zh);color:var(--ink);flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;font-size:1.6rem;font-weight:500;line-height:1.25;display:flex}html[lang=en] .ch-org{font-family:var(--font-sans);letter-spacing:-.01em}.ch-org b{font-weight:inherit}.ch-role{color:var(--muted);font-size:1rem;font-weight:400}.ch-tp{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:1rem}.ch-lead{margin:var(--s-block) 0 0;letter-spacing:.02em;color:var(--ink);font-size:1rem;line-height:1.8}@supports (color:color-mix(in lab, red, red)){.ch-lead{color:color-mix(in srgb, var(--ink) 86%, var(--muted))}}.ch-flow{margin:var(--s-block) 0 0;padding:0;list-style:none}.ch-flow li{letter-spacing:.02em;font-size:1rem;line-height:1.85}.ch-more>p{max-width:46em}.ch-flow li+li{margin-top:var(--s-list)}.ch-flow b{font-family:var(--font-zh);color:var(--ink);margin-right:.75em;font-weight:500}html[lang=en] .ch-flow b{font-family:var(--font-sans)}.ch-fl{color:var(--muted);margin:0}.ch-flow li p+p{margin-top:.3rem}.ch-fl strong{color:var(--ink);font-weight:500}.ch-fig{margin:.45rem 0 0}.ch-flow b.ch-n,.ch-fig b.ch-n{font-family:var(--font-serif-hero);letter-spacing:.01em;color:var(--rail-line);font-variant-numeric:tabular-nums;margin:0;font-size:1em;font-weight:500;line-height:1}.ch-fig i{letter-spacing:.02em;color:var(--muted);margin-left:.5em;font-style:normal}.ch-more{margin-top:.45rem}.ch-more summary{cursor:pointer;width:fit-content;color:var(--rail-line);list-style:none}@supports (color:color-mix(in lab, red, red)){.ch-more summary{color:color-mix(in srgb, var(--rail-line) 78%, var(--muted))}}.ch-more summary{letter-spacing:.04em}.ch-more summary::-webkit-details-marker{display:none}.ch-more summary:before{content:"＋ "}.ch-more[open] summary:before{content:"－ "}.ch-more>p{margin-top:.45rem}.ch-skills{margin-top:var(--s-block)}.ch-sk i{white-space:nowrap;margin-right:1.5em;font-style:normal}.ch-sk i:last-child{margin-right:0}@media (width>=78rem){.ch-org{font-size:1.95rem}.ch-role,.ch-tp,.ch-lead,.ch-flow li,.ch-gname{font-size:1.12rem}}.plist{--s-pair:.4rem;--s-entry:3.4rem;--s-group:5rem;max-width:64rem;padding-top:3rem;padding-bottom:4rem}@media (width>=40rem){.plist{padding-top:5rem}}@media (width>=64rem){.plist{--s-entry:5.2rem;--s-group:7rem}}.pl-lead{font-family:var(--font-zh);letter-spacing:0;max-width:none;color:var(--ink);margin:0;font-size:1.6rem;font-weight:500;line-height:1.25}.pl-items{margin:var(--s-group) 0 0;padding:0;list-style:none}.pl-items li+li{margin-top:var(--s-entry)}.pl-row{color:inherit;display:block}.pl-hd{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.3rem 2rem;display:flex}.pl-name{font-family:var(--font-zh);color:var(--ink);font-size:1.6rem;font-weight:500;line-height:1.25;transition:color .2s}html[lang=en] .pl-name,html[lang=en] .pl-lead{font-family:var(--font-sans);letter-spacing:-.01em}.pl-row:hover .pl-name,.pl-row:focus-visible .pl-name{color:var(--rail-line)}.pl-when{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:1rem}.pl-tag{margin-top:var(--s-pair);letter-spacing:.02em;color:var(--muted);max-width:46em;font-size:1rem;line-height:1.8;display:block}.pl-status{margin-top:var(--s-pair);letter-spacing:.04em;color:var(--muted);font-size:1rem;display:block}@supports (color:color-mix(in lab, red, red)){.pl-status{color:color-mix(in srgb, var(--muted) 62%, transparent)}}@media (width>=78rem){.pl-lead,.pl-name{font-size:1.95rem}.pl-when,.pl-tag,.pl-status{font-size:1.12rem}}.foot{z-index:2;position:relative}.roll{height:1.8em;font-family:var(--font-serif-hero);color:var(--muted);font-size:clamp(.95rem,1.15vw,1.05rem);line-height:1.8;position:relative;overflow:hidden}.roll-line{white-space:nowrap;will-change:transform, opacity;position:absolute;top:0;left:0}.acts{padding-bottom:3.5rem}.acts .act{margin-top:5rem}@media (width>=64rem){.acts .act{margin-top:7rem}}.acts .act-name{font-family:var(--font-zh);letter-spacing:.04em;color:var(--muted);margin:0;font-size:1rem;font-weight:500}.acts .act-h{font-family:var(--font-zh);letter-spacing:0;max-width:none;margin-top:.5rem;font-size:1.6rem;font-weight:500;line-height:1.2}@media (width>=78rem){.acts .act-h{font-size:1.95rem}}.acts .lead{letter-spacing:.02em;color:var(--muted);max-width:44ch;margin:1.8rem 0 0;font-size:1rem;line-height:1.8}@media (width>=78rem){.acts .lead{font-size:1.12rem}}.acts .act-corner{text-align:right;margin-top:3.5rem}.acts .act-corner a{color:var(--accent);font-size:1rem}.acts .row .t{font-size:1.3rem}@media (width>=40rem){.acts .row .t{font-size:1.8rem}}.acts .row.ours .s{color:var(--accent)}.acts .row:not(.ours) .t{color:var(--muted)}.acts .nums{align-items:end;gap:3rem 2.5rem;margin-top:3.5rem}@media (width>=48rem){.acts .nums{grid-template-columns:repeat(3,1fr);gap:0 2rem}}.acts .nums>div{flex-direction:column;align-items:flex-start;display:flex}.acts .nums h3.big{font-family:var(--font-serif-hero);letter-spacing:.01em;font-variant-numeric:tabular-nums;color:var(--ink);margin:0 0 .6rem;font-size:clamp(4rem,9vw,8rem);font-weight:250;line-height:.92;position:relative}.ink-base{color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.ink-base{color:color-mix(in srgb, var(--ink) 18%, transparent)}}.ink-base{-webkit-user-select:none;user-select:none}.ink-fill{color:var(--ink);clip-path:inset(0 var(--fill,0%) 0 0);position:absolute;top:0;left:0}.acts .nums p{letter-spacing:.08em;color:var(--muted);font-size:1rem}@media (width>=78rem){.acts .nums p{font-size:1.12rem}}.link-arrow{color:var(--accent)}.pscroll{margin-top:3.5rem;position:relative}.pscroll .psticky{top:var(--pin-top,clamp(4.5rem, 50svh - 21rem, 8rem));z-index:2;justify-items:start;gap:1.6rem;display:grid;position:sticky}@media (width>=72rem){.pscroll .psticky{grid-template-columns:minmax(0,calc(160svh - 20rem)) minmax(10rem,15rem);justify-content:start;align-items:center;gap:2.4rem}}.pscroll .stagewrap{width:100%;box-shadow:var(--sx,0px) calc(30px + var(--sy,0px)) 80px #14192824;border-radius:.6rem;overflow:hidden}@media (width<=63.99rem){.pscroll .stagewrap{width:min(94%,133.3svh - 19.995rem)}}@media (width>=64rem){.pscroll .stagewrap{width:min(94%,160svh - 24rem)}}@media (width>=72rem){.pscroll .stagewrap{width:min(100%,160svh - 20rem)}}.acts [data-mv]{opacity:1}.pp-name .pp-ch,.pp-line .pp-ch{animation:pp-rise .52s var(--ease-film) both;display:inline-block}.pp-line .pp-ch{animation-duration:.6s;animation-delay:80ms}@keyframes pp-rise{0%{opacity:0;transform:translateY(.42em)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.pp-name .pp-ch,.pp-line .pp-ch{animation:none}}.proj .cover img{will-change:transform}.pstage-plaque{--pp-name-lh:calc(1.6rem * 1.2);width:100%;height:calc(var(--pp-name-lh) + .8rem + var(--pp-slot,3.5rem));display:block}.pp-name{font-family:var(--font-zh);color:var(--ink);font-size:1.6rem;font-weight:500;line-height:1.2;display:block}.pp-line{letter-spacing:.02em;color:var(--muted);margin-top:.8rem;font-size:1rem;line-height:1.75;display:block}@media (width>=78rem){.pstage-plaque{--pp-name-lh:calc(1.95rem * 1.2)}.pp-name{font-size:1.95rem}.pp-line{font-size:1.12rem}}.pscroll .steps{margin:0;padding:0;list-style:none}.pscroll .steps:after{content:"";height:var(--tail,62vh);display:block}.pscroll .step{height:40vh}@media (width>=64rem){.pscroll .step{height:48vh}}.proj .strip{z-index:3;border-radius:.8rem;flex-direction:row;gap:.5rem;margin-top:1rem;padding:.5rem;display:flex;overflow-x:auto}@media (width>=64rem){.proj .strip{flex-direction:column;gap:.6rem;width:5.8rem;margin:0;padding:.6rem;position:absolute;top:17%;right:3rem;overflow:visible}}.proj .strip button{cursor:pointer;background:var(--paper);width:100%;min-width:4rem;color:var(--ink);letter-spacing:.06em;text-transform:uppercase;opacity:.85;border:2px solid #0000;border-radius:.3rem;flex:1;padding:.45rem .2rem;font-size:.6rem;line-height:1.3;transition:opacity .2s,border-color .2s;display:block}.proj .strip button:hover{opacity:1}.proj .strip button[aria-selected=true]{border-color:var(--accent);color:var(--accent);opacity:1}.proj .strip button span{letter-spacing:0;font-size:1rem;font-weight:600;display:block}.proj .meta{text-align:right;letter-spacing:.02em;color:var(--muted);margin-top:1.6rem;font-size:.8rem}.proj .meta a{color:var(--accent)}@media (width>=64rem){.proj .meta{margin-top:3.5rem}}@font-face{font-family:NotoSerifStage;src:url(/fonts/notoserifsc-stage.woff2)format("woff2");font-weight:200 900;font-display:swap}.dd{--dd-primary:#0058be;--dd-on-primary:#fff;--dd-surface:#f7f9ff;--dd-lowest:#fff;--dd-on-surface:#121d26;--dd-secondary:#585f6c;--dd-outline:#727785;--dd-outline-variant:#c2c6d6;--dd-paper:#fdfcf9;--dd-paper-dim:#f5f3ee;--dd-paper-line:#e6e2d9;--dd-tertiary:#675f2b;--dd-highest:#d9e3f1;--dd-low:#edf4ff;--dd-inverse:#27313c;--dd-inverse-on:#e8f2ff;--dd-selection:#adc6ff;--dd-shadow-raised:0 .0625rem .125rem #1018200a, 0 .25rem .75rem -.25rem #10182014;--dd-shadow-floating:0 .125rem .25rem #1018200d, 0 1rem 2rem -.75rem #10182024;--dd-on-surface-variant:#424754;--dd-ease:cubic-bezier(.2, .7, .2, 1);--dd-ease-draw:cubic-bezier(.22, 1, .36, 1);--dd-ease-quiet:cubic-bezier(.22, 1, .36, 1);--dd-ease-fork:cubic-bezier(.65, 0, .35, 1);color:var(--dd-on-surface);background:var(--dd-paper);color-scheme:light;font-family:NotoSerifStage,Noto Serif SC,Songti SC,serif}@media (prefers-reduced-motion:no-preference){.dd .a1{animation:dd-beat 6s var(--dd-ease) infinite}.dd .a2{animation:dd-beat-2 6s var(--dd-ease) infinite}.dd .a3{animation:dd-beat-3 6s var(--dd-ease) infinite}.dd .a4{animation:dd-beat-4 6s var(--dd-ease) infinite}}@keyframes dd-beat{0%{opacity:0;transform:translateY(.375rem)}8%,94%{opacity:1;transform:none}to{opacity:0}}@keyframes dd-beat-2{0%,22%{opacity:0;transform:translateY(.375rem)}32%,94%{opacity:1;transform:none}to{opacity:0}}@keyframes dd-beat-3{0%,48%{opacity:0;transform:translateY(.375rem)}60%,94%{opacity:1;transform:none}to{opacity:0}}@keyframes dd-beat-4{0%,66%{opacity:0;transform:translateY(.375rem)}76%,94%{opacity:1;transform:none}to{opacity:0}}@media (prefers-reduced-motion:no-preference){.dd .grow{animation:dd-grow 6s var(--dd-ease) infinite}.dd .draw-v{transform-origin:top;animation:dd-draw-v 6s var(--dd-ease-draw) infinite}.dd .draw-x{transform-origin:0;animation:dd-draw-x 6s var(--dd-ease-draw) infinite}.dd .pulse{animation:3.4s ease-in-out infinite dd-pulse}}@keyframes dd-grow{0%,10%{width:3%}55%,94%{width:62%}to{width:62%}}@keyframes dd-draw-v{0%,40%{transform:scaleY(0)}52%,to{transform:scaleY(1)}}@keyframes dd-draw-x{0%,48%{transform:scaleX(0)}58%,to{transform:scaleX(1)}}@keyframes dd-pulse{0%,to{opacity:.18}50%{opacity:.45}}@media (prefers-reduced-motion:no-preference){.dd .play{animation:dd-settle .24s var(--dd-ease-quiet) var(--at,0s) both}.dd .fork-line-v{transform-origin:top;animation:dd-fork-v .36s var(--dd-ease-fork) var(--at,0s) both}.dd .fork-line-x{animation:dd-fork-x .36s var(--dd-ease-fork) var(--at,0s) both}.dd .fork-node{animation:dd-fork-node .3s var(--dd-ease-fork) var(--at,0s) both}.dd .sheet{animation:dd-sheet .42s var(--dd-ease-quiet) var(--at,0s) both, dd-outro .36s ease-in 5.64s forwards}.dd .outro{animation:.36s ease-in 5.64s forwards dd-outro}.dd .gone{animation:dd-outro .2s ease-in var(--at,0s) forwards}}@keyframes dd-settle{0%{opacity:0;transform:translateY(.25em)}to{opacity:1;transform:none}}@keyframes dd-fork-v{0%{transform:scaleY(0)}}@keyframes dd-fork-x{0%{transform:scaleX(0)}}@keyframes dd-fork-node{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes dd-sheet{0%{opacity:0;transform:translateY(1.5em)}to{opacity:1;transform:none}}@keyframes dd-outro{to{opacity:0}}.dd .stage{width:100%;height:100%;container-type:size}.dd .frame{--u:calc(100cqh / 38);--lw:max(1px, calc(var(--u) * .075));grid-template-columns:minmax(0, 1fr) calc(36 * var(--u));height:100%;display:grid}.dd .article{justify-content:center;gap:calc(var(--u) * .9);padding:0 calc(var(--u) * 1.8);font-size:calc(var(--u) * 1.0625);color:var(--dd-on-surface);text-align:justify;flex-direction:column;line-height:1.9;display:flex}.dd .article p{margin:0}.dd .article .dim{color:var(--dd-outline)}.dd .rail{background:var(--dd-paper-dim);padding:0 calc(var(--u) * 2.5);position:relative;overflow:hidden}.dd .rail-head{height:calc(var(--u) * 4);justify-content:space-between;align-items:center;display:flex}.dd .rail-head .brand{font-size:calc(var(--u) * 1.25);letter-spacing:.04em;color:var(--dd-on-surface);font-weight:600}.dd .rail-head .tabs{align-items:center;gap:calc(var(--u) * .75);font-size:calc(var(--u) * .875);color:var(--dd-outline);display:flex}.dd .rail-head .tabs .on{color:var(--dd-on-surface);font-weight:500}.dd .rail-head .sep{width:1px;height:calc(var(--u) * .875);background:var(--dd-outline-variant)}.dd .label{font-size:calc(var(--u) * .75);line-height:calc(var(--u) * 1);letter-spacing:.08em;font-weight:500}.dd .label.lab-outline{color:var(--dd-outline)}.dd .label.lab-secondary{color:var(--dd-secondary)}.dd .label.lab-primary{color:var(--dd-primary)}.dd .card{gap:calc(var(--u) * .5);padding:calc(var(--u) * 1.5);border-radius:calc(var(--u) * 1);background:var(--dd-lowest);box-shadow:var(--dd-shadow-raised);flex-direction:column;display:flex;position:relative}.dd .eyebrow{font-size:calc(var(--u) * .75);letter-spacing:.18em;color:var(--dd-outline)}.dd .card-foot{border-top:1px solid var(--dd-paper-line);font-size:calc(var(--u) * .75);letter-spacing:.08em;color:var(--dd-secondary);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;display:flex}.dd .card-foot b{font-weight:inherit;color:var(--dd-primary)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
