:root{color-scheme:dark;--bg:#0a0c10;--elevated:#141820;--inset:#10131a;--hairline:#252b3a;--accent:#c5cef0;--accent-strong:#d7ddf6;--accent-glow:#8b96b873;--on-accent:#141826;--text:#f2f3f6;--text-2:#9aa1b4;--sun:#ede9e2;--safety-green:#5fcf91;--safety-yellow:#e0b15a;--safety-orange:#e0894a;--safety-red:#e06a62;--unclassified:#8b91a5;--nav-bg:#0a0c10b8;--frame-bg:#141820c7;--orbit-line:#c5cef029;--shadow-frame:0 1px 0 #ffffff0a inset, 0 30px 80px -20px #0009;--glass:#161a2485;--glass-strong:#1a1f2bb8;--glass-edge:#ffffff14;--glass-hi:#ffffff0f;--halo:#ede9e229;--sun-core:#efe7d4;--sun-rim:#d9cdb0;--body-night:#05070b;--star:#f2f3f6;--drop:#0000008c;--step-1:#c5cef0;--step-2:#b79cf5;--step-3:#e0b15a;--step-4:#5fcf91;--cat-dev:#10a6ad;--cat-apps:#439ccc;--cat-docs:#7f64ab;--cat-media:#9a66bc;--cat-downloads:#985b93;--cat-library:#9fabc9;--cat-system:#7190d6;--cat-projects:#d687d6}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--bg:#efece6;--elevated:#e4e0d8;--inset:#d8d3c9;--hairline:#c2bdb2;--accent:#3d4a73;--accent-strong:#2f3a5c;--accent-glow:#5c6b9a59;--on-accent:#fff;--text:#1a1c22;--text-2:#5a5d68;--sun:#e6d3a0;--safety-green:#196640;--safety-yellow:#8a4f0e;--safety-orange:#9c4511;--safety-red:#b42318;--unclassified:#5c5f6a;--nav-bg:#efece6b8;--frame-bg:#faf8f4d1;--orbit-line:#1a1c2229;--shadow-frame:0 1px 0 #fff9 inset, 0 30px 70px -24px #3a2c1447;--glass:#fffdf98c;--glass-strong:#fffdf9c7;--glass-edge:#1a1c221a;--glass-hi:#ffffffb3;--halo:#c9b27a38;--sun-core:#e6d3a0;--sun-rim:#9a7b34;--body-night:#3a3f4c;--star:#1a1c22;--drop:#3a2c1429;--step-1:#3d4a73;--step-2:#6b46c1;--step-3:#8a4f0e;--step-4:#196640;--cat-dev:#00989f;--cat-apps:#208dc0;--cat-docs:#6e519d;--cat-media:#8349a8;--cat-downloads:#884783;--cat-library:#66708a;--cat-system:#5f80cb;--cat-projects:#c0c}}:root[data-theme=light]{color-scheme:light;--bg:#efece6;--elevated:#e4e0d8;--inset:#d8d3c9;--hairline:#c2bdb2;--accent:#3d4a73;--accent-strong:#2f3a5c;--accent-glow:#5c6b9a59;--on-accent:#fff;--text:#1a1c22;--text-2:#5a5d68;--sun:#e6d3a0;--safety-green:#196640;--safety-yellow:#8a4f0e;--safety-orange:#9c4511;--safety-red:#b42318;--unclassified:#5c5f6a;--nav-bg:#efece6b8;--frame-bg:#faf8f4d1;--orbit-line:#1a1c2229;--shadow-frame:0 1px 0 #fff9 inset, 0 30px 70px -24px #3a2c1447;--glass:#fffdf98c;--glass-strong:#fffdf9c7;--glass-edge:#1a1c221a;--glass-hi:#ffffffb3;--halo:#c9b27a38;--sun-core:#e6d3a0;--sun-rim:#9a7b34;--body-night:#3a3f4c;--star:#1a1c22;--drop:#3a2c1429;--step-1:#3d4a73;--step-2:#6b46c1;--step-3:#8a4f0e;--step-4:#196640;--cat-dev:#00989f;--cat-apps:#208dc0;--cat-docs:#6e519d;--cat-media:#8349a8;--cat-downloads:#884783;--cat-library:#66708a;--cat-system:#5f80cb;--cat-projects:#c0c}:root{--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--serif:ui-serif, "New York", "Iowan Old Style", Georgia, serif;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--measure:62ch;--wide:1120px;--gutter:clamp(20px, 5vw, 48px);--section:clamp(80px, 10vw, 136px);--r-sm:8px;--r-md:12px;--r-lg:18px;--ease:cubic-bezier(.25, .1, .25, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--t-fast:.16s;--t-std:.24s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:72px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:clip}h1,h2,h3,h4{color:var(--text);text-wrap:balance;margin:0;font-weight:700}h1,h2{font-family:var(--serif);font-weight:500}h1{letter-spacing:-.025em;font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.04}h2{letter-spacing:-.02em;font-size:clamp(2.1rem,4.6vw,3.5rem);line-height:1.08}.lit{color:var(--accent)}h3{letter-spacing:-.01em;font-size:1.25rem;font-weight:650;line-height:1.3}p{max-width:var(--measure);text-wrap:pretty;margin:0}p+p{margin-top:1em}ul,ol{margin:0;padding:0}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--accent-strong)}img,svg,video{max-width:100%;display:block}code,kbd,.mono{font-family:var(--mono);font-size:.92em}code{overflow-wrap:anywhere}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}strong{font-weight:650}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.skip{z-index:100;background:var(--accent);color:var(--on-accent);border-radius:var(--r-sm);padding:10px 16px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:100%;max-width:calc(var(--wide) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.narrow{max-width:calc(760px + 2 * var(--gutter))}.section{padding-block:var(--section)}.section+.section{border-top:1px solid var(--hairline)}.center{text-align:center}.center p,p.center{margin-inline:auto}.figure{font-family:var(--font);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.eyebrow{letter-spacing:.02em;color:var(--text-2);margin-bottom:18px;font-size:.8125rem;font-weight:600;display:block}.lead{color:var(--text-2);font-size:clamp(1.125rem,2vw,1.3125rem);line-height:1.55}.head{margin-bottom:clamp(40px,6vw,72px)}.head p{margin-top:20px}.small{color:var(--text-2);font-size:.875rem}.muted{color:var(--text-2)}.btn{min-height:44px;font:600 1rem/1 var(--font);cursor:pointer;transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border:1px solid #0000;border-radius:980px;justify-content:center;align-items:center;gap:8px;padding:0 22px;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-strong);color:var(--on-accent)}.btn-primary:active{transform:scale(.97)}.btn-quiet{color:var(--accent);background:0 0;padding-inline:6px}.btn-quiet:hover{color:var(--accent-strong)}.btn-quiet:after{content:"›";font-size:1.2em;line-height:0;transform:translateY(-1px)}.glass{background:var(--glass);backdrop-filter:saturate(160%)blur(22px);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi), 0 24px 60px -28px var(--drop)}.material{background:var(--frame-bg);backdrop-filter:saturate(180%)blur(20px)}.frame{border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-frame);overflow:hidden}.frame-bar{border-bottom:1px solid var(--hairline);height:40px;color:var(--text-2);align-items:center;gap:8px;padding:0 14px;font-size:.8125rem;display:flex}.frame-bar i{background:var(--hairline);border-radius:50%;flex:none;width:12px;height:12px}.frame-bar span{margin-left:8px}.todo{text-align:center;background:repeating-linear-gradient(135deg, transparent 0 14px, color-mix(in srgb, var(--hairline) 35%, transparent) 14px 15px);min-height:240px;color:var(--text-2);place-items:center;padding:32px;font-size:.875rem;display:grid}.rating{white-space:nowrap;align-items:center;gap:8px;font-size:.875rem;font-weight:600;display:inline-flex}.rating:before{content:"";background:currentColor;border-radius:50%;flex:none;width:9px;height:9px}.rating[data-r=Green]{color:var(--safety-green)}.rating[data-r=Yellow]{color:var(--safety-yellow)}.rating[data-r=Orange]{color:var(--safety-orange)}.rating[data-r=Red]{color:var(--safety-red)}.rating[data-r=None]{color:var(--unclassified)}.prose{overflow-wrap:break-word}.prose>*+*{margin-top:1.1em}.prose h2{margin-top:2.6em;font-size:clamp(1.625rem,3.2vw,2.125rem)}.prose h3{margin-top:2em}.prose ul,.prose ol{max-width:var(--measure);padding-left:1.3em}.prose li+li{margin-top:.45em}.prose pre{background:var(--inset);border:1px solid var(--hairline);border-radius:var(--r-md);min-width:0;max-width:100%;font:.9rem/1.6 var(--mono);color:var(--text);margin:1.4em 0;padding:18px 20px;overflow-x:auto}.prose pre code{font-size:inherit}.prose :not(pre)>code{background:var(--inset);overflow-wrap:anywhere;border-radius:5px;padding:.1em .35em}.prose table{border-collapse:collapse;width:100%;font-size:.95rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--hairline);vertical-align:top;padding:10px 12px 10px 0}.prose th{color:var(--text-2);font-size:.8125rem;font-weight:600}.note{border-left:2px solid var(--accent);color:var(--text-2);max-width:var(--measure);padding:4px 0 4px 18px}.table-scroll{max-width:100%;overflow-x:auto}@media screen and (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.reveal{animation-name:rise;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry entry 70%}}}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.f{gap:22px;display:grid}.f-field{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.f-label,.f-field>legend{color:var(--text);padding:0;font-size:.9375rem;font-weight:600}.f-label small,.f-field>legend small{color:var(--text-2);font-weight:400}.f-hint{color:var(--text-2);font-size:.875rem}.f-input{width:100%;min-height:48px;font:inherit;color:var(--text);background:var(--inset);border:1px solid var(--hairline);border-radius:var(--r-md);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:0 14px;font-size:1rem}.f-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.f-input[aria-invalid=true]{border-color:var(--safety-red)}.f-input::placeholder{color:var(--text-2)}.f-pills{flex-wrap:wrap;gap:8px;display:flex}.f-pill{position:relative}.f-pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.f-pill span{border:1px solid var(--hairline);background:color-mix(in srgb, var(--text) 3%, transparent);min-height:44px;color:var(--text);transition:background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:99px;align-items:center;padding:8px 16px;font-size:.9375rem;line-height:1.3;display:inline-flex}.f-pill input:checked+span{background:color-mix(in srgb, var(--accent) 16%, transparent);border-color:var(--accent)}.f-pill input:checked+span:before{content:"✓";color:var(--accent);margin-right:6px;font-weight:700}.f-pill input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.f-pill input:active+span{transform:scale(.97)}.f-tick{cursor:pointer;grid-template-columns:22px 1fr;align-items:start;gap:12px;font-size:1rem;line-height:1.5;display:grid}.f-tick input{width:20px;height:20px;accent-color:var(--accent);margin:2px 0 0}.f-tick input[aria-invalid=true]{outline:2px solid var(--safety-red);outline-offset:2px}.f-tick b{font-weight:600}.f-consent{color:var(--text-2);font-size:.875rem}.f-status{min-height:1.5em;color:var(--text);font-weight:500}.f-status:empty{min-height:0}.f-status.bad{color:var(--safety-red)}.f-submit{cursor:pointer;border:0;justify-self:start;min-height:48px;padding:0 26px;font-size:1rem}.f-submit:disabled{opacity:.7;cursor:progress}.f-hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}@media (hover:hover) and (pointer:fine){.f-pill:hover span{border-color:color-mix(in srgb, var(--accent) 60%, var(--hairline))}}.nav[data-astro-cid-wpvy4v7s]{z-index:50;background:var(--nav-bg);border-bottom:1px solid color-mix(in srgb, var(--hairline) 70%, transparent);position:sticky;top:0}.nav-in[data-astro-cid-wpvy4v7s]{align-items:center;gap:24px;height:56px;display:flex}.logo[data-astro-cid-wpvy4v7s]{filter:drop-shadow(0 1px 2px #0000002e);flex:none;width:28px;height:28px}.mark[data-astro-cid-wpvy4v7s]{color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-size:1.0625rem;font-weight:650;text-decoration:none;display:inline-flex}.links[data-astro-cid-wpvy4v7s]{gap:28px;margin-left:auto;list-style:none;display:flex}.links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{color:var(--text-2);transition:color var(--t-fast) var(--ease);font-size:.875rem;text-decoration:none}.links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover,.links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{color:var(--text)}.end[data-astro-cid-wpvy4v7s]{align-items:center;gap:8px;display:flex}.theme[data-astro-cid-wpvy4v7s]{width:44px;height:44px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.theme[data-astro-cid-wpvy4v7s]:hover{color:var(--text)}.cta[data-astro-cid-wpvy4v7s]{white-space:nowrap;background:color-mix(in srgb, var(--accent) 16%, transparent);min-height:34px;color:var(--accent);padding:0 16px;font-size:.875rem}.cta[data-astro-cid-wpvy4v7s]:hover{background:color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent-strong)}.i-moon[data-astro-cid-wpvy4v7s],:root[data-theme=light] .i-sun[data-astro-cid-wpvy4v7s]{display:none}:root[data-theme=light] .i-moon[data-astro-cid-wpvy4v7s]{display:block}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .i-sun[data-astro-cid-wpvy4v7s]{display:none}:root:not([data-theme=dark]) .i-moon[data-astro-cid-wpvy4v7s]{display:block}}@media (width<=820px){.links[data-astro-cid-wpvy4v7s]{display:none}.end[data-astro-cid-wpvy4v7s]{margin-left:auto}}@media (width<=360px){.nav-in[data-astro-cid-wpvy4v7s]{gap:8px}.end[data-astro-cid-wpvy4v7s]{gap:2px}.cta[data-astro-cid-wpvy4v7s]{padding:0 10px;font-size:.8125rem}.mark[data-astro-cid-wpvy4v7s]{gap:8px}.logo[data-astro-cid-wpvy4v7s]{width:24px;height:24px}}.foot[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--hairline);background:var(--bg);padding:64px 0 40px}.grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1.6fr 1fr 1.4fr 1fr;gap:40px;display:grid}.name[data-astro-cid-jo6i4kqk]{color:var(--text);margin-bottom:8px;font-weight:650;text-decoration:none;display:inline-block}h2[data-astro-cid-jo6i4kqk]{color:var(--text);letter-spacing:0;margin-bottom:12px;font-size:.8125rem;font-weight:600}ul[data-astro-cid-jo6i4kqk]{gap:4px;list-style:none;display:grid}li[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--text-2);padding:6px 0;font-size:.875rem;text-decoration:none;display:inline-block}li[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--text)}.legal[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--hairline);margin-top:48px;padding-top:20px}@media (width<=820px){.grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}.grid[data-astro-cid-jo6i4kqk]>div[data-astro-cid-jo6i4kqk]:first-child{grid-column:1/-1}}
