@font-face{font-family:Libre Franklin Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/libre-franklin-cyrillic-ext-wght-normal.BbRulJFC.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/libre-franklin-cyrillic-wght-normal.se3OnFSl.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Libre Franklin Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/libre-franklin-vietnamese-wght-normal.DTJpi3oK.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Franklin Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/libre-franklin-latin-ext-wght-normal.CeZZaleV.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Franklin Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/libre-franklin-latin-wght-normal.CLTz0ja0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff) format("woff")}:root{color-scheme:light;--ground: #fbfbfc;--surface: #ffffff;--ink: #14161a;--ink-muted: rgba(20, 22, 26, .66);--ink-soft: rgba(20, 22, 26, .6);--ink-dim: rgba(20, 22, 26, .45);--accent: #2f7bf6;--accent-press: #1e63d6;--accent-deep: #1a56c4;--accent-tint: rgba(47, 123, 246, .1);--note-bar: #70afe3;--note-body: rgba(62, 70, 80, .94);--note-icon: #313d47;--note-text: #d9dde4;--hairline: rgba(20, 22, 26, .07);--line: rgba(20, 22, 26, .1);--border: rgba(20, 22, 26, .16);--panel: linear-gradient(150deg, #dbe6f7 0%, #c3d4ee 55%, #aec3e6 100%);--glow: 0 8px 20px -6px rgba(47, 123, 246, .6);--note-shadow: 0 24px 50px -14px rgba(15, 25, 45, .55);--card-shadow: 0 1px 2px rgba(20, 22, 26, .04), 0 6px 22px rgba(20, 22, 26, .05);--sans: "Libre Franklin Variable", "Libre Franklin", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--wrap: 1180px;--pad: 44px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--accent-press)}img{max-width:100%;height:auto;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}code,kbd,pre{font-family:var(--mono)}code{font-size:.9em;background:#14161a0d;padding:.1em .35em;border-radius:4px}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}.skip{position:absolute;left:-9999px;top:0;background:var(--surface);padding:10px 16px;border-radius:8px;z-index:20}.skip:focus{left:12px;top:12px}.eyebrow{margin:0;font-family:var(--mono);font-weight:500;font-size:11.5px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}h1{margin:0;font-weight:700;font-size:62px;line-height:1.03;letter-spacing:-.035em;max-width:13ch}h2{margin:16px 0 0;font-weight:700;font-size:40px;line-height:1.1;letter-spacing:-.03em}h3{margin:0;font-weight:700;font-size:15.5px;line-height:1.3;letter-spacing:-.01em}p{margin:0 0 1em}p:last-child{margin-bottom:0}.lede{font-size:18.5px;line-height:1.55;color:var(--ink-muted);max-width:44ch}.lede.wide{max-width:62ch}.lede.center{margin-inline:auto;text-align:center}.muted{color:var(--ink-soft)}.nowrap{white-space:nowrap}.band{padding:76px 0;border-top:1px solid var(--hairline)}.band>.wrap>.eyebrow+h2{margin-top:16px}.band>.wrap>h2+.lede{margin-top:20px}.btn-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:32px}.btn{display:inline-flex;align-items:center;gap:9px;padding:15px 24px;border-radius:12px;font-weight:500;font-size:15.5px;line-height:1;text-decoration:none;white-space:nowrap;transition:background-color .15s,border-color .15s,transform .15s,box-shadow .15s}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.btn svg{width:16px;height:16px;flex:none}.btn-primary{background:var(--accent-press);color:#fff;box-shadow:var(--glow)}.btn-primary:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}.btn-secondary{padding:15px 20px;border:1px solid var(--border);color:var(--ink);background:var(--surface)}.btn-secondary:hover{border-color:var(--ink-dim);color:var(--ink)}.btn.is-pending{background:#14161a08;border-color:var(--hairline);color:var(--ink-dim);box-shadow:none;cursor:not-allowed;pointer-events:none}.btn-note{margin:20px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-muted);max-width:52ch}.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:var(--accent-tint);color:var(--accent-deep);font-family:var(--mono);font-weight:500;font-size:11.5px;line-height:1;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.site-head{position:sticky;top:0;z-index:10;background:#fbfbfce0;backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline)}.site-head>.wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;padding-block:22px}.brand{display:flex;align-items:center;text-decoration:none}.brand img{width:166px;height:40px}.site-nav{display:flex;align-items:center;flex-wrap:wrap;gap:12px 30px;font-weight:500;font-size:14px;line-height:1}.site-nav a{color:var(--ink-muted);text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a.cta{color:var(--accent-press);font-weight:600}.hero>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding-block:44px 52px}.hero>.wrap>*{min-width:0}.hero h1{margin-top:0}.hero .lede{margin:22px 0 0}.hero-panel{position:relative;border-radius:18px;padding:64px 40px;background:var(--panel);display:flex;flex-direction:column;align-items:center;gap:18px;overflow:hidden}.hero-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 20% 10%,rgba(255,255,255,.7),transparent 60%)}.hero-panel>*{position:relative}.desk{position:relative;width:100%;max-width:440px;aspect-ratio:4 / 3;container-type:inline-size}.desk .note{position:absolute;top:0;right:0;z-index:10}.hero-panel>.demo-pause{position:absolute;right:12px;bottom:12px}.demo-pause{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid rgba(18,34,62,.16);border-radius:50%;background:#fff9;color:#12223ec7;cursor:pointer;transition:background-color .15s,color .15s}.demo-pause[hidden]{display:none}.demo-pause:hover{background:var(--surface);color:var(--ink)}.demo-pause svg{width:12px;height:12px;fill:currentColor}.demo-pause .i-play,.demo-pause.is-paused .i-pause{display:none}.demo-pause.is-paused .i-play{display:block}.desk .app{position:absolute;z-index:1;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border-radius:1.8cqw;box-shadow:0 1cqw 3cqw -1.5cqw #0f192d59;transition:box-shadow .3s}.desk .app.is-front{z-index:2;box-shadow:0 4cqw 9cqw -4cqw #0f192d8c}.desk .app-browser{left:0;top:12%;width:68%;height:64%}.desk .app-code{left:30%;top:30%;width:70%;height:70%}.desk .app-doc{left:6%;top:44%;width:52%;height:56%}.desk .app-bar{flex:none;display:flex;align-items:center;gap:1.4cqw;height:6.4cqw;padding:0 2.2cqw;background:#e9edf3;transition:background-color .3s}.desk .app:not(.is-front) .app-bar{background:#f1f3f7}.desk .app-icon{width:2.6cqw;height:2.6cqw;border-radius:.6cqw;background:var(--accent)}.desk .app-title{width:18cqw;height:1.3cqw;border-radius:1cqw;background:#14161a29}.desk .app-tools{flex:none;display:flex;align-items:center;gap:1.4cqw;height:5.8cqw;padding:0 2.2cqw;border-bottom:1px solid var(--hairline)}.desk .app-tools>i{flex:none;width:2.4cqw;height:2.4cqw;border-radius:.6cqw;background:#14161a21}.desk .app-tools>b{flex:none;width:1px;height:3cqw;background:var(--line)}.desk .app-view{position:relative;flex:1;overflow:hidden}.desk .app-status{flex:none;display:flex;align-items:center;gap:2cqw;height:3.6cqw;padding:0 2.2cqw;background:#f3f5f8;border-top:1px solid var(--hairline)}.desk .app-status i{width:9cqw;height:1cqw;border-radius:1cqw;background:#14161a1f}.desk .app-browser .app-bar{align-items:flex-end;gap:.8cqw;padding:0 1.6cqw}.desk .tab{display:flex;align-items:center;width:17cqw;height:4.8cqw;padding:0 1.6cqw;border-radius:1.2cqw 1.2cqw 0 0}.desk .tab.is-active{background:var(--surface)}.desk .tab i{width:75%;height:1.2cqw;border-radius:1cqw;background:#14161a29}.desk .tab-new{align-self:center;width:2cqw;height:2cqw;margin-left:.6cqw;border-radius:50%;background:#14161a1f}.desk .address{position:relative;flex:1;display:flex;align-items:center;gap:1.2cqw;height:3.8cqw;padding:0 1.6cqw;overflow:hidden;border-radius:2cqw;background:#eef1f6}.desk .address .lock{width:1.6cqw;height:1.6cqw;border-radius:50%;background:#14161a38}.desk .address .url{width:40%;height:1.2cqw;border-radius:1cqw;background:#14161a29}.desk .address .load{position:absolute;left:0;bottom:0;width:100%;height:.5cqw;background:var(--accent);transform:scaleX(0);transform-origin:left;opacity:0;transition:opacity .3s,transform 0s .3s}.desk .address .load.is-loading{transform:scaleX(1);opacity:1;transition:transform .9s cubic-bezier(.2,.7,.3,1),opacity .1s}.desk .page{position:absolute;inset:0 0 auto;padding:2.6cqw 3cqw;opacity:0;transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .35s}.desk .page.is-shown{opacity:1}.desk .pg-nav{display:flex;align-items:center;gap:2cqw;margin-bottom:2.6cqw}.desk .pg-nav .logo{width:3cqw;height:3cqw;margin-right:auto;border-radius:.8cqw;background:#9dbcec}.desk .pg-nav i{width:6cqw;height:1.2cqw;border-radius:1cqw;background:#14161a24}.desk .pg-hero{height:17cqw;border-radius:1.2cqw;background:linear-gradient(135deg,#dbe7fa,#bccff0)}.desk .pg-line+.pg-hero{margin-top:3cqw}.desk .pg-title{display:block;width:58%;height:2.4cqw;margin:3cqw 0 .6cqw;border-radius:1cqw;background:#14161a3d}.desk .pg-line{display:block;height:1.2cqw;margin-top:1.5cqw;border-radius:1cqw;background:#14161a1a}.desk .pg-line.short{width:62%}.desk .pg-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2cqw;margin:3.2cqw 0 1.6cqw}.desk .pg-cards span{display:grid;gap:1cqw}.desk .pg-cards b{height:9cqw;border-radius:1cqw;background:#e3eaf5}.desk .pg-cards i{height:1.1cqw;border-radius:1cqw;background:#14161a1a}.desk .pg-cards i+i{width:70%}.desk .page.alt .pg-hero{height:11cqw;background:linear-gradient(135deg,#e7e2f6,#cdc4ec)}.desk .page.alt .pg-title{width:72%}.desk .page.alt .pg-cards{grid-template-columns:repeat(2,1fr)}.desk .app-code{background:#23272e}.desk .app-code .app-bar{background:#1b1e23}.desk .app-code .app-title{background:#ffffff2e}.desk .app-code .app-status{background:#3d64ad;border-top:0}.desk .app-code .app-status i{background:#ffffff73}.desk .code-body{flex:1;display:flex;min-height:0}.desk .code-rail{flex:none;display:flex;flex-direction:column;align-items:center;gap:2cqw;width:5.4cqw;padding-top:2cqw;background:#1b1e23}.desk .code-rail i{width:2.4cqw;height:2.4cqw;border-radius:.6cqw;background:#ffffff24}.desk .code-rail i:first-child{background:#ffffff6b}.desk .code-tree{flex:none;display:flex;flex-direction:column;gap:1.6cqw;width:13cqw;padding:2.4cqw 1.6cqw;background:#1f2328}.desk .code-tree i{width:62%;height:1cqw;margin-left:2cqw;border-radius:1cqw;background:#ffffff24}.desk .code-tree .dir{width:78%;margin-left:0;background:#ffffff3d}.desk .code-tree .open{background:#7fb0eebf}.desk .code-main{flex:1;display:flex;flex-direction:column;min-width:0}.desk .code-tabs{flex:none;display:flex;height:4.6cqw;background:#1d2025}.desk .code-tabs span{display:flex;align-items:center;width:13cqw;padding:0 1.6cqw}.desk .code-tabs .is-active{background:#23272e;box-shadow:inset 0 .3cqw #7fb0ee}.desk .code-tabs i{width:72%;height:1cqw;border-radius:1cqw;background:#ffffff38}.desk .code-view{position:relative;flex:1;overflow:hidden;padding-top:1.8cqw}.desk .cl{display:flex;align-items:center;gap:.9cqw;height:2.7cqw}.desk .cl:before{content:"";flex:none;width:1.6cqw;height:.9cqw;margin:0 calc(1.2cqw + var(--in, 0) * 2.8cqw) 0 1.8cqw;border-radius:1cqw;background:#ffffff1f}.desk .cl i{flex:none;width:calc(var(--w, 0) * 1cqw);height:1.1cqw;border-radius:1cqw;opacity:.85}.desk .cl .k{background:#c792ea}.desk .cl .f{background:#7fb0ee}.desk .cl .v{background:#b3bcc8}.desk .cl .s{background:#a5d38a}.desk .cl .n{background:#e5ad74}.desk .cl .o{background:#8a919c}.desk .cl.is-typing:after{content:"";flex:none;width:1.5px;height:2.2cqw;margin-left:-.5cqw;background:#e8eaed;animation:caret 1s steps(1) infinite}.desk .app-doc .app-view{padding:2.4cqw 4cqw 0;background:#eceff4}.desk .sheet{height:100%;padding:3.4cqw 4.4cqw 0;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px var(--hairline)}.desk .sheet-lines{display:grid;gap:1.8cqw}.desk .ln{position:relative;display:block;width:calc(var(--w, 0) * 100%);height:1.3cqw;border-radius:1cqw;background:#14161a2b}.desk .ln.hd{height:2.2cqw;margin-bottom:.8cqw;background:#14161a4d}.desk .sheet-lines .gap{display:block;height:0}.desk .ln.is-typing:after{content:"";position:absolute;left:calc(100% + .6cqw);top:-.8cqw;width:1.5px;height:2.9cqw;background:var(--ink);animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.desk.is-still .is-typing:after{animation-play-state:paused}.desk-caption{margin:0;font-family:var(--mono);font-size:12px;line-height:1;color:#12223ec7;text-align:center}.note{--u: .7px;width:calc(340 * var(--u));max-width:100%;overflow:hidden;box-shadow:var(--note-shadow)}.note-bar{display:grid;grid-template-columns:repeat(8,1fr);background:var(--note-bar);padding:calc(9 * var(--u)) calc(8 * var(--u))}.note-bar svg{width:calc(22 * var(--u));height:calc(22 * var(--u));justify-self:center}.note-bar svg.fill{fill:var(--note-icon)}.note-bar svg.stroke{fill:none;stroke:var(--note-icon);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.note-body{background:var(--note-body);padding:calc(13 * var(--u)) calc(15 * var(--u)) calc(15 * var(--u));color:var(--note-text);font-size:calc(21 * var(--u));line-height:1.25}.w-word{font-weight:700}.w-mean{min-height:calc(26 * var(--u))}.premise .cols{display:grid;grid-template-columns:repeat(3,1fr);margin-top:44px}.premise .col{padding-right:36px}.premise .col+.col{padding-left:36px;border-left:1px solid var(--line)}.premise .col p{margin:9px 0 0;color:var(--ink-soft)}.table-scroll{position:relative;margin-top:36px;overflow-x:auto}.compare{width:100%;min-width:560px;border-collapse:collapse;text-align:left}.compare th,.compare td{padding:14px 18px;border-bottom:1px solid var(--hairline)}.compare thead th{font-family:var(--mono);font-weight:500;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border-bottom-color:var(--line)}.compare tbody th{font-weight:600}.compare td{color:var(--ink-soft)}.compare tbody tr:last-child>*{border-bottom:0}.compare th:nth-child(2),.compare td:nth-child(2){background:var(--accent-tint);color:var(--accent-deep)}.compare thead th:nth-child(2){border-radius:10px 10px 0 0}.compare tbody tr:last-child td:nth-child(2){border-radius:0 0 10px 10px}.compare .yes,.compare .no{font-size:17px;line-height:1}.compare .yes{color:var(--accent-deep)}.compare .no{color:var(--ink-dim)}.compare-note{margin-top:24px;color:var(--ink-soft);max-width:62ch}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.pairs{display:grid;gap:10px;margin-top:36px}.pair{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;padding:16px 20px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px}.pair b{font-weight:700}.pair .arrow{color:var(--accent);font-weight:500}.pair .ans{color:var(--ink-soft)}.pair .cat{flex:0 0 200px;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim)}.who{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:24px}.who-card{position:relative;padding:26px 28px;background:var(--surface);border:1px solid var(--hairline);border-radius:14px;box-shadow:var(--card-shadow)}.who-card p{margin:10px 0 0;color:var(--ink-soft)}.who-card .horizon{display:inline-block;margin-top:16px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep);background:var(--accent-tint);padding:5px 10px;border-radius:999px}.lists-table{width:100%;margin-top:36px;border-collapse:collapse;text-align:left}.lists-table th{font-family:var(--mono);font-weight:500;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:0 16px 12px 0;border-bottom:1px solid var(--line);white-space:nowrap}.lists-table td{padding:18px 16px 18px 0;border-bottom:1px solid var(--hairline);vertical-align:baseline}.lists-table tr:last-child td{border-bottom:0}.lists-table .name{font-weight:600;white-space:nowrap}.lists-table .author{color:var(--ink-soft);white-space:nowrap}.lists-table .count,.lists-table .date{font-family:var(--mono);font-size:13.5px;color:var(--ink-soft);white-space:nowrap}.lists-table .what{color:var(--ink-soft);min-width:30ch}.lists-table .get{text-align:right;white-space:nowrap}.lists-table .bundled{font-family:var(--mono);font-size:12px;color:var(--ink-dim)}.lists-table .extra td{background:#2f7bf60a}.dl{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-weight:500;font-size:13.5px;line-height:1;text-decoration:none}.dl:hover{border-color:var(--accent);color:var(--accent-press)}.dl svg{width:14px;height:14px}.features{display:grid;gap:64px;margin-top:48px}.feature{display:grid;grid-template-columns:5fr 6fr;gap:44px;align-items:center}.feature:nth-child(2n){grid-template-columns:6fr 5fr}.feature:nth-child(2n) .card{order:2}.card{padding:30px 32px 32px;background:var(--surface);border:1px solid var(--hairline);border-radius:14px;box-shadow:var(--card-shadow)}.card-head{display:flex;align-items:center;gap:12px;padding-bottom:18px;margin-bottom:4px;border-bottom:1px solid var(--hairline)}.card-head svg{width:20px;height:20px;flex:none;color:var(--accent)}.card-head h3{font-size:17px}.card dl{margin:0}.card dt{margin-top:20px;font-weight:600;font-size:14.5px;line-height:1.35}.card dd{margin:6px 0 0;color:var(--ink-soft);font-size:14.5px}.shot{margin:0}.shot img{border-radius:12px;border:1px solid var(--line);background:var(--surface);width:100%}.shot figcaption{margin-top:12px;font-size:14px;color:var(--ink-soft)}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:40px}.era{padding-right:36px}.era+.era{padding-left:36px;border-left:1px solid var(--line)}.era .yr{font-family:var(--mono);font-weight:500;font-size:13px;letter-spacing:.1em;color:var(--accent-deep);margin-bottom:10px}.era p{margin:0;color:var(--ink-soft)}.faq{margin-top:36px;border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--hairline)}.faq summary{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:20px 0;font-weight:600;font-size:15.5px;line-height:1.35;cursor:pointer;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:hover{color:var(--accent-press)}.faq summary:after{content:"";flex:none;width:11px;height:11px;margin-top:5px;background:linear-gradient(var(--accent),var(--accent)) center / 11px 1.5px no-repeat,linear-gradient(var(--accent),var(--accent)) center / 1.5px 11px no-repeat;transition:transform .18s}.faq details[open] summary:after{transform:rotate(90deg);background:linear-gradient(var(--accent),var(--accent)) center / 11px 1.5px no-repeat}@media(prefers-reduced-motion:reduce){.faq summary:after{transition:none}}.faq .answer{margin:0;padding:0 44px 22px 0;color:var(--ink-soft);max-width:76ch}.faq-more{margin-top:24px;font-weight:500}.band.cta{text-align:center}.band.cta h2{margin-top:0}.band.cta .lede{margin:20px auto 0}.band.cta .btn-row{justify-content:center}.band.cta .btn-note{margin-inline:auto}.lists-table .name a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px}.lists-table .name a:hover{color:var(--accent-press);text-decoration-color:currentColor}.list-byline{margin-top:14px;font-family:var(--mono);font-size:12.5px;color:var(--ink-dim)}.list-downloads{margin-top:24px}.list-head.has-pic{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:56px;align-items:center}.list-pic{margin:0}.list-pic img{width:100%;aspect-ratio:3 / 2;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.pairs-table{width:100%;border-collapse:collapse;text-align:left}.pairs-table th{font-family:var(--mono);font-weight:500;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:0 16px 12px 0;border-bottom:1px solid var(--line);white-space:nowrap}.pairs-table td{padding:12px 16px 12px 0;border-bottom:1px solid var(--hairline);vertical-align:baseline;color:var(--ink-soft)}.pairs-table tr:last-child td{border-bottom:0}.pairs-table .word{font-weight:600;color:var(--ink)}.pairs-table .pron{font-family:var(--mono);font-size:13.5px;white-space:nowrap}.site-foot{border-top:1px solid var(--hairline);padding:40px 0;font-size:14px}.site-foot>.wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;flex-wrap:wrap}.site-foot p{margin:0;color:var(--ink-soft)}.site-foot p+p{margin-top:6px}.foot-links{display:flex;gap:24px;flex-wrap:wrap}.foot-links a{color:var(--ink-muted);text-decoration:none}.foot-links a:hover{color:var(--accent-press)}.doc{padding:56px 0 80px}.doc .inner{max-width:74ch}.doc h1{max-width:none;font-size:46px}.doc h2{font-size:24px;letter-spacing:-.02em;margin:44px 0 12px;scroll-margin-top:90px}.doc p,.doc li{color:var(--ink-soft)}.doc ul{padding-left:20px}.doc li{margin-bottom:6px}.doc .updated{font-size:13.5px;color:var(--ink-dim)}.back-link{display:inline-block;margin-bottom:24px;font-weight:500;font-size:14px;color:var(--ink-muted);text-decoration:none}.back-link:hover{color:var(--accent-press)}.callout{margin:28px 0 0;padding:24px 28px;background:var(--accent-tint);border:1px solid rgba(47,123,246,.18);border-radius:14px}.callout p{color:var(--ink)}.toc{margin:32px 0 0;padding:24px 28px;background:var(--surface);border:1px solid var(--hairline);border-radius:14px}.toc h2{margin:0 0 12px;font-size:15.5px}.toc ol{margin:0;padding-left:20px;columns:2;column-gap:32px;font-size:14.5px}.toc li{margin-bottom:6px;break-inside:avoid}.notfound{padding:120px 0 140px;text-align:center}.notfound h1{max-width:none;margin-top:16px}@media(max-width:1040px){h1{font-size:52px}h2{font-size:34px}}@media(max-width:900px){:root{--pad: 28px}.hero>.wrap{grid-template-columns:1fr;gap:40px;padding-block:32px 44px}h1{font-size:44px;max-width:18ch}.hero-panel{padding:44px 24px}.premise .cols,.timeline{grid-template-columns:1fr;gap:28px}.premise .col,.premise .col+.col,.era,.era+.era{padding:0;border-left:0}.premise .col+.col,.era+.era{padding-top:28px;border-top:1px solid var(--line)}.who,.feature,.feature:nth-child(2n){grid-template-columns:1fr}.features{gap:48px}.feature{gap:20px}.feature:nth-child(2n) .card{order:0}.band{padding:56px 0}.toc ol{columns:1}.list-head.has-pic{grid-template-columns:1fr;gap:32px}.site-foot>.wrap{flex-direction:column}}@media(max-width:720px){.site-nav{gap:18px;font-size:13px}.site-nav .opt-sm{display:none}h1{font-size:36px}h2{font-size:28px}.lede{font-size:17px}.pair .cat{flex-basis:100%}.pairs-table th,.pairs-table td{padding-right:10px}.pairs-table .pron{white-space:normal;font-size:12.5px}.doc h1{font-size:34px}.lists-table thead{display:none}.lists-table,.lists-table tbody,.lists-table tr,.lists-table td{display:block;width:100%}.lists-table tr{padding:18px 0;border-bottom:1px solid var(--hairline)}.lists-table td{padding:0;border:0}.lists-table .name{margin-bottom:4px;white-space:normal}.lists-table .author{white-space:normal}.lists-table .author:before,.lists-table .count:before,.lists-table .date:before{content:attr(data-label);margin-right:8px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}.lists-table .what{min-width:0;margin-top:6px}.lists-table .get{text-align:left;margin-top:12px}.lists-table .extra{background:#2f7bf60a;border-radius:10px;padding-inline:14px}.lists-table .extra td{background:none}}@media(max-width:520px){.btn{width:100%;justify-content:center}.desk{aspect-ratio:1 / 1}.hero-panel{padding-bottom:60px}.compare{min-width:0;font-size:13.5px}.compare th,.compare td{padding:12px 8px}.compare thead th{font-size:10px;letter-spacing:.04em}}
