:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f5f6f3;--color-panel:#fff;--color-text:#171917;--color-muted:#747a73;--color-line:#dfe3dc;--color-accent:#7f8a76;--color-accent-soft:#e9ece6;--color-deep:#273028;--radius-sm:10px;--radius:16px;--radius-lg:24px;--shadow-soft:0 18px 50px #17191712;--page-width:1180px;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);font-synthesis:none;text-rendering:optimizelegibility}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#111310;--color-panel:#191c18;--color-text:#f0f2ec;--color-muted:#a4aaa0;--color-line:#343a32;--color-accent:#a9b79f;--color-accent-soft:#292e27;--color-deep:#dfe5d9;--shadow-soft:0 18px 50px #0000004d}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:transparent transparent;scrollbar-width:thin;min-width:320px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:2px solid var(--color-bg);background:0 0;border-radius:999px;transition:background-color .22s}.is-scroll-active,html.is-scroll-active{scrollbar-color:#aab2a6 transparent}.is-scroll-active::-webkit-scrollbar-thumb{background:#aab2a6}html.is-scroll-active::-webkit-scrollbar-thumb{background:#aab2a6}.site-brand{color:inherit;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.site-brand__icon{-o-object-fit:cover;object-fit:cover;border-radius:6px;flex:none;width:22px;height:22px}.site-brand__fallback{background:var(--color-accent);border-radius:50%;flex:none;width:7px;height:7px}body{background:var(--color-bg);min-width:320px;min-height:100vh;color:var(--color-text);margin:0;line-height:1.65}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-group(blog-post-header){animation-duration:.28s;animation-timing-function:cubic-bezier(.77,0,.175,1)}::view-transition-new(blog-post-header){mix-blend-mode:normal;height:100%;overflow:clip}::view-transition-old(blog-post-header){mix-blend-mode:normal;height:100%;overflow:clip}html[data-blog-transition=active]::view-transition-old(root){animation:.18s cubic-bezier(.23,1,.32,1) both blog-page-out}html[data-blog-transition=active]::view-transition-new(root){animation:.24s cubic-bezier(.23,1,.32,1) both blog-page-in}@keyframes blog-page-out{to{opacity:.72}}@keyframes blog-page-in{0%{opacity:0;transform:translateY(8px)}}html[data-theme-transition=to-dark]::view-transition-old(root){z-index:1}html[data-theme-transition=to-light]::view-transition-new(root){z-index:1}html[data-theme-transition=to-dark]::view-transition-new(root){z-index:2}html[data-theme-transition=to-light]::view-transition-old(root){z-index:2}html[data-theme=dark] .blog-prototype-topbar,html[data-theme=dark] .topbar{border-color:color-mix(in srgb,var(--color-line) 88%,transparent);background:color-mix(in srgb,var(--color-bg) 90%,transparent)}html[data-theme=dark] .home-prototype__card{background:color-mix(in srgb,var(--color-panel) 88%,transparent)}html[data-theme=dark] .skeleton-block{background:linear-gradient(90deg,var(--color-line),#292e29,var(--color-line))}html[data-theme=dark] :where(.button,.admin-primary-button){color:var(--color-bg)}html[data-theme=dark] :where(.button--ghost,.admin-secondary-button){color:var(--color-text)}button,input,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}::selection{background:#ccd3c7}:focus-visible{outline-offset:3px;outline:3px solid #7f8a7661}.app-shell{flex-direction:column;min-height:100vh;display:flex}.site-main{flex:1;width:100%}.page-container{width:min(100% - 48px,var(--page-width));margin-inline:auto;padding-block:72px 96px}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--color-text);color:#fff;padding:10px 14px;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.back-to-top{z-index:45;border:1px solid var(--color-line);background:color-mix(in srgb,var(--color-panel) 90%,transparent);width:42px;height:42px;box-shadow:var(--shadow-soft);color:var(--color-text);cursor:pointer;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;place-items:center;padding:0;transition:opacity .18s cubic-bezier(.23,1,.32,1),transform .18s cubic-bezier(.23,1,.32,1),background-color .16s;display:grid;position:fixed;bottom:24px;left:24px;transform:translateY(8px)}.back-to-top--visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:18px}@media (hover:hover) and (pointer:fine){.back-to-top:hover{background:var(--color-accent-soft)}}@media (width>=901px){.back-to-top--admin{left:auto;right:24px}}.topbar{z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f5f6f3e0;border-bottom:1px solid #dfe3dcd1;position:sticky;top:0}.site-footer__inner,.topbar__inner{width:min(100% - 48px,var(--page-width));justify-content:space-between;align-items:center;min-height:68px;margin-inline:auto;display:flex}.wordmark{letter-spacing:-.05em;font-size:1.05rem;font-weight:850}.main-nav{align-items:center;gap:4px;display:flex}.nav-link{min-height:40px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:5px;padding:8px 12px;font-size:.9rem;font-weight:650;transition:color .16s,background-color .16s;display:inline-flex}.nav-link.router-link-active,.nav-link.router-link-exact-active,.nav-link:hover{background:var(--color-panel);color:var(--color-text)}.nav-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:14px}.about-menu{position:relative}.about-menu__panel{border:1px solid var(--color-line);background:var(--color-panel);width:150px;box-shadow:var(--shadow-soft);border-radius:12px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.about-menu__panel a{color:var(--color-muted);border-radius:8px;padding:9px 11px;font-size:.9rem;display:block}.about-menu__panel a.router-link-active,.about-menu__panel a:hover{background:var(--color-bg);color:var(--color-text)}.site-footer{border-top:1px solid var(--color-line);color:var(--color-muted);font-size:.82rem}.site-footer__inner{min-height:84px}.site-footer p{margin:0}.surface-card{border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-panel);box-shadow:0 1px #17191705}.surface-card--interactive{transition:transform .18s,border-color .18s,box-shadow .18s}.surface-card--interactive:hover{box-shadow:var(--shadow-soft);border-color:#cbd1c7;transform:translateY(-3px)}.skeleton-block{background:linear-gradient(90deg,var(--color-line),#eef0ec,var(--color-line));background-size:200% 100%;border-radius:8px;animation:1.5s linear infinite skeleton-pulse;display:block;overflow:hidden}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-20% 0}}.archive-year,.message-card,.project-card:not(.project-card--skeleton),.timeline-chapter{opacity:0;transition:opacity .48s ease var(--reveal-delay,0s),transform .48s ease var(--reveal-delay,0s);transform:translateY(14px)}.archive-year.is-revealed,.message-card.is-revealed,.project-card.is-revealed,.timeline-chapter.is-revealed{opacity:1;transform:translateY(0)}.state-panel{border-radius:var(--radius);background:var(--color-panel);text-align:center;border:1px dashed #cbd1c7;padding:36px}.state-panel h2{letter-spacing:-.035em;margin:0}.state-panel>p:last-of-type{color:var(--color-muted);margin:10px 0 0}.eyebrow{color:var(--color-accent);letter-spacing:.15em;text-transform:uppercase;margin:0 0 12px;font-size:.72rem;font-weight:800}.page-heading{max-width:760px;margin-bottom:52px}.page-heading h1{letter-spacing:-.065em;margin:0;font-size:calc(clamp(2.7rem,7vw,5.6rem));line-height:.95}.page-heading__description{max-width:650px;color:var(--color-muted);margin:22px 0 0;font-size:calc(clamp(1rem,2vw,1.16rem))}.button{border:1px solid var(--color-text);background:var(--color-text);color:#fff;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;min-height:42px;padding:9px 16px;font-size:.86rem;font-weight:750;transition:transform .16s,background-color .16s;display:inline-flex}.button:hover{background:var(--color-deep);transform:translateY(-1px)}.button--ghost{border-color:var(--color-line);background:var(--color-panel);color:var(--color-text)}.button--ghost:hover{background:var(--color-accent-soft)}.button--disabled{cursor:not-allowed;opacity:.45;pointer-events:none}.muted{color:var(--color-muted)}.error-page{background:var(--color-bg);place-content:center;justify-items:start;min-height:100vh;padding:32px;display:grid}.error-code{color:var(--color-line);letter-spacing:-.1em;font-size:calc(clamp(7rem,24vw,17rem));font-weight:900;line-height:.68}.error-state h1{letter-spacing:-.065em;max-width:680px;margin:0;font-size:calc(clamp(2.8rem,7vw,5.5rem));line-height:.95}.error-state>p:not(.eyebrow){max-width:520px;color:var(--color-muted);margin:24px 0}@media (width<=700px){.back-to-top{bottom:16px;left:16px}.back-to-top--admin{left:auto;right:16px}.page-container,.site-footer__inner,.topbar__inner{width:min(100% - 32px,var(--page-width))}.page-container{padding-block:48px 72px}.topbar__inner{min-height:60px}.main-nav{gap:0}.nav-link{min-height:38px;padding-inline:8px;font-size:.78rem}.site-footer__inner{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;min-height:110px}.page-heading{margin-bottom:36px}}@media (width<=390px){.wordmark{font-size:.95rem}.nav-link{padding-inline:6px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important}.skeleton-block{background:var(--color-line);animation:none!important}.back-to-top{transform:none}}@media print{.back-to-top,.print-button,.site-footer,.skip-link,.topbar{display:none!important}.cv-page,body{background:#fff}}:root{--font-reading-serif:"Noto Serif SC", "Source Han Serif SC", "PingFang SC", "Microsoft YaHei", "Songti SC", serif;--font-reading-mono:"Maple Mono", "Cascadia Code", Consolas, "SFMono-Regular", monospace}html .article-body,html .readme__content{font-family:var(--font-reading-serif);font-kerning:normal;text-wrap:pretty;word-wrap:break-word;line-height:1.92}html .article-body :is(h1,h2,h3,h4,h5,h6),html .readme__content :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-reading-serif);letter-spacing:-.035em;font-weight:700;line-height:1.25}html .article-body :is(code,pre),html .readme__content :is(code,pre){font-family:var(--font-reading-mono)}html .article-body pre,html .readme__content pre{line-height:1.7}html .article-body blockquote,html .readme__content blockquote{line-height:1.8}html .article-body :is(th,td),html .readme__content :is(th,td){line-height:1.55}html .article-body .spoiler,html .readme__content .spoiler{background:color-mix(in srgb,currentColor 15%,transparent);filter:blur(3px);cursor:help;border-radius:.2em;transition:filter 50ms ease-out,background-color .15s ease-out}html .article-body .spoiler:focus-visible,html .article-body .spoiler:hover,html .readme__content .spoiler:focus-visible,html .readme__content .spoiler:hover{filter:none;background:0 0}html .article-body .spoiler:focus-visible,html .readme__content .spoiler:focus-visible{outline:2px solid color-mix(in srgb,var(--color-accent) 55%,transparent);outline-offset:3px}@media (prefers-reduced-motion:reduce){html .article-body .spoiler,html .readme__content .spoiler{transition-duration:.01ms}}.theme-toggle[data-v-a7c01436]{border:1px solid var(--color-line);background:var(--color-panel);width:38px;height:38px;color:var(--color-text);cursor:pointer;border-radius:50%;flex:none;place-items:center;padding:0;transition:transform .14s,border-color .2s,background-color .2s;display:grid;position:relative;overflow:hidden}.theme-toggle[data-v-a7c01436]:active{transform:scale(.94)}.theme-toggle[data-v-a7c01436]:disabled{cursor:wait}.theme-toggle svg[data-v-a7c01436]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px;height:17px;transition:transform .24s cubic-bezier(.23,1,.32,1),opacity .16s;position:absolute}.theme-toggle__moon[data-v-a7c01436]{opacity:0;transform:rotate(-35deg)scale(.82)}html[data-theme=dark]{opacity:0;opacity:1;transform:rotate(0)scale(1)}html[data-theme-transition],html[data-theme-transition]{transition:none}@media (prefers-reduced-motion:reduce){.theme-toggle[data-v-a7c01436],.theme-toggle svg[data-v-a7c01436]{transition:none}}.lost-page[data-v-353ff230]{background:radial-gradient(circle at 22% 16%,#7f8a761a,transparent 24%),var(--color-bg,#f5f6f3);min-height:100svh;color:var(--color-text,#171917);place-items:center;padding:96px 24px;display:grid;position:relative;overflow:hidden}.lost-page__brand[data-v-353ff230]{z-index:20;position:absolute;top:30px;left:calc(clamp(24px,5vw,72px))}.error-page__theme-toggle[data-v-353ff230],.lost-page__theme-toggle[data-v-353ff230]{z-index:30;position:fixed;top:24px;right:calc(clamp(24px,5vw,72px))}.lost-page__content[data-v-353ff230]{text-align:center;width:min(900px,100%);position:relative}.lost-page__number[data-v-353ff230]{color:#e0e4dd;letter-spacing:-.13em;-webkit-user-select:none;user-select:none;margin-left:-.08em;font-size:calc(clamp(10rem,30vw,25rem));font-weight:900;line-height:.72;display:inline-flex}.lost-page__dot[data-v-353ff230]{z-index:8;background:var(--color-accent,#7f8a76);pointer-events:none;border-radius:50%;width:24px;height:24px;transition:transform .42s cubic-bezier(.22,1,.36,1),top .65s cubic-bezier(.22,1,.36,1),left .65s cubic-bezier(.22,1,.36,1),width .3s,height .3s,box-shadow .3s;animation:3.8s ease-in-out infinite alternate lost-float-353ff230;position:fixed;top:31%;left:51%;box-shadow:0 0 0 12px #7f8a761a}.lost-page__dot.is-returning[data-v-353ff230]{width:8px;height:8px;box-shadow:none;animation:none;top:34px!important;left:calc(1px + clamp(24px,5vw,72px))!important}.lost-page__copy[data-v-353ff230]{z-index:10;margin-top:-6vh;position:relative}.lost-page__eyebrow[data-v-353ff230]{color:var(--color-accent,#7f8a76);letter-spacing:.16em;margin:0 0 10px;font-size:12px;font-weight:800}.lost-page h1[data-v-353ff230]{letter-spacing:-.06em;margin:0;font-size:calc(clamp(2rem,5vw,4.5rem));line-height:.95}.lost-page__description[data-v-353ff230]{max-width:470px;color:var(--color-muted,#747a73);margin:20px auto 28px;line-height:1.8}.lost-page__home[data-v-353ff230]{border:1px solid var(--color-text,#171917);background:var(--color-text,#171917);color:#fff;border-radius:999px;align-items:center;gap:9px;min-height:44px;padding:10px 17px;font-size:13px;font-weight:720;text-decoration:none;transition:transform .18s ease-out,background .18s ease-out;display:inline-flex}.lost-page__home[data-v-353ff230]:hover{background:#273028;transform:translateY(-2px)}.lost-page__home[data-v-353ff230]:active{transform:scale(.97)}.lost-page__home[data-v-353ff230]:focus-visible{outline-offset:3px;outline:3px solid #7f8a7661}@keyframes lost-float-353ff230{to{transform:translate(14px,-18px)}}@media (width<=680px){.lost-page__brand[data-v-353ff230]{top:22px}.lost-page__copy[data-v-353ff230]{margin-top:1vh}.lost-page__dot.is-returning[data-v-353ff230]{top:26px!important}}@media (prefers-reduced-motion:reduce){.lost-page__dot[data-v-353ff230],.lost-page__home[data-v-353ff230]{transition-duration:.01ms;animation:none}}
