.icon:where(.astro-ccg5yoga){vertical-align:-.15em;flex-shrink:0;width:1.15em;height:1.15em;display:inline-flex}.icon:where(.astro-ccg5yoga) svg{fill:currentColor;width:100%;height:100%}.language-switch:where(.astro-l4evwy7q){white-space:normal;overflow-wrap:anywhere;font-size:.875rem}.language-menu:where(.astro-l4evwy7q){min-width:0;max-width:100%;font-size:.875rem;position:relative}.header-tools .language-menu:where(.astro-l4evwy7q){position:static}.language-menu:where(.astro-l4evwy7q) summary:where(.astro-l4evwy7q){cursor:pointer;white-space:normal;overflow-wrap:anywhere}.language-menu:where(.astro-l4evwy7q) ul:where(.astro-l4evwy7q){z-index:20;border:1px solid var(--af-line);background:var(--af-paper);border-radius:8px;width:max-content;min-width:0;max-width:100%;max-height:min(20rem,50dvh);margin:8px 0 0;padding:8px 12px;list-style:none;position:absolute;top:100%;right:0;overflow:auto}.language-menu:where(.astro-l4evwy7q) li:where(.astro-l4evwy7q)+li:where(.astro-l4evwy7q){margin-top:8px}.language-menu:where(.astro-l4evwy7q) ul:where(.astro-l4evwy7q) a:where(.astro-l4evwy7q){line-height:1.25;display:block}@media (height<=500px){.header-tools .language-menu:where(.astro-l4evwy7q) ul:where(.astro-l4evwy7q){max-width:calc(100vw - 32px);max-height:25dvh;position:fixed;top:auto;bottom:16px;right:16px}}.brand-mark:where(.astro-77qc4tpx){width:29px;height:29px;color:var(--af-accent);flex-shrink:0;display:inline-flex}.brand-mark:where(.astro-77qc4tpx) svg{width:100%;height:100%}.theme-control:where(.astro-m4rhk2r6){--theme-option-size:32px;--theme-position:2;isolation:isolate;grid-template-columns:repeat(3, var(--theme-option-size));border:1px solid var(--af-line);background:var(--af-soft);border-radius:999px;flex-shrink:0;padding:4px;display:grid;position:relative}.theme-control:where(.astro-m4rhk2r6)[data-theme-choice=light]{--theme-position:0}.theme-control:where(.astro-m4rhk2r6)[data-theme-choice=dark]{--theme-position:1}.theme-control:where(.astro-m4rhk2r6):before{content:"";width:var(--theme-option-size);height:var(--theme-option-size);background:var(--af-paper);box-shadow:0 1px 4px #142d2914, inset 0 0 0 1px var(--af-line);transform:translateX(calc(var(--theme-position) * 100%));pointer-events:none;border-radius:50%;transition:transform .22s cubic-bezier(.22,1,.36,1);position:absolute;inset:4px auto auto 4px}.theme-option:where(.astro-m4rhk2r6){cursor:pointer;position:relative}.theme-option-face:where(.astro-m4rhk2r6){width:var(--theme-option-size);height:var(--theme-option-size);color:var(--af-muted);border-radius:50%;place-items:center;font-size:17px;transition:color .16s;display:grid;position:relative}.theme-option:where(.astro-m4rhk2r6):hover .theme-option-face:where(.astro-m4rhk2r6),input:where(.astro-m4rhk2r6):checked+.theme-option-face:where(.astro-m4rhk2r6){color:var(--af-accent)}input:where(.astro-m4rhk2r6):focus-visible+.theme-option-face:where(.astro-m4rhk2r6){outline:2px solid var(--af-accent);outline-offset:2px}input:where(.astro-m4rhk2r6):disabled+.theme-option-face:where(.astro-m4rhk2r6){opacity:.5;cursor:default}.theme-tooltip:where(.astro-m4rhk2r6){z-index:1;border:1px solid var(--af-line);background:var(--af-paper);color:var(--af-ink);font:12px/1.5 var(--af-font);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;border-radius:6px;padding:5px 9px;transition:opacity .12s,transform .12s,visibility .12s;position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,-3px);box-shadow:0 3px 12px #142d2910}.theme-option:where(.astro-m4rhk2r6):last-child .theme-tooltip:where(.astro-m4rhk2r6){left:auto;right:-4px;transform:translateY(-3px)}input:where(.astro-m4rhk2r6):focus-visible~.theme-tooltip:where(.astro-m4rhk2r6){opacity:1;visibility:visible;transform:translate(-50%)}.theme-option:where(.astro-m4rhk2r6):last-child input:where(.astro-m4rhk2r6):focus-visible~.theme-tooltip:where(.astro-m4rhk2r6){transform:translateY(0)}@media (hover:hover){.theme-option:where(.astro-m4rhk2r6):hover .theme-tooltip:where(.astro-m4rhk2r6){opacity:1;visibility:visible;transform:translate(-50%)}.theme-option:where(.astro-m4rhk2r6):last-child:hover .theme-tooltip:where(.astro-m4rhk2r6){transform:translateY(0)}}@media (pointer:coarse){.theme-control:where(.astro-m4rhk2r6){--theme-option-size:40px}}@media (prefers-reduced-motion:reduce){.theme-control:where(.astro-m4rhk2r6):before,.theme-option-face:where(.astro-m4rhk2r6),.theme-tooltip:where(.astro-m4rhk2r6){transition:none}}:root{--af-bg:#f8faf9;--af-paper:#fdfefd;--af-soft:#edf3f1;--af-ink:#142d29;--af-muted:#536b65;--af-line:#d9e4df;--af-accent:#116e60;--af-on-accent:#fdfefd;--af-wash:#e0f0e9;--af-font:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--af-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--af-radius:12px;color-scheme:light}:root[data-theme=dark]{--af-bg:#121b1a;--af-paper:#1b2826;--af-soft:#20312e;--af-ink:#e4eeeb;--af-muted:#a3b9b1;--af-line:#354943;--af-accent:#91d5c1;--af-on-accent:#103c31;--af-wash:#29493d;color-scheme:dark}.code-block{min-width:0}.code-block pre{margin:0;padding:24px;font-size:12.5px;line-height:1.8;background:0 0!important}.code-block code{font-size:inherit}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:#0000!important}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:28px}body{background:var(--af-bg);color:var(--af-ink);font:16px/1.65 var(--af-font);-webkit-font-smoothing:antialiased;margin:0}button,select{font:inherit}button,select,summary{cursor:pointer}button{color:inherit}a{color:var(--af-accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button:disabled{cursor:default}button,a,select,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--af-accent);outline-offset:4px}::selection{background:var(--af-wash);color:var(--af-ink)}[hidden]{display:none!important}img,svg{max-width:100%}p,h1,h2,h3{margin:0}h1,h2,h3{text-wrap:balance;font-weight:620;line-height:1.15}h1{letter-spacing:-.05em}h2{letter-spacing:-.035em;font-size:clamp(29px,3.3vw,39px)}h3{letter-spacing:-.025em;font-size:23px}code,pre{font-family:var(--af-mono)}code{font-size:.86em}.container{width:min(1120px,100% - 64px);margin-inline:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--af-paper);z-index:3;padding:8px 16px;position:absolute;top:-100px;left:20px}.skip-link:focus{top:12px}.site-header{border-bottom:1px solid var(--af-line);align-items:center;gap:36px;height:76px;display:flex}.wordmark{color:var(--af-ink);letter-spacing:-.055em;align-items:center;gap:10px;font-size:23px;font-weight:660;text-decoration:none;display:inline-flex}.desktop-nav{align-items:center;gap:28px;margin-left:auto;font-size:14px;display:flex}.desktop-nav a{color:var(--af-muted);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--af-accent)}.github-link{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.github-link .icon{width:22px;height:22px}.github-link svg{overflow:visible}.github-tail{transform-box:view-box;transform-origin:40.625% 81.25%}.header-tools{align-items:center;gap:16px;display:flex}.mobile-menu{font-size:14px;display:none}.mobile-menu summary{padding:8px 0 8px 6px;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{z-index:1;background:var(--af-paper);border:1px solid var(--af-line);border-radius:var(--af-radius);width:210px;padding:12px;position:absolute;top:67px;right:16px;box-shadow:0 12px 32px #142d2910}.mobile-menu nav a{padding:10px 12px;text-decoration:none;display:block}.mobile-menu nav .github-link{justify-content:flex-start;display:flex}.hero-actions{flex-wrap:wrap;align-items:center;gap:23px;margin-top:21px;display:flex}.button{background:var(--af-accent);color:var(--af-on-accent);white-space:nowrap;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:12px;min-height:44px;padding:11px 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{filter:brightness(1.08)}.text-link,.text-button{color:var(--af-accent);align-items:center;gap:8px;font-size:14px;font-weight:550;text-decoration:none;display:inline-flex}.text-link:hover{text-decoration:underline}.text-button{background:0 0;border:0;min-height:40px;padding:8px 0}.text-button:hover{text-underline-offset:4px;text-decoration:underline}.example-workbench{border:1px solid var(--af-line);border-radius:var(--af-radius);background:var(--af-paper);overflow:clip}.workbench-bar{border-bottom:1px solid var(--af-line);justify-content:space-between;align-items:center;gap:16px;min-height:55px;padding:0 22px;display:flex}.example-tabs{scrollbar-width:none;align-self:stretch;gap:clamp(9px,2vw,25px);min-width:0;display:flex;overflow-x:auto}.example-tabs::-webkit-scrollbar{display:none}.example-tabs button{color:var(--af-muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:15px 2px 13px;font-size:14px}.example-tabs button[aria-selected=true]{color:var(--af-accent);border-bottom-color:var(--af-accent);font-weight:600}.example-tabs button:focus-visible{outline-offset:-4px;border-radius:4px}.workbench-hint{color:var(--af-muted);font-size:12px}.example-panel{grid-template-columns:1.2fr 1fr;display:grid}.example-source{flex-direction:column;min-width:0;display:flex}.source-label{font:12px/1.5 var(--af-mono);color:var(--af-muted);justify-content:space-between;gap:16px;padding:17px 24px 0;display:flex}.source-label a{font-family:var(--af-font);text-decoration:none}.example-source .code-block{flex:1}.example-source .code-block pre{scrollbar-width:thin;height:255px;overflow:auto}.source-output{border-top:1px solid var(--af-line);align-items:center;gap:13px;padding:13px 24px;font-size:12px;display:flex}.source-output span{color:var(--af-muted)}.source-output a{font-family:var(--af-mono);text-decoration:none}.card-preview{background:var(--af-soft);border-left:1px solid var(--af-line);flex-direction:column;align-items:stretch;min-width:0;padding:20px 34px 12px;display:flex}.preview-label{color:var(--af-muted);justify-content:space-between;align-items:center;margin-bottom:17px;font-size:12px;display:flex}.flashcard{perspective:1100px;flex:1;width:100%;min-height:209px}.flashcard-inner{height:100%;min-height:209px;transform-style:preserve-3d;display:grid}.flashcard.is-flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{background:var(--af-paper);border:1px solid var(--af-line);text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:9px;flex-direction:column;grid-area:1/1;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.flashcard-back{transform:rotateY(180deg)}.card-caption{color:var(--af-muted);font-size:12px;line-height:1.6}.card-word{letter-spacing:-.045em;font-size:49px;line-height:1.2}.card-answer{letter-spacing:-.04em;font-size:34px;line-height:1.3}.card-sentence{max-width:26ch;font-size:22px;line-height:1.65}.card-prompt{font-size:25px;line-height:1.35}.cloze{color:var(--af-accent);background:var(--af-wash);border-radius:4px;padding:1px 5px}.waveform{object-fit:contain;width:100%;height:77px;display:block}.occlusion-diagram{width:min(100%,280px);position:relative}.occlusion-diagram img{width:100%;height:auto;display:block}.occlusion-cover{color:#effaf4;background:#214c3f;border:1px solid #c8e6d9;border-radius:5px;place-items:center;font-size:27px;font-weight:500;display:grid;position:absolute;box-shadow:0 2px 7px #123d3240}.card-preview audio{width:100%;height:36px;margin-top:10px}.card-preview:has(.occlusion-diagram) .flashcard,.card-preview:has(.occlusion-diagram) .flashcard-inner{min-height:240px}.card-preview:has(.occlusion-diagram) .flashcard-face{gap:6px;padding:13px 20px}.card-preview:has(.occlusion-diagram) .card-prompt{font-size:18px}.card-preview:has(.occlusion-diagram) .card-answer{font-size:22px}.example-workbench [data-example=media] .flashcard,.example-workbench [data-example=media] .flashcard-inner{min-height:166px}.example-workbench [data-example=media] .flashcard-face{gap:8px;padding:16px 24px}.example-workbench [data-example=media] .waveform{height:60px}.flip-button{align-self:center;margin-top:8px}.section{padding-block:82px}.identity-section{grid-template-columns:1fr 1.15fr;align-items:center;gap:90px;display:grid}.section-copy p{color:var(--af-muted);max-width:46ch;margin-top:18px}.section-copy .text-link{margin-top:20px}.identity-example{border:1px solid var(--af-line);background:var(--af-paper);border-radius:var(--af-radius);overflow:clip}.identity-label{border-bottom:1px solid var(--af-line);color:var(--af-muted);justify-content:space-between;align-items:center;padding:15px 23px;font-size:12px;display:flex}.identity-label code{color:var(--af-accent);background:var(--af-wash);border-radius:4px;padding:3px 9px;font-size:12px}.identity-fields{grid-template-columns:1fr 1fr;gap:20px;padding:26px 23px 32px;display:grid}.identity-fields span{color:var(--af-muted);font-size:12px}.identity-fields p{padding-top:9px;font-size:28px;line-height:1.35}.identity-fields .is-updated{color:var(--af-accent)}.identity-controls{background:var(--af-soft);justify-content:space-between;align-items:center;gap:10px;padding:10px 23px;display:flex}.identity-controls p{color:var(--af-muted);max-width:18ch;font-size:12px}.identity-controls .text-button{white-space:nowrap;font-size:12px}.features{border-bottom:1px solid var(--af-line);grid-template-columns:1fr 1fr;gap:68px;padding-block:40px 72px;display:grid}.feature{grid-template-columns:28px 1fr;gap:18px;display:grid}.feature>.icon{width:26px;height:26px;color:var(--af-accent)}.feature h3{font-size:22px}.feature p{color:var(--af-muted);max-width:47ch;margin:14px 0 18px}.start-section{grid-template-columns:.9fr 1.3fr;align-items:center;gap:80px;display:grid}.install-command{border:1px solid var(--af-line);border-radius:var(--af-radius);background:var(--af-paper);min-width:0;overflow:clip}.install-command pre{scrollbar-width:thin;margin:0;padding:25px;font-size:12px;line-height:2;overflow:auto}.install-command pre code{font-size:inherit}.install-command-footer{border-top:1px solid var(--af-line);justify-content:space-between;align-items:center;gap:14px;padding:6px 20px;display:flex}.install-command-footer p{color:var(--af-muted);font-size:12px}.install-command-footer .text-button{font-size:12px}.blog-section{padding:15px 0 76px}.blog-section h2{margin-bottom:30px;font-size:28px}.post-grid{grid-template-columns:1fr 1fr;gap:50px;display:grid}.post-card{border-top:1px solid var(--af-line);padding-top:22px}.post-meta{color:var(--af-muted);flex-wrap:wrap;gap:15px;font-size:12px;display:flex}.post-card h3{margin-top:13px;line-height:1.35}.post-card h3 a{color:var(--af-ink);text-decoration:none}.post-card h3 a:hover{color:var(--af-accent)}.post-card p{color:var(--af-muted);margin:13px 0 17px;font-size:15px}.site-footer{border-top:1px solid var(--af-line);color:var(--af-muted);justify-content:space-between;align-items:center;gap:30px;padding:28px 0 32px;font-size:12px;display:flex}.site-footer nav{flex-wrap:wrap;align-items:center;gap:24px;max-width:100%;display:flex}.site-footer a{color:var(--af-muted);text-decoration:none}.page-intro{max-width:750px;padding-block:65px 48px}.page-intro h1,.article-header h1{font-size:clamp(39px,4.7vw,57px);line-height:1.12}.page-intro p{color:var(--af-muted);max-width:60ch;margin-top:21px;font-size:18px}.example-intro-actions{flex-wrap:wrap;gap:10px 26px;margin-top:22px;display:flex}.page-intro .text-link{margin-top:20px}.example-list{padding-bottom:55px}.example-detail{border-top:1px solid var(--af-line);padding-block:42px}.example-detail h2{margin-bottom:12px;font-size:31px}.example-detail>p{color:var(--af-muted);max-width:66ch;margin-bottom:24px}.example-detail .example-panel{border:1px solid var(--af-line);border-radius:var(--af-radius);background:var(--af-paper);overflow:clip}.example-detail .example-source .code-block pre{height:auto;min-height:235px;max-height:390px}.example-downloads{flex-wrap:wrap;align-items:center;gap:16px;margin-top:18px;font-size:13px;display:flex}.example-downloads span{color:var(--af-muted)}.example-footnote{color:var(--af-muted);margin-top:20px;font-size:13px}.blog-list{padding-bottom:85px}.article{max-width:740px;padding-bottom:65px}.article-header{border-bottom:1px solid var(--af-line);margin-bottom:34px;padding-top:52px;padding-bottom:34px}.article-header>.text-link{margin-bottom:23px}.article-header .post-meta{margin-top:22px}.article-header .lede{color:var(--af-muted);margin-top:21px;font-size:20px}.prose{overflow-wrap:break-word;line-height:1.85}.prose p{margin-block:18px}.prose h2{margin:48px 0 18px;font-size:29px}.prose h3{margin-top:32px}.prose li{margin-block:7px}.prose pre{border:1px solid var(--af-line);border-radius:8px;padding:22px;font-size:12.5px;line-height:1.8;overflow:auto;background:var(--af-paper)!important}.prose .code-block pre{margin-block:24px}.prose :not(pre)>code{background:var(--af-soft);overflow-wrap:anywhere;border-radius:4px;padding:2px 5px}.prose table{border-collapse:collapse;width:100%;font-size:14px}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--af-line);padding:12px}.article-footer{border-top:1px solid var(--af-line);margin-top:48px;padding-top:23px}.no-script-note{padding:12px 20px;font-size:13px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.github-link:is(:hover,:focus-visible) .github-tail{animation:.85s ease-in-out infinite github-tail-wag}@keyframes github-tail-wag{0%,to{transform:rotate(0)}25%,75%{transform:rotate(-14deg)}50%{transform:rotate(12deg)}}.flashcard-inner{transition:transform .42s cubic-bezier(.2,.65,.3,1)}.example-panel:not([hidden]){animation:.18s ease-out panel-in}.identity-fields .is-updated{animation:.22s ease-out panel-in}[data-reveal].is-revealed{animation:.45s ease-out section-in}@keyframes panel-in{0%{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes section-in{0%{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}@media (width<=1024px){.hero-actions{gap:17px}.identity-section,.start-section{gap:45px}.card-preview{padding-inline:23px}}@media (width<=767px){.container{width:calc(100% - 40px)}.site-header{justify-content:space-between;gap:16px;height:68px}.wordmark{font-size:22px}.desktop-nav{display:none}.mobile-menu{display:block}.header-tools{gap:10px}.hero-actions{gap:24px}.example-panel{grid-template-columns:1fr}.workbench-bar{padding-inline:18px}.example-tabs button{font-size:12px}.workbench-hint{display:none}.example-source .code-block pre{height:auto;min-height:210px;max-height:300px;padding:20px;font-size:12px}.source-label{padding-inline:20px}.card-preview{border-left:0;border-top:1px solid var(--af-line);padding:18px 26px 10px}.example-workbench .card-preview{border-top:0;border-bottom:1px solid var(--af-line);order:-1}.flashcard,.flashcard-inner{min-height:195px}.card-word{font-size:44px}.section{padding-block:55px}.identity-section,.start-section{grid-template-columns:1fr;gap:28px}.section-copy p{max-width:55ch}.features{grid-template-columns:1fr;gap:37px;padding-block:16px 50px}.feature{gap:14px}.feature p{max-width:55ch}.post-grid{grid-template-columns:1fr;gap:30px}.post-card h3{font-size:22px}.blog-section{padding-bottom:50px}.site-footer{flex-direction:column;align-items:flex-start;gap:17px}.page-intro{padding-block:40px 34px}.page-intro p{font-size:16px}.example-detail{padding-block:32px}.example-detail .example-source .code-block pre{min-height:0}.article-header{padding-top:35px}.article-header .lede{font-size:18px}.prose h2{font-size:26px}.prose pre{padding:16px}}@media (width<=374px){.container{width:calc(100% - 32px)}.wordmark{gap:6px;font-size:20px}.identity-controls{flex-direction:column;align-items:flex-start;gap:0}.identity-controls p{max-width:none}.card-preview{padding-inline:18px}}.site-header{flex-wrap:wrap;height:auto;min-height:76px;padding-block:12px}.header-tools{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;min-width:0;max-width:100%;margin-left:auto;position:relative}.mobile-menu summary{white-space:nowrap}.mobile-menu nav a{white-space:normal;overflow-wrap:anywhere}@media (width<=767px){.site-header{gap:8px 10px}.header-tools{gap:8px}.mobile-menu nav{max-width:100%;top:100%;right:0}}@media (width<=420px){.site-header .wordmark>span:last-child{display:none}.site-header .wordmark{gap:0}}
