.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.theme-toggle[data-astro-cid-x3pjskd3]{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;border:0;border-radius:var(--radius-control);color:var(--text-tertiary);background:transparent;cursor:pointer;transition:color .2s cubic-bezier(.22,1,.36,1),background-color .2s cubic-bezier(.22,1,.36,1),transform .15s cubic-bezier(.22,1,.36,1)}.theme-toggle[data-astro-cid-x3pjskd3]:hover{color:var(--text-primary);background-color:#14141a0d}.dark .theme-toggle[data-astro-cid-x3pjskd3]:hover,[data-theme=dark] .theme-toggle[data-astro-cid-x3pjskd3]:hover{background-color:#ffffff0f}.theme-toggle[data-astro-cid-x3pjskd3]:active{transform:scale(.92)}.theme-toggle__icon[data-astro-cid-x3pjskd3]{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;transition:opacity .35s cubic-bezier(.22,1,.36,1),transform .45s cubic-bezier(.22,1,.36,1)}.theme-toggle__icon[data-astro-cid-x3pjskd3] svg[data-astro-cid-x3pjskd3]{width:18px;height:18px}.theme-toggle__icon--sun[data-astro-cid-x3pjskd3]{opacity:0;transform:rotate(-90deg) scale(.6)}.dark .theme-toggle__icon--sun[data-astro-cid-x3pjskd3],[data-theme=dark] .theme-toggle__icon--sun[data-astro-cid-x3pjskd3],.theme-toggle__icon--moon[data-astro-cid-x3pjskd3]{opacity:1;transform:rotate(0) scale(1)}.dark .theme-toggle__icon--moon[data-astro-cid-x3pjskd3],[data-theme=dark] .theme-toggle__icon--moon[data-astro-cid-x3pjskd3]{opacity:0;transform:rotate(90deg) scale(.6)}@media(max-width:639px){.theme-toggle[data-astro-cid-x3pjskd3]{width:44px;height:44px;flex-basis:44px}}.nav-link[data-astro-cid-tdg2ivgm]{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;font-size:14px;font-weight:500;line-height:1;min-height:40px;border:0;color:var(--text-secondary);background:transparent;border-radius:var(--radius-control);cursor:pointer;font:inherit;text-decoration:none;transition:color .2s cubic-bezier(.22,1,.36,1),background-color .2s cubic-bezier(.22,1,.36,1)}.nav-link__label[data-astro-cid-tdg2ivgm]{position:relative;z-index:1}.nav-link__dot[data-astro-cid-tdg2ivgm]{position:absolute;bottom:1px;left:50%;transform:translate(-50%) scale(0);width:4px;height:4px;border-radius:2px;background:var(--accent-brand);transition:transform .25s cubic-bezier(.22,1,.36,1);pointer-events:none}.nav-link[data-astro-cid-tdg2ivgm]:hover{color:var(--text-primary)}.nav-link[data-astro-cid-tdg2ivgm]:hover .nav-link__dot[data-astro-cid-tdg2ivgm]{transform:translate(-50%) scale(1)}[data-theme=light] .nav-link[data-astro-cid-tdg2ivgm]:hover,.light .nav-link[data-astro-cid-tdg2ivgm]:hover{background-color:#14141a0a}[data-theme=dark] .nav-link[data-astro-cid-tdg2ivgm]:hover,.dark .nav-link[data-astro-cid-tdg2ivgm]:hover{background-color:#ffffff0a}.nav-link--active[data-astro-cid-tdg2ivgm]{color:var(--accent-brand)}.nav-link--active[data-astro-cid-tdg2ivgm] .nav-link__dot[data-astro-cid-tdg2ivgm]{transform:translate(-50%) scale(1)}.nav-link--icon[data-astro-cid-tdg2ivgm]{padding:8px 10px}.nav-link--icon[data-astro-cid-tdg2ivgm] svg[data-astro-cid-tdg2ivgm]{width:16px;height:16px;transition:transform .5s cubic-bezier(.22,1,.36,1)}.nav-link--icon[data-astro-cid-tdg2ivgm]:hover svg[data-astro-cid-tdg2ivgm]{transform:rotate(180deg)}.nav-link--mobile[data-astro-cid-tdg2ivgm]{justify-content:flex-start;width:100%;min-height:44px;padding:10px 12px}.nav-link--mobile[data-astro-cid-tdg2ivgm] .nav-link__dot[data-astro-cid-tdg2ivgm]{left:12px;top:50%;bottom:auto;transform:translateY(-50%) scale(0)}.nav-link--mobile[data-astro-cid-tdg2ivgm].nav-link--active .nav-link__dot[data-astro-cid-tdg2ivgm],.nav-link--mobile[data-astro-cid-tdg2ivgm]:hover .nav-link__dot[data-astro-cid-tdg2ivgm]{transform:translateY(-50%) scale(1)}.nav-link--mobile[data-astro-cid-tdg2ivgm].nav-link--active{padding-left:24px;color:var(--accent-brand);background:#ec48990f}.brand-mark[data-astro-cid-tdg2ivgm]:hover{color:var(--accent-brand)}.brand-mark[data-astro-cid-tdg2ivgm]{min-width:0;flex-shrink:1;min-height:40px;font-size:15px;letter-spacing:.04em;transition:color .2s var(--ease-out)}.brand-dot[data-astro-cid-tdg2ivgm]{width:9px;height:9px;background:var(--accent-brand);border-radius:2px;display:inline-block;transform:translateY(-1px);transition:transform .3s cubic-bezier(.22,1,.36,1)}.brand-mark[data-astro-cid-tdg2ivgm]:hover .brand-dot[data-astro-cid-tdg2ivgm]{transform:translateY(-1px) scale(1.15)}.brand-accent[data-astro-cid-tdg2ivgm]{color:var(--accent-brand)}.mobile-menu-button[data-astro-cid-tdg2ivgm]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:var(--radius-control);color:var(--text-secondary);background:transparent;cursor:pointer;transition:color .2s var(--ease-out),background-color .2s var(--ease-out)}.header-nav[data-astro-cid-tdg2ivgm]{width:100%;min-width:0}.header-mobile-actions[data-astro-cid-tdg2ivgm]{flex:0 0 auto}.mobile-menu-button[data-astro-cid-tdg2ivgm]:hover{color:var(--text-primary);background:color-mix(in srgb,var(--text-primary) 6%,transparent)}.mobile-menu-button[data-astro-cid-tdg2ivgm][aria-expanded=true]{color:var(--text-primary);background:color-mix(in srgb,var(--text-primary) 7%,transparent)}#mobile-menu[data-astro-cid-tdg2ivgm]:not(.hidden){background:var(--glass-bg);box-shadow:0 20px 40px -34px var(--shadow-color);-webkit-backdrop-filter:blur(22px) saturate(145%);backdrop-filter:blur(22px) saturate(145%);animation:mobile-menu-in .22s var(--ease-out) both}@keyframes mobile-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:639px){.brand-mark[data-astro-cid-tdg2ivgm]{font-size:14px}.mobile-menu-button[data-astro-cid-tdg2ivgm]{width:44px;height:44px}}@media(prefers-reduced-motion:reduce){#mobile-menu[data-astro-cid-tdg2ivgm]:not(.hidden){animation:none}}html.mobile-menu-open{overflow:hidden}.site-footer[data-astro-cid-sz7xmlte]{position:relative;margin-top:auto;padding:44px 0 30px;border-top:1px solid var(--border);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-page) 18%,transparent),color-mix(in srgb,var(--bg-page) 88%,transparent));overflow:hidden}.site-footer__glow[data-astro-cid-sz7xmlte]{position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(236,72,153,.3) 20%,rgba(236,72,153,.55) 50%,rgba(236,72,153,.3) 80%,transparent 100%);opacity:.28}.site-footer__grid[data-astro-cid-sz7xmlte]{position:absolute;inset:0;background-image:radial-gradient(circle,var(--text-tertiary) .5px,transparent .5px);background-size:22px 22px;opacity:.1;-webkit-mask-image:linear-gradient(180deg,transparent 0%,black 40%,black 100%);mask-image:linear-gradient(180deg,transparent 0%,black 40%,black 100%);pointer-events:none}[data-astro-cid-sz7xmlte][data-theme=light] .site-footer__grid[data-astro-cid-sz7xmlte]{opacity:.13}.site-footer__inner[data-astro-cid-sz7xmlte]{position:relative;max-width:1152px;margin:0 auto;padding:0 24px}.site-footer__top[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.site-footer__wordmark[data-astro-cid-sz7xmlte]{font-family:Space Grotesk,system-ui,-apple-system,sans-serif;font-size:15px;font-weight:500;letter-spacing:.5px;color:var(--text-primary);display:inline-flex;align-items:center;gap:8px}.site-footer__dot[data-astro-cid-sz7xmlte]{width:8px;height:8px;background:var(--accent-brand);border-radius:2px}.site-footer__accent[data-astro-cid-sz7xmlte]{color:var(--accent-brand)}.site-footer__nav[data-astro-cid-sz7xmlte]{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.site-footer__nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;min-height:36px;font-size:13px;font-weight:500;color:var(--text-tertiary);text-decoration:none;padding:5px 12px;border-radius:5px;transition:color .2s cubic-bezier(.22,1,.36,1),background-color .2s cubic-bezier(.22,1,.36,1)}.site-footer__nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent-brand);background-color:#ec489914}.site-footer__sig[data-astro-cid-sz7xmlte]{display:flex;align-items:center;flex-wrap:wrap;column-gap:6px;row-gap:4px;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:12px;letter-spacing:.02em;margin:0 0 10px;line-height:1.6}.site-footer__sig-comment[data-astro-cid-sz7xmlte]{color:var(--text-tertiary);opacity:.6}.site-footer__sig-code[data-astro-cid-sz7xmlte]{color:var(--text-tertiary)}.site-footer__sig-pink[data-astro-cid-sz7xmlte]{color:var(--accent-brand)}.site-footer__sig-amber[data-astro-cid-sz7xmlte]{color:var(--accent-amber)}.site-footer__sig-item[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.site-footer__icp[data-astro-cid-sz7xmlte]{margin-left:10px;color:var(--color-text-dim);text-decoration:none;border-bottom:1px solid transparent}.site-footer__icp[data-astro-cid-sz7xmlte]:hover{border-bottom-color:currentColor}.site-footer__copy[data-astro-cid-sz7xmlte]{font-size:12px;color:var(--text-tertiary);margin:0;letter-spacing:.01em;font-family:var(--font-mono, "JetBrains Mono", monospace)}@media(max-width:639px){.site-footer[data-astro-cid-sz7xmlte]{padding:34px 0 calc(88px + env(safe-area-inset-bottom))}.site-footer__top[data-astro-cid-sz7xmlte]{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:24px}.site-footer__nav[data-astro-cid-sz7xmlte]{width:100%}.site-footer__nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{min-height:40px}.site-footer__sig[data-astro-cid-sz7xmlte]{font-size:11px}}@media(max-width:768px){.site-footer__nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{min-height:40px}}@media(max-width:359px){.site-footer__nav[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:10px;row-gap:2px}.site-footer__nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{min-height:40px;justify-content:flex-start;padding:4px 0}}.back-to-top[data-astro-cid-wlspcwf4]{position:fixed;right:20px;bottom:84px;z-index:997;width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border);border-radius:var(--radius-default);color:var(--text-secondary);background:var(--glass-bg);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;transform:translateY(12px);pointer-events:none;cursor:pointer;transition:opacity .22s var(--ease-out),transform .22s var(--ease-out),color .2s var(--ease-out),border-color .2s var(--ease-out)}.back-to-top[data-astro-cid-wlspcwf4]:hover{color:var(--accent-brand);border-color:var(--border-hover);transform:translateY(-1px)}.back-to-top[data-astro-cid-wlspcwf4].is-visible{opacity:1;transform:translateY(0);pointer-events:auto}html.music-panel-open .back-to-top[data-astro-cid-wlspcwf4]{opacity:0!important;transform:translateY(12px)!important;pointer-events:none!important}@media(max-width:680px){.back-to-top[data-astro-cid-wlspcwf4]{right:14px;bottom:calc(76px + env(safe-area-inset-bottom));width:44px;height:44px}}.music-dock{--music-surface: rgba(17, 17, 23, .94);--music-surface-solid: #111117;--music-surface-soft: rgba(255, 255, 255, .045);--music-border: rgba(255, 255, 255, .1);--music-border-strong: rgba(255, 255, 255, .16);--music-shadow: 0 18px 60px rgba(0, 0, 0, .42);--music-progress: 0%;--music-volume: 80%;position:fixed;inset:auto 0 0;z-index:998;height:0;pointer-events:none;font-family:var(--font-display, "Space Grotesk", sans-serif)}[data-theme=light] .music-dock{--music-surface: rgba(255, 255, 255, .94);--music-surface-solid: #ffffff;--music-surface-soft: rgba(20, 20, 26, .045);--music-border: rgba(20, 20, 26, .1);--music-border-strong: rgba(20, 20, 26, .16);--music-shadow: 0 18px 54px rgba(20, 20, 26, .16)}.music-dock.is-empty .music-dock__compact,.music-dock.is-empty .music-dock__panel{display:none}.music-dock button{font:inherit}.music-dock button:focus-visible,.music-dock [role=slider]:focus-visible{outline:2px solid var(--accent-brand);outline-offset:2px}.music-dock svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.music-dock__compact{position:absolute;right:20px;bottom:18px;width:244px;height:52px;display:flex;overflow:hidden;pointer-events:auto;color:var(--text-primary);background:var(--music-surface);border:1px solid var(--music-border);border-radius:12px;box-shadow:0 10px 34px #00000047;-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%);isolation:isolate;transform-origin:bottom right;transition:opacity .18s ease,transform .22s cubic-bezier(.22,1,.36,1),visibility .18s,border-color .18s ease,box-shadow .22s ease}@media(hover:hover){.music-dock__compact:hover{transform:translateY(-1px);border-color:var(--music-border-strong);box-shadow:0 14px 38px #00000052}[data-theme=light] .music-dock__compact:hover{box-shadow:0 14px 34px #14141a26}}[data-theme=light] .music-dock__compact{box-shadow:0 10px 30px #14141a1f}.music-dock__compact:after{content:"";position:absolute;inset:auto 0 0;z-index:3;height:2px;width:var(--music-progress);background:var(--accent-brand);pointer-events:none;transition:width .12s linear}.music-dock__compact-main,.music-dock__compact-play{min-width:0;border:0;color:inherit;background:transparent;cursor:pointer}.music-dock__compact-main{flex:1;display:flex;align-items:center;gap:10px;padding:4px 8px 4px 5px;text-align:left}.music-dock__compact-main:hover{background:var(--music-surface-soft)}.music-dock__compact-play{width:44px;flex:0 0 44px;display:grid;place-items:center;border-left:1px solid var(--music-border)}.music-dock__compact-play:hover{color:var(--accent-brand);background:var(--music-surface-soft)}.music-dock__compact-cover{position:relative;width:42px;height:42px;flex:0 0 42px;border-radius:8px}.music-dock__compact-ring{position:absolute;inset:-1px;z-index:3;width:44px!important;height:44px!important;transform:rotate(-90deg);pointer-events:none}.music-dock__compact-ring-track,.music-dock__compact-ring-value{fill:none;stroke-width:1.5}.music-dock__compact-ring-track{stroke:var(--music-border)}.music-dock__compact-ring-value{stroke:var(--accent-brand);stroke-dasharray:125.664;stroke-dashoffset:125.664;transition:stroke-dashoffset .12s linear}.music-dock__compact-copy{min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px}.music-dock__compact-kicker{display:flex;align-items:center;gap:6px;color:var(--text-tertiary);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:9px;font-weight:700;line-height:1;letter-spacing:0}.music-dock__compact-title{overflow:hidden;color:var(--text-primary);font-size:12px;font-weight:600;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.music-dock__compact-chevron{width:15px!important;height:15px!important;flex:0 0 auto;color:var(--text-tertiary);transition:transform .18s ease}.music-dock.is-panel-open .music-dock__compact-chevron{transform:rotate(180deg)}.music-dock.is-panel-open .music-dock__compact{opacity:0;visibility:hidden;transform:translateY(8px) scale(.98);pointer-events:none}.music-dock__activity{width:10px;height:9px;display:inline-flex;align-items:flex-end;gap:1px}.music-dock__activity i{width:2px;height:3px;display:block;background:var(--text-tertiary);border-radius:1px;transform-origin:bottom}.music-dock.is-playing .music-dock__activity i{background:var(--accent-brand);animation:music-dock-meter .85s ease-in-out infinite alternate}.music-dock.is-playing .music-dock__activity i:nth-child(2){animation-delay:-.42s}.music-dock.is-playing .music-dock__activity i:nth-child(3){animation-delay:-.23s}@keyframes music-dock-meter{0%{transform:scaleY(.7)}to{transform:scaleY(2.4)}}.music-dock__panel{position:absolute;right:20px;bottom:18px;width:360px;max-width:calc(100vw - 32px);max-height:calc(100svh - 104px);display:flex;flex-direction:column;overflow:hidden;pointer-events:none;color:var(--text-primary);background:var(--music-surface);border:1px solid var(--music-border);border-radius:14px;box-shadow:var(--music-shadow);-webkit-backdrop-filter:blur(26px) saturate(155%);backdrop-filter:blur(26px) saturate(155%);opacity:0;visibility:hidden;transform:translateY(10px) scale(.985);transform-origin:bottom right;transition:opacity .18s ease,transform .22s cubic-bezier(.22,1,.36,1),visibility .18s}.music-dock.is-panel-open .music-dock__panel{pointer-events:auto;opacity:1;visibility:visible;transform:translateY(0) scale(1)}.music-dock__panel-header{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 14px;border-bottom:1px solid var(--music-border)}.music-dock__brand{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:10px;font-weight:700;text-transform:uppercase}.music-dock__brand-mark{width:7px;height:7px;display:block;background:var(--accent-brand);border-radius:2px}.music-dock__icon-button,.music-dock__play{display:inline-grid;place-items:center;border:0;color:var(--text-secondary);background:transparent;cursor:pointer}.music-dock__icon-button{width:36px;height:36px;border-radius:7px}.music-dock__icon-button:hover{color:var(--text-primary);background:var(--music-surface-soft)}.music-dock__close{width:36px;height:36px}.music-dock__now{display:grid;grid-template-columns:62px minmax(0,1fr) 34px;align-items:center;gap:12px;padding:14px 14px 10px}.music-dock__cover{position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid var(--music-border);color:var(--text-tertiary);background:linear-gradient(145deg,rgba(236,72,153,.12),transparent 62%),var(--music-surface-solid)}.music-dock__cover-fallback,.music-dock__cover-image{position:absolute;inset:0;width:100%;height:100%}.music-dock__cover-fallback{display:grid;place-items:center}.music-dock__cover-fallback svg{width:21px;height:21px}.music-dock__cover-image{display:none;object-fit:cover}.music-dock__cover.has-cover .music-dock__cover-image{display:block;animation:music-dock-cover-in .32s ease both}@keyframes music-dock-cover-in{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.music-dock__cover.has-cover .music-dock__cover-fallback{display:none}.music-dock__now-cover{width:62px;height:62px;padding:0;border-radius:10px;cursor:pointer}.music-dock__cover-play-state{position:absolute;inset:auto 5px 5px auto;width:22px;height:22px;display:grid;place-items:center;color:#fff;background:#0b0b0fb8;border:1px solid rgba(255,255,255,.15);border-radius:6px;opacity:0;transform:translateY(2px);transition:opacity .15s ease,transform .15s ease}.music-dock__cover-play-state svg{width:12px;height:12px;fill:currentColor;stroke:none}.music-dock__now-cover:hover .music-dock__cover-play-state,.music-dock__now-cover:focus-visible .music-dock__cover-play-state,.music-dock.is-playing .music-dock__cover-play-state{opacity:1;transform:translateY(0)}.music-dock__meta{min-width:0;display:flex;flex-direction:column;gap:4px}.music-dock__title,.music-dock__artist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-dock__title{color:var(--text-primary);font-size:15px;font-weight:650;line-height:1.25}.music-dock__artist{color:var(--text-tertiary);font-size:12px;line-height:1.25}.music-dock__like svg{width:17px;height:17px}.music-dock__like.is-liked{color:var(--accent-brand)}.music-dock__like.is-liked svg{fill:currentColor}.music-dock__progress{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:8px;padding:4px 14px 2px}.music-dock__time{color:var(--text-tertiary);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:9px;text-align:center}.music-dock__range{position:relative;height:14px;display:flex;align-items:center;cursor:pointer;touch-action:none}.music-dock__range:before{content:"";position:absolute;inset:5px 0;background:var(--music-border-strong);border-radius:99px}.music-dock__range-value{position:relative;width:var(--music-progress);height:4px;display:block;background:var(--accent-brand);border-radius:99px}.music-dock__range-value:after{content:"";position:absolute;top:50%;right:0;width:9px;height:9px;background:var(--text-primary);border-radius:50%;opacity:0;transform:translate(50%,-50%) scale(.8);transition:opacity .12s ease,transform .12s ease}.music-dock__range:hover .music-dock__range-value:after,.music-dock__range.is-dragging .music-dock__range-value:after,.music-dock__range:focus-visible .music-dock__range-value:after{opacity:1;transform:translate(50%,-50%) scale(1)}.music-dock__seek-tooltip{position:absolute;bottom:calc(100% + 7px);left:0;padding:3px 7px;background:var(--music-surface-solid);border:1px solid var(--music-border);border-radius:6px;color:var(--text-primary);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:10px;line-height:1;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%) translateY(2px);transition:opacity .1s ease,transform .1s ease;z-index:2}.music-dock__seek-tooltip.is-visible{opacity:1;transform:translate(-50%) translateY(0)}.music-dock__transport{position:relative;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 14px 11px}.music-dock__play{position:relative;width:42px;height:42px;margin:0 2px;color:#fff;background:var(--accent-brand);border-radius:50%;box-shadow:0 7px 18px #ec489938}.music-dock__play:hover{background:var(--accent-brand-hover);transform:translateY(-1px)}.music-dock__play svg,.music-dock__compact-play svg{fill:currentColor;stroke:none}.music-dock__play svg{width:19px;height:19px}.music-dock .music-dock__icon-pause,.music-dock .music-dock__spinner,.music-dock.is-playing .music-dock__icon-play{display:none}.music-dock.is-playing .music-dock__icon-pause{display:block}.music-dock.is-loading .music-dock__play svg,.music-dock.is-loading .music-dock__compact-play svg{display:none}.music-dock.is-loading .music-dock__spinner{width:15px;height:15px;display:block;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:music-dock-spin .7s linear infinite}@keyframes music-dock-spin{to{transform:rotate(360deg)}}.music-dock__mode{position:relative}.music-dock .music-dock__icon-shuffle,.music-dock .music-dock__mode-one,.music-dock__mode[data-mode=shuffle] .music-dock__icon-repeat{display:none}.music-dock__mode[data-mode=shuffle] .music-dock__icon-shuffle{display:block}.music-dock__mode[data-mode=loop-one]{color:var(--accent-brand)}.music-dock__mode[data-mode=loop-one] .music-dock__mode-one{position:absolute;right:5px;bottom:4px;display:block;color:currentColor;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:7px;font-weight:700}.music-dock__mode[data-mode=shuffle]{color:var(--accent-brand)}.music-dock__volume-control{position:absolute;right:14px;display:flex;align-items:center}.music-dock__volume{width:58px}.music-dock__volume .music-dock__range-value{width:var(--music-volume)}.music-dock__speed{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:11px;font-weight:650;line-height:1;min-width:34px}.music-dock__speed-value{letter-spacing:.2px}.music-dock.is-muted .music-dock__icon-volume{display:none}.music-dock__icon-muted{display:none!important}.music-dock.is-muted .music-dock__icon-muted{display:block!important}.music-dock__views{display:flex;gap:6px;padding:0 14px 12px}.music-dock__view-button{min-height:36px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--music-border);color:var(--text-secondary);background:transparent;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:color .16s ease,background-color .16s ease,border-color .16s ease}.music-dock__view-button svg{width:14px;height:14px}.music-dock__view-button:hover,.music-dock__view-button.is-active{color:var(--text-primary);background:var(--music-surface-soft);border-color:var(--music-border-strong)}.music-dock__view-button.is-active{color:var(--accent-brand)}.music-dock__queue-count,.music-dock__library-count{min-width:17px;height:17px;display:inline-grid;place-items:center;padding:0 4px;color:var(--text-tertiary);background:var(--music-surface-soft);border-radius:4px;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:9px}.music-dock__drawer{min-height:0;max-height:min(310px,42svh);display:flex;flex-direction:column;overflow:hidden;border-top:1px solid var(--music-border);background:#00000012}[data-theme=light] .music-dock__drawer{background:#14141a05}.music-dock__drawer[hidden],.music-dock__lyrics-button[hidden],.music-dock__clear-local[hidden]{display:none!important}.music-dock__library-scroll::-webkit-scrollbar,.music-dock__collection-tracks::-webkit-scrollbar,.music-dock__queue::-webkit-scrollbar,.music-dock__lyrics-scroll::-webkit-scrollbar{display:none}.music-dock__drawer-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 13px 8px}.music-dock__drawer-heading-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.music-dock__drawer-title{color:var(--text-tertiary);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:9px;font-weight:700;text-transform:uppercase}.music-dock__queue-source{overflow:hidden;color:var(--text-secondary);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.music-dock__drawer-actions{display:flex;flex:0 0 auto;gap:9px}.music-dock__clear-queue,.music-dock__clear-local{padding:2px 0;border:0;color:var(--text-tertiary);background:transparent;font-size:10px;cursor:pointer}.music-dock__clear-queue:hover,.music-dock__clear-local:hover{color:var(--accent-brand)}.music-dock__clear-queue:disabled{opacity:.35;cursor:default}.music-dock__library{min-height:198px}.music-dock__library-scroll{min-height:0;overflow-y:auto;padding:8px;scrollbar-width:none}.music-dock__library-search{position:relative;display:flex;align-items:center;gap:6px;margin:2px 8px 4px;padding:0 7px;height:30px;border:1px solid var(--music-border);border-radius:9px;background:linear-gradient(160deg,#ffffff0d,#ffffff04 58%),var(--music-surface-soft);transition:border-color .15s ease}[data-theme=light] .music-dock__library-search{background:linear-gradient(160deg,#14141a08,#14141a02 58%),var(--music-surface-soft)}.music-dock__library-search:focus-within{border-color:var(--music-border-strong)}.music-dock__search-icon{width:13px;height:13px;flex:none;color:var(--text-tertiary);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.music-dock__search-input{min-width:0;flex:1;padding:0;border:0;outline:none;background:transparent;color:var(--text-primary);font-size:11px;appearance:none}.music-dock__search-input::placeholder{color:var(--text-tertiary)}.music-dock__search-input::-webkit-search-cancel-button{display:none}.music-dock__search-clear{flex:none;display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:5px;color:var(--text-tertiary);background:transparent;cursor:pointer;transition:color .15s ease,background .15s ease}.music-dock__search-clear:hover{color:var(--text-primary);background:var(--music-surface-solid)}.music-dock__search-clear svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.music-dock__library-heading{display:flex;align-items:center;justify-content:space-between;padding:3px 5px 8px}.music-dock__library-heading>span,.music-dock__collection-detail-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.music-dock__library-heading strong,.music-dock__collection-detail-copy strong{color:var(--text-primary);font-size:12px;font-weight:650}.music-dock__library-heading small,.music-dock__collection-detail-copy small{overflow:hidden;color:var(--text-tertiary);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.music-dock__collection-list{display:flex;flex-direction:column;gap:2px}.music-dock__collection{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;border-radius:8px}.music-dock__collection:hover{background:var(--music-surface-soft)}.music-dock__collection-main{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:6px 5px 6px 6px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.music-dock__collection-cover{width:38px;height:38px;display:grid;place-items:center;overflow:hidden;color:var(--text-tertiary);background:linear-gradient(145deg,color-mix(in srgb,var(--accent-brand) 13%,transparent),transparent),var(--music-surface-soft);border:1px solid var(--music-border);border-radius:7px}.music-dock__collection-cover img{width:100%;height:100%;object-fit:cover}.music-dock__collection-cover svg{width:15px;height:15px}.music-dock__collection-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.music-dock__collection-copy strong,.music-dock__collection-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-dock__collection-copy strong{color:var(--text-secondary);font-size:11px;font-weight:650}.music-dock__collection-copy small{color:var(--text-tertiary);font-size:9px}.music-dock__collection-count{padding-left:5px;color:var(--text-tertiary);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:8px;white-space:nowrap}.music-dock__collection-play,.music-dock__library-back,.music-dock__collection-detail-play,.music-dock__track-action{display:grid;place-items:center;padding:0;border:0;color:var(--text-tertiary);background:transparent;border-radius:7px;cursor:pointer}.music-dock__collection-play{width:30px;height:30px;opacity:0}.music-dock__collection:hover .music-dock__collection-play,.music-dock__collection-play:focus-visible{opacity:1}.music-dock__collection-play:hover,.music-dock__library-back:hover,.music-dock__track-action:hover{color:var(--accent-brand);background:var(--music-surface-soft)}.music-dock__collection-play:disabled,.music-dock__collection-detail-play:disabled{opacity:.25;cursor:default}.music-dock__collection-detail-heading{min-width:0;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:2px 3px 8px}.music-dock__library-back{width:28px;height:28px}.music-dock__collection-detail-copy small{max-width:220px}.music-dock__collection-detail-play{height:28px;display:inline-flex;gap:5px;padding:0 10px;color:#fff;background:var(--accent-brand);font-size:9px;font-weight:650}.music-dock__collection-detail-play:hover{filter:brightness(1.08)}.music-dock__collection-detail-play svg{width:12px;height:12px}.music-dock__collection-tracks{min-height:0;overflow-y:auto;margin:0;padding:0;list-style:none;scrollbar-width:none}.music-dock__library-track{display:grid;grid-template-columns:minmax(0,1fr) 30px 30px;align-items:center;gap:4px;border-radius:8px}.music-dock__library-track:hover,.music-dock__library-track.is-current{background:var(--music-surface-soft)}.music-dock__library-track.is-current{box-shadow:inset 2px 0 var(--accent-brand)}.music-dock__library-track-main{min-width:0;display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:8px;padding:7px 5px 7px 8px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.music-dock__track-action{width:28px;height:28px;opacity:0}.music-dock__library-track:hover .music-dock__track-action,.music-dock__track:hover .music-dock__track-action,.music-dock__track-action:focus-visible{opacity:1}.music-dock__track-action:disabled{opacity:.62;color:var(--accent-brand);cursor:default}.music-dock__track-like.is-liked{color:var(--accent-brand);opacity:1}.music-dock__track-action svg{width:14px;height:14px}.music-dock__library-empty{min-height:154px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.music-dock__library-empty strong{color:var(--text-secondary);font-size:12px}.music-dock__library-empty span{margin-top:4px;color:var(--text-tertiary);font-size:10px}.music-dock__queue{min-height:0;overflow-y:auto;margin:0;padding:0 7px 8px;list-style:none;scrollbar-width:none}.music-dock__track{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:4px;border-radius:8px;transition:background-color .16s ease,box-shadow .16s ease}.music-dock__track+.music-dock__track{margin-top:2px}.music-dock__track:hover,.music-dock__track.is-active{background:var(--music-surface-soft)}.music-dock__track.is-active{box-shadow:inset 2px 0 var(--accent-brand)}.music-dock__track-main{min-width:0;display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:8px;padding:7px 5px 7px 8px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.music-dock__track-index{color:var(--text-tertiary);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:9px;text-align:center}.music-dock__track.is-active .music-dock__track-index{color:var(--accent-brand)}.music-dock__track-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.music-dock__track-title,.music-dock__track-artist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-dock__track-title{color:var(--text-secondary);font-size:11px;font-weight:600}.music-dock__track.is-active .music-dock__track-title{color:var(--text-primary)}.music-dock__track-artist{color:var(--text-tertiary);font-size:10px}.music-dock__track-like{width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;color:var(--text-tertiary);background:transparent;border-radius:7px;cursor:pointer;opacity:0;transition:color .16s ease,background-color .16s ease,opacity .16s ease}.music-dock__track:hover .music-dock__track-like,.music-dock__track-like:focus-visible,.music-dock__track-like.is-liked{opacity:1}.music-dock__track-like:hover,.music-dock__track-like.is-liked{color:var(--accent-brand)}.music-dock__track-like:hover{background:var(--music-surface-soft)}.music-dock__track-like svg{width:14px;height:14px}.music-dock__track-like.is-liked svg{fill:currentColor}.music-dock__empty{display:none;padding:30px 20px 34px;text-align:center}.music-dock__empty.is-visible{display:block}.music-dock__empty p{margin:0 0 5px;color:var(--text-secondary);font-size:12px;font-weight:600}.music-dock__empty span{color:var(--text-tertiary);font-size:10px}.music-dock__lyrics{min-height:180px}.music-dock__lyrics-scroll{min-height:0;overflow-y:auto;padding:70px 18px;scroll-behavior:smooth;scrollbar-width:none}.music-dock__lyric-line{margin:0;padding:6px 0;border:0;color:var(--text-tertiary);background:transparent;font-size:12px;line-height:1.45;text-align:left;cursor:pointer;transition:color .15s ease,transform .15s ease}.music-dock__lyric-line:hover{color:var(--text-secondary)}.music-dock__lyric-line.is-active{color:var(--text-primary);font-weight:650;transform:translate(4px)}.music-dock__lyric-line--plain{display:block;width:100%;color:var(--text-secondary);cursor:default}.music-dock__lyric-line--plain:hover{color:var(--text-secondary);transform:none}.music-dock__hint{min-height:30px;display:flex;align-items:center;gap:13px;padding:0 14px;border-top:1px solid var(--music-border);color:var(--text-tertiary);font-size:9px}.music-dock__hint span{display:inline-flex;align-items:center;gap:3px}.music-dock__hint kbd{min-width:16px;padding:1px 4px;color:var(--text-secondary);background:var(--music-surface-soft);border:1px solid var(--music-border);border-radius:4px;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:8px;text-align:center}.music-dock__toast{position:absolute;right:20px;bottom:82px;max-width:min(320px,calc(100vw - 32px));padding:8px 11px;pointer-events:none;color:var(--text-primary);background:var(--music-surface);border:1px solid var(--music-border);border-radius:8px;box-shadow:var(--music-shadow);font-size:11px;opacity:0;transform:translateY(6px);transition:opacity .16s ease,transform .16s ease}.music-dock__toast.is-visible{opacity:1;transform:translateY(0)}.music-dock__toast.is-error{border-color:color-mix(in srgb,#ff5c5c 55%,transparent);box-shadow:var(--music-shadow),0 0 0 1px color-mix(in srgb,#ff5c5c 10%,transparent)}.music-dock.is-dragging .music-dock__compact{border-color:var(--accent-brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-brand) 30%,transparent),0 14px 44px #00000057;transform:scale(1.03)}.music-dock__drop-hint{position:absolute;right:20px;bottom:76px;display:none;align-items:center;gap:7px;padding:8px 13px;pointer-events:none;color:var(--text-primary);background:var(--music-surface);border:1px solid color-mix(in srgb,var(--accent-brand) 55%,transparent);border-radius:10px;box-shadow:var(--music-shadow);font-size:11px;font-weight:600;animation:music-dock-drop-in .18s ease both}.music-dock.is-dragging .music-dock__drop-hint{display:inline-flex}.music-dock__drop-hint svg{width:14px;height:14px;color:var(--accent-brand);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@keyframes music-dock-drop-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:680px){.music-dock__compact{right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:52px;height:52px;border-radius:50%;transition:opacity .18s ease,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .18s ease}.music-dock__compact-main{width:52px;flex:0 0 52px;justify-content:center;padding:5px}.music-dock__compact-cover{width:40px;height:40px;flex-basis:40px;border-radius:50%}.music-dock__compact-ring{width:42px!important;height:42px!important}.music-dock__compact-play,.music-dock__compact-copy,.music-dock__compact-chevron{display:none}.music-dock__compact:after{display:none}.music-dock__panel{right:8px;bottom:calc(68px + env(safe-area-inset-bottom));width:calc(100% - 16px);max-width:none;max-height:calc(100svh - 84px - env(safe-area-inset-bottom));border-radius:12px}.music-dock.is-user-scrolling:not(.is-panel-open) .music-dock__compact{opacity:.52;transform:translate(38px) scale(.92);box-shadow:0 6px 20px #00000029}.music-dock.is-panel-open .music-dock__compact{pointer-events:none;opacity:0;transform:translateY(12px) scale(.9)}.music-dock.is-panel-open .music-dock__panel{bottom:calc(8px + env(safe-area-inset-bottom));box-shadow:0 22px 70px #00000047,0 0 0 1px color-mix(in srgb,var(--accent-brand) 8%,transparent)}.music-dock__now{grid-template-columns:56px minmax(0,1fr) 34px;gap:10px;padding-inline:12px}.music-dock__now-cover{width:56px;height:56px}.music-dock__progress{padding-inline:12px}.music-dock__transport{padding-inline:10px;flex-wrap:wrap;gap:3px}.music-dock__volume-control{position:static;flex:1 0 100%;justify-content:center;padding-top:3px}.music-dock__volume{width:110px}.music-dock__drawer{max-height:38svh}.music-dock__track-like,.music-dock__track-action,.music-dock__collection-play{opacity:1}.music-dock__collection-detail-copy small{max-width:46vw}.music-dock__hint{display:none}.music-dock__toast{right:10px;bottom:calc(70px + env(safe-area-inset-bottom))}.music-dock__drop-hint{right:10px;bottom:calc(66px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px)}.music-dock__icon-button,.music-dock__play,.music-dock__close{position:relative}.music-dock__icon-button:after,.music-dock__play:after,.music-dock__close:after{content:"";position:absolute;inset:-6px}.music-dock__view-button{position:relative}.music-dock__view-button:after{content:"";position:absolute;inset:-5px}}@media(max-width:380px){.music-dock__compact{right:4px;width:48px;height:48px;opacity:1;transform:translate(0)}}@media(max-width:380px)and (hover:none){.music-dock.is-user-scrolling:not(.is-panel-open) .music-dock__compact{opacity:.62;transform:scale(.92)}}@media(max-width:380px)and (hover:hover)and (pointer:fine){.music-dock__compact{opacity:.82;transform:translate(26px)}.music-dock__compact:hover,.music-dock__compact:focus-within{opacity:1;transform:translate(0)}}@media(max-width:380px){.music-dock__compact-main{width:48px;flex-basis:48px}.music-dock__compact-cover{width:38px;height:38px;flex-basis:38px}.music-dock__compact-ring{width:40px!important;height:40px!important}.music-dock__compact-kicker{font-size:8px}.music-dock__compact-title{font-size:11px}.music-dock__views{padding-inline:12px}.music-dock__view-button{padding-inline:8px}}@media(prefers-reduced-motion:reduce){.music-dock *,.music-dock *:before,.music-dock *:after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-grotesk-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-latin-700-normal.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-700-normal.woff2) format("woff2")}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,SF Mono,Fira Code,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{scroll-behavior:smooth;scroll-padding-top:calc(76px + env(safe-area-inset-top));overflow-y:scroll;scrollbar-gutter:stable;overscroll-behavior-y:none;height:100%;background:var(--bg-page);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;min-height:100%;overflow-x:clip;background-color:var(--bg-page);color:var(--text-primary);font-feature-settings:"kern" 1,"liga" 1;transition:background-color .24s ease,color .24s ease}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.site-shell{position:relative;z-index:1;min-width:0}.site-atmosphere{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict;isolation:isolate}.site-atmosphere__layer{position:absolute;inset:-4%;display:block;opacity:0;transform:scale(1.02);transform-origin:center;transition:opacity .42s ease;will-change:opacity,transform}.site-atmosphere__layer:before,.site-atmosphere__layer:after{content:"";position:absolute;inset:0;pointer-events:none}.site-atmosphere__layer--light{opacity:1;background:linear-gradient(116deg,transparent 0 9%,rgba(255,255,255,.66) 9.2% 20%,rgba(248,220,196,.18) 20.2% 20.8%,transparent 21% 100%),linear-gradient(180deg,rgba(223,151,111,.11) 0%,transparent 31%),linear-gradient(162deg,transparent 0 70%,rgba(69,139,168,.025) 70.5% 88%,transparent 88.5% 100%),linear-gradient(90deg,rgba(216,47,124,.038) 0%,transparent 24%,transparent 76%,rgba(52,133,175,.045) 100%),linear-gradient(180deg,#f8f5f1,#faf7f3 48%,#f6f3f0);animation:atmosphere-light-drift 30s ease-in-out infinite alternate}.site-atmosphere__layer--light:before{background-image:repeating-linear-gradient(0deg,rgba(93,72,62,.022) 0 1px,transparent 1px 6px),repeating-linear-gradient(90deg,rgba(93,72,62,.028) 0 1px,transparent 1px 72px);-webkit-mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.44) 24%,transparent 47%,transparent 62%,rgba(0,0,0,.42) 83%,#000 100%);mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.44) 24%,transparent 47%,transparent 62%,rgba(0,0,0,.42) 83%,#000 100%)}.site-atmosphere__layer--light:after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");background-size:180px 180px;mix-blend-mode:multiply;opacity:.045}.site-atmosphere__layer--dark{background:linear-gradient(128deg,transparent 0 39%,rgba(93,137,177,.018) 39.5% 52%,transparent 52.5% 100%),linear-gradient(103deg,rgba(241,75,150,.034) 0%,transparent 22%),linear-gradient(255deg,rgba(52,108,171,.052) 0%,transparent 27%),linear-gradient(0deg,rgba(225,163,60,.014) 0%,transparent 22%),linear-gradient(180deg,#0a0b0f,#0c0d12 48%,#090a0e);animation:atmosphere-dark-drift 36s ease-in-out infinite alternate;animation-play-state:paused}.site-atmosphere__layer--dark:before{background-image:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.58) 22%,transparent 42%,transparent 66%,rgba(0,0,0,.52) 84%,#000 100%);mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.58) 22%,transparent 42%,transparent 66%,rgba(0,0,0,.52) 84%,#000 100%);opacity:.62}.site-atmosphere__layer--dark:after{background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.013) 0 1px,transparent 1px 4px),url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");background-size:auto,180px 180px;mix-blend-mode:soft-light;opacity:.24}[data-theme=dark] .site-atmosphere__layer--light,.dark .site-atmosphere__layer--light{opacity:0;animation-play-state:paused}[data-theme=dark] .site-atmosphere__layer--dark,.dark .site-atmosphere__layer--dark{opacity:1;animation-play-state:running}@keyframes atmosphere-light-drift{0%{transform:translate3d(-.35%,-.2%,0) scale(1.02)}to{transform:translate3d(.55%,.35%,0) scale(1.028)}}@keyframes atmosphere-dark-drift{0%{transform:translate3d(.25%,-.2%,0) scale(1.02)}to{transform:translate3d(-.45%,.25%,0) scale(1.026)}}*,*:before,*:after{box-sizing:border-box}a,button,input,select,textarea,label,[role=button],.clickable{touch-action:manipulation}::selection{background:#ec489947;color:#fff}.dark ::selection,[data-theme=dark] ::selection{background:#ec489952;color:#fff}:focus-visible{outline:2px solid var(--accent-brand);outline-offset:3px;border-radius:4px;box-shadow:none}.skip-link{position:absolute;top:-100px;left:16px;z-index:9999;padding:8px 16px;font-size:13px;font-weight:500;color:#fff;background:var(--accent-brand);border-radius:8px;text-decoration:none;transition:top .2s ease}.skip-link:focus{top:16px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-tertiary) 55%,transparent);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--text-tertiary) transparent}@media(max-width:767px){html{overflow-y:auto;scrollbar-gutter:auto}.site-atmosphere__layer{inset:-2%}.site-atmosphere__layer--light:before{opacity:.56;-webkit-mask-image:linear-gradient(90deg,#000 0%,transparent 36%,transparent 72%,rgba(0,0,0,.55) 100%);mask-image:linear-gradient(90deg,#000 0%,transparent 36%,transparent 72%,rgba(0,0,0,.55) 100%)}.site-atmosphere__layer--dark:before{background-size:48px 48px;opacity:.42;-webkit-mask-image:linear-gradient(90deg,#000 0%,transparent 34%,transparent 70%,rgba(0,0,0,.56) 100%);mask-image:linear-gradient(90deg,#000 0%,transparent 34%,transparent 70%,rgba(0,0,0,.56) 100%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.site-atmosphere__layer{animation:none!important;transform:scale(1.02)}}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.glass-nav{--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:transparent;border-bottom:1px solid var(--border)}.kicker{display:inline-flex;align-items:center;gap:10px;width:fit-content;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent-brand)}.kicker:after{content:"";width:28px;height:1px;flex:0 0 28px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent-brand) 68%,transparent),transparent);opacity:.65}.prose{max-width:none;letter-spacing:.015em}.prose,.prose p,.prose li,.prose td,.prose th,.prose a{overflow-wrap:break-word;word-break:break-word}.prose h1{margin-top:3rem;margin-bottom:1.25rem;font-size:36px;line-height:1.2;font-weight:700;letter-spacing:-.025em;color:var(--text-primary)}.prose h2{margin-top:3rem;margin-bottom:1.25rem;font-size:28px;line-height:1.3;letter-spacing:-.015em;font-weight:700;color:var(--text-primary);position:relative;padding-left:16px}.prose h2:before{content:"";position:absolute;left:0;top:.45em;bottom:.45em;width:3px;border-radius:2px;background:var(--accent-brand)}.prose h3{margin-top:2rem;margin-bottom:.75rem;font-size:22px;line-height:1.4;font-weight:600;color:var(--text-primary)}.prose h4{margin-top:1.5rem;margin-bottom:.5rem;font-size:18px;line-height:1.6;font-weight:600;color:var(--text-primary)}.prose :where(h1,h2,h3,h4){scroll-margin-top:84px}.prose p{margin-bottom:1.25rem;color:var(--text-secondary);line-height:1.9;letter-spacing:.02em}.prose>p:first-of-type{color:var(--text-primary)}.prose a{color:var(--accent-brand);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;text-decoration-color:#ec489959}.prose a:hover{color:var(--accent-brand-hover);text-decoration-color:var(--accent-brand-hover)}.prose a:active{color:var(--accent-brand-active)}.prose strong{font-weight:600;color:var(--text-primary)}.prose em{color:var(--text-primary);font-style:italic}.prose blockquote{position:relative;border-left:3px solid var(--accent-brand);background:var(--bg-card);border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:1.75rem;margin-bottom:1.75rem;border-top-right-radius:16px;border-bottom-right-radius:16px;padding:1rem 1.25rem 1rem 1.75rem;font-style:italic;color:var(--text-primary);font-size:1.05em}.prose blockquote:before{content:"“";position:absolute;top:-10px;left:18px;font-family:var(--font-display, serif);font-size:3.5rem;line-height:1;color:var(--accent-brand);opacity:.45;font-style:normal;pointer-events:none}.prose blockquote p{margin-bottom:.5rem}.prose blockquote p:last-child{margin-bottom:0}.prose ul{margin-bottom:1.25rem;list-style-type:none}.prose ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.prose ul{padding-left:0;color:var(--text-secondary);line-height:1.9}.prose ol{margin-bottom:1.25rem;list-style-type:none}.prose ol>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.prose ol{padding-left:0;color:var(--text-secondary);line-height:1.9;counter-reset:ordered-list}.prose li{position:relative;padding-left:1.6em}.prose ul>li:before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:99px;background:var(--accent-brand)}.prose ol>li{counter-increment:ordered-list}.prose ol>li:before{content:counter(ordered-list,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--font-mono, monospace);font-size:.85em;font-weight:700;color:var(--accent-brand);letter-spacing:.04em}.prose code{border-radius:14px;padding:.125rem .375rem;font-family:JetBrains Mono,SF Mono,Fira Code,Consolas,monospace;font-size:.88em;line-height:1.5;background-color:#ec48991a;color:var(--accent-brand);border:1px solid rgba(236,72,153,.18)}.prose pre{margin-bottom:1.5rem;overflow-x:auto;max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;border-radius:var(--radius-default);padding:1.25rem 1.5rem;font-size:.9375rem;line-height:1.75;border:1px solid var(--border);background-color:#0b0b0f;box-shadow:0 4px 24px #0006}.prose pre code{background-color:transparent!important;color:inherit;padding:0;font-size:inherit;line-height:inherit;border:0}.code-block-wrap{position:relative;max-width:100%;margin-bottom:1.5rem}.code-block-wrap>pre{margin-bottom:0}.code-block-wrap:before,.code-block-wrap:after{content:"";position:absolute;top:1px;bottom:1px;width:36px;pointer-events:none;z-index:2;opacity:0;transition:opacity .25s ease}.code-block-wrap:before{left:0;background:linear-gradient(to right,#0b0b0fd9,#0b0b0f00)}.code-block-wrap:after{right:0;background:linear-gradient(to left,#0b0b0fd9,#0b0b0f00)}.code-block-wrap.is-overflow.show-start:before{opacity:1}.code-block-wrap.is-overflow.show-end:after{opacity:1}.prose pre [style*="color:#6A737D"],.prose pre [style*="color: #6A737D"]{color:#9ca3af!important}.prose pre [style*="color:#79B8FF"],.prose pre [style*="color: #79B8FF"]{color:#a5d6ff!important}.prose pre [style*="color:#9ECBFF"],.prose pre [style*="color: #9ECBFF"]{color:#c8e1ff!important}.prose pre [style*="color:#B392F0"],.prose pre [style*="color: #B392F0"]{color:#d2a8ff!important}.prose pre [style*="color:#F97583"],.prose pre [style*="color: #F97583"]{color:#ff7b72!important}.prose img{margin-top:2rem;margin-bottom:2rem;border-radius:var(--radius-default);box-shadow:var(--shadow-card)}.prose hr{position:relative;margin-top:3rem;margin-bottom:3rem;height:1px;border-width:0px;background:linear-gradient(90deg,transparent 0%,var(--border) 20%,rgba(236,72,153,.35) 50%,var(--border) 80%,transparent 100%)}.prose table{margin-bottom:1.5rem;width:100%;border-collapse:collapse;font-size:.94em}.prose th{border-width:1px;padding:.75rem 1rem;text-align:left;font-weight:600;border-color:var(--border);background-color:#ec48990f;color:var(--text-primary);font-family:var(--font-mono, monospace);font-size:.9em;letter-spacing:.02em}.prose td{border-width:1px;padding:.75rem 1rem;border-color:var(--border)}.prose tr:hover td{background-color:#ec48990a}@media(max-width:639px){.prose table{table-layout:fixed}.prose th,.prose td{padding:.65rem .75rem;overflow-wrap:anywhere;word-break:break-word}.prose td code{white-space:normal;overflow-wrap:anywhere}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.\!visible{visibility:visible!important}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.right-\[max\(2rem\,calc\(\(100vw-64rem\)\/2-14rem\)\)\]{right:max(2rem,calc((100vw - 64rem)/2 - 14rem))}.top-0{top:0}.top-20{top:5rem}.top-24{top:6rem}.isolate{isolation:isolate}.z-\[999\]{z-index:999}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.\!mb-0{margin-bottom:0!important}.\!mt-0{margin-top:0!important}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-5{margin-top:1.25rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-\[16\/9\]{aspect-ratio:16/9}.h-14{height:3.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-full{height:100%}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[70vh\]{min-height:70vh}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-6xl{max-width:72rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.select-none{user-select:none}.resize{resize:both}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-wrap{text-wrap:wrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:16px}.rounded-md{border-radius:14px}.rounded-xl{border-radius:20px}.\!rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.border{border-width:1px}.border-t{border-top-width:1px}.border-primary-100{--tw-border-opacity:1;border-color:rgb(232 232 237 / var(--tw-border-opacity, 1))}.border-primary-200{--tw-border-opacity:1;border-color:rgb(210 210 215 / var(--tw-border-opacity, 1))}.object-cover{object-fit:cover}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-4{padding-bottom:1rem}.pb-section{padding-bottom:5rem}.pl-6{padding-left:1.5rem}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,SF Mono,Fira Code,Consolas,monospace}.font-sans{font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-body{font-size:16px;line-height:1.6;font-weight:400}.text-body-lg{font-size:18px;line-height:1.6;font-weight:400}.text-body-sm{font-size:14px;line-height:1.5;font-weight:400}.text-caption{font-size:12px;line-height:1.5;font-weight:500}.text-caption-sm{font-size:11px;line-height:1.5;font-weight:500}.text-sm{font-size:.875rem;line-height:1.25rem}.text-subtitle{font-size:22px;line-height:1.4;font-weight:600}.text-title{font-size:28px;line-height:1.3;letter-spacing:-.015em;font-weight:600}.text-title-lg{font-size:36px;line-height:1.2;letter-spacing:-.02em;font-weight:700}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.text-primary-300{--tw-text-opacity:1;color:rgb(174 174 178 / var(--tw-text-opacity, 1))}.text-primary-400{--tw-text-opacity:1;color:rgb(142 142 147 / var(--tw-text-opacity, 1))}.text-primary-500{--tw-text-opacity:1;color:rgb(99 99 102 / var(--tw-text-opacity, 1))}.text-primary-700{--tw-text-opacity:1;color:rgb(58 58 60 / var(--tw-text-opacity, 1))}.text-primary-800{--tw-text-opacity:1;color:rgb(44 44 46 / var(--tw-text-opacity, 1))}.text-primary-900{--tw-text-opacity:1;color:rgb(28 28 30 / var(--tw-text-opacity, 1))}.text-white\/85{color:#ffffffd9}.underline{text-decoration-line:underline}.decoration-1{text-decoration-thickness:1px}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.4), 0 2px 4px -2px rgba(0,0,0,.3);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.3\)\]{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.3));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{color-scheme:light;--bg-page: #f8f5f1;--bg-card: rgba(255, 255, 255, .88);--bg-card-solid: #ffffff;--bg-muted: #efedf0;--text-primary: #18181d;--text-secondary: #555560;--text-tertiary: #858590;--accent-brand: #d82f7c;--accent-brand-hover: #b91f66;--accent-brand-active: #98174f;--accent-amber: #a66300;--accent-amber-hover: #835000;--accent-func: #176fae;--accent-func-hover: #0f5e98;--accent-func-active: #0a4c7d;--accent: var(--accent-brand);--accent-hover: var(--accent-brand-hover);--accent-active: var(--accent-brand-active);--border: rgba(24, 24, 29, .11);--border-hover: rgba(216, 47, 124, .34);--line-strong: rgba(24, 24, 29, .18);--glass-bg: rgba(248, 245, 241, .84);--glass-border: rgba(24, 24, 29, .09);--shadow-color: rgba(74, 51, 43, .13);--shadow-soft: 0 12px 34px -24px rgba(74, 51, 43, .38);--shadow-card: 0 1px 2px rgba(65, 44, 38, .045), 0 15px 38px -29px rgba(74, 51, 43, .36);--shadow-hover: 0 2px 3px rgba(65, 44, 38, .045), 0 18px 42px -27px rgba(74, 51, 43, .42);--shadow-glow: rgba(216, 47, 124, .18);--radius-default: 8px;--radius-control: 6px;--content-wide: 72rem;--content-reading: 48rem;--ease-out: cubic-bezier(.22, 1, .36, 1)}[data-theme=dark],.dark{color-scheme:dark;--bg-page: #0a0b0f;--bg-card: rgba(21, 21, 28, .88);--bg-card-solid: #15151c;--bg-muted: #1b1b23;--text-primary: #f0eff3;--text-secondary: #aaa8b3;--text-tertiary: #74727f;--accent-brand: #f14b96;--accent-brand-hover: #ff68aa;--accent-brand-active: #ce347b;--accent-amber: #e1a33c;--accent-amber-hover: #f0b653;--accent-func: #4d9eea;--accent-func-hover: #6bb2f4;--accent-func-active: #347fbe;--accent: var(--accent-brand);--accent-hover: var(--accent-brand-hover);--accent-active: var(--accent-brand-active);--border: rgba(255, 255, 255, .1);--border-hover: rgba(241, 75, 150, .38);--line-strong: rgba(255, 255, 255, .16);--glass-bg: rgba(13, 13, 17, .84);--glass-border: rgba(255, 255, 255, .08);--shadow-color: rgba(0, 0, 0, .48);--shadow-soft: 0 14px 34px -22px rgba(0, 0, 0, .86);--shadow-card: 0 1px 0 rgba(255, 255, 255, .025) inset, 0 18px 38px -30px rgba(0, 0, 0, .92);--shadow-hover: 0 1px 0 rgba(255, 255, 255, .035) inset, 0 20px 44px -28px rgba(0, 0, 0, .96);--shadow-glow: rgba(241, 75, 150, .2)}.animate-on-scroll{opacity:0;transform:translateY(10px);transition:opacity .36s var(--ease-out),transform .36s var(--ease-out)}.animate-on-scroll.is-visible{opacity:1;transform:translateY(0)}.dark [data-terminal-code]>pre{background-color:#0b0b0f;color:#e5e5e7}img{max-width:100%}a:active,button:active{opacity:.82}#glass-header{position:fixed!important;top:0;left:0;right:0;z-index:999;background-color:color-mix(in srgb,var(--bg-page) 86%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border);transition:background-color .3s ease,border-color .3s ease,backdrop-filter .4s cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter .4s cubic-bezier(.22,1,.36,1)}#glass-header.scrolled{background-color:color-mix(in srgb,var(--bg-page) 93%,transparent);-webkit-backdrop-filter:saturate(150%) blur(22px);backdrop-filter:saturate(150%) blur(22px);box-shadow:0 8px 24px -24px var(--shadow-color)}@media(max-width:639px){.kicker{gap:8px}.kicker:after{width:20px;flex-basis:20px}}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/back:hover .group-hover\/back\:-translate-x-0\.5{--tw-translate-x:-.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x:.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:border-primary-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(58 58 60 / var(--tw-border-opacity, 1))}.dark\:border-primary-800\/50:is(.dark *){border-color:#2c2c2e80}.dark\:text-primary-100:is(.dark *){--tw-text-opacity:1;color:rgb(232 232 237 / var(--tw-text-opacity, 1))}.dark\:text-primary-200:is(.dark *){--tw-text-opacity:1;color:rgb(210 210 215 / var(--tw-text-opacity, 1))}.dark\:text-primary-300:is(.dark *){--tw-text-opacity:1;color:rgb(174 174 178 / var(--tw-text-opacity, 1))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgb(142 142 147 / var(--tw-text-opacity, 1))}.dark\:text-primary-50:is(.dark *){--tw-text-opacity:1;color:rgb(245 245 247 / var(--tw-text-opacity, 1))}.dark\:text-primary-500:is(.dark *){--tw-text-opacity:1;color:rgb(99 99 102 / var(--tw-text-opacity, 1))}.dark\:text-primary-600:is(.dark *){--tw-text-opacity:1;color:rgb(72 72 74 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:flex-row{flex-direction:row}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-14{padding-bottom:3.5rem}.sm\:pt-12{padding-top:3rem}.sm\:pt-16{padding-top:4rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media(min-width:1280px){.xl\:block{display:block}}
