:root{--coral:#f66c40;--coral-hover:#f05b2b;--coral-active:#e05226;--coral-soft:#fde3d9;--coral-ink:#151618;--sky:#b4cef5;--sky-soft:#e4ecfa;--sky-ink:#1f3f70;--ink:#151618;--ink-2:#1b1d22;--ink-3:#383b43;--ink-4:#4b4f59;--canvas:#f0f0f3;--surface:#f8f8fb;--surface-2:#e7e8ed;--surface-3:#dedfe5;--white:#fff;--text:#151618;--text-2:#565961;--text-3:#787b81;--text-on-dark:#f8f8fb;--text-on-dark-2:#adaeb5;--text-on-dark-3:#8c8f96;--line:#dadbe1;--line-strong:#bfc1c9;--line-dark:#383b43;--success:#2a7a4b;--success-soft:#dcf1e3;--warning:#a8650f;--warning-soft:#fbead0;--danger:#c23434;--danger-soft:#f9dede;--info:#2f5fa8;--font-sans:"Be Vietnam Pro", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-accent:"Platypi", Georgia, "Times New Roman", serif;--font-reading:"Literata", Georgia, "Times New Roman", serif;--fs-12:.75rem;--fs-13:.8125rem;--fs-14:.875rem;--fs-15:.9375rem;--fs-16:1rem;--fs-18:1.125rem;--fs-20:1.25rem;--fs-24:1.5rem;--fs-28:1.75rem;--fs-32:2rem;--fs-40:2.5rem;--fs-48:3rem;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:999px;--shadow-1:0 1px 2px #1516180f, 0 1px 1px #15161808;--shadow-2:0 6px 20px #1516181a, 0 1px 2px #1516180f;--shadow-3:0 18px 48px #15161833, 0 2px 6px #15161814;--shadow-nav:0 10px 30px #1516181f;--ease-out:cubic-bezier(.25, 1, .5, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-1:.15s;--dur-2:.22s;--dur-3:.42s;--z-dropdown:10;--z-sticky:20;--z-miniplayer:30;--z-nav:40;--z-backdrop:50;--z-modal:60;--z-toast:70;--z-tooltip:80;--sidebar-w:248px;--content-max:1280px;--gutter:32px;--tap:44px;--bottom-nav-h:60px;--mini-player-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (width<=767px){:root{--gutter:16px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-16);color:var(--text);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;margin:0;line-height:1.5;overflow-x:clip}#root{min-height:100dvh}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600;line-height:1.15}h1{font-size:var(--fs-32)}h2{font-size:var(--fs-24)}h3{font-size:var(--fs-20)}h4{font-size:var(--fs-16);letter-spacing:-.01em}p{margin:0}.prose{text-wrap:pretty;max-width:68ch}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;margin:0;padding:0}button:disabled{cursor:not-allowed}ul,ol{margin:0;padding:0;list-style:none}img,svg{display:block}:focus{outline:none}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.on-dark :focus-visible,.dark :focus-visible{outline-color:var(--coral)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.accent{font-family:var(--font-accent);letter-spacing:-.01em;font-style:italic;font-weight:400}.muted{color:var(--text-2)}.mono-num{font-variant-numeric:tabular-nums}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.textured{isolation:isolate;position:relative}.textured:before{content:"";z-index:-1;pointer-events:none;opacity:.5;background-image:radial-gradient(#15161824 1px,#0000 1.2px);background-size:30px 30px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000e6,#0000 85%);mask-image:linear-gradient(#000000e6,#0000 85%)}.textured:after{content:"";z-index:-1;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html[data-motion=reduce] *,html[data-motion=reduce] :before,html[data-motion=reduce] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
