@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dmsans.woff2)format("woff2")}@font-face{font-family:Noto Serif SC;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/noto-serif-sc.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono.woff2)format("woff2")}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111114;--bg-2:#17171c;--bg-3:#1e1e25;--card:#ffffff07;--card-hover:#ffffff0d;--hover:#ffffff0f;--nav-bg:#1111149e;--text:#e8e8ed;--text-2:#b3b3c0;--muted:#7b7b88;--line:#ffffff1a;--line-strong:#ffffff3d;--grid:#fff1;--primary:#64b5f6;--primary-2:#1b91ff;--pink:#f472b6;--red:#f87171;--green:#4ade80;--yellow:#fbbf24;--purple:#c084fc;--cyan:#22d3ee;--shadow:0 16px 40px #00000059;--haze-1:#64b5f624;--haze-2:#c084fc1a;--haze-3:#22d3ee12;--sans:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--serif:"Noto Serif SC", "Songti SC", "Noto Serif", SimSun, Georgia, serif;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--maxw:980px;--nav-h:56px}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f8fc;--bg-2:#fff;--bg-3:#eef2f8;--card:#ffffffad;--card-hover:#fff;--hover:#1b24340d;--nav-bg:#f6f8fcb8;--text:#1b2434;--text-2:#4c5667;--muted:#8b95a6;--line:#1b24341a;--line-strong:#1b243438;--grid:#1b24340e;--primary:#1b91ff;--primary-2:#0b7cf0;--pink:#ec4899;--red:#ef4444;--green:#22c55e;--yellow:#eab308;--purple:#a855f7;--cyan:#06b6d4;--shadow:0 16px 40px #1f2d461a;--haze-1:#78b4ff73;--haze-2:#ffaad752;--haze-3:#78e1ff52}*,:before,:after{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px);-webkit-text-size-adjust:100%}body{color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:0 0;margin:0;font-size:16px;line-height:1.7;transition:background-color .3s,color .3s;overflow-x:hidden}h1,h2,h3,h4,p,figure,dl,dd{margin:0}ul,ol{margin:0;padding:0;list-style:none}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}::selection{background:var(--primary);color:var(--bg)}:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}.bg-grid{z-index:0;pointer-events:none;background-image:linear-gradient(90deg, var(--grid) 1px, transparent 1px), linear-gradient(var(--grid) 1px, transparent 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000f2 0%,#0009 55%,#00000026 100%);mask-image:linear-gradient(#000000f2 0%,#0009 55%,#00000026 100%)}.bg-haze{z-index:0;pointer-events:none;background:radial-gradient(520px 380px at 18% 14%, var(--haze-1), transparent 70%), radial-gradient(460px 340px at 84% 20%, var(--haze-2), transparent 70%), radial-gradient(640px 420px at 50% 92%, var(--haze-3), transparent 72%);opacity:.9;transition:opacity .3s;position:absolute;inset:0}[data-theme=light] .bg-haze{opacity:1;filter:blur(6px)}.site-main{z-index:1;position:relative}.content{max-width:var(--maxw);margin:0 auto;padding:0 20px 72px}.section{padding:48px 0}.card{border:1px solid var(--line);background:var(--card);border-radius:12px;transition:border-color .25s,background .25s}.card:hover{border-color:var(--line-strong)}.will-reveal{opacity:0;transition:opacity .8s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s), transform .8s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s);transform:translateY(18px)}.will-reveal.is-revealed{opacity:1;transform:translateY(0)}.skip-link{z-index:200;background:var(--primary);color:var(--bg);border-radius:8px;padding:10px 16px;font-size:12px;transition:transform .25s;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:content-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}@media (width<=700px){.content{padding:0 16px 56px}.section{padding:36px 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.will-reveal{opacity:1;transform:none}}.section-head[data-v-cde8835e]{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px;display:flex}.section-kicker[data-v-cde8835e]{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin-bottom:8px;font-size:10px;display:flex}.section-icon[data-v-cde8835e]{color:var(--primary);place-items:center;display:grid}.section-title[data-v-cde8835e]{font-family:var(--serif);letter-spacing:.01em;font-size:clamp(26px,3.6vw,34px);font-weight:600;line-height:1.2}.section-desc[data-v-cde8835e]{max-width:38ch;color:var(--text-2);text-align:right;padding-bottom:4px;font-size:13px;line-height:1.8}@media (width<=700px){.section-head[data-v-cde8835e]{flex-direction:column;align-items:flex-start;gap:10px}.section-desc[data-v-cde8835e]{text-align:left;padding-bottom:0}}.about-grid[data-v-e7e79e9b]{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:start;gap:16px;display:grid}.about-bio[data-v-e7e79e9b]{color:var(--text-2);flex-direction:column;gap:14px;font-size:13.5px;line-height:1.9;display:flex}.about-lead[data-v-e7e79e9b]{font-family:var(--serif);color:var(--text);font-size:24px;font-weight:600;line-height:1.5}.about-links[data-v-e7e79e9b]{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.about-links a[data-v-e7e79e9b]{border:1px solid var(--line);color:var(--text-2);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;transition:color .25s,border-color .25s,background .25s;display:inline-flex}.about-links a[data-v-e7e79e9b]:hover{color:var(--primary);border-color:var(--line-strong);background:var(--hover)}.card-title[data-v-e7e79e9b]{align-items:baseline;gap:8px;margin-bottom:16px;font-size:14px;font-weight:600;display:flex}.card-title span[data-v-e7e79e9b]{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:400}.stack-group+.stack-group[data-v-e7e79e9b]{margin-top:14px}.stack-label[data-v-e7e79e9b]{color:var(--text-2);justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:12px;display:flex}.stack-label span[data-v-e7e79e9b]{font-family:var(--mono);letter-spacing:.14em;color:var(--muted);font-size:8.5px}.stack-items[data-v-e7e79e9b]{flex-wrap:wrap;gap:6px;display:flex}.stack-items li[data-v-e7e79e9b]{border:1px solid var(--line);font-family:var(--mono);color:var(--text-2);border-radius:999px;padding:3px 8px;font-size:10px;transition:color .2s,border-color .2s}.stack-items li[data-v-e7e79e9b]:hover{color:var(--primary);border-color:var(--line-strong)}.timeline[data-v-e7e79e9b]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.timeline-item[data-v-e7e79e9b]{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:16px;transition:border-color .25s,background .25s,transform .25s cubic-bezier(.22,1,.36,1)}.timeline-item[data-v-e7e79e9b]:hover{border-color:var(--line-strong);background:var(--card-hover);transform:translateY(-2px)}.timeline-year[data-v-e7e79e9b]{font-family:var(--mono);letter-spacing:.1em;color:var(--primary);font-size:10px}.timeline-title[data-v-e7e79e9b]{margin-top:8px;font-size:13.5px;font-weight:600}.timeline-copy[data-v-e7e79e9b]{color:var(--muted);margin-top:6px;font-size:11.5px;line-height:1.7}@media (width<=900px){.about-grid[data-v-e7e79e9b]{grid-template-columns:minmax(0,1fr)}.timeline[data-v-e7e79e9b]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.timeline[data-v-e7e79e9b]{grid-template-columns:minmax(0,1fr)}.about-lead[data-v-e7e79e9b]{font-size:21px}}.pcard[data-v-054ea7b8]{border:1px solid var(--line);background:var(--card);border-radius:12px;flex-direction:column;padding:20px 24px 18px;transition:border-color .25s,background .25s,transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s;display:flex;position:relative}.pcard[data-v-054ea7b8]:hover{border-color:var(--line-strong);background:var(--card-hover);box-shadow:var(--shadow);transform:translateY(-3px)}.pcard-meta[data-v-054ea7b8]{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:10px;display:flex}.meta-item[data-v-054ea7b8]{align-items:center;gap:5px;display:inline-flex}.meta-star[data-v-054ea7b8]{color:var(--yellow);place-items:center;display:grid}.lang-dot[data-v-054ea7b8]{border-radius:50%;width:7px;height:7px}.pcard-cat[data-v-054ea7b8]{color:var(--text-2)}.pcard-fork[data-v-054ea7b8]{border:1px solid var(--line-strong);letter-spacing:.08em;color:var(--text-2);border-radius:4px;padding:1px 5px;font-size:8.5px}.pcard-arrow[data-v-054ea7b8]{color:var(--muted);place-items:center;margin-left:auto;transition:color .25s,transform .25s cubic-bezier(.22,1,.36,1);display:grid}.pcard:hover .pcard-arrow[data-v-054ea7b8]{color:var(--primary);transform:translate(3px)}.pcard-title[data-v-054ea7b8]{font-family:var(--sans);letter-spacing:-.01em;margin-top:14px;font-size:22px;font-weight:700;line-height:1.25;transition:color .25s}.pcard:hover .pcard-title[data-v-054ea7b8]{color:var(--primary)}.pcard-cn[data-v-054ea7b8]{color:var(--text-2);margin-top:4px;font-size:12.5px}.pcard-desc[data-v-054ea7b8]{color:var(--text-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:10px;font-size:13.5px;line-height:1.8;display:-webkit-box;overflow:hidden}.pcard-foot[data-v-054ea7b8]{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:12px;display:flex}.pcard-tags[data-v-054ea7b8]{flex-wrap:wrap;gap:6px;display:flex}.pcard-tags li[data-v-054ea7b8]{font-family:var(--mono);letter-spacing:.03em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 7px;font-size:9.5px;transition:color .2s,border-color .2s}.pcard:hover .pcard-tags li[data-v-054ea7b8]{border-color:var(--line-strong);color:var(--text-2)}.pcard-link[data-v-054ea7b8]{font-family:var(--mono);color:var(--primary);white-space:nowrap;font-size:10px}.is-compact[data-v-054ea7b8]{padding:16px 18px 14px}.is-compact .pcard-title[data-v-054ea7b8]{margin-top:10px;font-size:19px}.is-compact .pcard-foot[data-v-054ea7b8]{margin-top:12px;padding-top:10px}@media (width<=600px){.pcard[data-v-054ea7b8]{padding:18px 18px 16px}.pcard-title[data-v-054ea7b8]{font-size:20px}}.archive-bar[data-v-b8da6bb6]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.filters[data-v-b8da6bb6]{flex-wrap:wrap;gap:8px;display:flex}.filter[data-v-b8da6bb6]{border:1px solid var(--line);color:var(--text-2);border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:12px;transition:all .2s;display:inline-flex}.filter[data-v-b8da6bb6]:hover{border-color:var(--line-strong);color:var(--text)}.filter.is-active[data-v-b8da6bb6]{background:var(--primary);border-color:var(--primary);color:var(--bg)}.filter-count[data-v-b8da6bb6]{font-family:var(--mono);color:var(--muted);font-size:9px}.filter.is-active .filter-count[data-v-b8da6bb6]{color:color-mix(in srgb, var(--bg) 65%, transparent)}.archive-count[data-v-b8da6bb6]{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);font-size:10px}.archive-count span[data-v-b8da6bb6]{color:var(--primary)}.archive-grid[data-v-b8da6bb6]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid;position:relative}.archive-note[data-v-b8da6bb6]{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:7px;margin-top:20px;font-size:12px;display:flex}.note-mark[data-v-b8da6bb6]{color:var(--yellow);place-items:center;display:inline-grid}.note-link[data-v-b8da6bb6]{color:var(--primary)}.note-link[data-v-b8da6bb6]:hover{text-decoration:underline}.archive-move[data-v-b8da6bb6],.archive-enter-active[data-v-b8da6bb6],.archive-leave-active[data-v-b8da6bb6]{transition:opacity .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1)}.archive-enter-from[data-v-b8da6bb6],.archive-leave-to[data-v-b8da6bb6]{opacity:0;transform:translateY(10px)scale(.98)}.archive-leave-active[data-v-b8da6bb6]{width:calc(50% - 7px);position:absolute}@media (width<=760px){.archive-grid[data-v-b8da6bb6]{grid-template-columns:minmax(0,1fr)}.archive-leave-active[data-v-b8da6bb6]{width:100%}}.back-top[data-v-a4f70581]{z-index:90;border:1px solid var(--line);background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:40px;height:40px;color:var(--text-2);box-shadow:var(--shadow);border-radius:50%;place-items:center;transition:color .2s,border-color .2s,transform .25s cubic-bezier(.22,1,.36,1);display:grid;position:fixed;bottom:20px;right:20px}.back-top[data-v-a4f70581]:hover{color:var(--primary);border-color:var(--line-strong);transform:translateY(-3px)}.back-top-enter-active[data-v-a4f70581],.back-top-leave-active[data-v-a4f70581]{transition:opacity .25s,transform .25s}.back-top-enter-from[data-v-a4f70581],.back-top-leave-to[data-v-a4f70581]{opacity:0;transform:translateY(8px)}.contact-card[data-v-8094d08c]{padding:30px 32px 24px}.contact-main[data-v-8094d08c]{flex-direction:column;gap:22px;display:flex}.contact-lead[data-v-8094d08c]{font-family:var(--serif);font-size:clamp(24px,3.3vw,32px);font-weight:600;line-height:1.45}.contact-lead span[data-v-8094d08c]{color:var(--muted);font-weight:500}.contact-row[data-v-8094d08c]{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.contact-email[data-v-8094d08c]{font-family:var(--serif);color:var(--text);border-bottom:1px solid var(--line-strong);padding-bottom:3px;font-size:clamp(24px,3.4vw,38px);font-weight:500;transition:color .25s,border-color .25s}.contact-email[data-v-8094d08c]:hover{color:var(--primary);border-color:var(--primary)}.copy-btn[data-v-8094d08c]{border:1px solid var(--line);font-family:var(--mono);color:var(--text-2);border-radius:999px;align-items:center;gap:7px;padding:8px 13px;font-size:10px;transition:color .25s,border-color .25s,background .25s;display:inline-flex}.copy-btn[data-v-8094d08c]:hover{color:var(--primary);border-color:var(--line-strong);background:var(--hover)}.copy-btn.is-copied[data-v-8094d08c]{color:var(--green);border-color:var(--green)}.contact-meta[data-v-8094d08c]{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:26px;padding-top:20px;display:grid}.contact-meta-item dt[data-v-8094d08c]{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:9px}.contact-meta-item dd[data-v-8094d08c]{color:var(--text-2);align-items:center;gap:7px;margin:7px 0 0;font-size:13px;display:flex}.contact-meta-item dd a[data-v-8094d08c]:hover{color:var(--primary)}.status-dot[data-v-8094d08c]{background:var(--green);width:6px;height:6px;box-shadow:0 0 8px color-mix(in srgb, var(--green) 60%, transparent);border-radius:50%}@media (width<=760px){.contact-card[data-v-8094d08c]{padding:22px 20px 18px}.contact-meta[data-v-8094d08c]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=460px){.contact-meta[data-v-8094d08c]{grid-template-columns:minmax(0,1fr)}}.feed[data-v-2b47cae5]{flex-direction:column;gap:14px;display:flex}.feed-all[data-v-2b47cae5]{font-family:var(--mono);letter-spacing:.04em;color:var(--text-2);border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:18px;padding:10px;font-size:11px;transition:color .25s,background .25s;display:flex}.feed-all[data-v-2b47cae5]:hover{color:var(--primary);background:var(--hover)}.quote[data-v-30ecb3a2]{max-width:560px;color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:6px;margin-top:44px;font-size:13px;line-height:1.7;display:flex}.quote-mark[data-v-30ecb3a2]{display:none}.quote-body[data-v-30ecb3a2]{display:inline-block}.quote-text[data-v-30ecb3a2]{min-height:1.7em}.quote-cursor[data-v-30ecb3a2]{background:var(--primary);vertical-align:text-bottom;width:1px;height:1.05em;margin-left:2px;animation:1s step-end infinite caret-30ecb3a2;display:inline-block}.quote-cursor.is-idle[data-v-30ecb3a2]{opacity:.4;animation:1s step-end infinite caret-30ecb3a2}@keyframes caret-30ecb3a2{50%{opacity:0}}.quote-source[data-v-30ecb3a2]{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);opacity:.8;font-size:10px}@media (prefers-reduced-motion:reduce){.quote-cursor[data-v-30ecb3a2]{display:none}}.prologue[data-v-89761717]{z-index:1;justify-content:center;align-items:center;min-height:100svh;padding:92px 20px 64px;display:flex;position:relative;overflow:hidden}.prologue-inner[data-v-89761717]{z-index:1;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:720px;display:flex;position:relative}.avatar[data-v-89761717]{background:#ffffff2e;border-radius:50%;width:100px;height:100px;padding:4px;transition:transform .4s cubic-bezier(.22,1,.36,1);position:relative}.avatar[data-v-89761717]:hover{transform:scale(1.04)rotate(-2deg)}.avatar img[data-v-89761717]{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar-badge[data-v-89761717]{background:var(--bg-3);border:2px solid var(--bg);width:28px;height:28px;color:var(--primary);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-3px;right:-1px}.prologue-name[data-v-89761717]{letter-spacing:.02em;margin-top:16px;font-size:17px;font-weight:700}.prologue-alias[data-v-89761717]{font-family:var(--serif);color:var(--text-2);margin-left:2px;font-weight:500}.prologue-card[data-v-89761717]{border:1px solid var(--line);background:color-mix(in srgb, var(--card) 100%, transparent);border-radius:12px;min-width:min(100%,420px);margin-top:26px;padding:22px 40px;position:relative}.frame-line[data-v-89761717]{background:var(--line-strong);width:1px;position:absolute;left:50%;transform:translate(-50%)}.frame-line-top[data-v-89761717]{transform-origin:bottom;height:26px;animation:.8s cubic-bezier(.22,1,.36,1) .3s both frame-grow-89761717;bottom:100%}.frame-line-bottom[data-v-89761717]{transform-origin:top;height:26px;animation:.8s cubic-bezier(.22,1,.36,1) .45s both frame-grow-89761717;top:100%}@keyframes frame-grow-89761717{0%{transform:translate(-50%)scaleY(0)}to{transform:translate(-50%)scaleY(1)}}.prologue-title[data-v-89761717]{font-family:var(--serif);letter-spacing:.02em;font-size:24px;font-weight:600}.prologue-slogan[data-v-89761717]{color:var(--text);margin-top:8px;font-size:16px;font-weight:500}.prologue-sub[data-v-89761717]{color:var(--text-2);margin-top:6px;font-size:13px}.prologue-meta[data-v-89761717]{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:14px;font-size:9.5px}.tech-row[data-v-89761717]{flex-direction:column;align-items:center;gap:12px;margin-top:34px;display:flex}.tech-label[data-v-89761717]{font-family:var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);font-size:9px}.tech-icons[data-v-89761717]{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(14px,2.4vw,24px);display:flex}.tech-icons li[data-v-89761717]{place-items:center;transition:transform .3s cubic-bezier(.22,1,.36,1);display:grid}.tech-icons img[data-v-89761717]{opacity:.92;filter:saturate(.95);width:26px;height:26px}.tech-icons li[data-v-89761717]:hover{transform:translateY(-3px)scale(1.08)}.prologue-links[data-v-89761717]{grid-template-columns:repeat(4,minmax(0,auto));justify-content:center;gap:8px;margin-top:36px;display:grid}.prologue-link[data-v-89761717]{color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-size:16px;font-weight:500;transition:background .25s,color .25s,transform .25s;display:inline-flex}.prologue-link[data-v-89761717]:hover{background:var(--hover);transform:translateY(-1px)}.prologue-link-icon[data-v-89761717]{color:var(--link-color);place-items:center;display:grid}.go-down[data-v-89761717]{z-index:2;color:var(--muted);place-items:center;width:40px;height:40px;transition:color .25s;animation:2.4s ease-in-out infinite go-down-89761717;display:grid;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.go-down[data-v-89761717]:hover{color:var(--primary)}@keyframes go-down-89761717{0%,to{opacity:.6;transform:translate(-50%)}50%{opacity:1;transform:translate(-50%,6px)}}@media (width<=640px){.prologue[data-v-89761717]{padding-top:84px}.prologue-card[data-v-89761717]{min-width:min(100%,320px);padding:20px 24px}.prologue-title[data-v-89761717]{font-size:21px}.prologue-links[data-v-89761717]{grid-template-columns:repeat(2,minmax(0,auto));gap:4px}.prologue-link[data-v-89761717]{padding:9px 14px;font-size:15px}.tech-icons[data-v-89761717]{gap:16px}.tech-icons img[data-v-89761717]{width:23px;height:23px}}@media (prefers-reduced-motion:reduce){.go-down[data-v-89761717],.frame-line[data-v-89761717]{animation:none}}.site-footer[data-v-456ab443]{z-index:1;border-top:1px solid var(--line);margin-top:40px;padding:26px 20px 30px;position:relative}.footer-inner[data-v-456ab443]{text-align:center;flex-direction:column;align-items:center;gap:6px;max-width:980px;margin:0 auto;display:flex}.footer-line[data-v-456ab443]{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.heart[data-v-456ab443]{color:var(--pink);place-items:center;animation:2.4s ease-in-out infinite heart-beat-456ab443;display:inline-grid}@keyframes heart-beat-456ab443{0%,to{transform:scale(1)}12%{transform:scale(1.18)}24%{transform:scale(1)}}.footer-sub[data-v-456ab443]{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);opacity:.8;align-items:center;gap:8px;font-size:10px;display:flex}.footer-sub a[data-v-456ab443]{color:var(--text-2);transition:color .2s}.footer-sub a[data-v-456ab443]:hover{color:var(--primary)}.site-nav[data-v-d2111e54]{z-index:100;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;height:56px;padding:0 8px;transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex;position:fixed;top:0;left:0;right:0}.site-nav.is-scrolled[data-v-d2111e54]{background:var(--nav-bg);-webkit-backdrop-filter:blur(16px)saturate(150%);backdrop-filter:blur(16px)saturate(150%);border-bottom-color:var(--line)}.nav-group[data-v-d2111e54],.nav-links[data-v-d2111e54]{align-items:center;gap:2px;display:flex}.icon-btn[data-v-d2111e54]{width:44px;height:44px;color:var(--text-2);border-radius:10px;place-items:center;transition:color .2s,background .2s;display:grid}.icon-btn[data-v-d2111e54]:hover{color:var(--text);background:var(--hover)}.icon-btn.is-active[data-v-d2111e54]{color:var(--primary)}.only-mobile[data-v-d2111e54]{display:none}.mobile-menu[data-v-d2111e54]{z-index:99;background:var(--bg);flex-direction:column;justify-content:space-between;padding:84px 24px 32px;display:flex;position:fixed;inset:0;overflow-y:auto}.mobile-nav[data-v-d2111e54]{flex-direction:column;display:flex}.mobile-link[data-v-d2111e54]{border-bottom:1px solid var(--line);animation:.45s cubic-bezier(.22,1,.36,1) both menu-in-d2111e54;animation-delay:calc(var(--i) * 60ms);align-items:center;gap:14px;padding:18px 4px;display:flex}.mobile-link-icon[data-v-d2111e54]{color:var(--primary);place-items:center;display:grid}.mobile-link-label[data-v-d2111e54]{font-size:20px;font-weight:500}.mobile-link-index[data-v-d2111e54]{font-family:var(--mono);color:var(--muted);margin-left:auto;font-size:11px}.mobile-foot[data-v-d2111e54]{font-family:var(--mono);color:var(--muted);flex-direction:column;gap:10px;padding-top:28px;font-size:12px;display:flex}.mobile-foot a[data-v-d2111e54]:hover{color:var(--primary)}@keyframes menu-in-d2111e54{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.menu-fade-enter-active[data-v-d2111e54],.menu-fade-leave-active[data-v-d2111e54]{transition:opacity .25s}.menu-fade-enter-from[data-v-d2111e54],.menu-fade-leave-to[data-v-d2111e54]{opacity:0}@media (width<=760px){.only-mobile[data-v-d2111e54]{display:grid}.nav-links[data-v-d2111e54]{display:none}}.sparkles[data-v-4ded261a]{z-index:95;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}
