:root{--palette-paper-50:#fffefd;--palette-paper-100:#f9f7f3;--palette-paper-200:#efece7;--palette-paper-grid:#ebe9e5;--palette-red-100:#f7dfda;--palette-red-150:#f5ded9;--palette-red-400:#ff847e;--palette-red-500:#ff655e;--palette-red-550:#ff4545;--palette-red-600:#e12120;--palette-red-625:#e70000;--palette-red-700:#c91c1c;--palette-red-muted:#a94b46;--palette-dark-100:#3a2422;--palette-dark-200:#2d2725;--palette-dark-300:#2a2321;--palette-dark-400:#221b1a;--palette-dark-500:#181413;--palette-dark-muted:#c57a75;--palette-inverse-surface:#171717;--palette-inverse-text:#fff8ee;--palette-white:#fff;--palette-project-blue:#e3eaf0;--palette-project-green:#e4ebdb;--palette-violet-start:#a76bea;--palette-violet-end:#6a39b5;--palette-coral-start:#ff8b76;--palette-coral-end:#dd4937;--palette-charcoal-start:#4b4b4b;--palette-charcoal-end:#111;--palette-app-red-start:#ff4b47;--palette-app-red-end:#c81414;--paper:var(--palette-paper-100);--background:var(--palette-paper-100);--foreground:var(--palette-red-600);--ink:var(--palette-red-600);--card:var(--palette-paper-50);--card-foreground:var(--palette-red-600);--popover:var(--palette-paper-50);--popover-foreground:var(--palette-red-600);--primary:var(--palette-red-600);--primary-foreground:var(--palette-paper-50);--secondary:var(--palette-red-100);--secondary-foreground:var(--palette-red-600);--muted:var(--palette-paper-200);--muted-foreground:var(--palette-red-muted);--accent:var(--palette-red-100);--accent-foreground:var(--palette-red-600);--destructive:var(--palette-red-700);--border:var(--palette-red-600);--input:var(--palette-red-600);--ring:var(--palette-red-600);--grid-line:var(--palette-paper-grid);--grid-line-minor:color-mix(in srgb, var(--grid-line) 52%, transparent);--soft-red:var(--palette-red-150);--folder-accent:var(--palette-red-625);--folder-accent-hover:var(--palette-red-550);--folder-hint-foreground:var(--palette-red-625);--next-step-icon-accent:var(--folder-accent);--next-step-icon-paper:var(--palette-white);--inverse-surface:var(--palette-inverse-surface);--inverse-text:var(--palette-inverse-text);--dock-foreground:var(--palette-white);--project-ai-surface:var(--palette-project-blue);--project-system-surface:var(--palette-project-green);--detail-heading:var(--palette-inverse-surface);--detail-copy:var(--palette-inverse-surface);--project-meta-surface:var(--palette-red-100);--project-cover-blush-surface:var(--soft-red);--project-cover-blue-surface:var(--palette-project-blue);--project-cover-green-surface:var(--palette-project-green);--project-document-surface:var(--card);--project-document-border:var(--detail-heading);--profile-file-surface:var(--card);--profile-about-titlebar-surface:var(--soft-red);--profile-career-surface:var(--palette-inverse-surface);--profile-career-titlebar-surface:color-mix(in srgb, var(--palette-inverse-surface) 92%, var(--palette-white));--profile-career-accent:color-mix(in srgb, var(--palette-inverse-text) 72%, var(--palette-inverse-surface));--profile-career-copy:var(--palette-inverse-text);--profile-career-muted-copy:color-mix(in srgb, var(--palette-inverse-text) 58%, transparent);--profile-career-rule:color-mix(in srgb, var(--palette-inverse-text) 24%, transparent);--profile-career-rule-strong:color-mix(in srgb, var(--palette-inverse-text) 40%, transparent);--profile-career-command-accent:var(--palette-red-400);--profile-career-command-surface:color-mix(in srgb, var(--palette-inverse-text) 5%, transparent);--profile-career-branch-surface:color-mix(in srgb, var(--palette-red-400) 14%, transparent);--profile-copy:var(--detail-copy);--profile-muted-copy:color-mix(in srgb, var(--detail-copy) 58%, transparent);--profile-rule:color-mix(in srgb, var(--detail-copy) 18%, transparent);--profile-rule-strong:color-mix(in srgb, var(--detail-copy) 42%, transparent);--profile-photo-caption-surface:color-mix(in srgb, var(--inverse-surface) 78%, transparent);--profile-photo-caption-copy:var(--inverse-text);--stroke-ink-08:color-mix(in srgb, var(--ink) 8%, transparent);--stroke-ink-11:color-mix(in srgb, var(--ink) 11%, transparent);--stroke-ink-12:color-mix(in srgb, var(--ink) 12%, transparent);--stroke-ink-13:color-mix(in srgb, var(--ink) 13%, transparent);--stroke-ink-15:color-mix(in srgb, var(--ink) 15%, transparent);--stroke-ink-16:color-mix(in srgb, var(--ink) 16%, transparent);--stroke-ink-18:color-mix(in srgb, var(--ink) 18%, transparent);--stroke-ink-22:color-mix(in srgb, var(--ink) 22%, transparent);--stroke-ink-24:color-mix(in srgb, var(--ink) 24%, transparent);--stroke-ink-28:color-mix(in srgb, var(--ink) 28%, transparent);--stroke-ink-42:color-mix(in srgb, var(--ink) 42%, transparent);--surface-card-72:color-mix(in srgb, var(--card) 72%, transparent);--surface-card-92:color-mix(in srgb, var(--card) 92%, transparent);--surface-paper-12:color-mix(in srgb, var(--paper) 12%, transparent);--surface-soft-red-82:color-mix(in srgb, var(--soft-red) 82%, transparent);--project-document-empty-surface:color-mix(in srgb, var(--card) 88%, transparent);--article-callout-surface:var(--soft-red);--article-code-surface:var(--muted);--border-width-thin:1px;--border-width-strong:2px;--border-strong:var(--border-width-strong) solid var(--ink);--border-thin:var(--border-width-thin) solid var(--ink);--border-grid:var(--border-width-thin) solid var(--grid-line);--border-subtle-15:var(--border-width-thin) solid var(--stroke-ink-15);--border-subtle-16:var(--border-width-thin) solid var(--stroke-ink-16);--border-subtle-18:var(--border-width-thin) solid var(--stroke-ink-18);--border-subtle-22:var(--border-width-thin) solid var(--stroke-ink-22);--border-project-document:var(--border-width-strong) solid var(--project-document-border);--radius-hint-inner:1px;--radius-hint:4px;--radius-control:5px;--radius-mark:7px;--radius-inset:9px;--radius-dock-icon:11px;--radius-dialog-mobile:14px;--radius-window:16px;--radius-panel:17px;--radius-pill:999px;--shadow-hint:0 10px 20px #0000000d;--shadow-hint-inner:0 1px 3px #0003;--shadow-memory-drag:7px 9px 8px #351a1624;--shadow-product:0 19px 37px #32242124;--shadow-card-hover:8px 8px 4px var(--stroke-ink-12);--shadow-note-hover:7px 7px 3px var(--stroke-ink-11);--filter-folder-hover:drop-shadow(4px 5px 0 var(--stroke-ink-13));--shadow-dock:0 5px 18px #401a151f;--shadow-dock-icon:inset 0 1px 0 #ffffff47, 0 4px 9px #2c1e1d2e;--duration-fast:.15s;--duration-base:.18s;--duration-slow:.6s;--ease-standard:cubic-bezier(.2, .8, .2, 1);--font-editorial:"Iowan Old Style", "Baskerville", "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "Times New Roman", serif;--grid-unit:20px;--grid-unit-half:10px;--grid-major:40px;--grid-major-half:20px;--gradient-app-violet:linear-gradient(145deg, var(--palette-violet-start), var(--palette-violet-end));--gradient-app-coral:linear-gradient(145deg, var(--palette-coral-start), var(--palette-coral-end));--gradient-app-charcoal:linear-gradient(145deg, var(--palette-charcoal-start), var(--palette-charcoal-end));--gradient-app-red:linear-gradient(145deg, var(--palette-app-red-start), var(--palette-app-red-end))}.theme-dark{--paper:var(--palette-dark-500);--background:var(--palette-dark-500);--foreground:var(--palette-red-500);--ink:var(--palette-red-500);--card:var(--palette-dark-400);--card-foreground:var(--palette-red-500);--popover:var(--palette-dark-400);--popover-foreground:var(--palette-red-500);--primary:var(--palette-red-500);--primary-foreground:var(--palette-dark-500);--secondary:var(--palette-dark-100);--secondary-foreground:var(--palette-red-400);--muted:var(--palette-dark-300);--muted-foreground:var(--palette-dark-muted);--accent:var(--palette-dark-100);--accent-foreground:var(--palette-red-400);--border:var(--palette-red-500);--input:var(--palette-red-500);--ring:var(--palette-red-500);--grid-line:var(--palette-dark-200);--soft-red:var(--palette-dark-100);--detail-heading:var(--palette-inverse-text);--detail-copy:var(--palette-inverse-text);--project-meta-surface:var(--palette-dark-100);--project-cover-blush-surface:var(--palette-dark-100);--project-cover-blue-surface:color-mix(in srgb, var(--palette-project-blue) 22%, var(--background));--project-cover-green-surface:color-mix(in srgb, var(--palette-project-green) 22%, var(--background));--profile-about-titlebar-surface:var(--soft-red)}@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{--shimmer-angle:20deg}*,:before,:after{--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-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-duration: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-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}::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-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-duration: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-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--color-black:#000;--spacing:.25rem;--container-sm:24rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--blur-xs:4px;--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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,ui-sans-serif, system-ui, 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;-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{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]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance: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}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-1\/2{top:50%}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-50{z-index:50}.block{display:block}.grid{display:grid}.table{display:table}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.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}.gap-4{gap:calc(var(--spacing) * 4)}.rounded-xl{border-radius:1.2rem}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-popover{background-color:var(--popover)}.p-4{padding:calc(var(--spacing) * 4)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-popover-foreground{color:var(--popover-foreground)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.duration-100{--tw-duration:.1s;transition-duration:.1s}.outline-none{--tw-outline-style:none;outline-style:none}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-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: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,)}}@media (min-width:40rem){.sm\:max-w-sm{max-width:var(--container-sm)}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}*{box-sizing:border-box;border-color:var(--border)}html{background:var(--background);scroll-behavior:smooth}body{background:var(--background);min-width:320px;color:var(--foreground);font-family:var(--font-geist-sans), "PingFang SC", "Microsoft YaHei", sans-serif;text-rendering:optimizelegibility;margin:0;transition:background-color .22s,color .22s}button,select{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}::selection{background:var(--ink);color:var(--paper)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.grid-page{background-color:var(--background);background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px), linear-gradient(to right, var(--grid-line-minor) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line-minor) 1px, transparent 1px);background-position:calc(50% + var(--grid-major-half)) 0, 0 0, calc(50% + var(--grid-unit-half)) 0, 0 0;background-size:var(--grid-major) var(--grid-major), var(--grid-major) var(--grid-major), var(--grid-unit) var(--grid-unit), var(--grid-unit) var(--grid-unit);min-height:100svh}.page-shell{width:min(1040px,100% - 40px);margin-inline:auto}.site-header{z-index:60;pointer-events:none;background:0 0;justify-content:space-between;align-items:center;width:100%;height:50px;padding:0 40px;transition:background-color .18s;display:flex;position:fixed;top:0;left:0}.site-header[data-scrolled=true]{background:var(--background)}.site-header a,.site-header button{pointer-events:auto}.brand{letter-spacing:-.04em;font-size:16px;font-weight:760}.desktop-nav{align-items:center;gap:26px;font-size:14px;font-weight:650;display:flex}.desktop-nav a{position:relative}.desktop-nav a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .18s;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.desktop-nav a:hover:after,.desktop-nav a[aria-current=page]:after{transform-origin:0;transform:scaleX(1)}.theme-toggle,.menu-toggle,.mobile-menu-panel button{cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.theme-toggle{width:26px;height:26px;transition:transform .18s}.theme-toggle:hover{transform:rotate(22deg)}.menu-toggle,.mobile-menu-panel{display:none}.home-page{min-height:max(100svh,900px);position:relative;overflow-x:clip}.os-desktop{--home-content-top:300px;--home-content-left:max(20px, calc(50% - 500px));--home-profile-width:640px;--home-column-gap:60px;width:100%;height:100%;min-height:900px;position:relative}.home-content-layout{z-index:3;top:var(--home-content-top);left:var(--home-content-left);grid-template-columns:var(--home-profile-width) 300px;gap:var(--home-column-gap);align-items:center;display:grid;position:absolute}.intro-window{z-index:3;top:100px;left:var(--home-content-left);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform;background:0 0;width:min(1200px,100% - 40px);height:120px;min-height:0;position:absolute;overflow:hidden}.intro-window[data-dragging=true],.profile-file[data-dragging=true],.os-folder[data-dragging=true]{cursor:grabbing;filter:drop-shadow(var(--shadow-memory-drag));transition:none}.window-titlebar{background:0 0;justify-content:space-between;align-items:center;height:40px;padding:0 15px 0 13px;font-size:14px;display:flex}.intro-window-name{color:var(--muted-foreground);font:650 9px/1 var(--font-geist-mono);letter-spacing:.06em}.window-titlebar>span:last-child{font-family:var(--font-geist-sans)}.intro-window h1{height:76px;min-height:0;font-family:var(--font-editorial);letter-spacing:0;align-items:center;margin:0;padding:11px 21px;font-size:clamp(28px,3.2vw,46px);font-weight:700;line-height:1.12;display:flex}.typing-cursor{background:var(--ink);opacity:.32;width:3px;height:.95em;margin-left:4px;animation:.78s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{50%{opacity:0}}.folder-area{z-index:5;grid-template-columns:repeat(2,120px);gap:60px;width:300px;display:grid;position:relative}.home-shortcuts{align-content:center;gap:calc(var(--grid-major) * 3);display:grid}.os-folder{width:120px;height:140px;color:var(--folder-accent);text-align:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform;grid-template-rows:100px 20px;justify-items:center;gap:20px;display:grid;position:relative}.folder-shape{place-items:center;width:120px;height:100px;transition:transform .19s,filter .19s;display:grid}.folder-shape svg{width:120px;height:100px;overflow:visible}.folder-paper{fill:var(--folder-paper,var(--card))}.folder-accent{fill:var(--folder-accent)}.os-folder strong{max-width:120px;font-size:14px;font-weight:600;line-height:1.2}.folder-hint{z-index:11;transform-origin:50% 100%;border:var(--border-grid);border-radius:var(--radius-hint);width:max-content;box-shadow:var(--shadow-hint);opacity:0;pointer-events:none;will-change:transform, opacity;background:0 0;transition:opacity .2s,transform .22s;position:absolute;bottom:calc(100% + 14px);left:calc(50% + 32px);overflow:hidden;transform:translate(-50%)rotate(0)}.folder-hint-inner{border-radius:var(--radius-hint-inner);background:var(--card);box-shadow:var(--shadow-hint-inner);color:var(--folder-hint-foreground);white-space:nowrap;padding:10px;font-size:14px;font-style:normal;font-weight:500;line-height:13px;display:block}:is(.os-folder:hover,.os-folder:focus-visible){--folder-accent:var(--folder-accent-hover)}:is(.os-folder:hover .folder-shape,.os-folder:focus-visible .folder-shape){filter:var(--filter-folder-hover);transform:translateY(-2px)rotate(-1deg)}:is(.os-folder:hover .folder-hint,.os-folder:focus-visible .folder-hint){opacity:1;transition:opacity .24s cubic-bezier(.22,0,.18,1),transform .34s cubic-bezier(.2,0,.2,1.08);transform:translate(-50%)rotate(7deg)}.desktop-memories{z-index:4;grid-template-columns:repeat(2,100px);gap:20px 100px;width:300px;display:grid;position:relative}.memory-tile{z-index:1;width:100px;min-height:120px;color:var(--ink);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:filter var(--duration-fast) ease, transform var(--duration-base) var(--ease-standard);will-change:transform;background:0 0;border:0;grid-template-rows:80px 30px;align-content:start;justify-items:center;gap:10px;padding:0;display:grid;position:relative}.memory-tile:before{content:"";z-index:-1;border:var(--border-width-thin) dashed transparent;border-radius:var(--radius-control);pointer-events:none;transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;background:0 0;position:absolute;inset:-7px -8px -3px}.memory-tile:hover:before{border-color:var(--stroke-ink-28);background:var(--stroke-ink-08)}.memory-tile:focus-visible:before{border-color:var(--stroke-ink-28);background:var(--stroke-ink-08)}.memory-tile[data-selected=true]:before{border-color:var(--ink);background:var(--stroke-ink-12)}.memory-tile[data-dragging=true]{cursor:grabbing;filter:drop-shadow(var(--shadow-memory-drag));transition:none}.memory-image{border:var(--border-width-strong) solid transparent;border-radius:var(--radius-control);background:var(--muted);width:100px;height:80px;transition:border-color .15s,transform .18s;position:relative;overflow:hidden}.memory-image img{object-fit:cover;transform:scale(2.6)}:is(.memory-tile:hover .memory-image,.memory-tile:focus-visible .memory-image,.memory-tile[data-selected=true] .memory-image){border-color:var(--ink);transform:translateY(-2px)}.memory-tile:focus-visible{outline:none}.memory-tile strong{max-width:120px;color:var(--muted-foreground);text-align:center;transition:color var(--duration-fast) ease;font-size:12px;font-weight:600;line-height:1.35}:is(.memory-tile:hover strong,.memory-tile:focus-visible strong,.memory-tile[data-selected=true] strong){color:var(--ink)}.memory-paper{background:var(--card);align-content:start;gap:9px;padding:14px 12px;display:grid}.memory-paper i:first-child{color:var(--ink);font:700 9px/1 var(--font-geist-mono);letter-spacing:.08em}.memory-paper i:not(:first-child){background:var(--stroke-ink-28);height:1px}.memory-paper i:nth-child(3){width:82%}.memory-paper i:nth-child(4){width:91%}.memory-now{background:var(--inverse-surface);color:var(--inverse-text);font:700 32px/1 var(--font-editorial);place-items:center;display:grid}.memory-dialog-overlay{z-index:69!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:0 0!important}.contact-dialog-overlay{z-index:69!important;-webkit-backdrop-filter:blur(2px)!important;backdrop-filter:blur(2px)!important;background:#12100f9e!important}.memory-dialog[data-slot=dialog-content]{z-index:70;border:var(--border-strong);border-radius:calc(var(--radius-window) / 2);background:var(--card);width:min(620px,100vw - 42px);max-width:none;color:var(--ink);box-shadow:none;outline:none;gap:0;padding:0;animation:.18s cubic-bezier(.16,.9,.2,1) memory-window-in;overflow:hidden;translate:none}.memory-dialog[data-memory=photos]{width:min(720px,100vw - 42px)}.memory-dialog[data-memory=contact]{width:min(680px,100vw - 42px)}.memory-dialog-titlebar{border-bottom:var(--border-strong);background:var(--soft-red);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;height:38px;padding:0 11px 0 14px;display:flex}.memory-dialog-titlebar [data-slot=dialog-title]{font-family:var(--font-geist-sans), "PingFang SC", sans-serif;font-size:14px;font-weight:500;line-height:1}.memory-dialog-close{color:currentColor;cursor:pointer;background:0 0;border:0;place-items:center;width:28px;height:28px;padding:0;display:grid}.memory-dialog-close:hover{transform:rotate(7deg)}.memory-dialog-close:focus-visible{border-radius:var(--radius-control);background:var(--stroke-ink-08);outline:none}.memory-dialog-close svg{stroke-width:2.2px;width:17px;height:17px}.memory-dialog-body{background:var(--card);max-height:calc(100svh - 100px);overflow:auto}.contact-form{background-image:linear-gradient(to right, var(--grid-line-minor) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line-minor) 1px, transparent 1px);background-size:44px 44px;gap:20px;padding:32px 38px 38px;display:grid}.contact-form h2,.contact-form-success h2{color:var(--ink);font-family:var(--font-editorial);letter-spacing:-.035em;margin:-4px 0 -8px;font-size:clamp(34px,6vw,48px);font-weight:700;line-height:1.05}.contact-form-intro{max-width:530px;color:var(--profile-muted-copy);margin:0 0 2px;font-size:14px;line-height:1.7}.contact-form>label:not(.contact-honeypot){color:var(--ink);gap:24px;font-size:13px;font-weight:650;display:grid}.contact-form input,.contact-form textarea{border:var(--border-width-thin) solid var(--stroke-ink-22);border-radius:var(--radius-control);background:var(--card);width:100%}@supports (color:color-mix(in lab, red, red)){.contact-form input,.contact-form textarea{background:color-mix(in srgb, var(--card) 94%, transparent)}}.contact-form input,.contact-form textarea{color:var(--detail-copy);font-family:var(--font-geist-sans), "PingFang SC", sans-serif;transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;outline:none;font-size:15px;font-weight:400}.contact-form input{height:48px;padding:0 14px}.contact-form textarea{resize:vertical;min-height:150px;padding:13px 14px;line-height:1.6}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--profile-muted-copy);opacity:.68}.contact-form input:hover,.contact-form textarea:hover{border-color:var(--stroke-ink-42)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--ink);box-shadow:0 0 0 2px var(--stroke-ink-12)}.contact-honeypot{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!important}.contact-form-error{color:var(--destructive);margin:-5px 0 0;font-size:12px;font-weight:650}.contact-form-submit,.contact-form-success button{border-radius:var(--radius-control);background:var(--ink);min-height:48px;color:var(--primary-foreground);cursor:pointer;transition:transform var(--duration-fast) ease, opacity var(--duration-fast) ease;border:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:720;display:inline-flex}.contact-form-submit svg{width:17px;height:17px}.contact-form-submit:hover,.contact-form-success button:hover{transform:translateY(-1px)}.contact-form-submit:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.contact-form-success button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.contact-form-submit:disabled{cursor:wait;opacity:.62;transform:none}.contact-form-success{background-image:linear-gradient(to right, var(--grid-line-minor) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line-minor) 1px, transparent 1px);background-size:44px 44px;align-content:center;justify-items:start;gap:18px;min-height:470px;padding:56px 42px;display:grid}.contact-form-success>span{border:var(--border-strong);width:42px;height:42px;color:var(--ink);border-radius:50%;place-items:center;font-size:22px;font-weight:750;display:grid}.contact-form-success p:not(.dialog-kicker){max-width:430px;color:var(--profile-muted-copy);margin:0 0 8px;font-size:14px;line-height:1.7}.contact-form-success button{min-width:130px}.dialog-photo{background:var(--muted);position:relative;overflow:hidden}.dialog-photo img{object-fit:cover}.dialog-photo-about{aspect-ratio:4/3;border-radius:var(--radius-inset);margin:10px}.dialog-photo-about img{transform:scale(2.6)}.dialog-note{border:var(--border-width-thin) solid var(--stroke-ink-42);border-radius:var(--radius-inset);background:var(--paper);margin:0 10px 10px;padding:16px 17px 17px}.dialog-note span,.dialog-kicker{font-family:var(--font-geist-mono), monospace;letter-spacing:.09em;font-size:10px;font-weight:750}.dialog-note p{color:var(--ink);font-family:var(--font-editorial);margin:10px 0 13px;font-size:clamp(20px,3vw,28px);font-weight:700;line-height:1.28}.dialog-note a,.memory-dialog-writing a,.memory-dialog-experience a,.dialog-linkline{text-underline-offset:3px;font-size:12px;font-weight:700;text-decoration:underline}.dialog-photo-roll{aspect-ratio:16/9;border-radius:var(--radius-inset);margin:10px}.dialog-linkline{justify-content:space-between;padding:4px 14px 15px;text-decoration:none;display:flex}.memory-dialog-writing{background-image:linear-gradient(to bottom, transparent 43px, var(--grid-line) 44px);background-size:100% 44px;min-height:390px;padding:38px 42px 42px}.memory-dialog-writing h2{max-width:500px;font-family:var(--font-editorial);letter-spacing:-.035em;margin:56px 0 20px;font-size:clamp(31px,5vw,50px);line-height:1.08}.memory-dialog-writing>p:not(.dialog-kicker){max-width:460px;margin:0 0 28px;font-size:14px;line-height:1.8}.memory-dialog-experience{grid-template-columns:158px 1fr;align-items:start;gap:32px;min-height:350px;padding:34px;display:grid}.experience-mark{aspect-ratio:1;border-radius:var(--radius-mark);background:var(--inverse-surface);color:var(--inverse-text);font:700 52px/1 var(--font-editorial);place-items:center;display:grid}.memory-dialog-experience h2{font-family:var(--font-editorial);color:var(--detail-heading);margin:26px 0 12px;font-size:24px;line-height:1}.memory-dialog-experience p:not(.dialog-kicker){color:var(--detail-copy);margin:0;font-size:13px}@supports (color:color-mix(in lab, red, red)){.memory-dialog-experience p:not(.dialog-kicker){color:color-mix(in srgb, var(--detail-copy) 68%, transparent)}}.memory-dialog-experience ul{gap:8px;margin:24px 0 34px;padding:0;font-size:12px;line-height:1.45;list-style:none;display:grid}.memory-dialog-experience li h2{margin-top:10px}.memory-dialog-experience li span{font-family:var(--font-geist-mono), monospace;margin-right:10px;font-size:10px;font-weight:720}@keyframes memory-window-in{0%{opacity:0;scale:.97}to{opacity:1;scale:1}}.os-dock{z-index:45;border:var(--border-strong);border-radius:var(--radius-window);background:var(--surface-soft-red-82);box-shadow:var(--shadow-dock);-webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px);gap:12px;padding:12px 13px;display:flex;position:absolute;bottom:21px;left:50%;transform:translate(-50%)}.home-profile-section{width:var(--home-profile-width);position:relative}.profile-identity p,.career-heading p{font:700 8px/1 var(--font-geist-mono);letter-spacing:.1em;margin:0}.profile-file-grid{grid-template-columns:300px 300px;align-items:stretch;gap:40px;display:grid}.profile-file{--profile-window-accent:var(--ink);--profile-window-shadow:var(--shadow-card-hover);border:var(--border-width-strong) solid var(--profile-window-accent);border-radius:calc(var(--radius-panel) / 2);width:300px;color:var(--profile-copy);transition:transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;overflow:hidden}.profile-file-about{--profile-titlebar-surface:var(--profile-about-titlebar-surface);background:var(--profile-file-surface);width:300px}.profile-file-career{--profile-window-accent:#3f695f;--profile-window-shadow:8px 8px 4px #264b4224;--profile-titlebar-surface:#dce9e3;--profile-copy:#1d211f;--profile-muted-copy:#626a66;--profile-rule:#4f756b33;--profile-rule-strong:#4f756b6b;--profile-career-surface:var(--profile-file-surface);--profile-career-command-accent:#2f6f60;--profile-career-command-surface:#143b33;--profile-career-command-copy:#f1f0e7;--profile-career-branch-surface:#2f6f601c;background:var(--profile-career-surface);width:300px;font-family:var(--font-geist-mono), "SFMono-Regular", Consolas, "Liberation Mono", "PingFang SC", monospace}.profile-file-career .profile-file-titlebar{color:var(--profile-window-accent)}.profile-file-titlebar{border-bottom:var(--border-width-strong) solid var(--profile-window-accent);background:var(--profile-titlebar-surface);min-height:31px;color:var(--profile-window-accent);font:650 9px/1 var(--font-geist-mono);grid-template-columns:14px 1fr 14px;align-items:center;padding:0 11px;display:grid}.profile-file-titlebar span:nth-child(2){text-align:center}.profile-file-titlebar span:last-child{font-family:var(--font-geist-sans);text-align:right;font-size:14px}.terminal-titlebar{grid-template-columns:40px 1fr 14px}.terminal-window-controls{align-items:center;gap:4px;display:flex}.terminal-window-controls i{border:var(--border-width-thin) solid currentColor;border-radius:50%;width:5px;height:5px;display:block}.terminal-window-controls i:first-child{border-color:var(--profile-career-command-accent);background:var(--profile-career-command-accent)}.profile-file-body,.career-file-body{padding:16px}.profile-identity,.career-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.profile-identity h3{font-family:var(--font-editorial);letter-spacing:-.065em;margin:7px 0 0;font-size:clamp(42px,4.5vw,62px);line-height:.82}.profile-identity>span{border:var(--border-thin);border-radius:var(--radius-pill);color:var(--ink);padding:6px 8px;font-size:9px;font-weight:700}.profile-photo-strip{background:var(--muted);border:0;border-radius:0;height:clamp(104px,13vh,128px);margin:18px 0 16px;position:relative;overflow:hidden}.profile-photo-strip img{object-fit:cover}.profile-photo-strip figcaption{border-radius:var(--radius-control);background:var(--profile-photo-caption-surface);color:var(--profile-photo-caption-copy);font:650 8px/1 var(--font-geist-mono);letter-spacing:.08em;padding:6px 8px;position:absolute;bottom:8px;right:8px}.profile-summary,.career-summary{font-family:var(--font-editorial);letter-spacing:-.015em;margin:0;font-size:14px;font-weight:650;line-height:1.55}.profile-summary{letter-spacing:0;gap:10px;font-size:14px;font-weight:500;line-height:1.7;display:grid}.profile-summary p{margin:0}.profile-facts{border-top:var(--border-width-thin) solid var(--profile-rule);border-bottom:var(--border-width-thin) solid var(--profile-rule);gap:14px;margin:17px 0 0;padding:20px 0;display:grid}.profile-facts>div{grid-template-columns:auto 1fr auto;align-items:center;gap:9px;display:grid}.profile-facts dt,.profile-facts dd{margin:0;font-size:14px}.profile-facts dt{align-items:center;gap:11px;font-weight:400;display:inline-flex}.profile-fact-icon{object-fit:contain;width:16px;height:16px;image-rendering:pixelated}.profile-facts dd{text-align:right}.profile-facts div>span{border-bottom:var(--border-width-thin) dotted var(--profile-rule-strong)}.profile-contact{grid-template-columns:auto 1fr auto;align-items:center;gap:9px;margin:20px 0 4px;display:grid}.profile-contact>span{border-bottom:var(--border-width-thin) dotted var(--profile-rule-strong)}.profile-contact dt,.profile-contact dd{margin:0;font-size:14px}.profile-contact dt{align-items:center;gap:11px;font-weight:400;display:inline-flex}.profile-contact dd{text-align:right}.profile-contact button{color:var(--profile-copy);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}:is(.profile-contact button:hover,.profile-contact button:focus-visible){text-underline-offset:2px;text-decoration:underline}.profile-contact button:focus-visible{outline:2px solid var(--profile-window-accent);outline-offset:4px}.profile-footer{border-top:var(--border-width-thin) solid var(--profile-rule);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:16px;display:flex}.profile-footer>span:first-child{color:var(--profile-muted-copy);font:600 7px/1.45 var(--font-geist-mono);letter-spacing:.02em;align-items:flex-start;gap:5px;display:inline-flex}.profile-footer>span:first-child i{background:var(--profile-copy);width:6px;height:6px;box-shadow:0 0 0 2px var(--profile-copy);border-radius:50%;flex:none;margin-top:2px}@supports (color:color-mix(in lab, red, red)){.profile-footer>span:first-child i{box-shadow:0 0 0 2px color-mix(in srgb, var(--profile-copy) 12%, transparent)}}.profile-footer>span:last-child{color:var(--profile-copy);font:700 10px/1 var(--font-geist-mono);flex:none}.copy-toast{z-index:100;border:var(--border-width-strong) solid var(--ink);background:var(--card);min-width:290px;color:var(--profile-copy);box-shadow:6px 6px 0 var(--ink);border-radius:4px;align-items:center;gap:10px;padding:15px 20px;display:flex;position:fixed;bottom:28px;left:50%}@supports (color:color-mix(in lab, red, red)){.copy-toast{box-shadow:6px 6px 0 color-mix(in srgb, var(--ink) 18%, transparent)}}.copy-toast{pointer-events:none;animation:copy-toast-in .18s var(--ease-standard) both}.copy-toast[data-result=error]{border-color:var(--destructive)}.copy-toast-icon{border:var(--border-width-thin) solid var(--ink);background:var(--soft-red);width:24px;height:24px;color:var(--ink);flex:none;place-items:center;display:grid}.copy-toast-icon svg{stroke-width:3px;width:14px;height:14px}.copy-toast>span:last-child{gap:3px;display:grid}.copy-toast strong{color:var(--ink);font:750 16px/1.15 var(--font-geist-sans)}.copy-toast small{font:550 12px/1.3 var(--font-geist-mono)}@keyframes copy-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.career-footer{justify-content:space-between;align-items:center;gap:18px;margin-top:17px;display:flex}.career-footer a{color:var(--profile-window-accent);align-items:center;gap:5px;font-size:10px;font-weight:750;display:inline-flex}.career-footer svg{width:12px;height:12px}.career-file-body{padding:16px}.career-terminal-command{border:var(--border-width-thin) solid var(--profile-rule-strong);border-radius:var(--radius-control);background:var(--profile-career-command-surface);min-height:46px;color:var(--profile-career-command-copy);flex-wrap:nowrap;align-content:center;align-items:center;gap:6px;margin-bottom:8px;padding:8px 10px;font-size:10px;line-height:1.35;display:flex;overflow:hidden}.terminal-prompt{opacity:.82;font-size:12px;display:inline-flex}.terminal-prompt strong{color:var(--profile-career-command-accent);font-weight:750}.career-terminal-command .terminal-prompt strong{color:#d8f3e8}.terminal-prompt span{color:var(--profile-muted-copy)}.career-terminal-command .terminal-prompt span{color:#e4f0ec}.career-terminal-command code,.career-commit-line code,.career-footer code{font:inherit}.career-terminal-command code{white-space:nowrap;font-size:12px}.terminal-cursor{background:#49aaa2;width:4px;height:8px;animation:.78s step-end infinite cursor-blink;display:inline-block}.career-heading>div{max-width:164px}.career-heading h3{letter-spacing:-.055em;margin:10px 0 0;font-family:inherit;font-size:clamp(21px,1.8vw,27px);font-weight:620;line-height:1.22}.career-heading>strong{color:var(--profile-window-accent);letter-spacing:-.09em;font-family:inherit;font-size:clamp(35px,3.5vw,48px);font-weight:650;line-height:.9}.career-summary{border-bottom:var(--border-width-thin) solid var(--profile-rule-strong);letter-spacing:-.015em;grid-template-columns:13px 1fr;gap:4px;max-width:520px;margin-top:16px;padding-bottom:16px;font-family:inherit;font-size:9px;font-weight:520;line-height:1.7;display:grid}.career-summary>span{color:var(--profile-career-command-accent)}.career-timeline{margin:0;padding:0;list-style:none}.career-timeline li{border-bottom:var(--border-width-thin) solid var(--profile-rule-strong);grid-template-columns:58px 18px 1fr;gap:8px;min-height:128px;display:grid;position:relative}.career-timeline time{text-align:center;color:var(--profile-muted-copy);font:650 10px/1.4 var(--font-geist-mono);padding-top:43px}.career-node{justify-content:center;display:flex;position:relative}.career-node:before{content:"";width:var(--border-width-thin);background:var(--profile-rule-strong);position:absolute;top:0;bottom:0;left:50%}.career-node span{z-index:1;border:var(--border-width-strong) solid var(--profile-window-accent);background:var(--profile-career-surface);border-radius:50%;place-items:center;width:13px;height:13px;margin-top:42px;display:grid;position:relative}.career-node span:after{content:"";background:var(--profile-career-command-accent);border-radius:50%;width:3px;height:3px}.career-entry{padding:20px 0 18px}.career-commit-line{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:10px;font-size:10px;line-height:1;display:flex}.career-commit-line code{color:var(--profile-career-command-accent);font-weight:700}.career-commit-line span{border:var(--border-width-thin) solid var(--profile-career-command-accent);border-radius:var(--radius-pill);background:var(--profile-career-branch-surface);color:var(--profile-career-command-accent);white-space:nowrap;padding:3px 5px;font-size:7px;font-weight:700}.career-entry h4{font-family:var(--font-geist-sans), "PingFang SC", "Microsoft YaHei", sans-serif;margin:0 0 7px;font-size:16px;font-weight:600;line-height:1.3}.career-entry strong{color:var(--profile-window-accent);font-size:8px;line-height:1.5}.career-entry p{color:var(--profile-muted-copy);font-family:var(--font-geist-sans), "PingFang SC", "Microsoft YaHei", sans-serif;margin:6px 0 0;font-size:12px;font-weight:400;line-height:1.7}.career-entry p span{color:var(--profile-career-command-accent)}.career-footer>span{color:var(--profile-muted-copy);font:600 7px/1.45 var(--font-geist-mono);letter-spacing:.02em}.career-footer>span i{background:var(--profile-career-command-accent);width:5px;height:5px;box-shadow:0 0 0 2px var(--profile-career-branch-surface);border-radius:50%;margin-right:4px;display:inline-block}.dock-app{border-radius:var(--radius-dock-icon);width:48px;height:48px;color:var(--dock-foreground);box-shadow:var(--shadow-dock-icon);place-items:center;transition:transform .17s cubic-bezier(.2,.8,.2,1);display:grid}:is(.dock-app:hover,.dock-app:focus-visible){transform:translateY(-8px)scale(1.06)}.dock-app svg{width:24px;height:24px}.app-violet{background:var(--gradient-app-violet)}.app-coral{background:var(--gradient-app-coral)}.app-charcoal{background:var(--gradient-app-charcoal)}.app-red{background:var(--gradient-app-red)}.site-footer{border-top:var(--border-thin);justify-content:space-between;align-items:center;gap:24px;min-height:94px;font-size:12px;display:flex}.site-footer button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:650}@media (max-width:1240px){.home-page{height:auto;min-height:100svh;overflow-x:clip}.os-desktop{height:auto;min-height:0;padding:260px 20px 60px}.home-profile-section{width:100%;position:relative;top:auto;left:auto;transform:none}.home-content-layout{display:block;position:relative;top:auto;left:auto}.home-shortcuts{width:300px;margin:40px 0 0 auto}.folder-area{width:300px;margin:0;position:relative;top:auto;left:auto;right:auto}.desktop-memories{width:min(300px,100%);margin:0;position:relative;inset:auto}}@media (max-width:760px){.grid-page{background-position:var(--grid-unit) 0, 0 0, var(--grid-unit) 0, 0 0}.site-header{height:55px;padding:0 20px}.desktop-nav{display:none}.menu-toggle{display:grid}.mobile-menu-panel{z-index:50;background:var(--background);opacity:0;visibility:hidden;padding:76px 23px 120px;transition:opacity .18s,transform .18s,visibility .18s;display:block;position:fixed;inset:0;transform:translateY(-8px)}.mobile-menu-panel[data-open=true]{opacity:1;visibility:visible;transform:translateY(0)}.mobile-menu-panel nav{justify-items:end;gap:24px;display:grid}.mobile-menu-panel a{font-size:28px;font-weight:680;line-height:1.1}.mobile-menu-panel button{width:34px;height:34px;margin-top:4px}.home-page{height:auto;min-height:100svh}.os-desktop{height:auto;min-height:0;padding:260px 20px 60px}.intro-window{border-radius:var(--radius-window);width:calc(100% - 40px);height:120px;min-height:0;top:80px;left:20px}.intro-window h1{align-items:flex-start;height:76px;min-height:0;padding:10px 12px 12px;font-size:clamp(27px,7.5vw,32px);line-height:1.16}.os-folder{width:120px}.folder-shape,.folder-shape svg{width:120px;height:100px}.folder-area{grid-template-columns:repeat(2,120px);justify-content:center;gap:40px;width:min(280px,100%);margin-top:0}.desktop-memories{grid-template-columns:repeat(2,100px);justify-content:center;gap:20px 80px;width:min(280px,100%);margin:0 auto}.memory-dialog[data-slot=dialog-content]{border-radius:calc(var(--radius-dialog-mobile) / 2);width:calc(100vw - 30px);max-height:calc(100svh - 30px)}.memory-dialog-titlebar{height:36px}.memory-dialog-body{max-height:calc(100svh - 70px)}.contact-form{gap:17px;padding:26px 22px 28px}.contact-form h2,.contact-form-success h2{font-size:34px}.contact-form textarea{min-height:132px}.contact-form-success{min-height:430px;padding:38px 25px}.dialog-photo-about{aspect-ratio:1/1.08}.memory-dialog-writing{min-height:430px;padding:31px 25px 36px}.memory-dialog-writing h2{margin-top:42px}.memory-dialog-experience{grid-template-columns:92px 1fr;gap:20px;padding:25px}.experience-mark{font-size:34px}.memory-dialog-experience h2{margin-top:18px}.os-dock{z-index:55;gap:10px;padding:12px;bottom:28px}.dock-app{width:50px;height:50px}.home-profile-section{width:100%}.profile-file-grid{grid-template-columns:1fr;gap:20px}.profile-file{width:100%}.profile-file-career{margin-top:0}.profile-file-body,.career-file-body{padding:20px}.profile-identity h3{font-size:62px}.profile-photo-strip{height:154px}.profile-summary{font-size:15px}.career-heading{grid-template-columns:1fr auto;gap:12px;display:grid}.career-heading>div{max-width:220px}.career-heading h3{font-size:clamp(22px,7vw,28px)}.career-timeline li{grid-template-columns:58px 18px 1fr;gap:8px;min-height:0}.career-timeline time{font-size:10px}.career-entry h4{font-size:16px}.career-footer{align-items:flex-end}.career-footer>span{max-width:150px}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;min-height:130px;padding:28px 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@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-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-duration{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}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}.content-page{min-height:100svh;padding-top:50px}.page-hero{padding:42px 0 34px}.page-hero>span{font:650 10px/1 var(--font-geist-mono);letter-spacing:.08em;margin-bottom:15px;display:block}.page-hero h1{font-family:var(--font-editorial);letter-spacing:-.045em;margin:0;font-size:clamp(43px,5vw,64px);font-weight:700;line-height:1.08}.page-hero p{max-width:590px;margin:15px 0 0;font-size:14px;line-height:1.65}.page-content{padding-bottom:100px}.section-index-page .page-hero>span{color:var(--palette-red-600)}.section-index-page .page-hero{padding-top:40px;padding-bottom:40px}.section-index-page .page-hero h1{color:var(--detail-heading)}.section-index-page .page-hero p{color:color-mix(in srgb, var(--detail-copy) 78%, transparent)}.project-filter{justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px;display:flex}.project-filter-select{border:var(--border-strong);border-radius:var(--radius-pill);background:var(--paper);width:235px;height:44px;color:var(--ink);outline:none;padding:0 14px;font-size:15px;font-weight:620}.portfolio-page .project-filter-select{border:var(--border-width-thin) solid color-mix(in srgb, var(--detail-heading) 28%, transparent);background:var(--card);width:220px;height:40px;color:var(--detail-heading);font:650 13px/1 var(--font-geist-mono);letter-spacing:.02em;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m3.5 6 4.5 4 4.5-4' stroke='%23221b1a' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:16px 16px;border-radius:3px;padding-inline:14px}.portfolio-page .project-filter-select:focus{border-color:var(--palette-red-600);box-shadow:none;outline:none}.project-filter>span{font:550 10px/1 var(--font-geist-mono);letter-spacing:.06em}.portfolio-page .project-filter>span{color:color-mix(in srgb, var(--detail-copy) 64%, transparent)}.portfolio-pdf-button{border:var(--border-width-thin) solid color-mix(in srgb, var(--detail-heading) 28%, transparent);background:var(--card);min-height:40px;color:var(--detail-heading);font:650 13px/1 var(--font-geist-mono);letter-spacing:.02em;border-radius:3px;justify-content:center;align-items:center;padding:0 14px;transition:background-color .16s;display:inline-flex}:is(.portfolio-pdf-button:hover,.portfolio-pdf-button:focus-visible){border-color:var(--palette-red-600);background:var(--palette-red-100)}.portfolio-pdf-button:focus-visible{box-shadow:none;outline:none}.portfolio-page .project-filter{justify-content:flex-start;margin-bottom:40px}.os-card-list,.article-cards{gap:20px;padding-bottom:110px;display:grid}.article-index-window{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:40px;margin-bottom:110px;display:grid}.article-preview-card{background:var(--card);min-width:0;height:440px;transition:transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard);border:0;border-radius:3px;flex-direction:column;display:flex;position:relative;box-shadow:0 3px 5px #2f1c181f,0 17px 30px #2f1c182b}:is(.article-preview-card:hover,.article-preview-card:focus-visible){z-index:2;outline:none;transform:translateY(-5px);box-shadow:0 5px 8px #2f1c1824,0 22px 34px #2f1c1838}.article-preview-card-header{flex-direction:column;flex:0 0 94px;justify-content:flex-start;gap:12px;min-height:94px;padding:24px;display:flex}.article-preview-card-header h2{font-family:var(--font-editorial);letter-spacing:-.025em;margin:0;font-size:24px;font-weight:700;line-height:1.18}.article-preview-card-header>div,.article-preview-card-header>div span,.article-preview-card-footer{align-items:center;display:flex}.article-preview-card-header>div{color:color-mix(in srgb, var(--detail-copy) 62%, transparent);font:600 10px/1 var(--font-geist-mono);letter-spacing:.07em;gap:7px}.article-preview-card-header>div span:last-child{gap:4px}.article-paper-preview{border:var(--border-width-thin) solid #342a2714;background:var(--paper);border-radius:3px;flex:auto;min-height:0;margin:0 24px 12px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff8c}.article-document-preview{width:172%;min-height:900px;color:var(--detail-copy);font-family:var(--font-geist-sans), "PingFang SC", sans-serif;transform-origin:0 0;padding:24px;font-size:15px;line-height:1.72;transform:scale(.58)}.article-document-preview p{margin:0 0 22px}.article-document-preview h2,.article-document-preview h3{font-family:var(--font-editorial);margin:34px 0 12px;line-height:1.2}.article-document-preview h2{font-size:30px}.article-document-preview h3{font-size:23px}.article-document-preview ul,.article-document-preview ol{margin:0 0 22px;padding-left:24px}.article-document-preview blockquote{border-left:3px solid var(--stroke-ink-22);font-family:var(--font-editorial);margin:22px 0;padding-left:18px;font-size:18px}.article-document-preview pre,.article-document-preview code{font-family:var(--font-geist-mono)}.article-document-preview pre{background:var(--muted);padding:14px;overflow:hidden}.article-paper-rule{background:var(--stroke-ink-28);height:1px;margin:22px 0 15px}.article-paper-tags{font:650 8px/1 var(--font-geist-mono);flex-wrap:wrap;gap:8px;display:flex}.article-paper-preview>i{background:var(--stroke-ink-18);height:1px;margin-top:18px;display:block}.article-paper-preview>i:nth-last-child(2){width:82%}.article-paper-preview>i:last-child{width:62%}.article-preview-card-footer{height:36px;color:var(--muted-foreground);font:650 8px/1 var(--font-geist-mono);letter-spacing:.07em;flex:0 0 36px;justify-content:space-between;padding:0 24px 12px;display:flex}.article-preview-card-footer svg{transition:transform var(--duration-fast) ease}:is(.article-preview-card:hover .article-preview-card-footer svg,.article-preview-card:focus-visible .article-preview-card-footer svg){transform:translate(2px,-2px)}.os-project-card{border:var(--border-strong);border-radius:var(--radius-panel);background:var(--card);grid-template-columns:40% 60%;min-height:280px;transition:transform .19s,box-shadow .19s;display:grid;overflow:hidden}.portfolio-page .os-project-card{background:var(--card);transition:transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard);border:0;border-radius:3px;box-shadow:0 3px 5px #2f1c181f,0 17px 30px #2f1c182b}:is(.os-project-card:hover,.os-project-card:focus-visible){box-shadow:var(--shadow-card-hover);outline:none;transform:translateY(-6px)}:is(.portfolio-page .os-project-card:hover,.portfolio-page .os-project-card:focus-visible){border:0;transform:translateY(-5px);box-shadow:0 5px 8px #2f1c1824,0 22px 34px #2f1c1838}.portfolio-page .os-card-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:40px}.portfolio-primary-list{padding-bottom:40px}.portfolio-extra-list{padding-top:40px;padding-bottom:110px}.portfolio-expand-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-bottom:40px;display:grid}.portfolio-expand-row>*{grid-column:1/-1}.portfolio-expand-button{color:var(--palette-red-600);cursor:pointer;font:650 13px/1 var(--font-geist-mono);letter-spacing:.02em;background:0 0;border:0;justify-self:start;padding:8px 0;transition:color .16s}:is(.portfolio-expand-button:hover,.portfolio-expand-button:focus-visible){color:var(--detail-heading)}.portfolio-expand-button:focus-visible{outline:2px solid var(--palette-red-600);outline-offset:3px}.portfolio-page .os-project-card{grid-template-rows:auto 187px;grid-template-columns:1fr;height:auto;min-height:0}.portfolio-page .os-project-visual{aspect-ratio:500/280;border-bottom:0;border-right:0;min-height:0}.portfolio-page .os-project-copy{height:187px;min-height:0;padding:28px 32px 20px;position:relative}.portfolio-page .content-card-meta{position:absolute;bottom:20px;right:32px}.portfolio-page .content-card-tags{margin-top:auto}.os-project-visual{border-right:var(--border-subtle-16);background:var(--project-cover-blush-surface);min-height:280px;position:relative;overflow:hidden}.portfolio-page .os-project-visual{border-right-color:color-mix(in srgb, var(--detail-heading) 16%, transparent)}.project-cover-media{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.project-cover-blush{background:var(--project-cover-blush-surface)}.project-cover-blue{background:var(--project-cover-blue-surface)}.project-cover-green{background:var(--project-cover-green-surface)}.project-cover-media>img{width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-standard);position:absolute;inset:0}:is(.os-project-card:hover .project-cover-media img,.os-project-card:focus-visible .project-cover-media img){transform:scale(1.025)}.project-cover-fallback{width:100%;height:100%;color:var(--ink);flex-direction:column;justify-content:space-between;padding:58px 30px 26px;display:flex}.project-cover-fallback span,.project-cover-fallback small{font:650 9px/1 var(--font-geist-mono);letter-spacing:.08em}.project-cover-fallback strong{max-width:310px;font-family:var(--font-editorial);letter-spacing:-.035em;font-size:clamp(24px,2.8vw,38px);line-height:1.08}.project-cover-fallback small{opacity:.58;align-self:flex-end}.os-project-copy{flex-direction:column;justify-content:space-between;padding:28px 26px;display:flex}.content-card-meta{font:600 10px/1 var(--font-geist-mono);letter-spacing:.07em;justify-content:space-between;align-items:center;gap:18px;display:flex}.portfolio-page .content-card-meta{color:color-mix(in srgb, var(--detail-copy) 62%, transparent)}.content-card-reading-time,.content-card-reading-time>span{align-items:center;gap:6px;display:flex}.content-card-reading-time{gap:16px}.os-project-copy h2{font-family:var(--font-editorial);letter-spacing:-.035em;margin:0 0 12px;font-size:clamp(25px,2.7vw,32px);font-weight:700;line-height:1.16}.portfolio-page .os-project-copy h2{font-family:var(--font-geist-sans);letter-spacing:-.04em;color:var(--palette-red-600);font-weight:750}.os-project-copy p{max-width:560px;margin:0;font-size:13px;line-height:1.55}.portfolio-page .os-project-copy p{color:color-mix(in srgb, var(--detail-copy) 82%, transparent);-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.content-card-tags{font:700 11px/1.3 var(--font-geist-mono);letter-spacing:.01em;flex-wrap:wrap;align-self:flex-start;gap:12px;display:flex}.portfolio-page .content-card-tags{color:var(--palette-red-600)}.photo-album{padding-bottom:110px}.photo-album figure{margin:0}.album-cover{border:var(--border-strong);border-radius:var(--radius-panel);background:var(--card);padding:8px;margin-bottom:58px!important}.album-cover>img{aspect-ratio:2.1;object-fit:cover;border-radius:var(--radius-inset);width:100%;display:block}.album-cover figcaption,.album-frame figcaption{font:600 9px/1 var(--font-geist-mono);letter-spacing:.06em;justify-content:space-between;align-items:center;display:flex}.album-cover figcaption{padding:13px 8px 6px}.album-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.album-frame{border:var(--border-strong);border-radius:var(--radius-panel);background:var(--card);padding:8px;transition:transform .19s,box-shadow .19s}.album-frame:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-6px)}.album-frame>div{aspect-ratio:1/.82;border-radius:var(--radius-inset);position:relative;overflow:hidden}.album-frame img{object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1);transform:scale(2.6)}.album-frame:hover img{transform:scale(2.67)}.album-frame figcaption{padding:13px 5px 5px}.album-frame figcaption span:last-child{align-items:center;gap:4px;display:flex}.notes-page{--log-red:#d92d20;--log-ink:var(--detail-heading);--log-line:color-mix(in srgb, var(--log-ink) 74%, transparent)}.note-windows{width:100%;padding-bottom:110px}.notes-timeline{flex-direction:column;gap:42px;width:min(100%,1040px);max-width:1040px;margin:0 auto;padding:24px 0 18px;list-style:none;display:flex;position:relative}.notes-timeline:before{background:var(--log-red);content:"";width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.notes-timeline-item{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);align-items:start;gap:0;min-height:0;display:grid;position:relative}.notes-timeline-node{z-index:1;border:1px solid var(--log-red);background:var(--paper);border-radius:0;grid-area:1/2;place-self:start center;width:13px;height:13px;margin-top:23px}.notes-timeline-date{color:var(--log-ink);font:650 .875rem/1 var(--font-geist-mono);letter-spacing:.04em;text-transform:uppercase;flex-direction:column;grid-row:1;align-self:start;gap:7px;margin-top:22px;display:flex}.notes-timeline-date strong{font-weight:700}.notes-timeline-item:nth-child(odd) .notes-timeline-date{text-align:left;grid-column:3;justify-self:start}.notes-timeline-item:nth-child(2n) .notes-timeline-date{text-align:right;grid-column:1;justify-self:end}.notes-timeline article{border:var(--border-strong);background:var(--card);width:340px;min-width:0;color:var(--card-foreground);border-radius:3px;grid-row:1;position:relative;overflow:visible}.notes-timeline-item:nth-child(odd) article{grid-column:1;justify-self:end;margin-right:32px}.notes-timeline-item:nth-child(2n) article{grid-column:3;justify-self:start;margin-left:32px}.notes-timeline article:before{background:var(--log-red);content:"";pointer-events:none;width:32px;height:1px;position:absolute;top:27px}.notes-timeline-item:nth-child(odd) article:before{right:-32px}.notes-timeline-item:nth-child(2n) article:before{left:-32px}.notes-timeline article.inverted{background:var(--ink);color:var(--paper);border-color:currentColor}.notes-timeline .note-window-body{flex-direction:column;min-height:0;padding:22px;display:flex}.notes-timeline .note-window-body>svg{flex:none;margin-bottom:20px}.notes-timeline .note-window-body p{color:var(--detail-copy);font-family:var(--font-editorial);letter-spacing:-.02em;margin:0 0 20px;font-size:16px;font-weight:700;line-height:1.45}.notes-timeline article.inverted .note-window-body p{color:inherit}.notes-timeline .note-window-body>p:last-child{margin-bottom:0}.notes-timeline .note-media-image{border:var(--border-width-thin) solid var(--stroke-ink-42);border-radius:inherit;background:var(--soft-red);width:100%;margin:0;overflow:hidden}.notes-timeline .note-media-image img{object-fit:contain;width:100%;height:auto;max-height:520px;display:block}.notes-timeline .note-media-player{border:var(--border-width-thin) solid var(--stroke-ink-42);border-radius:inherit;background:#fff;margin:0;overflow:hidden}.notes-timeline .note-media-player iframe{border:0;width:100%;display:block}.notes-timeline .note-media-player--netease{height:66px}.notes-timeline .note-media-player--netease iframe{width:calc(100% + 20px);height:86px;margin:-10px 0 0 -10px}.notes-timeline .note-media-player--bilibili iframe{aspect-ratio:16/9;height:auto}.notes-timeline .note-media-unavailable{border:var(--border-width-thin) solid var(--stroke-ink-42);border-radius:inherit;background:var(--soft-red);color:var(--log-ink);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:0;padding:13px 14px;display:grid}.notes-timeline article.inverted .note-media-unavailable{background:var(--surface-paper-12);color:inherit}.notes-timeline .note-media-unavailable span{flex-direction:column;gap:4px;min-width:0;display:flex}.notes-timeline .note-media-unavailable strong{font-size:.8125rem;font-weight:650}.notes-timeline .note-media-unavailable small{font:.75rem/1.35 var(--font-geist-mono);opacity:.72}:is(.notes-timeline .note-media-unavailable:hover,.notes-timeline .note-media-unavailable:focus-visible){background:var(--log-red);color:#fff;outline:0}.resume-window{margin-bottom:110px}.resume-window-body{grid-template-columns:1fr 1fr;align-items:center;gap:40px;min-height:300px;padding:36px;display:grid}.resume-window-body>div+div{border-left:var(--border-thin);padding-left:40px}.resume-window-body span{font:600 10px/1 var(--font-geist-mono);letter-spacing:.08em}.resume-window-body h2{font-family:var(--font-editorial);letter-spacing:-.04em;margin:20px 0 11px;font-size:clamp(28px,3.2vw,42px);line-height:1.12}.resume-window-body p{margin:0;font-size:13px}.project-detail{width:min(1360px,100% - 40px);padding-top:72px;padding-bottom:120px}.project-detail-header{padding:46px 0 70px}.content-detail-header,.project-detail-header>a,.editorial-detail-header>a,.photo-detail-header>a{position:relative}.project-detail-header>a{margin-bottom:60px;font-size:12px;font-weight:700;display:inline-block}.project-detail-header>a:after,.editorial-detail-header>a:after,.photo-detail-header>a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .18s;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.project-detail-header>a:hover:after,.editorial-detail-header>a:hover:after,.photo-detail-header>a:hover:after{transform-origin:0;transform:scaleX(1)}.project-detail-header>a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.editorial-detail-header>a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.photo-detail-header>a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.project-detail-header h1{max-width:1020px;color:var(--detail-heading);font-family:var(--font-geist-sans);letter-spacing:-.04em;margin:0;font-size:clamp(52px,7.3vw,88px);font-weight:750;line-height:1.02}.project-detail-header>p{max-width:780px;color:var(--detail-copy);margin:32px 0 0;font-size:clamp(17px,2vw,22px);line-height:1.55}.project-detail-meta{flex-wrap:wrap;gap:20px;margin-top:40px;display:flex}.project-detail-meta span{color:var(--ink);background:0 0;border-radius:0;padding:0;font-size:14px;font-weight:650;line-height:1}.detail-hero-labels{width:min(310px,100%);height:176px;color:var(--ink);pointer-events:none;-webkit-user-select:none;user-select:none;margin:40px 0 0 auto;display:none;position:relative}.detail-hero-label-window{border:var(--border-strong);border-radius:var(--radius-inset);background:var(--card);width:190px;box-shadow:5px 6px 0 var(--stroke-ink-08);position:absolute;top:0;left:22px;overflow:hidden;transform:rotate(-2deg)}.detail-hero-label-window:nth-child(2){top:78px;left:auto;right:0;transform:rotate(1deg)}.detail-hero-label-window i{border-bottom:var(--border-strong);background:var(--soft-red);height:28px;font:700 13px/1 var(--font-geist-mono);justify-content:flex-end;align-items:center;padding:0 10px;font-style:normal;display:flex}.detail-hero-label-window strong{min-height:64px;font-family:var(--font-editorial);text-align:center;place-items:center;padding:12px;font-size:25px;line-height:1;display:grid}@media (min-width:900px){.project-detail-header>h1,.project-detail-header>p,.project-detail-header>.project-detail-meta,.editorial-detail-header>p,.editorial-detail-header>h1,.editorial-detail-header>strong,.editorial-detail-header>.project-detail-meta{max-width:calc(100% - 350px)}.detail-hero-labels{margin:0;display:block;position:absolute;top:132px;right:0}.editorial-detail-header .detail-hero-labels{top:124px}}.project-document{margin-top:14px}.project-document-frame{border:var(--border-project-document);border-radius:var(--radius-panel);background:var(--project-document-surface);position:relative;overflow:hidden}:is(.project-document-frame:has(.flow360-pdf-viewer),.project-document-frame:has(.flow360-pdf-loading)){background:0 0;border:0;border-radius:0;overflow:visible}.project-document:has(.flow360-pdf-viewer){margin-top:0}.project-document-frame.is-empty{height:min(82svh,980px);min-height:680px}.flow360-pdf-viewer{overflow-anchor:none;height:auto;min-height:0;color:var(--detail-copy);background:0 0;grid-template-rows:auto;display:grid}.flow360-pdf-page-nav{z-index:10;border:var(--border-thin);border-color:color-mix(in srgb, var(--palette-red-600) 48%, transparent);background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:5px;flex-direction:column;align-items:stretch;gap:8px;width:148px;max-height:calc(100svh - 48px);padding:12px 0;display:flex;position:fixed;top:50%;right:24px;transform:translateY(-50%);box-shadow:0 8px 24px #0000001a}.flow360-pdf-page-nav-title{color:var(--palette-red-600);font:750 11px/1 var(--font-geist-mono);letter-spacing:.08em;flex:none;padding:4px 12px 2px}.flow360-pdf-page-nav-items{scrollbar-width:none;flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex;overflow-y:auto}.flow360-pdf-page-nav-items::-webkit-scrollbar{display:none}.flow360-pdf-page-nav button{width:100%;min-height:30px;color:color-mix(in srgb, var(--detail-copy) 68%, transparent);font:600 11px/1 var(--font-geist-mono);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:0;flex:none;align-items:center;gap:7px;padding:0 9px;display:inline-flex}.flow360-pdf-page-nav button>span{color:color-mix(in srgb, var(--detail-copy) 42%, transparent);font-size:9px}:is(.flow360-pdf-page-nav button:hover,.flow360-pdf-page-nav button:focus-visible),.flow360-pdf-page-nav button.is-active{color:var(--palette-red-600);background:var(--palette-red-100);border-color:#0000}.flow360-pdf-page-nav button.is-active>span{color:var(--palette-red-600)}@media (max-width:760px){.flow360-pdf-page-nav{width:112px;padding:8px 0;right:8px}.flow360-pdf-page-nav button{padding-inline:6px;font-size:9px}}.flow360-pdf-stage{overflow-anchor:none;min-height:1px;position:relative;overflow:visible}.flow360-pdf-stage>div{overscroll-behavior:auto;contain:layout style;overflow-anchor:none;width:100%;height:auto;position:relative;padding:0!important;overflow:visible!important}.flow360-pdf-page{-webkit-user-select:none;user-select:none;background:#fff;position:relative;overflow:hidden;box-shadow:0 3px 5px #2f1c181f,0 17px 30px #2f1c182b}.flow360-pdf-copy-menu{z-index:5;pointer-events:auto;position:absolute}.flow360-pdf-copy-menu button{border:var(--border-thin);color:#111;min-width:30px;height:30px;font:650 11px/1 var(--font-geist-mono);cursor:pointer;background:#fff;border-radius:3px;justify-content:center;align-items:center;gap:6px;padding:0 8px;display:inline-flex;box-shadow:0 8px 26px #0000003d}.flow360-pdf-copy-menu svg{width:14px;height:14px}.flow360-pdf-loading{background:var(--project-document-surface);height:min(86svh,980px);min-height:680px;color:var(--detail-copy);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;box-shadow:0 3px 5px #2f1c181f,0 17px 30px #2f1c182b}.flow360-pdf-loading>span{border:2px solid color-mix(in srgb, currentColor 20%, transparent);border-top-color:currentColor;border-radius:50%;width:24px;height:24px;animation:.8s linear infinite flow360-pdf-spin}.flow360-pdf-loading progress{-webkit-appearance:none;appearance:none;background:color-mix(in srgb, currentColor 14%, transparent);border:0;border-radius:999px;width:min(280px,70vw);height:4px}.flow360-pdf-loading progress::-webkit-progress-bar{border-radius:inherit;background:color-mix(in srgb, currentColor 14%, transparent)}.flow360-pdf-loading progress::-webkit-progress-value{border-radius:inherit;background:var(--palette-red-600)}.flow360-pdf-loading progress::-moz-progress-bar{border-radius:inherit;background:var(--palette-red-600)}.flow360-pdf-loading strong{font-size:13px}.flow360-pdf-loading small{opacity:.64;font:500 10px/1.5 var(--font-geist-mono)}.flow360-pdf-fallback{background:var(--project-document-surface);height:min(86svh,980px);min-height:680px;overflow:auto}.flow360-pdf-notice{z-index:4;border:var(--border-thin);background:var(--background);border-radius:4px;flex-direction:column;gap:4px;width:fit-content;margin:12px auto -70px;padding:12px 14px;font-size:11px;display:flex;position:sticky;top:12px;box-shadow:0 8px 28px #00000024}.flow360-pdf-notice span{opacity:.68}@keyframes flow360-pdf-spin{to{transform:rotate(360deg)}}.project-pdf-preview,.project-pdf-preview picture,.project-pdf-preview img{width:100%;display:block}.project-pdf-preview{background:var(--project-document-surface);margin:0}.project-pdf-preview picture{position:relative;overflow:hidden}.project-pdf-preview picture+picture{margin-top:-1px}.project-pdf-preview img{content-visibility:auto;contain-intrinsic-size:auto 342px;width:calc(100% + 1px);max-width:none;height:100%;position:absolute;inset:0 auto 0 0}.project-document-frame>.project-cover-media{z-index:0}.project-document-frame .project-cover-fallback{padding:64px}.project-document-frame .project-cover-fallback strong{max-width:760px;font-size:clamp(42px,7vw,82px)}.project-document-empty{z-index:1;border:var(--border-strong);border-radius:var(--radius-inset);background:var(--project-document-empty-surface);max-width:calc(100% - 56px);color:var(--ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-template-columns:auto 1fr;align-items:center;gap:5px 12px;padding:18px 20px;display:grid;position:absolute;bottom:28px;right:28px}.project-document-empty svg{grid-row:1/4;width:24px;height:24px}.project-document-empty strong{font-size:13px}.project-document-empty span,.project-document-empty code{font-size:10px;line-height:1.45}.project-document-empty code{overflow-wrap:anywhere;font-family:var(--font-geist-mono)}.project-document-actions{color:var(--detail-copy);font:650 10px/1 var(--font-geist-mono);letter-spacing:.06em;justify-content:space-between;align-items:center;gap:20px;padding:14px 4px 0;display:flex}.project-document-actions a{align-items:center;gap:6px;display:inline-flex}.project-document-actions svg{width:13px;height:13px}.next-steps{flex-direction:column;justify-content:center;align-items:center;min-height:610px;padding:34px 0 118px;display:flex}.next-steps-window{border:var(--border-strong);border-radius:var(--radius-window);background:var(--card);width:min(480px,100%);overflow:hidden}.next-steps-titlebar{border-bottom:var(--border-strong);background:var(--soft-red);justify-content:space-between;align-items:center;height:31px;padding:0 14px;font-size:14px;display:flex}.next-steps-window h2{min-height:112px;font-family:var(--font-editorial);letter-spacing:-.048em;justify-content:center;align-items:center;margin:0;padding:20px 24px 24px;font-size:clamp(40px,5vw,58px);line-height:1;display:flex}.next-steps-actions{grid-template-columns:repeat(3,minmax(0,240px));gap:40px;width:min(800px,100%);margin-top:82px;display:grid}.next-step-action{border-radius:var(--radius-inset);min-width:0;min-height:142px;color:var(--ink);cursor:pointer;background:0 0;border:0;grid-template-rows:112px auto;place-items:end center;gap:12px;padding:0;display:grid;position:relative}.next-step-action:focus-visible{outline:var(--border-width-strong) dashed currentColor;outline-offset:9px}.next-step-icon{place-items:center;width:150px;height:112px;display:grid}.next-step-folder svg{width:116px;height:95px}.next-step-top svg{width:80px;height:92px;transition:transform .24s var(--ease-standard), filter .24s var(--ease-standard);transform:rotate(-8deg)}.next-step-glyph-paper{fill:var(--next-step-icon-paper);stroke:var(--next-step-icon-accent);stroke-width:2.7px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.next-step-glyph-line{fill:none;stroke:var(--next-step-icon-accent);stroke-width:2.7px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.next-step-mail{position:relative}.next-step-mail>svg{z-index:2;width:108px;height:96px;transition:filter .24s var(--ease-standard);position:relative}.next-step-mail-card{transform-origin:50%;transition:transform .28s var(--ease-standard);transform:translateY(0)rotate(0)}.next-step-mail-card rect{fill:var(--next-step-icon-accent);stroke:var(--next-step-icon-accent);stroke-width:2.7px;vector-effect:non-scaling-stroke}.next-step-mail-card text{fill:var(--next-step-icon-paper);font-family:var(--font-editorial);text-anchor:middle;font-size:30px;font-weight:700}.next-step-action>strong{font-size:15px;font-weight:650;line-height:1.2;position:relative}.next-step-action>strong:after{content:"";height:var(--border-width-thin);transform-origin:100%;transition:transform var(--duration-base) var(--ease-standard);background:currentColor;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.next-step-hint{top:-50px;bottom:auto;left:50%;transform:translate(-50%)translateY(8px)rotate(0)}:is(.next-step-action:hover .next-step-hint,.next-step-action:focus-visible .next-step-hint){opacity:1;transform:translate(-50%)translateY(0)rotate(5deg)}:is(.next-step-top:hover .next-step-hint,.next-step-top:focus-visible .next-step-hint){transform:translate(-50%)translateY(0)rotate(-3deg)}:is(.next-step-contact:hover .next-step-hint,.next-step-contact:focus-visible .next-step-hint){transform:translate(-50%)translateY(0)rotate(-5deg)}:is(.next-step-more:hover .next-step-folder,.next-step-more:focus-visible .next-step-folder){filter:var(--filter-folder-hover);transform:translateY(-4px)rotate(-2deg)}.next-step-folder{transition:transform .24s var(--ease-standard), filter .24s var(--ease-standard)}:is(.next-step-top:hover svg,.next-step-top:focus-visible svg){filter:var(--filter-folder-hover);transform:translateY(-4px)rotate(2deg)}:is(.next-step-contact:hover .next-step-mail>svg,.next-step-contact:focus-visible .next-step-mail>svg){filter:var(--filter-folder-hover)}:is(.next-step-contact:hover .next-step-mail-card,.next-step-contact:focus-visible .next-step-mail-card){transform:translateY(-28px)rotate(3deg)}.next-step-action:hover>strong:after{transform-origin:0;transform:scaleX(1)}.next-step-action:focus-visible>strong:after{transform-origin:0;transform:scaleX(1)}.next-step-action:active .next-step-icon{transform:translateY(1px)scale(.98)}.editorial-detail,.photo-detail{padding-top:72px;padding-bottom:110px}.editorial-detail-header,.photo-detail-header{border-bottom:var(--border-thin);padding:34px 0 52px}.editorial-detail-header>a,.photo-detail-header>a{margin-bottom:52px;font-size:12px;font-weight:700;display:inline-block}.editorial-detail-header>p,.photo-detail-header>p{font:650 10px/1 var(--font-geist-mono);letter-spacing:.08em;margin:0 0 18px}.photo-detail-header>p{align-items:center;gap:6px;display:flex}.photo-detail-header .project-detail-meta span{align-items:center;gap:5px;display:inline-flex}.editorial-detail-header h1,.photo-detail-header h1{max-width:880px;font-family:var(--font-editorial);letter-spacing:-.045em;margin:0;font-size:clamp(42px,6vw,74px);line-height:1.05}.editorial-detail-header>strong,.photo-detail-header>strong{max-width:680px;font-family:var(--font-editorial);margin-top:28px;font-size:clamp(21px,2.5vw,29px);line-height:1.45;display:block}.photo-detail-wide{width:min(calc(1040px + 8 * var(--grid-unit)), calc(100% - 40px))}.article-detail-cover{border:var(--border-strong);border-radius:var(--radius-panel);min-height:520px;margin-top:54px;position:relative;overflow:hidden}.article-detail-cover .project-cover-fallback{padding:64px}.article-detail-cover .project-cover-fallback strong{max-width:820px;font-size:clamp(42px,6vw,72px)}.article-prose{width:100%;max-width:none;color:var(--detail-copy);margin:54px 0 0;font-size:17px;line-height:1.9}.article-prose>:first-child{margin-top:0}.article-prose h1,.article-prose h2,.article-prose h3,.article-prose h4{font-family:var(--font-editorial);letter-spacing:-.035em;margin:2.1em 0 .65em;line-height:1.18}.article-prose h1,.article-prose h2{font-size:clamp(30px,4vw,44px)}.article-prose h3{font-size:clamp(24px,3vw,31px)}.article-prose p,.article-prose ul,.article-prose ol,.article-prose blockquote,.article-prose pre,.article-prose table{margin:0 0 1.65em}.article-prose ul,.article-prose ol{padding-left:1.45em}.article-prose ul{list-style:outside}.article-prose ol{list-style:decimal}.article-prose li+li{margin-top:.38em}.article-prose strong{font-weight:700}.article-prose blockquote{border-left:4px solid var(--ink);background:var(--article-callout-surface);font-family:var(--font-editorial);padding:20px 24px;font-size:1.18em;line-height:1.65}.article-prose blockquote p:last-child{margin-bottom:0}.article-prose a{text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:1px}.article-prose img{border:var(--border-thin);border-radius:var(--radius-inset);width:100%;height:auto;margin:1.2em 0 2.2em;display:block}.article-prose code{border-radius:var(--radius-control);background:var(--article-code-surface);font:.86em/1.6 var(--font-geist-mono);padding:.16em .38em}.article-prose pre{border:var(--border-thin);border-radius:var(--radius-inset);background:var(--article-code-surface);padding:22px;overflow-x:auto}.article-prose pre code{background:0 0;padding:0}.article-prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.article-prose th,.article-prose td{border:var(--border-thin);text-align:left;min-width:140px;padding:10px 12px}.article-prose hr{border:0;border-top:var(--border-thin);margin:3em 0}.photo-detail-frame{border:var(--border-strong);border-radius:var(--radius-panel);background:var(--card);margin:54px 0 0;padding:8px}.photo-detail-frame>div{aspect-ratio:16/10;border-radius:var(--radius-inset);position:relative;overflow:hidden}.photo-detail-frame img{object-fit:cover;transform:scale(2.6)}.photo-detail-frame figcaption{padding:14px 7px 7px;font-size:12px;line-height:1.6}@media (max-width:980px){.article-index-window{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.photo-detail-wide{width:calc(100% - 20px)}.content-page{padding-top:55px}.page-shell{width:calc(100% - 40px)}.page-hero{padding:34px 0 26px}.page-hero h1{font-size:45px}.page-hero p{font-size:13px}.project-filter{flex-direction:column;align-items:flex-start}.article-index-window{grid-template-columns:1fr;gap:24px;width:calc(100% - 24px);margin-bottom:80px}.article-paper-preview{min-height:280px}.os-project-card,.portfolio-page .os-card-list{grid-template-columns:1fr}.portfolio-page .os-project-card{grid-template-rows:auto auto;height:auto}.portfolio-page .os-project-copy{height:auto;min-height:240px;padding:24px 20px}.portfolio-page .content-card-meta{bottom:24px;right:20px}.os-project-visual{border-right:0;border-bottom:var(--border-subtle-16);min-height:260px}.os-project-copy{min-height:285px;padding:24px 20px}.album-cover{border-left:0;border-right:0;border-radius:0;width:calc(100% + 36px);margin-left:-18px!important}.album-cover>img{aspect-ratio:1.35}.album-grid,.resume-window-body{grid-template-columns:1fr}.note-windows{padding-bottom:84px}.notes-timeline{gap:28px;width:100%}.notes-timeline:before{left:7px;transform:none}.notes-timeline-item{grid-template-columns:16px minmax(0,1fr);gap:14px}.notes-timeline-node{grid-area:1/1;width:11px;height:11px;margin-top:0}.notes-timeline-date,.notes-timeline-item:nth-child(odd) .notes-timeline-date,.notes-timeline-item:nth-child(2n) .notes-timeline-date{text-align:left;flex-direction:row;grid-area:1/2;justify-self:start;gap:9px;margin-top:0}.notes-timeline-item:nth-child(odd) article,.notes-timeline-item:nth-child(2n) article{grid-area:2/2;justify-self:start;width:min(340px,100%);margin-inline:0}.notes-timeline article:before{width:23px;top:5px;left:-23px;right:auto}.notes-timeline .note-window-body{padding:20px 18px}.album-frame>div{aspect-ratio:.95}.resume-window-body{padding:28px 22px}.resume-window-body>div+div{border-top:var(--border-thin);border-left:0;padding-top:32px;padding-left:0}.editorial-detail,.photo-detail,.project-detail{padding-top:55px;padding-bottom:80px}.project-detail-header{padding:30px 0 46px}.project-detail-header>a{margin-bottom:44px}.project-detail-header h1{font-size:clamp(44px,13vw,62px)}.project-detail-header>p{margin-top:24px;font-size:16px}.project-detail-meta{margin-top:20px}.project-detail-meta span{padding:0;font-size:12px}.project-document{width:calc(100% + 36px);margin-left:-18px}.project-document-frame.is-empty{height:72svh;min-height:540px}.project-document-frame{border-left:0;border-right:0;border-radius:0}.project-document-frame .project-cover-fallback{padding:44px 22px}.project-document-frame .project-cover-fallback strong{font-size:clamp(38px,13vw,54px)}.project-document-empty{max-width:none;bottom:18px;left:18px;right:18px}.project-document-actions{padding:13px 18px 0}.next-steps{min-height:0;padding:26px 0 92px}.next-steps-window h2{min-height:92px;padding:18px 20px 21px;font-size:clamp(37px,12vw,49px)}.next-steps-actions{grid-template-columns:1fr;gap:62px;width:100%;margin-top:78px}.next-step-action{width:min(210px,100%);margin-inline:auto}.editorial-detail-header,.photo-detail-header{padding-bottom:36px}.editorial-detail-header>a,.photo-detail-header>a{margin-bottom:42px}.article-detail-cover{border-left:0;border-right:0;border-radius:0;width:calc(100% + 36px);min-height:360px;margin-top:36px;margin-left:-18px}.article-detail-cover .project-cover-fallback{padding:42px 22px}.article-prose{margin-top:48px;font-size:16px;line-height:1.82}.article-prose blockquote{padding:17px 18px}.photo-detail-frame{border-left:0;border-right:0;border-radius:0;width:calc(100% + 36px);margin-top:36px;margin-left:-18px}.photo-detail-frame>div{aspect-ratio:.92}}
