@font-face{font-family:Google Sans Flex Variable;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/_astro/google-sans-flex-latin-rond-normal.C35CNeuD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer base{:root{--space-sm:2px;--space-md:4px;--space-lg:8px;--space-xl:16px;--space-2xl:32px;--space-3xl:64px;--rounded-sm:5px;--rounded-md:10px;--rounded-lg:15px;--rounded-xl:20px;--rounded-2xl:25px;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px 0 #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--inset-shadow-lg:inset 0 1px 2px light-dark(#00000026,#ffffff26), 0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;accent-color:var(--primary);--duration-stagger:40ms;--duration-micro:80ms;--duration-quick:.15s;--duration-fast:.25s;--duration-medium:.35s;--duration-slow:.4s;--duration-very-slow:.5s;--ease-smooth-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:ease-in-out;--ease-out:ease-out;--ease-linear:linear;--ease-bounce:cubic-bezier(.34, 1.36, .64, 1);--ease-bounce-strong:cubic-bezier(.34, 3.85, .64, 1);--distance-micro:4px;--distance-small:6px;--distance-base:8px;--distance-medium:12px;--distance-large:30px;--scale-large:.96;--scale-medium:.97;--scale-small:.98;--scale-tiny:.99;--blur-small:2px;--blur-medium:3px;--blur-large:8px;--text-swap-dur:var(--duration-quick);--text-swap-translate-y:var(--distance-micro);--text-swap-blur:var(--blur-small);--text-swap-ease:var(--ease-in-out);--toggle-dur:var(--duration-medium);--toggle-travel:14.66px;--toggle-ov1:1px;--toggle-ov2:0px;--toggle-track:0s;--toggle-ease:cubic-bezier(.34, 1.35, .64, 1);--google-sans-flex:"Google Sans Flex Variable", sans-serif;--body:var(--inter);scrollbar-gutter:stable}*{&:focus-visible{outline:2px solid var(--info);outline-offset:1px}}:is(h1,h2,h3,h4,h5,h6){font-family:var(--google-sans-flex);font-optical-sizing:auto;font-variation-settings:"ROND" 100;text-wrap:balance;font-weight:700;line-height:1.1}h1{letter-spacing:-.02em;font-size:2rem}h2{letter-spacing:-.01em;font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1rem}h5{font-size:.875rem}h6{font-size:.8rem}:is(p,span){font-family:var(--inter)}p{text-wrap:pretty}html,body{font-family:var(--inter);background-color:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;line-height:1.5}main{margin-block:var(--space-md);max-width:70ch;padding:var(--space-xl);margin-inline:auto}.md-symbols{font-family:var(--material-symbols-rounded)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::selection{background:color-mix(in oklch, var(--primary), transparent 80%);color:var(--surface-contrast)}}@layer colors{:root{color-scheme:light dark;--primary:light-dark(oklch(66.5% .179 48.7),oklch(66% .177 48.7));--primary-contrast:contrast-color(var(--primary));--secondary:light-dark(oklch(70% .17 150),oklch(73% .16 150));--secondary-contrast:contrast-color(var(--secondary));--info:light-dark(oklch(55% .155 250),oklch(62% .17 250));--info-contrast:contrast-color(var(--info));--warning:light-dark(oklch(72% .148 82),oklch(74% .14 82));--warning-contrast:contrast-color(var(--warning));--error:light-dark(oklch(61% .23 27),oklch(63% .23 25));--error-contrast:white;--border-primary:light-dark(color-mix(in oklch, var(--primary), black 10%),color-mix(in oklch, var(--primary), white 10%));--border:light-dark(color-mix(in oklch, var(--surface-1-contrast), transparent 86%),color-mix(in oklch, var(--surface-1-contrast), transparent 82%));--surface:light-dark(oklch(100% 0 0),oklch(0% 0 0));--surface-contrast:contrast-color(var(--surface));--ink:oklch(0% 0 0);--paper:oklch(100% 0 0);--surface-1:light-dark(oklch(89.17% 0 0),oklch(30% 0 0));--surface-1-contrast:contrast-color(var(--surface-1));--surface-2:light-dark(oklch(94% 0 0),oklch(22% 0 0));--surface-2-contrast:contrast-color(var(--surface-2));--surface-primary:light-dark(color-mix(in oklch, var(--primary), transparent 75%),color-mix(in oklch, var(--primary), transparent 75%));--surface-primary-contrast:contrast-color(var(--surface-primary));--surface-primary-2:light-dark(color-mix(in oklch, var(--primary), transparent 80%),color-mix(in oklch, var(--primary), transparent 78%));--surface-primary-2-contrast:contrast-color(var(--surface-primary-2));--info-surface:light-dark(color-mix(in oklch, var(--info), transparent 88%),color-mix(in oklch, var(--info), transparent 86%));--info-surface-contrast:contrast-color(var(--info-surface));--twitter:oklch(68.1% .161 244.82);--bluesky:oklch(61.9% .203 256.33);--github:oklch(29.6% .012 258.37);--discord:oklch(57.7% .209 273.85);--fluxer:oklch(48.6% .223 275.65);--sunrise-t:oklch(70% .06 51.57);--sunrise-m:oklch(82% .13 64.04);--sunrise-b:oklch(72% .18 46.87);--noon-t:oklch(61% .13 236.48);--noon-m:oklch(76% .14 220.4);--noon-b:oklch(91% .04 198.58);--sunset-t:oklch(74% .03 25.4);--sunset-m:oklch(84% .14 74.99);--sunset-b:oklch(63% .25 23.22);--night-t:oklch(15% .01 60.05);--night-m:oklch(23% .07 255.82);--night-b:oklch(28% .08 254.91)}}@layer components{nav{padding:var(--space-lg);justify-content:space-between;align-items:center;display:flex;@media (width<=320px){& h1{font-size:1.5rem}}}[data-component=button]{--duration:.25s;@media (prefers-reduced-motion:reduce){--duration:0s}cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--surface-contrast);background:0 0;border:none;margin:0;padding:0;text-decoration:none;&:disabled{opacity:.5;cursor:not-allowed}&[data-variant],&[data-color]{padding:var(--space-lg) var(--space-xl);font-size:13px;font-family:var(--body);border-radius:var(--rounded-md);transition:background-color var(--duration), background-image var(--duration), color var(--duration), box-shadow var(--duration), padding-inline var(--duration), width var(--duration);justify-content:center;align-items:center;gap:.5rem;font-weight:400;line-height:normal;display:inline-flex}&[data-variant=ghost]{background:0 0;&:hover{background:var(--surface-1);color:var(--surface-1-contrast)}&:active{background-color:light-dark(color-mix(in oklch, var(--surface-1), black 10%),color-mix(in oklch, var(--surface-1), white 10%))}}&[data-size=icon]{--size:34px;text-align:center;min-width:var(--size);min-height:var(--size);padding:var(--space-md);border-radius:var(--rounded-sm);place-content:center;align-items:center;font-size:1.25rem;display:grid;& span{margin-top:1px}}&[popovertarget]{anchor-name:--popover}}[data-component=button][data-color],[data-component=badge][data-color],[data-component=badge][style^=--color]{--color:var(--primary);--color-contrast:var(--primary-contrast);background:linear-gradient(color-mix(in oklch, var(--color), white 14%) 0%, var(--color) 55%, color-mix(in oklch, var(--color), black 8%) 100%);border:1px solid color-mix(in oklch, var(--color), black 12%);text-shadow:0 1px 0 color-mix(in oklch, var(--color), black 25%);color:var(--color-contrast);box-shadow:inset 0 1px 0 color-mix(in oklch, var(--color), white 22%), 0 1px 0 color-mix(in oklch, var(--color), black 28%), 0 6px 14px color-mix(in oklch, var(--color), transparent 72%);& svg{filter:drop-shadow(0 1px 0 color-mix(in oklch, var(--color), black 25%))}}[data-component=button][data-color]:active:not(:disabled){background:linear-gradient(color-mix(in oklch, var(--color), black 8%) 0%, color-mix(in oklch, var(--color), black 14%) 100%);box-shadow:inset 0 1px 0 color-mix(in oklch, var(--color), black 18%), inset 0 2px 6px color-mix(in oklch, var(--color), black 22%), 0 1px 0 color-mix(in oklch, var(--color), black 28%)}[data-component=button][data-color=secondary],[data-component=badge][data-color=secondary]{--color:var(--secondary);--color-contrast:var(--secondary-contrast)}[data-component=button][data-color=neutral],[data-component=badge][data-color=neutral]{--color:var(--surface-1);--color-contrast:var(--surface-1-contrast)}[data-component=button][data-color=error],[data-component=badge][data-color=error]{--color:var(--error);--color-contrast:var(--error-contrast)}.t-text-swap{white-space:nowrap;filter:blur();opacity:1;transition:transform var(--text-swap-dur) var(--text-swap-ease), filter var(--text-swap-dur) var(--text-swap-ease), opacity var(--text-swap-dur) var(--text-swap-ease);will-change:transform, filter, opacity;display:inline-block;transform:translateY(0);&.is-exit{transform:translateY(calc(var(--text-swap-translate-y) * -1));filter:blur(var(--text-swap-blur));opacity:0}&.is-enter-start{transform:translateY(var(--text-swap-translate-y));filter:blur(var(--text-swap-blur));opacity:0;transition:none}}@media (prefers-reduced-motion:reduce){.t-text-swap{transition:none}}:is(input:not([type=checkbox]),textarea){--duration:var(--duration-quick);@media (prefers-reduced-motion:reduce){--duration:0s}width:100%;font-family:var(--body);border-radius:var(--rounded-md);background:var(--surface);transition:box-shadow var(--duration) var(--ease-smooth-out), background-color var(--duration) var(--ease-smooth-out), border-color var(--duration) var(--ease-smooth-out);box-shadow:inset 0 1px 2px light-dark(#0000001f,#ffffff0f), inset 0 2px 8px light-dark(#0000000f,#ffffff08), inset 0 -1px 2px light-dark(#ffffff14,#00000040), inset 0 0 0 1px color-mix(in oklch, var(--surface-contrast), transparent 85%);color:var(--surface-contrast);padding:var(--space-lg) var(--space-xl);box-sizing:border-box;border:1px solid #0000;font-size:1rem;line-height:1.5;&::placeholder{color:color-mix(in oklch, var(--surface-contrast), transparent 48%);opacity:1}&:focus-visible{border-color:color-mix(in oklch, var(--info), transparent 45%);box-shadow:inset 0 1px 2px light-dark(#00000014,#ffffff0a)}&:disabled{opacity:.6;cursor:not-allowed}}textarea{resize:vertical}[data-component=dialog]:open{opacity:1;transform:translateY(0)}[data-component=dialog]{--duration:var(--duration-fast);--rounded-size:var(--rounded-xl);--padding:calc(var(--space-lg) + 5px);--dialog-inset:max(12px, env(safe-area-inset-top), env(safe-area-inset-right), env(safe-area-inset-bottom), env(safe-area-inset-left));@media (prefers-reduced-motion:reduce){--duration:0s}box-sizing:border-box;border-radius:var(--rounded-size);border:1px solid color-mix(in oklch, var(--surface-contrast), transparent 90%);background:linear-gradient(color-mix(in oklch, var(--surface), white 6%) 0%, var(--surface) 45%, var(--surface) 65%, color-mix(in oklch, var(--surface), white 4%) 100%);overscroll-behavior:contain;width:100%;max-width:min(320px, calc(100% - 2 * var(--dialog-inset)));max-height:calc(100dvh - 2 * var(--dialog-inset));padding:var(--padding);opacity:0;transform-origin:50%;transition:opacity var(--duration) var(--ease-smooth-out), transform var(--duration) var(--ease-smooth-out), overlay var(--duration) allow-discrete, display var(--duration) allow-discrete;margin:auto;position:fixed;inset:0;overflow-y:auto;transform:translateY(-6px);box-shadow:inset 0 1px oklch(100% 5.96046e-8 none/.25),0 18px 48px oklch(0% none none/.28),0 3px 10px oklch(0% none none/.18);& [data-type=footer]{gap:var(--space-md);justify-content:flex-end;align-items:center;display:flex}& header{gap:var(--space-md);margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex;& h1{letter-spacing:normal;overflow-wrap:break-word;flex:auto;min-width:0;margin:0;font-size:1.375rem;font-weight:600;line-height:1.2}& [data-component=button][data-size=icon]{--size:2rem;width:var(--size);height:var(--size);font-size:calc(var(--size) / 2);border-radius:max(0px, calc(var(--rounded-size) - var(--padding)));justify-content:center;align-items:center;padding:0;display:inline-flex}}& [data-type=footer]{gap:var(--space-lg);flex-wrap:wrap}& [data-type=footer] [data-component=button]{border-radius:max(0px, calc(var(--rounded-size) - var(--padding)))}& [data-type=footer] p{margin:0}& [data-type=footer] a[data-component=button][data-color=neutral]{max-height:32px}}[data-component=dialog]::backdrop{--duration:var(--duration-fast);@media (prefers-reduced-motion:reduce){--duration:0s}transition:display var(--duration) allow-discrete, overlay var(--duration) allow-discrete, background-color var(--duration) var(--ease-smooth-out);background-color:#0000}[data-component=dialog]:open::backdrop{background-color:oklch(0% none none/.24)}@starting-style{[data-component=dialog]::backdrop{background-color:#0000}}@starting-style{[data-component=dialog]:open{opacity:0;transform:translateY(-6px)}}[data-component=menu]:popover-open{opacity:1;transform:translateY(0)}[data-component=menu]{--rounded-size:var(--rounded-lg);--padding:var(--space-md);--duration:var(--duration-quick);@media (prefers-reduced-motion:reduce){--duration:0s}opacity:0;transition:opacity var(--duration) var(--ease-smooth-out), transform var(--duration) var(--ease-smooth-out), overlay var(--duration) allow-discrete, display var(--duration) allow-discrete;position-anchor:--popover;position-area:bottom;background:linear-gradient(color-mix(in oklch, var(--surface), white 6%) 0%, var(--surface) 45%, var(--surface) 65%, color-mix(in oklch, var(--surface), white 4%) 100%);width:max-content;padding:var(--padding);border-radius:var(--rounded-size);box-shadow:inset 0 2px 6px light-dark(#00000026,#ffffff1a), inset 0 0 0 1px color-mix(in oklch, var(--surface-contrast), transparent 85%), var(--shadow-lg);overscroll-behavior:contain;border:none;margin-top:5px;position:absolute;transform:translateY(-10px);& [data-component=button]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:max(0px, calc(var(--rounded-size) - var(--padding)));justify-content:start;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem .5rem .7rem;font-size:16px;display:flex;&:hover{background-color:light-dark(color-mix(in oklch, var(--surface-2), black 5%),color-mix(in oklch, var(--surface-2), white 5%))}&:active{background:linear-gradient(color-mix(in oklch, var(--primary), white 25%), var(--primary), color-mix(in oklch, var(--primary), white 20%));box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--primary), white 20%);color:var(--primary-contrast)}}}@starting-style{[data-component=menu]:popover-open{opacity:0;transform:translateY(-10px)}}[data-component=alert]{align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-radius:var(--rounded-md);box-shadow:inset 0 1px 2px light-dark(#0000000f,#ffffff0a), inset 0 0 0 1px color-mix(in oklch, var(--surface-contrast), transparent 80%);display:flex;&[data-color]{--color:var(--info);--color-contrast:var(--info-surface-contrast);background-color:var(--info-surface);color:var(--color-contrast);box-shadow:inset 0 1px 2px color-mix(in oklch, var(--color), transparent 85%), inset 0 0 0 1px color-mix(in oklch, var(--color), transparent 70%)}&[data-color=error]{--color:var(--error);--color-contrast:var(--error-contrast);background-color:color-mix(in oklch, var(--color), transparent 75%);box-shadow:inset 0 1px 2px color-mix(in oklch, var(--color), transparent 75%), inset 0 0 0 1px color-mix(in oklch, var(--color), transparent 50%)}&[data-color=warning]{--color:var(--warning);--color-contrast:var(--surface-1-contrast);background-color:color-mix(in oklch, var(--color), transparent 75%);box-shadow:inset 0 2px 4px color-mix(in oklch, var(--color), transparent 60%), inset 0 0 0 1px color-mix(in oklch, var(--color), transparent 50%)}& p{margin:0;padding:0}}.logs{gap:var(--space-lg);flex-direction:column;display:flex}[data-logs-skeleton]{gap:var(--space-lg);flex-direction:column;display:flex;& .skeleton-line,& .skeleton-pill{border-radius:var(--rounded-md);background:color-mix(in oklch, var(--surface-contrast), transparent 90%);display:block;position:relative;overflow:hidden}& .skeleton-line{height:.85em;margin-block:.4em}& .skeleton-pill{border-radius:999px;width:104px;height:34px}& .skeleton-line:after,& .skeleton-pill:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in oklch, var(--surface-contrast), transparent 78%), transparent);animation:1.5s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}}.blogs{gap:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}[data-component=card]{--rounded-size:var(--rounded-lg);--padding:var(--space-lg);content-visibility:auto;contain-intrinsic-size:300px 200px;gap:var(--space-sm);padding:var(--padding);background:color-mix(in oklch, var(--surface), light-dark(#000,#fff) 3%);border:1px solid var(--border);border-radius:var(--rounded-size);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;& .card-header{margin-inline:calc(-1 * var(--padding));padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}& .card-content{padding:var(--space-md) var(--space-lg);white-space:pre-wrap;overflow-wrap:break-word;& p{margin-block:0}}& h2,& h3,& p{margin:0}& footer{justify-content:flex-end;align-items:center;gap:var(--space-sm);display:flex;& [data-component=button]{border-radius:max(0px, calc(var(--rounded-size) - var(--padding)))}& [data-component=button]+[data-component=button],& [data-component=badge]+[data-component=button]{margin-inline-start:var(--space-md)}& span[data-type=date]{font-variant-numeric:tabular-nums;font-family:var(--maple-mono);margin-inline:var(--space-sm)}& div[data-component=badge]{border-radius:max(0px, calc(var(--rounded-size) - var(--padding)))}@media (width<=579px){gap:var(--space-lg);flex-direction:column;& [data-component=button]{width:100%}& span[data-type=date]{font-size:.8em}}}}a[data-component=card]{color:var(--surface-contrast);text-decoration:none}[data-component=badge]{padding:var(--space-lg) var(--space-xl);border-radius:var(--rounded-2xl);font-size:13px;font-family:var(--body);justify-content:center;align-items:center;gap:.5rem;font-weight:400;line-height:normal;display:inline-flex}[data-component=tags]{gap:var(--space-lg);flex-wrap:wrap;display:flex}[data-component=links]{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid;@media (width<=425px){grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}&:has(>:nth-last-child(2):first-child){@media (width<=507px){grid-template-columns:unset}}}[data-component=link]{--duration:.25s;@media (prefers-reduced-motion:reduce){--duration:0s}gap:var(--space-sm);padding:var(--space-lg) var(--space-xl);box-shadow:var(--shadow-sm);border-radius:var(--rounded-md);transition:color var(--duration) ease;justify-content:center;align-items:center;font-size:1.4em;text-decoration:none;display:flex;&[data-type=twitter]{background-color:var(--twitter);color:#fff;@supports contrast-color(var(--twitter)){color:contrast-color(var(--twitter))}}&[data-type=bluesky]{background-color:var(--bluesky);color:#fff;@supports contrast-color(var(--bluesky)){color:contrast-color(var(--bluesky))}}&[data-type=github]{background-color:var(--github);color:#fff;@supports contrast-color(var(--github)){color:contrast-color(var(--github))}}&[data-type=discord]{background-color:var(--discord);color:#fff;@supports contrast-color(var(--discord)){color:contrast-color(var(--discord))}}&[data-type=fluxer]{background-color:var(--fluxer);color:#fff;@supports contrast-color(var(--fluxer)){color:contrast-color(var(--fluxer))}}@media (width<=507px){&:last-child{grid-column:1/-1}}}input[type=checkbox]{--size:1.45em;--thumb-size:calc(var(--size) - 4px);--gap:2px;--duration:var(--duration-quick);--toggle-travel:var(--size);@media (prefers-reduced-motion:reduce){--duration:0s;--toggle-dur:0s}-webkit-appearance:none;appearance:none;width:calc(var(--size) * 2);height:var(--size);border-radius:var(--rounded-2xl);background:light-dark(color-mix(in oklch, var(--surface-contrast), transparent 88%),color-mix(in oklch, var(--surface-contrast), transparent 80%));box-shadow:inset 0 1px 2px light-dark(#0000001f,#ffffff0f), inset 0 0 0 .5px color-mix(in oklch, var(--surface-contrast), transparent 85%);cursor:pointer;transition:background-color var(--duration) var(--ease-smooth-out), box-shadow var(--duration) var(--ease-smooth-out);border:none;position:relative;&:after{content:"";top:var(--gap);left:var(--gap);width:var(--thumb-size);height:var(--thumb-size);border-radius:var(--rounded-2xl);will-change:transform;transition:transform var(--duration) var(--ease-smooth-out), background-color var(--duration) var(--ease-smooth-out);background:light-dark(#fff,oklch(40% 0 0));position:absolute;transform:translate(0);box-shadow:0 1px 2px light-dark(#00000026,#0000004d),inset 0 1px 1px light-dark(#ffffff80,#ffffff14)}&:checked{background:linear-gradient(color-mix(in oklch, var(--primary), white 15%) 0%, var(--primary) 60%, var(--primary) 70%, color-mix(in oklch, var(--primary), white 10%) 100%);box-shadow:inset 0 1px 2px color-mix(in oklch, var(--primary), black 25%), inset 0 -1px 2px color-mix(in oklch, var(--primary), white 15%), 0 1px 4px color-mix(in oklch, var(--primary), transparent 50%);&:after{transform:translateX(var(--toggle-travel));background:var(--primary-contrast);box-shadow:0 1px 3px color-mix(in oklch, var(--primary), black 40%), inset 0 1px 1px #fff6}}&.is-init:checked:after{animation:t-toggle-on var(--toggle-dur) var(--toggle-ease) backwards}&.is-init:not(:checked):after{animation:t-toggle-off var(--toggle-dur) var(--toggle-ease) backwards}&:hover:not(:checked){background:light-dark(color-mix(in oklch, var(--surface-contrast), transparent 82%),color-mix(in oklch, var(--surface-contrast), transparent 72%))}&:active:after{width:calc(var(--thumb-size) + 2px)}&:checked:active:after{transform:translateX(calc(var(--toggle-travel) - 2px))}&:disabled{opacity:.5;cursor:not-allowed}&:focus-visible{outline:2px solid var(--info);outline-offset:2px}}@keyframes t-toggle-on{0%{transform:translate(0)}55%{transform:translateX(calc(var(--toggle-travel) + var(--toggle-ov1)))}80%{transform:translateX(calc(var(--toggle-travel) - var(--toggle-ov2)))}to{transform:translateX(var(--toggle-travel))}}@keyframes t-toggle-off{0%{transform:translateX(var(--toggle-travel))}55%{transform:translateX(calc(0px - var(--toggle-ov1)))}80%{transform:translateX(var(--toggle-ov2))}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){input[type=checkbox].is-init:after{animation:none}}[data-component=tetris]{--board-bg:#0d121f;--board-max-height:clamp(340px, calc(100dvh - 240px), 640px);--board-max-width:calc(var(--board-max-height) / 2);--kbd-size:calc(var(--space-xl) + var(--space-md));width:min(100% - var(--space-2xl), 1100px);box-sizing:border-box;max-width:none;margin-block:var(--space-2xl);color:var(--surface-contrast)}[data-component=tetris] .rotate-hint{display:none}[data-component=tetris] [data-component=card]{content-visibility:visible}[data-component=tetris] [data-component=card] .card-header h2{color:color-mix(in oklch, var(--surface-contrast), transparent 25%);font-family:var(--google-sans-flex);text-transform:uppercase;font-size:1rem;font-weight:600}[data-component=tetris] [data-component=card] .card-header{min-height:var(--kbd-size)}[data-component=tetris] [data-component=card] .card-content{white-space:normal}[data-component=tetris] .tetris-game{grid-template-columns:minmax(180px, 220px) minmax(min(260px, var(--board-max-width)), var(--board-max-width)) minmax(170px, 210px);justify-content:center;align-items:start;gap:var(--space-xl);display:grid}[data-component=tetris] .tetris-column{gap:var(--space-lg);flex-direction:column;min-width:0;display:flex}[data-component=tetris] .playfield-column{gap:var(--space-lg);flex-direction:column;display:flex}[data-component=tetris] .mode-options{gap:var(--space-sm);flex-direction:column;display:flex}[data-component=tetris] .mode-button{justify-content:space-between;align-items:baseline;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--rounded-md);color:var(--surface-contrast);text-align:left;transition:background-color var(--duration-quick) var(--ease-out), border-color var(--duration-quick) var(--ease-out);background:0 0;border:1px solid #0000;flex-direction:column;display:flex}[data-component=tetris] .mode-button:hover{background:color-mix(in oklch, var(--surface-1), transparent 60%)}[data-component=tetris] .mode-button[aria-pressed=true]{border-color:color-mix(in oklch, var(--primary), transparent 55%);background:var(--surface-primary)}[data-component=tetris] .mode-name{font-family:var(--google-sans-flex);font-size:1rem;font-weight:600}[data-component=tetris] .mode-detail{color:color-mix(in oklch, currentcolor, transparent 40%);font-variant-numeric:tabular-nums;font-size:.75rem}[data-component=tetris] .grade-caption{color:color-mix(in oklch, var(--surface-contrast), transparent 45%);font-family:var(--maple-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:600}[data-component=tetris] .grade-value{margin:0 0 var(--space-lg);font-family:var(--maple-mono);font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;line-height:1}[data-component=tetris] .grade-meter{height:var(--space-lg);background:var(--surface-1);border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px light-dark(#00000024,#00000080)}[data-component=tetris] .grade-meter span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), color-mix(in oklch, var(--primary), white 50%));width:0;height:100%;transition:width var(--duration-fast) var(--ease-smooth-out);display:block}[data-component=tetris] .meta-list,[data-component=tetris] .stat-list{gap:var(--space-md);flex-direction:column;margin:0;display:flex}[data-component=tetris] .meta-list{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}[data-component=tetris] .meta-row,[data-component=tetris] .stat-row{justify-content:space-between;align-items:center;gap:var(--space-lg);display:flex}[data-component=tetris] .meta-row dt,[data-component=tetris] .stat-row dt{color:color-mix(in oklch, var(--surface-contrast), transparent 45%);font-family:var(--maple-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem}[data-component=tetris] .meta-row dd,[data-component=tetris] .stat-row dd{font-family:var(--maple-mono);font-variant-numeric:tabular-nums;margin:0;font-size:.85rem;font-weight:600}[data-component=tetris] .stat-level{padding-bottom:var(--space-md);border-bottom:1px solid var(--border)}[data-component=tetris] .stat-level dd{color:var(--primary);font-size:1.25rem}[data-component=tetris] .playfield-frame{border:1px solid var(--border);border-radius:var(--rounded-lg);background:var(--board-bg);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}[data-component=tetris] #game-board{width:100%;height:auto;image-rendering:pixelated;display:block}[data-component=tetris] .game-overlay{z-index:1;padding:var(--space-xl);background:color-mix(in oklch, var(--surface), transparent 15%);backdrop-filter:blur(var(--blur-large));opacity:1;transition:opacity var(--duration-quick) var(--ease-linear);place-items:center;display:grid;position:absolute;inset:0}[data-component=tetris] .game-overlay[data-visible=false]{pointer-events:none;opacity:0}[data-component=tetris] .overlay-content{justify-items:center;gap:var(--space-md);text-align:center;max-width:280px;display:grid}[data-component=tetris] .start-button{margin-top:var(--space-sm)}[data-component=tetris] .game-message{min-height:1.4em;color:color-mix(in oklch, var(--surface-contrast), transparent 45%);font-family:var(--maple-mono);text-align:center;margin:0;font-size:.75rem}[data-component=tetris] .game-message[data-emphasis=true]{color:var(--primary);font-weight:600}[data-component=tetris] .piece-preview{gap:var(--space-lg);display:grid}[data-component=tetris] .piece-preview canvas{border:1px solid var(--border);border-radius:var(--rounded-md);background:var(--board-bg);width:100%;height:auto;display:block}[data-component=tetris] .game-controls{justify-content:center;gap:var(--space-lg) var(--space-xl);margin-top:var(--space-2xl);color:color-mix(in oklch, var(--surface-contrast), transparent 35%);flex-wrap:wrap;font-size:.8rem;display:flex}[data-component=tetris] .game-controls span{align-items:center;gap:var(--space-md);display:inline-flex}[data-component=tetris] kbd{box-sizing:border-box;min-width:var(--kbd-size);height:var(--kbd-size);padding-inline:var(--space-md);border:1px solid var(--border);border-radius:var(--rounded-sm);background:var(--surface-2);color:var(--surface-2-contrast);font-family:var(--maple-mono);text-align:center;justify-content:center;align-items:center;font-size:.7rem;display:inline-flex}[data-component=tetris] .touch-controls{justify-content:center;gap:var(--space-lg);margin-top:var(--space-xl);touch-action:none;user-select:none;display:none}[data-component=tetris] .touch-group{gap:var(--space-md);display:flex}[data-component=tetris] .touch-controls button{min-width:44px;min-height:44px;padding:0 var(--space-lg);border:1px solid var(--border);border-radius:var(--rounded-md);background:var(--surface-2);color:var(--surface-2-contrast);font-family:var(--maple-mono);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;font-size:.85rem;font-weight:600}[data-component=tetris] .touch-controls button:active{background:var(--surface-primary);color:var(--surface-contrast)}[data-component=tetris] .tetris-footnote{margin:var(--space-2xl) auto 0;color:color-mix(in oklch, var(--surface-contrast), transparent 55%);text-align:center;font-size:.8rem}@media (width<=900px){[data-component=tetris] .tetris-game{grid-template-columns:minmax(0,340px) minmax(0,200px);max-width:560px;margin-inline:auto}[data-component=tetris] .tetris-left{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}[data-component=tetris] .mode-card{grid-column:1/-1}}@media (width<=620px){[data-component=tetris]{width:100%;margin-block:var(--space-lg) var(--space-2xl)}[data-component=tetris] .tetris-game{grid-template-columns:minmax(0,1fr);max-width:420px}[data-component=tetris] .tetris-left{grid-column:auto;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}[data-component=tetris] .playfield-column{width:min(100%,340px);margin-inline:auto}[data-component=tetris] .tetris-right{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}[data-component=tetris] .game-controls{display:none}[data-component=tetris] .touch-controls{display:flex}}@media (width<=390px){[data-component=tetris] .tetris-left,[data-component=tetris] .tetris-right{grid-template-columns:minmax(0,1fr)}[data-component=tetris] .touch-controls{gap:var(--space-md)}[data-component=tetris] .touch-group{gap:var(--space-sm)}[data-component=tetris] .touch-controls button{min-width:40px;padding-inline:var(--space-md)}}@media (pointer:coarse){[data-component=tetris] .game-controls{display:none}[data-component=tetris] .touch-controls{display:flex}}@media (width<=620px) and (orientation:portrait) and (pointer:coarse){[data-component=tetris] .rotate-hint{justify-items:center;gap:var(--space-lg);margin-block:clamp(var(--space-2xl), 12vh, 96px);text-align:center;display:grid}[data-component=tetris] .tetris-game,[data-component=tetris] .game-controls,[data-component=tetris] .touch-controls,[data-component=tetris] .tetris-footnote{display:none}[data-component=tetris] .rotate-hint-art{width:min(60vw,220px);display:block}[data-component=tetris] .rotate-hint-art img{width:100%;height:auto;display:block}[data-component=tetris] .rotate-hint[role=note] h2{font-family:var(--google-sans-flex);letter-spacing:.1em;margin:0;font-size:2rem;font-weight:800}[data-component=tetris] .rotate-hint p{color:color-mix(in oklch, var(--surface-contrast), transparent 45%);margin:0;font-size:.85rem}}@media (prefers-reduced-motion:reduce){[data-component=tetris]{--duration-quick:0s;--duration-fast:0s}}}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){[data-logs-skeleton] .skeleton-line:after,[data-logs-skeleton] .skeleton-pill:after{animation:none}}.progressive-blur[data-astro-cid-ohpvkj2l]{z-index:100;width:100%;height:var(--progressive-blur-height);pointer-events:none;position:fixed;top:0;left:0;right:0}.progressive-blur[data-astro-cid-ohpvkj2l]{&[data-position=top]{top:0}&[data-position=bottom]{top:auto;bottom:0}&>.layer[data-astro-cid-ohpvkj2l],&>.gradient[data-astro-cid-ohpvkj2l]{position:absolute;inset:0}&>.layer[data-astro-cid-ohpvkj2l]{backdrop-filter:blur(var(--blur));&:nth-child(7){z-index:10}}&>.gradient[data-astro-cid-ohpvkj2l]{z-index:20}&[data-position=bottom]>.layer[data-astro-cid-ohpvkj2l]:first-child{-webkit-mask-image:linear-gradient(#0000,#000 10% 30%,#0000 40%);mask-image:linear-gradient(#0000,#000 10% 30%,#0000 40%)}&[data-position=bottom]>.layer[data-astro-cid-ohpvkj2l]:nth-child(2){-webkit-mask-image:linear-gradient(#0000 10%,#000 20% 40%,#0000 50%);mask-image:linear-gradient(#0000 10%,#000 20% 40%,#0000 50%)}&[data-position=bottom]>.layer[data-astro-cid-ohpvkj2l]:nth-child(3){-webkit-mask-image:linear-gradient(#0000 15%,#000 30% 50%,#0000 60%);mask-image:linear-gradient(#0000 15%,#000 30% 50%,#0000 60%)}&[data-position=bottom]>.layer[data-astro-cid-ohpvkj2l]:nth-child(4){-webkit-mask-image:linear-gradient(#0000 20%,#000 40% 60%,#0000 70%);mask-image:linear-gradient(#0000 20%,#000 40% 60%,#0000 70%)}&[data-position=bottom]>.layer[data-astro-cid-ohpvkj2l]:nth-child(5){-webkit-mask-image:linear-gradient(#0000 40%,#000 60% 80%,#0000 90%);mask-image:linear-gradient(#0000 40%,#000 60% 80%,#0000 90%)}&[data-position=bottom]>.layer[data-astro-cid-ohpvkj2l]:nth-child(6){-webkit-mask-image:linear-gradient(#0000 60%,#000 80%);mask-image:linear-gradient(#0000 60%,#000 80%)}&[data-position=bottom]>.layer[data-astro-cid-ohpvkj2l]:nth-child(7){-webkit-mask-image:linear-gradient(#0000 70%,#000 100%);mask-image:linear-gradient(#0000 70%,#000 100%)}&[data-position=bottom]>.gradient[data-astro-cid-ohpvkj2l]{background:linear-gradient(transparent, var(--surface))}&[data-position=top]>.layer[data-astro-cid-ohpvkj2l]:first-child{-webkit-mask-image:linear-gradient(#0000 60%,#000 70% 90%,#0000);mask-image:linear-gradient(#0000 60%,#000 70% 90%,#0000)}&[data-position=top]>.layer[data-astro-cid-ohpvkj2l]:nth-child(2){-webkit-mask-image:linear-gradient(#0000 50%,#000 60% 80%,#0000 90%);mask-image:linear-gradient(#0000 50%,#000 60% 80%,#0000 90%)}&[data-position=top]>.layer[data-astro-cid-ohpvkj2l]:nth-child(3){-webkit-mask-image:linear-gradient(#0000 40%,#000 50% 70%,#0000 85%);mask-image:linear-gradient(#0000 40%,#000 50% 70%,#0000 85%)}&[data-position=top]>.layer[data-astro-cid-ohpvkj2l]:nth-child(4){-webkit-mask-image:linear-gradient(#0000 30%,#000 40% 60%,#0000 80%);mask-image:linear-gradient(#0000 30%,#000 40% 60%,#0000 80%)}&[data-position=top]>.layer[data-astro-cid-ohpvkj2l]:nth-child(5){-webkit-mask-image:linear-gradient(#0000 10%,#000 20% 40%,#0000 60%);mask-image:linear-gradient(#0000 10%,#000 20% 40%,#0000 60%)}&[data-position=top]>.layer[data-astro-cid-ohpvkj2l]:nth-child(6){-webkit-mask-image:linear-gradient(#000 20%,#0000 40%);mask-image:linear-gradient(#000 20%,#0000 40%)}&[data-position=top]>.layer[data-astro-cid-ohpvkj2l]:nth-child(7){-webkit-mask-image:linear-gradient(#000 0%,#0000 30%);mask-image:linear-gradient(#000 0%,#0000 30%)}&[data-position=top]>.gradient[data-astro-cid-ohpvkj2l]{background:linear-gradient(var(--surface), transparent)}}
