/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-monospace, "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", monospace;--font-mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-foreground:light-dark(#17181c,#e4e6eb);--color-primary:light-dark(#36c,#69f);--color-secondary:light-dark(#54595d,#a2a9b1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}}:root{color-scheme:dark;--fs-meta:13px;--fs-ui:14px;--fs-body:16px;--fs-h3:17px;--fs-h2:19px;--fs-h1:24px;--color-primary:#36c;--color-secondary:#54595d;--bg:#eef0f3;--panel-border:#c6cad1;--row-alt:#f5f6f8;--muted-text:#5a5f66;--code-border:#d4d6da}.dark{--color-primary:#69f;--color-secondary:#a2a9b1;--bg:#121316;--panel-border:#33353c;--row-alt:#1e2026;--muted-text:#8a8f98;--code-border:#33353c}html{background-color:var(--bg)}html,body{font-family:var(--font-mono);font-size:var(--fs-body);background-color:var(--bg);color:#17181c;width:100%;max-width:100%;min-height:100vh;margin:0;padding:0;overflow-x:hidden}.dark body{color:#e4e6eb}*,:before,:after{box-sizing:border-box;border-radius:0}a{color:var(--color-primary);text-decoration:underline}a:visited{color:#6a4a9a}a:hover{color:#c00}.dark a:visited{color:#b9f}.dark a:hover{color:#f99}.site{flex-direction:column;min-height:100vh;display:flex}.frame{flex-direction:column;flex:1;width:100%;max-width:720px;margin:0 auto;padding:16px;display:flex}.frame-header{border-bottom:1px solid var(--panel-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:16px;padding-bottom:14px;display:flex}.logo-link{line-height:0;text-decoration:none;display:block}.logo-img{user-select:none;width:auto;max-width:100%;height:30px;display:block}.dark .logo-img{filter:brightness(0)invert()}.site-nav{flex-wrap:wrap;align-items:center;gap:4px 18px;margin-left:auto;display:flex}.site-nav a{color:inherit;font-size:var(--fs-ui);font-weight:600;text-decoration:none}.site-nav a:hover,.site-nav a:visited:hover{color:var(--color-primary)}.site-nav a:visited{color:inherit}.theme-toggle{border:1px solid var(--panel-border);color:var(--color-secondary);font:inherit;font-size:var(--fs-ui);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 8px}.theme-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.nav-toggle{border:1px solid var(--panel-border);color:var(--color-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:5px 8px;display:none}.nav-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}@media (width<=640px){.nav-toggle{margin-left:auto;display:inline-flex}.site-nav{border-top:1px solid var(--panel-border);flex-direction:column;order:10;width:100%;margin-top:4px;margin-left:0;padding-top:10px;display:none}.site-nav.is-open{display:flex}.site-nav a{padding:6px 2px}.site-nav .theme-toggle{margin-top:6px}}.site-footer{border-top:1px solid var(--panel-border);margin-top:auto;padding-top:24px}.social-list{flex-wrap:wrap;justify-content:center;gap:8px 18px;margin:0 0 10px;padding:0;list-style:none;display:flex}.social-list a{color:var(--muted-text);font-size:var(--fs-ui);align-items:center;gap:6px;text-decoration:none;display:flex}.social-list a:visited{color:var(--muted-text)}.social-list a:hover{color:var(--color-primary)}.social-list svg{flex-shrink:0}.frame-footer{text-align:center;font-size:var(--fs-meta);color:var(--muted-text);margin:0}.back-button{font-size:var(--fs-ui);color:var(--muted-text);margin-bottom:14px;text-decoration:none;display:inline-block}.back-button:visited{color:var(--muted-text)}.back-button:hover{color:var(--color-primary);text-decoration:underline}.archive-intro{font-size:var(--fs-ui);color:var(--muted-text);margin:0 0 16px}.archive-count{color:var(--muted-text);font-size:var(--fs-meta);font-weight:400}.archive-month{margin-bottom:18px}.archive-month:last-child{margin-bottom:0}.archive-month-title{font-size:var(--fs-h3);margin:0 0 4px;font-weight:700}.panel{margin-bottom:10px}.panel+.panel{border-top:1px solid var(--panel-border);padding-top:10px}.panel-header{font-weight:700;font-size:var(--fs-h2);color:var(--color-foreground,inherit);margin:0 0 10px}.panel-list{margin:0;padding:0;list-style:none}.panel-list li{border-bottom:1px solid var(--panel-border)}.panel-list li:last-child{border-bottom:none}.panel-list a{font-size:var(--fs-h3);padding:8px 2px 0;text-decoration:none;display:block}.panel-list a:hover{text-decoration:underline}.panel-list .item-date{font-size:var(--fs-ui);color:var(--muted-text);padding:0 2px;display:block}.panel-list .item-description{font-size:var(--fs-ui);color:var(--muted-text);margin:4px 2px 0}.panel-list li{padding-bottom:10px}.panel-empty{color:var(--muted-text);margin:0;padding:6px 2px}.tag-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tag-list a{border:1px solid var(--panel-border);font-size:var(--fs-ui);color:var(--color-secondary);background:0 0;align-items:center;padding:3px 8px;text-decoration:none;display:inline-flex}.tag-list a:before{content:"#";opacity:.6}.tag-list a:visited{color:var(--color-secondary)}.tag-list a:hover{border-color:var(--color-primary);color:var(--color-primary)}.entry-meta{font-size:var(--fs-meta);color:var(--muted-text);margin:0 0 12px}.entry-description{font-size:var(--fs-body);color:var(--muted-text);margin:0 0 12px;font-style:italic}.entry-links{margin:0 0 16px;padding:0;list-style:none}.entry-links li{font-size:var(--fs-ui);color:var(--muted-text);margin-bottom:4px}.entry-divider{border:none;border-top:1px dashed var(--panel-border);margin:24px 0 16px}.entry-body{font-family:var(--font-mono);font-size:var(--fs-body);overflow-wrap:break-word;max-width:72ch;line-height:1.65}.entry-body h1{font-size:var(--fs-h1);border-bottom:2px solid var(--panel-border);margin:0 0 10px;padding-bottom:4px}.entry-body h2{font-size:var(--fs-h2);border-bottom:1px solid var(--panel-border);margin:18px 0 6px;padding-bottom:3px}.entry-body h3{font-size:var(--fs-h3);margin:14px 0 4px}.entry-body p{margin:0 0 10px}.entry-body ul{margin:4px 0 10px;padding:0 0 0 1.6em;list-style-type:disc;list-style-position:outside}.entry-body ol{margin:4px 0 10px;padding:0 0 0 2.2em;list-style-type:decimal;list-style-position:outside}.entry-body li{margin-bottom:3px}.entry-body img{max-width:100%;height:auto}.entry-body iframe{max-width:100%}.entry-body table{border-collapse:collapse;font-size:var(--fs-ui);margin:12px 0;display:block;overflow-x:auto}.entry-body th,.entry-body td{border:1px solid var(--panel-border);text-align:left;padding:6px 10px}.entry-body th{font-weight:700}.entry-body tbody tr:nth-child(odd) td{background:var(--row-alt)}.entry-body :not(pre)>code{background:var(--row-alt);border:1px solid var(--code-border);font-size:var(--fs-ui);padding:0 4px}.entry-body pre{border:1px solid var(--code-border);margin:8px 0;padding:10px;overflow-x:auto}.entry-body pre code{background:0 0;border:none;padding:0}.astro-code,.astro-code span{color:var(--shiki-light);background-color:var(--shiki-light-bg)!important}.dark .astro-code,.dark .astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)!important}.error-art{max-width:220px;margin:0 auto 12px;display:block}.dark .error-art{filter:invert()}.error-page{text-align:center;flex-direction:column;align-items:center;margin-top:auto;margin-bottom:auto;padding:24px 8px;display:flex}.construction{text-align:center;padding:32px 12px;position:relative;overflow:hidden}.construction video{object-fit:cover;filter:grayscale();opacity:.5;width:100%;height:100%;position:absolute;inset:0}.construction-content{z-index:1;position:relative}.construction-icon{width:96px;margin:0 auto 12px}.dark .construction-icon{filter:invert()}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--panel-border)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
