@layer tokens,base,patterns,components,components.plate,components.lightbox,components.player;@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-mono-cyrillic-ext-400-normal.BHxv52bw.woff2) format("woff2"),url(/_astro/roboto-mono-cyrillic-ext-400-normal.W26xs1TL.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-mono-cyrillic-400-normal.C-_K-ZCn.woff2) format("woff2"),url(/_astro/roboto-mono-cyrillic-400-normal.B3hIXASd.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-mono-greek-400-normal.CH_u3Aru.woff2) format("woff2"),url(/_astro/roboto-mono-greek-400-normal.P8xe1gs1.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-mono-vietnamese-400-normal.yYTFiTTs.woff2) format("woff2"),url(/_astro/roboto-mono-vietnamese-400-normal.CzWHQABp.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-mono-latin-ext-400-normal.DLAV9S_w.woff2) format("woff2"),url(/_astro/roboto-mono-latin-ext-400-normal.BwLXVYNz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-mono-latin-400-normal.GekRknry.woff2) format("woff2"),url(/_astro/roboto-mono-latin-400-normal.DBZPkcnn.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-mono-cyrillic-ext-700-normal.QbUcNKL2.woff2) format("woff2"),url(/_astro/roboto-mono-cyrillic-ext-700-normal.BwPMcjzm.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-mono-cyrillic-700-normal.W223d9Po.woff2) format("woff2"),url(/_astro/roboto-mono-cyrillic-700-normal.DeAhOgsV.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-mono-greek-700-normal.yjQVQa5h.woff2) format("woff2"),url(/_astro/roboto-mono-greek-700-normal.BzcFAND_.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-mono-vietnamese-700-normal.BaE27ikz.woff2) format("woff2"),url(/_astro/roboto-mono-vietnamese-700-normal.CPkDCjLi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-mono-latin-ext-700-normal.B3oRrrRC.woff2) format("woff2"),url(/_astro/roboto-mono-latin-ext-700-normal.Bq2Pp7ui.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-mono-latin-700-normal.foxDnrFi.woff2) format("woff2"),url(/_astro/roboto-mono-latin-700-normal.CHYrj1DZ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer tokens{:root{--white: #ffffff;--gray-075: #ececec;--gray-100: #efefef;--gray-200: #d9d9d9;--gray-300: #cccccc;--gray-600: #555555;--gray-700: #404040;--black-a10: rgba(0, 0, 0, .1);--graphite-a55: rgba(48, 48, 48, .55);--ink-950: #110d08;--ink-900: #1b140c;--ink-850: #2a2016;--ink-800: #3b2e1e;--ink-700: #5a4630;--parchment: #e8d9c3;--parchment-dim: #b09a7c;--white-a10: rgba(255, 255, 255, .1);--black-a60: rgba(0, 0, 0, .6);--black-900: #111111;--black-850: #1a1a1a;--gray-800: #2a2a2a;--gray-750: #3a3a3a;--gray-400: #9a9a9a;--amber-500: #ffaa3c;--amber-700: #b5680c;--cyan-300: #8ee6f2;--cyan-500: #3cc7dd;--cyan-700: #1a7f90;--red-800: #7a1f16;--red-300: #ff8a7a;--ochre-600: #d98a1f;--violet-600: #7a5aa0;--violet-300: #b39ad6;--stroke-1: 1px;--stroke-2: 2px;--stroke-3: 3px;--frame-pad: 25px;--column-gap: 30px;--shadow: 0 3px 12px -1px rgb(7 10 25 / 20%), 0 22px 27px -20px rgb(7 10 25 / 20%);--transition: all .1s ease;--z-raised: 1;--z-skip-link: 10;--z-scroll-top: 17;--z-tooltip: 20;--z-henry-under: 49;--z-henry: 50;--z-search-flyout: 99;--font-size-xs: clamp(.7rem, .17vw + .76rem, .79rem);--font-size-sm: clamp(.8rem, .17vw + .76rem, .89rem);--font-size-base: clamp(1rem, .34vw + .91rem, 1.19rem);--font-size-md: clamp(1.25rem, .61vw + 1.1rem, 1.58rem);--font-size-lg: clamp(1.56rem, 1vw + 1.31rem, 2.11rem);--font-size-xl: clamp(1.95rem, 1.56vw + 1.56rem, 2.81rem);--font-size-xxl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem);--font-size-xxxl: clamp(2.95rem, 3.54vw + 2.17rem, 5rem);--font-body: "Roboto Mono", ui-monospace, monospace}}@layer tokens{:root{--surface: var(--white);--ink: var(--gray-700);--rule: var(--gray-700);--on-ink: var(--white);--ink-muted: var(--gray-600);--band: var(--gray-100);--hairline: var(--gray-200);--divider-faint: var(--black-a10);--input-border: var(--gray-300);--well: var(--white);--accent-1: var(--amber-500);--accent-1-ink: var(--amber-700);--accent-2: var(--cyan-500);--accent-2-ink: var(--cyan-700);--on-accent-1: var(--ink-900);--on-accent-2: var(--ink-900);--error-ink: var(--red-800);--code-bg: var(--ink-900);--code-fg: var(--parchment);--code-line: var(--ink-800);--veil: var(--graphite-a55);--mat-line: var(--gray-075);--track-x: var(--ochre-600);--track-y: var(--cyan-500);--track-z: var(--violet-600);--panel-bg: var(--amber-500);--panel-ink: var(--ink-900);--panel-rule: var(--ink-900);--panel-error: var(--red-800);--panel-ring: var(--ink-900);--focus-ring: var(--amber-500);--stroke: var(--stroke-2)}}@layer tokens{:root[data-theme=dark]{color-scheme:dark;--surface: var(--black-900);--ink: var(--parchment);--rule: var(--parchment);--on-ink: var(--black-900);--ink-muted: var(--gray-400);--band: var(--black-850);--hairline: var(--gray-800);--divider-faint: var(--white-a10);--input-border: var(--gray-750);--well: var(--black-850);--accent-1: var(--amber-500);--accent-1-ink: var(--amber-500);--accent-2: var(--cyan-500);--accent-2-ink: var(--cyan-300);--on-accent-1: var(--black-900);--on-accent-2: var(--black-900);--error-ink: var(--red-300);--code-bg: var(--ink-900);--code-fg: var(--parchment);--code-line: var(--ink-800);--veil: var(--black-a60);--mat-line: var(--gray-800);--focus-ring: var(--cyan-500);--track-x: var(--amber-500);--track-y: var(--cyan-300);--track-z: var(--violet-300);--panel-bg: var(--black-850);--panel-ink: var(--parchment);--panel-rule: var(--amber-500);--panel-error: var(--red-300);--panel-ring: var(--amber-500)}}@layer base{*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--surface);font-size:1rem;line-height:1.5;font-family:var(--font-body);min-width:360px}a{color:var(--ink)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--surface);border:var(--stroke) solid var(--rule);padding:8px 14px;z-index:var(--z-skip-link)}.skip-link:focus{left:10px}.screen-reader-text{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}}@layer base{.site{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.primary-site-content{flex:1 0 auto}.theme-wrapper{max-width:1380px;margin-inline:auto;padding-inline:15px}.theme-wrap{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--column-gap)}.site-main{flex:1;min-width:0}.site-content{margin-top:65px}#secondary{width:calc(30% - var(--column-gap) / 2);flex-shrink:0}@media(max-width:991px){#secondary{width:100%;position:static}}}@layer base{a[href^=http]{display:inline-block;position:relative}a[href^=http]:after{position:absolute;opacity:0;background:var(--surface);border:2px solid;transition:var(--transition);pointer-events:none;bottom:0;inset-inline-start:-2px;color:var(--ink);padding:5px;font-size:.85em;line-height:1.3;max-width:calc(100vw - 40px);width:max-content;overflow-wrap:anywhere;translate:var(--tt-shift, 0) 0;transition-property:opacity,bottom;box-sizing:border-box;z-index:var(--z-tooltip)}a[href^=http]:hover:after,a[href^=http]:focus:after{content:attr(href);opacity:1;bottom:calc(100% + 1px)}@media(hover:none){a[href^=http]:hover:after,a[href^=http]:focus:after{content:none}}}@layer base{a.terminal-blog-scroll-to-top{position:fixed;bottom:53px;right:30px;height:40px;width:40px;opacity:0;visibility:hidden;z-index:var(--z-scroll-top);display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink);background-color:var(--surface);border:1px solid var(--rule);transition:var(--transition)}a.terminal-blog-scroll-to-top:hover{outline:var(--stroke) solid var(--rule)}a.terminal-blog-scroll-to-top:hover,a.terminal-blog-scroll-to-top:focus-visible{transform:translateY(-10px)}a.terminal-blog-scroll-to-top.show{opacity:1;visibility:visible}@media(max-width:768px){a.terminal-blog-scroll-to-top{display:none}}}@layer patterns{.bracket-frame{position:relative;border:var(--stroke) solid var(--rule);border-width:var(--stroke) 0;padding:var(--frame-pad)}.bracket-frame:before,.bracket-frame:after{content:"";position:absolute;top:0;width:var(--stroke);height:100%;background:linear-gradient(to bottom,var(--rule) 0%,rgba(0,0,0,0) 35%,rgba(0,0,0,0) 65%,var(--rule) 100%)}.bracket-frame:before{left:0}.bracket-frame:after{right:0}.boxed-label{margin:0;color:var(--ink);border:var(--stroke) solid var(--rule);background-color:var(--surface)}.icon-box{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--ink);border:var(--stroke) solid var(--rule);background-color:var(--surface);text-decoration:none;padding:0;font:inherit;cursor:pointer;transition:var(--transition)}.icon-box:hover{outline:2px solid currentColor}.press-box{color:var(--ink);background-color:var(--surface);border:var(--stroke) solid var(--rule);text-decoration:none;font:inherit;cursor:pointer}.press-box:active{color:var(--on-ink);background-color:var(--ink)}.press-box-accent{--press-accent: var(--accent-2);--press-accent-ink: var(--accent-2-ink);--press-on-accent: var(--on-accent-2);color:var(--press-accent-ink);background-color:color-mix(in srgb,var(--press-accent) 6%,var(--surface));border-color:var(--press-accent)}.press-box-accent:hover{background-color:color-mix(in srgb,var(--press-accent) 14%,var(--surface))}.press-box-accent:active{color:var(--press-on-accent);background-color:var(--press-accent)}.press-box-accent-1{--press-accent: var(--accent-1);--press-accent-ink: var(--accent-1-ink);--press-on-accent: var(--on-accent-1)}.press-box-accent-2{--press-accent: var(--accent-2);--press-accent-ink: var(--accent-2-ink);--press-on-accent: var(--on-accent-2)}.press-box-shaded{background-color:color-mix(in srgb,var(--ink) 20%,var(--surface))}.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.tint-overlay{position:relative}.tint-overlay:before{content:"";position:absolute;inset:0;background-color:var(--tint-color, var(--ink));opacity:var(--tint-opacity, .1)}.back-link{margin-top:20px;font-size:var(--font-size-sm)}.back-link a{color:var(--ink)}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;color:var(--on-ink);background-color:var(--ink);font-size:var(--font-size-xs);font-weight:700;line-height:1}.draft-stamp{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;color:var(--accent-1);font-weight:700;letter-spacing:.2em;text-shadow:0 2px 10px rgb(0 0 0 / 65%)}.rule-box{border:var(--stroke) solid var(--rule);padding:var(--frame-pad)}.caption{font-size:var(--font-size-xs);opacity:.75}.micro-label{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em}.field-join{display:flex;flex-wrap:wrap;border:2px solid var(--field-ink, var(--rule));background:var(--field-well, var(--well))}.field-join-input{flex:1;min-width:0;border:0;border-radius:0;padding:10px 12px;background:transparent;color:var(--field-text, var(--field-ink, var(--ink)));font-family:var(--font-body);font-size:var(--font-size-sm)}.field-join-input:focus-visible{outline:2px solid var(--field-ring, var(--focus-ring));outline-offset:-2px}:root[data-focus=keyboard] .field-join-input:focus-visible{outline-color:var(--focus-ring)}.field-join-button{border-width:0 0 0 2px;border-color:var(--field-ink, var(--rule));border-radius:0;padding:10px 18px;font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;position:relative;z-index:1}.field-join-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-4px}}@layer components{.entry-content pre.astro-code{border:var(--stroke) solid var(--rule);padding:12px 14px;margin:20px 0;overflow-x:auto;font-size:var(--font-size-sm);line-height:1.7}.entry-content :not(pre)>code{background:var(--band);border:1px solid var(--hairline);padding:1px 5px;font-size:.9em}.code-island-bar{display:flex;justify-content:space-between;align-items:center;border:var(--stroke) solid var(--rule);border-bottom:1px solid var(--code-line);background:var(--code-bg);color:var(--accent-1);font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;margin:20px 0 0}.code-island-bar+pre.astro-code{margin-top:0;border-top:0}.code-copy{border:1px solid currentColor;background:none;color:inherit;font-family:var(--font-body);font-size:inherit;letter-spacing:inherit;text-transform:inherit;padding:2px 8px;cursor:pointer}.code-copy:hover{outline:1px solid currentColor}}.cute-robot-container{display:inline-flex;flex-direction:column;align-items:center;position:relative;width:160px}.cute-robot-has-question{padding-top:52px}.cute-robot-q{position:absolute;top:0;left:50%;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:700;line-height:1;transform:translate(var(--q-x),var(--q-y)) rotate(var(--q-tilt));animation:cute-robot-q-boing 3.2s ease-in-out infinite}.cute-robot-q-main{--q-x: 35px;--q-y: 6px;--q-tilt: 10deg;font-size:36px;color:#ffaa3c}.cute-robot-q-small{--q-x: 76px;--q-y: 0px;--q-tilt: 22deg;font-size:20px;color:#ffc46e;animation-delay:-1.1s}@keyframes cute-robot-q-boing{0%{transform:translate(var(--q-x),var(--q-y)) rotate(calc(var(--q-tilt) - 5deg)) scale(.85)}7%{transform:translate(var(--q-x),var(--q-y)) rotate(calc(var(--q-tilt) + 4deg)) scale(1.18)}14%{transform:translate(var(--q-x),var(--q-y)) rotate(var(--q-tilt)) scale(1)}55%{transform:translate(var(--q-x),calc(var(--q-y) - 4px)) rotate(calc(var(--q-tilt) + 6deg)) scale(1)}92%{transform:translate(var(--q-x),var(--q-y)) rotate(calc(var(--q-tilt) - 3deg)) scale(1)}to{transform:translate(var(--q-x),var(--q-y)) rotate(calc(var(--q-tilt) - 5deg)) scale(.85)}}.cute-robot-robot{position:relative;display:inline-block}.cute-robot-antenna{display:block;width:7px;height:24px;background:#555;margin:0 auto;border-radius:3px;position:relative}.cute-robot-antenna:before{content:"";position:absolute;top:-15px;left:-5.5px;width:17px;height:17px;background:#ffaa3c;border-radius:50%;animation:cute-robot-glow 1.6s ease-in-out infinite}@keyframes cute-robot-glow{0%,to{opacity:.5}50%{opacity:1}}.cute-robot-head{width:109px;height:78px;border:5px solid #555;border-radius:20px;display:flex;align-items:center;justify-content:center;gap:20px;background:#fff;box-sizing:border-box}.cute-robot-eye{width:17px;height:17px;background:#ffaa3c;border-radius:50%;animation:cute-robot-blink 3.2s infinite}@keyframes cute-robot-blink{0%,92%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}.cute-robot-sleepy{padding-top:56px}.cute-robot-sleepy .cute-robot-antenna{transform:rotate(-16deg);transform-origin:50% 100%}.cute-robot-sleepy .cute-robot-antenna:before{animation:none;opacity:.5}.cute-robot-sleepy .cute-robot-eye{height:8.5px;border-radius:0 0 8.5px 8.5px;transform:translateY(4px);animation:cute-robot-sleepy-blink 6.4s infinite}@keyframes cute-robot-sleepy-blink{0%,88%,to{transform:translateY(4px) scaleY(1)}94%{transform:translateY(4px) scaleY(.15)}}.cute-robot-z{position:absolute;top:0;left:50%;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:700;line-height:1;color:#ffaa3c;opacity:0;transform:translate(var(--z-x),var(--z-y)) scale(.6)}.cute-robot-sleepy .cute-robot-z{animation:cute-robot-z-drift 4.2s ease-out infinite}.cute-robot-z-a{--z-x: 26px;--z-y: 12px;font-size:30px}.cute-robot-z-b{--z-x: 50px;--z-y: 4px;font-size:22px;color:#ffc46e;animation-delay:-1.4s}.cute-robot-z-c{--z-x: 68px;--z-y: -2px;font-size:16px;color:#ffc46e;animation-delay:-2.8s}@keyframes cute-robot-z-drift{0%{opacity:0;transform:translate(var(--z-x),var(--z-y)) scale(.6)}8%{opacity:1;transform:translate(calc(var(--z-x) + 3px),calc(var(--z-y) - 5px)) scale(1.15)}16%{opacity:1;transform:translate(calc(var(--z-x) + 5px),calc(var(--z-y) - 8px)) scale(1)}to{opacity:0;transform:translate(calc(var(--z-x) + 28px),calc(var(--z-y) - 46px)) scale(1)}}.cute-robot-happy .cute-robot-head{background:#fff}.cute-robot-surprised .cute-robot-eye{width:22px;height:22px;animation:none}.cute-robot-surprised .cute-robot-antenna:before{animation-duration:.5s}.cute-robot-dizzy .cute-robot-eye{background:transparent;animation:none;position:relative}.cute-robot-dizzy .cute-robot-eye:before,.cute-robot-dizzy .cute-robot-eye:after{content:"";position:absolute;left:50%;top:50%;width:19px;height:4.5px;margin:-2.25px 0 0 -9.5px;border-radius:2px;background:#ffaa3c}.cute-robot-dizzy .cute-robot-eye:before{transform:rotate(45deg)}.cute-robot-dizzy .cute-robot-eye:after{transform:rotate(-45deg)}.cute-robot-dizzy .cute-robot-antenna{transform-origin:50% 100%;animation:cute-robot-wobble .5s ease-in-out infinite}@keyframes cute-robot-wobble{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.cute-robot-orbit{display:none;position:absolute;left:50%;top:40px;width:120px;height:44px;margin-left:-60px;pointer-events:none}.cute-robot-dizzy .cute-robot-orbit{display:block;animation:cute-robot-orbitspin 1.1s linear infinite}.cute-robot-star{position:absolute;top:14px;font-size:0}.cute-robot-star:before{content:"✶";font-size:16px;font-weight:700;color:#ffaa3c}.cute-robot-star-b{right:0}.cute-robot-star:not(.cute-robot-star-b){left:0}.cute-robot-star-b:before{color:#ffc46e}@keyframes cute-robot-orbitspin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cute-robot-glitched .cute-robot-robot{animation:cute-robot-glitch .12s steps(2) infinite}@keyframes cute-robot-glitch{0%{opacity:1;transform:translate(-2px)}to{opacity:.55;transform:translate(2px)}}.cute-robot-glitched .cute-robot-antenna:before{animation:cute-robot-glitchball .12s steps(2) infinite}@keyframes cute-robot-glitchball{0%{opacity:1}to{opacity:.2}}.cute-robot-rebooting .cute-robot-eye{height:4px;border-radius:2px;animation:none}.cute-robot-dots{display:none;position:absolute;left:50%;transform:translate(-50%);bottom:-24px;white-space:nowrap}.cute-robot-rebooting .cute-robot-dots{display:block}.cute-robot-dots span{font-size:0}.cute-robot-dots span:before{content:"·";font-size:22px;font-weight:700;color:#ffaa3c;opacity:.2}.cute-robot-rebooting .cute-robot-dots span:before{animation:cute-robot-dotcycle .9s infinite}.cute-robot-rebooting .cute-robot-dots span:nth-child(2):before{animation-delay:.3s}.cute-robot-rebooting .cute-robot-dots span:nth-child(3):before{animation-delay:.6s}@keyframes cute-robot-dotcycle{0%,60%,to{opacity:.2}30%{opacity:1}}.cute-robot-spark{position:absolute;pointer-events:none;font-size:0;animation:cute-robot-sparkpop .9s ease-out forwards}.cute-robot-spark:before{content:"✦";font-size:16px;font-weight:700;color:#ffaa3c}@keyframes cute-robot-sparkpop{0%{opacity:0;transform:scale(.4) rotate(0)}25%{opacity:1;transform:scale(1.25) rotate(20deg)}to{opacity:0;transform:scale(.8) rotate(45deg) translateY(-8px)}}.cute-robot-bang{position:absolute;pointer-events:none;font-size:0;animation:cute-robot-bangpop .7s ease-out forwards}.cute-robot-bang:before{content:"!";font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:28px;font-weight:700;color:#ffaa3c}@keyframes cute-robot-bangpop{0%{opacity:0;transform:scale(.3)}20%{opacity:1;transform:scale(1.4) rotate(8deg)}35%{transform:scale(1) rotate(-3deg)}to{opacity:0;transform:scale(1) translateY(-10px)}}.cute-robot-ghost{position:absolute;pointer-events:none;width:109px;height:78px;border:5px solid #555;border-radius:20px;opacity:.28;animation:cute-robot-ghostfade .4s ease-out forwards}@keyframes cute-robot-ghostfade{to{opacity:0}}.cute-robot-shield{position:absolute;width:116px;height:116px;border:3px solid #ffaa3c;border-radius:50%;background:#ffaa3c14;pointer-events:none;animation:cute-robot-shieldpop .55s ease-out forwards}.cute-robot-shield:before{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;background:#ffaa3c;opacity:.3;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%)}.cute-robot-shield:after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#ffaa3c;box-shadow:0 -34px #ffaa3c,29px -17px #ffaa3c,29px 17px #ffaa3c,0 34px #ffaa3c,-29px 17px #ffaa3c,-29px -17px #ffaa3c}@keyframes cute-robot-shieldpop{0%{opacity:0;transform:scale(.35)}22%{opacity:1;transform:scale(1.14)}42%{opacity:.9;transform:scale(.97)}to{opacity:0;transform:scale(1.05)}}@media(prefers-reduced-motion:reduce){.cute-robot-q,.cute-robot-antenna,.cute-robot-antenna:before,.cute-robot-eye,.cute-robot-robot,.cute-robot-orbit,.cute-robot-spark,.cute-robot-bang,.cute-robot-ghost,.cute-robot-shield,.cute-robot-sleepy .cute-robot-z,.cute-robot-sleepy .cute-robot-eye,.cute-robot-sleepy .cute-robot-antenna:before,.cute-robot-surprised .cute-robot-antenna:before,.cute-robot-dizzy .cute-robot-antenna,.cute-robot-dizzy .cute-robot-orbit,.cute-robot-glitched .cute-robot-robot,.cute-robot-glitched .cute-robot-antenna:before,.cute-robot-rebooting .cute-robot-dots span:before{animation:none}.cute-robot-sleepy .cute-robot-z{opacity:1;transform:translate(calc(var(--z-x) + 5px),calc(var(--z-y) - 8px))}}@layer base{.henry-loose{position:fixed;top:0;left:0;width:100px;z-index:var(--z-henry);cursor:pointer;user-select:none;touch-action:manipulation;will-change:transform;transition:opacity .4s ease}.henry-loose-body{position:relative;transition:transform .18s ease;transform-origin:50% 90%}.henry-loose.henry-loose-invuln .henry-loose-body{animation:henry-invuln-flicker .25s steps(2) infinite}.henry-loose-body .cute-robot-shield{left:50%;top:52%;margin:-58px 0 0 -58px}@keyframes henry-invuln-flicker{0%{opacity:1}to{opacity:.45}}.henry-loose-rig{display:block}.henry-loose-rig .cute-robot-container{zoom:.62}.henry-loose-fx{position:absolute;inset:-34px -24px auto;height:44px;pointer-events:none}.henry-loose-fading{opacity:0}.henry-loose-hp{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);display:none;gap:3px}.henry-loose-hp.show{display:flex}.henry-loose-hp span{width:10px;height:6px;border:1px solid var(--rule);background-color:var(--surface)}.henry-loose-hp span.full{background-color:var(--accent-1)}.henry-hole{position:fixed;width:74px;height:30px;z-index:var(--z-henry-under);border-radius:50%;background:var(--code-bg);box-shadow:0 0 0 3px var(--accent-1);animation:henry-hole-open .25s ease-out,henry-hole-pulse 1.4s ease-in-out .3s infinite}.henry-hole.closing{animation:henry-hole-close .3s ease-in forwards}.henry-hole-follow{display:block;cursor:pointer;text-decoration:none}.henry-hole-follow:before{content:"";position:absolute;inset:-18px -22px -46px}.henry-hole-follow:hover .henry-hole-label,.henry-hole-follow:focus-visible .henry-hole-label{border-color:var(--accent-1)}.henry-hole-label{position:absolute;top:38px;left:50%;transform:translate(-50%) scale(0);font-size:var(--font-size-xs);color:var(--ink);background:var(--band);border:1px solid var(--hairline);padding:1px 5px;white-space:nowrap;text-decoration:none;animation:henry-hole-labelpop .35s ease-out 1s forwards}@keyframes henry-hole-open{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes henry-hole-close{to{transform:scale(0);opacity:0}}@keyframes henry-hole-pulse{0%,to{box-shadow:0 0 0 3px var(--accent-1);transform:scale(1)}50%{box-shadow:0 0 0 6px var(--accent-1);transform:scale(1.06)}}@keyframes henry-hole-labelpop{0%{transform:translate(-50%) scale(0);opacity:0}70%{transform:translate(-50%) scale(1.12);opacity:1}to{transform:translate(-50%) scale(1);opacity:1}}.henry-loose.henry-tp-out .henry-loose-body{animation:henry-tp-out .55s ease-in forwards}.henry-loose.henry-tp-in .henry-loose-body{animation:henry-tp-in .45s ease-out}@keyframes henry-tp-out{0%{transform:rotate(0) scale(1) translateY(0);opacity:1}45%{transform:rotate(200deg) scale(.75,1.1) translateY(6px);opacity:1}to{transform:rotate(720deg) scale(0) translateY(26px);opacity:0}}@keyframes henry-tp-in{0%{transform:rotate(-540deg) scale(0) translateY(26px);opacity:0}70%{transform:rotate(10deg) scale(1.15,.9) translateY(-2px);opacity:1}to{transform:rotate(0) scale(1) translateY(0);opacity:1}}}@layer components.plate{.pm-dialog{width:100%;height:100%;max-width:100%;max-height:100%;border:0;padding:0;margin:0;background:transparent;overflow:auto;overscroll-behavior:contain}.pm-dialog[open]{display:flex;justify-content:center}.pm-dialog::backdrop{background:var(--veil);backdrop-filter:blur(7px)}html.pm-open,html.pm-open body{overflow:hidden}html.pm-open{scrollbar-gutter:stable}.pm-zone{position:relative;margin:auto;padding:26px 30px;max-width:100%;box-sizing:border-box}.pm-corner{position:absolute;width:22px;height:22px;border:0 solid var(--accent-1)}.pm-c-tl{top:0;left:0;border-top-width:2px;border-left-width:2px}.pm-c-tr{top:0;right:0;border-top-width:2px;border-right-width:2px}.pm-c-bl{bottom:0;left:0;border-bottom-width:2px;border-left-width:2px}.pm-c-br{bottom:0;right:0;border-bottom-width:2px;border-right-width:2px}.pm-plate{background:var(--surface);box-shadow:var(--shadow);line-height:1.5;max-width:100%;box-sizing:border-box}.pm-label{position:absolute;padding:2px 8px;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-label-tl{top:-12px;left:25px;max-width:calc(100% - 95px)}.pm-label-bl,.pm-label-br{max-width:calc(50% - 33px)}.pm-label-bl{bottom:-12px;left:25px}.pm-label-br{bottom:-12px;right:25px}.pm-close{position:absolute;top:-17px;right:-17px;z-index:1}@media(max-width:768px){.pm-zone{padding:16px 9px}.pm-corner{display:none}.pm-close{right:16px}}}@layer components.lightbox{.lightbox-link{display:block;line-height:0;cursor:zoom-in}.lb-main{display:flex;align-items:center;gap:16px}.lb-arrow{font-size:var(--font-size-md)}.lb-bar,.lb-foot{display:contents}.lb-viewbox{position:relative;overflow:hidden;border:var(--stroke) solid var(--rule);width:min(70vw,990px);height:min(66vh,740px);background-image:linear-gradient(to right,var(--mat-line) 1px,transparent 1px),linear-gradient(to bottom,var(--mat-line) 1px,transparent 1px);background-size:12px 12px;background-position:center center;touch-action:none}.lb-img{position:absolute;left:50%;top:50%;max-width:none;border:0;cursor:grab}.lb-caption{font-size:var(--font-size-xs);text-align:center;color:var(--ink);margin:12px 0 14px;width:0;min-width:100%}.lb-home{position:absolute;bottom:10px;left:50%;transform:translate(-50%);font:inherit;padding:2px 10px;cursor:pointer;z-index:1}.lb-thumbs{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%;gap:8px;justify-content:safe center;margin-top:12px;padding:4px}.lb-thumb{flex:0 0 auto;width:44px;height:44px;padding:0;border:2px solid var(--on-ink);background:none;cursor:pointer;opacity:.65}.lb-thumb img{width:100%;height:100%;object-fit:cover;display:block;border:0}.lb-thumb.active{opacity:1;outline:2px solid var(--accent-1);outline-offset:2px}.lb-dialog [hidden]{display:none}@media(max-width:768px){.lb-arrow{display:none}.lb-viewbox{width:86vw;height:52vh}.lb-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.lb-dialog .lb-counter{position:static;border:0;padding:0;max-width:none}.lb-close{position:static}.lb-foot{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--hairline);padding-top:6px;font-size:var(--font-size-xs);letter-spacing:.1em}.lb-dialog .lb-dims,.lb-dialog .lb-readout{position:static;border:0;padding:0;font-weight:400;max-width:none}}}.theme-toggle[data-astro-cid-x3pjskd3]{font-size:16px}.theme-toggle[data-astro-cid-x3pjskd3] span[data-astro-cid-x3pjskd3]{display:block;line-height:0}.theme-toggle-moon[data-astro-cid-x3pjskd3] path{fill:var(--accent-2)}.theme-toggle-sun[data-astro-cid-x3pjskd3] circle{fill:var(--accent-1)}.theme-toggle[data-astro-cid-x3pjskd3] .theme-toggle-moon[data-astro-cid-x3pjskd3]{display:none}:root[data-theme=dark] .theme-toggle[data-astro-cid-x3pjskd3] .theme-toggle-moon[data-astro-cid-x3pjskd3]{display:block}:root[data-theme=dark] .theme-toggle[data-astro-cid-x3pjskd3] .theme-toggle-sun[data-astro-cid-x3pjskd3]{display:none}.theme-toggle-phone[data-astro-cid-x3pjskd3]{display:none}@media(max-width:768px){.theme-toggle-phone[data-astro-cid-x3pjskd3]{display:flex}}.site-header[data-astro-cid-ctg3m53h]{margin-block:30px 10px}.site-header-wrapper[data-astro-cid-ctg3m53h]{z-index:1}.adore-top-header[data-astro-cid-ctg3m53h]{display:flex;align-items:center;justify-content:space-between;margin-top:-42px}.adore-top-header[data-astro-cid-ctg3m53h] .date[data-astro-cid-ctg3m53h]{padding:4px 10px;display:grid;place-items:center;font-size:var(--font-size-sm)}.header-tools[data-astro-cid-ctg3m53h],.header-end[data-astro-cid-ctg3m53h]{display:flex;align-items:center;gap:10px}ul[data-astro-cid-ctg3m53h].social-links{margin:0;padding:0;list-style:none;display:flex;gap:10px}.adore-top-header[data-astro-cid-ctg3m53h] ul[data-astro-cid-ctg3m53h].social-links a[data-astro-cid-ctg3m53h][href^=http]:after{inset-inline-start:unset;inset-inline-end:-2px;bottom:unset;top:0}.adore-top-header[data-astro-cid-ctg3m53h] ul[data-astro-cid-ctg3m53h].social-links a[data-astro-cid-ctg3m53h][href^=http]:hover:after,.adore-top-header[data-astro-cid-ctg3m53h] ul[data-astro-cid-ctg3m53h].social-links a[data-astro-cid-ctg3m53h][href^=http]:focus:after{bottom:unset;top:calc(100% + 1px)}.adore-middle-header[data-astro-cid-ctg3m53h]{display:flex;align-items:center;justify-content:center;padding-block:20px}.site-branding[data-astro-cid-ctg3m53h]{padding-block:10px;text-align:center;width:100%}.site-title[data-astro-cid-ctg3m53h]{font-size:var(--font-size-xl);line-height:1.1;font-weight:700;margin:0}.site-title[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]{text-decoration:none;color:var(--ink)}.site-description[data-astro-cid-ctg3m53h]{margin-bottom:0;margin-top:5px;color:var(--accent-1)}.adore-bottom-header[data-astro-cid-ctg3m53h]{position:relative;margin-bottom:-47px}.header-nav-search[data-astro-cid-ctg3m53h]{width:100%;display:flex;gap:20px;align-items:center;justify-content:space-between}.main-navigation[data-astro-cid-ctg3m53h] .menu[data-astro-cid-ctg3m53h]{list-style:none;padding:0;margin:0;display:flex;gap:10px;flex-wrap:wrap;font-size:var(--font-size-sm)}.main-navigation[data-astro-cid-ctg3m53h] .menu[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]{padding:7px 15px;text-transform:uppercase;font-weight:700;display:block}.menu-item[data-astro-cid-ctg3m53h]{position:relative}.current-menu-item[data-astro-cid-ctg3m53h]>a[data-astro-cid-ctg3m53h]{--tint-opacity: .2}.main-navigation[data-astro-cid-ctg3m53h] .menu[data-astro-cid-ctg3m53h] a[data-astro-cid-ctg3m53h]:hover{outline:var(--stroke) solid var(--rule)}.menu-toggle[data-astro-cid-ctg3m53h]{display:none}@media(max-width:991px){.menu-toggle[data-astro-cid-ctg3m53h]{display:block;width:35px;height:35px;position:relative;cursor:pointer;padding:0;margin:5px;border:var(--stroke) solid var(--rule);background-color:var(--surface)}.menu-toggle[data-astro-cid-ctg3m53h] span[data-astro-cid-ctg3m53h]:not(.screen-reader-text){display:block;position:absolute;height:3px;width:calc(100% - 10px);background:var(--ink);border-radius:3px;left:50%;transform:translate(-50%)}.menu-toggle[data-astro-cid-ctg3m53h] span[data-astro-cid-ctg3m53h]:nth-child(1){top:7px}.menu-toggle[data-astro-cid-ctg3m53h] span[data-astro-cid-ctg3m53h]:nth-child(2){top:14px}.menu-toggle[data-astro-cid-ctg3m53h] span[data-astro-cid-ctg3m53h]:nth-child(3){top:21px}.main-navigation[data-astro-cid-ctg3m53h] .menu[data-astro-cid-ctg3m53h]{display:none;flex-direction:column}.main-navigation[data-astro-cid-ctg3m53h] .menu[data-astro-cid-ctg3m53h].open{display:flex}.adore-bottom-header[data-astro-cid-ctg3m53h]{margin-bottom:0}}@media(max-width:768px){.adore-top-header[data-astro-cid-ctg3m53h]{display:none}}.navigation-search[data-astro-cid-ctg3m53h]{width:30px;position:relative;display:inline-block;text-align:center}.navigation-search-form[data-astro-cid-ctg3m53h]{position:absolute;right:0;opacity:0;visibility:hidden;top:100%;width:325px;padding:14px;z-index:var(--z-search-flyout);background-color:var(--surface);border:var(--stroke) solid var(--rule);transition:var(--transition)}.navigation-search-wrap[data-astro-cid-ctg3m53h]:focus-within .navigation-search-form[data-astro-cid-ctg3m53h]{opacity:1;visibility:visible}.search-form[data-astro-cid-ctg3m53h] label[data-astro-cid-ctg3m53h]{flex:1}.search-form[data-astro-cid-ctg3m53h] .search-field[data-astro-cid-ctg3m53h]{width:100%}.site-footer[data-astro-cid-sz7xmlte]{margin-top:50px}.bottom-footer[data-astro-cid-sz7xmlte]{padding:15px 0 20px;z-index:1}.bottom-footer-info[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;position:relative;font-size:var(--font-size-sm)}.site-info[data-astro-cid-sz7xmlte]{text-align:center}.site-info[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{text-decoration:none;opacity:.8;transition:var(--transition);color:var(--ink)}.site-info-seg[data-astro-cid-sz7xmlte]{white-space:nowrap}@media(max-width:768px){.site-info-sep[data-astro-cid-sz7xmlte]{display:none}}.site-info[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{opacity:1}.footer-sitemap[data-astro-cid-sz7xmlte]{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:20px 90px;margin-top:15px;padding-top:20px;border-top:1px solid var(--hairline);font-size:var(--font-size-sm)}.footer-sitemap-group[data-astro-cid-sz7xmlte] h2[data-astro-cid-sz7xmlte]{margin:0 0 8px;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase}.footer-sitemap-group[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;margin:0;padding:0}.footer-sitemap-group[data-astro-cid-sz7xmlte] li[data-astro-cid-sz7xmlte]{margin:4px 0}.footer-sitemap[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{text-decoration:none;opacity:.8;transition:var(--transition)}.footer-sitemap[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover,.footer-sitemap[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:focus{opacity:1;text-decoration:underline}.footer-sitemap-self[data-astro-cid-sz7xmlte]{font-weight:700}.footer-sitemap-pending[data-astro-cid-sz7xmlte]{opacity:.55}.footer-sitemap-collapsible[data-astro-cid-sz7xmlte] summary[data-astro-cid-sz7xmlte]{list-style:none;cursor:default;pointer-events:none}.footer-sitemap-collapsible[data-astro-cid-sz7xmlte] summary[data-astro-cid-sz7xmlte]::-webkit-details-marker{display:none}.footer-sitemap-collapsible[data-astro-cid-sz7xmlte] summary[data-astro-cid-sz7xmlte] h2[data-astro-cid-sz7xmlte]{display:inline-block}@media(max-width:768px){.footer-sitemap[data-astro-cid-sz7xmlte]{flex-direction:column;align-items:center;gap:14px}.footer-sitemap-group[data-astro-cid-sz7xmlte]{text-align:center}.footer-sitemap-collapsible[data-astro-cid-sz7xmlte] summary[data-astro-cid-sz7xmlte]{cursor:pointer;pointer-events:auto}.footer-sitemap-collapsible[data-astro-cid-sz7xmlte] summary[data-astro-cid-sz7xmlte]:before{content:"+";display:inline-block;width:1.2em;height:1.2em;line-height:1.1em;margin-right:8px;border:2px solid currentColor;font-size:var(--font-size-xs);font-weight:700;text-align:center;vertical-align:-.15em}.footer-sitemap-collapsible[data-astro-cid-sz7xmlte][open] summary[data-astro-cid-sz7xmlte]:before{content:"−"}.footer-sitemap-collapsible[data-astro-cid-sz7xmlte]:not([open]) summary[data-astro-cid-sz7xmlte] h2[data-astro-cid-sz7xmlte]{margin-bottom:0}}
