/* Local Latin variable fonts; optional display avoids late text reflow. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: optional;
  src: url(inter-latin.woff2) format('woff2');
  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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 700;
  font-display: optional;
  src: url(jetbrains-mono-latin.woff2) format('woff2');
  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: 'Lexend';
  font-style: normal;
  font-weight: 300 600;
  font-display: optional;
  src: url(lexend-latin.woff2) format('woff2');
  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;
}
/* Static-build helpers: theme-dependent visibility and page basics */
html,body{margin:0}
body{background:#121419}
html.light body{background:#F6F3ED}
.t-dark .ico-light,.t-light .ico-dark{display:none}
[hidden]{display:none !important}

/* Keyboard navigation */
.site :focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.site .skip-link{position:fixed;top:12px;left:12px;z-index:1000;padding:12px 18px;background:var(--panel);color:var(--ink);border:2px solid var(--ink);border-radius:6px;transform:translateY(-200%)}
.site .skip-link:focus{transform:translateY(0)}
.site [role="tabpanel"]:focus-visible{outline-offset:-3px}

/* Compact copy icon floats over the snippet without a toolbar row. */
.copyable-snippet{position:relative;min-width:0;max-width:100%;flex:1 1 auto}
.copyable-snippet>pre{padding-right:52px!important}
.snippet-inline{display:inline-block;box-sizing:border-box;padding-right:44px;min-height:44px;align-content:center;white-space:normal}
.snippet-tools{position:absolute;top:2px;right:2px;z-index:2;line-height:1}
.snippet-copy{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}
.snippet-copy:hover,.snippet-copy:focus-visible{color:var(--ink);background:var(--panel2)}
.snippet-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.is-manual .snippet-status{top:100%;right:0;width:220px;height:auto;padding:8px;margin:0;clip-path:none;white-space:normal;background:var(--panel);color:var(--ink);font:13px/1.4 system-ui,sans-serif}
.snippet-fallback{position:absolute;top:44px;right:0;z-index:5;box-sizing:border-box;display:block;width:100%;min-height:120px;padding:12px;border:1px solid var(--line2);border-radius:6px;background:var(--code);color:var(--ink);font:13px/1.6 monospace;resize:vertical}

/* Navigation stays within reach while reading. */
.hdr{position:sticky!important;top:0;z-index:40;background:var(--bg);isolation:isolate}
html{scroll-padding-top:150px}
.site-search-open{display:none;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 12px;border:1px solid var(--line2);border-radius:9px;background:var(--panel);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
html[data-navigation=enhanced] .site-search-open{display:inline-flex}
.back-to-top{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:45;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--line2);border-radius:50%;background:var(--panel);color:var(--ink);box-shadow:0 3px 14px rgba(0,0,0,.18);cursor:pointer}
.site-search{box-sizing:border-box;width:min(680px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:20px;border:1px solid var(--line2);border-radius:12px;background:var(--panel);color:var(--ink);font:16px/1.5 Inter,system-ui,sans-serif;box-shadow:0 20px 80px rgba(0,0,0,.35);overscroll-behavior:contain}
.site-search::backdrop{background:rgba(0,0,0,.6)}
.search-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.search-heading h2{margin:0;font-size:20px;line-height:1.3}
.search-close{width:44px;height:44px;border:0;background:transparent;color:var(--ink);font-size:28px;cursor:pointer;flex-shrink:0}
.site-search label{display:block;color:var(--body);font-size:14px;margin-bottom:8px}
.site-search input{box-sizing:border-box;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line2);border-radius:8px;background:var(--code);color:var(--ink);font:inherit}
.search-message{font-size:14px;color:var(--body);margin:12px 0}
.search-results{display:flex;flex-direction:column;max-height:min(52dvh,500px);overflow-y:auto;overscroll-behavior:contain}
.search-results a{display:flex;flex-direction:column;gap:5px;padding:12px 6px;border-top:1px solid var(--line);text-decoration:none;overflow-wrap:anywhere;flex-shrink:0}
.search-results a:hover{background:var(--panel2)}
.search-results strong{font-size:15px;font-weight:600}
.search-results span{font-size:13px;color:var(--body)}
@media(max-width:480px){.site-search-open{padding:0 10px}.site-search-open span{display:none}.site-search-open::after{content:none}.site-search{padding:16px}.hdr .btn{padding:0 8px!important}}

/* Shared header layout for the homepage and documentation. */
.hdr .primary-menu{flex:1 1 auto;min-width:0}
.hdr .primary-menu>summary{display:none;cursor:pointer;min-height:44px;box-sizing:border-box;padding:12px 16px;font-size:14px;font-weight:600;color:var(--ink)}
.hdr .primary-menu>summary:focus-visible{outline:2px solid var(--y);outline-offset:-2px}
@media(min-width:1200px){
  .hdr>div{flex-wrap:nowrap!important;gap:14px!important}
  .hdr .home,.hdr .toggle,.hdr .btn,.hdr .site-search-open{flex-shrink:0}
  .hdr .primary-menu .nav{flex-wrap:nowrap!important;justify-content:center}
  .hdr .primary-menu .nav a{white-space:nowrap;padding:12px 8px}
}
@media(max-width:1199px){
  .hdr>div{padding:10px 16px!important;gap:8px!important}
  .hdr .home{margin-right:auto}
  .hdr .primary-menu{order:2;flex:1 1 100%;border:1px solid var(--line2);border-radius:8px;background:var(--panel)}
  .hdr .primary-menu>summary{display:list-item;list-style-position:inside}
  .hdr .primary-menu .nav{flex-direction:column;padding:0 4px 4px}
}

/* Picture sources select an explicit final frame when motion is reduced. */
picture.logo-motion{display:contents}

/* Unified compact navigation: one header button, grouped native disclosures. */
.mobile-menu-open{display:none;align-items:center;justify-content:center;min-height:44px;padding:0 12px;border:1px solid var(--line2);border-radius:9px;background:var(--panel);color:var(--ink);font:600 14px Inter,system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.mobile-navigation{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;width:min(390px,calc(100% - 24px));max-width:none;height:100dvh;max-height:100dvh;padding:20px 20px max(24px,env(safe-area-inset-bottom));border:0;border-left:1px solid var(--line2);background:var(--bg);color:var(--ink);overflow-y:auto;overscroll-behavior:contain;font:15px/1.5 Inter,system-ui,sans-serif}
.mobile-navigation::backdrop{background:rgba(0,0,0,.6)}
.mobile-navigation-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.mobile-navigation-heading h2{margin:0;font-size:22px;line-height:1.3}
.mobile-navigation-close{flex-shrink:0;width:44px;height:44px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);color:var(--ink);font-size:28px;cursor:pointer}
.mobile-navigation-group{border-bottom:1px solid var(--line)}
.mobile-navigation-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;min-height:56px;font-weight:600;cursor:pointer}
.mobile-navigation-group>summary::-webkit-details-marker{display:none}
.mobile-navigation-group>summary::after{content:'+';font-size:24px;line-height:1;color:var(--muted)}
.mobile-navigation-group[open]>summary::after{content:'−'}
.mobile-navigation-group>div{padding-bottom:12px}
.mobile-navigation-group a{box-sizing:border-box;display:flex;align-items:center;min-height:44px;padding:10px 12px;border-radius:7px;text-decoration:none;color:var(--body);line-height:1.45}
.mobile-navigation-group a:hover{background:var(--panel2);color:var(--ink)}
.mobile-navigation-group a[aria-current=page]{background:var(--panel2);color:var(--ink);font-weight:600;box-shadow:inset 3px 0 var(--y)}
.mobile-navigation-utilities{display:flex;flex-wrap:wrap;gap:12px;padding-top:24px}
.mobile-navigation .mobile-contribute{display:block;flex:1 1 100%;min-height:44px;align-content:center;color:var(--body)}
.mobile-navigation :focus-visible{outline:2px solid var(--y);outline-offset:2px}
@media(max-width:1199px){
  html[data-navigation=enhanced] .hdr>div>.toggle,html[data-navigation=enhanced] .hdr>div>a.btn{display:none!important}
  html[data-navigation=enhanced] .hdr>div{flex-wrap:nowrap!important}
  html[data-navigation=enhanced] .hdr .primary-menu,html[data-navigation=enhanced] .dl-side{display:none}
  html[data-navigation=enhanced] .mobile-menu-open{display:inline-flex}
  html[data-navigation=enhanced] .site-search-open{flex-shrink:0;width:44px;padding:0}
  html[data-navigation=enhanced] .site-search-open span{display:none}
  html[data-navigation=enhanced] .hdr .home{min-width:0;flex-shrink:0}
  html[data-navigation=enhanced] .doc{max-width:100%}
}

/* Short, steady navigation motion with no spring or overshoot. */
.mobile-navigation-group{box-sizing:border-box}
@keyframes navigation-backdrop-in{from{background:rgba(0,0,0,0)}to{background:rgba(0,0,0,.6)}}
@keyframes navigation-backdrop-out{from{background:rgba(0,0,0,.6)}to{background:rgba(0,0,0,0)}}
@media(prefers-reduced-motion:no-preference){
  .mobile-navigation[open]::backdrop{animation:navigation-backdrop-in 220ms ease-out both}
  .mobile-navigation[open].is-closing::backdrop{animation:navigation-backdrop-out 180ms ease-in both}
}

/* Compact homepage release notes, with a usable static GitHub fallback. */
.wrap.release-section{margin-top:24px}
.release-card{display:flex;flex-wrap:wrap;align-items:center;gap:24px 40px;padding:24px 28px;border-radius:12px}
.release-copy{flex:1 1 420px;min-width:0}
.release-eyebrow{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:12px;color:var(--y);font:600 11px/1.5 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase}
.release-status{color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none}
.release-card h2{margin:0 0 10px;color:var(--ink);font:500 24px/1.3 Lexend,system-ui,sans-serif;overflow-wrap:anywhere}
.release-card p{margin:0;color:var(--body);font-size:15px;line-height:1.7;overflow-wrap:anywhere}
.release-links{display:flex;flex:0 1 220px;flex-direction:column;align-items:flex-start;gap:12px;font-size:14px}
.release-links time{font-size:12px;color:var(--muted)}
.release-links a{min-height:44px;align-content:center;color:var(--body);text-underline-offset:4px}
.release-links .release-primary{color:var(--y);font-weight:600}
@media(max-width:767px){.release-card{padding:22px 20px;gap:16px}.release-links{flex-basis:100%;gap:4px}}

/* A shared rhythm for homepage sections and the introductory setup group. */
.setup-note{margin:16px 0 0;color:var(--body);font-size:14px;line-height:1.7}
.home-section{padding-top:64px}
.home-section.overview-section{padding-top:32px}
.home-section>.seam{margin-bottom:20px}
@media(max-width:767px){.home-section{padding-top:48px}.home-section.overview-section{padding-top:16px}}

/* Publisher and creator credit, shared across all public pages. */
.footer-credit{position:relative;z-index:1;border-top:1px solid var(--line);background:var(--panel)}
.footer-credit-inner{box-sizing:border-box;max-width:1280px;margin:0 auto;padding:18px 32px 24px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;color:var(--body);font:13px/1.6 Inter,system-ui,sans-serif}
.footer-credit a{color:var(--ink);text-decoration:none;text-underline-offset:4px}
.footer-credit a:hover{text-decoration:underline}
.footer-credit a:focus-visible{outline:2px solid var(--y);outline-offset:4px}
@media(max-width:480px){.footer-credit-inner{padding:18px 20px 24px}}

/* Reserve a compact excerpt; complete release notes remain linked on GitHub. */
.release-copy{contain:inline-size}
.release-card h2{height:1.3em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.release-card [data-release-summary]{height:11.9em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden}
.release-links time{min-height:18px}
.release-links time[hidden]{display:block!important;visibility:hidden}
@media(min-width:900px){.release-card [data-release-summary]{height:5.1em;-webkit-line-clamp:3}}
