@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/roboto-mono-cyrillic-ext-wght-normal.BUDPrIko.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/roboto-mono-cyrillic-wght-normal.HUlVHixE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/roboto-mono-greek-wght-normal.BJJTbwTT.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/roboto-mono-vietnamese-wght-normal.DlC-zuDL.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/roboto-mono-latin-ext-wght-normal.QAYlOegK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/roboto-mono-latin-wght-normal.CZtBPCCa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}/*! 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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Plus Jakarta Sans Variable", "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"Roboto Mono Variable", "Roboto Mono", ui-monospace, monospace;--spacing:.25rem;--font-weight-normal:400;--font-weight-bold:700;--tracking-tight:-.025em;--leading-tight:1.25;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--ease-fade:cubic-bezier(.4, 0, .2, 1);--color-bg:var(--bg);--color-fg:var(--fg);--color-muted:var(--muted);--color-faint:var(--faint)}}@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]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color: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{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-top-\[0\.02em\]{top:-.02em}.-top-\[0\.04em\]{top:-.04em}.-top-\[0\.05em\]{top:-.05em}.top-1\/2{top:50%}.left-1\/2{left:50%}.mx-auto{margin-inline:auto}.\!mt-0{margin-top:0!important}.mt-1{margin-top:var(--spacing)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-\[4vh\]{margin-top:4vh}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-\[0\.72em\]{height:.72em}.h-full{height:100%}.min-h-\[100svh\]{min-height:100svh}.w-full{width:100%}.max-w-\[34ch\]{max-width:34ch}.max-w-\[62ch\]{max-width:62ch}.max-w-\[900px\]{max-width:900px}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-scale-x-100{--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-\[0\.3em\]{gap:.3em}.gap-\[0\.22em\]{gap:.22em}.gap-x-7{column-gap:calc(var(--spacing) * 7)}.gap-x-10{column-gap:calc(var(--spacing) * 10)}.gap-x-\[1vw\]{column-gap:1vw}.gap-x-\[2vw\]{column-gap:2vw}.gap-x-\[4vw\]{column-gap:4vw}.gap-x-\[6vw\]{column-gap:6vw}.gap-y-1{row-gap:var(--spacing)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-6{row-gap:calc(var(--spacing) * 6)}.gap-y-9{row-gap:calc(var(--spacing) * 9)}.gap-y-10{row-gap:calc(var(--spacing) * 10)}.gap-y-12{row-gap:calc(var(--spacing) * 12)}.gap-y-16{row-gap:calc(var(--spacing) * 16)}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.bg-bg{background-color:var(--color-bg)}.object-cover{object-fit:cover}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-\[26px\]{padding-inline:26px}.py-\[2px\]{padding-block:2px}.py-\[15px\]{padding-block:15px}.py-\[90px\]{padding-block:90px}.py-\[110px\]{padding-block:110px}.pt-\[110px\]{padding-top:110px}.pb-\[120px\]{padding-bottom:120px}.text-center{text-align:center}.text-right{text-align:right}.text-\[1\.4rem\]{font-size:1.4rem}.text-\[15px\]{font-size:15px}.text-\[clamp\(1\.6rem\,1rem\+2\.5vw\,2\.6rem\)\]{font-size:clamp(1.6rem,1rem + 2.5vw,2.6rem)}.text-\[clamp\(2\.5rem\,1rem\+7vw\,6\.5rem\)\]{font-size:clamp(2.5rem,1rem + 7vw,6.5rem)}.leading-\[1\.02\]{--tw-leading:1.02;line-height:1.02}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.text-faint{color:var(--color-faint)}.text-fg{color:var(--color-fg)}.text-muted{color:var(--color-muted)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.contrast-105{--tw-contrast:contrast(105%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:underline:hover{text-decoration-line:underline}}@media not all and (min-width:48rem){.max-md\:sticky{position:sticky}.max-md\:top-\[52px\]{top:52px}.max-md\:z-10{z-index:10}.max-md\:order-1{order:1}.max-md\:order-2{order:2}.max-md\:order-3{order:3}.max-md\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.max-md\:gap-y-7{row-gap:calc(var(--spacing) * 7)}.max-md\:bg-bg{background-color:var(--color-bg)}.max-md\:pb-2{padding-bottom:calc(var(--spacing) * 2)}}@media(min-width:48rem){.md\:sticky{position:sticky}.md\:top-\[110px\]{top:110px}.md\:h-\[100svh\]{height:100svh}.md\:grid-cols-\[1fr_minmax\(280px\,420px\)_1fr\]{grid-template-columns:1fr minmax(280px,420px) 1fr}.md\:grid-cols-\[180px_1fr\]{grid-template-columns:180px 1fr}.md\:grid-cols-\[minmax\(220px\,300px\)_minmax\(0\,760px\)\]{grid-template-columns:minmax(220px,300px) minmax(0,760px)}.md\:grid-cols-\[minmax\(240px\,320px\)_1fr\]{grid-template-columns:minmax(240px,320px) 1fr}.md\:justify-center{justify-content:center}.md\:overflow-hidden{overflow:hidden}}}:root,:root[data-theme=dark]{--bg:#161616;--fg:#fefefe;--muted:#9a9a9a;--faint:#5a5a5a;--line:#2e2e2e}:root[data-theme=light]{--bg:#fefefe;--fg:#212121;--muted:#9a9a9a;--faint:#c1c1c1;--line:#e9e9e9}html{background-color:var(--bg);color:var(--fg);transition:background-color .5s var(--ease-fade),color .5s var(--ease-fade)}body{font-family:var(--font-sans);min-height:100svh;transition:background-color .5s var(--ease-fade),color .5s var(--ease-fade);font-size:16px;line-height:1.6}.mono{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:13px;line-height:1.5}.mono-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:12px}.fade{opacity:0;transition:opacity .8s var(--ease-fade),transform .8s var(--ease-fade);transition-delay:var(--d,0s);transform:translateY(8px)}.fade.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.fade{opacity:1;transition:none;transform:none}}.bar{z-index:50;pointer-events:none;background:0 0;justify-content:space-between;align-items:center;padding:14px 26px;display:flex;position:fixed;left:0;right:0}.bar>*{pointer-events:auto}.bar-top{top:0}.bar-bottom{bottom:0}.bar a{color:var(--fg)}.bar a:hover{text-underline-offset:4px;text-decoration:underline}.bulb svg{overflow:visible;transform:rotate(180deg)}.bulb .bulb-glass{fill:none}.bulb .bulb-rays{opacity:0;transition:opacity .5s var(--ease-fade)}html[data-theme=light] .bulb .bulb-rays{opacity:1;filter:drop-shadow(0 0 4px)}.preloader{z-index:9999;background:var(--bg);transition:opacity .6s var(--ease-fade),visibility .6s;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.preloader.is-done{opacity:0;visibility:hidden}.preloader span{font-family:var(--font-mono);letter-spacing:.55em;text-transform:uppercase;color:var(--muted);animation:preloader-pulse 1.6s var(--ease-fade) infinite alternate;font-size:14px}@keyframes preloader-pulse{0%{opacity:.35}to{opacity:1}}.proj-row{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--faint);transition:color .4s var(--ease-fade);cursor:pointer;justify-content:space-between;gap:2vw;font-size:13px;display:flex}.proj-row.is-active,.proj-row:hover{color:var(--fg)}.proj-media img{aspect-ratio:4/3;object-fit:cover;filter:grayscale()contrast(1.05);width:100%}.proj-caption{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;margin-top:10px;font-size:13px;display:flex}.proj-media,.proj-caption{transition:opacity .35s var(--ease-fade)}.proj-center.is-swapping .proj-media,.proj-center.is-swapping .proj-caption{opacity:0}.blog-row{font-family:var(--font-mono);letter-spacing:.05em;color:var(--fg);transition:color .3s var(--ease-fade);grid-template-columns:60px 1fr auto;gap:3vw;padding:18px 0;font-size:13px;display:grid}.blog-row:hover,.blog-row .date{color:var(--muted)}.article h2{font-family:var(--font-sans);margin:3.5rem 0 1rem;font-size:clamp(1.7rem,1.2rem + 1.6vw,2.6rem);font-weight:700;line-height:1.15}.article h3{font-family:var(--font-sans);margin:2.25rem 0 .75rem;font-size:clamp(1.2rem,1rem + .8vw,1.6rem);font-weight:700}.article p{margin:0 0 1rem;line-height:1.7}.article a{text-underline-offset:3px;text-decoration:underline}.article ul,.article ol{margin:0 0 1rem 1.25rem;line-height:1.7}.article ul{list-style:outside}.article ol{list-style:decimal}.article code{font-family:var(--font-mono);background:var(--line);border-radius:4px;padding:.1em .35em;font-size:.85em}.article pre{color:#eee;background:#111;border-radius:6px;margin:0 0 1rem;padding:1rem;overflow-x:auto}.article pre code{background:0 0;padding:0}.article blockquote{border-left:2px solid var(--line);color:var(--muted);margin:0 0 1rem;padding-left:1rem}.article img{max-width:100%}.article details{border:1px solid var(--line);border-radius:6px;margin:0 0 1rem;padding:.75rem 1rem}.article details summary{cursor:pointer}.article details[open] summary{margin-bottom:.75rem}.article svg text{fill:var(--fg)}.rule-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);align-items:center;gap:14px;font-size:12px;display:flex}.rule-label:after{content:"";background:var(--line);flex:1;height:1px}.toc a{font-family:var(--font-mono);letter-spacing:.03em;color:var(--faint);transition:color .3s var(--ease-fade);padding:3px 0;font-size:13px;display:block}.toc a.depth-3{padding-left:14px}.toc a:hover,.toc a.is-active{color:var(--fg)}::view-transition-old(root){animation:vt-fade-out .3s var(--ease-fade) both}::view-transition-new(root){animation:vt-fade-in .45s var(--ease-fade) both}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
