:root{--paper:#f6f8f6;--white:#fff;--ink:#203c37;--muted:#5d716b;--line:#d6e0da;--teal:#236658;--pale:#e6eee9;--editor:#202b2f;--selection:#405963;--aqua:#9dd6ca;--gold:#e9cc88;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:"Avenir Next",Avenir,"Segoe UI",sans-serif;--serif:"Iowan Old Style","Palatino Linotype",Palatino,serif}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:82px}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--sans)}a{color:var(--teal);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--link-hover)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}a,button,input{touch-action:manipulation}:focus-visible{outline:3px solid var(--teal);outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:white;padding:12px}.skip-link:focus{top:12px}
.sidebar{position:fixed;inset:0 auto 0 0;width:244px;border-right:1px solid var(--line);background:var(--rail);padding:35px 27px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-size:calc(24px * var(--font-scale,1));font-weight:650;letter-spacing:-.8px}.brand svg{width:25px;height:36px;stroke:var(--teal);stroke-width:2.3;fill:none;stroke-linecap:round;stroke-linejoin:round}.brand-suffix{font-weight:400;color:var(--muted)}.nav-caption{font-size:0.75rem;color:var(--muted);margin:16px 0 36px}.sidebar nav{display:grid;gap:3px}.sidebar nav a{font-size:0.875rem;text-decoration:none;color:var(--soft-ink);padding:9px 12px;border-left:2px solid transparent;margin-left:-12px}.sidebar nav a:hover{background:var(--hover);color:var(--ink)}.sidebar nav a.active{color:var(--teal);border-left-color:var(--teal);background:var(--active);font-weight:600}.rail-bottom{margin-top:auto;display:grid;gap:9px;font-size:0.75rem;padding-top:30px}.rail-bottom a{color:var(--muted);text-decoration:none}.rail-bottom p{font-family:var(--serif);font-style:italic;margin:13px 0 0;color:var(--muted)}.version{font:0.75rem var(--mono);width:fit-content;background:var(--active);padding:5px 8px;border-radius:3px;color:var(--teal)}.page{margin-left:244px}.topbar{height:68px;background:var(--paper);border-bottom:1px solid var(--line);padding:0 48px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;font-size:0.75rem}.topbar a{text-decoration:none;color:var(--muted)}.preview-note{display:flex;gap:8px;align-items:center;color:var(--muted)}.status-dot{height:6px;width:6px;border-radius:50%;background:#6e8f7d}.menu-button{display:none}.home,.article{max-width:1250px;margin:auto;padding:0 48px}.intro{padding:55px 0 35px}.intro-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.section-number{font-size:0.75rem;color:var(--muted);margin:0}.text-link{font-size:0.8125rem}.intro h1{font-family:var(--serif);font-size:clamp(calc(40px * var(--font-scale,1)),calc(4.6vw * var(--font-scale,1)),calc(67px * var(--font-scale,1)));font-weight:500;line-height:1.08;letter-spacing:-2px;margin:0 0 25px}.intro h1 span{color:var(--teal)}.lead{font-size:1.125rem;line-height:1.6;max-width:570px;color:var(--muted);margin:0}.intro-details{display:flex;flex-wrap:wrap;gap:22px;margin-top:25px;font-size:0.75rem;color:var(--muted)}.intro-details span{display:flex;align-items:center;gap:8px}.intro-details span:before{content:"";width:5px;height:5px;background:#88a695;border-radius:50%}
h2,h3,p{margin-top:0}h2{font-size:calc(28px * var(--font-scale,1));line-height:1.25;letter-spacing:-.6px;font-weight:600}h3{font-size:calc(17px * var(--font-scale,1));font-weight:600;line-height:1.4}.demo-heading{display:flex;justify-content:space-between;align-items:baseline;padding:0 0 12px}.demo-heading h2{font-size:calc(14px * var(--font-scale,1));letter-spacing:0;margin:0}.demo-heading>span{font-size:0.6875rem;color:var(--muted)}.editor-demo{color:#e0e8e8;background:var(--editor);border:1px solid #1c272a;border-radius:8px;overflow:hidden;box-shadow:0 16px 30px rgba(32,60,55,.10);font-family:var(--mono);font-size:0.75rem}.editor-tabs{height:40px;display:flex;align-items:stretch;background:#26343a;border-bottom:1px solid #34474c}.editor-tabs>span:first-child{display:flex;gap:9px;align-items:center;padding:0 18px;background:var(--editor);border-right:1px solid #34474c}.editor-tabs>span:nth-child(2){font-size:0.6875rem;color:#91a9ab;display:flex;align-items:center;padding-left:18px}.file-dot{width:6px;height:6px;background:#84b49f;border-radius:50%}.editor-label{margin-left:auto;padding:12px 18px;color:#9cb5b5;font-size:0.625rem}.editor-body{position:relative;display:grid;grid-template-columns:1fr 1.1fr;gap:22px;min-height:290px;padding:22px 22px 20px 0}.code-preview{display:flex;overflow:hidden;padding-top:5px}.code-gutter{font-size:0.6875rem;color:#71878b;text-align:right;min-width:42px;padding-right:13px;line-height:1.25rem;user-select:none}.code-preview pre{font:0.6875rem/1.25rem var(--mono);margin:0;overflow:auto;flex:1;color:#cfdddd}.code-line{display:block;white-space:pre;min-height:1.25rem;padding-left:5px}.code-line.current{background:#35484b;border-left:2px solid var(--aqua);padding-left:3px}.lua-keyword{color:#b4c9e3}.lua-string{color:#a7c8ab}.lua-comment{color:#758b89}.lua-function{color:#ddcca0}.picker-panel{align-self:center;border:1px solid #799c9a;background:#29373b;box-shadow:0 8px 25px #1721264d;border-radius:4px;overflow:hidden}.picker-title{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #40575b;color:#cbded9;font-size:0.6875rem}.small-tree{color:#b0cab8;font-size:1.125rem;line-height:1}.picker-title>span:last-child{margin-left:auto;color:#8ca6a6;font-size:0.5625rem}.filter-wrap{display:flex;gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid #40575b;color:var(--aqua)}.filter-wrap input{width:100%;min-width:0;border:0;background:transparent;color:#e4eeea;font:0.6875rem var(--mono);outline:none}.filter-wrap input::placeholder{color:#a0b2b3}.filter-wrap:focus-within{box-shadow:inset 3px 0 #a3d4c3}.symbol-list{min-height:162px;padding:5px 0}.symbol-row{width:100%;display:flex;gap:6px;align-items:center;border:0;background:none;color:#dce8e6;text-align:left;font:0.6875rem/1.5rem var(--mono);padding:0 12px}.symbol-row.selected{background:var(--selection)}.symbol-row:hover{background:#3b5058}.symbol-row .tree{color:#8a9e9e;white-space:pre}.symbol-kind{color:#b9d8a7}.symbol-row .label{color:var(--gold);background:#293438;border-radius:2px;min-width:13px;text-align:center;font-weight:bold}.symbol-row .line-number{color:#9db3b4;margin-left:auto;font-size:0.5625rem}.symbol-row .current-arrow{color:var(--aqua);width:9px}.picker-footer{display:flex;justify-content:space-between;gap:12px;padding:5px 10px;border-top:1px solid #40575b;font-size:0.5625rem;color:#c0d0cf}.picker-footer kbd{font:0.5625rem var(--mono);border:0;background:none;color:#e9cca2;padding:0 2px}.editor-status{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:#2b3b3e;color:#b1c5bf;font-size:0.625rem}.status-branch{margin-left:18px;color:#8cac9e}.demo-instructions{display:flex;gap:25px;align-items:center;justify-content:space-between;margin:20px 0 12px}.demo-instructions p{font-size:0.75rem;color:var(--muted);line-height:1.7;margin:0;max-width:480px}.demo-credit{font-size:0.6875rem;color:var(--muted);margin:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--teal);background:var(--teal);color:var(--button-ink);text-decoration:none;padding:11px 19px;border-radius:4px;font-size:0.75rem;font-weight:600;white-space:nowrap}.button:hover{background:var(--button-hover);color:var(--button-ink)}.button.secondary{background:transparent;color:var(--teal);border-color:var(--line);padding:9px 13px}.button.secondary:hover{background:var(--pale)}kbd{font:0.6875rem var(--mono);display:inline-block;padding:2px 5px;background:var(--surface);border:1px solid var(--line);border-bottom-width:2px;border-radius:3px;color:var(--code-ink);line-height:1.4}code{font-family:var(--mono);font-size:.83em;color:var(--code-ink);background:var(--surface);padding:2px 4px;border-radius:3px}
.doc-section{padding-top:56px;margin-top:56px;border-top:1px solid var(--line)}.section-head{display:flex;gap:22px;align-items:baseline;margin-bottom:26px}.section-index{font-family:var(--serif);color:#769c86;font-size:1.375rem;line-height:1}.section-head h2{margin:0 0 7px}.section-head p{font-size:0.875rem;color:var(--muted);margin:0}.install-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(200px,1fr);gap:35px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:20px;margin-bottom:0;background:var(--surface);padding:0 15px}.tabs button{border:0;border-bottom:2px solid transparent;padding:12px 0;background:none;color:var(--muted);font-size:0.75rem;font-weight:600}.tabs button[aria-selected=true]{border-color:var(--teal);color:var(--ink)}.tabs button span{margin-left:6px;font-weight:400;color:var(--muted);font-size:0.625rem}.code-block{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:4px;overflow:hidden}.install-code .code-block{border-top:0;border-radius:0 0 4px 4px}.code-block pre{font:0.6875rem/1.9 var(--mono);overflow:auto;padding:36px 22px 20px;margin:0;tab-size:2;color:var(--code-ink)}.code-block code{background:none;padding:0;font:inherit;color:inherit}.copy-button{position:absolute;top:8px;right:9px;border:1px solid var(--line);border-radius:3px;color:var(--soft-ink);background:var(--paper);padding:4px 8px;font-size:0.625rem;z-index:1}.copy-button:hover{background:var(--hover)}.requirements h3{font-size:calc(14px * var(--font-scale,1));margin-top:7px}.requirements dl{margin:0}.requirements dt{font-size:0.75rem;font-weight:600;margin-top:16px}.requirements dd{font-size:0.75rem;color:var(--muted);margin:3px 0 0;line-height:1.6}.requirements>a{font-size:0.6875rem;display:inline-block;margin-top:22px}.section-note{font-size:0.75rem;color:var(--muted);margin-top:22px;margin-bottom:0}.feature-browser{display:grid;grid-template-columns:280px minmax(0,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.feature-options{border-right:1px solid var(--line)}.feature-options button{border:0;border-bottom:1px solid var(--line);background:none;display:grid;grid-template-columns:26px 1fr;text-align:left;width:100%;padding:15px 12px;color:var(--ink)}.feature-options button:last-child{border-bottom:0}.feature-options button>span{font:0.6875rem var(--mono);color:#89a391;grid-row:1 / 3;margin-top:4px}.feature-options strong{font-size:0.75rem;font-weight:600}.feature-options small{font-size:0.625rem;color:var(--muted);margin-top:2px}.feature-options button[aria-selected=true]{background:var(--active);box-shadow:inset 3px 0 #34745b}.feature-options button:hover{background:var(--surface)}.feature-panel{padding:28px}.feature-illustration{background:var(--editor);color:#cddeda;font:0.75rem/2 var(--mono);padding:22px;border-radius:5px;min-height:215px;display:flex;flex-direction:column;justify-content:center}.illustration-title{font-size:0.625rem;color:#abc2b9;padding-bottom:12px;border-bottom:1px solid #40555b;margin-bottom:12px;display:flex;justify-content:space-between}.illustration-row{white-space:pre-wrap;display:flex;align-items:center;gap:10px;padding:0 10px}.illustration-row.selected{background:var(--selection)}.illustration-row>span{color:var(--gold);width:14px;font-size:0.6875rem}.feature-media video,.feature-media img,#feature-media video,#feature-media img{display:block;width:100%;height:auto;max-height:360px;object-fit:contain;background:var(--editor);border-radius:4px}#feature-media figure{margin:0}#feature-media figcaption{font-size:0.6875rem;color:var(--muted);margin-top:8px}.feature-description h3{margin:24px 0 8px;font-size:calc(19px * var(--font-scale,1))}.feature-description p{font-size:0.8125rem;color:var(--muted);line-height:1.75;margin-bottom:16px}.feature-description>code{display:block;max-width:100%;width:fit-content;font-size:0.6875rem;white-space:pre-wrap;margin-bottom:20px}.feature-description>a{font-size:0.75rem}.key-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px}table{width:100%;border-collapse:collapse;text-align:left}caption{text-align:left;font-size:0.8125rem;font-weight:600;margin-bottom:12px}td,th{padding:11px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:0.75rem}td:first-child{width:51%;padding-right:10px}td:last-child{color:var(--muted)}.config-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:42px}.config-layout p{font-size:0.875rem;color:var(--muted)}.guide-links{display:grid;gap:0;margin-top:26px}.guide-links>a{display:block;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none}.guide-links strong{display:block;font-size:0.8125rem;font-weight:600}.guide-links span{font-size:0.6875rem;color:var(--muted)}.theme-note{display:flex;align-items:center;gap:27px;background:var(--surface);padding:24px;margin-top:32px;border-left:2px solid #5b8971}.theme-note h3{font-size:calc(14px * var(--font-scale,1));margin-bottom:5px}.theme-note p{font-size:0.75rem;color:var(--muted);margin-bottom:9px}.theme-note a{font-size:0.6875rem}.contrast-swatch{width:80px;flex-shrink:0;display:grid;gap:3px;background:var(--editor);padding:12px 5px;border-radius:4px}.contrast-swatch i{height:11px;display:block;border-radius:1px;background:#2c383c}.contrast-swatch i:nth-child(2){background:var(--selection)}.closing{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:60px 0;padding:32px 0;border-top:1px solid var(--line)}.closing h2{font:calc(30px * var(--font-scale,1))/1.2 var(--serif);margin:0 0 7px}.closing p{font-size:0.75rem;color:var(--muted);margin:0}.site-footer{border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:22px;padding:22px 48px;font-size:0.625rem;color:var(--muted)}.site-footer a{margin-left:auto}.article{padding-top:42px;padding-bottom:55px;max-width:1100px}.article-header{margin-bottom:17px}.article h1{font:calc(48px * var(--font-scale,1))/1.15 var(--serif);letter-spacing:-1px;margin:0 0 22px}.article h2{padding-top:36px;margin-top:42px;border-top:1px solid var(--line)}.article h3{margin-top:28px}.article p,.article li{font-size:0.875rem;line-height:1.8;max-width:820px}.article table{display:block;overflow:auto;margin:22px 0}.article td,.article th{padding:10px 14px}.article th{font-weight:600;background:var(--surface)}.article td:first-child{width:auto;white-space:nowrap}.article .code-block{margin:22px 0}.article .code-block pre{font-size:0.75rem}.article a{overflow-wrap:anywhere}.article ul{padding-left:22px}.article blockquote{border-left:2px solid var(--teal);margin-left:0;padding-left:20px}.no-results{color:#aec1bd;font-size:0.6875rem;text-align:center;padding:32px 12px}
@media(min-width:1500px){.intro{padding-top:70px}.editor-body{min-height:330px}.editor-demo{font-size:0.8125rem}.code-preview pre{font-size:0.75rem}.symbol-row{font-size:0.75rem;line-height:27px}}
@media(max-width:1160px){.sidebar{width:215px;padding:30px 23px}.page{margin-left:215px}.home,.article{padding-left:32px;padding-right:32px}.topbar{padding-left:32px;padding-right:32px}.editor-body{grid-template-columns:.9fr 1.1fr;gap:14px;padding-right:16px}.feature-browser{grid-template-columns:235px 1fr}.feature-panel{padding:22px}.install-layout{gap:25px}.code-block pre{padding-left:17px;font-size:0.625rem}.key-columns{gap:26px}.config-layout{gap:25px}.demo-instructions{gap:16px}.demo-instructions p{font-size:0.6875rem}}
@media(max-width:960px){.sidebar{width:190px;padding:26px 19px}.brand{font-size:calc(21px * var(--font-scale,1));gap:8px}.brand svg{width:22px}.nav-caption{font-size:0.625rem}.sidebar nav a{font-size:0.75rem}.page{margin-left:190px}.home,.article{padding-left:26px;padding-right:26px}.topbar{padding-left:26px;padding-right:26px}.intro h1{font-size:calc(49px * var(--font-scale,1))}.editor-body{grid-template-columns:1fr;min-height:0;padding:22px}.code-preview{display:none}.picker-panel{max-width:440px;width:100%;margin:auto}.install-layout{grid-template-columns:1fr}.requirements{display:grid;grid-template-columns:1fr 2fr;gap:12px}.requirements>a{grid-column:2;margin-top:0}.requirements dt:first-child{margin-top:0}.feature-browser{grid-template-columns:195px 1fr}.feature-options button{padding:14px 8px;grid-template-columns:22px 1fr}.feature-options strong{font-size:0.6875rem}.feature-panel{padding:20px}.feature-illustration{padding:16px;font-size:0.6875rem}.key-columns{grid-template-columns:1fr}.config-layout{grid-template-columns:1fr}.theme-note{padding:22px}.site-footer{padding:22px 26px}.article h1{font-size:calc(39px * var(--font-scale,1))}.demo-instructions{align-items:flex-start}.demo-instructions p{max-width:300px}}
@media(max-width:700px){html{scroll-padding-top:75px}.sidebar{display:none;top:60px;width:100%;height:calc(100dvh - 60px);padding:25px;background:var(--rail)}.sidebar.open{display:flex}.sidebar .nav-caption{margin-bottom:18px}.sidebar nav a{font-size:0.9375rem;padding:10px 12px}.sidebar .rail-bottom{gap:8px;padding-top:18px}.page{margin-left:0}.topbar{height:60px;padding:0 20px}.menu-button{display:block;border:1px solid var(--line);background:var(--rail);border-radius:3px;padding:4px 8px;font-size:0.6875rem;color:var(--teal)}.topbar>a{font-size:0.6875rem}.preview-note{font-size:0.625rem}.home,.article{padding-left:20px;padding-right:20px}.intro{padding:35px 0 30px}.intro-top{margin-bottom:23px}.intro h1{font-size:calc(43px * var(--font-scale,1));letter-spacing:-1.3px}.lead{font-size:1rem}.intro-details{gap:12px 18px;font-size:0.625rem;margin-top:23px}.editor-body{padding:18px}.demo-instructions{flex-direction:column;gap:13px;margin-top:17px}.demo-instructions p{max-width:none;font-size:0.75rem}.button.secondary{padding:8px 12px}.demo-credit{font-size:0.625rem}.doc-section{margin-top:38px;padding-top:35px}.section-head{gap:15px}.section-head h2{font-size:calc(24px * var(--font-scale,1))}.section-head p{font-size:0.75rem}.install-layout{gap:24px}.code-block pre{font-size:0.625rem}.requirements{grid-template-columns:1fr}.requirements>a{grid-column:1}.requirements dl{display:grid;grid-template-columns:1fr 1.6fr;gap:10px 15px}.requirements dt,.requirements dd{margin:0}.feature-browser{display:flex;flex-direction:column}.feature-options{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);scrollbar-width:thin}.feature-options button{flex:0 0 145px;border-bottom:0;border-right:1px solid var(--line);padding:13px 12px;grid-template-columns:1fr}.feature-options button>span{display:none}.feature-options button[aria-selected=true]{box-shadow:inset 0 -2px #34745b}.feature-panel{padding:23px 0}.feature-illustration{min-height:190px}.feature-description h3{font-size:calc(19px * var(--font-scale,1))}.key-columns{gap:30px}td:first-child{width:48%}kbd{font-size:0.625rem}.theme-note{align-items:flex-start;gap:18px;padding:19px}.contrast-swatch{width:53px;margin-top:3px}.closing{margin:40px 0;align-items:flex-start;flex-direction:column;gap:20px;padding:27px 0}.closing h2{font-size:calc(28px * var(--font-scale,1))}.site-footer{padding:18px 20px;gap:12px;font-size:0.625rem}.site-footer>span:nth-child(2){display:none}.article{padding-top:32px}.article h1{font-size:calc(37px * var(--font-scale,1))}.article h2{font-size:calc(25px * var(--font-scale,1))}.article p,.article li{font-size:0.8125rem}.article table td{font-size:0.6875rem}.article table td:first-child{white-space:normal}.article .code-block pre{font-size:0.625rem}.article td,.article th{padding:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
.install-code,.requirements,.config-layout>*,.key-columns>*,.feature-panel{min-width:0}
.article p code,.article li code,.article td code{overflow-wrap:anywhere}
@media(max-width:960px){.install-layout,.config-layout,.key-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:360px){.topbar{gap:10px;padding:0 14px}.preview-note{font-size:0.5625rem;gap:5px}.topbar>a{font-size:0.5625rem}.home,.article{padding-left:16px;padding-right:16px}.requirements dl{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}.theme-note{padding:15px;gap:12px}.theme-note .contrast-swatch{width:40px}.key-columns td{font-size:0.625rem}.intro h1{font-size:calc(38px * var(--font-scale,1))}}

/* Reading preferences are shared by every page. */
:root{font-size:calc(18px * var(--font-scale,1));color-scheme:light;--rail:#edf2ee;--surface:#eaf0eb;--active:#e1eae3;--hover:#e0e9e2;--soft-ink:#52685f;--code-ink:#2c4f40;--link-hover:#123e33;--button-ink:#fff;--button-hover:#194f43}
:root[data-theme="dark"]{color-scheme:dark;--paper:#182125;--white:#202c30;--ink:#dbe6e1;--muted:#a2b7ae;--line:#35474b;--teal:#8acbb7;--pale:#293c3b;--rail:#1d292d;--surface:#223136;--active:#314745;--hover:#2b3f3e;--soft-ink:#b1c2b9;--code-ink:#bbd7c6;--link-hover:#b8e5d4;--button-ink:#152824;--button-hover:#a5d9c7}
.topbar{gap:16px}.topbar-tools{display:flex;align-items:center;gap:14px}.font-controls{display:flex;gap:1px;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:2px}.appearance-button{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:32px;height:30px;padding:0 6px;color:var(--ink);border:0;background:transparent;border-radius:3px;font:13px var(--sans);font-weight:600}.appearance-button:hover{background:var(--hover)}.appearance-button:disabled{opacity:.4}.appearance-button:disabled:hover{background:transparent}.appearance-button span{font-size:13px;color:var(--muted)}.theme-toggle{border:1px solid var(--line);height:36px;min-width:36px;background:var(--surface)}.theme-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sun-icon{display:none}:root[data-theme="dark"] .sun-icon{display:block}:root[data-theme="dark"] .moon-icon{display:none}.source-link{font-size:12px;color:var(--muted);text-decoration:none}
/* Function ranges are highlighted together, including their end line. */
.code-gutter{display:none}.code-preview pre{position:relative}.code-line{padding-left:0;min-width:max-content}.code-line:before{content:attr(data-line);display:inline-block;width:2.6rem;padding-right:.7rem;text-align:right;color:#819897;font-size:.625rem;user-select:none}.code-line.current{padding-left:0;border-left:0;box-shadow:inset 2px 0 var(--aqua);background:#354d50}.code-line.current:before{color:#b7d1c6}.code-line.current-start:before{color:#ddedcf}
@media(max-width:960px){.editor-body{position:relative;display:block;height:27rem;padding:0}.code-preview{display:flex;width:100%;height:100%;padding:14px 0}.code-preview pre{height:100%;overflow:auto;padding-bottom:18rem;scrollbar-width:thin}.picker-panel{position:absolute;left:14px;right:14px;bottom:14px;width:auto;max-width:none;margin:0;z-index:2}.symbol-list{min-height:0;padding:6px 0}.symbol-row{line-height:1.5rem}.filter-wrap{padding:10px 12px}.picker-title{padding:10px 12px}.editor-status{position:relative;z-index:3}}
@media(max-width:700px){.topbar{gap:8px;padding:0 16px}.topbar-tools{gap:9px}.source-link{font-size:10px}.editor-body{height:28rem}.picker-panel{left:10px;right:10px;bottom:12px}.code-preview{padding-top:12px}.code-preview pre{font-size:.65rem}.code-line:before{width:2.1rem;padding-right:.5rem}.preview-note{font-size:10px}.theme-note h3{color:var(--ink)}}
@media(max-width:480px){.preview-note{display:none}.topbar-tools{margin-left:auto}.source-link{font-size:10px}.font-controls{gap:2px}.appearance-button{min-width:30px}.theme-toggle{min-width:34px}}
.sidebar{overflow-y:auto}.sidebar nav{flex-shrink:0}
@media(max-width:700px){.article h1{font-size:clamp(calc(30.4px * var(--font-scale,1)),calc(7vw * var(--font-scale,1)),calc(37px * var(--font-scale,1)));overflow-wrap:anywhere}.article h2,.article h3{overflow-wrap:anywhere}}

/* Larger reading defaults; headings keep their existing dimensions. */
.sidebar nav a{font-size:.875rem}.nav-caption{font-size:.75rem}
.feature-description p,.requirements dt,.requirements dd,.section-note,.theme-note p,.demo-instructions p{font-size:.875rem}
.demo-credit,.guide-links span,.feature-options small,.requirements>a,.theme-note a,.feature-description>a,#feature-media figcaption{font-size:.75rem}
.feature-options strong,.guide-links strong,.tabs button{font-size:.8125rem}
.home td,.home th,.article td,.article th{font-size:.8125rem}.article p,.article li{font-size:.8889rem}
.code-block pre,.article .code-block pre{font-size:.7778rem;line-height:1.8}.copy-button{font-size:.7222rem}
.code-preview pre{font-size:.7222rem;line-height:1.4rem}.code-line{min-height:1.4rem}.code-line:before{font-size:.6667rem}
.symbol-row{font-size:.7222rem;line-height:1.65rem}.filter-wrap input,.picker-title{font-size:.7222rem}
.picker-title>span:last-child,.symbol-row .line-number,.picker-footer,.picker-footer kbd,.editor-status{font-size:.6111rem}
.editor-demo{font-size:.7778rem}.editor-tabs>span:nth-child(2){font-size:.7222rem}
.site-footer{font-size:.7rem}.source-link,.preview-note{font-size:12px}
@media(max-width:960px){.editor-body{height:28rem}.code-preview pre{padding-bottom:19rem}}
@media(max-width:700px){.editor-body{height:28rem}.feature-options button{flex-basis:175px}.article p,.article li{font-size:.8889rem}.code-block pre,.article .code-block pre{font-size:.7222rem}.demo-instructions p{max-width:none}.sidebar nav a{font-size:.9375rem}}
/* Generated syntax tokens, with separate colors for light and dark modes. */
:root{--syntax-keyword:#78509a;--syntax-string:#8b4f19;--syntax-function:#216854;--syntax-comment:#576959;--syntax-number:#945022;--syntax-variable:#354f69;--syntax-operator:#526459}
:root[data-theme="dark"]{--syntax-keyword:#bfbee6;--syntax-string:#c4d59e;--syntax-function:#9fd8c7;--syntax-comment:#9fac9e;--syntax-number:#e7c18c;--syntax-variable:#d7dcb8;--syntax-operator:#abbab8}
.code-block .kw,.code-block .cf{color:var(--syntax-keyword)}.code-block .st,.code-block .vs,.code-block .ch,.code-block .ss{color:var(--syntax-string)}.code-block .fu,.code-block .bu{color:var(--syntax-function)}.code-block .co,.code-block .cv,.code-block .do{color:var(--syntax-comment);font-style:italic}.code-block .dv,.code-block .fl,.code-block .bn{color:var(--syntax-number)}.code-block .va,.code-block .at,.code-block .dt{color:var(--syntax-variable)}.code-block .op,.code-block .ot{color:var(--syntax-operator)}

.source-link{display:inline-flex;align-items:center;gap:4px}
@media(max-width:360px){.source-link-text{display:none}.source-link{min-width:28px;justify-content:center}}
