@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap";:root,:root[data-theme=cream]{--bg:#fafaf7;--surface:#fff;--surface-elev:#f4f1ea;--text:#1c1917;--text-muted:#57534e;--text-soft:#78716c;--border:#e7e2d7;--border-strong:#d6d0c2;--primary:#1c1917;--accent:#ca8a04;--accent-soft:#fef3c7;--tag-bg:#f4f1ea;--shadow-color:28 25 23;--selection-bg:#fef3c7;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=sepia]{--bg:#f4ecd8;--surface:#faf4e1;--surface-elev:#ece0c2;--text:#3b2f1e;--text-muted:#6b5a3f;--text-soft:#8c7a5c;--border:#ddcda8;--border-strong:#c7b488;--primary:#3b2f1e;--accent:#9c4221;--accent-soft:#f4d7bd;--tag-bg:#ece0c2;--shadow-color:59 47 30;--selection-bg:#f4d7bd;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=mocha]{--bg:#f6efe7;--surface:#fffbf5;--surface-elev:#ece0d1;--text:#2a1e14;--text-muted:#5e4a37;--text-soft:#806856;--border:#dcc9b3;--border-strong:#c2a98d;--primary:#4b2e1e;--accent:#b45309;--accent-soft:#f8e1c5;--tag-bg:#ece0d1;--shadow-color:42 30 20;--selection-bg:#f8e1c5;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=linen]{--bg:#f7f5f0;--surface:#fff;--surface-elev:#edeae0;--text:#1f1d18;--text-muted:#5c594e;--text-soft:#807c6e;--border:#e0dccb;--border-strong:#cbc6b0;--primary:#1f1d18;--accent:#166534;--accent-soft:#dcfce7;--tag-bg:#edeae0;--shadow-color:31 29 24;--selection-bg:#dcfce7;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=mono]{--bg:#fafafa;--surface:#fff;--surface-elev:#f4f4f4;--text:#0a0a0a;--text-muted:#454545;--text-soft:#737373;--border:#e5e5e5;--border-strong:#c9c9c9;--primary:#0a0a0a;--accent:#ea580c;--accent-soft:#ffe8d6;--tag-bg:#f4f4f4;--shadow-color:10 10 10;--selection-bg:#ffe8d6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-image:radial-gradient(#00000005 1px,#0000 1px),radial-gradient(#00000003 1px,#0000 1px);background-position:0 0,12px 12px;background-size:24px 24px,48px 48px;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:1rem;line-height:1.7;transition:background-color .4s,color .4s;overflow-x:hidden}::selection{background:var(--selection-bg);color:var(--text)}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,textarea{font:inherit;color:inherit}h1,h2,h3,h4{letter-spacing:-.02em;color:var(--text);font-family:Playfair Display,Source Han Serif SC,Noto Serif SC,Georgia,serif;font-weight:600;line-height:1.2}h1{font-size:clamp(2.25rem,5vw,3.75rem)}h2{font-size:clamp(1.75rem,3.5vw,2.5rem)}h3{font-size:clamp(1.25rem,2.5vw,1.5rem)}p{color:var(--text-muted)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}.container-narrow{width:100%;max-width:720px;margin:0 auto;padding:0 1.5rem}@media (width>=768px){.container,.container-narrow{padding:0 2rem}}.btn{letter-spacing:.01em;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-size:.9rem;font-weight:500;transition:transform .2s cubic-bezier(.4,0,.2,1),background-color .2s,color .2s,border-color .2s,box-shadow .2s;display:inline-flex}.btn-primary{background:var(--primary);color:var(--surface);border:1px solid var(--primary)}.btn-primary:hover{background:var(--text);box-shadow:0 10px 24px -10px rgb(var(--shadow-color) / .35)}.btn-ghost{color:var(--text);border:1px solid var(--border-strong);background:0 0}.btn-ghost:hover{background:var(--surface-elev);border-color:var(--text-muted)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.fade-enter-active,.fade-leave-active{transition:opacity .35s,transform .35s cubic-bezier(.16,1,.3,1)}.fade-enter-from{opacity:0;transform:translateY(8px)}.fade-leave-to{opacity:0;transform:translateY(-8px)}.fade-leave-active{width:100%;position:absolute}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.prose{color:var(--text-muted);font-size:1.0625rem;line-height:1.85}.prose>*+*{margin-top:1.25rem}.prose h2{margin-top:3rem;margin-bottom:.5rem;font-size:clamp(1.5rem,2.5vw,1.875rem)}.prose h3{margin-top:2.25rem;margin-bottom:.25rem}.prose p,.prose ul,.prose ol{color:var(--text-muted)}.prose ul,.prose ol{padding-left:1.5rem}.prose li+li{margin-top:.4rem}.prose strong{color:var(--text);font-weight:600}.prose blockquote{border-left:3px solid var(--accent);color:var(--text);padding:.25rem 0 .25rem 1.25rem;font-family:Playfair Display,serif;font-size:1.15rem;font-style:italic}.prose code{background:var(--surface-elev);color:var(--text);border-radius:4px;padding:.15em .45em;font-family:SFMono-Regular,Consolas,monospace;font-size:.92em}.prose pre{background:var(--surface-elev);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.25rem;font-size:.9rem;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose a{color:var(--text);border-bottom:1px solid var(--accent);transition:color .18s,border-color .18s}.prose a:hover{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem;transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s,border-color .28s}.card:hover{border-color:var(--border-strong);box-shadow:0 18px 40px -22px rgb(var(--shadow-color) / .25);transform:translateY(-2px)}.tag{background:var(--tag-bg);color:var(--text-muted);letter-spacing:.02em;border:1px solid var(--border);border-radius:999px;align-items:center;gap:.3rem;padding:.22rem .65rem;font-size:.75rem;display:inline-flex}.divider{background:var(--border);border:0;width:100%;height:1px}.text-muted{color:var(--text-muted)}.text-soft{color:var(--text-soft)}.text-accent{color:var(--accent)}.serif{font-family:Playfair Display,serif}:root{--hl-text:var(--text);--hl-comment:var(--text-soft);--hl-keyword:var(--text);--hl-string:var(--accent);--hl-attr:var(--accent);--hl-meta:var(--accent);--hl-built:var(--accent);--hl-number:#1d4ed8;--hl-literal:#1d4ed8;--hl-function:var(--text);--hl-class:var(--text);--hl-tag:var(--text-muted);--hl-name:var(--text);--hl-operator:var(--text-muted)}:root[data-theme=mono]{--hl-number:#2563eb;--hl-literal:#2563eb}.hljs{color:var(--hl-text)}.hljs-comment,.hljs-quote{color:var(--hl-comment);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst,.hljs-doctag{color:var(--hl-keyword);font-weight:600}.hljs-string,.hljs-regexp,.hljs-bullet,.hljs-link{color:var(--hl-string)}.hljs-number,.hljs-literal,.hljs-symbol{color:var(--hl-number)}.hljs-title,.hljs-section,.hljs-selector-id,.hljs-title.class_,.hljs-title.class_.inherited__{color:var(--hl-class);font-weight:600}.hljs-title.function_,.hljs-function .hljs-title{color:var(--hl-function)}.hljs-built_in,.hljs-type{color:var(--hl-built)}.hljs-attr,.hljs-attribute,.hljs-template-variable,.hljs-variable.language_{color:var(--hl-attr)}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:var(--hl-name)}.hljs-tag,.hljs-punctuation{color:var(--hl-tag)}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:var(--hl-meta)}.hljs-operator{color:var(--hl-operator)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-addition{color:#166534;background:#1665341f}.hljs-deletion{color:#b91c1c;background:#b91c1c1f}.theme[data-v-a66c2dea]{position:relative}.theme-btn[data-v-a66c2dea]{border:1px solid var(--border-strong);width:38px;height:38px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;transition:background-color .2s,transform .2s,border-color .2s;display:inline-flex}.theme-btn[data-v-a66c2dea]:hover{background:var(--surface-elev);border-color:var(--text-muted);transform:rotate(-15deg)}.theme-btn[data-v-a66c2dea]:active{transform:rotate(-15deg)scale(.96)}.theme-panel[data-v-a66c2dea]{background:var(--surface);border:1px solid var(--border);width:240px;box-shadow:0 24px 50px -20px rgb(var(--shadow-color) / .35);z-index:60;border-radius:14px;padding:.5rem;position:absolute;top:calc(100% + .6rem);right:0}.theme-panel-title[data-v-a66c2dea]{text-transform:uppercase;letter-spacing:.12em;color:var(--text-soft);align-items:center;gap:.4rem;padding:.4rem .6rem .5rem;font-size:.72rem;display:inline-flex}.theme-option[data-v-a66c2dea]{text-align:left;border-radius:10px;align-items:center;gap:.7rem;width:100%;padding:.55rem .6rem;transition:background-color .18s;display:flex}.theme-option[data-v-a66c2dea]:hover,.theme-option.is-current[data-v-a66c2dea]{background:var(--surface-elev)}.swatches[data-v-a66c2dea]{align-items:center;display:inline-flex}.swatch[data-v-a66c2dea]{border:1px solid rgb(var(--shadow-color) / .12);border-radius:50%;width:14px;height:14px}.swatch+.swatch[data-v-a66c2dea]{margin-left:-4px}.theme-meta[data-v-a66c2dea]{flex-direction:column;flex:1;line-height:1.2;display:flex}.theme-label[data-v-a66c2dea]{color:var(--text);font-size:.88rem;font-weight:500}.theme-desc[data-v-a66c2dea]{color:var(--text-soft);margin-top:2px;font-size:.74rem}.theme-check[data-v-a66c2dea]{width:18px;height:18px;color:var(--accent);justify-content:center;align-items:center;display:inline-flex}.pop-enter-active[data-v-a66c2dea],.pop-leave-active[data-v-a66c2dea]{transform-origin:100% 0;transition:opacity .2s,transform .24s cubic-bezier(.16,1,.3,1)}.pop-enter-from[data-v-a66c2dea],.pop-leave-to[data-v-a66c2dea]{opacity:0;transform:scale(.94)translateY(-4px)}.nav[data-v-849d5924]{z-index:50;justify-content:center;display:flex;position:fixed;top:.75rem;left:.75rem;right:.75rem}.nav-inner[data-v-849d5924]{background:color-mix(in srgb, var(--surface) 80%, transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px)saturate(140%);border-radius:999px;justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:1100px;padding:.65rem .8rem .65rem 1.2rem;transition:background-color .3s,border-color .3s,box-shadow .3s,padding .3s;display:flex}.nav.is-scrolled .nav-inner[data-v-849d5924]{background:color-mix(in srgb, var(--surface) 94%, transparent);border-color:var(--border-strong);box-shadow:0 14px 32px -22px rgb(var(--shadow-color) / .3)}.brand[data-v-849d5924]{color:var(--text);align-items:center;gap:.55rem;font-family:Playfair Display,serif;font-weight:600;display:inline-flex}.brand-mark[data-v-849d5924]{background:var(--text);width:28px;height:28px;color:var(--surface);border-radius:8px;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;transition:transform .35s cubic-bezier(.16,1,.3,1);display:inline-flex}.brand:hover .brand-mark[data-v-849d5924]{transform:rotate(-8deg)scale(1.05)}.brand-text[data-v-849d5924]{letter-spacing:.01em;font-size:1.05rem}.nav-links[data-v-849d5924]{background:color-mix(in srgb, var(--surface-elev) 60%, transparent);border-radius:999px;align-items:center;padding:.2rem;display:none;position:relative}@media (width>=768px){.nav-links[data-v-849d5924]{display:inline-flex}}.nav-link[data-v-849d5924]{z-index:1;color:var(--text-soft);will-change:transform, color;-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.88rem;transition:color .22s,transform .22s cubic-bezier(.16,1,.3,1);display:inline-flex;position:relative}.nav-link-icon[data-v-849d5924]{opacity:.6;transition:opacity .22s,transform .28s cubic-bezier(.16,1,.3,1)}.nav-link-label[data-v-849d5924]{letter-spacing:.01em;font-weight:500}.nav-link[data-v-849d5924]:hover{color:var(--text)}.nav-link:hover .nav-link-icon[data-v-849d5924]{opacity:1;transform:rotate(-6deg)}.nav-link.is-lit[data-v-849d5924]{color:var(--text)}.nav-link.is-lit .nav-link-icon[data-v-849d5924]{opacity:1}.nav-link.is-active[data-v-849d5924]{color:var(--text)}.nav-link.is-active .nav-link-icon[data-v-849d5924]{opacity:1}.nav-link.is-active[data-v-849d5924]:active{transform:scale(.97)}.nav-link[data-v-849d5924]:focus-visible{outline:none}.nav-link-dot[data-v-849d5924]{background:var(--accent);width:4px;height:4px;box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);border-radius:50%;margin-left:1px;animation:2.2s ease-out infinite nav-dot-849d5924}@keyframes nav-dot-849d5924{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent)}70%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}}.nav-indicator[data-v-849d5924]{background:var(--surface);border:1px solid var(--border);box-shadow:0 1px 0 #fff9 inset, 0 6px 16px -10px rgb(var(--shadow-color) / .35);z-index:0;pointer-events:none;will-change:transform, width, height;border-radius:999px;transition:transform .42s cubic-bezier(.34,1.25,.4,1),width .42s cubic-bezier(.34,1.25,.4,1),height .42s cubic-bezier(.34,1.25,.4,1),background-color .24s,border-color .24s,opacity .2s;position:absolute;top:0;left:0}.nav-indicator.is-hover[data-v-849d5924]{background:color-mix(in srgb, var(--surface) 70%, transparent);border-color:var(--border);box-shadow:0 1px 0 #fff6 inset, 0 4px 12px -10px rgb(var(--shadow-color) / .25)}.nav-actions[data-v-849d5924]{align-items:center;gap:.4rem;display:inline-flex}.menu-btn[data-v-849d5924]{border:1px solid var(--border-strong);width:38px;height:38px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;transition:background-color .2s,transform .2s;display:inline-flex;overflow:hidden}.menu-btn[data-v-849d5924]:hover{background:var(--surface-elev)}.menu-btn[data-v-849d5924]:active{transform:scale(.94)rotate(-10deg)}@media (width>=768px){.menu-btn[data-v-849d5924]{display:none}}.icon-swap-enter-active[data-v-849d5924],.icon-swap-leave-active[data-v-849d5924]{transition:opacity .18s,transform .22s cubic-bezier(.16,1,.3,1)}.icon-swap-enter-from[data-v-849d5924]{opacity:0;transform:rotate(-90deg)scale(.8)}.icon-swap-leave-to[data-v-849d5924]{opacity:0;transform:rotate(90deg)scale(.8)}.mobile-menu[data-v-849d5924]{background:var(--surface);border:1px solid var(--border);box-shadow:0 24px 60px -20px rgb(var(--shadow-color) / .35);border-radius:18px;flex-direction:column;gap:.15rem;padding:.65rem;display:flex;position:fixed;inset:4.5rem .75rem auto}.mobile-link[data-v-849d5924]{color:var(--text);opacity:0;border-radius:12px;align-items:center;gap:.75rem;padding:.85rem .95rem;font-size:.95rem;transition:background-color .2s;animation:.38s cubic-bezier(.16,1,.3,1) forwards link-in-849d5924;display:flex;transform:translateY(8px)}.mobile-link-icon[data-v-849d5924]{background:var(--surface-elev);width:32px;height:32px;color:var(--text);border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.mobile-link-label[data-v-849d5924]{flex:1}.mobile-link-tag[data-v-849d5924]{letter-spacing:.06em;text-transform:uppercase;background:var(--accent-soft);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:.12rem .5rem;font-size:.68rem}.mobile-link .mobile-link-arrow[data-v-849d5924]{color:var(--text-soft);transition:transform .22s,color .2s}.mobile-link[data-v-849d5924]:hover{background:var(--surface-elev)}.mobile-link:hover .mobile-link-arrow[data-v-849d5924]{color:var(--accent);transform:translate(3px)}.mobile-link.is-active[data-v-849d5924]{background:var(--accent-soft)}.mobile-link.is-active .mobile-link-icon[data-v-849d5924]{background:var(--text);color:var(--surface)}@keyframes link-in-849d5924{to{opacity:1;transform:translateY(0)}}.sheet-enter-active[data-v-849d5924],.sheet-leave-active[data-v-849d5924]{transition:opacity .22s,transform .32s cubic-bezier(.16,1,.3,1)}.sheet-enter-from[data-v-849d5924],.sheet-leave-to[data-v-849d5924]{opacity:0;transform:translateY(-10px)scale(.97)}@media (prefers-reduced-motion:reduce){.nav-indicator[data-v-849d5924]{transition:none}.mobile-link[data-v-849d5924]{animation-duration:.01ms}.nav-link-dot[data-v-849d5924]{animation:none}}.footer[data-v-057aa7b2]{border-top:1px solid var(--border);background:linear-gradient(180deg, transparent, var(--surface-elev) 60%, var(--surface-elev));flex-shrink:0;margin-top:6rem}.footer-banner[data-v-057aa7b2]{text-align:center;padding:3rem 1.5rem 2.5rem;position:relative}.banner-rule[data-v-057aa7b2]{background:var(--accent);width:36px;height:1px;margin:0 auto 1.5rem}.banner-quote[data-v-057aa7b2]{color:var(--text);max-width:640px;margin:0 auto;font-family:Playfair Display,serif;font-size:clamp(1.05rem,2vw,1.4rem);line-height:1.55;position:relative}.banner-quote em[data-v-057aa7b2]{color:var(--accent);font-style:italic}.banner-mark[data-v-057aa7b2]{color:var(--accent);opacity:.35;font-family:Playfair Display,serif;font-size:3rem;line-height:1;position:absolute;top:-.6rem;left:-1.6rem}.banner-by[data-v-057aa7b2]{letter-spacing:.08em;color:var(--text-soft);margin-top:1rem;font-size:.78rem}.footer-grid[data-v-057aa7b2]{border-top:1px solid var(--border);grid-template-columns:1fr;gap:2.5rem;padding-top:2.5rem;padding-bottom:2.5rem;display:grid}@media (width>=640px){.footer-grid[data-v-057aa7b2]{grid-template-columns:1fr 1fr;gap:2.5rem 3rem}}@media (width>=1024px){.footer-grid[data-v-057aa7b2]{grid-template-columns:1.6fr 1fr 1.2fr 1.4fr;gap:4rem}}.footer-col[data-v-057aa7b2]{flex-direction:column;min-width:0;display:flex}.footer-col-title[data-v-057aa7b2]{text-transform:uppercase;letter-spacing:.14em;color:var(--text-soft);align-items:center;gap:.35rem;margin-bottom:1rem;font-family:Inter,sans-serif;font-size:.7rem;font-weight:500;display:inline-flex}.footer-brand[data-v-057aa7b2]{color:var(--text);align-items:center;gap:.7rem;transition:transform .22s;display:inline-flex}.footer-brand[data-v-057aa7b2]:hover{transform:translateY(-1px)}.footer-mark[data-v-057aa7b2]{background:var(--text);width:42px;height:42px;color:var(--surface);border-radius:10px;justify-content:center;align-items:center;font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700;transition:transform .32s cubic-bezier(.16,1,.3,1);display:inline-flex}.footer-brand:hover .footer-mark[data-v-057aa7b2]{transform:rotate(-8deg)scale(1.04)}.footer-name[data-v-057aa7b2]{color:var(--text);font-family:Playfair Display,serif;font-size:1.15rem;font-weight:600;line-height:1.1;display:block}.footer-tag[data-v-057aa7b2]{color:var(--text-soft);margin-top:2px;font-size:.78rem;display:block}.footer-desc[data-v-057aa7b2]{color:var(--text-muted);max-width:22rem;margin-top:1.25rem;font-size:.86rem;line-height:1.65}.footer-social[data-v-057aa7b2]{gap:.4rem;margin-top:1.5rem;display:inline-flex}.social-btn[data-v-057aa7b2]{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;transition:background-color .2s,color .2s,border-color .2s,transform .28s cubic-bezier(.16,1,.3,1);display:inline-flex}.social-btn[data-v-057aa7b2]:hover{background:var(--text);color:var(--surface);border-color:var(--text);transform:translateY(-3px)rotate(-5deg)}.social-btn.is-brand[data-v-057aa7b2]:hover{background:var(--brand,var(--accent));border-color:var(--brand,var(--accent));color:#fff}.footer-link[data-v-057aa7b2]{color:var(--text-muted);width:fit-content;padding:.32rem 0;font-size:.92rem;transition:color .2s,transform .2s;display:inline-block}.footer-link[data-v-057aa7b2]:hover{color:var(--text);transform:translate(3px)}.footer-post[data-v-057aa7b2]{color:var(--text);border-bottom:1px dashed #0000;flex-direction:column;gap:2px;padding:.5rem 0;transition:border-color .22s,transform .2s;display:flex}.footer-post+.footer-post[data-v-057aa7b2]{border-top:1px dashed var(--border)}.footer-post[data-v-057aa7b2]:hover{transform:translate(3px)}.footer-post-title[data-v-057aa7b2]{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.88rem;font-weight:500;line-height:1.4;display:-webkit-box;overflow:hidden}.footer-post:hover .footer-post-title[data-v-057aa7b2]{color:var(--accent)}.footer-post-date[data-v-057aa7b2]{color:var(--text-soft);font-size:.72rem}.footer-news-text[data-v-057aa7b2]{color:var(--text-muted);margin-bottom:.85rem;font-size:.86rem;line-height:1.55}.footer-news-form[data-v-057aa7b2]{background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .35rem .3rem 1rem;transition:border-color .2s,box-shadow .2s;display:flex}.footer-news-form[data-v-057aa7b2]:focus-within{border-color:var(--text);box-shadow:0 0 0 4px var(--accent-soft)}.footer-news-form input[data-v-057aa7b2]{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:.88rem}.footer-news-form input[data-v-057aa7b2]::placeholder{color:var(--text-soft)}.footer-news-form input[data-v-057aa7b2]:disabled{opacity:.6}.footer-news-btn[data-v-057aa7b2]{background:var(--text);width:34px;height:34px;color:var(--surface);border-radius:999px;flex:none;justify-content:center;align-items:center;transition:transform .22s cubic-bezier(.16,1,.3,1),background-color .22s,opacity .22s;display:inline-flex}.footer-news-btn[data-v-057aa7b2]:hover:not(:disabled){transform:translate(2px)}.footer-news-btn[data-v-057aa7b2]:disabled{opacity:.7;cursor:progress}.spinner[data-v-057aa7b2]{border:2px solid color-mix(in srgb, var(--surface) 50%, transparent);border-top-color:var(--surface);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin-057aa7b2}@keyframes spin-057aa7b2{to{transform:rotate(360deg)}}.copy-swap-enter-active[data-v-057aa7b2],.copy-swap-leave-active[data-v-057aa7b2]{transition:opacity .18s,transform .2s cubic-bezier(.16,1,.3,1)}.copy-swap-enter-from[data-v-057aa7b2],.copy-swap-leave-to[data-v-057aa7b2]{opacity:0;transform:scale(.8)}.footer-news-note[data-v-057aa7b2]{color:var(--text-soft);align-items:center;gap:.3rem;margin-top:.85rem;font-size:.74rem;display:inline-flex}.footer-bottom[data-v-057aa7b2]{border-top:1px solid var(--border);color:var(--text-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;padding-top:1.25rem;padding-bottom:1.5rem;font-size:.8rem;display:flex}.footer-bottom-l[data-v-057aa7b2],.footer-bottom-r[data-v-057aa7b2]{align-items:center;gap:.5rem;display:inline-flex}.footer-bottom-dot[data-v-057aa7b2]{opacity:.5}.footer-bottom-tagline[data-v-057aa7b2]{font-family:Playfair Display,serif;font-style:italic}.footer-theme-chip[data-v-057aa7b2]{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;align-items:center;gap:.4rem;padding:.28rem .7rem .28rem .4rem;font-size:.76rem;display:inline-flex}.footer-theme-swatches[data-v-057aa7b2]{align-items:center;display:inline-flex}.footer-theme-swatch[data-v-057aa7b2]{border:1px solid rgb(var(--shadow-color) / .15);border-radius:50%;width:10px;height:10px}.footer-theme-swatch+.footer-theme-swatch[data-v-057aa7b2]{margin-left:-3px}.footer-totop[data-v-057aa7b2]{background:var(--surface);border:1px solid var(--border);width:32px;height:32px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;transition:background-color .2s,color .2s,border-color .2s,transform .24s cubic-bezier(.16,1,.3,1);display:inline-flex}.footer-totop[data-v-057aa7b2]:hover{background:var(--text);color:var(--surface);border-color:var(--text);transform:translateY(-3px)}.footer-totop-icon[data-v-057aa7b2]{transition:transform .3s cubic-bezier(.16,1,.3,1);transform:rotate(-90deg)}.footer-totop:hover .footer-totop-icon[data-v-057aa7b2]{transform:rotate(-90deg)translate(2px)}@media (width<=540px){.footer-bottom[data-v-057aa7b2]{text-align:center;justify-content:center}.footer-bottom-l[data-v-057aa7b2]{flex-wrap:wrap;justify-content:center}}@media (prefers-reduced-motion:reduce){.footer-news-btn .spinner[data-v-057aa7b2]{animation:none}}.fab[data-v-6ea651f3]{background:var(--surface);border:1px solid var(--border);width:44px;height:44px;color:var(--text);z-index:40;cursor:pointer;box-shadow:0 12px 32px -14px rgb(var(--shadow-color) / .35);border-radius:50%;justify-content:center;align-items:center;transition:background-color .22s,border-color .22s,transform .28s cubic-bezier(.16,1,.3,1),box-shadow .22s;display:inline-flex;position:fixed;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}.fab[data-v-6ea651f3]:hover{background:var(--surface-elev);border-color:var(--border-strong);box-shadow:0 20px 40px -16px rgb(var(--shadow-color) / .4);transform:translateY(-3px)}.fab[data-v-6ea651f3]:active{transform:translateY(-1px)scale(.96)}.fab[data-v-6ea651f3]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.fab-ring[data-v-6ea651f3]{pointer-events:none;position:absolute;inset:0}.fab-progress[data-v-6ea651f3]{transition:stroke-dashoffset .2s linear}.fab-icon[data-v-6ea651f3]{justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.16,1,.3,1);display:inline-flex;transform:rotate(-90deg)}.fab:hover .fab-icon[data-v-6ea651f3]{transform:rotate(-90deg)translate(2px)}.fab-enter-active[data-v-6ea651f3],.fab-leave-active[data-v-6ea651f3]{transition:opacity .22s,transform .32s cubic-bezier(.16,1,.3,1)}.fab-enter-from[data-v-6ea651f3],.fab-leave-to[data-v-6ea651f3]{opacity:0;transform:translateY(10px)scale(.85)}@media (prefers-reduced-motion:reduce){.fab-progress[data-v-6ea651f3],.fab[data-v-6ea651f3],.fab-icon[data-v-6ea651f3]{transition:none}}.toast-region[data-v-a2784426]{z-index:110;pointer-events:none;display:flex;position:fixed;bottom:clamp(1rem,3vw,1.75rem);left:50%;transform:translate(-50%)}@media (width>=640px){.toast-region[data-v-a2784426]{left:auto;right:clamp(1rem,3vw,1.75rem);transform:none}}.toast-list[data-v-a2784426]{flex-direction:column;gap:.5rem;width:min(360px,100vw - 2rem);list-style:none;display:flex}.toast[data-v-a2784426]{background:var(--surface);border:1px solid var(--border);box-shadow:0 20px 40px -18px rgb(var(--shadow-color) / .4);pointer-events:auto;border-radius:12px;align-items:flex-start;gap:.65rem;padding:.7rem .9rem .7rem .85rem;display:flex;position:relative;overflow:hidden}.toast-icon[data-v-a2784426]{background:var(--surface-elev);width:24px;height:24px;color:var(--text);border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex}.toast-success .toast-icon[data-v-a2784426]{background:var(--accent-soft);color:var(--accent)}.toast-error .toast-icon[data-v-a2784426]{background:color-mix(in srgb, #b91c1c 12%, var(--surface));color:#b91c1c}.toast-body[data-v-a2784426]{flex:1;min-width:0}.toast-title[data-v-a2784426]{color:var(--text);font-size:.88rem;font-weight:500;line-height:1.35}.toast-desc[data-v-a2784426]{color:var(--text-muted);margin-top:2px;font-size:.78rem;line-height:1.45}.toast-close[data-v-a2784426]{width:24px;height:24px;color:var(--text-soft);border-radius:999px;flex:none;justify-content:center;align-items:center;transition:background-color .18s,color .18s;display:inline-flex}.toast-close[data-v-a2784426]:hover{background:var(--surface-elev);color:var(--text)}.toast-bar[data-v-a2784426]{background:var(--accent);transform-origin:0;width:100%;height:2px;animation:linear forwards toast-bar-a2784426;position:absolute;bottom:0;left:0}.toast-success .toast-bar[data-v-a2784426]{background:var(--accent)}.toast-error .toast-bar[data-v-a2784426]{background:#b91c1c}@keyframes toast-bar-a2784426{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-enter-active[data-v-a2784426],.toast-leave-active[data-v-a2784426]{transition:opacity .26s,transform .32s cubic-bezier(.16,1,.3,1)}.toast-enter-from[data-v-a2784426]{opacity:0;transform:translateY(14px)scale(.96)}.toast-leave-to[data-v-a2784426]{opacity:0;transform:translateY(-6px)scale(.96)}.toast-move[data-v-a2784426]{transition:transform .32s cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion:reduce){.toast-bar[data-v-a2784426]{animation:none}}.vbar[data-v-49e07c5e]{z-index:40;color:var(--text);font-size:.8rem;position:fixed;bottom:clamp(1rem,3vw,2rem);left:clamp(1rem,3vw,2rem)}.vbar-trigger[data-v-49e07c5e]{background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid var(--border);cursor:pointer;-webkit-backdrop-filter:blur(10px)saturate(140%);box-shadow:0 12px 28px -18px rgb(var(--shadow-color) / .3);color:var(--text);-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .85rem .45rem .7rem;transition:background-color .24s,border-color .24s,transform .28s cubic-bezier(.16,1,.3,1),box-shadow .24s;display:inline-flex}.vbar-trigger[data-v-49e07c5e]:hover{background:color-mix(in srgb, var(--surface) 96%, transparent);border-color:var(--border-strong);transform:translateY(-2px)}.vbar.is-open .vbar-trigger[data-v-49e07c5e]{background:var(--surface);border-color:var(--border-strong)}.vbar-dot[data-v-49e07c5e]{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 50%, transparent);border-radius:50%;animation:2.4s ease-out infinite vbar-pulse-49e07c5e}@keyframes vbar-pulse-49e07c5e{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 50%, transparent)}70%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}}.vbar-clock[data-v-49e07c5e]{font-variant-numeric:tabular-nums;color:var(--text);align-items:center;gap:.3rem;display:inline-flex}.vbar-clock-text[data-v-49e07c5e]{letter-spacing:.03em}.vbar-sep[data-v-49e07c5e]{color:var(--text-soft);opacity:.7}.vbar-city[data-v-49e07c5e],.vbar-visit[data-v-49e07c5e]{color:var(--text-muted)}.vbar-chev[data-v-49e07c5e]{color:var(--text-soft);transition:transform .24s cubic-bezier(.16,1,.3,1)}.vbar-chev.is-flipped[data-v-49e07c5e]{transform:rotate(180deg)}@media (width<=480px){.vbar-hide-sm[data-v-49e07c5e]{display:none}}.vbar-panel[data-v-49e07c5e]{background:var(--surface);border:1px solid var(--border);width:min(340px,100vw - 2rem);box-shadow:0 28px 60px -24px rgb(var(--shadow-color) / .4);transform-origin:0 100%;border-radius:14px;padding:.9rem 1rem .7rem;position:absolute;bottom:calc(100% + .6rem);left:0}.vbar-panel-title[data-v-49e07c5e]{letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);align-items:center;gap:.35rem;margin-bottom:.7rem;font-size:.7rem;display:inline-flex}.vbar-rows[data-v-49e07c5e]{flex-direction:column;gap:.1rem;display:flex}.vbar-row[data-v-49e07c5e]{border-top:1px dashed var(--border);grid-template-columns:70px 1fr;align-items:center;gap:.5rem;padding:.4rem 0;display:grid}.vbar-row[data-v-49e07c5e]:first-child{border-top:0}.vbar-row dt[data-v-49e07c5e]{color:var(--text-soft);align-items:center;gap:.3rem;font-size:.75rem;display:inline-flex}.vbar-row dd[data-v-49e07c5e]{color:var(--text);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.vbar-row dd strong[data-v-49e07c5e]{font-weight:600}.vbar-sub[data-v-49e07c5e]{color:var(--text-soft);font-size:.78rem}.mono[data-v-49e07c5e]{font-variant-numeric:tabular-nums;color:var(--text);font-family:SFMono-Regular,Consolas,monospace;font-size:.8rem}.vbar-pill[data-v-49e07c5e]{background:var(--surface-elev);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.05rem .45rem;font-size:.72rem;display:inline-flex}.vbar-resume[data-v-49e07c5e]{background:var(--surface-elev);border:1px solid var(--border);border-radius:10px;margin-top:.85rem;padding:.7rem .8rem .65rem}.vbar-resume-label[data-v-49e07c5e]{color:var(--text-soft);letter-spacing:.05em;flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.72rem;display:inline-flex}.vbar-resume-title[data-v-49e07c5e]{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.3rem;font-family:Playfair Display,serif;font-size:.95rem;font-weight:500;line-height:1.4;display:-webkit-box;overflow:hidden}.vbar-resume-foot[data-v-49e07c5e]{align-items:center;gap:.55rem;margin-top:.55rem;display:flex}.vbar-resume-bar[data-v-49e07c5e]{background:var(--border);border-radius:999px;flex:1;height:5px;overflow:hidden}.vbar-resume-bar span[data-v-49e07c5e]{background:var(--accent);height:100%;transition:width .36s cubic-bezier(.16,1,.3,1);display:block}.vbar-resume-pct[data-v-49e07c5e]{color:var(--text-soft);font-variant-numeric:tabular-nums;text-align:right;min-width:28px;font-size:.72rem}.vbar-resume-btn[data-v-49e07c5e]{background:var(--text);color:var(--surface);border-radius:999px;align-items:center;gap:.25rem;padding:.3rem .65rem;font-size:.78rem;transition:transform .24s cubic-bezier(.16,1,.3,1),background-color .24s;display:inline-flex}.vbar-resume-btn[data-v-49e07c5e]:hover{background:var(--accent);transform:translateY(-1px)}.vbar-empty[data-v-49e07c5e]{background:var(--surface-elev);border:1px dashed var(--border-strong);color:var(--text-soft);border-radius:10px;align-items:center;gap:.45rem;margin-top:.85rem;padding:.7rem .8rem;font-size:.78rem;display:flex}.vbar-foot[data-v-49e07c5e]{border-top:1px solid var(--border);color:var(--text-soft);justify-content:space-between;align-items:center;gap:.5rem;margin-top:.7rem;padding-top:.55rem;font-size:.7rem;display:flex}.vbar-foot-note[data-v-49e07c5e]{font-style:italic}.vbar-reset[data-v-49e07c5e]{color:var(--text-soft);border:1px solid var(--border);background:0 0;border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .55rem;transition:color .18s,background-color .18s,border-color .18s;display:inline-flex}.vbar-reset[data-v-49e07c5e]:hover{color:#b91c1c;background:color-mix(in srgb, #b91c1c 8%, var(--surface));border-color:color-mix(in srgb, #b91c1c 25%, var(--border))}.vbar-pop-enter-active[data-v-49e07c5e],.vbar-pop-leave-active[data-v-49e07c5e]{transform-origin:0 100%;transition:opacity .22s,transform .28s cubic-bezier(.16,1,.3,1)}.vbar-pop-enter-from[data-v-49e07c5e],.vbar-pop-leave-to[data-v-49e07c5e]{opacity:0;transform:translateY(8px)scale(.96)}@media (prefers-reduced-motion:reduce){.vbar-dot[data-v-49e07c5e]{animation:none}.vbar-trigger[data-v-49e07c5e],.vbar-chev[data-v-49e07c5e],.vbar-resume-bar span[data-v-49e07c5e]{transition:none}}.splash[data-v-9d83792d]{z-index:200;background:var(--bg);background-image:radial-gradient(ellipse at center, transparent 0%, color-mix(in srgb, var(--text) 4%, transparent) 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.splash-inner[data-v-9d83792d]{flex-direction:column;align-items:center;gap:1.1rem;display:flex}.splash-mark[data-v-9d83792d]{background:var(--text);width:56px;height:56px;color:var(--surface);opacity:0;border-radius:12px;justify-content:center;align-items:center;font-family:Playfair Display,Georgia,serif;font-size:1.55rem;font-weight:700;transition:opacity .38s cubic-bezier(.16,1,.3,1),transform .52s cubic-bezier(.16,1,.3,1);display:inline-flex;transform:translateY(8px)scale(.94)}.splash.is-playing .splash-mark[data-v-9d83792d]{opacity:1;transform:translateY(0)scale(1)}.splash-mark-letter[data-v-9d83792d]{display:inline-block;transform:translateY(-1px)}.splash-line[data-v-9d83792d]{background:var(--border);border-radius:1px;width:96px;height:1px;overflow:hidden}.splash-line-fill[data-v-9d83792d]{background:var(--accent);width:0;height:100%;transition:width .72s cubic-bezier(.65,0,.35,1);display:block}.splash-line-fill.is-sweep[data-v-9d83792d]{width:100%}.splash-label[data-v-9d83792d]{letter-spacing:.32em;text-transform:uppercase;color:var(--text-soft);opacity:0;margin:0;font-family:Playfair Display,Georgia,serif;font-size:.85rem;transition:opacity .42s .12s,transform .48s cubic-bezier(.16,1,.3,1) .12s;transform:translateY(4px)}.splash.is-playing .splash-label[data-v-9d83792d]{opacity:1;transform:translateY(0)}.splash-leave-leave-active[data-v-9d83792d]{transition:opacity .42s,transform .52s cubic-bezier(.65,0,.35,1)}.splash-leave-leave-to[data-v-9d83792d]{opacity:0;transform:translateY(-2%)}.splash.is-reduced .splash-mark[data-v-9d83792d],.splash.is-reduced .splash-label[data-v-9d83792d],.splash.is-reduced .splash-line-fill[data-v-9d83792d]{opacity:1;width:100%;transition:none;transform:none}@media (prefers-reduced-motion:reduce){.splash-leave-leave-active[data-v-9d83792d]{transition:opacity .2s}.splash-leave-leave-to[data-v-9d83792d]{transform:none}}#app{flex-direction:column;min-height:100vh;padding-top:5.5rem;display:flex;position:relative}@media (width>=768px){#app{padding-top:6.25rem}}.page-shell{flex:1 0 auto;min-height:calc(100vh - 18rem);position:relative}.page-enter-active,.page-leave-active{transition:opacity .18s}.page-enter-from,.page-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.page-enter-active,.page-leave-active{transition:none}}
