:root{--bg:#fff;--panel:#fafbfa;--text:#182822;--muted:#68766e;--line:#e5ebe7;--green:#008c56;--bright:#00dc82;--code:#111e19;--code-text:#ddf4e6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.75 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}body.dark{--bg:#101713;--panel:#151f19;--text:#e0eee5;--muted:#9cab9f;--line:#2b3930;--green:#00dc82}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}button{cursor:pointer}header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 32px;position:fixed;inset:0 0 auto;background:var(--bg);z-index:20}.brand{color:var(--text);font-size:24px;font-weight:750;letter-spacing:-1px;display:flex;align-items:center;gap:0}.brand small{font-size:10px;letter-spacing:1px;color:var(--muted);margin-left:15px;border:1px solid var(--line);padding:2px 6px;border-radius:4px}.green{color:var(--green)}.mark{background:var(--bright);color:#073a24;border-radius:9px;width:34px;height:34px;line-height:32px;text-align:center;margin-right:10px;font-size:25px}.mark span{font-size:15px}header nav{display:flex;gap:24px;margin-left:24px;font-size:13px}header nav a,.github{color:var(--muted)}#search-open{margin-left:auto;background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:7px;padding:7px 12px;font-size:12px;display:flex;gap:12px;align-items:center}kbd{border:1px solid var(--line);border-radius:4px;padding:0 5px;font-size:10px}#theme,#mobile{background:none;border:none;color:var(--muted);font-size:22px}.github{font-size:13px}#sidebar{position:fixed;top:76px;bottom:0;left:0;width:260px;padding:30px 24px;overflow-y:auto;border-right:1px solid var(--line);background:var(--panel)}.side-top{font-size:10px;letter-spacing:1.3px;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:22px}.side-top span{letter-spacing:0;color:var(--green)}#sidebar a{display:block;color:var(--muted);font-size:12px;padding:5px 11px;border-radius:5px}#sidebar a.active{background:#00dc8214;color:var(--green);font-weight:600;border-left:2px solid var(--green)}#sidebar details{margin-top:16px}summary{cursor:pointer;font-weight:650;font-size:12px;margin:8px 0;list-style:none}summary:after{content:'⌄';float:right;color:var(--muted)}.side-foot{margin-top:35px;border-top:1px solid var(--line);padding-top:18px;font-size:11px;color:var(--muted)}main{margin:76px 215px 0 260px;padding:48px 64px 70px;max-width:1180px}#toc{position:fixed;right:28px;top:122px;width:165px;font-size:11px;border-left:1px solid var(--line);padding-left:20px;max-height:75vh;overflow:auto}#toc strong{font-size:10px;letter-spacing:1px}#toc a{display:block;color:var(--muted);margin-top:10px;line-height:1.6}h1{font-size:38px;letter-spacing:-1.5px;line-height:1.2;margin:15px 0 25px}h2{font-size:24px;letter-spacing:-.6px;margin-top:42px;border-top:1px solid var(--line);padding-top:28px;scroll-margin-top:100px}h3{scroll-margin-top:100px}p{color:var(--muted)}code{font:13px/1.7 'SFMono-Regular',Consolas,monospace;background:var(--panel);padding:2px 5px;border-radius:4px;color:var(--green)}pre{position:relative;background:var(--code);border:1px solid #283b30;border-radius:10px;padding:42px 22px 22px;overflow:auto;color:var(--code-text);margin:20px 0}pre:before{content:attr(data-language);position:absolute;top:11px;left:20px;color:#839e8e;font-size:10px;text-transform:uppercase;letter-spacing:1px}pre code{background:none;color:inherit;padding:0;white-space:pre}pre button{position:absolute;right:12px;top:8px;border:1px solid #365340;background:#1b3023;color:#bed9c9;border-radius:5px;font-size:10px;padding:3px 9px}table{border-collapse:collapse;width:100%;font-size:13px;display:block;overflow:auto}td,th{border:1px solid var(--line);padding:11px 14px;text-align:left}th{background:var(--panel)}blockquote{border-left:3px solid var(--green);margin:20px 0;padding:3px 20px;background:var(--panel)}.eyebrow{color:var(--green);font-size:11px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase}.hero h1{font-size:clamp(42px,4.5vw,64px);letter-spacing:-3px;margin-top:22px;max-width:680px}.hero h1 span{color:var(--green)}.hero p{max-width:570px;font-size:16px;line-height:1.9}.badge{display:inline-block;font-size:10px;border:1px solid var(--line);background:var(--panel);padding:5px 10px;border-radius:20px;color:var(--muted);margin-bottom:13px}.badge b{color:var(--green)}.actions{display:flex;gap:12px;margin:28px 0 32px}.btn{display:inline-block;border:1px solid var(--line);border-radius:6px;padding:10px 18px;font-size:12px;color:var(--text);font-weight:600}.btn.primary{background:var(--bright);color:#063720;border-color:var(--bright)}.install{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 16px;display:flex;align-items:center;gap:14px;font-size:12px}.install code{color:var(--text);flex:1}.install span{color:var(--green)}.install button{border:0;background:none;color:var(--muted)}.meta{display:flex;gap:24px;color:var(--muted);font-size:10px;margin-top:12px}.meta span:before{content:'✓ ';color:var(--green)}.section-label{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:1.5px;color:var(--muted);margin:45px 0 22px}.section-label:after{content:'';height:1px;background:var(--line);flex:1}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.feature .icon{color:var(--green);font-size:23px}.feature h3{font-size:14px;margin:8px 0}.feature p{font-size:12px;line-height:1.8;margin:0}.example{border:1px solid var(--line);border-radius:10px;margin-top:34px;overflow:hidden;background:var(--panel)}.tabs{display:flex;border-bottom:1px solid var(--line);gap:24px;padding:0 20px}.tabs button{border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);padding:13px 0;font-size:12px}.tabs button.selected{color:var(--green);border-bottom-color:var(--green)}.example pre{border:0;margin:0;border-radius:0}.example-footer{font-size:11px;color:var(--muted);padding:12px 20px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.card{border:1px solid var(--line);padding:18px;border-radius:8px;color:var(--text)}.card:hover{border-color:var(--green);text-decoration:none}.card strong{font-size:13px}.card p{font-size:12px;margin:5px 0}.page-footer{border-top:1px solid var(--line);margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;font-size:12px}.doc-label{font-size:11px;color:var(--green);letter-spacing:1px;text-transform:uppercase}dialog{width:min(650px,92vw);margin-top:15vh;padding:0;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 100px #0004}dialog::backdrop{background:#07130f80;backdrop-filter:blur(4px)}.search-head{display:flex;padding:18px;border-bottom:1px solid var(--line);gap:12px}.search-head input{width:100%;background:none;border:0;outline:0;color:var(--text)}.search-head button{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:4px;font-size:11px}#results{max-height:50vh;overflow:auto;padding:12px}#results a{display:block;padding:12px;border-radius:6px;color:var(--text)}#results a:hover{background:var(--panel);text-decoration:none}#results small{display:block;color:var(--muted);font-size:11px}.search-foot{padding:12px 20px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;background:var(--text);color:var(--bg);padding:8px 20px;border-radius:6px;display:none;font-size:12px}.skip{position:fixed;left:10px;top:-100px;z-index:50;background:var(--bg);padding:10px}.skip:focus{top:10px}#mobile{display:none}footer{font-size:11px;color:var(--muted);margin-top:45px} @media(min-width:1600px){main{margin-left:auto;margin-right:auto;width:1000px}}@media(max-width:1200px){#toc{display:none}main{margin-right:0;padding:40px}header nav{display:none}}@media(max-width:760px){header{padding:0 16px;height:64px;gap:12px}.brand{font-size:20px}.brand small,.github,#search-open span,#search-open kbd{display:none}#mobile{display:block}#sidebar{top:64px;transform:translateX(-100%);z-index:15;width:270px}body.menu #sidebar{transform:none}main{margin:64px 0 0;padding:30px 22px}.hero h1{font-size:45px;letter-spacing:-2px}.features{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.meta{gap:12px;flex-wrap:wrap}h1{font-size:32px}.actions{flex-wrap:wrap}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
/* Nuxt-inspired emerald and slate theme, implemented in plain CSS. */
:root{--bg:#fff;--panel:#f8fafc;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--green:#00864f;--bright:#00dc82;--code:#0f172a;--code-text:#dbeafe}body.dark{--bg:#0b1120;--panel:#10192b;--text:#f1f5f9;--muted:#94a3b8;--line:#243047;--green:#00dc82;--code:#080e1a}header{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px)}.hero{position:relative;isolation:isolate;padding-top:12px}.hero:before{content:'';position:absolute;inset:-35px -45px -20px;z-index:-1;background:radial-gradient(ellipse at 78% 14%,#00dc821b,transparent 60%);pointer-events:none}.hero:after{content:'';position:absolute;width:220px;height:200px;right:-15px;top:0;z-index:-1;background-image:linear-gradient(#00dc8210 1px,transparent 1px),linear-gradient(90deg,#00dc8210 1px,transparent 1px);background-size:22px 22px;mask-image:radial-gradient(ellipse,black,transparent 70%);pointer-events:none}.hero h1 span{background:linear-gradient(100deg,var(--green),#0ba78c);background-clip:text;-webkit-background-clip:text;color:transparent}.feature{border:1px solid var(--line);border-radius:12px;padding:20px;background:color-mix(in srgb,var(--panel) 55%,var(--bg))}.feature .icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;border:1px solid #00dc8233;background:#00dc8210}.feature h3{margin:14px 0 8px}.card{border-radius:10px;position:relative;background:var(--bg)}.card:hover{box-shadow:0 8px 26px #00dc820c}.course-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:36px;padding:26px;border:1px solid #00dc8250;border-radius:12px;background:linear-gradient(120deg,#00dc8212,transparent 85%)}.course-banner h3{margin:6px 0;font-size:23px;letter-spacing:-.7px}.course-banner p{margin:0;font-size:12px}.course-banner .btn{white-space:nowrap}.benchmark-link{margin-top:25px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;padding:18px}.benchmark-link a{font-size:13px;font-weight:650}.benchmark-link span{font-size:12px;color:var(--muted)}.lesson-intro{font-size:10px;letter-spacing:1.4px;border:1px solid #00dc8235;background:#00dc820b;border-radius:5px;padding:8px 12px;color:var(--green);display:inline-block;margin:14px 0 0}.heading-link{margin-left:9px;color:var(--muted);font-size:.7em;opacity:0}h2:hover .heading-link,h3:hover .heading-link,.heading-link:focus-visible{opacity:1}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:4px}pre{border-color:var(--line)}pre button{background:#1e293b;border-color:#334155;color:#cbd5e1}th{color:var(--text)}#sidebar a:hover{background:#00dc820a;text-decoration:none}.brand:hover{text-decoration:none}#sidebar details:has(a.active) summary{color:var(--green)}
@media(prefers-reduced-motion:no-preference){body,header,#sidebar{transition:background-color .25s,color .25s}.card,.btn,.feature,#sidebar a{transition:transform .2s,box-shadow .2s,border-color .2s,background .2s}.card:hover,.feature:hover{transform:translateY(-3px)}.btn:hover{transform:translateY(-2px);text-decoration:none;box-shadow:0 6px 20px #00dc8220}.hero .badge,.hero h1,.hero p,.hero .actions,.hero .install{animation:enter .6s both}.hero h1{animation-delay:.06s}.hero p{animation-delay:.12s}.hero .actions{animation-delay:.18s}.hero .install{animation-delay:.24s}.hero:before{animation:glow 8s ease-in-out infinite alternate}main>h1{animation:enter .3s both}.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s var(--delay,0ms),transform .55s var(--delay,0ms)}.reveal.visible{opacity:1;transform:translateY(0)}dialog[open]{animation:enter .2s both}.badge b{animation:pulse 3s infinite}#sidebar{transition:transform .25s} @keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{from{opacity:.55}to{opacity:1}}@keyframes pulse{50%{opacity:.45}}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}@media(max-width:760px){.course-banner{align-items:flex-start;flex-direction:column;padding:20px}.hero:before{inset:-15px}.features{gap:12px}.hero:after{right:0;width:150px}}
.repo-logo{width:43px;height:43px;object-fit:contain;margin-right:10px;border-radius:8px;background:#fff}.hero-brand{display:flex;align-items:center;gap:24px;margin:18px 0}.hero-brand img{width:116px;height:116px;object-fit:contain;border-radius:14px;background:#fff;box-shadow:0 4px 20px #0f172a09}.hero-brand h1{font-size:clamp(46px,5.7vw,76px);letter-spacing:-3px;margin:0;line-height:1.1}.hero-brand .hero-tagline{font-size:14px;font-style:italic;margin:9px 0 0}#pypi-comparison{margin-top:42px;padding:28px 24px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.bench-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.bench-heading h2{border:none;padding:0;margin:9px 0 18px;font-size:25px}.bench-heading>a{font-size:11px;white-space:nowrap}.bench-controls{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:4px;width:fit-content}.bench-controls button{border:none;background:none;border-radius:5px;color:var(--muted);font-size:11px;padding:6px 10px}.bench-controls button.selected{background:var(--bg);color:var(--green);box-shadow:0 1px 4px #0001}.bench-description{font-size:11px;margin:17px 0 22px}.bar-chart{padding-right:68px}.chart-row{display:grid;grid-template-columns:75px 1fr;gap:12px;align-items:center;margin:10px 0}.chart-label{font-size:12px;color:var(--text);text-align:right}.chart-row:first-child .chart-label{font-weight:700}.chart-track{position:relative;height:22px;background:repeating-linear-gradient(to right,var(--line) 0,var(--line) 1px,transparent 1px,transparent 25%)}.chart-bar{height:100%;width:var(--width);background:#94a3b8;border-radius:0 3px 3px 0;transform-origin:left}.chart-bar.brand-bar{background:linear-gradient(90deg,#00dc82,#19b1b9)}.chart-value{position:absolute;top:0;margin-left:9px;font-size:11px;line-height:22px;white-space:nowrap;color:var(--text);background:color-mix(in srgb,var(--bg) 85%,transparent);border-radius:3px;padding:0 3px}.chart-axis{display:flex;justify-content:space-between;margin:5px 68px 0 87px;font-size:9px;color:var(--muted)}.bench-caption{font-size:10px;line-height:1.8;margin:24px 0 0;color:var(--muted);text-align:center}.bench-data{margin-top:20px;border-top:1px solid var(--line);padding-top:10px}.bench-data summary{color:var(--muted);font-weight:500;font-size:11px}.bench-data table{font-size:11px;margin-top:12px}.bench-data td,.bench-data th{padding:7px 9px}@media(prefers-reduced-motion:no-preference){.chart-bar{animation:grow-bar .65s cubic-bezier(.2,.7,.2,1) var(--stagger) both}.bench-controls button{transition:background .2s,color .2s}@keyframes grow-bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}}@media(max-width:760px){.hero-brand{gap:14px}.hero-brand img{width:82px;height:82px}.hero-brand h1{font-size:45px;letter-spacing:-2px}.hero-brand .hero-tagline{font-size:11px}#pypi-comparison{padding:22px 14px}.bench-heading{align-items:flex-start}.bench-heading h2{font-size:21px}.bench-heading>a{font-size:10px}.bench-controls button{font-size:10px;padding:6px 8px}.bar-chart{padding-right:55px}.chart-row{grid-template-columns:58px 1fr;gap:8px}.chart-label{font-size:10px}.chart-value{font-size:9px;margin-left:4px}.chart-axis{margin-left:66px;margin-right:55px;font-size:8px}}
.race-replay{border:1px solid var(--line);background:var(--panel);color:var(--green);border-radius:6px;padding:7px 12px;font-size:12px}.race-clock{display:flex;gap:12px;align-items:center;margin:20px 0;color:var(--muted);font-size:11px}.race-clock strong{font:600 16px Consolas,monospace;color:var(--text);font-variant-numeric:tabular-nums}.race-state{margin-left:auto;border:1px solid var(--line);padding:2px 8px;border-radius:20px;font-size:10px}.race-explanation{font-size:10px;color:var(--muted);margin:18px 0}.chart-row{grid-template-columns:75px 1fr 46px}.bar-chart{padding-right:0}.chart-bar{width:0;animation:none!important;min-width:0}.chart-value{font-variant-numeric:tabular-nums}.race-done{font-size:9px;text-align:right;color:var(--muted)}.finished .race-done{color:var(--green)}.chart-axis{margin-right:58px}main #pypi-comparison h2{margin-top:9px}.chart-track{margin-right:65px}.chart-axis{margin-right:123px}@media(max-width:760px){.chart-row{grid-template-columns:58px 1fr 35px}.chart-track{margin-right:45px}.chart-axis{margin-right:88px}.race-done{font-size:8px}.race-clock{gap:8px}.race-clock strong{font-size:14px}}
