@font-face{font-family:DM Sans;font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/dm-sans-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/dm-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/playfair-display-normal-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/playfair-display-normal-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/playfair-display-italic-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/playfair-display-italic-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#faf9f7;--color-bg-alt:#f0ede8;--color-text:#2c2c2c;--color-text-muted:#6b6b6b;--color-accent:#8b5e3c;--color-accent-alt:#c4946c;--color-border:#e0dcd5;--color-card:#fff;--color-card-hover:#faf8f5;--color-shadow:#0000000f;--color-overlay:#0006;--color-navy:var(--color-text);--color-salmon:#c4946c;--color-light-pink:#f0ede8;--font-display:"Playfair Display", "Georgia", "Noto Serif SC", "Source Han Serif SC", serif;--font-body:"DM Sans", "Inter", "Noto Sans SC", "Source Han Sans SC", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-serif:var(--font-display);--font-sans:var(--font-body);--text-xs:clamp(.72rem, 1.2vw, .78rem);--text-sm:clamp(.85rem, 1.3vw, .92rem);--text-base:clamp(1rem, 1.8vw, 1.1rem);--text-md:clamp(1.1rem, 2vw, 1.25rem);--text-lg:clamp(1.25rem, 2.5vw, 1.55rem);--text-xl:clamp(1.5rem, 3vw, 2rem);--text-2xl:clamp(2rem, 4vw, 2.8rem);--text-3xl:clamp(2.5rem, 5.5vw, 4.5rem);--heading-h1:clamp(3rem, 7vw, 7rem);--heading-h2:clamp(2.2rem, 5vw, 4.2rem);--heading-h3:clamp(1.6rem, 3vw, 2.8rem);--heading-h4:clamp(1.2rem, 2vw, 1.8rem);--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:4rem;--space-2xl:8rem;--max-width:720px;--max-width-wide:1100px;--header-height:64px;--section-padding:5rem;--border-radius:8px;--border-radius-pill:2.85rem;--border-radius-lg:16px;--shadow-sm:0 1px 3px var(--color-shadow);--shadow-md:0 4px 12px var(--color-shadow);--shadow-lg:0 8px 30px var(--color-shadow);--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--ease-out-expo:cubic-bezier(.19, 1, .22, 1);--ease-out-quint:cubic-bezier(.23, 1, .32, 1);--ease-in-out-quart:cubic-bezier(.77, 0, .175, 1)}[data-theme=dark]{--color-bg:#1a1a1a;--color-bg-alt:#242424;--color-text:#e0dcd5;--color-text-muted:#9b9b9b;--color-accent:#c4946c;--color-accent-alt:#8b5e3c;--color-border:#333;--color-card:#242424;--color-card-hover:#2a2a2a;--color-shadow:#0000004d;--color-overlay:#0009;--color-salmon:#c4946c;--color-light-pink:#333}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*,:after,:before{-webkit-tap-highlight-color:transparent}body:has(.target-cursor-wrapper){cursor:none!important}body:has(.target-cursor-wrapper) *{cursor:none!important}body:has(.target-cursor-wrapper) :after{cursor:none!important}body:has(.target-cursor-wrapper) :before{cursor:none!important}html[data-cursor-hidden] .target-cursor-wrapper{opacity:0;transition:opacity .15s}.target-cursor-wrapper{pointer-events:none;z-index:10001;will-change:transform;width:0;height:0;position:fixed;top:0;left:0;transform:translate(-50%,-50%);mix-blend-mode:normal!important}.target-cursor-dot{background:#fff;border-radius:50%;width:4px;height:4px;transform:translate(-50%,-50%)}.target-cursor-corner,.target-cursor-dot{will-change:transform;position:absolute;top:50%;left:50%}.target-cursor-corner{border:0 solid;width:12px;height:12px}.corner-tl{border-width:1px 0 0 1px;transform:translate(-18px,-18px)}.corner-tr{border-width:1px 1px 0 0;transform:translate(6px,-18px)}.corner-br{border-width:0 1px 1px 0;transform:translate(6px,6px)}.corner-bl{border-width:0 0 1px 1px;transform:translate(-18px,6px)}html[data-cursor-light] .target-cursor-dot{background:#ffffffe6!important}html[data-cursor-light] .target-cursor-corner{border-color:#ffffffd9!important}html.cursor-loading-transition .target-cursor-dot{transition:box-shadow .35s var(--ease-out-expo),opacity .35s ease}html[data-cursor-loading] .target-cursor-dot{opacity:.6;box-shadow:0 0 0 2px #80808059}html[data-cursor-loading-active] .target-cursor-dot{animation:.9s ease-in-out infinite cursor-dot-pulse}html[data-cursor-loading] .target-cursor-wrapper{pointer-events:none}@keyframes cursor-dot-pulse{0%,to{opacity:.6;box-shadow:0 0 0 2px #80808059}50%{opacity:.25;box-shadow:0 0 0 12px #80808000}}body{font-family:var(--font-body);font-size:var(--text-base);background-color:var(--color-bg);min-height:100vh;transition:background-color var(--transition-base),color var(--transition-base);line-height:1.7;overflow-x:hidden}body,h1,h2,h3,h4,h5,h6{color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.15}h1{font-size:var(--heading-h1);line-height:.9}h1,h2{font-weight:400}h2{font-size:var(--heading-h2);line-height:.95}h3{font-size:var(--heading-h3);line-height:1.1}h3,h4{font-weight:400}h4{font-size:var(--heading-h4);line-height:1.15}h5{font-size:var(--text-lg)}h5,h6{font-weight:500;line-height:1.2}h6{font-size:var(--text-base);text-transform:uppercase;letter-spacing:.05em}h1 b,h1 strong,h2 b,h2 strong,h3 b,h3 strong,h4 b,h4 strong{font-weight:700}p{margin-bottom:var(--space-md)}a{color:var(--color-text);transition:color var(--transition-fast),background-size var(--transition-base);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;text-decoration:none}a:hover{background-size:100% 1px}code{font-family:var(--font-mono);color:var(--color-accent);border-radius:4px;padding:.15em .4em;font-size:.9em}code,pre{background:var(--color-bg-alt)}pre{border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--space-md);margin-bottom:var(--space-md);overflow-x:auto}pre code{color:var(--color-text);background:0 0;padding:0}blockquote{border-left:3px solid var(--color-salmon);margin:var(--space-lg) 0;padding:var(--space-md) var(--space-lg);background:var(--color-bg-alt);border-radius:0 var(--border-radius) var(--border-radius) 0;color:var(--color-text-muted);font-style:italic}blockquote p{margin-bottom:0}img{border-radius:var(--border-radius);max-width:100%;height:auto}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-xl) 0}::selection{background:var(--color-salmon);color:#fff;text-shadow:none}:focus-visible{outline:2px solid var(--color-salmon);outline-offset:2px;border-radius:4px}html{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}.page-scrollbar{z-index:9999;touch-action:none;visibility:hidden;width:12px;height:100vh;position:fixed;top:0;right:0}.page-scrollbar-thumb{background:var(--color-border);cursor:grab;min-height:28px;transition:background-color var(--transition-fast);border-radius:999px;position:absolute;top:0;left:2px;right:2px}@media (pointer:fine){.page-scrollbar{width:8px}.page-scrollbar-thumb{left:1px;right:1px}.page-scrollbar:hover{width:12px}.page-scrollbar:hover .page-scrollbar-thumb{left:2px;right:2px}}.page-scrollbar-thumb:active,.page-scrollbar-thumb:hover{background:var(--color-text-muted)}.container{max-width:var(--max-width);padding:0 var(--space-lg);margin:0 auto}.container--wide{max-width:var(--max-width-wide)}@media (width<=640px){.container{padding:0 var(--space-md)}}.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}.accent-line{background:var(--color-salmon);width:60px;height:2px;margin:var(--space-md) auto;border-radius:2px;display:block}ol,ul{padding-left:var(--space-lg);margin-bottom:var(--space-md)}ol li,ul li{margin-bottom:var(--space-sm)}ul{list-style-type:disc}ol{list-style-type:decimal}@keyframes shapeRotate{0%{transform:rotate(-1turn)}to{transform:rotate(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--color-bg-alt) 25%,var(--color-border) 37%,var(--color-bg-alt) 63%);border-radius:var(--border-radius);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.loading-hidden{opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s}.fade-enter-active,.fade-leave-active{transition:opacity .35s var(--ease-out-expo)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-fade-enter-active{transition:all .5s var(--ease-out-expo)}.slide-fade-leave-active{transition:all .25s var(--ease-out-expo)}.slide-fade-enter-from{opacity:0;transform:translateY(20px)}.slide-fade-leave-to{opacity:0}.list-enter-active{transition:all .5s var(--ease-out-expo)}.list-leave-active{transition:all .3s var(--ease-out-expo)}.list-enter-from{opacity:0;transform:translateY(30px)}.list-leave-to{opacity:0;transform:translate(-20px)}.popin-enter-active{transition:transform 1s var(--ease-out-expo)}.popin-leave-active{transition:transform .8s var(--ease-out-expo)}.popin-enter-from,.popin-leave-to{transform:translate(110%)}.code-block{margin:var(--space-lg) 0;border:1px solid var(--color-border);border-radius:var(--border-radius);position:relative;overflow:hidden}.code-block,.code-block__bar{background:var(--color-bg-alt)}.code-block__bar{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:4px 8px 4px var(--space-md);border-bottom:1px solid var(--color-border);display:flex}.code-block__lang{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.code-block__copy{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.code-block__copy:hover{color:var(--color-text);background-color:var(--color-card-hover)}.code-block__copy:active{transform:scale(.92)}.code-block__copy.is-copied .code-block__icon--copy,.code-block__icon--check{display:none}.code-block__copy.is-copied .code-block__icon--check{color:var(--color-accent);display:block}.code-block pre{padding:var(--space-md);scrollbar-width:none;-ms-overflow-style:none;border:0;border-radius:0;margin:0;overflow-x:auto}.code-block pre::-webkit-scrollbar{width:0;height:0;display:none}.code-block pre code{color:inherit;font-family:var(--font-mono);counter-reset:line;background:0 0;border-radius:0;padding:0;font-size:.9em;line-height:1.5;display:block}.code-block .code-block__plain,.code-block .shiki{background-color:var(--color-bg-alt)!important}[data-theme=dark] .code-block .shiki,[data-theme=dark] .code-block .shiki span{color:var(--shiki-dark)!important}.code-block pre .line{display:block}.code-block pre .line:before{counter-increment:line;content:counter(line);text-align:right;min-width:2.5ch;color:var(--color-text-muted);opacity:.55;-webkit-user-select:none;user-select:none;margin-right:1.5ch;display:inline-block}.code-block__scrollbar{background:var(--color-bg-alt);border-top:1px solid var(--color-border);visibility:hidden;touch-action:none;height:18px;position:relative}.code-block__scrollbar-thumb{background:var(--color-border);cursor:grab;min-width:36px;transition:background-color var(--transition-fast);border-radius:6px;position:absolute;top:4px;bottom:4px;left:0}.code-block__scrollbar-thumb:active,.code-block__scrollbar-thumb:hover{background:var(--color-text-muted)}.app-header[data-v-4821bed9]{z-index:1000;height:var(--header-height);mix-blend-mode:difference;will-change:transform;background:0 0;position:fixed;top:0;left:0;right:0}.app-header__inner[data-v-4821bed9]{height:100%;max-width:var(--max-width-wide);padding:0 var(--space-lg);justify-content:space-between;align-items:center;margin:0 auto;display:flex}@media (width<=640px){.app-header__inner[data-v-4821bed9]{padding:0 var(--space-md)}}.app-header__brand[data-v-4821bed9]{font-family:var(--font-display);color:#fff;letter-spacing:.02em;background-image:none;font-size:1.3rem;font-weight:400}.app-header__brand[data-v-4821bed9]:hover{color:var(--color-salmon)}.app-header__nav[data-v-4821bed9]{align-items:center;gap:1.5rem;display:flex}.app-header__link[data-v-4821bed9]{font-family:var(--font-body);color:#fff;text-transform:uppercase;letter-spacing:.08em;opacity:.8;transition:opacity var(--transition-fast);background-image:none;font-size:.8rem;font-weight:500}.app-header__link--active[data-v-4821bed9],.app-header__link[data-v-4821bed9]:hover{opacity:1}.app-header__search-btn[data-v-4821bed9]{color:#fff;opacity:.8;transition:opacity var(--transition-fast);background-image:none;justify-content:center;align-items:center;display:flex}.app-header__search-btn[data-v-4821bed9]:hover{opacity:1}.app-header__theme-btn[data-v-4821bed9]{cursor:pointer;color:#fff;width:34px;height:34px;transition:border-color var(--transition-fast),background var(--transition-fast);background:0 0;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;display:flex}.app-header__theme-btn[data-v-4821bed9]:hover{background:#ffffff1a;border-color:#fff}.app-header__mobile[data-v-4821bed9]{display:none}.app-header__hamburger[data-v-4821bed9]{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:flex}.app-header__hamburger span[data-v-4821bed9]{width:22px;height:2px;transition:transform .25s var(--ease-out-expo),opacity .15s ease;transform-origin:100%;background:#fff;border-radius:2px;display:block}@media (hover:hover){.app-header__hamburger:hover span[data-v-4821bed9]:first-child{transform:scaleX(.9)}.app-header__hamburger:hover span[data-v-4821bed9]:nth-child(2){transform:scaleX(.4)}.app-header__hamburger:hover span[data-v-4821bed9]:nth-child(3){transform:scaleX(.6)}}.app-header__hamburger.is-open span[data-v-4821bed9]:first-child{transform:rotate(45deg)translate(5px,5px)}.app-header__hamburger.is-open span[data-v-4821bed9]:nth-child(2){opacity:0}.app-header__hamburger.is-open span[data-v-4821bed9]:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}.app-header__mobile-nav[data-v-4821bed9]{z-index:999;pointer-events:none;position:fixed;inset:0;overflow:hidden}.app-header__mobile-nav[data-state=open][data-v-4821bed9]{pointer-events:auto}.app-header__mobile-panel[data-v-4821bed9]{height:100%;padding-top:var(--header-height);background:var(--color-bg);opacity:0;flex-direction:column;display:flex}.app-header__mobile-links[data-v-4821bed9]{padding:0 var(--space-lg);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2.5rem;display:flex}.app-header__mobile-link[data-v-4821bed9]{font-family:var(--font-body);font-size:var(--text-xl);color:var(--color-text);letter-spacing:-.01em;cursor:pointer;padding:var(--space-xs) 0;transition:color var(--transition-fast);background:0 0;border:none;font-weight:500;text-decoration:none;position:relative}.app-header__mobile-link[data-v-4821bed9]:after{content:"";background:var(--color-accent);width:24px;height:2px;transition:transform .3s var(--ease-out-expo);border-radius:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)scaleX(0)}.app-header__mobile-link[data-v-4821bed9]:hover{color:var(--color-accent)}.app-header__mobile-link[data-v-4821bed9]:hover:after{transform:translate(-50%)scaleX(1)}.app-header__mobile-link.router-link-exact-active[data-v-4821bed9]{color:var(--color-accent)}.app-header__mobile-link.router-link-exact-active[data-v-4821bed9]:after{transform:translate(-50%)scaleX(1)}.app-header__mobile-actions[data-v-4821bed9]{justify-content:center;align-items:center;gap:var(--space-lg);padding:var(--space-lg);border-top:1px solid var(--color-border);display:flex}.app-header__mobile-icon-btn[data-v-4821bed9]{border:1px solid var(--color-border);background:var(--color-card);width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast),transform .2s var(--ease-out-expo);border-radius:50%;justify-content:center;align-items:center;display:flex}.app-header__mobile-icon-btn[data-v-4821bed9]:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-card-hover);transform:scale(1.05)}@media (width<=640px){.app-header__nav[data-v-4821bed9]{display:none}.app-header__mobile[data-v-4821bed9]{display:block}}.app-footer[data-v-69ba5a5c]{padding:var(--space-xl) 0;border-top:1px solid var(--color-border);margin-top:var(--space-2xl)}.app-footer__inner[data-v-69ba5a5c]{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.app-footer__text[data-v-69ba5a5c]{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.app-footer__links[data-v-69ba5a5c]{gap:var(--space-md);display:flex}.app-footer__link[data-v-69ba5a5c]{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-muted)}.app-footer__link[data-v-69ba5a5c]:hover{color:var(--color-accent)}.loading-screen[data-v-97942480]{z-index:9999;background-color:var(--color-bg);color:var(--color-text);justify-content:center;align-items:center;transition:opacity .6s,visibility .6s;display:flex;position:fixed;inset:0}.loading-screen.loading-hidden[data-v-97942480]{opacity:0;visibility:hidden;pointer-events:none}.loading-screen__logo[data-v-97942480]{font-family:var(--font-display);letter-spacing:.05em;color:var(--color-accent);z-index:2;font-size:clamp(2rem,4vw,3.5rem);font-weight:400;position:relative}.loading-screen__shape[data-v-97942480]{opacity:.5;width:min(600px,80vw);height:min(600px,80vw);color:var(--color-accent);position:absolute;bottom:-15%;left:50%;transform:translate(-50%)}.loading-screen__shape svg[data-v-97942480]{width:100%;height:100%;animation:120s linear infinite shapeRotate}.organic-shape[data-v-1fafbfa3]{z-index:0;pointer-events:none;opacity:.3;color:var(--color-accent);position:fixed;inset:0}.organic-shape svg[data-v-1fafbfa3]{width:min(700px,60vw);height:auto;position:absolute;top:15%;left:55%}.organic-shape svg path[data-v-1fafbfa3]{fill:none;stroke:currentColor;stroke-width:2px}@media (width<=768px){.organic-shape svg[data-v-1fafbfa3]{width:80vw;top:10%;left:30%}}.app-shell[data-v-76fa07ad]{flex-direction:column;display:flex}.app-main[data-v-76fa07ad]{min-height:100vh;padding-top:var(--header-height);flex:1 0 auto}.error-page[data-v-44c33cb0]{padding:var(--space-2xl) 0;align-items:center;min-height:60vh;display:flex}.error-page__content[data-v-44c33cb0]{text-align:center;max-width:480px;margin:0 auto}.error-page__code[data-v-44c33cb0]{font-family:var(--font-serif);color:var(--color-accent);opacity:.3;margin-bottom:var(--space-md);font-size:clamp(4rem,10vw,8rem);font-weight:700;line-height:1;display:block}.error-page__title[data-v-44c33cb0]{font-size:var(--text-2xl);margin-bottom:var(--space-md)}.error-page__desc[data-v-44c33cb0]{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-xl);line-height:1.7}.error-page__actions[data-v-44c33cb0]{justify-content:center;gap:var(--space-md);flex-wrap:wrap;display:flex}
