@font-face{font-family:newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/newsreader-400.woff2)format("woff2")}@font-face{font-family:newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/newsreader-500.woff2)format("woff2")}@font-face{font-family:newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(fonts/newsreader-500-italic.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plex-sans-400.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/plex-sans-500.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/plex-sans-600.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:400;font-display:swap;src:url(fonts/plex-sans-400-italic.woff2)format("woff2")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plex-mono-400.woff2)format("woff2")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/plex-mono-500.woff2)format("woff2")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/plex-mono-600.woff2)format("woff2")}@font-face{font-family:newsreader fallback;font-style:normal;src:local("Georgia");size-adjust:96%;ascent-override:77.1%;descent-override:27.1%;line-gap-override:0%}@font-face{font-family:newsreader fallback;font-style:italic;src:local("Georgia Italic"),local("Georgia-Italic");size-adjust:96%;ascent-override:77.1%;descent-override:27.1%;line-gap-override:0%}@font-face{font-family:ibm plex sans fallback;src:local("Arial"),local("Helvetica");size-adjust:101.4%;ascent-override:100.6%;descent-override:26.6%;line-gap-override:0%}:root{--bg:#f5f2ea;--surface:#fbf9f4;--surface-2:#ece7da;--surface-3:#e2dccb;--line:rgba(20, 22, 27, .12);--line-strong:rgba(20, 22, 27, .26);--text:#14161b;--text-2:#444b57;--text-3:#565d6c;--accent:#0a735a;--change:#7c5000;--conflict:#b32917;--key:#3347c9;--on-accent:#ffffff;--accent-wash:rgba(10, 115, 90, .10);--change-wash:rgba(124, 80, 0, .11);--conflict-wash:rgba(179, 41, 23, .09);--key-wash:rgba(51, 71, 201, .08);--glow:rgba(10, 115, 90, .20);color-scheme:light;--code-bg:#0e1218;--code-bar:#151a22;--code-edge:rgba(255, 255, 255, .11);--code-text:#e4e8ef;--code-dim:#8e99aa;--code-add:#5ee0a8;--code-chg:#f5b94a;--code-del:#ff7b6b;--code-key:#9aa9ff;--code-hl:rgba(154, 169, 255, .13);--tok-kw:#9aa9ff;--tok-def:#c9a8ff;--tok-type:#6fd0e6;--tok-fn:#e8c27a;--tok-str:#7fdcb5;--tok-num:#f0a77c;--tok-com:#8e99aa;--tok-op:#a3adbd;--tok-id:#e4e8ef;--font-display:"Newsreader", "Newsreader Fallback", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--sheet:84rem;--gutter:clamp(1rem, 3.2vw, 2rem);--header-h:3.5rem;--sticky-top:var(--header-h);--side-w:16rem;--toc-w:14.5rem;--measure:41rem;--r:3px;--ease:cubic-bezier(.16, 1, .3, 1);--t-fast:140ms;--t-med:420ms;--hatch:repeating-linear-gradient(315deg, var(--line) 0 1px, transparent 0 50%);--grid-size:24px;--tick-color:var(--line-strong);--i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12.5l5 5L20 6.5' fill='none' stroke='black' stroke-width='2.4'/%3E%3C/svg%3E");--i-x:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.5 5.5l13 13M18.5 5.5l-13 13' fill='none' stroke='black' stroke-width='2.4'/%3E%3C/svg%3E");--i-neq:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9h14M5 15h14M15 4.5l-6 15' fill='none' stroke='black' stroke-width='2.2'/%3E%3C/svg%3E");--i-ban:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8' fill='none' stroke='black' stroke-width='2.2'/%3E%3Cpath d='M6.3 17.7l11.4-11.4' stroke='black' stroke-width='2.2'/%3E%3C/svg%3E");--i-bang:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v11' stroke='black' stroke-width='2.6'/%3E%3Crect x='10.7' y='18' width='2.6' height='2.6' fill='black'/%3E%3C/svg%3E");--i-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");--i-arrow-l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 12H5M11 6l-6 6 6 6' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");--i-copy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='8.5' y='8.5' width='11.5' height='11.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M4 15.5V4h11.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E");--i-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M15.5 15.5L21 21' stroke='black' stroke-width='2'/%3E%3C/svg%3E");--i-sun:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='1.9'/%3E%3Cpath d='M12 2.5v2.5M12 19v2.5M2.5 12H5M19 12h2.5M5.3 5.3l1.8 1.8M16.9 16.9l1.8 1.8M5.3 18.7l1.8-1.8M16.9 7.1l1.8-1.8' stroke='black' stroke-width='1.9'/%3E%3C/svg%3E");--i-moon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.5 14.2A8.5 8.5 0 1 1 9.8 3.5a7 7 0 0 0 10.7 10.7z' fill='none' stroke='black' stroke-width='1.9'/%3E%3C/svg%3E");--i-menu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.5 6.5h17M3.5 12h17M3.5 17.5h17' stroke='black' stroke-width='2'/%3E%3C/svg%3E");--i-play:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 4.5l13 7.5-13 7.5z' fill='black'/%3E%3C/svg%3E");--i-pause:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 4.5h3.5v15H7zM13.5 4.5H17v15h-3.5z' fill='black'/%3E%3C/svg%3E");--i-replay:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 12a7.5 7.5 0 1 0 2.4-5.5M4 4v5h5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");--i-lattice:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 220'%3E%3Cpath d='M100 196L40 146M100 196V146M100 196L160 146M40 146V86M40 146L100 86M100 146L40 86M100 146L160 86M160 146L100 86M160 146V86M40 86L100 36M100 86V36M160 86L100 36' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M92 188h16v16H92zM32 138h16v16H32zM92 138h16v16H92zM152 138h16v16h-16zM32 78h16v16H32zM92 78h16v16H92zM152 78h16v16h-16zM92 28h16v16H92z' fill='black'/%3E%3C/svg%3E");--i-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32.00 58.40L12.20 41.90M32.00 58.40L32.00 41.90M32.00 58.40L51.80 41.90M12.20 41.90L12.20 22.10M12.20 41.90L32.00 22.10M32.00 41.90L12.20 22.10M32.00 41.90L51.80 22.10M51.80 41.90L32.00 22.10M51.80 41.90L51.80 22.10M12.20 22.10L32.00 5.60M32.00 22.10L32.00 5.60M51.80 22.10L32.00 5.60' fill='none' stroke='black' stroke-opacity='.72' stroke-width='2.6' stroke-linecap='square'/%3E%3Cpath d='M28.50 54.90h7v7h-7zM8.70 38.40h7v7h-7zM28.50 38.40h7v7h-7zM48.30 38.40h7v7h-7zM8.70 18.60h7v7h-7zM28.50 18.60h7v7h-7zM48.30 18.60h7v7h-7zM27.50 1.10h9v9h-9z' fill='black'/%3E%3C/svg%3E");--i-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 4.5l7.5 7.5L8 19.5' fill='none' stroke='black' stroke-width='2.2'/%3E%3C/svg%3E")}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0d10;--surface:#11141a;--surface-2:#171b22;--surface-3:#1e232c;--line:rgba(255, 255, 255, .09);--line-strong:rgba(255, 255, 255, .20);--text:#eceff4;--text-2:#aab2bf;--text-3:#8a93a1;--accent:#3ddbb0;--change:#f5b94a;--conflict:#ff6b5e;--key:#8ea2ff;--on-accent:#04231b;--accent-wash:rgba(61, 219, 176, .10);--change-wash:rgba(245, 185, 74, .10);--conflict-wash:rgba(255, 107, 94, .10);--key-wash:rgba(142, 162, 255, .10);--glow:rgba(61, 219, 176, .22);color-scheme:dark}}:root[data-theme=dark]{--bg:#0b0d10;--surface:#11141a;--surface-2:#171b22;--surface-3:#1e232c;--line:rgba(255, 255, 255, .09);--line-strong:rgba(255, 255, 255, .20);--text:#eceff4;--text-2:#aab2bf;--text-3:#8a93a1;--accent:#3ddbb0;--change:#f5b94a;--conflict:#ff6b5e;--key:#8ea2ff;--on-accent:#04231b;--accent-wash:rgba(61, 219, 176, .10);--change-wash:rgba(245, 185, 74, .10);--conflict-wash:rgba(255, 107, 94, .10);--key-wash:rgba(142, 162, 255, .10);--glow:rgba(61, 219, 176, .22);color-scheme:dark}@media(max-width:59.99rem){:root{--sticky-top:0px;--header-h:3.5rem}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--sticky-top) + 1.5rem);background:var(--bg)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font:1rem/1.6 var(--font-sans);font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body.page{overflow-x:clip;background:linear-gradient(var(--bg),var(--bg))50% 0/min(100%,var(--sheet))100% no-repeat,var(--hatch)0 0/10px 10px,var(--bg)}body.page-doc .doc-shell,.sheet{max-width:var(--sheet);margin-inline:auto;width:100%}img,svg,video{max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}::selection{background:var(--accent);color:var(--on-accent)}:focus{outline:none}:focus-visible{outline:2px solid var(--key);outline-offset:2px;border-radius:1px}.skip-link{position:absolute;left:1rem;top:-4rem;z-index:200;padding:.6rem 1rem;background:var(--text);color:var(--bg);font-weight:600;text-decoration:none;transition:top var(--t-fast)var(--ease)}.skip-link:focus{top:.75rem}#content:focus{outline:none}.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.mono{font-family:var(--font-mono)}.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}a{color:var(--accent);text-decoration-line:underline;text-decoration-thickness:.06em;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);transition:text-decoration-color var(--t-fast),color var(--t-fast)}a:hover{text-decoration-color:initial}code,kbd,samp{font-family:var(--font-mono);font-size:max(.86em,10.5px);font-feature-settings:"zero" 0}:not(pre)>code{padding:.08em .36em;background:var(--surface-2);border:1px solid var(--line);border-radius:2px;color:var(--text);overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone}kbd{display:inline-block;min-width:1.5em;padding:.08em .4em;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:3px;background:var(--surface);color:var(--text-2);font-size:max(.72em,10.5px);line-height:1.4;text-align:center}.kicker{--ls:.08em;display:block;margin:0 0 .9rem;font:500 .72rem/1.3 var(--font-mono);letter-spacing:var(--ls);text-transform:uppercase;color:var(--text-3)}.kicker b,.kicker .sec{color:var(--accent);font-weight:600}.display,.doc h1,.doc h2{font-family:var(--font-display);font-weight:500;letter-spacing:-.022em;text-wrap:balance;font-optical-sizing:auto}.display{font-size:clamp(2.6rem,6vw,5rem);line-height:1;margin:0}.display em,.doc h1 em,.doc h2 em{font-style:italic}.dim{color:var(--text-3)}hr{border:0;height:9px;margin:2.5rem 0;background:linear-gradient(var(--line-strong),var(--line-strong))0/calc(50% - 10px)1px no-repeat,linear-gradient(var(--line-strong),var(--line-strong))100%/calc(50% - 10px)1px no-repeat,linear-gradient(var(--text-3),var(--text-3))50%/7px 7px no-repeat;max-width:var(--measure);clip-path:none}.ticks,.code,.term,.fig-body,.widget,.lesson-meta,.stage{position:relative}.ticks::before,.code::before,.term::before,.fig-body::before,.widget::before,.lesson-meta::before,.stage::before{content:"";position:absolute;inset:-5px;z-index:2;pointer-events:none;--t:8px;--c:var(--tick-color);background:linear-gradient(var(--c),var(--c))0 0/var(--t)1px,linear-gradient(var(--c),var(--c))0 0/1px var(--t),linear-gradient(var(--c),var(--c))100% 0/var(--t)1px,linear-gradient(var(--c),var(--c))100% 0/1px var(--t),linear-gradient(var(--c),var(--c))0 100%/var(--t)1px,linear-gradient(var(--c),var(--c))0 100%/1px var(--t),linear-gradient(var(--c),var(--c))100% 100%/var(--t)1px,linear-gradient(var(--c),var(--c))100% 100%/1px var(--t);background-repeat:no-repeat}.hatch{background:var(--hatch)0 0/10px 10px}.grid-bg{position:relative;isolation:isolate}.grid-bg::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(var(--line) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size),linear-gradient(90deg,var(--line) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size);-webkit-mask-image:radial-gradient(ellipse at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 0%,#000 30%,transparent 75%)}.btn{--cut:.7rem;--btn-bg:var(--surface);--btn-bd:var(--line-strong);--btn-fg:var(--text);position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:2.75rem;padding:.55rem 1.2rem;border:0;background:0 0;color:var(--btn-fg);font:600 .9rem/1.1 var(--font-sans);letter-spacing:.005em;text-decoration:none;white-space:nowrap;cursor:pointer;transition:transform var(--t-fast)var(--ease)}.btn::before,.btn::after{content:"";position:absolute;z-index:-1;transition:background-color var(--t-fast)}.btn::before{inset:0;background:var(--btn-bd);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}.btn::after{inset:1px;background:var(--btn-bg);clip-path:polygon(0 0,calc(100% - var(--cut) + .59px) 0,100% calc(var(--cut) - .59px),100% 100%,0 100%)}.btn:hover{--btn-bg:var(--surface-2);--btn-bd:var(--text-3);color:var(--btn-fg)}.btn:active{transform:translateY(1px)}.btn-primary{--btn-bg:var(--accent);--btn-bd:var(--accent);--btn-fg:var(--on-accent)}.btn-primary:hover{--btn-bg:color-mix(in srgb, var(--accent) 86%, var(--text));--btn-bd:color-mix(in srgb, var(--accent) 86%, var(--text))}.btn-quiet{--btn-bg:transparent;--btn-bd:transparent;--btn-fg:var(--text-2)}.btn-quiet:hover{--btn-bg:var(--surface-2);--btn-bd:transparent;--btn-fg:var(--text)}.btn-sm{min-height:2.25rem;padding:.4rem .9rem;font-size:.84rem;--cut:.55rem}.btn-lg{min-height:3.25rem;padding:.7rem 1.5rem;font-size:1rem;--cut:.9rem}.btn .arrow,.arrow-after::after{content:"";width:1em;height:1em;background:currentColor;-webkit-mask:var(--i-arrow)center/contain no-repeat;mask:var(--i-arrow)center/contain no-repeat;transition:transform var(--t-fast)var(--ease)}.btn:hover .arrow,.btn:hover.arrow-after::after,a:hover>.arrow-after::after{transform:translateX(3px)}.btn[aria-disabled=true],.btn:disabled{opacity:.5;pointer-events:none}.link-arrow{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;text-decoration:none}.link-arrow::after{content:"";width:1em;height:1em;background:currentColor;-webkit-mask:var(--i-arrow)center/contain no-repeat;mask:var(--i-arrow)center/contain no-repeat;transition:transform var(--t-fast)var(--ease)}.link-arrow:hover::after{transform:translateX(3px)}.icon-btn{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid transparent;border-radius:var(--r);background:0 0;color:var(--text-2);transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn::before{content:"";width:1.2rem;height:1.2rem;background:currentColor;-webkit-mask:var(--icon)center/contain no-repeat;mask:var(--icon)center/contain no-repeat}@keyframes pr-show{to{opacity:1;transform:none}}html.js .reveal:not(.is-in),html.js [data-reveal]:not(.is-in){opacity:0;transform:translateY(14px);animation:pr-show 1ms linear 2.5s forwards}.reveal,[data-reveal]{transition:opacity var(--t-med)var(--ease),transform var(--t-med)var(--ease);transition-delay:calc(var(--i,0) * 70ms)}.reveal.is-in,[data-reveal].is-in{opacity:1;transform:none}[data-seeking],[data-seeking] *{transition-duration:0s!important;transition-delay:0s!important}@media(prefers-reduced-motion:reduce){html.js .reveal:not(.is-in),html.js [data-reveal]:not(.is-in){opacity:1;transform:none;animation:none}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}}@media(forced-colors:active){.btn{border:1px solid ButtonText}.btn::before,.btn::after{display:none}.code,.term,.stage{border:1px solid CanvasText}.line.hl{outline:1px solid Highlight}}@view-transition{navigation: auto; }::view-transition-group(root){animation-duration:120ms}.site-header{view-transition-name:header}.doc-sidebar{view-transition-name:sidebar}::view-transition-group(header),::view-transition-group(sidebar){animation:none}::view-transition-old(header),::view-transition-new(header),::view-transition-old(sidebar),::view-transition-new(sidebar){animation:none;mix-blend-mode:normal}@media(prefers-reduced-motion:reduce){@view-transition{navigation: none; }}.site-header{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:clamp(.75rem,2vw,2rem);height:var(--header-h);padding-inline:max(var(--gutter),calc((100% - var(--sheet))/2 + var(--gutter)));background:var(--bg);border-bottom:1px solid transparent}.site-header.is-scrolled{border-bottom-color:var(--line-strong)}@supports(animation-timeline:scroll()){@keyframes hairline{from{border-bottom-color:transparent}to{border-bottom-color:var(--line-strong)}}.site-header{animation:hairline linear both;animation-timeline:scroll(root);animation-range:0 24px}}.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--text);text-decoration:none;flex:none}.brand-mark{width:1.6rem;height:1.6rem;display:block;object-fit:none;object-position:300% 0;background:var(--accent);-webkit-mask:var(--i-mark)center/contain no-repeat;mask:var(--i-mark)center/contain no-repeat}.brand-name{font:500 1.5rem/1 var(--font-display);letter-spacing:-.02em;padding-bottom:.12rem}.site-nav{display:flex;align-items:stretch;align-self:stretch;gap:.15rem;margin-left:clamp(.25rem,2vw,1.5rem)}.site-nav a{white-space:nowrap;position:relative;display:inline-flex;align-items:center;padding-inline:.8rem;color:var(--text-2);font:500 .9rem/1 var(--font-sans);text-decoration:none;transition:color var(--t-fast)}.site-nav a::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--t-med)var(--ease)}.site-nav a:hover{color:var(--text)}.site-nav a:hover::after{transform:scaleX(.35)}.site-nav a[aria-current]{color:var(--text)}.site-nav a[aria-current]::after{transform:scaleX(1)}.site-tools{margin-left:auto;display:flex;align-items:center;gap:.5rem}.search-open{--icon:var(--i-search);display:inline-flex;align-items:center;gap:.55rem;min-width:11.5rem;height:2.375rem;padding:0 .5rem 0 .7rem;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text-3);font:.875rem/1 var(--font-sans);text-align:left;transition:border-color var(--t-fast),color var(--t-fast)}.search-open::before{content:"";flex:none;width:1rem;height:1rem;background:currentColor;-webkit-mask:var(--icon)center/contain no-repeat;mask:var(--icon)center/contain no-repeat}.search-open kbd{margin-left:auto}.search-open:hover{border-color:var(--text-3);color:var(--text-2)}#theme-toggle{--icon:var(--i-moon);width:2.5rem;height:2.5rem;padding:0;display:inline-grid;place-items:center;border:1px solid transparent;border-radius:var(--r);background:0 0;color:var(--text-2)}#theme-toggle::before{content:"";width:1.2rem;height:1.2rem;background:currentColor;-webkit-mask:var(--icon)center/contain no-repeat;mask:var(--icon)center/contain no-repeat}#theme-toggle:hover{background:var(--surface-2);color:var(--text)}:root[data-theme=dark] #theme-toggle{--icon:var(--i-sun)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #theme-toggle{--icon:var(--i-sun)}}html:not(.js) #theme-toggle,html:not(.js) .search-open{display:none}.site-header .btn{--cut:.55rem;min-height:2.25rem;padding:.35rem 1rem;font-size:.86rem;margin-left:.25rem}.read-progress{position:fixed;left:0;top:0;z-index:70;width:100%;height:2px;background:var(--accent);transform:scaleX(var(--p,0));transform-origin:0 50%;pointer-events:none}@media(max-width:59.99rem){.site-header{position:relative;flex-wrap:wrap;height:auto;gap:0 .5rem;padding-block:.5rem 0;border-bottom-color:var(--line)}.site-header .brand{min-height:2.5rem}.site-tools{order:2}.site-nav{order:3;flex:1 0 100%;margin:.35rem calc(var(--gutter) * -1)0;padding-inline:calc(var(--gutter) - .8rem);height:2.75rem;overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--line)}.site-nav::-webkit-scrollbar{display:none}.site-nav a{flex:none;padding-inline:.8rem}.site-nav a::after{left:.8rem;right:.8rem;bottom:0}.site-header{animation:none}}@media(max-width:41rem){.search-open{min-width:0;width:2.5rem;padding:0;justify-content:center;font-size:0;border-color:transparent;background:0 0}.search-open kbd{display:none}.search-open::before{width:1.2rem;height:1.2rem}.site-header .btn{padding:.35rem .85rem}}.site-footer{position:relative;margin-top:auto;overflow-x:clip;border-top:1px solid var(--line-strong)}.foot-inner{position:relative;max-width:var(--sheet);margin-inline:auto;padding:1.5rem var(--gutter)1.35rem;background:var(--surface);border-inline:1px solid var(--line)}.foot-inner::before,.foot-inner::after{content:"";position:absolute;top:-6px;width:11px;height:11px;background:linear-gradient(var(--text-3),var(--text-3))50%/100% 1px no-repeat,linear-gradient(var(--text-3),var(--text-3))50%/1px 100% no-repeat;pointer-events:none}.foot-inner::before{left:-6px}.foot-inner::after{right:-6px}.foot-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.7rem 2.5rem}.foot-brand{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .9rem;margin:0}.foot-title{margin:0;font:500 .72rem/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.foot-tag{color:var(--text-2);font-size:.9rem}.foot-nav{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 0}.foot-nav ul{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin:0;padding:0;list-style:none}.foot-nav .foot-project{margin-left:1.5rem;padding-left:1.5rem;border-left:1px solid var(--line-strong)}.foot-nav a{color:var(--text-2);font-size:.875rem;text-decoration:none}.foot-nav a:hover{color:var(--text);text-decoration:underline}@media(max-width:41rem){.foot-nav .foot-project{margin-left:0;padding-left:0;border-left:0;flex-basis:100%}}.site-footer .legal{margin:1rem 0 0;padding:.9rem max(0px,calc(100% - 62rem))0 0;border-top:1px solid var(--line);color:var(--text-3);font-size:.78rem;line-height:1.55}.site-footer .legal .applies{font-family:var(--font-mono);font-size:.72rem}.repo-link{color:var(--text-2);font:500 .86rem/1 var(--font-sans);text-decoration:none;padding:0 .35rem}.repo-link:hover{color:var(--text)}@media(max-width:41rem){.repo-link{display:none}}@media(pointer:coarse){#theme-toggle,.icon-btn{width:2.75rem;height:2.75rem}.search-open{height:2.75rem}}.page-redirect{max-width:40rem;margin:4rem auto;padding:0 var(--gutter);font-size:1.05rem}.doc-shell{flex:1;display:grid;grid-template-columns:var(--side-w)minmax(0,1fr)var(--toc-w);border-inline:1px solid var(--line);background:var(--bg)}.doc-shell.no-toc{grid-template-columns:var(--side-w)minmax(0,1fr)}.doc-shell.no-sidebar{grid-template-columns:minmax(0,1fr)var(--toc-w)}.doc-shell.no-toc.no-sidebar{grid-template-columns:minmax(0,1fr)}.doc-shell.no-sidebar .doc-main,.doc-shell.no-toc.no-sidebar .doc-main{max-width:56rem}.doc-shell.no-toc.no-sidebar .doc-main{margin-inline:auto;width:100%}.doc-sidebar{border-right:1px solid var(--line);min-width:0}.doc-sidebar>nav{position:sticky;top:var(--sticky-top);max-height:calc(100vh - var(--sticky-top));overflow-y:auto;overscroll-behavior:contain;padding:1.5rem 1rem 3rem 1.25rem;scrollbar-width:thin;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 1.25rem,#000 calc(100% - 2.75rem),transparent);mask-image:linear-gradient(to bottom,transparent,#000 1.25rem,#000 calc(100% - 2.75rem),transparent)}.side-group{margin:1.75rem 0 .5rem;font:500 .68rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}.doc-sidebar nav>.side-group:first-child{margin-top:0}.doc-sidebar ul{list-style:none;margin:0;padding:0}.doc-sidebar li a{position:relative;display:block;padding:.36rem .6rem .36rem .8rem;border-left:1px solid var(--line-strong);color:var(--text-2);font-size:.9rem;line-height:1.35;text-decoration:none;transition:color var(--t-fast),background-color var(--t-fast),border-color var(--t-fast)}.doc-sidebar li a:hover{color:var(--text);background:var(--surface-2)}.doc-sidebar li a[aria-current=page]{color:var(--text);font-weight:500;border-left-color:var(--accent);box-shadow:inset 1px 0 0 var(--accent);background:var(--accent-wash)}[data-section=learn] .doc-sidebar li a,[data-section=migrate] .doc-sidebar li a{padding-left:1.15rem}[data-section=learn] .doc-sidebar li a::before,[data-section=migrate] .doc-sidebar li a::before{content:"";position:absolute;left:-4px;top:50%;width:7px;height:7px;margin-top:-3.5px;background:var(--bg);border:1.5px solid var(--text-3);transform:rotate(45deg)scale(.85);transition:background-color var(--t-fast),border-color var(--t-fast),transform var(--t-fast)var(--ease)}[data-section=learn] .doc-sidebar li a[aria-current=page]::before,[data-section=migrate] .doc-sidebar li a[aria-current=page]::before{border-color:var(--accent);background:var(--bg);transform:rotate(45deg)scale(1.15)}.doc-sidebar li a.is-done::before{background:var(--accent);border-color:var(--accent)}.doc-sidebar li a.is-done{color:var(--text);padding-right:1.7rem}.doc-sidebar li a.is-done::after{content:"";position:absolute;right:.55rem;top:50%;width:.85rem;height:.85rem;margin-top:-.425rem;background:var(--accent);-webkit-mask:var(--i-check)center/contain no-repeat;mask:var(--i-check)center/contain no-repeat}.side-pinned{margin:0 0 .5rem}.side-pinned a{padding-left:.8rem!important}.side-pinned a::before{content:none!important}.side-pinned a{font:500 .74rem/1.3 var(--font-mono)!important;letter-spacing:.02em;padding-block:.3rem!important}.side-n{display:inline-block;min-width:1.9em;margin-right:.15em;font:600 .72rem/1 var(--font-mono);letter-spacing:.02em;color:var(--accent)}.progress-summary{margin:0 0 1.25rem;padding:.7rem .8rem;border:1px solid var(--line-strong);background:var(--surface);font:500 .72rem/1.3 var(--font-mono);letter-spacing:.04em;color:var(--text-2)}.progress-summary .bar{display:block;height:3px;margin-top:.55rem;background:var(--line);overflow:hidden}.progress-summary .bar i{display:block;height:100%;background:var(--accent);transform:scaleX(var(--p,0));transform-origin:0 50%;transition:transform var(--t-med)var(--ease)}.doc-toc{border-left:1px solid var(--line);min-width:0}.doc-toc>nav{position:sticky;top:var(--sticky-top);max-height:calc(100vh - var(--sticky-top));overflow-y:auto;padding:1.75rem 1.25rem 3rem;scrollbar-width:thin}.toc-title{margin:0 0 .8rem;font:500 .68rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}.doc-toc ul{list-style:none;margin:0;padding:0}.doc-toc a{display:block;padding:.26rem 0 .26rem .8rem;border-left:1px solid var(--line);margin-left:-1px;color:var(--text-2);font-size:.84rem;line-height:1.35;text-decoration:none;transition:color var(--t-fast),border-color var(--t-fast)}.doc-toc .toc-l3 a{padding-left:1.5rem;font-size:.8rem}.doc-toc a:hover{color:var(--text)}.doc-toc a[aria-current=true],.doc-toc a.is-active{color:var(--text);font-weight:500;border-left-color:var(--accent);box-shadow:-1px 0 0 var(--accent)}.notfound-path{margin:1.4rem 0 0;font:.8rem/1.4 var(--font-mono);color:var(--text-3);overflow-wrap:anywhere}.notfound-path:empty{display:none}.page-notfound .doc-actions{margin-top:1.5rem}.toc-inline{display:none;margin:0 0 2rem;border:1px solid var(--line-strong);background:var(--surface)}.toc-inline>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:.7rem .9rem;font:500 .72rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-2);list-style:none}.toc-inline>summary::-webkit-details-marker{display:none}.toc-inline>summary::after{content:"+";content:"+"/"";font-size:1rem;line-height:1}.toc-inline[open]>summary::after{content:"\2212";content:"\2212"/""}.toc-inline nav{max-height:min(60vh,28rem);overflow-y:auto;padding:.2rem .9rem 1rem;border-top:1px solid var(--line)}.toc-inline ul{list-style:none;margin:.5rem 0 0;padding:0}.toc-inline a{display:block;padding:.38rem 0;color:var(--text-2);font-size:.9rem;line-height:1.35;text-decoration:none}.toc-inline .toc-l3 a{padding-left:1rem;font-size:.85rem}.toc-inline a:hover{color:var(--text);text-decoration:underline}@media(max-width:68.74rem){.toc-inline{display:block}}.doc-main{min-width:0;padding:1.5rem clamp(1rem,4.4vw,3.75rem)4rem}.doc-main>.doc:first-child{padding-top:2.6rem}.breadcrumb{margin-bottom:1.75rem;font:.74rem/1.4 var(--font-mono);color:var(--text-3)}.breadcrumb ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.breadcrumb a{color:var(--text-2);text-decoration:none}.breadcrumb a:hover{color:var(--text);text-decoration:underline}.breadcrumb li:not(:last-child)::after,.breadcrumb a:not(:last-child)::after{content:"/";content:"/"/"";margin:0 .55em;color:var(--text-3)}.breadcrumb [aria-current]{color:var(--text)}.breadcrumb .crumb-group{color:var(--text-3)}.doc-head{position:relative;padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid var(--line)}.doc-head .kicker{margin-bottom:1.1rem}.doc h1{margin:0;font-size:clamp(2.35rem,1.5rem + 3.2vw,3.85rem);line-height:1.03;max-width:22ch}.doc-head .lede{margin:1.4rem 0 0;max-width:40rem;font:clamp(1.18rem,1.05rem + .5vw,1.4rem)/1.5 var(--font-display);color:var(--text-2);text-wrap:balance}.doc .doc-actions{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:1.4rem 0 0;font:500 .74rem/1 var(--font-mono);letter-spacing:.02em}.doc-actions a{color:var(--text-2);text-decoration:none;padding:.45rem 0}.doc-actions a:hover{color:var(--accent);text-decoration:underline}.copy-page{padding:.45rem .75rem;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text-2);font:inherit;transition:border-color var(--t-fast),color var(--t-fast)}.copy-page:hover{border-color:var(--accent);color:var(--text)}html:not(.js) .copy-page{display:none}.doc-head .lesson-meta{width:100%;display:flex;flex-wrap:wrap;margin:2.1rem 0 0;padding:0;max-width:48rem;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);background:var(--surface);position:relative}.doc-head .lesson-meta>div{flex:1 1 12rem;margin:0;padding:.75rem .95rem .85rem;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.doc-head .lesson-meta>div:first-child{flex:0 0 7.5rem}.doc-head .lesson-meta dt{margin:0 0 .3rem;font:500 .66rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}.doc-head .lesson-meta dd{margin:0;font-size:.93rem;line-height:1.45;color:var(--text)}.doc-head .lesson-meta .meta-done dt{color:var(--accent)}.doc-head .lesson-meta:not(:has(>div:nth-child(3))){width:fit-content;flex-wrap:nowrap}.doc-head .lesson-meta:not(:has(>div:nth-child(3)))>div{flex:none;min-width:7.5rem}.doc{font-size:1.0625rem;line-height:1.68;color:var(--text)}.doc :where(p,li,dt,dd,h1,h2,h3,h4,summary,figcaption,blockquote,.callout-title){overflow-wrap:anywhere}.doc :where(td,th){overflow-wrap:break-word}.doc :where(h1,h2,h3,h4) code{font-size:.76em;padding:.04em .3em;vertical-align:.06em}.doc>:where(p,ul,ol,dl,blockquote,h2,h3,h4,h5){max-width:var(--measure)}.doc p{margin:0 0 1.15em;text-wrap:pretty}.doc strong{font-weight:600}.doc em{font-style:italic}.doc ul,.doc ol{margin:0 0 1.2em;padding-left:1.35rem}.doc li{margin:.3em 0;padding-left:.2rem}.doc li::marker{color:var(--text-3)}.doc ol{counter-reset:none}.doc ol li::marker{font-family:var(--font-mono);font-size:.85em;color:var(--accent)}.doc li>p{margin-bottom:.5em}.doc li>ul,.doc li>ol{margin-bottom:.4em}.doc dl{margin:0 0 1.2em}.doc dt{font-weight:600;margin-top:.8em}.doc dd{margin:.15em 0 0;color:var(--text-2)}.doc h2{position:relative;margin:3.4rem 0 1rem;font-size:clamp(1.7rem,1.25rem + 1.3vw,2.2rem);line-height:1.12;padding-top:1.3rem}.doc h2::before{content:"";position:absolute;left:0;top:0;width:2.6rem;height:2px;background:var(--accent)}.doc-head+h2,.doc>:first-child{margin-top:0}.doc .cards{margin:1.6rem 0 1.8rem}.doc .card>h3{margin:0;font:500 1.35rem/1.2 var(--font-display);letter-spacing:-.012em}.doc .card>p{margin:0;max-width:none;font-size:.95rem;line-height:1.55;color:var(--text-2)}.doc .card .anchor::after,.doc .card .anchor-side{display:none}@media(min-width:60rem){.doc h2::after{content:"\00a7";content:"\00a7"/"";position:absolute;left:-2.1rem;top:1.45rem;font:1.15rem/1 var(--font-display);color:var(--text-3)}}.doc h3{margin:2.4rem 0 .6rem;font:600 1.2rem/1.3 var(--font-sans);letter-spacing:-.005em}.doc h4{margin:1.8rem 0 .5rem;font:500 .76rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}.doc h2 code,.doc h3 code{font-size:.8em}.doc h1 code{padding:0;border:0;background:0 0;color:var(--accent);font-size:.78em;letter-spacing:-.03em}.anchor,.anchor:hover{color:inherit;text-decoration:none}.anchor::after{content:"#";content:"#"/"";margin-left:.45em;font:.7em/1 var(--font-mono);color:var(--text-3);opacity:0;transition:opacity var(--t-fast)}.doc h2:hover .anchor::after,.doc h3:hover .anchor::after,.doc h4:hover .anchor::after,.anchor:focus-visible::after{opacity:1}@media(hover:none){.anchor::after{opacity:.5}}.anchor-side{margin-left:.45em;font:.7em/1 var(--font-mono);color:var(--text-3);text-decoration:none;opacity:0;transition:opacity var(--t-fast)}.doc h2:hover .anchor-side,.doc h3:hover .anchor-side,.doc h4:hover .anchor-side,.anchor-side:focus-visible{opacity:1}@media(hover:none){.anchor-side{opacity:.5}}.doc blockquote{margin:1.6rem 0;padding:.2rem 0 .2rem 1.25rem;border-left:2px solid var(--line-strong);font:italic 500 1.2rem/1.5 var(--font-display);color:var(--text-2)}.doc blockquote p{margin-bottom:.5em}.table-wrap{margin:1.6rem 0;overflow-x:auto;border-top:2px solid var(--text);border-bottom:1px solid var(--line-strong);scrollbar-width:thin}.doc>table{display:block;margin:1.6rem 0;overflow-x:auto;border-top:2px solid var(--text);border-bottom:1px solid var(--line-strong)}.doc table{border-collapse:collapse;width:100%;min-width:34rem;font-size:.93rem;line-height:1.5;font-variant-numeric:tabular-nums}.doc th{padding:.65rem .9rem;text-align:left;vertical-align:bottom;font:500 .68rem/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--line-strong)}.doc td{padding:.6rem .9rem;vertical-align:top;border-top:1px solid var(--line)}.doc tbody tr:first-child td{border-top:0}.doc td:first-child{font-weight:500}.doc td code,.doc th code{white-space:normal;overflow-wrap:break-word}.doc tbody tr:hover td{background:var(--surface)}.table-wrap{background:linear-gradient(to right,var(--bg),var(--bg))0/1.25rem 100% no-repeat local,linear-gradient(to left,var(--bg),var(--bg))100%/1.25rem 100% no-repeat local,linear-gradient(to right,var(--line-strong),transparent)0/.6rem 100% no-repeat,linear-gradient(to left,var(--line-strong),transparent)100%/.6rem 100% no-repeat}@media(max-width:40rem){.doc table{min-width:0;font-size:.875rem}.doc th,.doc td{padding-inline:.55rem}.doc table:is(.is-stack,.is-pair),.doc table:is(.is-stack,.is-pair) tbody{display:block}.doc table:is(.is-stack,.is-pair) thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}.doc table:is(.is-stack,.is-pair) tr{display:block;padding:.8rem 0 .9rem;border-top:1px solid var(--line)}.doc table:is(.is-stack,.is-pair) tbody tr:first-child{border-top:0}.doc table:is(.is-stack,.is-pair) td{display:block;padding:.3rem 0 .1rem;border:0;background:0 0}.doc table.is-stack td::before{content:attr(data-label);display:block;margin-bottom:.05rem;font:500 .68rem/1.5 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.doc table:is(.is-stack,.is-pair) td:first-child{padding-top:0;padding-bottom:.15rem;font-weight:500}.doc table.is-stack td:first-child::before{content:none}.doc table:is(.is-stack,.is-pair) tbody tr:hover td{background:0 0}}.doc-foot{margin-top:4rem;padding-top:1.75rem;border-top:1px solid var(--line-strong)}.pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.75rem}.pager a{position:relative;display:flex;flex-direction:column;gap:.35rem;min-height:5.5rem;padding:1rem 3.25rem 1rem 1.25rem;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);text-decoration:none;transition:border-color var(--t-fast),background-color var(--t-fast),transform var(--t-fast)var(--ease)}.pager a::after{content:"";position:absolute;right:1.1rem;top:50%;width:1.2rem;height:1.2rem;margin-top:-.6rem;background:var(--text-3);-webkit-mask:var(--i-arrow)center/contain no-repeat;mask:var(--i-arrow)center/contain no-repeat;transition:transform var(--t-fast)var(--ease),background-color var(--t-fast)}.pager a:hover{border-color:var(--accent);background:var(--accent-wash)}.pager a:hover::after{transform:translateX(4px);background:var(--accent)}.pager-prev{padding:1rem 1.25rem 1rem 3.25rem!important;text-align:left}.pager-prev::after{right:auto!important;left:1.1rem;-webkit-mask-image:var(--i-arrow-l)!important;mask-image:var(--i-arrow-l)!important}.pager-prev:hover::after{transform:translateX(-4px)!important}.pager-next{grid-column:2;border-top:2px solid var(--accent)!important}.pager-label,.pager-kicker{font:500 .68rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}.pager-title{font:500 1.28rem/1.2 var(--font-display);letter-spacing:-.01em}.pager-desc{font-size:.88rem;color:var(--text-2);line-height:1.4}.mark-done{position:relative;display:inline-flex;align-items:center;gap:.65rem;padding:.55rem 1rem .55rem .7rem;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text);font:500 .9rem/1.2 var(--font-sans);transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.mark-done::before{content:"";width:1.15rem;height:1.15rem;border:1.5px solid var(--text-3);background:0 0;transition:background-color var(--t-fast),border-color var(--t-fast)}.mark-done::after{content:"";position:absolute;left:calc(.7rem + 2px);top:50%;width:.95rem;height:.95rem;margin-top:-.475rem;background:var(--on-accent);-webkit-mask:var(--i-check)center/contain no-repeat;mask:var(--i-check)center/contain no-repeat;opacity:0;transform:scale(.6);transition:opacity var(--t-fast),transform var(--t-med)var(--ease)}.mark-done:hover{border-color:var(--accent)}.mark-done[aria-pressed=true]{background:var(--accent-wash);border-color:var(--accent)}.mark-done[aria-pressed=true]::before{background:var(--accent);border-color:var(--accent)}.mark-done[aria-pressed=true]::after{opacity:1;transform:none}html:not(.js) .mark-done{display:none}.doc-foot .applies{margin:1.5rem 0 0;font:.74rem/1.4 var(--font-mono);color:var(--text-3);letter-spacing:.02em}.doc-foot .applies::before{content:"\00a7  ";content:"\00a7  "/"";color:var(--text-3)}.foot-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem}.drawer-bar{display:none}@media(max-width:80rem){:root{--side-w:14.5rem;--toc-w:13.5rem}}@media(max-width:68.74rem){.doc-shell{grid-template-columns:var(--side-w)minmax(0,1fr)}.doc-toc{display:none}}@media(max-width:59.99rem){.doc-shell{display:block;border-inline:0}.doc-sidebar{border-right:0;border-bottom:1px solid var(--line)}.doc-sidebar>nav{position:static;max-height:none;padding:1rem var(--gutter)}.doc-main{padding-inline:var(--gutter);padding-top:1rem}.pager{grid-template-columns:1fr}.pager-next{grid-column:1}html:not(.js) .doc-shell{display:flex;flex-direction:column}html:not(.js) .doc-main{order:1}html:not(.js) .doc-sidebar{order:2;border-top:1px solid var(--line);border-bottom:0}html.js .doc-shell{display:block}html.js .drawer-bar{display:block;position:sticky;top:0;z-index:55;margin:-1rem calc(var(--gutter) * -1)1rem;padding:.4rem var(--gutter);background:var(--bg);border-bottom:1px solid var(--line)}html.js .drawer-open{--icon:var(--i-menu);display:inline-flex;align-items:center;gap:.6rem;min-height:2.5rem;padding:0 .6rem 0 0;border:0;background:0 0;font:500 .9rem/1 var(--font-sans);color:var(--text)}html.js .drawer-open::before{content:"";width:1.2rem;height:1.2rem;background:currentColor;-webkit-mask:var(--icon)center/contain no-repeat;mask:var(--icon)center/contain no-repeat}html.js .doc-sidebar{position:fixed;inset:0 auto 0 0;z-index:90;width:min(20rem,88vw);background:var(--bg);border:0;border-right:1px solid var(--line-strong);transform:translateX(-102%);visibility:hidden;transition:transform var(--t-med)var(--ease),visibility 0s linear var(--t-med);overflow:hidden}html.js .doc-sidebar>nav{position:static;height:100%;max-height:none;overflow-y:auto;padding:1.25rem 1.25rem 3rem}html.js body.drawer-on .doc-sidebar{transform:none;visibility:visible;transition-delay:0s}html.js body.drawer-on{overflow:hidden}html.js .scrim{position:fixed;inset:0;z-index:80;background:rgba(5,7,10,.55);opacity:0;pointer-events:none;transition:opacity var(--t-med)var(--ease)}html.js body.drawer-on .scrim{opacity:1;pointer-events:auto}}.contents-section{margin-top:3rem}.contents-list{display:grid;grid-template-columns:minmax(0,18rem)minmax(0,1fr);gap:0 2rem;margin:0 0 1.5rem;max-width:56rem}.contents-list dt,.contents-list dd{margin:0;padding:.6rem 0;border-top:1px solid var(--line)}.contents-list dt{font-weight:500}.contents-list dd{color:var(--text-2);font-size:.93rem}@media(max-width:41rem){.contents-list{grid-template-columns:1fr}.contents-list dd{border-top:0;padding-top:0}}@media(pointer:coarse){.doc-sidebar li a{padding-block:.6rem}.mark-done,.copy-page{min-height:2.75rem}.breadcrumb a{padding-block:.35rem;display:inline-block}}.code,.term{--status:var(--code-key);position:relative;margin:1.75rem 0;background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-edge);border-radius:var(--r);font-family:var(--font-mono);font-size:.8125rem;line-height:1.7;text-align:left}.code[data-status=valid],.term[data-status=valid]{--status:var(--code-add)}.code[data-status=conflict],.code[data-status=rejected],.term[data-status=conflict],.term[data-status=rejected]{--status:var(--code-del)}.code[data-status=unintended],.term[data-status=unintended]{--status:var(--code-chg)}.code-title{display:flex;align-items:stretch;min-height:2.5rem;padding:0 3.25rem 0 .9rem;background:var(--code-bar);border-bottom:1px solid var(--code-edge);border-radius:var(--r)var(--r)0 0;font:500 .75rem/1 var(--font-mono);color:var(--code-dim)}.code-title::before{content:"";align-self:center;flex:none;width:7px;height:7px;margin:0 31px 0 0;border-radius:50%;background:#3a424f;box-shadow:14px 0 #3a424f,28px 0 #3a424f}.code-file{display:inline-flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:-1px;padding:0 1rem;background:var(--code-bg);border:1px solid var(--code-edge);border-top:2px solid var(--status);border-bottom-color:var(--code-bg);color:var(--code-text);letter-spacing:.01em}.code-badge,.code-ran{align-self:center;margin-left:auto}.code-ran{color:var(--code-dim);font-weight:400;margin-left:.75rem;white-space:nowrap}.code-ran+.code-badge,.code-badge+.code-ran{margin-left:.75rem}.code-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .55rem .28rem .45rem;border:1px solid color-mix(in srgb,var(--status) 50%,transparent);background:color-mix(in srgb,var(--status) 12%,transparent);color:var(--status);font:600 .68rem/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.code-badge::before{content:"";width:.8rem;height:.8rem;background:currentColor;-webkit-mask:var(--i-check)center/contain no-repeat;mask:var(--i-check)center/contain no-repeat}[data-status=conflict] .code-badge::before{-webkit-mask-image:var(--i-neq);mask-image:var(--i-neq)}[data-status=rejected] .code-badge::before{-webkit-mask-image:var(--i-ban);mask-image:var(--i-ban)}[data-status=rejected] .code-badge{border-style:dashed}[data-status=unintended] .code-badge::before{-webkit-mask-image:var(--i-bang);mask-image:var(--i-bang)}.code-badge[data-exit]{--status:var(--code-del);border-color:color-mix(in srgb,var(--code-del) 50%,transparent);background:color-mix(in srgb,var(--code-del) 12%,transparent);color:var(--code-del)}.code-badge[data-exit]::before{-webkit-mask-image:var(--i-x);mask-image:var(--i-x)}.code-badge+.code-badge{margin-left:.5rem}.code[data-status] .code-body{box-shadow:inset 2px 0 0 var(--status)}.code[data-status=rejected] .code-body{background-image:repeating-linear-gradient(315deg,rgba(255,123,107,9%) 0 1px,transparent 0 50%);background-size:10px 10px;box-shadow:inset 2px 0 0 var(--status)}@media(max-width:41rem){.code-title{padding-left:0;padding-right:2.9rem}.code-title::before,.code-ran{display:none}.code-file{padding:0 .85rem}.code-badge{flex:none;margin-left:auto;letter-spacing:.05em}}.code-body{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#3a424f transparent;border-radius:0 0 var(--r)var(--r)}.code pre,.term pre{margin:0;padding:.9rem 0;font:inherit;tab-size:4}.code code,.term code{display:block;min-width:max-content;font:inherit;color:inherit;background:0 0;border:0;padding:0}.code code:has(>.line){white-space:normal;counter-reset:ln}.line{display:block;white-space:pre;padding:0 1.1rem 0 1.15rem;min-height:1.7em}.line.hl{background:var(--code-hl);box-shadow:inset 2px 0 0 var(--code-key)}.line.hl::before{content:"highlighted: ";position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.line.add,.line.ins{background:rgba(94,224,168,.1);box-shadow:inset 2px 0 0 var(--code-add)}.line.del{background:rgba(255,123,107,.1);box-shadow:inset 2px 0 0 var(--code-del)}.ln{display:none}.code[data-ln] .ln{display:inline-block;width:2.2ch;margin-right:1.8ch;text-align:right;color:var(--code-dim);user-select:none;-webkit-user-select:none}.code[data-ln] .line{counter-increment:ln}.code[data-ln] .ln:empty::before{content:counter(ln)}.tok-kw{color:var(--tok-kw)}.tok-def{color:var(--tok-def)}.tok-type{color:var(--tok-type)}.tok-fn{color:var(--tok-fn)}.tok-str{color:var(--tok-str)}.tok-num{color:var(--tok-num)}.tok-com{color:var(--tok-com);font-style:italic}.tok-op{color:var(--tok-op)}.tok-id{color:var(--tok-id)}.code:not(:has(>.code-title)) .line:first-child{padding-right:2.6rem}.code:not(:has(>.code-title)) .copy{background:var(--code-bar);border-color:var(--code-edge)}@media(hover:hover){.code:not(:has(>.code-title)) .copy{opacity:0;transition:opacity var(--t-fast),color var(--t-fast),background-color var(--t-fast),border-color var(--t-fast)}.code:not(:has(>.code-title)):hover .copy,.code:not(:has(>.code-title)) .copy:focus-visible,.code:not(:has(>.code-title)) .copy.is-copied{opacity:1}}.copy{position:absolute;top:.3rem;right:.4rem;z-index:3;display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;padding:0;border:1px solid transparent;border-radius:var(--r);background:0 0;color:var(--code-dim);font-size:0;line-height:0;transition:color var(--t-fast),background-color var(--t-fast),border-color var(--t-fast)}.copy::before{content:"";width:1rem;height:1rem;background:currentColor;-webkit-mask:var(--i-copy)center/contain no-repeat;mask:var(--i-copy)center/contain no-repeat}.copy:hover{color:var(--code-text);background:rgba(255,255,255,7%)}.copy.is-copied{color:var(--code-add);border-color:color-mix(in srgb,var(--code-add) 40%,transparent)}.copy.is-copied::before{-webkit-mask-image:var(--i-check);mask-image:var(--i-check)}.copy.is-copied::after{content:"Copied";position:absolute;right:calc(100% + .4rem);top:50%;transform:translateY(-50%);padding:.25rem .5rem;background:var(--code-bar);border:1px solid var(--code-edge);color:var(--code-add);font:500 .68rem/1 var(--font-mono);letter-spacing:.04em}.copy:focus-visible{outline-color:var(--code-key)}html:not(.js) .copy{display:none}.term{--status:var(--code-add)}.term[data-exit]:not([data-exit="0"]){--status:var(--code-del)}.term .code-title{padding-right:3.25rem}.term .code-file{border-top-color:var(--status)}.term[data-ran]::after{content:"ran on " attr(data-ran);position:absolute;right:.9rem;bottom:.45rem;font:.68rem/1 var(--font-mono);letter-spacing:.03em;color:var(--code-dim);pointer-events:none}.term[data-ran] .term-body{padding-bottom:1.6rem}.term-body{padding:.9rem 0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#3a424f transparent}.code-body,.term-body{background:linear-gradient(to right,var(--code-bg),var(--code-bg))0/1rem 100% no-repeat local,linear-gradient(to left,var(--code-bg),var(--code-bg))100%/1rem 100% no-repeat local,linear-gradient(to right,rgba(255,255,255,.11),transparent)0/.6rem 100% no-repeat,linear-gradient(to left,rgba(255,255,255,.11),transparent)100%/.6rem 100% no-repeat}.term-line{display:flex;gap:1.1ch;padding:0 1.15rem;white-space:pre;min-width:max-content}.term-line .prompt{color:var(--code-chg);user-select:none;-webkit-user-select:none}.term-line .cmd-text{color:var(--code-text);font-weight:500}.term pre.term-out{padding:0;margin-top:.35rem}.term-out code{padding:0 1.15rem;color:var(--code-text);opacity:.94}.term-line+.term-line{margin-top:.1rem}.term-out+.term-line,.term-line+.term-out{margin-top:.35rem}.out-add{color:var(--code-add)}.out-change{color:var(--code-chg)}.out-replace{color:var(--code-chg);font-weight:600}.out-destroy{color:var(--code-del)}.out-err{color:var(--code-del);font-weight:600}.out-dim{color:var(--code-dim)}.term .term-body>.term-out:first-child{margin-top:0}.compare{display:grid;grid-template-columns:repeat(var(--n,2),minmax(0,1fr));gap:1rem;margin:1.75rem 0;align-items:stretch}.compare[data-count="1"]{--n:1}.compare[data-count="2"]{--n:2}.compare[data-count="3"]{--n:3}.compare[data-count="4"]{--n:2}.compare>.code,.compare>.term{margin:0;display:flex;flex-direction:column}.compare>.code .code-body{flex:1}.compare .code-title{padding-right:3.25rem}.compare .code-title::before{display:none}@media(max-width:51.24rem){.compare{grid-template-columns:minmax(0,1fr)}}.tabs{margin:1.75rem 0}.tabs .code,.tabs .term{margin:0}.tab-list{display:flex;gap:0;border-bottom:1px solid var(--line-strong);overflow-x:auto;scrollbar-width:none}.tab-list::-webkit-scrollbar{display:none}.tab-list [role=tab]{position:relative;flex:none;min-height:2.6rem;padding:0 1.1rem;border:0;border-radius:0;background:0 0;color:var(--text-2);font:500 .8125rem/1 var(--font-mono);white-space:nowrap;transition:color var(--t-fast),background-color var(--t-fast)}.tab-list [role=tab]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transition:transform var(--t-med)var(--ease)}.tab-list [role=tab]:hover{color:var(--text);background:var(--surface-2)}.tab-list [role=tab][aria-selected=true]{color:var(--text)}.tab-list [role=tab][aria-selected=true]::after{transform:scaleX(1)}.tab-panel{padding-top:1rem}.tab-panel:focus-visible{outline-offset:4px}.tabs:not(.is-ready) .tab-list{display:none}.tabs:not(.is-ready) .tab-panel+.tab-panel{margin-top:1rem}.tab-panel[data-title]::before{content:attr(data-title);display:block;margin-bottom:.5rem;font:500 .72rem/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.tabs.is-ready .tab-panel[data-title]::before{display:none}@media(pointer:coarse){.code-title{min-height:2.75rem}.copy{top:0;right:0;width:2.75rem;height:2.75rem}.tab-list [role=tab]{min-height:2.75rem}}.predict>summary,.exercise details>summary,.check details>summary,.deep-dive>summary{list-style:none;cursor:pointer}.predict>summary::-webkit-details-marker,.exercise details>summary::-webkit-details-marker,.check details>summary::-webkit-details-marker,.deep-dive>summary::-webkit-details-marker{display:none}.callout{--c:var(--key);--w:var(--key-wash);position:relative;margin:1.8rem 0;padding:.95rem 1.15rem 1rem 1.25rem;border:1px solid color-mix(in srgb,var(--c) 28%,var(--line));border-left:3px solid var(--c);background:var(--w);font-size:.98rem;line-height:1.6;max-width:var(--measure)}.callout-tip,.callout-check{--c:var(--accent);--w:var(--accent-wash)}.callout-warning{--c:var(--change);--w:var(--change-wash)}.callout-pitfall{--c:var(--conflict);--w:var(--conflict-wash)}.callout-title{display:flex;align-items:center;gap:.55rem;margin:0 0 .4rem;font:600 .7rem/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--c)}.callout-title::before{content:"";width:.5rem;height:.5rem;background:var(--c);transform:rotate(45deg)}.callout>:last-child{margin-bottom:0}.callout p{margin:0 0 .7em}.predict{margin:1.9rem 0;border:1px solid var(--line-strong);border-left:3px solid var(--change);background:var(--surface);max-width:var(--measure)}.predict>summary{display:block;padding:1rem 3rem 1rem 6.1rem;position:relative;font:500 1.0625rem/1.5 var(--font-sans);color:var(--text);transition:background-color var(--t-fast)}.predict>summary:hover{background:var(--change-wash)}.predict>summary::after{content:"";position:absolute;right:1.1rem;top:1.25rem;width:1rem;height:1rem;background:var(--text-3);-webkit-mask:var(--i-chev)center/contain no-repeat;mask:var(--i-chev)center/contain no-repeat;transform:rotate(90deg);transition:transform var(--t-med)var(--ease)}.predict[open]>summary::after{transform:rotate(-90deg)}.predict-label{position:absolute;left:1.15rem;top:1.12rem;padding:.24rem .5rem;border:1px solid color-mix(in srgb,var(--change) 55%,transparent);color:var(--change);font:600 .66rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.predict-reveal{padding:.25rem 1.15rem 1.1rem;border-top:1px dashed var(--line-strong);animation:reveal-in var(--t-med)var(--ease)}.predict-reveal>:first-child{margin-top:1rem}.predict-reveal>:last-child{margin-bottom:0}@media(max-width:36rem){.predict>summary{padding-left:1.15rem}.predict-label{position:static;display:inline-block;margin-right:.8rem;vertical-align:.08em}}@keyframes reveal-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.exercise{margin:2.4rem 0;border:1px solid var(--line-strong);background:var(--surface);position:relative}.exercise>header{display:flex;align-items:center;gap:1rem;padding:.75rem 1.15rem;border-bottom:1px solid var(--line-strong);background:var(--surface-2)}.exercise>header h3{margin:0;font:600 1.08rem/1.3 var(--font-sans)}.exercise-label{flex:none;padding:.26rem .55rem;background:var(--text);color:var(--bg);font:600 .66rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.exercise-body{padding:1.1rem 1.15rem .3rem}.exercise-body>:last-child{margin-bottom:0}.exercise-body .code,.exercise-body .term{margin:1.25rem 0}.exercise details{margin:0;border-top:1px solid var(--line)}.exercise details>summary{position:relative;display:flex;align-items:center;gap:.7rem;padding:.75rem 1.15rem;font:500 .72rem/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-2);transition:background-color var(--t-fast),color var(--t-fast)}.exercise details>summary::before{content:"";width:.5rem;height:.5rem;border:1.5px solid;transform:rotate(45deg);transition:background-color var(--t-fast)}.exercise details[open]>summary::before{background:currentColor}.exercise details>summary:hover{background:var(--surface-2);color:var(--text)}.exercise details[data-tier="1"]>summary::after{content:"nudge";margin-left:auto;color:var(--text-3)}.exercise details[data-tier="2"]>summary::after{content:"reference";margin-left:auto;color:var(--text-3)}.exercise details.solution>summary::after{content:"reveals the answer";margin-left:auto;color:var(--text-3)}.exercise details.solution>summary{color:var(--change)}.exercise details>:not(summary){margin-inline:1.15rem}.exercise details>:not(summary):last-child{margin-bottom:1.1rem}.exercise details[open]>summary{padding-bottom:.55rem}.exercise details[open]>:nth-child(2){animation:reveal-in var(--t-med)var(--ease)}.check{margin:2.4rem 0;max-width:var(--measure);border-top:2px solid var(--text);border-bottom:1px solid var(--line-strong)}.check>h3{margin:0;padding:.85rem 0 .7rem;font:500 1.5rem/1.2 var(--font-display);letter-spacing:-.012em}.check details{border-top:1px solid var(--line);counter-increment:q}.check{counter-reset:q}.check details>summary{position:relative;display:block;padding:.85rem 2.5rem .85rem 2.7rem;font-weight:500;line-height:1.5}.check details>summary::before{content:"Q" counter(q);position:absolute;left:0;top:1.03rem;font:600 .72rem/1.5 var(--font-mono);color:var(--accent)}.check details>summary::after{content:"";position:absolute;right:.3rem;top:1.15rem;width:.85rem;height:.85rem;background:var(--text-3);-webkit-mask:var(--i-chev)center/contain no-repeat;mask:var(--i-chev)center/contain no-repeat;transform:rotate(90deg);transition:transform var(--t-med)var(--ease)}.check details[open]>summary::after{transform:rotate(-90deg)}.check details>p,.check details>div{margin:0 0 1rem 2.7rem;color:var(--text-2)}.check details>p{animation:reveal-in var(--t-med)var(--ease)}.check details>summary:hover{color:var(--accent)}.deep-dive{position:relative;margin:2rem 0;max-width:var(--measure);padding-left:14px;border:1px solid var(--line-strong);background:var(--surface)}.deep-dive::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:15px;border:1px solid var(--line-strong);background:var(--hatch)0 0/10px 10px}.deep-dive>summary{position:relative;display:block;padding:.85rem 3rem .85rem 1.1rem;font:500 1rem/1.5 var(--font-sans);transition:background-color var(--t-fast)}.deep-dive>summary::before{content:"Deep dive";display:inline-block;margin-right:.8rem;vertical-align:.06em;padding:.24rem .5rem;border:1px solid var(--key);color:var(--key);font:600 .68rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.deep-dive>summary::after{content:"";position:absolute;right:1.1rem;top:1.1rem;width:.85rem;height:.85rem;background:var(--text-3);-webkit-mask:var(--i-chev)center/contain no-repeat;mask:var(--i-chev)center/contain no-repeat;transform:rotate(90deg);transition:transform var(--t-med)var(--ease)}.deep-dive[open]>summary::after{transform:rotate(-90deg)}.deep-dive>summary:hover{background:var(--surface-2)}.deep-dive>:not(summary){margin-inline:1.1rem}.deep-dive[open]>summary{border-bottom:1px solid var(--line);margin-bottom:1rem}.deep-dive>:last-child{margin-bottom:1.1rem}.deep-dive .code,.deep-dive .term{margin:1rem 1.1rem}.fig{margin:2.4rem 0}.fig-body{padding:1.5rem;border:1px solid var(--line-strong);background:linear-gradient(var(--line) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size),linear-gradient(90deg,var(--line) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size),var(--surface);overflow-x:auto}.fig-body svg{display:block;margin-inline:auto;max-width:100%;max-height:24rem;height:auto}.fig-body img{display:block;margin-inline:auto}.fig-body>.code,.fig-body>.term{margin:0}.fig figcaption{position:relative;max-width:var(--measure);padding-left:4.9rem;margin-top:.8rem;font-size:.88rem;line-height:1.5;color:var(--text-2)}.fig figcaption .fig-n{position:absolute;left:0;top:.16rem;font:500 .72rem/1.5 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.fig svg text{font-family:var(--font-mono);fill:var(--text-2)}.term-link{color:inherit;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:2px;text-decoration-color:var(--accent);text-underline-offset:.24em;cursor:help}.term-link:hover,.term-link:focus-visible{color:var(--accent);text-decoration-style:solid}.term-pop{position:absolute;z-index:120;width:min(21rem,calc(100vw - 2rem));padding:.9rem 1rem 1rem;border:1px solid var(--line-strong);border-top:2px solid var(--accent);background:var(--surface);box-shadow:0 14px 36px -12px rgba(0,0,0,.35);font-size:.9rem;line-height:1.5;color:var(--text-2);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity var(--t-fast),transform var(--t-med)var(--ease)}.term-pop.is-on{opacity:1;transform:none;pointer-events:auto}.term-pop b{display:block;margin-bottom:.3rem;font:italic 500 1.12rem/1.2 var(--font-display);color:var(--text)}.term-pop span{display:block}.term-pop small{display:block;margin-top:.55rem;font:500 .66rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.widget{margin:2.2rem 0;padding:1.25rem;border:1px solid var(--line-strong);background:linear-gradient(var(--line) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size),linear-gradient(90deg,var(--line) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size),var(--surface)}.widget noscript{display:block;color:var(--text-2);font-size:.95rem}.search-dialog{position:fixed;top:min(12vh,6rem);left:50%;width:min(40rem,calc(100vw - 1.5rem));max-height:min(34rem,calc(100vh - 7rem));margin:0;padding:0;border:1px solid var(--line-strong);border-top:2px solid var(--accent);background:var(--surface);color:var(--text);box-shadow:0 30px 80px -20px rgba(0,0,0,.55);overflow:hidden;transform:translateX(-50%)}.search-dialog[open]{display:flex;flex-direction:column;animation:search-in var(--t-med)var(--ease)}.search-dialog::backdrop{background:rgba(5,7,10,.55)}@keyframes search-in{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translateX(-50%)}}.search-field{position:relative;border-bottom:1px solid var(--line-strong);flex:none}.search-field::before{content:"";position:absolute;left:1.1rem;top:50%;width:1.1rem;height:1.1rem;margin-top:-.55rem;background:var(--text-3);-webkit-mask:var(--i-search)center/contain no-repeat;mask:var(--i-search)center/contain no-repeat}.search-input{width:100%;height:3.5rem;padding:0 1rem 0 3rem;border:0;background:0 0;color:var(--text);font:1.1rem/1 var(--font-sans)}.search-input::placeholder{color:var(--text-3)}.search-input:focus-visible{outline:none}.search-field:focus-within{box-shadow:inset 0 -2px 0 var(--key)}.search-results{list-style:none;margin:0;padding:.4rem;overflow-y:auto;flex:auto;min-height:0;scrollbar-width:thin}.search-results li{margin:0}.search-results a{display:grid;grid-template-columns:1fr auto;gap:.15rem 1rem;padding:.6rem .8rem;border-left:2px solid transparent;color:var(--text);text-decoration:none}.search-results a[aria-selected=true]{background:var(--accent-wash);border-left-color:var(--accent)}.search-results .r-title{font-weight:500;font-size:.98rem;line-height:1.35}.search-results .r-title mark{background:0 0;color:var(--accent);text-decoration:underline;text-underline-offset:.2em}.search-results .r-sec{font:500 .68rem/1.8 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);text-align:right}.search-results .r-desc{grid-column:1/-1;font-size:.84rem;line-height:1.4;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-empty{padding:1.6rem 1.2rem;color:var(--text-2);font-size:.95rem}.search-foot{display:flex;gap:1.1rem;flex:none;padding:.55rem 1rem;border-top:1px solid var(--line);background:var(--bg);color:var(--text-3);font:.72rem/1.4 var(--font-mono)}.search-foot kbd{font-size:.95em}@media(max-width:41rem){.search-foot{display:none}.search-dialog{top:.75rem}}.band{--band-pad:clamp(3.5rem, 8vw, 7rem);position:relative;overflow-x:clip;border-top:1px solid var(--line-strong)}.band:first-child{border-top:0}.wrap{position:relative;max-width:var(--sheet);margin-inline:auto;padding-inline:var(--gutter)}.band>.wrap{padding-block:var(--band-pad);border-inline:1px solid var(--line)}.band>.wrap::before,.band>.wrap::after{content:"";position:absolute;top:-6px;width:11px;height:11px;background:linear-gradient(var(--text-3),var(--text-3))50%/100% 1px no-repeat,linear-gradient(var(--text-3),var(--text-3))50%/1px 100% no-repeat;pointer-events:none}.band>.wrap::before{left:-6px}.band>.wrap::after{right:-6px}.band:first-child>.wrap::before,.band:first-child>.wrap::after{display:none}.split{display:grid;grid-template-columns:minmax(0,5fr)minmax(0,7fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}.split-even{grid-template-columns:repeat(2,minmax(0,1fr))}.split-top{align-items:start}@media(max-width:59.99rem){.split,.split-even{grid-template-columns:minmax(0,1fr)}}.band-head{max-width:48rem;margin:0 0 clamp(2rem,4vw,3.5rem)}.band-title{margin:0;font:500 clamp(2rem,1.2rem + 3.4vw,3.6rem)/1.04 var(--font-display);letter-spacing:-.022em;text-wrap:balance}.band-title em{font-style:italic}.band-lede{margin:1.2rem 0 0;max-width:38rem;font:clamp(1.15rem,1rem + .6vw,1.4rem)/1.5 var(--font-display);color:var(--text-2);text-wrap:pretty}.band-grid{isolation:isolate}.band-grid::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(var(--line) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size),linear-gradient(90deg,var(--line) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size);-webkit-mask-image:radial-gradient(ellipse at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 0%,#000 30%,transparent 75%)}[data-light]{position:relative;isolation:isolate}[data-light]::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;background:linear-gradient(var(--accent) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size),linear-gradient(90deg,var(--accent) 1px,transparent 1px)0 0/var(--grid-size)var(--grid-size);-webkit-mask-image:radial-gradient(14rem circle at var(--mx,50%) var(--my,30%),rgba(0,0,0,.55),transparent 70%);mask-image:radial-gradient(14rem circle at var(--mx,50%) var(--my,30%),rgba(0,0,0,.55),transparent 70%);transition:opacity var(--t-med)var(--ease)}[data-light].is-lit::after{opacity:.5}@keyframes kicker-type{from{width:0}to{width:calc(var(--n) * (1ch + var(--ls,0em)) + .55ch)}}@keyframes caret-off{to{border-right-color:transparent}}@keyframes kicker-show{to{width:auto;border-right-color:transparent}}.kicker-type{display:inline-block;vertical-align:top;max-width:100%;overflow:hidden;white-space:nowrap}html.js .kicker-type{width:0;border-right:.55ch solid var(--accent);animation:kicker-show 1ms linear 3s forwards}html.js .kicker-type.is-in{animation:kicker-type calc(var(--n,12) * 34ms)steps(var(--n,12))forwards,caret-off 1ms linear calc(var(--n,12) * 34ms + 900ms)forwards}@keyframes typed{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -2px 0 0)}}.typed{display:inline-block;vertical-align:bottom;white-space:pre}html.js .typed:not(.is-on){clip-path:inset(0 100% 0 0)}.typed.is-on{animation:typed calc(var(--n) * var(--per,30ms))steps(var(--n))var(--d,0s)both}@keyframes caret{to{opacity:0}}.stage-wrap{position:relative;isolation:isolate;min-width:0}.stage-wrap::before{content:"";position:absolute;inset:-16% -10%;z-index:-1;background:radial-gradient(closest-side,var(--glow),transparent 72%);opacity:.6;pointer-events:none}.stage{--status:var(--code-key);background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-edge);border-radius:4px;font-family:var(--font-mono);font-size:.8125rem;line-height:1.7;min-width:0}.stage .tabs{margin:0}.stage .tab-list{align-items:stretch;min-height:2.6rem;padding-left:.9rem;background:var(--code-bar);border-bottom:1px solid var(--code-edge);border-radius:4px 4px 0 0}.stage .tab-list::before{content:"";align-self:center;flex:none;width:7px;height:7px;margin:0 31px 0 0;border-radius:50%;background:#3a424f;box-shadow:14px 0 #3a424f,28px 0 #3a424f}.stage .tab-list [role=tab]{color:var(--code-dim);font-size:.75rem;min-height:0;border-inline:1px solid transparent}.stage .tab-list [role=tab]:hover{color:var(--code-text);background:rgba(255,255,255,4%)}.stage .tab-list [role=tab][aria-selected=true]{color:var(--code-text);background:var(--code-bg);border-inline-color:var(--code-edge);margin-bottom:-1px;box-shadow:inset 0 2px 0 var(--accent)}.stage .tab-list [role=tab]::after{display:none}.stage .tab-panel{padding:0}.stage .tabs.is-ready .tab-panel{min-height:var(--stage-h,0)}.stage .tab-panel[data-title]::before{padding:.7rem 1rem 0;color:var(--code-dim)}.stage .tab-panel>.code,.stage .tab-panel>.term,.stage-body>.code,.stage-body>.term{margin:0;border:0;border-radius:0;background:0 0}.stage .code::before,.stage .term::before{display:none}.stage .code-title{position:absolute;z-index:2;top:.55rem;right:2.8rem;min-height:0;padding:0;background:0 0;border:0}.stage .code-title>:not(.code-badge){display:none}.stage .code-title::before{display:none}.stage .code-body{box-shadow:none}.stage-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:.45rem .75rem .45rem .9rem;background:var(--code-bar);border-top:1px solid var(--code-edge);border-radius:0 0 4px 4px;color:var(--code-dim)}.stage-caption{margin:.9rem 0 0;font:.8rem/1.5 var(--font-sans);color:var(--text-2)}.fig-n{white-space:nowrap}.anno{--c:var(--change);display:inline-block;padding:.2rem .5rem;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);background:color-mix(in srgb,var(--c) 12%,transparent);color:var(--c);font:500 .66rem/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.anno-ok{--c:var(--accent)}.stage .anno,.code .anno,.term .anno{--c:var(--code-chg)}.stage .anno-ok,.code .anno-ok,.term .anno-ok{--c:var(--code-add)}@keyframes shake{20%{translate:-5px 0}45%{translate:4px 0}70%{translate:-3px 0}90%{translate:2px 0}}@keyframes flash{from{background-color:color-mix(in srgb,var(--accent) 22%,transparent)}to{background-color:transparent}}@keyframes pulse{45%{scale:1.03}}.is-shake{animation:shake 180ms var(--ease)}.is-pulse{animation:pulse 220ms var(--ease)}.beats{display:inline-flex;align-items:center;gap:0;margin:0;padding:0}.beat{position:relative;display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;border:0;background:0 0;color:var(--code-dim)}.beat::before{content:"";width:9px;height:9px;border:1.5px solid;transform:rotate(45deg);transition:background-color var(--t-fast),transform var(--t-med)var(--ease),border-color var(--t-fast)}.beat:hover{color:var(--code-text)}.beat.is-past::before{background:currentColor}.beat[aria-current=step]{color:var(--accent)}.beat[aria-current=step]::before{background:var(--accent);transform:rotate(45deg)scale(1.25)}@media(pointer:coarse){.beat{width:2.25rem;height:2.75rem}}.tl-controls{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.15rem;max-width:100%}.tl-btn{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;padding:0;border:1px solid transparent;border-radius:var(--r);background:0 0;color:var(--code-dim);transition:color var(--t-fast),background-color var(--t-fast)}.tl-btn::before{content:"";width:.85rem;height:.85rem;background:currentColor;-webkit-mask:var(--i-pause)center/contain no-repeat;mask:var(--i-pause)center/contain no-repeat}.tl-btn[data-act=toggle][aria-label=Play]::before{-webkit-mask-image:var(--i-play);mask-image:var(--i-play)}.tl-btn[data-act=replay]::before{-webkit-mask-image:var(--i-replay);mask-image:var(--i-replay);width:.95rem;height:.95rem}.tl-btn:hover{color:var(--code-text);background:rgba(255,255,255,7%)}.tl-controls .beats{margin-left:.5rem;padding-left:.5rem;border-left:1px solid var(--code-edge)}@media(pointer:coarse){.tl-btn{width:2.75rem;height:2.75rem}}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr));margin:0;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}.stat{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:.6rem;margin:0;padding:1.5rem 1.25rem 1.4rem;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface)}.stat dd,.stat-n{margin:0;font:500 clamp(2.4rem,1.6rem + 2.6vw,3.6rem)/1 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums lining-nums}.stat dt,.stat-l{font:500 .68rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.marquee{overflow:hidden;border-block:1px solid var(--line-strong);background:var(--surface)}.marquee-group{display:flex;flex-wrap:wrap;flex:initial;margin:0;padding:0;list-style:none}.marquee-group li{display:flex;align-items:center;gap:1.6rem;padding:1rem 0 1rem 1.6rem;font:500 .84rem/1 var(--font-mono);color:var(--text-2);white-space:nowrap}.marquee-group li::after{content:"";width:5px;height:5px;background:var(--text-3);transform:rotate(45deg)}.marquee.is-ready{-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee.is-ready .marquee-group{flex-wrap:nowrap;flex:none}.marquee-toggle{display:inline-flex;align-items:center;gap:.4rem;margin-left:.9rem;padding:.1rem .55rem;border:1px solid var(--line-strong);border-radius:var(--r);background:0 0;color:var(--text-2);font:500 .68rem/1.6 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;vertical-align:baseline}.marquee-toggle::before{content:"";width:.7rem;height:.7rem;background:currentColor;-webkit-mask:var(--i-pause)center/contain no-repeat;mask:var(--i-pause)center/contain no-repeat}.marquee-toggle[aria-pressed=true]::before{-webkit-mask-image:var(--i-play);mask-image:var(--i-play)}.marquee-toggle:hover{color:var(--text);border-color:var(--text-3)}@keyframes marquee{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.marquee.is-ready{-webkit-mask-image:none;mask-image:none}.marquee.is-ready .marquee-group{flex-wrap:wrap}.marquee-group[aria-hidden]{display:none}}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));margin:0;padding:0;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}.card{position:relative;display:flex;flex-direction:column;gap:.7rem;min-width:0;padding:1.5rem 1.4rem 1.4rem;background:var(--surface);border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);color:var(--text);text-decoration:none;overflow:hidden;transition:background-color var(--t-med)var(--ease)}.spot::before,.spot::after{content:"";position:absolute;pointer-events:none;opacity:0;transition:opacity var(--t-med)var(--ease)}.spot::before{inset:0;background:radial-gradient(20rem circle at var(--mx,50%) var(--my,50%),var(--accent-wash),transparent 65%)}.spot::after{inset:0;padding:1px;background:radial-gradient(12rem circle at var(--mx,50%) var(--my,50%),var(--accent),transparent 70%);-webkit-mask:linear-gradient(#000 0 0)content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0)content-box exclude,linear-gradient(#000 0 0)}.spot:hover::before,.spot:hover::after,.spot:focus-visible::before,.spot:focus-visible::after{opacity:1}.card-kicker{font:500 .68rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}.card-title{margin:0;font:500 1.55rem/1.15 var(--font-display);letter-spacing:-.015em}.card-text{margin:0;font-size:.95rem;line-height:1.55;color:var(--text-2)}.card-more{margin-top:auto;padding-top:.6rem;font-weight:600;font-size:.9rem;color:var(--text);display:inline-flex;align-items:center;gap:.45rem}.card-more::after{content:"";width:1em;height:1em;background:currentColor;-webkit-mask:var(--i-arrow)center/contain no-repeat;mask:var(--i-arrow)center/contain no-repeat;transition:transform var(--t-fast)var(--ease)}a.card:hover .card-more::after{transform:translateX(4px)}.metro-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin:0 0 .6rem}.metro-head h3{margin:0;font:500 1.35rem/1.2 var(--font-display);letter-spacing:-.01em}.metro-head span{font:500 .72rem/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.metro{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);margin:0 0 2.5rem;padding:0;list-style:none}.metro::before,.metro::after{content:"";position:absolute;left:0;right:0;top:1.05rem;height:2px;background:var(--line-strong)}.metro::after{background:var(--accent);transform-origin:0 50%;transform:scaleX(0);transition:transform 1.4s var(--ease)}.metro.is-in::after{transform:scaleX(1)}html:not(.js) .metro::after{transform:scaleX(1)}.metro-id{font:600 .78rem/1.2 var(--font-mono)}@media(max-width:59.99rem){.metro{grid-auto-flow:row;grid-auto-columns:auto;margin-left:.3rem}.metro::before,.metro::after{left:7px;right:auto;top:0;bottom:0;width:2px;height:auto}.metro::after{transform:scaleY(0);transform-origin:50% 0}.metro.is-in::after,html:not(.js) .metro::after{transform:scaleY(1)}}.stack>*+*{margin-top:var(--gap,1rem)}.row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.chip{display:inline-flex;align-items:center;gap:.4rem;min-height:2.25rem;padding:0 .85rem;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text);font:500 .84rem/1 var(--font-mono);transition:border-color var(--t-fast),background-color var(--t-fast),color var(--t-fast)}.chip:hover{border-color:var(--text-3);background:var(--surface-2)}.chip[aria-pressed=true],.chip[aria-selected=true]{border-color:var(--accent);background:var(--accent-wash);color:var(--text)}.chip.is-bad[aria-pressed=true]{border-color:var(--conflict);background:var(--conflict-wash)}.is-linked{background:var(--code-hl);transition:background-color 150ms linear}.lattice{display:block;aspect-ratio:200/220;background:currentColor;-webkit-mask:var(--i-lattice)center/contain no-repeat;mask:var(--i-lattice)center/contain no-repeat}.widget[data-widget]{padding:1.25rem}.widget .w-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .9rem}.widget .w-title{font:500 .72rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);margin:0}.widget .w-note{margin:.9rem 0 0;font-size:.86rem;color:var(--text-2);max-width:var(--measure)}.w-field{position:relative;height:10.25rem;margin-bottom:1rem;overflow:hidden}.w-card{--x:0%;position:absolute;left:50%;top:50%;width:min(15.5rem,44%);min-width:9.5rem;display:flex;flex-direction:column;gap:.55rem;padding:.85rem 1rem 1rem;background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-edge);border-radius:4px;font-family:var(--font-mono);transform:translate(calc(-50% + var(--x)),-50%);transition:transform var(--t-med)var(--ease),opacity 260ms ease-out,border-color var(--t-fast)}.w-tag:empty{display:none}.w-tag{font:500 .68rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--code-dim)}.w-val{font:500 1.1rem/1.3 var(--font-mono);color:var(--code-text);overflow-wrap:anywhere}.w-left{--x:-56%}.w-right{--x:56%}.w-merged{opacity:0;pointer-events:none;transform:translate(-50%,-50%)scale(.96);border-color:var(--code-edge);width:min(19rem,70%)}.widget[data-state=merging] .w-left,.widget[data-state=merged] .w-left,.widget[data-state=merging] .w-right,.widget[data-state=merged] .w-right{--x:0%}.widget[data-state=merged] .w-left,.widget[data-state=merged] .w-right{opacity:0;transition-delay:0s,0s,0s}.widget[data-state=merged] .w-merged{opacity:1;pointer-events:auto;transform:translate(-50%,-50%);transition-delay:0s}.widget[data-state=merging] .w-left,.widget[data-state=merging] .w-right{opacity:0;transition-delay:0s,330ms,0s}.w-merged .w-val{color:var(--tok-type)}.w-slot{min-height:1.7rem;display:flex;align-items:center;gap:.6rem;font:500 .9rem/1.3 var(--font-mono);color:var(--code-dim)}.w-slot .dropped{display:inline-flex;align-items:center;gap:.5rem;animation:w-drop 420ms var(--ease)}.w-slot .dropped::before{content:"";width:.85rem;height:.85rem;background:currentColor;-webkit-mask:var(--i-check)center/contain no-repeat;mask:var(--i-check)center/contain no-repeat}.w-merged.is-ok{border-color:var(--code-add)}.w-merged.is-ok .w-slot{color:var(--code-add)}.w-merged.is-bad{border-color:var(--code-del)}.w-merged.is-bad .w-slot{color:var(--code-del)}.w-merged.is-bad .dropped::before{-webkit-mask-image:var(--i-x);mask-image:var(--i-x)}@keyframes w-drop{from{opacity:0;transform:translateY(-1.6rem)}to{opacity:1;transform:none}}.w-chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.w-chips .chip:disabled{opacity:.45;cursor:default}.w-chips .chip:disabled:hover{border-color:var(--line-strong);background:var(--surface)}.w-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.w-bar .w-label{font:500 .7rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.w-result{min-height:3.2rem;margin:1rem 0 0;padding:.7rem .9rem;border-left:3px solid var(--line-strong);background:var(--surface-2);font:.84rem/1.55 var(--font-mono);color:var(--text-2);white-space:pre-wrap}.w-result:empty::before{content:"Choose a value to try.";color:var(--text-3)}.w-result.is-ok{border-left-color:var(--accent);color:var(--text)}.w-result.is-bad{border-left-color:var(--conflict);color:var(--text)}.w-plan .term{margin:0}.w-plan .pl{display:block}.w-plan .pl.is-pending{opacity:0;transform:translateY(4px)}.w-plan .pl{transition:opacity 200ms ease-out,transform 360ms var(--ease)}.w-plan .term-foot{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem .4rem 1rem;border-top:1px solid var(--code-edge);background:var(--code-bar);border-radius:0 0 var(--r)var(--r);color:var(--code-dim)}.w-plan .term{margin-bottom:0}.w-plan .term-body{min-height:var(--plan-h,0)}@media print{:root,:root:not([data-theme=light]),:root[data-theme=dark]{color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#f3f3f3;--surface-3:#e8e8e8;--text:#000;--text-2:#222;--text-3:#444;--line:#ccc;--line-strong:#999;--accent:#064d3c;--change:#7c5000;--conflict:#a11;--key:#1a2a9c;--on-accent:#fff;--accent-wash:#e6f2ee;--change-wash:#f6efe0;--conflict-wash:#f9e8e6;--key-wash:#eceefb;--code-bg:#fff;--code-bar:#f3f3f3;--code-edge:#bbb;--code-text:#000;--code-dim:#555;--tok-kw:#1a2a9c;--tok-def:#5b2a99;--tok-type:#045a73;--tok-fn:#7a4b00;--tok-str:#0a5a3c;--tok-num:#8a3b00;--tok-com:#555;--tok-op:#333;--tok-id:#000;--code-add:#064d3c;--code-chg:#7a4b00;--code-del:#a11;--code-key:#1a2a9c;--code-hl:#e8ebff}html,body,body.page{background:#fff!important}.site-header,.doc-sidebar,.doc-toc,.drawer-bar,.scrim,.read-progress,.pager,.mark-done,.copy,.copy-page,.doc-actions,.tl-controls,.search-dialog,.skip-link,.breadcrumb,.site-footer .foot-row,.stage-foot,.marquee-toggle,.toc-inline,.doc-foot .applies{display:none!important}.site-footer{border:0!important}.site-footer *::before,.site-footer *::after{display:none!important}.doc-shell{display:block!important;border:0!important;max-width:none}.doc-main{padding:0!important}.doc{font-size:11pt}.doc h1{font-size:26pt}.doc h2{break-after:avoid}.doc a{color:#000;text-decoration:underline}.doc a[href^=http]::after{content:" (" attr(href)")";font-size:.85em;color:#444}.code,.term,.callout,.exercise,.predict,.check details,figure,.fig,.compare>*{break-inside:avoid}.code,.term{border-color:#888!important}.code pre,.term pre,.code code,.term code,.code-body,.term-body,.line{white-space:pre-wrap!important;overflow:visible!important;overflow-wrap:anywhere}.code-body>pre,.term-out{break-inside:auto}.code::before,.term::before,.fig-body::before,.widget::before,.lesson-meta::before,.ticks::before{display:none!important}.tab-panel[hidden]{display:block!important}.tab-list{display:none!important}.tab-panel[data-title]::before{display:block!important}details>:not(summary){display:block!important}.compare{display:block}.compare>*{margin-bottom:1rem}.reveal,[data-reveal]{opacity:1!important;transform:none!important}}.hero-band{--band-pad:clamp(2.5rem, 5vw, 5rem)}.hero-split{grid-template-columns:minmax(0,5fr)minmax(0,6fr);gap:clamp(2rem,4.5vw,4.5rem);align-items:center}@media(max-width:59.99rem){.hero-split{grid-template-columns:minmax(0,1fr)}}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:1.6rem;min-width:0}.hero-copy>*{margin:0}.hero-title{font-size:clamp(2.7rem,1.3rem + 4.3vw,4.9rem);line-height:.98;text-wrap:balance}.hero-title em{display:block;font-style:italic;color:var(--accent)}.hero-copy .band-lede{max-width:33rem;font-size:clamp(1.1rem,1rem + .45vw,1.28rem)}.hero-cta{gap:.7rem}@media(max-width:41rem){.hero-cta{flex-direction:column;align-items:stretch;width:100%}.hero-cta .btn{white-space:normal;text-align:center}}.hero-micro{margin-top:-.6rem;font:.74rem/1.5 var(--font-mono);color:var(--text-3)}.hero-stage{min-width:0}.hero-stack{display:flex;flex-direction:column;gap:.9rem;min-width:0}.hero-stack .code,.hero-stack .term{margin:0}.hero-stage .stage-caption{max-width:40rem}.shift-band,.reach-band,.start-band,.about-band{--band-pad:clamp(3rem, 6vw, 5.5rem)}.shift-band .band-head,.start-band .band-head{margin-bottom:clamp(1.5rem,3vw,2.5rem)}.shift-band .kicker,.reach-band .kicker,.start-band .kicker,.about-band .kicker{margin:0 0 .8rem}.start-cards{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:66rem){.start-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:41rem){.start-cards{grid-template-columns:minmax(0,1fr)}}.shift-cols .card-title,.start-cards .card-title{font-size:1.4rem}.card-text code{font-size:.84em;overflow-wrap:anywhere}#idea{--idea-fs:clamp(1.9rem, .8rem + 3.9vw, 4rem)}.idea-p{position:relative;margin:0;display:grid;gap:.08em;font:500 var(--idea-fs)/1.06 var(--font-display);letter-spacing:-.022em}.idea-s{position:relative;display:block;padding-left:clamp(2.4rem,5.4vw,4.6rem);color:var(--text-3);text-wrap:balance;transition:color 420ms var(--ease)}.idea-s.reveal{transition:color 420ms var(--ease),opacity var(--t-med)var(--ease),transform var(--t-med)var(--ease);transition-delay:0s,calc(var(--i,0) * 90ms),calc(var(--i,0) * 90ms)}.idea-s.on{color:var(--text)}.idea-s[data-s="3"].on{color:var(--conflict)}.idea-n{position:absolute;left:0;top:calc(var(--idea-fs) * .24);font:600 .72rem/1 var(--font-mono);letter-spacing:.08em;color:var(--accent);transition:color 420ms var(--ease)}.idea-s[data-s="3"].on .idea-n{color:var(--conflict)}.idea-lattice{position:absolute;right:0;top:-1.5rem;width:clamp(6.5rem,15vw,12.5rem);height:auto;color:var(--line-strong);pointer-events:none}.idea-lattice .e path{fill:none;stroke:currentColor;stroke-width:2;transition:stroke 420ms var(--ease)}.idea-lattice .n rect{fill:currentColor;transition:fill 420ms var(--ease)}.idea-lattice .n-top rect{fill:var(--accent)}.idea-lattice .e-top path{stroke:color-mix(in srgb,var(--accent) 55%,var(--line-strong))}#idea[data-lit="2"] .e-top path,#idea[data-lit="3"] .e-top path,#idea[data-lit="2"] .e-mid path,#idea[data-lit="3"] .e-mid path{stroke:var(--accent)}#idea[data-lit="2"] .n-mid rect,#idea[data-lit="3"] .n-mid rect{fill:var(--accent)}#idea[data-lit="3"] .e-bot path{stroke:var(--conflict)}#idea[data-lit="3"] .n-bot rect{fill:var(--conflict)}@media(max-width:47.99rem){.idea-lattice{display:none}}.idea-lab{display:grid;grid-template-columns:minmax(0,7fr)minmax(0,5fr);gap:clamp(1.25rem,3vw,2.5rem);align-items:start;margin-top:clamp(2rem,5vw,3.5rem)}@media(max-width:59.99rem){.idea-lab{grid-template-columns:minmax(0,1fr)}}.idea-widget.widget{margin:0}#idea .w-field{height:12.5rem}#idea .w-card{width:min(17rem,44%);padding:1rem 1.1rem 1.1rem}#idea .w-merged{width:min(21rem,72%)}#idea .w-val{font-size:1.28rem}#idea .w-field::before{content:"&";content:"&"/"";position:absolute;left:50%;top:50%;translate:-50% -52%;font:500 2.4rem/1 var(--font-display);color:var(--text-3);transition:opacity 260ms ease-out}#idea .widget:not([data-state=apart]) .w-field::before{opacity:0}#idea .w-chips .chip{min-height:2.4rem;padding:0 1rem;font-size:.9rem}@media(max-width:30rem){#idea .w-field{height:11rem}#idea .w-card{width:43%;min-width:0;padding:.75rem .8rem .85rem}#idea .w-val{font-size:1rem}#idea .w-merged{width:80%}#idea .w-left{--x:-54%}#idea .w-right{--x:54%}#idea .w-field::before{font-size:1.8rem}}.idea-prog{display:grid;gap:.9rem;min-width:0}.idea-pair{display:grid;gap:.9rem;min-width:0}.idea-pair .code,.idea-pair .term{margin:0}.idea-pair .term-body{padding-block:.7rem .5rem}.idea-pair .term .code-title{min-height:2.1rem}.idea-pair .term .code-title::before{display:none}#idea.is-live .idea-prog{gap:0}#idea.is-live .idea-pair{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity 160ms linear,visibility 0s linear 160ms}#idea.is-live .idea-pair.is-on{opacity:1;visibility:visible;transition-delay:0s}#idea.is-live .w-result{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}html:not(.js) .idea-lab{grid-template-columns:minmax(0,1fr)}html:not(.js) .idea-prog{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 1rem}@media(max-width:47.99rem){html:not(.js) .idea-prog{grid-template-columns:minmax(0,1fr)}}.idea-pair.is-pending .code-badge,.idea-pair.is-pending .term .code-badge{visibility:hidden}.idea-pair.is-pending .code .line:nth-child(4)>:last-child{position:relative;color:transparent}.idea-pair.is-pending .code .line:nth-child(4)>:last-child::after{content:"";position:absolute;left:0;top:.2em;width:.6ch;height:1.15em;background:var(--code-text);animation:caret 1s steps(2,jump-none)infinite}.idea-pair.is-pending .term-out{visibility:hidden}.idea-pair.is-pending .code{--status:var(--code-key)}.idea-pair.is-pending .code .code-body{box-shadow:none}.idea-pair.is-pending .term{--status:var(--code-dim)}@keyframes idea-line{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes idea-flash-bad{from{background-color:color-mix(in srgb,var(--conflict) 26%,transparent)}to{background-color:transparent}}.idea-pair.is-enter .term-out{animation:idea-line 340ms var(--ease)140ms backwards}.idea-pair.is-enter .code .line:nth-child(4){animation:flash 700ms ease-out}.idea-pair.is-enter .code[data-status=conflict] .line:nth-child(4){animation-name:idea-flash-bad}.idea-pair.is-enter .code[data-status=conflict] .line:nth-child(4)>:last-child{display:inline-block;animation:shake 180ms var(--ease)120ms}.idea-note{margin:1rem 0 0;font:.74rem/1.5 var(--font-mono);color:var(--text-3)}.idea-note code{font-size:inherit;background:0 0;border:0;padding:0;color:var(--text-2)}.band-lede code,.stage-caption code{padding:.08em .36em;border:1px solid var(--line);border-radius:2px;background:var(--surface-2);font:500 .86em var(--font-mono);color:var(--text);-webkit-box-decoration-break:clone;box-decoration-break:clone}.band-lede code{font-size:.74em}#blast{--bl-step:130ms;--bl-ec:var(--change)}#blast .bl-head{position:relative;max-width:46rem;margin-bottom:clamp(1.5rem,3vw,2.4rem)}#blast .band-title{max-width:16ch}#blast .band-title em{font-style:italic;color:var(--text)}.bl-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.1rem}.bl-chip{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.7rem;row-gap:.12rem;align-items:baseline;min-height:2.9rem;padding:.6rem 1rem .6rem .85rem;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text);text-align:left;transition:border-color var(--t-fast),background-color var(--t-fast)}.bl-chip:hover{border-color:var(--text-3);background:var(--surface-2)}.bl-chip::after{content:"";position:absolute;left:-1px;right:-1px;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--t-med)var(--ease)}.bl-chip[aria-selected=true]{border-color:var(--accent);background:var(--accent-wash)}.bl-chip[aria-selected=true]::after{transform:scaleX(1)}.bl-chip-n{grid-row:1/span 2;align-self:start;padding-top:.12rem;font:600 .7rem/1 var(--font-mono);letter-spacing:.08em;color:var(--accent)}.bl-chip-t{font:600 .92rem/1.25 var(--font-sans)}.bl-chip-s{grid-column:2;font:.72rem/1.3 var(--font-mono);letter-spacing:.02em;color:var(--text-3)}html:not(.js) .bl-chips,html:not(.js) .bl-replay{display:none}.bl-fig{position:relative;border:1px solid var(--line-strong);background:var(--surface)}.bl-fig::before{content:"";position:absolute;inset:-5px;z-index:2;pointer-events:none;--t:8px;--c:var(--tick-color);background:linear-gradient(var(--c),var(--c))0 0/var(--t)1px,linear-gradient(var(--c),var(--c))0 0/1px var(--t),linear-gradient(var(--c),var(--c))100% 0/var(--t)1px,linear-gradient(var(--c),var(--c))100% 0/1px var(--t),linear-gradient(var(--c),var(--c))0 100%/var(--t)1px,linear-gradient(var(--c),var(--c))0 100%/1px var(--t),linear-gradient(var(--c),var(--c))100% 100%/var(--t)1px,linear-gradient(var(--c),var(--c))100% 100%/1px var(--t);background-repeat:no-repeat}.bl-main{display:grid;grid-template-columns:minmax(0,1.5fr)minmax(0,1fr)}.bl-graph{display:flex;flex-direction:column;min-width:0;padding:.9rem .9rem .7rem;border-right:1px solid var(--line)}.bl-side{display:flex;flex-direction:column;gap:.7rem;min-width:0;padding:.7rem;background:var(--surface-2)}.bl-side .code::before,.bl-side .term::before{display:none}.bl-side .code,.bl-side .term{margin:0;font-size:.75rem;line-height:1.6}.bl-svg{display:block;width:100%;height:auto;overflow:visible;user-select:none;-webkit-user-select:none}.bl-band{fill:var(--surface-2);fill-opacity:.55;stroke:var(--line);stroke-width:1}.bl-lane[data-lane=d] .bl-band{stroke-dasharray:3 4;fill-opacity:.25}.bl-hull{fill:var(--key-wash);stroke:var(--key);stroke-width:1.3;stroke-dasharray:5 4;opacity:0;transition:opacity var(--t-med)var(--ease)}.bl-lane[data-held] .bl-hull{opacity:1}.bl-cap{font:500 10.5px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;fill:var(--text-3);transition:opacity var(--t-fast)}.bl-lane[data-held] .bl-cap{fill:var(--key);font-weight:600}.bl-ht,.bl-hn{font:500 10.5px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;fill:var(--text-3)}.bl-hn{text-anchor:middle}.bl-hr{fill:none;stroke:var(--line-strong);stroke-width:1}.bl-guide{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:2 5}.bl-fig.is-tall .bl-guide{display:none}.bl-fig.is-tall .bl-cap{font-size:9.5px;letter-spacing:.04em}.bl-rl{font:11px var(--font-mono);fill:var(--text-2)}.bl-eb{fill:none;stroke:var(--text-3);stroke-opacity:.8;stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 700ms var(--ease)calc(var(--dp,0) * 110ms),stroke-opacity var(--t-fast)}.bl-ev{fill:none;stroke:var(--bl-ec);stroke-width:2.1;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset 520ms var(--ease)calc(var(--o,0) * var(--bl-step) + 120ms),opacity 1ms linear calc(var(--o,0) * var(--bl-step) + 120ms)}.bl-ah{fill:var(--text-3);fill-opacity:.85}.bl-ahv{fill:var(--bl-ec);opacity:0;transition:opacity 160ms linear calc(var(--o,0) * var(--bl-step) + 420ms)}.bl-j{fill:var(--text-3);fill-opacity:.85}.bl-e{transition:opacity var(--t-med)var(--ease)}.bl-e[data-ea=add]{--bl-ec:var(--accent)}.bl-e[data-ea=change]{--bl-ec:var(--change)}.bl-e.is-hit .bl-ev{stroke-dashoffset:0;opacity:1}.bl-e.is-hit .bl-ahv{opacity:1}.bl-e.is-dim{opacity:.3}.bl-e[data-ghost]{opacity:0}.bl-fig[data-scene=zone] .bl-e[data-ghost]{opacity:1}.bl-e.is-pre .bl-eb{stroke:var(--key);stroke-opacity:.9;stroke-width:1.8}.bl-e.is-pre .bl-ah,.bl-e.is-pre .bl-j{fill:var(--key);fill-opacity:1}.bl-n{cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}.bl-hit{fill:transparent}.bl-ni{transform-box:fill-box;transform-origin:center}.bl-nd{transition:opacity var(--t-med)var(--ease)var(--d,0ms)}.bl-box{fill:var(--surface);stroke:var(--text-2);stroke-width:1.4;transition:stroke var(--t-fast)}.bl-halo{fill:none;stroke:var(--bl-ec);stroke-width:2.4;opacity:0;transform-box:fill-box;transform-origin:center}.bl-f{opacity:0;transform:scale(.35);transform-box:fill-box;transform-origin:center;transition:opacity 240ms linear var(--d,0ms),transform 460ms var(--ease)var(--d,0ms)}.bl-fa{fill:var(--accent)}.bl-fc{fill:var(--change)}.bl-g{fill:none;stroke:var(--on-accent);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity 200ms linear var(--d,0ms)}.bl-gk{stroke:var(--text-3);stroke-width:1.7}.bl-n[data-act=add]{--bl-ec:var(--accent)}.bl-n[data-act=change],.bl-n[data-act=replace]{--bl-ec:var(--change)}.bl-n[data-act=add] .bl-fa,.bl-n[data-act=change] .bl-fc,.bl-n[data-act=replace] .bl-fc{opacity:1;transform:none}.bl-n[data-act=add] .bl-ga,.bl-n[data-act=change] .bl-gc,.bl-n[data-act=replace] .bl-gr,.bl-n[data-act=skip] .bl-gk{opacity:1}.bl-n[data-act=skip] .bl-nd{opacity:.3}.bl-n[data-act=ghost] .bl-nd{opacity:.55}.bl-n[data-act=ghost] .bl-box{stroke:var(--text-3);stroke-dasharray:2.6 2.6}.bl-n[data-act=skip] .bl-box{stroke:var(--text-3)}.bl-n:hover .bl-box{stroke:var(--text)}.bl-n.is-pre .bl-box{stroke:var(--key);stroke-width:2.2}.bl-n.is-self .bl-box{stroke:var(--text);stroke-width:2.4}.bl-n.is-hot .bl-box{stroke:var(--text);stroke-width:2.4}.bl-org{fill:none;stroke:var(--bl-ec);stroke-width:1.3;stroke-dasharray:3 2.4;opacity:0;transition:opacity 240ms linear var(--d,0ms)}.bl-n[data-org] .bl-org{opacity:1}.bl-fig.is-neutral .bl-org{opacity:0!important}.bl-ring{fill:none;stroke:var(--key);stroke-width:2;opacity:0}.bl-n:focus-visible .bl-ring{opacity:1}.bl-lk{opacity:0;transform:scale(.4);transform-box:fill-box;transform-origin:center;transition:opacity 200ms linear var(--d,0ms),transform 380ms var(--ease)var(--d,0ms)}.bl-lk circle{fill:var(--key);stroke:var(--surface);stroke-width:1.5}.bl-lk use{fill:none;stroke:var(--on-accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.bl-n[data-lock] .bl-lk{opacity:1;transform:none}@keyframes bl-halo-a{0%{opacity:0;transform:scale(1)}14%{opacity:.5}100%{opacity:0;transform:scale(2.3)}}@keyframes bl-halo-b{0%{opacity:0;transform:scale(1)}14%{opacity:.5}100%{opacity:0;transform:scale(2.3)}}.bl-fig[data-r="0"] .bl-n:is([data-act=add],[data-act=change],[data-act=replace]) .bl-halo{animation:bl-halo-a 760ms ease-out var(--d,0ms)both}.bl-fig[data-r="1"] .bl-n:is([data-act=add],[data-act=change],[data-act=replace]) .bl-halo{animation:bl-halo-b 760ms ease-out var(--d,0ms)both}.bl-fig.is-neutral .bl-halo{animation:none!important}html.js .bl-fig.is-prep .bl-eb{stroke-dashoffset:1;transition-duration:0s;transition-delay:0s}html.js .bl-fig.is-prep .bl-ah,html.js .bl-fig.is-prep .bl-j{opacity:0}html.js .bl-fig.is-prep .bl-ni{opacity:0;transform:scale(.6)}html.js .bl-fig .bl-ni{transition:opacity 320ms ease-out calc(var(--dp,0) * 90ms + 200ms),transform 520ms var(--ease)calc(var(--dp,0) * 90ms + 200ms)}html.js .bl-fig .bl-ah,html.js .bl-fig .bl-j{transition:opacity 240ms linear calc(var(--dp,0) * 110ms + 500ms)}.bl-fig.is-neutral .bl-f,.bl-fig.is-neutral .bl-g,.bl-fig.is-neutral .bl-lk{opacity:0!important;transition-duration:0s!important;transition-delay:0s!important}.bl-fig.is-neutral .bl-nd{opacity:1!important}.bl-fig.is-neutral .bl-ev,.bl-fig.is-neutral .bl-ahv{opacity:0!important}.bl-legend{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin:auto 0 0;padding:.8rem 0 0;list-style:none;font:.72rem/1.4 var(--font-mono);color:var(--text-2)}.bl-legend li{display:inline-flex;align-items:center;gap:.45rem}.bl-ico{width:1.15rem;height:1.15rem;flex:none;padding:1px;fill:none;stroke:var(--on-accent);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;border:1px solid var(--text-3);border-radius:2px;background:var(--surface)}.bl-ico[data-act=add]{background:var(--accent);border-color:var(--accent)}.bl-ico[data-act=change],.bl-ico[data-act=replace]{background:var(--change);border-color:var(--change)}.bl-ico[data-act=skip]{stroke:var(--text-3);opacity:.6}.bl-ico[data-act=lock]{background:var(--key);border-color:var(--key);stroke-width:1.5}.bl-chg .code-title,.bl-insp .code-title{min-height:2.15rem;padding-right:.75rem}.bl-chg .code-title::before,.bl-insp .code-title::before{display:none}.bl-chg .code-file,.bl-insp .code-file{padding:0 .75rem}.bl-chg .code-body pre{padding:.5rem 0;min-height:5.6rem}.bl-chg .line{padding-left:.9rem}.bl-sg{display:inline-block;width:1.4ch;color:var(--code-dim);user-select:none;-webkit-user-select:none}.line.ins .bl-sg{color:var(--code-add)}.line.del .bl-sg{color:var(--code-del)}.bl-ln{display:inline-block;width:2.4ch;margin-right:1.4ch;text-align:right;color:var(--code-dim);user-select:none;-webkit-user-select:none}.bl-chg .line.ins .tok-id,.bl-chg .line.ins{color:var(--code-text)}.bl-chg .line{white-space:pre-wrap;overflow-wrap:anywhere}.bl-term{flex:auto;display:flex;flex-direction:column}.bl-term .term-body{flex:auto;height:13.6rem;min-height:0;overflow:auto;padding:.6rem 0 .8rem}.bl-term .term-line{padding:0 1rem}.bl-term .term-out code{padding:0 1rem;min-width:0}.bl-term[data-ran]::after{top:.8rem;bottom:auto;right:3.2rem;z-index:3}.bl-term .term-body:focus-visible{outline-offset:-2px}.bl-pl{display:block;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 -1rem;padding:0 1rem 0 calc(1rem + 4ch);text-indent:-4ch;transition:background-color 120ms linear}.bl-pl.is-hot{background:var(--code-hl);box-shadow:inset 2px 0 0 var(--code-key)}.bl-sum{margin-top:.15rem}.bl-actor{color:var(--code-key)}@keyframes bl-in-a{from{opacity:0;transform:translateY(5px)}}@keyframes bl-in-b{from{opacity:0;transform:translateY(5px)}}.bl-fig[data-r="0"] .is-run .bl-pl{animation:bl-in-a 380ms var(--ease)calc(var(--o,0) * var(--bl-step) + 160ms)both}.bl-fig[data-r="1"] .is-run .bl-pl{animation:bl-in-b 380ms var(--ease)calc(var(--o,0) * var(--bl-step) + 160ms)both}.bl-insp .code-body pre{padding:.5rem 0;height:9.7rem;overflow:auto}.bl-insp .line{min-height:0;line-height:1.45}.bl-insp .line{padding-left:.9rem}.bl-badge{align-self:center;margin-left:auto;padding:.2rem .5rem;border:1px solid color-mix(in srgb,var(--c,var(--code-dim)) 50%,transparent);background:color-mix(in srgb,var(--c,var(--code-dim)) 12%,transparent);color:var(--c,var(--code-dim));font:600 .68rem/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.bl-badge[data-act=add]{--c:var(--code-add)}.bl-badge[data-act=change],.bl-badge[data-act=replace]{--c:var(--code-chg)}.bl-badge[data-act=lock]{--c:var(--code-key)}.bl-insp-meta{min-height:5.6rem;padding:.55rem .9rem .7rem;border-top:1px solid var(--code-edge);font:.72rem/1.55 var(--font-mono);color:var(--code-dim)}.bl-insp-meta p{margin:0}.bl-insp-id{color:var(--code-text)}.bl-insp-id b{font-weight:600}.bl-insp-id span{margin-left:.6rem;color:var(--code-dim)}.bl-insp-meta code{display:inline;min-width:0;padding:0;border:0;background:0 0;color:var(--code-text);font-size:1em}.bl-insp-line{overflow-wrap:anywhere}.bl-foot{display:grid;grid-template-columns:auto minmax(0,1fr)auto;grid-template-areas:"big tally replay" "unit gline gline";align-items:end;gap:.35rem 2rem;padding:1rem 1.2rem 1.05rem;border-top:1px solid var(--line-strong)}.bl-big{grid-area:big;margin:0;display:flex;align-items:baseline;gap:.5rem;font:500 clamp(3.4rem,2.2rem + 4vw,5.4rem)/.85 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums lining-nums}.bl-of{font-size:.4em;letter-spacing:-.01em;color:var(--text-3);font-style:italic}.bl-unit{grid-area:unit;margin:0;font:500 .68rem/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.bl-tally{grid-area:tally;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;align-items:end;height:2.6rem}.bl-t{position:relative;display:block;height:100%;background:var(--text-3);opacity:.45;transform:scaleY(.28);transform-origin:50% 100%;transition:transform 460ms var(--ease)var(--d,0ms),opacity 240ms linear var(--d,0ms)}.bl-t::after{content:"";position:absolute;inset:0;background:var(--bl-ec);opacity:0;transition:opacity 240ms linear var(--d,0ms)}.bl-t[data-act=add],.bl-t[data-act=change],.bl-t[data-act=replace]{opacity:1;transform:none}.bl-t[data-act=add]::after,.bl-t[data-act=change]::after,.bl-t[data-act=replace]::after{opacity:1}.bl-t[data-act=add]{--bl-ec:var(--accent)}.bl-t[data-act=change],.bl-t[data-act=replace]{--bl-ec:var(--change)}.bl-t[data-act=ghost]{background:0 0;border:1px dashed var(--text-3);opacity:.6;transform:scaleY(.28)}.bl-t.is-hot{outline:2px solid var(--text);outline-offset:1px}.bl-fig.is-neutral .bl-t{transform:scaleY(.28)!important;opacity:.45!important}.bl-fig.is-neutral .bl-t::after{opacity:0!important}.bl-gline{grid-area:gline;margin:0;font:.78rem/1.5 var(--font-mono);color:var(--text-2)}.bl-gline code{padding:0;border:0;background:0 0;font-size:1em;color:inherit;white-space:pre-line;overflow-wrap:anywhere}.bl-replay{grid-area:replay;align-self:start;display:inline-flex;align-items:center;gap:.5rem;min-height:2.25rem;padding:0 .85rem 0 .7rem;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text-2);font:500 .74rem/1 var(--font-mono);letter-spacing:.04em;transition:border-color var(--t-fast),color var(--t-fast),background-color var(--t-fast)}.bl-replay::before{content:"";width:.95rem;height:.95rem;background:currentColor;-webkit-mask:var(--i-replay)center/contain no-repeat;mask:var(--i-replay)center/contain no-repeat}.bl-replay:hover{border-color:var(--text-3);color:var(--text);background:var(--surface-2)}.bl-capline{margin:1rem 0 0;max-width:62rem;font:.9rem/1.6 var(--font-sans);color:var(--text-2)}.bl-capline .fig-n{margin-right:.5rem;font:500 .72rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.bl-nojs{display:none;margin-top:1.5rem}html:not(.js) .bl-nojs{display:block}.bl-nojs ol{margin:0;padding-left:1.2rem;display:grid;gap:.9rem;color:var(--text-2)}.bl-nojs code{display:block;margin-top:.35rem}.bl-links{margin-top:clamp(1.5rem,3vw,2.25rem);gap:.5rem 2rem}@media(max-width:68.74rem){.bl-svg{max-width:48rem;margin-inline:auto}.bl-main{grid-template-columns:minmax(0,1fr)}.bl-graph{border-right:0;border-bottom:1px solid var(--line)}.bl-side{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr);grid-template-areas:"chg insp" "term insp";align-items:start}.bl-chg{grid-area:chg}.bl-term{grid-area:term}.bl-insp{grid-area:insp}}@media(max-width:47.99rem){.bl-side{grid-template-columns:minmax(0,1fr);grid-template-areas:"chg" "term" "insp"}.bl-chip{flex:1 1 calc(50% - .5rem)}.bl-foot{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"big tally" "unit unit" "gline gline" "replay replay";gap:.5rem 1rem;padding:.9rem .9rem 1rem}.bl-tally{height:2.2rem}.bl-replay{min-height:2.75rem}.bl-graph{padding:.7rem .5rem .6rem}.bl-fig.is-tall .bl-rl,.bl-fig.is-tall .bl-head{display:none}html:not(.js) .bl-graph{overflow-x:auto}html:not(.js) .bl-svg{min-width:40rem}}@media(max-width:29.99rem){.bl-chip{flex-basis:100%}}@media(pointer:coarse){.bl-chip{min-height:3.1rem}}@media(forced-colors:active){.bl-box{stroke:CanvasText}.bl-fa,.bl-fc{fill:Highlight}.bl-eb,.bl-ev{stroke:CanvasText}}.mig-band{--band-pad:clamp(3.5rem, 7vw, 6.5rem)}.mig-split{gap:clamp(2rem,4vw,3.75rem)}.mig-col{min-width:0}.mig-col .stage-caption{max-width:40rem}.mig-col .stage-caption code{font-size:.92em}.mig-files{--stage-h:43.5rem}.mig-tab{display:inline-flex;align-items:center}.mig-tab[data-link]::before{content:"";flex:none;width:6px;height:6px;margin-right:.55rem;background:var(--code-key);transform:rotate(45deg)}.mig-code .code-body pre{padding:.8rem 0 1rem}.mig-ill{--status:var(--code-dim)}.mig-ill::before{display:none}.mig-code .line{position:relative;transition:background-color 150ms linear,box-shadow 150ms linear}.mig-code .line[data-g]{box-shadow:inset 2px 0 rgba(154,169,255,.16)}.mig-code .line.is-linked{background:var(--code-hl);box-shadow:inset 2px 0 0 var(--code-key)}.mig-foot{gap:.5rem 1rem;min-height:2.9rem}.mig-note{min-width:0;font:.72rem/1.5 var(--font-mono);color:var(--code-dim)}.mig-note b{font-weight:600;color:var(--code-text)}.mig-note code{padding:0;border:0;background:0 0;font-size:inherit;color:var(--code-text)}.mig-jump{flex:none;padding:.4rem .6rem;border:1px solid color-mix(in srgb,var(--code-key) 45%,transparent);border-radius:var(--r);background:0 0;color:var(--code-key);font:500 .7rem/1 var(--font-mono);letter-spacing:.03em;white-space:nowrap;transition:background-color var(--t-fast)}.mig-jump:empty{display:none}.mig-jump:not(.is-on){visibility:hidden}.mig-jump:hover{background:var(--code-hl)}@media(min-width:60rem) and (max-width:74.99rem){.mig-split{grid-template-columns:minmax(0,1fr)}.mig-files .tab-list,.mig-jump{display:none}.mig-files .tabs.is-ready,.mig-files .tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.mig-files .tab-panel[hidden]{display:block!important}.mig-files .tabs.is-ready .tab-panel[data-title]::before{content:attr(data-title);display:block;padding:.72rem 1rem;border-bottom:1px solid var(--code-edge);background:var(--code-bar);color:var(--code-text);font:500 .75rem/1.2 var(--font-mono)}.mig-files .tab-panel+.tab-panel{border-left:1px solid var(--code-edge)}.mig-files .code-title{top:.5rem;right:.75rem}}.mig-pairs{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none}.mig-pair{display:inline-flex;align-items:center;gap:.5rem;min-height:2.25rem;padding:0 .75rem;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2);font:500 .72rem/1 var(--font-mono);transition:border-color var(--t-fast),background-color var(--t-fast)}.mig-pair b{font-weight:600;color:var(--text)}.mig-pair>span:last-child:not(:first-child){color:var(--key)}.mig-arr{flex:none;width:.95em;height:.95em;background:var(--text-3);-webkit-mask:var(--i-arrow)center/contain no-repeat;mask:var(--i-arrow)center/contain no-repeat}.mig-pair:hover,.mig-pair[data-on],.mig-pair[aria-pressed=true]{border-color:var(--key);background:var(--key-wash)}@media(pointer:coarse){.mig-pair{min-height:2.75rem}}.mig-run .tab-panel{padding:0}.mig-term .code-title{display:none}.mig-term .term-body{padding:0;overflow-x:hidden}.mo-runs{padding:1rem 0 1.4rem}.mo-run+.mo-run{margin-top:1.15rem}.mig-term .term-line{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.mig-term .term-out{margin-top:.3rem}.mig-term .term-out code{min-width:0}.mo{display:block;position:relative;min-height:1.7em;padding-left:4ch;text-indent:-4ch;white-space:pre-wrap;overflow-wrap:anywhere}.mo.mo-gap{min-height:.8em;line-height:.8}.mig-run.is-scripted .mo{opacity:0;transition:opacity 120ms linear}.mig-run.is-scripted .mo.is-on{opacity:1}.mig-run.is-scripted .mo-run:not(.is-on){visibility:hidden}.mo-run.is-typing .cmd-text .t-typed::after{content:"";display:inline-block;width:.6ch;height:1.1em;margin-left:1px;vertical-align:text-bottom;background:var(--code-text);animation:caret 1s steps(2,jump-none)infinite}.t-rest{visibility:hidden}.mo-check{display:inline-block;position:relative;width:1.25em;height:1.25em;margin-left:1.2ch;vertical-align:-.3em;border:1px solid var(--code-add);border-radius:50%;background:color-mix(in srgb,var(--code-add) 18%,transparent)}.mo-check::before{content:"";position:absolute;inset:24%;background:var(--code-add);-webkit-mask:var(--i-check)center/contain no-repeat;mask:var(--i-check)center/contain no-repeat}.mo-check::after{content:"";position:absolute;inset:-1px;border:1px solid var(--code-add);border-radius:50%;opacity:0;pointer-events:none}.mig-run.is-scripted .mo-check{transform:scale(.6);opacity:0;transition:transform 220ms var(--ease),opacity 160ms linear}.mig-run.is-scripted .mo-check.is-on{transform:none;opacity:1}.mig-run.is-scripted .mo-check.is-on::after{animation:mig-halo 700ms ease-out 1}@keyframes mig-halo{from{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}.mig-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:1.4rem 0 0;border:1px solid var(--line-strong);background:var(--surface)}.mig-led{min-width:0;padding:.95rem 1.05rem 1.05rem}.mig-led+.mig-led{border-left:1px solid var(--line-strong)}.mig-led h3{display:flex;align-items:center;gap:.6rem;margin:0 0 .8rem;font:500 .68rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-2)}.mig-dia{flex:none;width:8px;height:8px;background:var(--accent);transform:rotate(45deg)}.mig-changes .mig-dia{background:var(--change)}.mig-chips{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.mig-chips li{padding:.05rem 0 .05rem .75rem;border-left:2px solid var(--accent);font-size:.8rem;line-height:1.45;color:var(--text-2)}.mig-changes .mig-chips li{border-left-color:var(--change)}.mig-chips b{display:block;font-size:.84rem;font-weight:600;color:var(--text)}.mig-chips code{font-size:.92em}@media(max-width:41rem){.mig-ledger{grid-template-columns:minmax(0,1fr)}.mig-led+.mig-led{border-left:0;border-top:1px solid var(--line-strong)}}.mig-flow{margin-top:clamp(2.75rem,5vw,4.5rem)}.mig-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;list-style:none}.mig-step{position:relative;min-width:0;padding-right:1.1rem}.mig-step>a{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;color:var(--text);text-decoration:none}.mig-node{position:relative;display:block;flex:none;width:26px;height:26px;margin-bottom:.6rem}.mig-node::before,.mig-node i{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;transform:rotate(45deg)}.mig-node::before{border:2px solid var(--accent);background:var(--bg);transition:transform var(--t-med)var(--ease)}.mig-node i{background:var(--accent);transition:transform var(--t-med)var(--ease)}.mig-step>a:hover .mig-node::before,.mig-step>a:focus-visible .mig-node::before{transform:rotate(45deg)scale(1.3)}.mig-n{font:600 .72rem/1.2 var(--font-mono);letter-spacing:.06em;color:var(--text-3)}.mig-t{font:500 1.35rem/1.15 var(--font-display);letter-spacing:-.012em}.mig-d{max-width:17rem;margin-top:.25rem;font-size:.84rem;line-height:1.5;color:var(--text-2)}.mig-d code{font-size:.9em;overflow-wrap:anywhere}.mig-d q{quotes:none;font-family:var(--font-mono);font-size:.92em;color:var(--text)}.mig-step:not(:last-child)::before,.mig-step:not(:last-child)::after{content:"";position:absolute;left:13px;top:12px;width:100%;height:2px;background:var(--line-strong)}.mig-step:not(:last-child)::after{background:var(--accent);transform-origin:0 50%;transition:transform 520ms var(--ease)}.mig-gate .mig-node::before,.mig-gate .mig-node i{width:18px;height:18px;margin:-9px 0 0 -9px}.mig-gate .mig-node::after{content:"";position:absolute;left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border:1px solid var(--accent);transform:rotate(45deg)}.mig-gate .mig-t{font-size:1.55rem}.mig-tag{margin-top:.55rem;padding:.18rem .45rem;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-wash);color:var(--accent);font:600 .68rem/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.mig-steps.is-scripted .mig-step:not(.is-reached) .mig-node::before{border-color:var(--text-3)}.mig-steps.is-scripted .mig-step:not(.is-reached) .mig-node i{transform:rotate(45deg)scale(0)}.mig-steps.is-scripted .mig-step:not(.is-drawn)::after{transform:scaleX(0)}@keyframes mig-ring{from{transform:rotate(45deg)scale(.7);opacity:0}to{transform:rotate(45deg)scale(1);opacity:1}}.mig-steps.is-scripted .mig-gate.is-reached .mig-node::after{animation:mig-ring 520ms var(--ease)both}.mig-steps.is-scripted .mig-gate:not(.is-reached) .mig-node::after{opacity:0}.mig-promise{margin:1.75rem 0 0;padding:1.1rem max(0px,calc(100% - 62rem))0 0;border-top:1px solid var(--line);font:.8rem/1.65 var(--font-mono);color:var(--text-2)}.mig-promise code{font-size:.95em}.mig-promise .link-arrow{display:flex;width:max-content;margin:.4rem 0 0;white-space:nowrap}@media(max-width:59.99rem){.mig-steps{grid-template-columns:minmax(0,1fr)}.mig-step{padding:0 0 1.5rem}.mig-step:last-child{padding-bottom:0}.mig-step>a{display:grid;grid-template-columns:26px minmax(0,1fr);column-gap:.95rem;row-gap:.15rem;align-items:start}.mig-node{grid-column:1;grid-row:1/span 2;margin:0}.mig-n,.mig-t,.mig-d,.mig-tag{grid-column:2}.mig-tag{justify-self:start;margin-top:.4rem}.mig-step:not(:last-child)::before,.mig-step:not(:last-child)::after{left:12px;top:12px;width:2px;height:100%}.mig-step:not(:last-child)::after{transform-origin:50% 0}.mig-steps.is-scripted .mig-step:not(.is-drawn)::after{transform:scaleY(0)}}@media print{.mig-band .tl-controls{display:none}}.demo{margin:2.25rem 0;max-width:none}.demo>*{min-width:0}.demo #idea{--idea-fs:clamp(1.45rem, 1.1rem + 1.2vw, 2rem)}.demo .idea-lattice{display:none}.demo .idea-s{padding-left:2.6rem}.demo .idea-n{top:calc(var(--idea-fs) * .3)}.demo .idea-lab{grid-template-columns:minmax(0,1fr);margin-top:1.5rem}.demo .idea-note{margin-top:.8rem}.shift-band .band-lede{max-width:44rem;margin-top:1rem}.shift-cols{grid-template-columns:minmax(0,1fr)minmax(0,1.4fr)minmax(0,1fr)}@media(max-width:66rem){.shift-cols{grid-template-columns:minmax(0,1fr)}}.shift-col{gap:.55rem}.shift-col .card-kicker{color:var(--accent)}.shift-list{margin:.5rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.7rem}.shift-list li{position:relative;padding-left:1.2rem;font-size:.98rem;line-height:1.5;color:var(--text-2)}.shift-list li::before{content:"";position:absolute;left:0;top:.5em;width:.45rem;height:.45rem;background:var(--accent)}.shift-list a{color:var(--text);text-decoration-color:var(--accent);text-underline-offset:.2em}.shift-list a:hover{color:var(--accent)}.reach-band .band-head{margin-bottom:clamp(1.5rem,3vw,2.5rem)}.reach-band .band-title em{display:block;font-style:italic;color:var(--accent)}.reach-band .band-lede{max-width:46rem;margin-top:1rem}.reach-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.5vw,2rem)}@media(max-width:47.99rem){.reach-compare{grid-template-columns:minmax(0,1fr)}}.reach-side{display:flex;flex-direction:column;gap:1rem;min-width:0;padding:1.4rem 1.4rem 1.2rem;background:var(--surface);border:1px solid var(--line-strong)}.reach-side-pravo{border-color:var(--accent)}.reach-name{margin:0;font:500 .74rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.reach-side-pravo .reach-name{color:var(--accent)}.reach-side .stats{margin:0;border:0;display:block}.reach-side .stat{padding:0;border:0;background:0 0}.reach-side .stat dd{font-size:clamp(3.2rem,2rem + 4.5vw,5.4rem);font-weight:400;color:var(--text)}.reach-side-pravo .stat dd{color:var(--accent)}.reach-side .term-body .term-out,.reach-side .term-body .term-out code{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.reach-side .term{margin:0}.reach-caption{margin:1rem 0 clamp(2.5rem,5vw,4rem);max-width:52rem}.reach-caption code{font-size:.92em}.reach-sub{margin:0 0 1rem}.reach-why{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:66rem){.reach-why{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:41rem){.reach-why{grid-template-columns:minmax(0,1fr)}}.reach-why .card-title{font-size:1.35rem}.reach-limits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem clamp(1.5rem,4vw,3rem);margin-top:clamp(1.5rem,3vw,2rem);padding:1.1rem 1.4rem;border-left:3px solid var(--change);background:var(--change-wash)}@media(max-width:47.99rem){.reach-limits{grid-template-columns:minmax(0,1fr)}}.reach-limits p{margin:0;max-width:40rem;font-size:.95rem;line-height:1.55;color:var(--text)}.reach-limits b{display:block;margin-bottom:.3rem;font:500 .72rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.reach-limits code{font-size:.88em;overflow-wrap:anywhere}.about-copy{display:flex;flex-direction:column;gap:1.3rem;min-width:0}.about-copy>*{margin:0}.about-note{max-width:38rem;font:clamp(1.1rem,1rem + .4vw,1.25rem)/1.6 var(--font-display);color:var(--text);text-wrap:pretty}.about-act{gap:.7rem}.download{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1.2fr);gap:clamp(1rem,3vw,2.5rem);align-items:start;margin-bottom:clamp(1.5rem,3vw,2.5rem);padding:clamp(1.2rem,2.5vw,2rem);background:var(--surface);border:1px solid var(--line-strong)}@media(max-width:47.99rem){.download{grid-template-columns:minmax(0,1fr)}}.download-main,.download-install{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;min-width:0}.download-label{margin:0;font:500 .72rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.download-note{margin:0;max-width:34rem;font-size:.92rem;line-height:1.5;color:var(--text-2)}.download-term{width:100%;margin:0}.download-term .cmd-text{overflow-wrap:anywhere}.download-all{font-size:.92rem;color:var(--text-2)}.download-all summary{cursor:pointer}.download-list{margin:.6rem 0 0;padding:0;list-style:none;display:grid;gap:.3rem}.download-list a{color:var(--text);text-decoration-color:var(--accent);text-underline-offset:.2em}.mapping{margin:1.8rem 0}.mapping .table-wrap{margin:0;overflow:visible;border:0;background:0 0}.mapping table{width:100%;min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:.9rem}.mapping thead th{padding:.55rem .9rem .65rem;border-bottom:2px solid var(--text)}.mapping thead th:first-child::before,.mapping thead th:nth-child(2)::before{content:"";display:inline-block;width:.45rem;height:.45rem;margin-right:.55rem;transform:rotate(45deg);background:var(--text-3);vertical-align:.1em}.mapping:not(.mapping-status) thead th:nth-child(2)::before{background:var(--accent)}.mapping tbody td{padding:.7rem .9rem;vertical-align:top;border-top:1px solid var(--line);background:0 0;font-weight:400}.mapping tbody tr:first-child td{border-top:0}.mapping tbody tr:hover td{background:0 0}.mapping td code{white-space:normal;overflow-wrap:anywhere;font-size:.86em}.mapping:not(.mapping-status) tbody td:first-child{position:relative;background:var(--surface);font-weight:500}.mapping:not(.mapping-status) tbody td:nth-child(2){background:var(--accent-wash)}@media(min-width:40.01rem){.mapping:not(.mapping-status) tbody td:first-child::before,.mapping:not(.mapping-status) tbody td:first-child::after{content:"";position:absolute;z-index:1;right:-.65rem;top:.58rem;width:1.3rem;height:1.3rem}.mapping:not(.mapping-status) tbody td:first-child::before{border:1px solid var(--line-strong);border-radius:50%;background:var(--bg)}.mapping:not(.mapping-status) tbody td:first-child::after{z-index:2;background:var(--text-2);-webkit-mask:var(--i-arrow)center/.72rem no-repeat;mask:var(--i-arrow)center/.72rem no-repeat}}.mapping:not(.mapping-status) tbody td:nth-child(n+3){color:var(--text-2)}.mapping:not(.mapping-status) td:nth-child(n+3) code{color:var(--text)}.mapping tr.map-none td:nth-child(2){background:repeating-linear-gradient(135deg,transparent 0 7px,var(--line) 7px 8px);color:var(--text-2)}.mapping tr.map-none td:nth-child(2) code{color:var(--text)}.mapping:not(.mapping-status) tr.map-none td:first-child::before{background:var(--surface)}.mapping:not(.mapping-status) table:has(thead th:nth-child(4)) thead th:nth-child(1){width:23%}.mapping:not(.mapping-status) table:has(thead th:nth-child(4)) thead th:nth-child(2){width:31%}.mapping:not(.mapping-status) table:has(thead th:nth-child(4)) thead th:nth-child(3){width:15%}.mapping-status table{table-layout:auto}.mapping-status thead th:first-child{width:31%}.mapping-status thead th:nth-child(2){width:9.5rem}.mapping-status tbody td:first-child{background:var(--surface);font-weight:500}.mapping-status tbody tr:has([data-v=yes]) td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.mapping-status tbody tr:has([data-v=part]) td:first-child{box-shadow:inset 3px 0 0 var(--change)}.mapping-status tbody tr:has([data-v=no]) td:first-child{box-shadow:inset 3px 0 0 var(--conflict)}.mapping-status td.map-status{white-space:nowrap;font:600 .66rem/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.mapping-status td[data-v=yes]{color:var(--accent)}.mapping-status td[data-v=part]{color:var(--change)}.mapping-status td[data-v=no]{color:var(--conflict)}.mapping-status td.map-status::before{content:"";display:inline-block;width:.85rem;height:.85rem;margin-right:.45rem;vertical-align:-.15em;background:currentColor;-webkit-mask:var(--i-check)center/contain no-repeat;mask:var(--i-check)center/contain no-repeat}.mapping-status td[data-v=part]::before{-webkit-mask-image:var(--i-bang);mask-image:var(--i-bang)}.mapping-status td[data-v=no]::before{-webkit-mask-image:var(--i-x);mask-image:var(--i-x)}.mapping-status tr.map-none td:nth-child(2){background:0 0;box-shadow:none}.mapping-status tr.map-none td:nth-child(3){background:repeating-linear-gradient(135deg,transparent 0 7px,var(--line) 7px 8px)}@media(max-width:40rem){.mapping tbody td{padding-inline:.7rem}.mapping.mapping-status td.map-status::before{display:none}.mapping tbody tr{border-top:1px solid var(--line-strong)}.mapping:not(.mapping-status) tbody td:nth-child(2){margin:.2rem 0}}.doc-cards{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));margin:1.8rem 0}.doc-cards .card{gap:.45rem;padding:1.1rem 1.15rem 1.2rem}.doc-cards .card-title{font-size:1.3rem}.doc-cards .card-text{font-size:.9rem}.doc-cards .card-text code{font-size:.86em}.doc-cards .card-text:last-child{margin-top:auto;padding-top:.35rem;font-weight:600;font-size:.86rem}.doc-cards .card-text:last-child::after{content:"";display:inline-block;width:.9em;height:.9em;margin-left:.4em;vertical-align:-.12em;background:var(--accent);-webkit-mask:var(--i-arrow)center/contain no-repeat;mask:var(--i-arrow)center/contain no-repeat;transition:transform var(--t-fast)var(--ease)}.doc-cards .card:hover .card-text:last-child::after{transform:translateX(3px)}.doc-cards .card a{color:var(--text);text-decoration:none}.doc-cards .card a:last-of-type::after{content:"";position:absolute;inset:0;z-index:1}.doc-cards .card a:last-of-type:focus-visible{outline:none}.doc-cards .card:has(a:focus-visible){outline:2px solid var(--key);outline-offset:-2px}.doc-cards .card:hover .card-title{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em}.runbook{margin:0 0 2.25rem;padding:.95rem 0 1.05rem;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line)}.rb-label{margin:0 0 .95rem;font:500 .68rem/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}.rb-list{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:1.2rem 0;margin:0;padding:0;list-style:none}.rb-step{position:relative;min-width:0;padding-right:.9rem}.rb-in{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;color:var(--text);text-decoration:none}a.rb-in:hover .rb-t{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em}.rb-node{position:relative;display:block;width:22px;height:22px;margin-bottom:.4rem}.rb-node::before,.rb-node::after{content:"";position:absolute;left:50%;top:50%;transform:rotate(45deg)}.rb-node::before{width:10px;height:10px;margin:-5px 0 0 -5px;border:2px solid var(--text-3);background:var(--bg)}.rb-node::after{width:0;height:0;margin:0;background:var(--accent);transition:width var(--t-fast)var(--ease),height var(--t-fast)var(--ease),margin var(--t-fast)var(--ease)}.rb-step::after{content:"";position:absolute;left:24px;top:10px;right:0;height:2px;background:var(--line-strong)}.rb-step.rb-end::after{display:none}.rb-n{font:600 .7rem/1.2 var(--font-mono);letter-spacing:.06em;color:var(--text-3)}.rb-t{font:500 .88rem/1.3 var(--font-sans)}.rb-past .rb-node::before{border-color:var(--accent);background:var(--accent)}.rb-past::after{background:var(--accent)}.rb-here .rb-node::before{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-wash)}.rb-here .rb-node::after{width:4px;height:4px;margin:-2px 0 0 -2px}.rb-here .rb-n{color:var(--accent)}.rb-here .rb-t{font-weight:600}.rb-g{margin-top:.15rem;font-size:.76rem;line-height:1.4;color:var(--text-2)}.rb-g code{font-size:.92em}.rb-here .rb-g{color:var(--text)}.rb-ahead .rb-t{color:var(--text-2)}.rb-lookup{max-width:none;margin:1.1rem 0 0;font-size:.86rem;color:var(--text-2)}.rb-lookup-l{margin-right:.7rem;font:600 .66rem/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.rb-lookup a{margin-right:1rem;color:var(--text);text-decoration:none;white-space:nowrap}.rb-lookup a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em}@media(max-width:40rem){.rb-list{grid-template-columns:minmax(0,1fr);gap:0}.rb-step{padding:0 0 .95rem}.rb-in{display:grid;grid-template-columns:22px auto minmax(0,1fr);align-items:baseline;column-gap:.55rem}.rb-node{margin:0;align-self:center;grid-row:span 2}.rb-g{grid-column:2/-1;margin-top:0}.rb-step::after{left:10px;top:24px;right:auto;width:2px;height:calc(100% - 24px)}.rb-step.rb-end::after{display:block}.rb-step:last-child::after{display:none}}@media(prefers-reduced-motion:reduce){.rb-node::after{transition:none}}@media print{.runbook{break-inside:avoid}}.cause-fix{margin:1.3rem 0;padding:.1rem 0 .1rem 1rem;border-left:2px solid var(--line-strong)}.cause-fix p{position:relative;max-width:var(--measure);margin:.55rem 0;padding-left:4.3rem}.cf-l{position:absolute;left:0;top:.22rem;font:600 .66rem/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--change)}.cf-fix{color:var(--accent)}.cause-fix:has(.cf-fix){border-left-color:var(--accent)}@media(max-width:40rem){.cause-fix p{padding-left:0}.cf-l{position:static;display:block;margin-bottom:.1rem}}