@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:block;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:block;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:block;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:block;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:block;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono Variable;font-style:normal;font-display:block;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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}@font-face{font-family:Archivo Black;font-style:normal;font-display:block;font-weight:400;src:url(/_astro/archivo-black-latin-ext-400-normal.DQAASfvW.woff2)format("woff2"),url(/_astro/archivo-black-latin-ext-400-normal.-j5WRK12.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Archivo Black;font-style:normal;font-display:block;font-weight:400;src:url(/_astro/archivo-black-latin-400-normal.BTVu2TQR.woff2)format("woff2"),url(/_astro/archivo-black-latin-400-normal.HW9MwEcM.woff)format("woff");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}:root{color-scheme:light;--color-bg:#eee5cc;--color-fg:#1f1f1f;--color-accent:#2d9b7a;--color-muted:#e0d4b8;--color-border:#5c5c5c;--color-surface:#e4d9bc;--color-code-bg:#1e0f45;--color-code-fg:#f0edf7;--font-sans:system-ui, -apple-system, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, sfmono-regular, menlo, monaco, consolas, monospace;--font-display:"Archivo Black", "Arial Black", var(--font-sans);--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--leading-normal:1.6;--leading-loose:1.8;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-pill:999px;--shadow-md:0 8px 24px #1e0f4529;--z-header:50;--z-progress:60;--container-pad:50px;--container-pad-narrow:20px;--content-max:62rem;--layout-max:72rem;--bp-sm:30rem;--bp-md:48rem;--bp-lg:64rem;--grid-line-width:1px;--color-grid-line:#5ca8916b;--color-heading-primary:var(--color-accent);--color-nav-primary:#3d4a42;--color-image-frame:#5ce0b8;--width-image-frame:2px;--radius-image-frame:var(--radius-lg);--color-title-hover:#1a7a5a;--color-link-hover:var(--color-accent);--color-repo-link:color-mix(in srgb, var(--color-fg) 62%, transparent);--color-repo-link-hover:#1a7a5a;--color-read-more:#000;--color-read-more-hover:#1a7a5a}@media (width<64rem){:root{--container-pad:var(--container-pad-narrow)}}html[data-theme=dark]{color-scheme:dark;--color-bg:#000;--color-fg:#fff;--color-accent:#fff;--color-muted:#1a1a1abf;--color-border:#fff;--color-surface:#111;--color-code-bg:#0a0a0a;--color-code-fg:#fff;--grid-line-width:1px;--color-grid-line:#ffffff2e;--color-heading-primary:#5ce0b8;--color-nav-primary:#fff;--color-image-frame:#fff;--color-title-hover:#5ce0b8;--color-link-hover:#5ce0b8;--color-repo-link:#fff;--color-repo-link-hover:#b8b8b8;--color-read-more:#fff;--color-read-more-hover:var(--color-accent);--shadow-md:0 8px 24px #0009}html[data-style=poster]{color-scheme:light;--color-bg:#e8e4d8;--color-fg:#1c1c1a;--color-accent:#e0502e;--color-muted:#ddd8c8bf;--color-border:#1c1c1a;--color-surface:#ded9c9;--color-code-bg:#1c1c1a;--color-code-fg:#e8e4d8;--grid-line-width:1px;--color-grid-line:#1c1c1a38;--color-heading-primary:#1c1c1a;--color-nav-primary:#1c1c1a;--color-image-frame:#1c1c1a;--color-title-hover:var(--color-accent);--color-link-hover:var(--color-accent);--color-repo-link:#1c1c1a9e;--color-repo-link-hover:var(--color-accent);--color-read-more:#1c1c1a;--color-read-more-hover:var(--color-accent);--shadow-md:0 8px 24px #1c1c1a33}html[data-style=poster][data-theme=dark]{color-scheme:dark;--color-bg:#1c1c1a;--color-fg:#e8e4d8;--color-muted:#262623bf;--color-border:#e8e4d8;--color-surface:#262623;--color-code-bg:#141412;--color-grid-line:#e8e4d838;--color-heading-primary:#e8e4d8;--color-nav-primary:#e8e4d8;--color-image-frame:#e8e4d8;--color-repo-link:#e8e4d89e;--color-read-more:#e8e4d8;--shadow-md:0 8px 24px #0009}*{box-sizing:border-box;border-color:var(--color-border);outline-color:color-mix(in srgb, var(--color-accent) 75%, transparent);scrollbar-width:auto;scrollbar-color:var(--color-muted) transparent;transition:background-color .3s,color .3s,border-color .3s}.no-theme-transition,.no-theme-transition *{transition:none}html,body{width:100%;margin:0;padding:0}html{scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:100px;font-size:112.5%;overflow-y:scroll}body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-mono);transition:background-color .3s,color .3s}::selection{background-color:var(--color-accent);color:var(--color-bg)}a,button{outline-offset:1px;outline-color:var(--color-accent)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px dashed var(--color-accent);outline-offset:1px;text-decoration:none}.site-header,.site-footer{width:100%}.title-lg{letter-spacing:-.02em;font-size:clamp(2rem,3vw + 1rem,3rem);line-height:1.1}.meta-text{font-size:var(--text-sm);color:color-mix(in srgb, var(--color-fg) 60%, transparent);font-style:italic}.site-header{--bracket-image:linear-gradient(var(--color-accent), var(--color-accent)), linear-gradient(var(--color-accent), var(--color-accent)), linear-gradient(var(--color-accent), var(--color-accent)), linear-gradient(var(--color-accent), var(--color-accent)), linear-gradient(var(--color-accent), var(--color-accent)), linear-gradient(var(--color-accent), var(--color-accent)), linear-gradient(var(--color-accent), var(--color-accent)), linear-gradient(var(--color-accent), var(--color-accent));--bracket-size:8px 2px, 2px 8px, 8px 2px, 2px 8px, 8px 2px, 2px 8px, 8px 2px, 2px 8px;--bracket-position:left top, left top, right top, right top, left bottom, left bottom, right bottom, right bottom;background:color-mix(in srgb, var(--color-bg) 70%, transparent);-webkit-backdrop-filter:blur(12px)saturate(140%);z-index:var(--z-header);view-transition-name:site-header;border-bottom:var(--grid-line-width) solid var(--color-grid-line);align-items:stretch;margin:0;padding:0;transition:background .25s,backdrop-filter .25s;display:flex;position:fixed;top:0;left:0;right:0;overflow:hidden;box-shadow:inset 0 1px #ffffff14}::view-transition-group(site-header){animation:none}::view-transition-old(site-header){animation:none;display:none}::view-transition-new(site-header){animation:none}.nav-gutter-left,.nav-gutter-right{display:none}.nav-grid{flex:1;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 3.75rem;align-items:stretch;column-gap:0;width:100%;padding-inline:0;display:grid;position:relative}.site-brand{white-space:nowrap;letter-spacing:-.03em;margin:0;font-size:1.95rem;font-weight:600;line-height:1}.brand-link{width:100%;color:var(--color-nav-primary);flex:1;justify-content:center;align-items:center;padding:1.15rem 1rem;text-decoration:none;transition:color .2s;display:flex}.brand-link:hover{color:var(--color-link-hover)}.nav-brand-cell{flex-direction:column;flex:auto;grid-column:1;align-items:stretch;min-width:0;display:flex}.nav-links-cell,.nav-utils-cell{display:none}.nav-link-a{color:var(--color-nav-primary);white-space:nowrap;justify-content:center;align-items:center;padding:.75rem 2rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s;display:flex}.nav-link-a:hover{color:var(--color-link-hover);background:color-mix(in srgb, var(--color-link-hover) 5%, transparent)}.nav-link-a.active-nav,.header-icon-link.active-nav,.brand-link.active-nav{color:var(--color-accent);background-color:color-mix(in srgb, var(--color-accent) 5%, transparent)}.nav-link-a.active-nav,.header-icon-link.active-nav,.nav-brand-cell:has(.brand-link.active-nav){background-image:var(--bracket-image);background-size:var(--bracket-size);background-position:var(--bracket-position);background-repeat:no-repeat}.brand-link.active-nav{background:0 0}.nav-brand-cell:has(.brand-link.active-nav){color:var(--color-accent);background-color:color-mix(in srgb, var(--color-accent) 5%, transparent)}@media (width<64rem){.nav-brand-cell{background-color:color-mix(in srgb, var(--color-accent) 5%, transparent);background-image:var(--bracket-image);background-size:var(--bracket-size);background-position:var(--bracket-position);background-repeat:no-repeat}.brand-link,.brand-link.active-nav{background:0 0}.site-brand{font-size:clamp(1.2rem,6vw,1.6rem)}}#menu-btn{aspect-ratio:1;border:0;border-left:var(--grid-line-width) solid var(--color-grid-line);width:3.75rem;height:3.75rem;color:var(--color-fg);cursor:pointer;background:0 0;flex:none;grid-column:2;justify-content:center;align-self:stretch;align-items:center;margin-left:0;padding:0;line-height:0;display:flex}#menu-btn svg{width:1.5rem;height:1.5rem}.site-header:has(#mobile-menu:not(.hidden)){background:color-mix(in srgb, var(--color-bg) 97%, transparent);-webkit-backdrop-filter:blur(20px)saturate(140%)}.page-scrim{z-index:calc(var(--z-header) - 1);background:color-mix(in srgb, var(--color-bg) 72%, transparent);-webkit-backdrop-filter:blur(16px);opacity:0;pointer-events:none;transition:opacity .25s;position:fixed;inset:0}body:has(#mobile-menu:not(.hidden)) .page-scrim{opacity:1}.mobile-nav-menu{opacity:1;grid-column:1/-1;width:100%;max-height:500px;margin:0;padding:0;list-style:none;transition:max-height .3s,opacity .3s;overflow:hidden}.mobile-nav-menu.hidden{opacity:0;pointer-events:none;max-height:0;padding:0}.mobile-nav-menu li{text-align:center;border-bottom:.5px solid var(--color-grid-line);width:100%}.mobile-nav-menu li:first-child{border-top:.5px solid var(--color-grid-line)}.mobile-nav-menu li a{text-align:center;font-weight:500;font-size:var(--text-sm);color:var(--color-fg);padding:.625rem 1rem;text-decoration:none;transition:color .2s,background-color .2s;display:block}.mobile-nav-menu li a:hover{color:var(--color-link-hover);background:color-mix(in srgb, var(--color-link-hover) 5%, transparent)}.mobile-nav-menu li a.active-nav{color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 5%, transparent)}.mobile-nav-menu li.mobile-nav-utils{border-bottom:none}.mobile-nav-utils{justify-content:center;gap:0;display:flex}.mobile-util-btn{color:var(--color-fg);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:.75rem 1rem;font-weight:500;transition:color .2s,background .2s;display:flex}.mobile-util-btn+.mobile-util-btn{border-left:.5px solid var(--color-grid-line)}.mobile-util-btn:hover{color:var(--color-link-hover);background:color-mix(in srgb, var(--color-link-hover) 5%, transparent)}.mobile-util-btn svg{flex-shrink:0;width:1.125rem;height:1.125rem}#theme-btn-mobile .icon-sun,html[data-theme=dark] #theme-btn-mobile .icon-moon{display:none}.header-icon-link,#theme-btn{padding:var(--space-2);color:var(--color-nav-primary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;line-height:0;transition:color .2s,background-color .2s;display:inline-flex;position:relative}.header-icon-link:hover,#theme-btn:hover{color:var(--color-link-hover);background:color-mix(in srgb, var(--color-link-hover) 5%, transparent)}.header-icon-link:hover svg,#theme-btn:hover svg{stroke:var(--color-link-hover)}.header-icon-link svg,#theme-btn svg{width:1.25rem;height:1.25rem;transition:stroke .2s,transform .2s}#theme-btn .icon-moon{transition:all .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#theme-btn .icon-sun{transition:all .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(90deg)scale(0)}html[data-theme=dark] #theme-btn .icon-moon{transform:translate(-50%,-50%)rotate(-90deg)scale(0)}html[data-theme=dark] #theme-btn .icon-sun{transform:translate(-50%,-50%)rotate(90deg)scale(0)}@media (width>=64rem){.site-header{min-height:3.85rem}.nav-gutter-left,.nav-gutter-right{flex:1;display:block}.nav-gutter-left{border-right:var(--grid-line-width) solid var(--color-grid-line);flex:1}.nav-gutter-right{border-left:var(--grid-line-width) solid var(--color-grid-line)}.nav-grid{flex-wrap:nowrap;flex:0 0 var(--content-max);width:var(--content-max);align-items:stretch;gap:0;max-width:100%;margin-inline:0;padding-inline:0;display:flex}.nav-brand-cell{border-right:.5px solid var(--color-grid-line);flex:0 auto;justify-content:center;align-items:stretch;display:flex}.nav-brand-cell .brand-link{justify-content:center;width:100%;padding:.9rem 1.5rem}.nav-links-cell{flex:1 0 0;align-items:stretch;display:flex}.nav-links-cell .nav-link-a{border-right:.5px solid var(--color-grid-line);text-align:center;flex:auto;min-width:0;padding:1.15rem .75rem}.nav-links-cell .nav-link-a:last-child{border-right:.5px solid var(--color-grid-line)}.nav-utils-cell{flex:none;align-items:center;gap:0;display:flex}.nav-utils-cell>.header-icon-link,.nav-utils-cell>#theme-btn{border-right:.5px solid var(--color-grid-line)}.nav-utils-cell>:last-child{border-right:none}#menu-btn,.mobile-nav-menu,.mobile-nav-menu.hidden{display:none}.header-icon-link,#theme-btn{flex-shrink:0;justify-content:center;align-items:center;width:3.85rem;height:3.85rem;padding:0;display:flex}#theme-btn{min-width:unset}}.post-link{color:var(--color-fg);align-items:center;text-decoration:none;transition:color .2s;display:flex}.post-card{gap:var(--container-pad);align-items:center;width:100%;display:flex}.post-link-media{flex-direction:column;flex-shrink:0;align-items:center;gap:.65rem;display:flex}.post-thumb-link{line-height:0;text-decoration:none;display:block}.post-link-thumb-wrapper{border-radius:var(--radius-image-frame);border:var(--width-image-frame,1px) solid var(--color-image-frame);contain:paint;background:0 0;flex-shrink:0;width:260px;height:162px;position:relative;overflow:hidden}.post-repo-link{letter-spacing:.04em;text-transform:uppercase;color:var(--color-repo-link);justify-content:center;align-items:center;gap:.45rem;padding:.15rem 0;font-size:.72rem;text-decoration:none;transition:color .2s;display:inline-flex}.post-repo-link svg{flex-shrink:0;width:.9rem;height:.9rem;transition:none;animation:none;display:block;transform:none}.post-repo-link:hover,.post-repo-link:focus-visible{color:var(--color-repo-link-hover)}.post-repo-link:hover svg,.post-repo-link:focus-visible svg{animation:none;transform:none}.post-link-thumb{object-fit:cover;border-radius:inherit;border:none;width:100%;height:100%;margin:0;padding:0;transition:opacity .3s;display:block;position:absolute;inset:0}.post-link-tech-overlay{padding:var(--space-3);opacity:0;border-radius:inherit;background:#00000080;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;transition:opacity .3s;display:flex;position:absolute;inset:0}.post-link-tech-icon{border:none;outline:none;width:1.5rem;height:1.5rem;transition:transform .2s}.post-link-tech-icon:hover{transform:scale(1.15)}.post-link-body{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}@media (width<=600px){.post-card,.post-link{gap:var(--space-3);flex-direction:column;align-items:stretch}.post-link-media,.post-thumb-link{width:100%}.post-link-thumb-wrapper{aspect-ratio:16/10;width:100%;height:auto}.post-link-body{padding-left:0}}.post-link h3{color:var(--color-heading-primary);letter-spacing:-.03em;font-weight:600;transition:color .2s}.post-link:hover{color:var(--color-link-hover)}.post-card:hover .post-link h3,.post-card:focus-within .post-link h3,.post-link:hover h3,.post-link:focus-visible h3{color:var(--color-title-hover)}.post-card:hover .post-link-thumb,.post-card:focus-within .post-link-thumb,.post-thumb-link:hover .post-link-thumb,.post-thumb-link:focus-visible .post-link-thumb{opacity:.6}.post-card:hover .post-link-tech-overlay,.post-card:focus-within .post-link-tech-overlay,.post-thumb-link:hover .post-link-tech-overlay,.post-thumb-link:focus-visible .post-link-tech-overlay{opacity:1}.page-container{max-width:var(--content-max);padding-inline:var(--container-pad);margin-inline:auto;position:relative}.section-divider{border:none;margin:0;padding:0;position:relative}.section-divider:after{content:"";top:0;left:calc(-1 * var(--container-pad));right:calc(-1 * var(--container-pad));height:var(--grid-line-width);background:var(--color-grid-line);box-shadow:-9999px 0 0 0 var(--color-grid-line), 9999px 0 0 0 var(--color-grid-line);pointer-events:none;position:absolute}.page-title{font-size:var(--text-2xl);margin-top:var(--space-10);color:var(--color-heading-primary);margin-bottom:0;font-weight:600}html[data-theme=dark] .page-subtitle,html[data-theme=dark] .post-title-block p,html[data-theme=dark] .recent-post-desc{color:#ffffffad}.page-subtitle{margin-top:var(--space-2);margin-bottom:var(--space-6);color:color-mix(in srgb, var(--color-accent) 30%, #1f1f1f 70%);font-style:italic}.page-list{margin:0;padding:0;list-style:none}.page-list-item{padding:1.5rem var(--container-pad);margin-inline:calc(-1 * var(--container-pad));position:relative}.page-list-item:last-child{border-bottom:none}.page-list-item:before,.page-list-item:after{content:"";height:var(--grid-line-width);background:var(--color-grid-line);box-shadow:-9999px 0 0 0 var(--color-grid-line), 9999px 0 0 0 var(--color-grid-line);pointer-events:none;display:block;position:absolute;left:0;right:0}.page-list-item:before{top:0}.page-list-item:after{display:none}.page-list-item:last-child:after{display:block;bottom:0}.page-list-title{font-size:var(--text-lg);margin:0;font-style:normal;font-weight:600}.page-list-desc{font-size:var(--text-sm);color:color-mix(in srgb, var(--color-fg) 65%, transparent);margin:.25rem 0 0}.search-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);width:100%;color:var(--color-fg);font:inherit;font-size:var(--text-md);outline-offset:2px;padding:.5rem .75rem}.site-footer{z-index:3;width:100%;max-width:none;margin-top:4rem;padding-inline:0;position:relative}.footer-teeth{width:100%;height:5rem;color:var(--color-accent);margin-bottom:-1px;line-height:0;overflow:hidden}.footer-teeth svg{width:100%;height:100%;display:block}.footer-body{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cpath d='M 70 0 L 70 70 L 0 70' fill='none' stroke='rgba(255%2C255%2C255%2C0.18)' stroke-width='0.5' stroke-dasharray='4 4'/%3E%3C/svg%3E"), var(--color-accent);color:var(--color-bg);width:100%;padding-block:2.5rem 2rem}.footer-body-inner{max-width:var(--layout-max);padding-inline:var(--container-pad);gap:var(--space-6);grid-template-columns:1fr;margin-inline:auto;display:grid}.footer-brand{max-width:38ch}.footer-brand-name{letter-spacing:-.02em;color:var(--color-bg);white-space:nowrap;margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:700;line-height:1.1}.footer-brand-desc{font-size:var(--text-sm);line-height:var(--leading-normal);color:color-mix(in srgb, var(--color-bg) 65%, transparent);margin:0 0 .75rem}.footer-brand-meta{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb, var(--color-bg) 50%, transparent);margin:0}.footer-col-heading{font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.1em;color:var(--color-bg);margin:0 0 1rem;font-weight:600}.footer-col-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.footer-col-link{color:color-mix(in srgb, var(--color-bg) 70%, transparent);padding-block:.3rem;font-size:.9375rem;text-decoration:none;transition:color .2s;display:block}.footer-col-link:hover{color:var(--color-bg)}.footer-bar{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cpath d='M 70 0 L 70 70 L 0 70' fill='none' stroke='rgba(255%2C255%2C255%2C0.18)' stroke-width='0.5' stroke-dasharray='4 4'/%3E%3C/svg%3E"), var(--color-accent);border-top:.5px solid color-mix(in srgb, var(--color-bg) 20%, transparent);width:100%}.footer-bar-inner{max-width:var(--layout-max);padding-inline:var(--container-pad);padding-block:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-xs);flex-wrap:wrap;margin-inline:auto;display:flex}.footer-bar-copy,.footer-bar-links{color:color-mix(in srgb, var(--color-bg) 55%, transparent)}.footer-bar-inner a{color:color-mix(in srgb, var(--color-bg) 55%, transparent);text-decoration:none;transition:color .2s}.footer-bar-inner a:hover{color:var(--color-bg)}.footer-bar-links{align-items:center;gap:var(--space-2);display:flex}@media (width>=640px){.footer-body-inner{align-items:start;gap:var(--space-12);grid-template-columns:2.5fr 1fr 1fr}.footer-brand{max-width:38ch}}.post-layout-article{width:100%;padding:0 0 2rem;position:relative}.post-prose{width:100%;color:var(--color-fg);margin:auto;padding:.75rem 0 1rem}.prose h1,.prose h2,.prose h3{color:var(--color-accent)}.post-title-block{text-align:center;width:100%;margin:.5rem auto 1.5rem;padding:0;line-height:1.1}.post-title-block h1{text-wrap:balance;color:var(--color-accent);margin:0 0 .75rem;margin-inline:auto;font-size:clamp(2rem,3.5vw,3.4rem);line-height:1.15}html[data-theme=dark] .post-title-block h1{color:var(--color-title-hover)}.post-title-block p{font-size:var(--text-md);color:color-mix(in srgb, var(--color-accent) 18%, #1f1f1f 82%);margin:0 auto;line-height:1.7}.post-title-block .post-meta-row{justify-content:center;margin-top:.85rem}.post-title-block .post-tags{justify-content:space-evenly}.post-date{margin-bottom:var(--space-2);color:color-mix(in srgb, var(--color-fg) 60%, transparent)}.blog-list-grid{gap:var(--space-8);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.blog-list-item{width:calc(50% - 1rem)}.blog-list-item:first-child{width:100%;margin-bottom:var(--space-4);text-align:center}.post-card-link{text-decoration:none;transition:all .2s;display:block}.post-card-link *{text-decoration:none;transition:all .2s}.blog-list-item img{margin-bottom:var(--space-2);border-radius:var(--radius-image-frame);border:var(--width-image-frame) solid var(--color-image-frame)}.blog-list-item:first-child img{width:100%}.post-card-title{color:var(--color-fg);margin:0;line-height:1}.blog-list-item:first-child .post-card-title{font-size:2.369rem}.post-card-date{color:color-mix(in srgb, var(--color-fg) 65%, transparent);margin:0}.post-card-link:hover .post-card-title,.post-card-link:hover .post-card-date{color:var(--color-link-hover)}.post-card-link:hover img{box-shadow:var(--shadow-md)}.tag{border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--text-sm);color:inherit;background:linear-gradient(120deg, transparent 0%, color-mix(in srgb, var(--color-accent) 8%, transparent) 38%, color-mix(in srgb, var(--color-accent) 24%, transparent) 50%, color-mix(in srgb, var(--color-accent) 8%, transparent) 62%, transparent 100%), color-mix(in srgb, var(--color-accent) 10%, transparent);box-shadow:0 0 0 0 color-mix(in srgb, var(--color-accent) 0%, transparent);background-position:130%,0 0;background-size:240% 100%,100% 100%;align-items:center;padding:.4rem .85rem;text-decoration:none;transition:transform .26s cubic-bezier(.22,1,.36,1),border-color .22s,box-shadow .26s,background-position .42s cubic-bezier(.22,1,.36,1),background-color .22s,color .18s;display:inline-flex;position:relative}.tag:hover,.tag:focus-visible{border-color:color-mix(in srgb, var(--color-accent) 58%, var(--color-border));box-shadow:0 8px 20px -18px color-mix(in srgb, var(--color-accent) 65%, transparent);background-position:18%,0 0;transform:translateY(-1px)}.tag:focus-visible{outline:none}.tag-list,.tag-results-list{margin:0;padding:0;list-style:none}.tag-list li,.tag-results-list li{list-style:none;display:flex;overflow:visible}.pagination{justify-content:space-between;gap:var(--space-4);margin-top:var(--space-8);display:flex}.pagination-link{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.4rem .7rem;text-decoration:none}.pagination-empty{visibility:hidden}.breadcrumb-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:flex}.breadcrumb-item+.breadcrumb-item:before{content:"/";margin-right:var(--space-2);color:color-mix(in srgb, var(--color-fg) 55%, transparent)}.back-button{align-items:center;gap:.35rem;margin-bottom:.4rem;text-decoration:none;display:inline-flex}.breadcrumb-list{margin-bottom:var(--space-1);justify-content:center}.post-meta-row,.post-tags,.post-nav,.tag-list{flex-wrap:wrap;gap:.65rem .85rem;display:flex}.post-tags{margin-top:var(--space-3)}.post-nav{margin-top:var(--space-8);border-top:1px solid var(--color-border);justify-content:space-between;padding-top:1.25rem;font-size:.9375rem}.post-nav a{max-width:45%}.reading-progress{background:color-mix(in srgb, var(--color-accent) 18%, transparent);height:3px;z-index:var(--z-progress);position:fixed;inset:0 0 auto}.reading-progress-bar{background:var(--color-accent);width:0;height:100%;transition:width .12s linear}@media (width<=639px){.blog-list-grid{gap:var(--space-2)}.blog-list-item{text-align:center;width:100%}.blog-list-item:first-child{margin-bottom:0}.blog-list-item:first-child .post-card-title{font-size:var(--text-xl)}}body{position:relative}.v-grid-line{width:var(--grid-line-width);pointer-events:none;z-index:2;background:var(--color-grid-line);position:fixed;top:0;bottom:0}.v-grid-line--left{left:calc(50% - var(--content-max) / 2 - var(--grid-line-width))}.v-grid-line--right{left:calc(50% + var(--content-max) / 2)}@media (width>=64rem){.v-grid-line{top:3.85rem}}@media (width<=64rem){.v-grid-line{display:none}}.recent-posts-list{margin:0;padding:0;list-style:none}.recent-post-item:first-child:before{content:"";height:var(--grid-line-width);background:var(--color-grid-line);box-shadow:-9999px 0 0 0 var(--color-grid-line), 9999px 0 0 0 var(--color-grid-line);pointer-events:none;position:absolute;top:0;left:0;right:0}.recent-post-item{padding:1.5rem var(--container-pad);margin-inline:calc(-1 * var(--container-pad));transition:background-color .2s;position:relative}.recent-post-item:after{content:"";height:var(--grid-line-width);background:var(--color-grid-line);box-shadow:-9999px 0 0 0 var(--color-grid-line), 9999px 0 0 0 var(--color-grid-line);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.recent-post-item:last-child:after{display:block}.recent-post-item:hover{background:color-mix(in srgb, var(--color-accent) 5%, transparent)}.recent-post-title{font-size:var(--text-2xl);letter-spacing:-.03em;color:var(--color-heading-primary);margin:0;font-style:normal;font-weight:600;transition:color .2s}.recent-post-item:hover .recent-post-title{color:var(--color-title-hover)}html[data-theme=dark] .recent-post-title{color:#fff}html[data-theme=dark] .recent-post-item:hover .recent-post-title{color:var(--color-title-hover)}.recent-post-desc{color:color-mix(in srgb, var(--color-accent) 14%, #1f1f1f 86%);margin:.25rem 0 0;font-size:.8125rem}.recent-post-date{text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb, var(--color-accent) 75%, transparent);margin-bottom:.375rem;font-size:.8125rem;display:block}.read-more-link{margin-top:var(--space-2);color:var(--color-read-more);font-size:.8125rem;transition:color .2s,opacity .2s;display:inline-block}.post-link:hover .read-more-link,.post-link:focus-visible .read-more-link{color:var(--color-read-more-hover);opacity:.95}.post-gallery{width:100%;margin-top:var(--space-8);margin-bottom:var(--space-12)}.post-carousel{isolation:isolate;align-items:center;display:flex;position:relative;overflow:clip}.carousel-track-wrapper{border-radius:var(--radius-lg);contain:paint;flex:1;overflow:clip}.carousel-track{will-change:transform;backface-visibility:hidden;transition:transform .5s cubic-bezier(.16,1,.3,1);display:flex;transform:translateZ(0)}.carousel-slide{background:0 0;flex:0 0 100%;width:100%;min-width:100%;overflow:hidden}.carousel-slide a{line-height:0;display:block}html .carousel-slide img{object-fit:contain;border:none;border-radius:0;width:100%;height:auto;margin:0;display:block}html[data-theme-switching=true] .carousel-slide{visibility:hidden}html[data-theme-switching=true] .carousel-slide.is-active{visibility:visible}.carousel-btn{z-index:2;border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg) 75%, transparent);width:2.5rem;height:2.5rem;color:var(--color-fg);cursor:pointer;backdrop-filter:blur(8px);border-radius:50%;justify-content:center;align-items:center;transition:background .2s,border-color .2s,transform .2s,color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-btn--prev{left:.75rem}.carousel-btn--next{right:.75rem}.carousel-btn:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg);transform:translateY(-50%)scale(1.1)}.carousel-footer{margin-top:var(--space-4);justify-content:center;align-items:center;gap:1.25rem;display:flex}.carousel-counter{font-variant-numeric:tabular-nums;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb, var(--color-fg) 55%, transparent);font-size:.7rem;font-weight:700}.carousel-sep{opacity:.4}.carousel-dots{align-items:center;gap:.3rem;display:flex}.carousel-dot{background:var(--color-border);cursor:pointer;border:none;border-radius:50%;width:.4rem;height:.4rem;padding:0;transition:background .2s,transform .2s}.carousel-dot.is-active{background:var(--color-accent);transform:scale(1.5)}@media (prefers-reduced-motion:reduce){.carousel-track{transition:none}.carousel-btn:hover{transform:translateY(-50%)}}.flow-figure{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);margin:2rem 0;overflow:hidden}.flow-canvas{width:100%;position:relative}.flow-caption{font-size:var(--text-xs);color:var(--color-fg);opacity:.6;text-align:center;background:var(--color-surface);border-top:1px solid var(--color-border);padding:.6rem 1.25rem;font-family:Geist Mono Variable,ui-monospace,monospace}.fn-node{text-align:left;background:var(--fn-node-bg);border:1px solid var(--fn-node-border);min-width:130px;box-shadow:var(--fn-node-shadow);border-radius:8px;padding:10px 16px;transition:box-shadow .15s}.fn-node__label{color:var(--fn-node-color);font-size:.8rem;font-weight:700;font-family:var(--font-sans);letter-spacing:-.01em;line-height:1.3;display:block}.fn-node__sublabel{color:var(--fn-sublabel-color);margin-top:4px;font-family:Geist Mono Variable,ui-monospace,monospace;font-size:.66rem;line-height:1.4;display:block}html[data-theme=light] .flow-canvas--static{--xy-background-color:#ede6d8;--xy-background-pattern-color:#c4b897;--xy-edge-stroke:#7a6e5a;--fn-node-bg:#fffdf6;--fn-node-border:#c4b090;--fn-node-shadow:0 2px 10px #0000001a, 0 0 0 0 transparent;--fn-node-color:#1a1a1a;--fn-sublabel-color:#5a5040}html[data-theme=dark] .flow-canvas--static{--xy-background-color:#0d0d0d;--xy-background-pattern-color:#292929;--xy-edge-stroke:#505050;--fn-node-bg:#1a1a1a;--fn-node-border:#333;--fn-node-shadow:0 2px 12px #0009;--fn-node-color:#e2e2e2;--fn-sublabel-color:#909090}html[data-style=poster] .page-title,html[data-style=poster] .title-lg,html[data-style=poster] .recent-post-title,html[data-style=poster] .prose h1,html[data-style=poster] .prose h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;font-weight:400;line-height:1.08}html[data-style=poster] .site-brand{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;font-size:clamp(1rem,5vw,1.35rem);font-weight:400}html[data-style=poster] .page-title{font-size:clamp(1.7rem,2.5vw,2.2rem)}html[data-style=poster] .page-subtitle,html[data-style=poster] .post-title-block p,html[data-style=poster] .recent-post-desc{color:color-mix(in srgb, var(--color-fg) 68%, transparent)}html[data-style=poster][data-theme=dark] #theme-btn .icon-sun{transform:translate(-50%,-50%)rotate(0)scale(1)}html[data-style=poster][data-theme=dark] #theme-btn-mobile .icon-sun{display:block}.flow-canvas--static{background-color:var(--xy-background-color);background-image:radial-gradient(var(--xy-background-pattern-color) 1px, transparent 1px);background-position:0 0;background-size:20px 20px}.flow-canvas--static .fn-node{box-sizing:border-box;min-width:0;height:100%}.flow-canvas--static .fn-node__sublabel{white-space:nowrap}.flow-canvas--static .fn-edge-label{fill:var(--fn-sublabel-color);font-family:Geist Mono Variable,ui-monospace,monospace;font-size:.62rem}html[data-style=poster] .poster-home{max-width:var(--content-max);padding-inline:var(--container-pad);margin-inline:auto}html[data-style=poster] .poster-home h1,html[data-style=poster] .poster-home h2,html[data-style=poster] .poster-home h3{font-family:var(--font-display);letter-spacing:.01em;text-transform:uppercase;font-weight:400}html[data-style=poster] .poster-grid-band{background-image:linear-gradient(to right, color-mix(in srgb, var(--color-fg) 12%, transparent) 0 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--color-fg) 12%, transparent) 0 1px, transparent 1px);background-repeat:round;background-size:8px 8px;background-origin:border-box;background-clip:padding-box;border:1px solid #0000}html[data-style=poster] .poster-hero{margin-inline:calc(-1 * var(--container-pad));padding:clamp(2.5rem, 6vw, 4.5rem) var(--container-pad);border-bottom:1px solid color-mix(in srgb, var(--color-fg) 35%, transparent);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,3.5rem);display:grid;position:relative}html[data-style=poster] .poster-hero-photo{line-height:0;display:block}html[data-style=poster] .poster-hero-photo img{border:2px solid var(--color-fg);object-fit:cover;border-radius:50%;width:clamp(10rem,22vw,17.5rem);height:clamp(10rem,22vw,17.5rem);margin:0}html[data-style=poster] .poster-hero h1{color:var(--color-fg);margin:.6rem 0 0;font-size:clamp(1.9rem,4.4vw,3.8rem);line-height:.95}html[data-style=poster] .poster-hero-lead{max-width:46ch;font-family:var(--font-sans);color:color-mix(in srgb, var(--color-fg) 66%, transparent);margin:1.1rem 0 0;font-size:.9375rem;line-height:1.55}html[data-style=poster] .poster-marquee{margin-inline:calc(-1 * var(--container-pad));padding:.65rem var(--container-pad);border-bottom:1px solid color-mix(in srgb, var(--color-fg) 35%, transparent);background:var(--color-bg);color:var(--color-fg);font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;justify-content:center;align-items:center;gap:.9rem 1.4rem;font-size:.85rem;display:flex}html[data-style=poster] .poster-marquee a{color:inherit;align-items:center;gap:.45rem;text-decoration:none;transition:color .2s;display:inline-flex}html[data-style=poster] .poster-marquee svg{width:1.1rem;height:1.1rem}html[data-style=poster] .poster-marquee a:hover,html[data-style=poster] .poster-marquee a:focus-visible{color:var(--color-accent)}html[data-style=poster] .poster-marquee b{color:color-mix(in srgb, var(--color-fg) 85%, transparent);font-weight:400}html[data-style=poster] .poster-section-heading{margin-inline:calc(-1 * var(--container-pad));padding:clamp(1rem, 2vw, 1.75rem) var(--container-pad);border-block:1px solid color-mix(in srgb, var(--color-fg) 35%, transparent)}html[data-style=poster] .poster-section-heading h2{color:var(--color-fg);margin:0;font-size:clamp(1.5rem,2.6vw,2.3rem);line-height:1}html[data-style=poster] .poster-service-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;display:grid}html[data-style=poster] .poster-about-strip{font-family:var(--font-sans);grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem clamp(1.5rem,3vw,3rem);padding-block:clamp(1.75rem,3.5vw,3rem);display:grid}html[data-style=poster] .poster-about-strip article{flex-direction:column;display:flex}html[data-style=poster] .poster-about-strip p{color:color-mix(in srgb, var(--color-fg) 64%, transparent);flex:1;margin:0 0 1.6rem;font-size:.8125rem;line-height:1.5}html[data-style=poster] .poster-about-strip strong{color:var(--color-fg);font-size:.8125rem;font-weight:700}html[data-style=poster] .poster-about-strip span{color:color-mix(in srgb, var(--color-fg) 55%, transparent);font-size:.8125rem}@media (width>=64rem){html[data-style=poster] .poster-service-grid,html[data-style=poster] .poster-about-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}html[data-style=poster] .poster-carousel{margin-inline:calc(-1 * var(--container-pad));padding-block:var(--space-4);position:relative}html[data-style=poster] .poster-carousel-track{height:clamp(24rem,44vw,32rem);padding-block:var(--space-4);scrollbar-width:none;grid-template-rows:repeat(3,minmax(0,1fr));grid-auto-flow:column dense;gap:.4rem;display:grid;overflow-x:auto}html[data-style=poster] .poster-carousel-track::-webkit-scrollbar{display:none}html[data-theme=light] .poster-carousel-track[data-mosaic-theme=dark],html[data-theme=dark] .poster-carousel-track[data-mosaic-theme=light]{display:none}html[data-style=poster] .poster-carousel-item{border-radius:var(--radius-image-frame);border:var(--width-image-frame) solid color-mix(in srgb, var(--color-image-frame) 35%, transparent);width:clamp(8.5rem,16vw,12.5rem);text-decoration:none;transition:border-color .25s;display:block;position:relative;overflow:hidden}html[data-style=poster] .poster-carousel-item:nth-child(4n+1){grid-row:span 2;width:clamp(11rem,22vw,17rem)}html[data-style=poster] .poster-carousel-item:nth-child(3n+2){width:clamp(10rem,19vw,14.5rem)}html[data-style=poster] .poster-carousel-item{transform:scale(calc(1 + var(--pop,0)));will-change:transform}html[data-style=poster] .poster-carousel-item.is-center{z-index:2;box-shadow:0 12px 32px #00000073}html[data-style=poster] .poster-carousel-item img{object-fit:cover;filter:grayscale(.45)saturate(.75)brightness(.9)contrast(1.05);border:0;border-radius:0;width:100%;height:100%;margin:0;transition:filter .25s,transform .25s;display:block}html[data-style=poster] .poster-carousel-item:hover,html[data-style=poster] .poster-carousel-item:focus-visible{z-index:3;border-color:var(--color-accent)}html[data-style=poster] .poster-carousel-item:hover img,html[data-style=poster] .poster-carousel-item:focus-visible img{filter:grayscale(0)saturate(1.1)brightness()contrast();transform:scale(1.04)}html[data-style=poster] .poster-carousel-item span{inset-inline:0;background:var(--color-accent);color:#1c1c1a;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:.45rem .7rem;font-weight:700;transition:transform .25s;display:flex;position:absolute;bottom:0;transform:translateY(101%)}html[data-style=poster] .poster-carousel-item:hover span,html[data-style=poster] .poster-carousel-item:focus-visible span{transform:translateY(0)}html[data-style=poster] .poster-service-grid{gap:1.75rem clamp(1.5rem,3vw,3rem);margin-block:clamp(1.75rem,3.5vw,3rem) clamp(3rem,6vw,5rem)}html[data-style=poster] .poster-service-grid h3{color:var(--color-fg);margin:0 0 .7rem;font-size:1.05rem;line-height:1.25}html[data-style=poster] .poster-service-grid p{font-family:var(--font-sans);color:color-mix(in srgb, var(--color-fg) 64%, transparent);margin:0;font-size:.8125rem;line-height:1.5}html[data-style=poster] .poster-cta{text-align:center;margin-bottom:clamp(3rem,6vw,6rem)}html[data-style=poster] .poster-cta h2{max-width:54rem;color:var(--color-fg);margin:0 auto 2rem;font-size:clamp(2.5rem,5.8vw,6rem);line-height:.94}html[data-style=poster] .poster-contact-links{justify-content:center;align-items:center;gap:clamp(2rem,7vw,6rem);padding-block:clamp(1.5rem,3vw,3rem);display:flex}html[data-style=poster] .poster-contact-links a{color:var(--color-fg);font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.6rem;font-size:clamp(.85rem,1.6vw,1.15rem);line-height:1;text-decoration:none;transition:color .2s,transform .2s;display:flex}html[data-style=poster] .poster-contact-links svg{width:clamp(1.6rem,3vw,2.4rem);height:clamp(1.6rem,3vw,2.4rem)}html[data-style=poster] .poster-contact-links a:hover,html[data-style=poster] .poster-contact-links a:focus-visible{color:var(--color-accent);transform:scale(1.06)}@media (width<64rem){html[data-style=poster] .poster-hero{min-height:auto}}@media (width<42rem){html[data-style=poster] .poster-hero{gap:var(--space-6);text-align:center;grid-template-columns:1fr}html[data-style=poster] .poster-hero-photo{justify-self:center}html[data-style=poster] .poster-hero-lead{margin-inline:auto}html[data-style=poster] .poster-service-grid,html[data-style=poster] .poster-about-strip{grid-template-columns:1fr}}html[data-style=poster] .footer-teeth{color:var(--color-accent)}html[data-style=poster] .footer-body,html[data-style=poster] .footer-bar{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cpath d='M 70 0 L 70 70 L 0 70' fill='none' stroke='rgba(0%2C0%2C0%2C0.16)' stroke-width='0.5' stroke-dasharray='4 4'/%3E%3C/svg%3E"), var(--color-accent);border-top-color:#1c1c1a40}html[data-style=poster] .footer-brand-name,html[data-style=poster] .footer-col-heading,html[data-style=poster] .footer-body :is(strong),html[data-style=poster] .footer-brand-desc,html[data-style=poster] .footer-brand-meta,html[data-style=poster] .footer-col-link,html[data-style=poster] .footer-bar-copy,html[data-style=poster] .footer-bar-links,html[data-style=poster] .footer-bar-inner a{color:#1c1c1a}html[data-style=poster] .footer-col-link:hover,html[data-style=poster] .footer-bar-inner a:hover{color:#e8e4d8}html[data-style=poster] .site-footer{font-family:var(--font-sans)}html[data-style=poster] .footer-brand-name,html[data-style=poster] .footer-col-heading{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;font-weight:400}html[data-style=poster] .footer-brand-desc,html[data-style=poster] .footer-brand-meta,html[data-style=poster] .footer-col-link,html[data-style=poster] .footer-bar-copy,html[data-style=poster] .footer-bar-links,html[data-style=poster] .footer-bar-inner a{font-family:var(--font-sans)}.prose{line-height:var(--leading-loose)}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--color-heading-primary);margin-top:1.6em;margin-bottom:.6em;line-height:1.25}.prose a{text-underline-offset:.2em}.prose p,.prose ul,.prose ol,.prose table,.prose blockquote,.prose pre,.prose figure,.prose details{margin-bottom:1.25rem}.prose strong{font-weight:700}.prose em{font-style:italic}.prose blockquote{font-size:var(--text-md);background:color-mix(in srgb, var(--color-muted) 75%, transparent);border-radius:var(--radius-md);padding:.75rem 1rem}.prose ul,.prose ol{padding-left:1.25rem}.prose pre{background:var(--color-code-bg);color:var(--color-code-fg);padding:var(--space-4);border-radius:var(--radius-lg);overflow-x:auto}html[data-style=poster] .prose pre{background:var(--color-code-bg)}.prose code{font-size:.9em}.prose table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--color-border);padding:var(--space-2)}.prose img{border-radius:var(--radius-lg);margin-block:var(--space-6)}.prose figcaption{font-size:var(--text-sm);opacity:.8;text-align:center;margin-top:var(--space-2)}.prose hr{margin-block:var(--space-10);padding-block:var(--space-4);border:none;position:relative;overflow:visible}.prose hr:after{content:"";top:50%;left:calc(-1 * var(--container-pad));right:calc(-1 * var(--container-pad));height:var(--grid-line-width);background:var(--color-grid-line);box-shadow:-9999px 0 0 0 var(--color-grid-line), 9999px 0 0 0 var(--color-grid-line);pointer-events:none;position:absolute;transform:translateY(-50%)}.prose details{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:.75rem 1rem}.prose summary{cursor:pointer;font-weight:600}.u-card{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.u-flow>*+*{margin-top:var(--space-4)}body{font-family:var(--font-mono);text-align:left;word-wrap:break-word;overflow-wrap:break-word;color:var(--color-fg);background:var(--color-bg);flex-direction:column;min-height:100svh;margin:0;padding:3.75rem 0 0;font-size:1rem;font-weight:400;line-height:1.75;display:flex}main{flex:1 0 auto;width:100%;min-height:80svh}h1,h2,h3,h4,h5,h6{color:var(--color-heading-primary);letter-spacing:-.03em;margin:0 0 .75rem;line-height:1.2;transition:color .3s}h1{font-size:2.25rem;font-weight:700}h2{font-size:1.5rem;font-weight:700}h3{font-size:1.25rem;font-weight:600}h4{font-size:1.125rem;font-weight:600}h5{font-size:1rem}strong,b{font-weight:700}a{color:var(--color-fg);text-decoration:none;transition:color .2s}a:hover{color:var(--color-link-hover)}p{color:var(--color-fg);margin-bottom:1em;transition:color .3s}.prose p{margin-bottom:1.25em}textarea{width:100%;font-size:16px}input{font-size:16px}table{width:100%;color:var(--color-fg)}img{border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:100%;height:auto;margin-block:.5rem;transition:border-color .3s}code{background-color:color-mix(in srgb, var(--color-muted) 75%, transparent);color:var(--color-fg);overflow-wrap:break-word;border-radius:.25rem;padding:.25rem;font-size:.9em}code:before,code:after{content:none}pre{border:1px solid var(--color-border);border-radius:.375rem;padding:1rem}pre>code{all:unset;white-space:pre}blockquote{border-left:4px solid color-mix(in srgb, var(--color-accent) 50%, transparent);opacity:.8;margin:0;padding:0 0 0 1rem}hr{border:none;border-top:1px solid var(--color-border)}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}html[data-style=poster] pre:has(code),html[data-style=poster] pre:has(code) span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}@media (width>=640px){h1{font-size:2.5rem}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.active-nav{color:var(--color-accent)}@keyframes section-reveal{0%{opacity:0;filter:blur(14px);transform:translateY(52px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}[data-reveal].is-pending{opacity:0}[data-reveal].is-revealing{animation:.95s cubic-bezier(.16,1,.3,1) both section-reveal}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes tag-glide-in{0%{opacity:0;transform:translateY(10px)scale(.88)}60%{opacity:1}to{opacity:1;transform:translateY(0)scale(1)}}.recent-post-inner,.page-list-inner,.u-card{animation:.38s both fade-up;animation-delay:calc(var(--stagger-i,0) * 55ms)}::view-transition-old(tag-list),::view-transition-new(tag-list){mix-blend-mode:normal;animation:none}.tag-list li.is-pending,.tag-list li{opacity:0}.tag-list li.is-revealing{animation:.5s cubic-bezier(.34,1.56,.64,1) both tag-glide-in;animation-delay:calc(var(--stagger-i,0) * 30ms)}.tag-results-list .tag{opacity:0;animation:.5s cubic-bezier(.34,1.56,.64,1) both tag-glide-in}@media (prefers-reduced-motion:reduce){.tag-list li,.tag-results-list .tag{opacity:1;transition:none;animation:none;transform:none}.tag:hover,.tag:focus-visible{box-shadow:none}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}#skip-to-content[data-astro-cid-nen7h5rs]{z-index:50;background:var(--color-bg);color:var(--color-accent);padding:.5rem .75rem;transition:top .2s;position:absolute;top:-100%;left:4rem}#skip-to-content[data-astro-cid-nen7h5rs]:focus{top:1rem}
