html.ds-theme{--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-family:var(--font-inter), Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;background:var(--ds-color-surface-base)}*{box-sizing:border-box;margin:0}body{background:var(--ds-color-surface-base);min-height:100dvh;color:var(--ds-color-foreground-primary);font-size:var(--ds-text-lg);line-height:var(--ds-leading-relaxed);-webkit-font-smoothing:antialiased;flex-direction:column;display:flex}a{color:inherit}.container{width:100%;max-width:1240px;padding:0 var(--ds-space-4);margin:0 auto}@media (min-width:640px){.container{padding:0 var(--ds-space-6)}}.site-header{z-index:20;border-bottom:1px solid var(--ds-color-border-subtle);background:color-mix(in srgb, var(--ds-color-surface-base) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);backdrop-filter:saturate(1.4)blur(14px);position:sticky;top:0}.site-bar{justify-content:space-between;align-items:center;gap:var(--ds-space-4);height:60px;font-size:var(--ds-text-md);display:flex}.wordmark{align-items:center;gap:var(--ds-space-2);font-weight:var(--ds-weight-heavy);letter-spacing:var(--ds-tracking-tight);flex:none;text-decoration:none;display:inline-flex}.main-nav{justify-content:safe flex-end;gap:var(--ds-space-1);scrollbar-width:none;flex:1;display:flex;overflow-x:auto}.main-nav a{padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-pill);color:var(--ds-color-foreground-secondary);font-weight:var(--ds-weight-semibold);transition:background var(--ds-motion-fast) var(--ds-ease), color var(--ds-motion-fast) var(--ds-ease);flex:none;text-decoration:none}.main-nav-toggle{display:none}@media (max-width:639px){.site-header{position:static}}@media (max-width:959px){.site-bar{gap:var(--ds-space-2);flex-wrap:wrap;height:auto;min-height:60px}.wordmark{flex:1}.main-nav-toggle{display:inline-flex}.main-nav{gap:var(--ds-space-1);padding-bottom:var(--ds-space-3);flex-direction:column;flex:0 0 100%;order:3;overflow:visible}.main-nav:not([data-open]){display:none}.main-nav a{padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md)}}@media (min-width:640px) and (max-width:959px){.site-header:has(.main-nav[data-open]){max-height:100dvh;overflow-y:auto}}@media (max-width:959px) and (scripting:none){.site-header{position:static}.main-nav-toggle{display:none}.main-nav:not([data-open]){display:flex}}.main-nav a:hover{background:var(--ds-color-surface-hover);color:var(--ds-color-foreground-primary)}.main-nav a[aria-current=page]{background:color-mix(in srgb, var(--ds-color-primary) 12%, transparent);color:var(--ds-color-primary);box-shadow:inset 0 -2px 0 var(--ds-color-primary)}.page{justify-content:center;align-items:center;gap:var(--ds-space-2);padding:var(--ds-space-6) var(--ds-space-4);text-align:center;flex-direction:column;flex:1;display:flex}.page p{color:var(--ds-color-foreground-secondary)}.content{padding-top:48px;padding-bottom:88px}.content h1{font-size:clamp(2rem,5vw,2.75rem);line-height:1.1;font-weight:var(--ds-weight-heavy);letter-spacing:-.025em;text-wrap:balance}.content h2{font-size:var(--ds-text-2xl);line-height:1.3;font-weight:var(--ds-weight-bold);letter-spacing:var(--ds-tracking-tight);margin-bottom:var(--ds-space-3)}.h1-sub{margin-top:var(--ds-space-1);color:var(--ds-color-foreground-secondary);font-size:var(--ds-text-2xl);font-weight:var(--ds-weight-semibold)}.lede{margin-top:var(--ds-space-4);max-width:640px;color:var(--ds-color-foreground-secondary);font-size:var(--ds-text-xl);line-height:var(--ds-leading-normal)}.content>p,.content>section>p,.skill-main p,.skill-main ul,.skill-main ol,.faq-item{max-width:68ch}.crumbs{margin:0 0 var(--ds-space-4) calc(-1 * var(--ds-space-2))}.crumbs svg{color:var(--ds-color-foreground-faint);flex:none}.crumbs [aria-current=page]{white-space:normal}.text-link,.prose a{color:var(--ds-color-foreground-primary);font-weight:var(--ds-weight-semibold);text-decoration:underline;-webkit-text-decoration-color:var(--ds-color-border-strong);text-decoration-color:var(--ds-color-border-strong);text-underline-offset:3px;transition:text-decoration-color var(--ds-motion-fast) var(--ds-ease);text-decoration-thickness:1px}.text-link:hover,.prose a:hover{text-decoration-color:currentColor}.command,.prose pre{border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-lg);background:var(--ds-color-surface-solid);box-shadow:var(--ds-shadow-surface)}.category{margin-top:56px}.cards{gap:var(--ds-space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));padding:0;list-style:none;display:grid}.sources{padding-top:var(--ds-space-8);border-top:1px solid var(--ds-color-border-subtle);max-width:720px;margin-top:72px}.sources p{color:var(--ds-color-foreground-secondary)}.sources ul{margin-top:var(--ds-space-4);padding-left:var(--ds-space-5);color:var(--ds-color-foreground-secondary)}.sources li+li{margin-top:var(--ds-space-2)}.sources strong{color:var(--ds-color-foreground-primary)}.skill-head{justify-content:space-between;column-gap:var(--ds-space-8);grid-template-columns:minmax(0,720px) auto;align-items:start;display:grid}@media (min-width:1024px){.skill-head{padding-right:224px}}.skill-head>*{grid-column:1}.skill-head>.copy-page{margin-top:var(--ds-space-2);grid-area:1/2}@media (min-width:640px){.skill-head>.copy-page .ds-menu{left:auto;right:0}}.skill-head:has(>.week-nav)>.copy-page{grid-row:2}@media (max-width:639px){.skill-head{display:block}.skill-head>.copy-page{margin-top:var(--ds-space-4)}}.byline,.source-line{margin-top:var(--ds-space-4);font-size:var(--ds-text-md);color:var(--ds-color-foreground-secondary)}.copy-page{align-items:center;gap:var(--ds-space-3);margin-top:var(--ds-space-4);max-width:100%;display:flex}.copy-page__split{display:inline-flex;position:relative}.ds-button-group[data-segmented]>.copy-page__menu,.ds-button-group[data-segmented]>.copy-page__menu:hover:not(:disabled),.ds-button-group[data-segmented]>.copy-page__menu:active:not(:disabled){z-index:auto;background:0 0;position:static}.copy-page__menu>.ds-icon-button{border-radius:inherit;height:100%;box-shadow:none;background:0 0;transform:none}.copy-page__menu>.ds-icon-button:hover:not(:disabled){background:var(--ds-color-surface-hover);transform:none}.copy-page__menu>.ds-icon-button:active:not(:disabled){background:var(--ds-color-surface-selected);transform:none}.copy-page__menu .ds-menu>[role^=menuitem] svg{justify-self:center;width:18px;height:18px}.status-note{margin-top:var(--ds-space-4)}.tool-changes{gap:var(--ds-space-3);display:grid}.changelog-views{margin-top:var(--ds-space-6);border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-md);background:var(--ds-color-surface-raised);box-shadow:var(--ds-shadow-button);display:inline-flex;overflow:hidden}.changelog-views__link{min-height:40px;padding-inline:var(--ds-space-4);color:var(--ds-color-foreground-secondary);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-semibold);align-items:center;text-decoration:none;display:inline-flex}.changelog-views__link+.changelog-views__link{border-left:1px solid var(--ds-color-border-subtle)}.changelog-views__link:hover{background:var(--ds-color-surface-hover);color:var(--ds-color-foreground-primary)}.changelog-views__link[aria-current=page]{background:var(--ds-color-primary);color:var(--ds-color-foreground-on-primary);font-weight:var(--ds-weight-heavy)}.changelog-views+.changes-filter-slot{margin-top:var(--ds-space-4)}.answer-box{gap:var(--ds-space-2);margin-top:var(--ds-space-5);padding:var(--ds-space-5);display:grid}.answer-box>*{margin:0}.content .answer-box__label{color:var(--ds-color-foreground-muted);font-size:var(--ds-text-xs);font-weight:var(--ds-weight-bold);letter-spacing:.06em;text-transform:uppercase;margin:0}.answer-box .lede{margin:0}.answer-box__sources{color:var(--ds-color-foreground-secondary);font-size:var(--ds-text-sm)}.skill-main>*+.what-happened-foot{margin-top:44px}.changes-filter-slot{min-height:0;margin:var(--ds-space-6) 0 var(--ds-space-5)}.changes-filter-slot[data-rows="1"]{min-height:81px}.changes-filter-slot[data-rows="2"]{min-height:137px}.changes-filter-subject .ds-field{min-width:min(100%,16rem)}.changes-filter-subject .ds-field__label-row{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.changes-table tbody tr{scroll-margin-top:calc(var(--site-header-h,60px) + var(--ds-space-4))}.changes-download{margin-top:var(--ds-space-5)}@media (max-width:520px){.changes-filter-slot[data-rows="1"]{min-height:108px}.changes-filter-slot[data-rows="2"]{min-height:191px}}@media (scripting:none){.changes-filter-slot[data-rows]{min-height:0}}.skill-layout{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:40px;display:grid}@media (min-width:880px){.skill-layout{grid-template-columns:minmax(0,1fr) 300px;gap:56px}}.skill-main>section+section{margin-top:44px}.skill-main p,.skill-main li{color:var(--ds-color-foreground-secondary)}.skill-main p+p{margin-top:var(--ds-space-3)}.skill-main ul{padding-left:var(--ds-space-5)}.skill-main li+li{margin-top:6px}.install-step+.install-step{margin-top:var(--ds-space-5)}.install-label{margin-bottom:var(--ds-space-2);font-size:var(--ds-text-md);font-weight:var(--ds-weight-semibold);color:var(--ds-color-foreground-primary)}.command{border-radius:var(--ds-radius-md);overflow:hidden}.command-bar{align-items:center;gap:var(--ds-space-3);padding:6px 6px 6px var(--ds-space-4);border-bottom:1px solid color-mix(in srgb, var(--ds-color-content-play-shine) 10%, transparent);display:flex}.command-dots{width:8px;height:8px;margin-right:var(--ds-space-6);background:var(--ds-color-content-play-tomato);box-shadow:12px 0 0 var(--ds-color-content-play-cookie), 24px 0 0 var(--ds-color-content-play-mint);flex:none}.command-kind{font-family:var(--font-pixel), monospace;font-size:var(--ds-text-xs);letter-spacing:var(--ds-tracking-wide);text-transform:uppercase;color:color-mix(in srgb, var(--ds-color-content-play-shine) 72%, transparent);flex:1}.command pre{padding:var(--ds-space-3) var(--ds-space-4) 14px;white-space:pre-wrap;overflow-wrap:anywhere;font:.875rem/1.55 var(--mono);color:var(--ds-color-foreground-primary)}.command pre code{font:inherit}.command pre:focus-visible{box-shadow:var(--ds-focus);border-radius:var(--ds-radius-sm);outline:none}.install-note{margin-top:var(--ds-space-4);font-size:var(--ds-text-md)}.facts{padding:var(--ds-space-5);font-size:var(--ds-text-md);align-self:start}@media (min-width:880px) and (min-height:1000px){.facts{position:sticky;top:84px}}.facts dt{color:var(--ds-color-foreground-muted);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-bold);letter-spacing:var(--ds-tracking-wide);text-transform:uppercase}.facts dd{overflow-wrap:anywhere;margin:2px 0 0}.facts dd+dt{margin-top:var(--ds-space-4)}.facts code{font:.8125rem/1.5 var(--mono)}.skill-main .more{padding:0;list-style:none}.more a{color:var(--ds-color-foreground-primary);font-weight:var(--ds-weight-semibold);text-underline-offset:3px;transition:text-decoration-color var(--ds-motion-fast) var(--ds-ease);-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.more a:hover{text-decoration-color:currentColor}.main{flex:1}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--ds-space-4);top:var(--ds-space-2);padding:var(--ds-space-2) var(--ds-space-3);background:var(--ds-color-surface-solid);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-raised);z-index:30}.site-footer{background:var(--ds-color-content-play-choc);color:color-mix(in srgb, var(--ds-color-content-play-shine) 82%, transparent);font-size:var(--ds-text-md);margin-top:64px}.site-footer .grass{margin-bottom:-2px;display:block}.main:has(.home)+.site-footer .grass{display:none}.footer-inner{padding-top:var(--ds-space-8);padding-bottom:var(--ds-space-8)}.footer-top{gap:var(--ds-space-6) var(--ds-space-8);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:760px){.footer-top{grid-template-columns:minmax(0,1.2fr) minmax(0,2fr)}}.footer-brand{gap:var(--ds-space-2);align-content:start;max-width:34ch;display:grid}.footer-brand p{margin:0}.footer-wordmark{align-items:center;gap:var(--ds-space-2);color:var(--ds-color-content-play-shine);font-weight:var(--ds-weight-bold);font-size:var(--ds-text-lg);display:flex}.footer-nav{gap:var(--ds-space-5) var(--ds-space-6);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-content:start;display:grid}.footer-heading{margin:0 0 var(--ds-space-3);color:var(--ds-color-content-play-shine);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-bold);letter-spacing:.08em;text-transform:uppercase}.footer-group ul{gap:var(--ds-space-2);margin:0;padding:0;list-style:none;display:grid}.footer-inner a{color:var(--ds-color-content-play-cookie);font-weight:var(--ds-weight-semibold);text-decoration:none}.footer-inner a:hover{color:var(--ds-color-content-play-shine);text-underline-offset:3px;text-decoration:underline}.footer-made{align-items:center;gap:var(--ds-space-3);margin:var(--ds-space-8) 0 0;padding-top:var(--ds-space-5);border-top:1px solid color-mix(in srgb, var(--ds-color-content-play-shine) 18%, transparent);font-size:var(--ds-text-sm);flex-wrap:wrap;display:flex}.de-dots{gap:6px;display:inline-flex}.de-dots i{border-radius:50%;width:10px;height:10px}.de-dots i:first-child{background:#000}.de-dots i:nth-child(2){background:#d00}.de-dots i:nth-child(3){background:#ffce00}.content h3,.sub{margin:var(--ds-space-5) 0 var(--ds-space-2);font-size:var(--ds-text-lg);font-weight:var(--ds-weight-bold);color:var(--ds-color-foreground-primary)}.category h2 a{text-underline-offset:4px;transition:text-decoration-color var(--ds-motion-fast) var(--ds-ease);-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.category h2 a:hover{text-decoration-color:currentColor}.faq-item+.faq-item{margin-top:var(--ds-space-4)}.faq-item h3{margin-top:0}.table-wrap{margin:var(--ds-space-4) 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--ds-text-md)}th,td{text-align:left;vertical-align:top;padding:var(--ds-space-2) var(--ds-space-3);border-bottom:1px solid var(--ds-color-border-subtle)}th{color:var(--ds-color-foreground-muted);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-bold);letter-spacing:var(--ds-tracking-wide);text-transform:uppercase}.article>*{max-width:760px}.article>.skill-head,.article>.prose{max-width:none}.prose>*{max-width:760px}.prose>.table-wrap,.article>.table-wrap{max-width:none}.article>.category:has(>.article-cards){max-width:none}.prose{margin-top:var(--ds-space-6)}.prose p,.prose li{color:var(--ds-color-foreground-secondary)}.prose p+p,.prose ul+p,.prose p+ul,.prose table+p{margin-top:var(--ds-space-3)}.prose h2{margin-top:44px}.prose h3{margin-top:var(--ds-space-6)}.prose ul,.prose ol{padding-left:22px}.prose li+li{margin-top:6px}.prose strong{color:var(--ds-color-foreground-primary)}.prose code{font:.875rem/1.5 var(--mono)}.prose :not(pre)>code{border:1px solid var(--ds-color-border-subtle);background:var(--ds-color-surface-solid);color:var(--ds-color-foreground-primary);border-radius:6px;padding:1px 5px}.prose pre{margin:var(--ds-space-3) 0;padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md);overflow-x:auto}.muted{color:var(--ds-color-foreground-muted)}.stats{margin-top:var(--ds-space-8);gap:var(--ds-space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));padding:0;list-style:none;display:grid}.more li+li{margin-top:var(--ds-space-2)}.more .meta{color:var(--ds-color-foreground-muted);font-size:var(--ds-text-md);white-space:nowrap}.command .copy{flex:none;min-height:30px}.theme-toggle{color:var(--ds-color-foreground-secondary);flex:none}.theme-toggle:hover{color:var(--ds-color-foreground-primary)}.cards .ds-card{flex-direction:column;height:100%;display:flex}.cards .ds-card__body{flex:1}.link-card{position:relative}.link-card a{text-decoration:none}.link-card a:after{content:"";border-radius:inherit;position:absolute;inset:0}.link-card a:focus-visible{box-shadow:none}.link-card:has(a:focus-visible){box-shadow:var(--ds-focus)}.content .ds-card__header h3{margin:var(--ds-space-1) 0 0;font-size:var(--ds-text-lg);letter-spacing:var(--ds-tracking-tight)}.ds-card__footer .card-badges{gap:var(--ds-space-1);flex-wrap:wrap;display:flex}.ds-card__footer .card-badges .ds-badge{border-radius:var(--ds-radius-md);line-height:1.25}.chips .ds-pill{min-height:34px;padding-inline:var(--ds-space-3);font-size:var(--ds-text-md);box-shadow:var(--ds-shadow-control);transition:color var(--ds-motion-fast) var(--ds-ease), box-shadow var(--ds-motion-fast) var(--ds-ease);position:relative}.chips .ds-pill a{text-decoration:none}.chips .ds-pill a:after{content:"";border-radius:inherit;position:absolute;inset:0}.chips .ds-pill:hover{color:var(--ds-color-foreground-primary);box-shadow:var(--ds-shadow-control-hover)}.ds-table-wrap{padding:0 var(--ds-space-1);border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-xl);background:var(--ds-color-surface-selected);box-shadow:none}.ds-table{border-collapse:separate;border-spacing:0 var(--ds-space-1);margin-block:0}.ds-table thead th{padding-block:var(--ds-space-2) 0;color:var(--ds-color-foreground-muted);white-space:normal;vertical-align:bottom;background:0 0;border-bottom:0}.ds-table tbody td,.ds-table tbody th{border-top:1px solid var(--ds-color-border-subtle);border-bottom:1px solid var(--ds-color-border-subtle);background:var(--ds-color-surface-solid);transition:background var(--ds-motion-fast) var(--ds-ease)}.ds-table tbody tr:last-child td,.ds-table tbody tr:last-child th{border-bottom:1px solid var(--ds-color-border-subtle)}.ds-table tbody tr>:first-child{border-left:1px solid var(--ds-color-border-subtle);border-radius:calc(var(--ds-radius-xl) - var(--ds-space-1)) 0 0 calc(var(--ds-radius-xl) - var(--ds-space-1))}.ds-table tbody tr>:last-child{border-right:1px solid var(--ds-color-border-subtle);border-radius:0 calc(var(--ds-radius-xl) - var(--ds-space-1)) calc(var(--ds-radius-xl) - var(--ds-space-1)) 0}.ds-table tbody tr>:only-child{border-radius:calc(var(--ds-radius-xl) - var(--ds-space-1))}.ds-table tbody tr:hover{background:0 0}.ds-table tbody tr:hover>*{background:var(--ds-color-surface-raised)}.ds-table tbody tr:target>*{background:var(--ds-color-surface-selected)}.ds-table td{white-space:normal;min-width:80px}.ds-table tbody th{color:var(--ds-color-foreground-primary);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-semibold);text-transform:none;letter-spacing:normal;white-space:normal}.ds-table td,.ds-table tbody th{font-size:var(--ds-text-md);line-height:var(--ds-leading-normal)}.ds-table caption:not(.ds-sr-only){padding:var(--ds-space-3) var(--ds-space-3) 0;text-align:left;font-size:var(--ds-text-sm);color:var(--ds-color-foreground-secondary)}@media (max-width:767px){.ds-table-wrap{padding:var(--ds-space-1);overflow:visible}.ds-table,.ds-table>tbody,.ds-table>tbody>tr,.ds-table>tbody>tr>td,.ds-table>tbody>tr>th{width:100%;display:block}.ds-table{margin-block:0}.ds-table>caption:not(.ds-sr-only){padding:var(--ds-space-2) var(--ds-space-3);display:block}.ds-table>thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ds-table>tbody>tr{padding:var(--ds-space-3) var(--ds-space-4);border:1px solid var(--ds-color-border-subtle);border-radius:calc(var(--ds-radius-xl) - var(--ds-space-1));background:var(--ds-color-surface-solid)}.ds-table>tbody>tr+tr{margin-top:var(--ds-space-1)}.ds-table>tbody>tr>td,.ds-table>tbody>tr>th,.ds-table tbody tr:last-child td,.ds-table tbody tr:last-child th,.ds-table tbody tr>:first-child,.ds-table tbody tr>:last-child,.ds-table tbody tr>:only-child{min-width:0;padding:var(--ds-space-1) 0;overflow-wrap:anywhere;background:0 0;border:0;border-radius:0}.ds-table>tbody>tr:hover>*,.ds-table>tbody>tr:target>*{background:0 0}.ds-table>tbody>tr:target{background:var(--ds-color-surface-selected)}.ds-table [data-label]:before{content:attr(data-label);color:var(--ds-color-foreground-muted);font-size:var(--ds-text-xs);font-weight:var(--ds-weight-bold);letter-spacing:var(--ds-tracking-wide);text-transform:uppercase;display:block}}.sticker,.arcade-deco,.walker,.page-art .pixel{will-change:transform}.privacy-settings{appearance:none;color:var(--ds-color-content-play-cookie);font:inherit;font-weight:var(--ds-weight-semibold);cursor:pointer;background:0 0;border:0;padding:0}.privacy-settings:hover{color:var(--ds-color-content-play-shine);text-underline-offset:3px;text-decoration:underline}.consent-banner{z-index:40;right:var(--ds-space-3);bottom:var(--ds-space-3);left:var(--ds-space-3);justify-content:space-between;align-items:center;gap:var(--ds-space-4);max-width:900px;padding:var(--ds-space-4);border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-lg);background:var(--ds-color-surface-solid);box-shadow:var(--ds-shadow-overlay);color:var(--ds-color-foreground-primary);font-size:var(--ds-text-md);margin-inline:auto;display:flex;position:fixed}.consent-copy{max-width:680px}.consent-copy p+p{margin-top:var(--ds-space-2)}.consent-copy a{font-weight:var(--ds-weight-semibold)}.consent-actions{gap:var(--ds-space-2);flex:none;display:flex}@media (max-width:560px){.consent-banner{flex-direction:column;align-items:stretch}.consent-actions{grid-template-columns:1fr 1fr;display:grid}.consent-actions .ds-button{width:100%}}.item-logo{width:var(--logo-size,40px);aspect-ratio:1;border:1px solid var(--ds-color-border-subtle);background:var(--ds-color-content-play-shine);object-fit:contain;border-radius:22%;flex:none;place-items:center;height:auto;display:grid}.item-logo[data-fill]{background:0 0}.item-logo-letter{color:var(--ds-color-content-play-ink);font-weight:var(--ds-weight-heavy);font-size:var(--ds-text-lg);border-color:#0000}.item-logo-letter[data-tone=sky]{background:var(--ds-color-content-play-sky)}.item-logo-letter[data-tone=mint]{background:var(--ds-color-content-play-mint)}.item-logo-letter[data-tone=grape]{background:var(--ds-color-content-play-grape);color:var(--ds-color-content-play-shine)}.item-logo-letter[data-tone=tomato]{background:var(--ds-color-content-play-tomato)}.item-logo-letter[data-tone=lime]{background:var(--ds-color-content-play-lime)}.item-logo-letter[data-tone=cookie]{background:var(--ds-color-content-play-cookie)}.ds-theme[data-ds-theme=dark] .item-logo-letter[data-tone=sky]{color:var(--ds-color-content-play-shine)}.article-card .card-media.card-media[data-logos],.article-card .card-media.card-media-label{--media:var(--media-color,var(--ds-color-content-play-sky));background:radial-gradient(120% 90% at 50% 0%, var(--media-glow), transparent 70%), var(--media-base);border-color:color-mix(in srgb, var(--media) 30%, transparent);background-clip:padding-box}.article-card .card-media[data-logos]{--media-glow:color-mix(in srgb, var(--media) 34%, transparent);--media-base:color-mix(in srgb, var(--media) 14%, var(--ds-color-surface-selected));place-content:center;gap:var(--ds-space-2);padding:var(--ds-space-4);flex-wrap:wrap;display:flex}.article-card .card-media[data-tone=sky]{--media-color:var(--ds-color-content-play-sky)}.article-card .card-media[data-tone=mint]{--media-color:var(--ds-color-content-play-mint)}.article-card .card-media[data-tone=grape]{--media-color:var(--ds-color-content-play-grape)}.article-card .card-media[data-tone=tomato]{--media-color:var(--ds-color-content-play-tomato)}.article-card .card-media[data-tone=lime]{--media-color:var(--ds-color-content-play-lime)}.article-card .card-media[data-tone=cookie]{--media-color:var(--ds-color-content-play-cookie)}.article-card .card-media .item-logo{width:min(56px,17%);height:auto;box-shadow:0 6px 16px color-mix(in srgb, var(--ds-color-content-play-ink) 18%, transparent)}.article-card .card-media .item-logo-letter{font-size:var(--ds-text-xl)}.article-card .card-media-label{--media-glow:color-mix(in srgb, var(--media) 75%, var(--ds-color-content-play-shine));--media-base:color-mix(in srgb, var(--media) 62%, var(--ds-color-content-play-ink));padding:var(--ds-space-4);place-items:center;display:grid;container-type:inline-size}.article-card .card-media-label span{font-family:var(--font-manrope), var(--font-inter), sans-serif;letter-spacing:-.02em;text-align:center;text-wrap:balance;color:var(--ds-color-content-play-shine);text-shadow:0 2px 12px color-mix(in srgb, var(--ds-color-content-play-ink) 30%, transparent);font-size:clamp(1.5rem,11cqi,3rem);font-weight:800;line-height:1.05}
.content{--ink:var(--ds-color-content-play-ink);--shine:var(--ds-color-content-play-shine);--cookie:var(--ds-color-content-play-cookie);--lime:var(--ds-color-content-play-lime);position:relative}.main:has(>.content){background-color:var(--ds-color-surface-base);background-image:linear-gradient(180deg, transparent 0, transparent 160px, var(--ds-color-surface-base) 460px), linear-gradient(var(--ds-color-content-play-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ds-color-content-play-grid) 1px, transparent 1px);background-position:0 0,top,top;background-repeat:no-repeat,repeat,repeat;background-size:100% 100%,24px 24px,24px 24px}.content h1{letter-spacing:-.035em;font-size:clamp(2.125rem,5vw,3.25rem);line-height:1.05}.skill-head .lede{font-size:var(--ds-text-xl)}.page-art{right:var(--ds-space-6);pointer-events:none;width:200px;height:170px;position:absolute;top:48px}.page-art .pixel{filter:drop-shadow(2px 0 0 var(--shine)) drop-shadow(-2px 0 0 var(--shine)) drop-shadow(0 2px 0 var(--shine)) drop-shadow(0 -2px 0 var(--shine)) drop-shadow(0 8px 10px color-mix(in srgb, var(--ink) 22%, transparent));animation:page-float 6s var(--ds-ease) infinite;position:absolute}.pa-main{--px:3px;position:absolute;top:28px;right:24px}.page-art .pa-main .pixel{animation:none;position:static}.pa-a{--tilt:-10deg;animation-delay:-2s;top:0;left:8px}.pa-b{--tilt:8deg;animation-delay:-4s;bottom:0;left:36px}@keyframes page-float{0%,to{transform:translateY(0) rotate(var(--tilt,0deg))}50%{transform:translateY(-8px) rotate(calc(var(--tilt,0deg) * -1))}}@media (max-width:1023px){.page-art{right:var(--ds-space-4);width:auto;height:auto;top:20px}.page-art .pa-a,.page-art .pa-b{display:none}.page-art .pa-main{--px:1px;display:block;position:static}.crumbs{padding-right:56px}}@media (max-width:639px){.crumbs li:not(:nth-last-child(-n+2)),.crumbs li:nth-last-child(2)>svg{display:none}.crumbs li:last-child:not(:only-child){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.crumbs li:last-child:not(:only-child) [aria-current]{white-space:nowrap}}.content .category>h2,.skill-main>section>h2,.prose h2,.faq>h2{align-items:center;gap:14px;display:flex}.content .category>h2:before,.skill-main>section>h2:before,.prose h2:before,.faq>h2:before{content:"";background:var(--ds-color-primary);width:12px;height:12px;box-shadow:3px 3px 0 var(--cookie);flex:none;margin-right:3px}.cards>li:nth-child(5n+1){--tone:var(--ds-color-primary)}.cards>li:nth-child(5n+2){--tone:var(--ds-color-content-play-mint)}.cards>li:nth-child(5n+3){--tone:var(--ds-color-content-play-tomato)}.cards>li:nth-child(5n+4){--tone:var(--ds-color-content-play-grape)}.cards>li:nth-child(5n+5){--tone:var(--cookie)}.cards .ds-card{background:var(--ds-color-surface-solid)}.cards .ds-card:before{content:"";background:var(--tone);height:6px;display:block}.cards .ds-card[data-interactive]:hover{box-shadow:6px 8px 0 color-mix(in srgb, var(--tone) 70%, transparent), var(--ds-shadow-raised);transform:translate(-2px,-4px)}.content .category>.more,.content .category>details>.more{gap:var(--ds-space-1);padding:var(--ds-space-1);border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-xl);background:var(--ds-color-surface-selected);margin:0;list-style:none;display:grid}.content .category>.more>li,.content .category>details>.more>li{padding:var(--ds-space-4) var(--ds-space-5);border:1px solid var(--ds-color-border-subtle);border-radius:calc(var(--ds-radius-xl) - var(--ds-space-1));background:var(--ds-color-surface-solid);box-shadow:var(--ds-shadow-surface);color:var(--ds-color-foreground-secondary);font-size:var(--ds-text-md);transition:border-color var(--ds-motion-fast) var(--ds-ease);margin:0;position:relative}.content .category>.more>li:hover,.content .category>details>.more>li:hover{border-color:var(--ds-color-border-strong);background:var(--ds-color-surface-raised)}.content .category>.more>li>a,.content .category>details>.more>li>a{font-size:var(--ds-text-lg);line-height:1.35;display:block}.content .category>.more>li>a:after,.content .category>details>.more>li>a:after{content:"";border-radius:inherit;position:absolute;inset:0}.more .row-summary{max-width:72ch;margin-top:var(--ds-space-1);line-height:1.55}.article-cards{gap:var(--ds-space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));margin:0;padding:0;list-style:none;display:grid}.article-card{padding:var(--ds-space-2);border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-xl);background:var(--ds-color-surface-solid);box-shadow:var(--ds-shadow-surface);transition:border-color var(--ds-motion-fast) var(--ds-ease);flex-direction:column;display:flex;position:relative}.article-card:hover{border-color:var(--ds-color-border-strong)}.article-card .card-media{aspect-ratio:16/9;border:1px solid var(--ds-color-border-subtle);border-radius:calc(var(--ds-radius-xl) - var(--ds-space-2));background:var(--ds-color-surface-selected)}.article-card .card-text{padding:var(--ds-space-4) var(--ds-space-3) var(--ds-space-3);flex-direction:column;flex:1;display:flex}.article-card .card-text>a{color:var(--ds-color-foreground-primary);font-size:var(--ds-text-lg);font-weight:var(--ds-weight-semibold);text-underline-offset:3px;transition:text-decoration-color var(--ds-motion-fast) var(--ds-ease);line-height:1.35;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.article-card:hover .card-text>a{text-decoration-color:currentColor}.article-card .card-text>a:after{content:"";position:absolute;inset:0}.article-card .card-summary{margin-top:var(--ds-space-2);color:var(--ds-color-foreground-secondary);font-size:var(--ds-text-md);line-height:1.55}.article-card .card-meta{padding-top:var(--ds-space-3);color:var(--ds-color-foreground-muted);font-size:var(--ds-text-sm);margin-top:auto}.command{border-color:color-mix(in srgb, var(--shine) 10%, var(--ink));background:var(--ink);box-shadow:0 6px 0 color-mix(in srgb, var(--ink) 35%, transparent), var(--ds-shadow-surface)}[data-ds-theme=dark] .command{border-color:color-mix(in srgb, var(--lime) 22%, transparent);box-shadow:0 6px 0 color-mix(in srgb, var(--lime) 12%, transparent)}.command pre{color:var(--lime)}.command[data-kind=shell] pre:before{content:"$ ";color:var(--cookie)}.facts{border-top:8px solid var(--cookie);background-image:radial-gradient(color-mix(in srgb, var(--ink) 5%, transparent) 1.2px, transparent 1.2px);background-size:12px 12px}.facts dd+dt{padding-top:var(--ds-space-4);border-top:2px dashed var(--ds-color-border-subtle)}.faq-item{padding:var(--ds-space-5);border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-lg);background:var(--ds-color-surface-solid);box-shadow:var(--ds-shadow-surface)}.faq-item+.faq-item{margin-top:var(--ds-space-3)}.faq-item p{color:var(--ds-color-foreground-secondary)}.prose a,.text-link{-webkit-text-decoration-color:color-mix(in srgb, var(--ds-color-primary) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--ds-color-primary) 55%, transparent)}.prose>p,.prose>ul,.prose>ol{max-width:68ch}.prose p,.prose li{color:color-mix(in srgb, var(--ds-color-foreground-primary) 84%, transparent)}.skill-main ul:has(>li>code:only-child){flex-wrap:wrap;gap:6px;padding:0;list-style:none;display:flex}.skill-main ul:has(>li>code:only-child)>li{margin:0}.skill-main ul:has(>li>code:only-child) code{border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-pill);background:var(--ds-color-surface-solid);color:var(--ds-color-foreground-primary);font:.8125rem/1.5 var(--mono);padding:3px 10px;display:inline-block}.jump{margin-top:var(--ds-space-6)}.jump .ds-pill{min-height:32px;padding-inline:var(--ds-space-3);box-shadow:var(--ds-shadow-control);position:relative}.jump .ds-pill a{text-decoration:none}.jump .ds-pill a:after{content:"";border-radius:inherit;position:absolute;inset:0}.jump .ds-pill:hover{color:var(--ds-color-foreground-primary);border-color:var(--ds-color-primary)}.content [id^=c-],.content #tested{scroll-margin-top:84px}.publishers{margin-top:var(--ds-space-4)}.publishers summary{align-items:center;gap:var(--ds-space-2);cursor:pointer;font-size:var(--ds-text-md);font-weight:var(--ds-weight-semibold);color:var(--ds-color-foreground-primary);list-style:none;display:inline-flex}.publishers summary::-webkit-details-marker{display:none}.publishers summary:before{content:"";background:var(--ds-color-primary);clip-path:polygon(0 0,50% 0,50% 20%,75% 20%,75% 40%,100% 40%,100% 60%,75% 60%,75% 80%,50% 80%,50% 100%,0 100%);width:8px;height:10px;transition:transform var(--ds-motion-fast) var(--ds-ease)}.publishers[open] summary:before{transform:rotate(90deg)}.publishers summary:focus-visible{box-shadow:var(--ds-focus);border-radius:var(--ds-radius-sm)}.publishers .byline{margin-top:var(--ds-space-2)}.game-over{align-items:flex-start;gap:var(--ds-space-3);margin-bottom:var(--ds-space-5);color:var(--ds-color-foreground-primary);flex-direction:column;display:flex}.game-over>span:last-child{font-family:var(--font-pixel), monospace;font-size:var(--ds-text-md);letter-spacing:var(--ds-tracking-wide);text-transform:uppercase;color:var(--ds-color-primary)}.content:not(:has(.crumbs)){padding-top:72px}.hub-links{padding-top:var(--ds-space-6);border-top:1px solid var(--ds-color-border-subtle);margin-top:72px}.hub-links>h2{margin:0 0 var(--ds-space-4);font-size:var(--ds-text-lg)}.hub-links ul{gap:var(--ds-space-2);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));margin:0;padding:0;list-style:none;display:grid}.hub-link{align-items:center;gap:var(--ds-space-3);height:100%;padding:var(--ds-space-3) var(--ds-space-4);border:1px solid var(--ds-color-border-subtle);border-radius:var(--ds-radius-md);background:var(--ds-color-surface-solid);box-shadow:var(--ds-shadow-surface);color:var(--ds-color-foreground-primary);transition:transform var(--ds-motion-fast) var(--ds-ease), box-shadow var(--ds-motion-fast) var(--ds-ease);text-decoration:none;display:flex}.hub-link:hover{box-shadow:4px 5px 0 color-mix(in srgb, var(--ds-color-primary) 55%, transparent), var(--ds-shadow-surface);transform:translate(-2px,-3px)}.hub-link:focus-visible{box-shadow:var(--ds-focus);outline:none}.hub-link-art{flex:none}[data-ds-theme=dark] .hub-link-art{box-sizing:content-box;background:color-mix(in srgb, var(--shine) 90%, transparent);border-radius:6px;padding:3px}.hub-link-text{min-width:0;display:grid}.hub-link-label{font-weight:var(--ds-weight-semibold)}.hub-link-n{margin-left:var(--ds-space-1);color:var(--ds-color-foreground-secondary);font-family:var(--font-pixel), monospace;font-size:var(--ds-text-xs)}.hub-link-note{color:var(--ds-color-foreground-secondary);font-size:var(--ds-text-sm)}.hub-link-go{color:var(--ds-color-primary);font-weight:var(--ds-weight-semibold);margin-left:auto}@media (prefers-reduced-motion:reduce){.hub-link{transition:none}.hub-link:hover{transform:none}}
.cast{vertical-align:bottom;width:calc(var(--w) * var(--px,3px));height:calc(var(--h) * var(--px,3px));flex:none;display:inline-block;overflow:visible}.cast-lids{opacity:0;animation:6s step-end infinite cast-blink;animation-delay:var(--blink-delay,0s)}@keyframes cast-blink{0%,93%{opacity:0}94%,96%{opacity:1}97%,to{opacity:0}}.cast-body{transform-origin:50%;display:block}.cast-member .cast-body,.parade-walker .cast-body{filter:drop-shadow(2px 0 0 var(--ds-color-content-play-shine)) drop-shadow(-2px 0 0 var(--ds-color-content-play-shine)) drop-shadow(0 2px 0 var(--ds-color-content-play-shine)) drop-shadow(0 -2px 0 var(--ds-color-content-play-shine)) drop-shadow(0 8px 10px color-mix(in srgb, var(--ds-color-content-play-ink) 22%, transparent));will-change:transform}.shelf-items.cast-shelf{--px:3px;gap:14px}.cast-member{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0;display:block;position:relative}@media (hover:hover){.cast-member:not([data-busy]):hover .cast-body{transform:translateY(calc(-1 * var(--px)))}}@media (max-width:1023px){.shelf-items.cast-shelf{--px:2px;gap:var(--ds-space-2)}}@media (max-width:639px){.cast-member:not([data-phone]){display:none}}.cast-fx{pointer-events:none;position:absolute;inset:0}.cast-fx-bit{opacity:0;line-height:0;animation-fill-mode:both;position:absolute}.cast-fx-bit svg{display:block}.cast-fx[data-fx=dust] .cast-fx-bit{bottom:calc(-1 * var(--px));animation:.3s steps(3,end) both cast-dust}.cast-fx[data-fx=dust] [data-i="0"]{left:calc(-2 * var(--px));--dir:-1}.cast-fx[data-fx=dust] [data-i="1"]{right:calc(-2 * var(--px));--dir:1}@keyframes cast-dust{0%{opacity:1;transform:none}to{opacity:0;transform:translate(calc(var(--dir) * 3 * var(--px)), calc(-2 * var(--px)))}}.cast-fx[data-fx=burst] .cast-fx-bit,.cast-fx[data-fx=stars] .cast-fx-bit{animation:.36s steps(4,end) both cast-burst;top:20%;left:50%}.cast-fx[data-fx=burst] [data-i="0"]{--bx:-9;--by:-7}.cast-fx[data-fx=burst] [data-i="1"]{--bx:8;--by:-9}.cast-fx[data-fx=burst] [data-i="2"]{--bx:11;--by:2}.cast-fx[data-fx=burst] [data-i="3"]{--bx:-12;--by:1}@keyframes cast-burst{0%{opacity:1;transform:translate(-50%)}75%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--bx) * var(--px)), calc(var(--by) * var(--px)))}}.cast-fx[data-fx=stars] .cast-fx-bit{animation:.6s steps(6,end) both cast-orbit;top:4%}.cast-fx[data-fx=stars] [data-i="1"]{animation-delay:-200ms}.cast-fx[data-fx=stars] [data-i="2"]{animation-delay:-400ms}@keyframes cast-orbit{0%{opacity:1;transform:translate(calc(-50% - 9 * var(--px)), 0)}25%{transform:translate(-50%, calc(-3 * var(--px)))}50%{transform:translate(calc(-50% + 9 * var(--px)), 0)}75%{transform:translate(-50%, calc(2 * var(--px)))}to{opacity:1;transform:translate(calc(-50% - 9 * var(--px)), 0)}}.cast-fx[data-fx=zip] .cast-fx-bit{left:calc(-6 * var(--px));animation:.24s steps(3,end) both cast-zip}.cast-fx[data-fx=zip] [data-i="0"]{top:40%}.cast-fx[data-fx=zip] [data-i="1"]{top:55%;left:calc(-8 * var(--px))}.cast-fx[data-fx=zip] [data-i="2"]{top:70%}@keyframes cast-zip{0%{opacity:1;transform:none}to{opacity:0;transform:translateX(calc(-4 * var(--px)))}}.cast-fx[data-fx=shine] .cast-fx-bit{animation:.42s steps(3,end) both cast-shine;top:22%;left:62%}@keyframes cast-shine{0%,to{opacity:0}34%,67%{opacity:1}}.cast-fx[data-fx=notes] .cast-fx-bit{animation:1.4s steps(10,end) both cast-note;bottom:90%}.cast-fx[data-fx=notes] [data-i="0"]{left:0}.cast-fx[data-fx=notes] [data-i="1"]{animation-delay:.2s;left:42%}.cast-fx[data-fx=notes] [data-i="2"]{animation-delay:.4s;right:0}@keyframes cast-note{0%{opacity:0;transform:translateY(calc(4 * var(--px)))}20%{opacity:1}to{opacity:0;transform:translateY(calc(-12 * var(--px)))}}.footer-ground{position:relative;overflow-x:clip}.parade{pointer-events:none;height:0;position:absolute;bottom:50px;left:0;right:0}.parade-walker{bottom:calc(0px - var(--sink,0px));left:var(--rest);--px:2px;position:absolute}.parade-walker[data-walking]{left:0}.main:has(.home)+.site-footer .footer-ground{display:none}
