.NavigationDock-module__SLqAsa__navigation-dock{--dock-gap:12px;--dock-item:42px;--dock-pad-x:12px;--dock-spot-index:0;--dock-expanded-width:calc(var(--dock-count) * var(--dock-item) + (var(--dock-count) - 1) * var(--dock-gap) + var(--dock-pad-x) * 2 + 2px);z-index:3;align-items:center;gap:var(--dock-gap);width:var(--dock-expanded-width);max-width:calc(100vw - 36px);min-height:58px;padding:8px var(--dock-pad-x);border:1px solid color-mix(in srgb, var(--border) 48%, transparent);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--card) 48%, transparent);-webkit-backdrop-filter:blur(18px)saturate(136%);backdrop-filter:blur(18px)saturate(136%);transition:width .2s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 14px 34px #3f352e1c,inset 0 1px #ffffffa8}.NavigationDock-module__SLqAsa__navigation-dock[data-collapsible=true]{background:color-mix(in srgb, var(--card) 94%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none;isolation:isolate}.NavigationDock-module__SLqAsa__navigation-dock[data-collapsible=true][data-expanded=false]{width:calc(var(--dock-item) + var(--dock-pad-x) * 2 + 2px)}.NavigationDock-module__SLqAsa__navigation-dock[data-collapsible=true][data-expanded=true]{overflow:visible}.NavigationDock-module__SLqAsa__navigation-dock[data-collapsible=true][data-expanded=true]:after{content:"";z-index:-1;box-sizing:border-box;width:var(--dock-expanded-width);max-width:inherit;border-radius:inherit;pointer-events:auto;position:absolute;top:-1px;bottom:-1px;left:-1px}.NavigationDock-module__SLqAsa__dock-items{align-items:center;gap:var(--dock-gap);opacity:1;visibility:visible;flex:none;transition:opacity .16s,transform .2s,visibility;display:flex;transform:translate(0)}.NavigationDock-module__SLqAsa__navigation-dock[data-expanded=false] .NavigationDock-module__SLqAsa__dock-items{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s,transform .2s,visibility 0s linear .2s;transform:translate(-8px)}.site-header .NavigationDock-module__SLqAsa__navigation-dock{pointer-events:auto}.NavigationDock-module__SLqAsa__dock-spot{top:8px;left:var(--dock-pad-x);z-index:0;width:var(--dock-item);height:var(--dock-item);background:color-mix(in srgb, var(--card) 92%, white 8%);pointer-events:none;opacity:var(--dock-spot-opacity,1);transform:translate3d(calc(var(--dock-spot-index) * (var(--dock-item) + var(--dock-gap))), 0, 0);will-change:transform;border-radius:50%;transition:transform .17s cubic-bezier(.2,.8,.2,1),opacity .12s;position:absolute;box-shadow:0 10px 24px #7e5b401f,inset 0 1px #ffffffc2}.NavigationDock-module__SLqAsa__dock-avatar,.NavigationDock-module__SLqAsa__dashboard-nav-link{z-index:1;width:var(--dock-item);height:var(--dock-item);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.NavigationDock-module__SLqAsa__dock-avatar{cursor:pointer;appearance:none;border:1px solid color-mix(in srgb, var(--border) 42%, white);background:color-mix(in srgb, var(--ring) 34%, var(--card));padding:0;transition:filter .18s,transform .18s;overflow:hidden;box-shadow:0 8px 20px #7e5b401f}.NavigationDock-module__SLqAsa__dock-avatar img{object-fit:cover;pointer-events:none;width:100%;height:100%}.NavigationDock-module__SLqAsa__dock-avatar:hover{filter:saturate(1.1);transform:translateY(-2px)scale(1.03)}.NavigationDock-module__SLqAsa__dock-avatar:focus-visible,.NavigationDock-module__SLqAsa__dashboard-nav-link:focus-visible{outline:2px solid var(--ring);outline-offset:4px}.NavigationDock-module__SLqAsa__dashboard-nav-link{color:var(--muted-foreground);font:inherit;cursor:pointer;appearance:none;background:0 0;border:0;padding:0;transition:color .16s,transform .16s}.NavigationDock-module__SLqAsa__dashboard-nav-link svg{pointer-events:none;width:25px;height:25px}.NavigationDock-module__SLqAsa__dashboard-nav-link:hover,.NavigationDock-module__SLqAsa__dashboard-nav-link:focus-visible,.NavigationDock-module__SLqAsa__dashboard-nav-link.NavigationDock-module__SLqAsa__is-active{color:var(--accent);box-shadow:none;background:0 0;transform:scale(1.05)}@media (prefers-reduced-motion:reduce){.NavigationDock-module__SLqAsa__navigation-dock,.NavigationDock-module__SLqAsa__dock-items,.NavigationDock-module__SLqAsa__navigation-dock[data-expanded=false] .NavigationDock-module__SLqAsa__dock-items,.NavigationDock-module__SLqAsa__dock-spot,.NavigationDock-module__SLqAsa__dock-avatar,.NavigationDock-module__SLqAsa__dashboard-nav-link{transition:none}.NavigationDock-module__SLqAsa__dock-avatar:hover,.NavigationDock-module__SLqAsa__dashboard-nav-link:hover,.NavigationDock-module__SLqAsa__dashboard-nav-link:focus-visible,.NavigationDock-module__SLqAsa__dashboard-nav-link.NavigationDock-module__SLqAsa__is-active{transform:none}}.NavigationDock-module__SLqAsa__dashboard-nav-link.NavigationDock-module__SLqAsa__is-active svg{fill:none;color:var(--accent)}.NavigationDock-module__SLqAsa__dashboard-nav-link span{white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:680px){.NavigationDock-module__SLqAsa__navigation-dock{--dock-gap:8px;--dock-item:38px;--dock-pad-x:8px;max-width:calc(100vw - 28px);min-height:54px;padding:8px var(--dock-pad-x);border-radius:17px}.NavigationDock-module__SLqAsa__dock-spot{top:8px}.NavigationDock-module__SLqAsa__dock-avatar,.NavigationDock-module__SLqAsa__dashboard-nav-link{width:var(--dock-item);height:var(--dock-item)}.NavigationDock-module__SLqAsa__dashboard-nav-link svg{width:22px;height:22px}}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--radius:.5rem;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 8px);--background:#faf9f5;--foreground:#3f352e;--card:#fffdf9;--card-foreground:#3f352e;--popover:#fffdf9;--popover-foreground:#3f352e;--primary:#3f352e;--primary-foreground:#fff8f1;--secondary:#f5eadf;--secondary-foreground:#3f352e;--muted:#f5eadf;--muted-foreground:#82746a;--accent:#6d9284;--accent-foreground:#fffdf9;--destructive:#b42318;--destructive-foreground:#fff8f1;--status-success:#23784b;--status-success-foreground:#fffdf9;--status-success-soft:#eff9f1;--status-warning:#a16207;--status-warning-foreground:#fff8f1;--status-warning-soft:#fff7df;--status-info:#1d5f8c;--status-info-foreground:#f6fbff;--status-info-soft:#eef7fc;--border:#dfcec0;--input:#dfcec0;--ring:#c9822b;--chart-1:#c9822b;--chart-2:#6d9284;--chart-3:#8f6c4e;--chart-4:#d8a35f;--chart-5:#4f766d;--sidebar:#fffdf9;--sidebar-foreground:#3f352e;--sidebar-primary:#3f352e;--sidebar-primary-foreground:#fff8f1;--sidebar-accent:#f5eadf;--sidebar-accent-foreground:#3f352e;--sidebar-border:#dfcec0;--sidebar-ring:#c9822b;--bg:var(--background);--surface:var(--card);--surface-muted:var(--muted);--text:var(--foreground);--line:color-mix(in srgb, var(--border) 74%, transparent);--teal:var(--accent);--teal-dark:var(--primary);--amber:var(--ring);--graphite:var(--foreground);--shadow:0 24px 70px color-mix(in srgb, var(--foreground) 16%, transparent)}@font-face{font-family:Noto Serif SC;src:url(/fonts/NotoSerifSC-VF.ttf)format("truetype");font-display:swap;font-style:normal;font-weight:100 900}@font-face{font-family:Noto Sans SC;src:url(/fonts/NotoSansSC-VF.ttf)format("truetype");font-display:swap;font-style:normal;font-weight:100 900}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#1e1916;--foreground:#f5e8dc;--card:#2a221d;--card-foreground:#f5e8dc;--popover:#2a221d;--popover-foreground:#f5e8dc;--primary:#f5e8dc;--primary-foreground:#231c18;--secondary:#3a3028;--secondary-foreground:#f5e8dc;--muted:#332a24;--muted-foreground:#c8b5a6;--accent:#79b6a8;--accent-foreground:#102521;--destructive:#ffb4a8;--destructive-foreground:#35120e;--status-success:#8dd8a6;--status-success-foreground:#102318;--status-success-soft:#1d3325;--status-warning:#ffd18a;--status-warning-foreground:#34210a;--status-warning-soft:#3a2b18;--status-info:#91caff;--status-info-foreground:#102234;--status-info-soft:#1b2d3f;--border:#5a493d;--input:#5a493d;--ring:#df9d44;--chart-1:#df9d44;--chart-2:#79b6a8;--chart-3:#d6b28d;--chart-4:#b48be0;--chart-5:#8fbde8;--sidebar:#251f1b;--sidebar-foreground:#f5e8dc;--sidebar-primary:#f5e8dc;--sidebar-primary-foreground:#231c18;--sidebar-accent:#3a3028;--sidebar-accent-foreground:#f5e8dc;--sidebar-border:#5a493d;--sidebar-ring:#df9d44}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;line-height:1.6;overflow-x:hidden}.page-transition-root{transform-origin:50% 22%;will-change:opacity, transform, filter;min-height:100vh}html.is-route-changing{cursor:progress}img{width:100%;display:block}a{color:inherit;text-decoration:none}.content-page{min-height:calc(100vh - 86px)}.content-section{padding-top:24px}.site-header{z-index:80;pointer-events:none;place-items:start;padding:0 clamp(24px,3.1vw,40px);display:grid;position:fixed;top:18px;left:0;right:0}.eyebrow{color:var(--amber);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:800}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{margin:0;line-height:1.16}h1{max-width:760px;font-size:clamp(2.4rem,6vw,5.3rem)}h2{font-size:clamp(1.85rem,3.4vw,3.25rem)}h3{font-size:1.15rem}.ui-button{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 18px;font-weight:760;transition:transform .16s,background .16s,color .16s,border-color .16s,box-shadow .16s;display:inline-flex;position:relative;overflow:hidden}.ui-button:hover{box-shadow:0 12px 26px color-mix(in srgb, var(--foreground) 10%, transparent);transform:translateY(-2px)}.ui-button:disabled,.ui-button[aria-disabled=true]{cursor:not-allowed;opacity:.58;transform:none}.ui-button [data-icon]{flex:none;width:1rem;height:1rem}.ui-button-default{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.ui-button-secondary{background:var(--secondary);color:var(--secondary-foreground)}.ui-button-outline{background:color-mix(in srgb, var(--card) 72%, transparent);color:var(--foreground)}.ui-button-ghost{color:var(--foreground);background:0 0;border-color:#0000}.ui-button-link{min-height:auto;color:var(--accent);box-shadow:none;background:0 0;border-color:#0000;padding:0}.ui-button-link:hover{box-shadow:none}.ui-button-destructive{border-color:var(--destructive);background:var(--destructive);color:var(--destructive-foreground)}.ui-button-md{min-height:46px}.ui-button-sm{min-height:36px;padding:0 12px;font-size:.9rem}.ui-button-lg{min-height:52px;padding:0 22px;font-size:1.02rem}.ui-button-icon{width:42px;min-height:42px;padding:0}.section{padding:clamp(62px,8vw,112px) 6vw}.essay-page{width:100%;max-width:880px;margin:0 auto;padding:clamp(126px,11vw,154px) 24px clamp(70px,9vw,120px)}.essay-hero{gap:16px;min-width:0;margin-bottom:clamp(38px,7vw,72px);display:grid}.essay-hero>*,.prose-section>*,.prose-list,.timeline{min-width:0;max-width:100%}.essay-hero h1{font-size:clamp(2.6rem,7vw,5.2rem)}.essay-hero p:not(.eyebrow){width:100%;max-width:720px;color:var(--muted-foreground);margin:0;font-size:clamp(1.08rem,1.7vw,1.28rem)}.prose-section{min-width:0;padding:0 0 clamp(40px,7vw,74px)}.prose-card{background:color-mix(in srgb, var(--card) 88%, transparent);max-width:760px;padding:0}.prose-card .ui-card-header{padding:clamp(24px,4vw,34px) clamp(24px,4vw,34px) 0}.prose-card .ui-card-title{font-size:clamp(1.65rem,3vw,2.25rem)}.prose-card .ui-card-content{padding:18px clamp(24px,4vw,34px) clamp(26px,4vw,36px)}.prose-section h2{margin-bottom:18px;font-size:clamp(1.65rem,3vw,2.25rem)}.prose-section p{width:100%;max-width:720px;color:var(--muted-foreground);margin:0 0 18px;font-size:1.05rem}.prose-section blockquote{width:100%;max-width:760px;color:var(--foreground);border-left:4px solid var(--accent);border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 10%, var(--card));box-shadow:0 12px 36px color-mix(in srgb, var(--foreground) 8%, transparent);margin:28px 0 0;padding:18px 22px}.prose-list{gap:18px;max-width:760px;display:grid}.prose-list-motion{min-width:0}.prose-list-item{grid-template-columns:minmax(132px,.34fr) minmax(0,1fr);transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.prose-list-item:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));box-shadow:0 18px 42px color-mix(in srgb, var(--foreground) 11%, transparent);transform:translateY(-2px)}.prose-list-item .ui-card-header{border-right:1px solid var(--border);align-content:start;padding:18px 20px}.prose-list-item .ui-card-title{color:var(--foreground);font-size:1.05rem}.prose-list-item .ui-card-content{align-items:center;padding:18px 20px;display:grid}.prose-list-item p{max-width:none;margin:0}.ui-button:focus-visible,.ui-card:focus-visible{outline:3px solid color-mix(in srgb, var(--ring) 52%, transparent);outline-offset:3px}.ui-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);min-width:0;color:var(--card-foreground);box-shadow:0 14px 34px color-mix(in srgb, var(--foreground) 8%, transparent);overflow:hidden}.ui-card-header{gap:8px;padding:24px 24px 0;display:grid}.ui-card-title{min-width:0;color:var(--card-foreground);margin:0;font-size:1.12rem;font-weight:820;line-height:1.25}.ui-card-description{min-width:0;color:var(--muted-foreground);margin:0;font-size:.95rem;line-height:1.5}.ui-card-content{min-width:0;padding:24px}.ui-card-header+.ui-card-content{padding-top:16px}.ui-card-content>p{margin:0}.ui-card-footer{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;padding:0 24px 24px;display:flex}.ui-badge{border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);background:var(--secondary);width:max-content;max-width:100%;color:var(--secondary-foreground);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:.8rem;font-weight:800;line-height:1.45;display:inline-flex}.ui-badge [data-icon]{flex:none;width:.88rem;height:.88rem}.ui-badge-default{border-color:color-mix(in srgb, var(--primary) 24%, transparent);background:var(--primary);color:var(--primary-foreground)}.ui-badge-secondary{border-color:color-mix(in srgb, var(--border) 72%, transparent);background:var(--secondary);color:var(--secondary-foreground)}.ui-badge-outline{border-color:color-mix(in srgb, var(--border) 90%, transparent);background:color-mix(in srgb, var(--card) 72%, transparent);color:var(--foreground)}.ui-badge-accent{border-color:color-mix(in srgb, var(--accent) 36%, transparent);background:color-mix(in srgb, var(--accent) 16%, var(--card));color:var(--accent)}.ui-badge-success{border-color:color-mix(in srgb, var(--status-success) 36%, transparent);background:var(--status-success-soft);color:var(--status-success)}.ui-badge-warning{border-color:color-mix(in srgb, var(--status-warning) 36%, transparent);background:var(--status-warning-soft);color:var(--status-warning)}.ui-badge-destructive{border-color:color-mix(in srgb, var(--destructive) 36%, transparent);background:color-mix(in srgb, var(--destructive) 13%, var(--card));color:var(--destructive)}.timeline{gap:16px;max-width:760px;display:grid}.timeline-card-motion{min-width:0}.timeline-item{grid-template-columns:minmax(140px,.28fr) minmax(0,1fr);transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.timeline-item:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));box-shadow:0 18px 42px color-mix(in srgb, var(--foreground) 11%, transparent);transform:translateY(-2px)}.timeline-item-header{border-right:1px solid var(--border);background:color-mix(in srgb, var(--secondary) 48%, transparent);align-content:start}.timeline-item .ui-card-title{font-size:1.12rem}.timeline-item .ui-card-description{font-weight:760}.timeline-item .ui-badge{color:var(--foreground)}.timeline-item .ui-card-content{align-items:center;display:grid}.timeline-item p{color:var(--muted-foreground);margin:0}.inline-link{align-items:center;gap:8px;width:max-content;font-weight:760;display:inline-flex}.contact-section{background:color-mix(in srgb, var(--card) 88%, transparent);max-width:760px;padding:0}.contact-section .ui-card-description{max-width:680px}.contact-action-magnet{width:max-content;max-width:100%}.projects-showcase{width:min(1200px,100%);margin:0 auto}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.projects-grid:has(.project-card:only-child){grid-template-columns:minmax(0,588px);justify-content:start}.project-card{border-color:color-mix(in srgb, var(--border) 76%, transparent);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--card) 82%, transparent);min-width:0;min-height:224px;box-shadow:0 40px 50px -32px color-mix(in srgb, var(--foreground) 12%, transparent), inset 0 0 20px color-mix(in srgb, var(--card) 30%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-content:start;transition:background .18s,box-shadow .18s,transform .18s;display:grid}.project-card:hover{border-color:color-mix(in srgb, var(--accent) 38%, var(--border));background:color-mix(in srgb, var(--card) 92%, transparent);box-shadow:0 34px 64px -34px color-mix(in srgb, var(--foreground) 26%, transparent), inset 0 0 22px color-mix(in srgb, var(--card) 34%, transparent);transform:translateY(-4px)}.project-card-compact{min-height:202px}.project-card-header{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:16px;min-width:0;padding:24px 24px 0;display:grid}.project-card-icon{border:1px solid color-mix(in srgb, var(--border) 64%, transparent);border-radius:calc(var(--radius) + 2px);background:color-mix(in srgb, var(--card) 88%, var(--secondary));width:64px;height:64px;color:var(--accent);box-shadow:0 12px 28px color-mix(in srgb, var(--foreground) 8%, transparent);place-items:center;font-family:Comic Sans MS,Segoe Print,cursive;font-size:1.08rem;font-weight:800;line-height:1;display:grid}.project-card-heading{min-width:0}.project-card-heading .ui-card-title{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:1.35rem;font-weight:850;line-height:1.2;display:flex}.project-card-heading .ui-badge{font-size:.76rem}.project-card-heading .ui-card-description{overflow-wrap:anywhere;border-radius:var(--radius-md);background:color-mix(in srgb, var(--secondary) 72%, transparent);width:max-content;max-width:100%;margin:7px 0 0;padding:2px 8px;font-size:.82rem;font-weight:680;display:inline-flex}.project-card .ui-card-content{padding:20px 24px 0}.project-card-summary{max-width:100%;color:var(--muted-foreground);margin:0;font-size:1rem;line-height:1.62}.project-card-tags{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.project-card-tags .ui-badge{border-radius:var(--radius-md);min-height:24px;padding:0 8px;font-size:.78rem;font-weight:760}.project-card-actions{flex-wrap:wrap;gap:10px;margin-top:0;padding:18px 24px 24px;display:flex}.project-action-magnet{width:max-content;max-width:100%}.project-card-link{width:max-content;min-height:34px}.site-footer{color:var(--muted-foreground);background:var(--card);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:26px 6vw;display:flex}@media (max-width:980px){.projects-grid{grid-template-columns:minmax(0,1fr)}.timeline-item{grid-template-columns:minmax(124px,.3fr) minmax(0,1fr)}}@media (max-width:680px){.site-header{padding:0 14px;top:12px}.project-card-header{grid-template-columns:56px minmax(0,1fr);gap:14px}.project-card-icon{width:56px;height:56px}.essay-page{width:calc(100% - 72px);padding-left:0;padding-right:0}.essay-hero h1{font-size:clamp(2.35rem,13vw,3.25rem)}.essay-hero p:not(.eyebrow),.prose-section p,.prose-section blockquote{line-break:anywhere;overflow-wrap:anywhere;word-break:break-all;font-size:1rem}.prose-section blockquote{padding:16px 18px}.section{padding-left:22px;padding-right:22px}h1{line-break:anywhere;word-break:break-all;font-size:clamp(1.9rem,10vw,2.65rem)}.timeline-item,.prose-list-item{grid-template-columns:1fr}.timeline-item-header,.prose-list-item .ui-card-header{border-right:0;border-bottom:1px solid var(--border)}.timeline-item .ui-card-content,.prose-list-item .ui-card-content{padding-top:18px}.ui-button{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.page-animate{animation:none!important}}
