@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--spot-center:.92;--spot-mid:.92;--spot-edge:.97}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"IBM Plex Sans", -apple-system, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--color-green-50:oklch(98.2% .018 155.826);--color-green-800:oklch(44.8% .119 151.328);--color-slate-900:oklch(20.8% .042 265.755);--color-neutral-50:oklch(98.5% 0 none);--color-neutral-100:oklch(97% 0 none);--color-neutral-200:oklch(92.2% 0 none);--color-neutral-300:oklch(87% 0 none);--color-neutral-400:oklch(70.8% 0 none);--color-neutral-500:oklch(55.6% 0 none);--color-neutral-600:oklch(43.9% 0 none);--color-neutral-700:oklch(37.1% 0 none);--color-neutral-800:oklch(26.9% 0 none);--color-neutral-900:oklch(20.5% 0 none);--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--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)}}@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{.btn{cursor:pointer;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));display:inline-flex}.btn-primary{background-color:var(--color-neutral-900);color:var(--color-white)}@media(hover:hover){.btn-primary:hover{background-color:var(--color-neutral-800)}}.btn-secondary{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-300);background-color:var(--color-white);color:var(--color-neutral-700)}@media(hover:hover){.btn-secondary:hover{background-color:var(--color-neutral-50)}}.btn-danger{background-color:var(--color-red-600);color:var(--color-white)}@media(hover:hover){.btn-danger:hover{background-color:var(--color-red-700)}}.btn-ghost{color:var(--color-neutral-500);background-color:#0000}@media(hover:hover){.btn-ghost:hover{background-color:var(--color-neutral-100);color:var(--color-neutral-900)}}.form-input{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-300);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:block}.form-input::placeholder{color:var(--color-neutral-400)}.form-input:focus{border-color:var(--color-neutral-500);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-neutral-500);--tw-outline-style:none;outline-style:none}.form-textarea{resize:vertical;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-300);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:block}.form-textarea::placeholder{color:var(--color-neutral-400)}.form-textarea:focus{border-color:var(--color-neutral-500);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-neutral-500);--tw-outline-style:none;outline-style:none}.form-label{margin-bottom:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-neutral-700);display:block}.form-select{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-300);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:block}.form-select:focus{border-color:var(--color-neutral-500);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-neutral-500);--tw-outline-style:none;outline-style:none}.card{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200);background-color:var(--color-white)}.card-body{padding:calc(var(--spacing) * 4)}.card-header{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-neutral-200);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3)}dialog{margin:auto}dialog::backdrop{background-color:#0f172b80}@supports (color:color-mix(in lab,red,red)){dialog::backdrop{background-color:color-mix(in oklab,var(--color-slate-900) 50%,transparent)}}dialog[open]{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.fl-dock{display:grid}.fl-dock-rail{margin-block-end:4px}.fl-dock-toast{z-index:60;right:max(16px,var(--ui-safe-right,0px));bottom:max(16px,var(--ui-safe-bottom,0px));pointer-events:none;width:min(360px,100vw - 32px);position:fixed}.fl-dock-toast>*{pointer-events:auto}@media(max-width:640px){.fl-dock-toast{left:max(12px,var(--ui-safe-left,0px));right:max(12px,var(--ui-safe-right,0px));bottom:max(12px,var(--ui-safe-bottom,0px));width:auto}}.fl-fold{grid-template-rows:1fr;display:grid;overflow:hidden}.fl-fold>*{min-height:0;margin-block-end:10px}.fl-rail{--tone:var(--fl-notice);--tone-wash:var(--fl-notice-wash);border-left:2px solid var(--tone);background:linear-gradient(90deg,var(--tone-wash),transparent 62%);grid-template-columns:auto 1fr auto;align-items:baseline;gap:4px 14px;padding:11px 12px 12px 15px;animation:.4s cubic-bezier(.22,1,.36,1) both fl-wipe;display:grid;position:relative;overflow:hidden}.fl-rail[data-tone=error]{--tone:var(--fl-error);--tone-wash:var(--fl-error-wash)}.fl-kind{font-family:var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:var(--tone);white-space:nowrap;font-size:10px;font-weight:500}.fl-toast{--tone:var(--fl-notice);border:1px solid var(--tone);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:11px 11px 12px 13px;display:grid;position:relative}@supports (color:color-mix(in lab,red,red)){.fl-toast{border:1px solid color-mix(in oklab,var(--tone) 30%,var(--fl-line-firm))}}.fl-toast{background:var(--fl-veil);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);box-shadow:var(--fl-shadow);animation:.34s cubic-bezier(.22,1,.36,1) both fl-rise;overflow:hidden}.fl-toast[data-tone=error]{--tone:var(--fl-error)}.fl-dot{background:var(--tone);width:7px;height:7px;box-shadow:0 0 0 3px var(--tone);border-radius:50%;margin-top:6px}@supports (color:color-mix(in lab,red,red)){.fl-dot{box-shadow:0 0 0 3px color-mix(in oklab,var(--tone) 16%,transparent)}}.fl-said{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fl-text{color:var(--fl-bright);margin:0;font-size:13.5px;line-height:1.5}.fl-toast .fl-text{font-size:13px}.fl-close{color:var(--fl-faint);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;margin:-3px -3px 0 0;padding:3px;transition:color .18s,background .18s;display:inline-flex}.fl-close:hover{color:var(--fl-bright);background:var(--fl-surface)}.fl-close:focus-visible{outline:2px solid var(--tone);outline-offset:1px}.fl-drain{transform-origin:0;background:var(--tone);width:100%;animation:fl-drain var(--fl-dwell) linear forwards;position:absolute;left:0}.fl-rail .fl-drain{opacity:.5;height:1px;bottom:0}.fl-toast .fl-drain{opacity:.85;height:2px;top:0}@keyframes fl-wipe{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes fl-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fl-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes fl-out{0%{opacity:1;grid-template-rows:1fr}55%{opacity:0;grid-template-rows:1fr}to{opacity:0;grid-template-rows:0fr}}.fl-timed{animation:fl-out .42s cubic-bezier(.4,0,.2,1) var(--fl-dwell) forwards}.fl-fold.fl-going{animation:.42s cubic-bezier(.4,0,.2,1) forwards fl-out}@media(prefers-reduced-motion:reduce){.fl-rail,.fl-toast{animation:none}.fl-drain{opacity:.3;animation:none}.fl-timed,.fl-fold.fl-going{animation-duration:1ms}}.bl-prose pre code,.pe-preview pre code,.pj-prose pre code{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-attribute,.pe-preview pre code .l-attribute,.pj-prose pre code .l-attribute{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-attribute-builtin,.pe-preview pre code .l-attribute-builtin,.pj-prose pre code .l-attribute-builtin{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-boolean,.pe-preview pre code .l-boolean,.pj-prose pre code .l-boolean{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-character,.pe-preview pre code .l-character,.pj-prose pre code .l-character{color:light-dark(#0a3069,#96d0ff)}.bl-prose pre code .l-character-special,.pe-preview pre code .l-character-special,.pj-prose pre code .l-character-special{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-comment,.pe-preview pre code .l-comment,.pj-prose pre code .l-comment,.bl-prose pre code .l-comment-documentation,.pe-preview pre code .l-comment-documentation,.pj-prose pre code .l-comment-documentation{color:light-dark(#57606a,#768390)}.bl-prose pre code .l-comment-error,.pe-preview pre code .l-comment-error,.pj-prose pre code .l-comment-error{color:light-dark(#fff,#22272e);background-color:light-dark(#d1242f,#e5534b)}.bl-prose pre code .l-comment-hint,.pe-preview pre code .l-comment-hint,.pj-prose pre code .l-comment-hint{color:light-dark(#fff,#22272e);background-color:light-dark(#d0d7de,#768390)}.bl-prose pre code .l-comment-note,.pe-preview pre code .l-comment-note,.pj-prose pre code .l-comment-note{color:light-dark(#0969da,#539bf5)}.bl-prose pre code .l-comment-todo,.pe-preview pre code .l-comment-todo,.pj-prose pre code .l-comment-todo{color:light-dark(#fff,#22272e);background-color:light-dark(#d0d7de,#768390)}.bl-prose pre code .l-comment-warning,.pe-preview pre code .l-comment-warning,.pj-prose pre code .l-comment-warning{color:light-dark(#fff,#22272e);background-color:light-dark(#9a6700,#c69026)}.bl-prose pre code .l-constant,.pe-preview pre code .l-constant,.pj-prose pre code .l-constant,.bl-prose pre code .l-constant-builtin,.pe-preview pre code .l-constant-builtin,.pj-prose pre code .l-constant-builtin{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-constant-builtin-rust,.pe-preview pre code .l-constant-builtin-rust,.pj-prose pre code .l-constant-builtin-rust{color:light-dark(#953800,#f69d50)}.bl-prose pre code .l-constant-html,.pe-preview pre code .l-constant-html,.pj-prose pre code .l-constant-html{color:light-dark(#116329,#8ddb8c)}.bl-prose pre code .l-constant-macro,.pe-preview pre code .l-constant-macro,.pj-prose pre code .l-constant-macro{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-constructor,.pe-preview pre code .l-constructor,.pj-prose pre code .l-constructor{color:light-dark(#953800,#f69d50)}.bl-prose pre code .l-constructor-lua,.pe-preview pre code .l-constructor-lua,.pj-prose pre code .l-constructor-lua{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-diff-delta,.pe-preview pre code .l-diff-delta,.pj-prose pre code .l-diff-delta{color:light-dark(#9a6700,#c69026);background-color:light-dark(#d8cab3,#333027)}.bl-prose pre code .l-diff-minus,.pe-preview pre code .l-diff-minus,.pj-prose pre code .l-diff-minus{color:light-dark(#d1242f,#e5534b);background-color:light-dark(#e4b7be,#3b2a2f)}.bl-prose pre code .l-diff-plus,.pe-preview pre code .l-diff-plus,.pj-prose pre code .l-diff-plus{color:light-dark(#1a7f37,#57ab5a);background-color:light-dark(#b8d0bf,#253430)}.bl-prose pre code .l-function,.pe-preview pre code .l-function,.pj-prose pre code .l-function{color:light-dark(#6639ba,#dcbdfb)}.bl-prose pre code .l-function-builtin-bash,.pe-preview pre code .l-function-builtin-bash,.pj-prose pre code .l-function-builtin-bash{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-function-builtin-lua,.pe-preview pre code .l-function-builtin-lua,.pj-prose pre code .l-function-builtin-lua,.bl-prose pre code .l-function-builtin-make,.pe-preview pre code .l-function-builtin-make,.pj-prose pre code .l-function-builtin-make{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-function-call,.pe-preview pre code .l-function-call,.pj-prose pre code .l-function-call{color:light-dark(#6639ba,#dcbdfb)}.bl-prose pre code .l-function-call-bash,.pe-preview pre code .l-function-call-bash,.pj-prose pre code .l-function-call-bash{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-function-macro,.pe-preview pre code .l-function-macro,.pj-prose pre code .l-function-macro,.bl-prose pre code .l-function-method,.pe-preview pre code .l-function-method,.pj-prose pre code .l-function-method,.bl-prose pre code .l-function-method-call,.pe-preview pre code .l-function-method-call,.pj-prose pre code .l-function-method-call{color:light-dark(#6639ba,#dcbdfb)}.bl-prose pre code .l-keyword,.pe-preview pre code .l-keyword,.pj-prose pre code .l-keyword,.bl-prose pre code .l-keyword-conditional,.pe-preview pre code .l-keyword-conditional,.pj-prose pre code .l-keyword-conditional,.bl-prose pre code .l-keyword-conditional-ternary,.pe-preview pre code .l-keyword-conditional-ternary,.pj-prose pre code .l-keyword-conditional-ternary,.bl-prose pre code .l-keyword-coroutine,.pe-preview pre code .l-keyword-coroutine,.pj-prose pre code .l-keyword-coroutine,.bl-prose pre code .l-keyword-debug,.pe-preview pre code .l-keyword-debug,.pj-prose pre code .l-keyword-debug,.bl-prose pre code .l-keyword-directive,.pe-preview pre code .l-keyword-directive,.pj-prose pre code .l-keyword-directive,.bl-prose pre code .l-keyword-directive-define,.pe-preview pre code .l-keyword-directive-define,.pj-prose pre code .l-keyword-directive-define{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-keyword-directive-rust,.pe-preview pre code .l-keyword-directive-rust,.pj-prose pre code .l-keyword-directive-rust,.bl-prose pre code .l-keyword-exception,.pe-preview pre code .l-keyword-exception,.pj-prose pre code .l-keyword-exception{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-keyword-export,.pe-preview pre code .l-keyword-export,.pj-prose pre code .l-keyword-export,.bl-prose pre code .l-keyword-function,.pe-preview pre code .l-keyword-function,.pj-prose pre code .l-keyword-function,.bl-prose pre code .l-keyword-import,.pe-preview pre code .l-keyword-import,.pj-prose pre code .l-keyword-import,.bl-prose pre code .l-keyword-modifier,.pe-preview pre code .l-keyword-modifier,.pj-prose pre code .l-keyword-modifier,.bl-prose pre code .l-keyword-operator,.pe-preview pre code .l-keyword-operator,.pj-prose pre code .l-keyword-operator,.bl-prose pre code .l-keyword-repeat,.pe-preview pre code .l-keyword-repeat,.pj-prose pre code .l-keyword-repeat,.bl-prose pre code .l-keyword-return,.pe-preview pre code .l-keyword-return,.pj-prose pre code .l-keyword-return,.bl-prose pre code .l-keyword-type,.pe-preview pre code .l-keyword-type,.pj-prose pre code .l-keyword-type{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-label,.pe-preview pre code .l-label,.pj-prose pre code .l-label{color:light-dark(#116329,#8ddb8c)}.bl-prose pre code .l-label-ruby,.pe-preview pre code .l-label-ruby,.pj-prose pre code .l-label-ruby{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-markup,.pe-preview pre code .l-markup,.pj-prose pre code .l-markup{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-markup-environment,.pe-preview pre code .l-markup-environment,.pj-prose pre code .l-markup-environment{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-markup-environment-name,.pe-preview pre code .l-markup-environment-name,.pj-prose pre code .l-markup-environment-name{color:light-dark(#6639ba,#dcbdfb)}.bl-prose pre code .l-markup-heading,.pe-preview pre code .l-markup-heading,.pj-prose pre code .l-markup-heading,.bl-prose pre code .l-markup-heading-1,.pe-preview pre code .l-markup-heading-1,.pj-prose pre code .l-markup-heading-1,.bl-prose pre code .l-markup-heading-2,.pe-preview pre code .l-markup-heading-2,.pj-prose pre code .l-markup-heading-2,.bl-prose pre code .l-markup-heading-3,.pe-preview pre code .l-markup-heading-3,.pj-prose pre code .l-markup-heading-3,.bl-prose pre code .l-markup-heading-4,.pe-preview pre code .l-markup-heading-4,.pj-prose pre code .l-markup-heading-4,.bl-prose pre code .l-markup-heading-5,.pe-preview pre code .l-markup-heading-5,.pj-prose pre code .l-markup-heading-5,.bl-prose pre code .l-markup-heading-6,.pe-preview pre code .l-markup-heading-6,.pj-prose pre code .l-markup-heading-6{color:light-dark(#0550ae,#6cb6ff);font-weight:700}.bl-prose pre code .l-markup-heading-html,.pe-preview pre code .l-markup-heading-html,.pj-prose pre code .l-markup-heading-html{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-markup-italic,.pe-preview pre code .l-markup-italic,.pj-prose pre code .l-markup-italic{color:light-dark(#1f2328,#adbac7);font-style:italic}.bl-prose pre code .l-markup-link,.pe-preview pre code .l-markup-link,.pj-prose pre code .l-markup-link{color:light-dark(#1f2328,#adbac7);text-decoration:underline}.bl-prose pre code .l-markup-link-label,.pe-preview pre code .l-markup-link-label,.pj-prose pre code .l-markup-link-label{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-markup-link-url,.pe-preview pre code .l-markup-link-url,.pj-prose pre code .l-markup-link-url{color:light-dark(#1f2328,#adbac7);text-decoration:underline}.bl-prose pre code .l-markup-list,.pe-preview pre code .l-markup-list,.pj-prose pre code .l-markup-list{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-markup-list-bash,.pe-preview pre code .l-markup-list-bash,.pj-prose pre code .l-markup-list-bash{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-markup-list-checked,.pe-preview pre code .l-markup-list-checked,.pj-prose pre code .l-markup-list-checked{color:light-dark(#116329,#57ab5a)}.bl-prose pre code .l-markup-list-unchecked,.pe-preview pre code .l-markup-list-unchecked,.pj-prose pre code .l-markup-list-unchecked{color:light-dark(#57606a,#636e7b)}.bl-prose pre code .l-markup-math,.pe-preview pre code .l-markup-math,.pj-prose pre code .l-markup-math,.bl-prose pre code .l-markup-quote,.pe-preview pre code .l-markup-quote,.pj-prose pre code .l-markup-quote{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-markup-quote-markdown,.pe-preview pre code .l-markup-quote-markdown,.pj-prose pre code .l-markup-quote-markdown{color:light-dark(#116329,#8ddb8c)}.bl-prose pre code .l-markup-raw,.pe-preview pre code .l-markup-raw,.pj-prose pre code .l-markup-raw,.bl-prose pre code .l-markup-raw-block,.pe-preview pre code .l-markup-raw-block,.pj-prose pre code .l-markup-raw-block{color:light-dark(#1f2328,#adbac7);font-style:italic}.bl-prose pre code .l-markup-strikethrough,.pe-preview pre code .l-markup-strikethrough,.pj-prose pre code .l-markup-strikethrough{color:light-dark(#1f2328,#adbac7);text-decoration:line-through}.bl-prose pre code .l-markup-strong,.pe-preview pre code .l-markup-strong,.pj-prose pre code .l-markup-strong{color:light-dark(#1f2328,#adbac7);font-weight:700}.bl-prose pre code .l-markup-underline,.pe-preview pre code .l-markup-underline,.pj-prose pre code .l-markup-underline{text-decoration:underline}.bl-prose pre code .l-module,.pe-preview pre code .l-module,.pj-prose pre code .l-module{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-module-builtin,.pe-preview pre code .l-module-builtin,.pj-prose pre code .l-module-builtin{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-module-c_sharp,.pe-preview pre code .l-module-c_sharp,.pj-prose pre code .l-module-c_sharp,.bl-prose pre code .l-module-elixir,.pe-preview pre code .l-module-elixir,.pj-prose pre code .l-module-elixir,.bl-prose pre code .l-module-php,.pe-preview pre code .l-module-php,.pj-prose pre code .l-module-php{color:light-dark(#953800,#f69d50)}.bl-prose pre code .l-number,.pe-preview pre code .l-number,.pj-prose pre code .l-number,.bl-prose pre code .l-number-float,.pe-preview pre code .l-number-float,.pj-prose pre code .l-number-float,.bl-prose pre code .l-operator,.pe-preview pre code .l-operator,.pj-prose pre code .l-operator{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-operator-bash,.pe-preview pre code .l-operator-bash,.pj-prose pre code .l-operator-bash,.bl-prose pre code .l-operator-lua,.pe-preview pre code .l-operator-lua,.pj-prose pre code .l-operator-lua{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-property,.pe-preview pre code .l-property,.pj-prose pre code .l-property{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-property-json,.pe-preview pre code .l-property-json,.pj-prose pre code .l-property-json{color:light-dark(#116329,#8ddb8c)}.bl-prose pre code .l-property-lua,.pe-preview pre code .l-property-lua,.pj-prose pre code .l-property-lua{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-property-yaml,.pe-preview pre code .l-property-yaml,.pj-prose pre code .l-property-yaml{color:light-dark(#116329,#8ddb8c)}.bl-prose pre code .l-punctuation-bracket,.pe-preview pre code .l-punctuation-bracket,.pj-prose pre code .l-punctuation-bracket,.bl-prose pre code .l-punctuation-delimiter,.pe-preview pre code .l-punctuation-delimiter,.pj-prose pre code .l-punctuation-delimiter{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-punctuation-delimiter-bash,.pe-preview pre code .l-punctuation-delimiter-bash,.pj-prose pre code .l-punctuation-delimiter-bash{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-punctuation-special,.pe-preview pre code .l-punctuation-special,.pj-prose pre code .l-punctuation-special{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-string,.pe-preview pre code .l-string,.pj-prose pre code .l-string,.bl-prose pre code .l-string-documentation,.pe-preview pre code .l-string-documentation,.pj-prose pre code .l-string-documentation{color:light-dark(#0a3069,#96d0ff)}.bl-prose pre code .l-string-escape,.pe-preview pre code .l-string-escape,.pj-prose pre code .l-string-escape{color:light-dark(#0a3069,#96d0ff);font-weight:700}.bl-prose pre code .l-string-regexp,.pe-preview pre code .l-string-regexp,.pj-prose pre code .l-string-regexp{color:light-dark(#0a3069,#96d0ff)}.bl-prose pre code .l-string-special,.pe-preview pre code .l-string-special,.pj-prose pre code .l-string-special,.bl-prose pre code .l-string-special-path,.pe-preview pre code .l-string-special-path,.pj-prose pre code .l-string-special-path{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-string-special-path-gitignore,.pe-preview pre code .l-string-special-path-gitignore,.pj-prose pre code .l-string-special-path-gitignore{color:light-dark(#6639ba,#dcbdfb)}.bl-prose pre code .l-string-special-path-nix,.pe-preview pre code .l-string-special-path-nix,.pj-prose pre code .l-string-special-path-nix{color:light-dark(#0a3069,#96d0ff)}.bl-prose pre code .l-string-special-symbol,.pe-preview pre code .l-string-special-symbol,.pj-prose pre code .l-string-special-symbol{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-string-special-symbol-make,.pe-preview pre code .l-string-special-symbol-make,.pj-prose pre code .l-string-special-symbol-make{color:light-dark(#6639ba,#dcbdfb)}.bl-prose pre code .l-string-special-url,.pe-preview pre code .l-string-special-url,.pj-prose pre code .l-string-special-url{color:light-dark(#0550ae,#6cb6ff);font-style:italic;text-decoration:underline}.bl-prose pre code .l-tag,.pe-preview pre code .l-tag,.pj-prose pre code .l-tag{color:light-dark(#116329,#8ddb8c)}.bl-prose pre code .l-tag-attribute,.pe-preview pre code .l-tag-attribute,.pj-prose pre code .l-tag-attribute{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-tag-builtin,.pe-preview pre code .l-tag-builtin,.pj-prose pre code .l-tag-builtin{color:light-dark(#116329,#8ddb8c)}.bl-prose pre code .l-tag-delimiter-javascript,.pe-preview pre code .l-tag-delimiter-javascript,.pj-prose pre code .l-tag-delimiter-javascript,.bl-prose pre code .l-tag-delimiter-tsx,.pe-preview pre code .l-tag-delimiter-tsx,.pj-prose pre code .l-tag-delimiter-tsx{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-tag-javascript,.pe-preview pre code .l-tag-javascript,.pj-prose pre code .l-tag-javascript,.bl-prose pre code .l-tag-tsx,.pe-preview pre code .l-tag-tsx,.pj-prose pre code .l-tag-tsx,.bl-prose pre code .l-type,.pe-preview pre code .l-type,.pj-prose pre code .l-type{color:light-dark(#953800,#f69d50)}.bl-prose pre code .l-type-builtin,.pe-preview pre code .l-type-builtin,.pj-prose pre code .l-type-builtin{color:light-dark(#cf222e,#f47067)}.bl-prose pre code .l-type-builtin-python,.pe-preview pre code .l-type-builtin-python,.pj-prose pre code .l-type-builtin-python{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-type-css,.pe-preview pre code .l-type-css,.pj-prose pre code .l-type-css{color:light-dark(#116329,#8ddb8c)}.bl-prose pre code .l-type-definition,.pe-preview pre code .l-type-definition,.pj-prose pre code .l-type-definition{color:light-dark(#953800,#f69d50)}.bl-prose pre code .l-type-sql,.pe-preview pre code .l-type-sql,.pj-prose pre code .l-type-sql,.bl-prose pre code .l-variable,.pe-preview pre code .l-variable,.pj-prose pre code .l-variable{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-variable-builtin,.pe-preview pre code .l-variable-builtin,.pj-prose pre code .l-variable-builtin,.bl-prose pre code .l-variable-member,.pe-preview pre code .l-variable-member,.pj-prose pre code .l-variable-member{color:light-dark(#0550ae,#6cb6ff)}.bl-prose pre code .l-variable-member-python,.pe-preview pre code .l-variable-member-python,.pj-prose pre code .l-variable-member-python,.bl-prose pre code .l-variable-parameter,.pe-preview pre code .l-variable-parameter,.pj-prose pre code .l-variable-parameter{color:light-dark(#1f2328,#adbac7)}.bl-prose pre code .l-variable-parameter-builtin,.pe-preview pre code .l-variable-parameter-builtin,.pj-prose pre code .l-variable-parameter-builtin,.bl-prose pre code .l-variable-sql,.pe-preview pre code .l-variable-sql,.pj-prose pre code .l-variable-sql{color:light-dark(#0550ae,#6cb6ff)}.bl-gallery{margin:2rem 0;position:relative}.bl-gallery .bl-gallery-track{scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;gap:.75rem;margin:0;padding:0 0 .5rem;list-style-type:none;display:flex;overflow-x:auto}.bl-gallery .bl-gallery-track::-webkit-scrollbar{display:none}.bl-gallery .bl-gallery-slide{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;margin:0}.bl-gallery .bl-gallery-figure{margin:0}.bl-gallery .bl-gallery-image{border-radius:var(--radius-lg);object-fit:contain;object-position:center;width:100%;height:min(62vh,30rem);margin:0;display:block}.bl-gallery .bl-gallery-caption{min-height:2.4em;color:var(--block-mute);align-items:flex-start;margin-top:.55rem;font-size:.82em;line-height:1.45;display:flex}.bl-gallery .bl-gallery-arrow{cursor:pointer;border:1px solid var(--block-line);background:var(--block-surface);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:3.40282e38px;place-items:center;width:2.25rem;height:2.25rem;transition:background .12s,border-color .12s,opacity .12s;display:grid;position:absolute;top:calc(min(62vh,30rem)/2);transform:translateY(-50%)}.bl-gallery .bl-gallery-arrow[hidden]{display:none}.bl-gallery .bl-gallery-arrow:hover{border-color:var(--block-accent)}.bl-gallery .bl-gallery-back{left:.6rem}.bl-gallery .bl-gallery-forward{right:.6rem}.bl-gallery .bl-gallery-arrow:before{content:"";border-top:2px solid var(--block-ink);border-right:2px solid var(--block-ink);width:.45rem;height:.45rem;display:block}.bl-gallery .bl-gallery-back:before{margin-left:.18rem;transform:rotate(-135deg)}.bl-gallery .bl-gallery-forward:before{margin-right:.18rem;transform:rotate(45deg)}.bl-gallery .bl-gallery-dots{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:.35rem;display:flex}.bl-gallery .bl-gallery-dot{cursor:pointer;background:var(--block-line);border:0;border-radius:3.40282e38px;width:.45rem;height:.45rem;padding:0;transition:background .15s,transform .15s}.bl-gallery .bl-gallery-dot:hover{background:var(--block-mute)}.bl-gallery .bl-gallery-dot[aria-current=true]{background:var(--block-accent);transform:scale(1.35)}.bl-note{border-left:3px solid var(--block-accent);background:var(--block-wash);border-radius:0 .5rem .5rem 0;margin:1.9rem 0;padding:1rem 1.2rem}.bl-note>:last-child{margin-bottom:0}.bl-note .bl-note-label{letter-spacing:.01em;color:var(--block-accent);margin-bottom:.4rem;font-size:.78em;font-weight:600}.bl-details{border:1px solid var(--block-line);border-radius:.6rem;margin:1.9rem 0;overflow:hidden}.bl-details .bl-details-summary{cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:auto 1fr;align-items:start;gap:.5rem;padding:.7rem 1rem;font-size:.95em;font-weight:600;list-style:none;display:grid}.bl-details .bl-details-summary::-webkit-details-marker{display:none}.bl-details .bl-details-mark{color:var(--block-mute);font-size:1.05em;line-height:1.5;transition:transform .15s,color .15s;display:block}.bl-details[open] .bl-details-mark{color:var(--block-accent);transform:rotate(90deg)}.bl-details .bl-details-label{line-height:1.5}.bl-details .bl-details-body{padding:0 1rem 1rem}.bl-details .bl-details-body>:last-child{margin-bottom:0}.bl-prose .contains-task-list,.prose .contains-task-list{padding-left:.15rem;list-style-type:none}.contains-task-list .contains-task-list{padding-left:1.4rem}.contains-task-list .task-list-item{grid-template-columns:auto 1fr;align-items:baseline;gap:.55rem;display:grid}.contains-task-list .task-list-item:before{content:none}.contains-task-list .task-list-item>.contains-task-list{grid-column:1/-1;margin-top:.45rem}.contains-task-list .task-list-item-checkbox{appearance:none;border:1.5px solid var(--block-line);cursor:default;opacity:1;background:0 0;border-radius:.25rem;width:.95em;height:.95em;margin:0;position:relative;top:.12em}.contains-task-list .task-list-item-checkbox:checked{border-color:var(--block-accent);background:var(--block-accent)}.contains-task-list .task-list-item-checkbox:checked:after{content:"";border:solid var(--block-on-accent);border-width:0 2px 2px 0;width:.22em;height:.45em;display:block;position:absolute;top:.1em;left:.28em;transform:rotate(45deg)}.bl-block-error{color:var(--block-warn);background:var(--block-warn-wash);border-radius:.4rem;margin:.75rem 0 0;padding:.55rem .8rem;font-size:.82em}@media(prefers-reduced-motion:reduce){.bl-gallery .bl-gallery-track{scroll-behavior:auto}.bl-details .bl-details-mark,.bl-gallery .bl-gallery-dot{transition:none}}.bl-lightbox{--lb-void:#0a0c12;--lb-ink:#eef1f6;--lb-ink-soft:#a8b0c0;width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--lb-ink);opacity:0;transition:opacity .2s ease,display .2s allow-discrete,overlay .2s allow-discrete;background:0 0;border:0;grid-template-rows:auto minmax(0,1fr);margin:0;padding:0;display:none}.bl-lightbox[open]{opacity:1;display:grid}@starting-style{.bl-lightbox[open]{opacity:0}}.bl-lightbox::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();transition:background .24s ease,backdrop-filter .24s ease,display .24s allow-discrete,overlay .24s allow-discrete;background:#06080e00}.bl-lightbox[open]::backdrop{-webkit-backdrop-filter:blur(8px)saturate(.8);backdrop-filter:blur(8px)saturate(.8);background:#06080eeb}@starting-style{.bl-lightbox[open]::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:#06080e00}}html:has(.bl-lightbox[open]){overflow:hidden}.bl-lightbox-head{justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1.1rem;display:flex}.bl-lightbox-count{font-family:var(--font-mono);letter-spacing:.04em;color:var(--lb-ink-soft);font-variant-numeric:tabular-nums;font-size:12px}.bl-lightbox-close{width:2.25rem;height:2.25rem;color:var(--lb-ink-soft);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;margin-left:auto;transition:color .14s,background .14s;display:flex}.bl-lightbox-close:hover{color:var(--lb-ink);background:#ffffff14}.bl-lightbox-stage{justify-content:center;align-items:center;min-height:0;padding:0 1rem 1.5rem;display:flex;position:relative}.bl-lightbox-figure{flex-direction:column;align-items:center;gap:.9rem;max-width:100%;min-height:0;max-height:100%;margin:0;display:flex}.bl-lightbox-image{object-fit:contain;background:var(--lb-void);border-radius:10px;max-width:min(100%,1800px);min-height:0;max-height:100%;box-shadow:0 40px 90px -30px #000c}.bl-lightbox-caption{text-align:center;max-width:44rem;font-family:var(--font-sans);color:var(--lb-ink-soft);text-wrap:pretty;font-size:13px;line-height:1.55}.bl-lightbox-step{z-index:10;width:4.5rem;color:var(--lb-ink);opacity:.5;cursor:pointer;justify-content:center;align-items:center;transition:opacity .16s,background .16s;display:flex;position:absolute;top:0;bottom:0}.bl-lightbox-back{background:linear-gradient(90deg,#06080e8c,#0000);left:0}.bl-lightbox-on{background:linear-gradient(270deg,#06080e8c,#0000);right:0}.bl-lightbox-step:hover:not(:disabled),.bl-lightbox-step:focus-visible{opacity:1}.bl-lightbox-step:disabled{opacity:0;pointer-events:none}img[role=button]{cursor:zoom-in}@media not all and (min-width:40rem){.bl-lightbox-step{width:3rem}.bl-lightbox-stage{padding:0 .5rem 1rem}}@media(prefers-reduced-motion:reduce){.bl-lightbox,.bl-lightbox::backdrop{transition:none}}.bl-diagram,.bl-diagram-viewer{--dg-c1:light-dark(#0d7a5f,#63c8aa);--dg-c2:light-dark(#3a5a9c,#8aa6f0);--dg-c3:light-dark(#a1620d,#e0a758);--dg-c4:light-dark(#7a3f8c,#c79ad8);--dg-c5:light-dark(#4a5a68,#9fb2c4);--dg-c6:light-dark(#a03d2e,#eb9384);--dg-c7:light-dark(#556f2a,#b3cc78);--dg-c8:light-dark(#0f6a80,#6fc3dc);--dg-c9:light-dark(#9c3a61,#ef92b7);--dg-on-fill:light-dark(#f7fbf9,#08120f);--dg-font:var(--block-ui);--dg-ink:var(--block-strong);--dg-mute:var(--block-mute);--dg-ground:var(--block-ground);--dg-node-fill:var(--block-surface);--dg-node-edge:var(--block-dim);--dg-alt-fill:var(--block-wash);--dg-tertiary-fill:var(--block-ground);--dg-line:var(--block-mute);--dg-edge-label:var(--block-accent);--dg-cluster-fill:var(--block-wash);--dg-cluster-edge:var(--block-line);--dg-lifeline:var(--block-dim);--dg-active-fill:var(--block-wash);--dg-active-edge:var(--block-dim);--dg-note-fill:var(--block-wash);--dg-note-edge:var(--block-accent)}.bl-diagram{margin:2.4rem 0}.bl-diagram-plate{width:min(var(--dg-natural,100%),calc(100% + 2 * var(--block-spill,0rem)));position:relative;left:50%;transform:translate(-50%)}.bl-diagram-plate svg{width:100%;height:auto;font-family:var(--dg-font);display:block}.bl-diagram-plate .edgeLabel text{fill:var(--dg-edge-label);font-weight:500}.bl-diagram-plate[role=button]{cursor:zoom-in;border-radius:.5rem;margin:-.5rem;padding:.5rem;transition:background .16s,box-shadow .16s}.bl-diagram-plate[role=button]:hover,.bl-diagram-plate[role=button]:focus-visible{background:var(--block-wash);box-shadow:0 0 0 1px var(--block-line);outline:none}.bl-diagram-open{width:1.75rem;height:1.75rem;color:var(--block-mute);background:var(--block-ground);box-shadow:0 0 0 1px var(--block-line);opacity:0;pointer-events:none;border-radius:.45rem;place-items:center;font-size:.85rem;transition:opacity .16s,color .16s;display:grid;position:absolute;top:.55rem;right:.55rem}.bl-diagram-plate:hover .bl-diagram-open,.bl-diagram-plate:focus-visible .bl-diagram-open{opacity:1;color:var(--block-accent)}@media(hover:none){.bl-diagram-open{opacity:1}}.bl-diagram-caption{font-family:var(--block-mono);letter-spacing:.01em;text-align:center;text-wrap:pretty;color:var(--block-mute);margin-top:.9rem;font-size:.72em;line-height:1.5}.bl-diagram-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--block-ink);background:var(--block-ground);opacity:0;transition:opacity .18s ease,display .18s allow-discrete,overlay .18s allow-discrete;border:0;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);margin:0;padding:0;display:none}.bl-diagram-viewer[open]{opacity:1;display:grid}@starting-style{.bl-diagram-viewer[open]{opacity:0}}.bl-diagram-viewer::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#06080e80}html:has(.bl-diagram-viewer[open]){overflow:hidden}.bl-diagram-viewer-head{border-bottom:1px solid var(--block-line);align-items:center;gap:.75rem;padding:.85rem 1.1rem;display:flex}.bl-diagram-viewer-caption{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--block-mono);letter-spacing:.02em;color:var(--block-mute);flex:1;font-size:.72rem;overflow:hidden}.bl-diagram-viewer-button{height:2.1rem;font-family:var(--block-mono);letter-spacing:.02em;color:var(--block-mute);cursor:pointer;border-radius:.55rem;justify-content:center;align-items:center;gap:.4rem;padding-inline:.7rem;font-size:.7rem;transition:color .14s,background .14s;display:flex}.bl-diagram-viewer-button:hover,.bl-diagram-viewer-button:focus-visible{color:var(--block-accent);background:var(--block-wash)}.bl-diagram-viewer-close{width:2.1rem;padding-inline:0}.bl-diagram-viewer-stage{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:center;min-width:0;min-height:0;padding:1.25rem;display:grid;overflow:auto}.bl-diagram-viewer-stage svg{max-width:100%;height:auto;max-height:100%;font-family:var(--dg-font);display:block}.bl-diagram-viewer-stage .edgeLabel text{fill:var(--dg-edge-label);font-weight:500}.bl-diagram-viewer[data-scale=actual] .bl-diagram-viewer-stage{grid-template-rows:max-content;grid-template-columns:max-content;place-items:start}.bl-diagram-viewer[data-scale=actual] .bl-diagram-viewer-stage svg{max-width:none;max-height:none;width:var(--dg-natural,auto)}@media not all and (min-width:40rem){.bl-diagram-viewer-stage{padding:.75rem}}@media(prefers-reduced-motion:reduce){.bl-diagram-viewer,.bl-diagram-plate[role=button],.bl-diagram-open{transition:none}}.prose{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--color-neutral-800)}.prose h1{margin-top:calc(var(--spacing) * 8);margin-bottom:calc(var(--spacing) * 4);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.prose h2{margin-top:calc(var(--spacing) * 6);margin-bottom:calc(var(--spacing) * 3);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.prose h3{margin-top:calc(var(--spacing) * 5);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.prose p{margin-bottom:calc(var(--spacing) * 4)}.prose a{color:var(--color-neutral-900);text-underline-offset:2px;text-decoration-line:underline}.prose ul{margin-bottom:calc(var(--spacing) * 4);padding-left:calc(var(--spacing) * 6);list-style-type:disc}.prose ol{margin-bottom:calc(var(--spacing) * 4);padding-left:calc(var(--spacing) * 6);list-style-type:decimal}.prose li{margin-bottom:var(--spacing)}.prose blockquote{margin-block:calc(var(--spacing) * 4);border-left-style:var(--tw-border-style);border-left-width:4px;border-color:var(--color-neutral-300);padding-left:calc(var(--spacing) * 4);color:var(--color-neutral-600);font-style:italic}.prose pre{margin-bottom:calc(var(--spacing) * 4);border-radius:var(--radius-lg);background-color:var(--color-neutral-100);padding:calc(var(--spacing) * 4);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));overflow-x:auto}.prose code{background-color:var(--color-neutral-100);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-radius:.25rem}.prose pre code{background-color:#0000;padding:0}.prose img{margin-block:calc(var(--spacing) * 4);border-radius:var(--radius-lg);max-width:100%}.prose table{margin-bottom:calc(var(--spacing) * 4);border-collapse:collapse;width:100%}.prose th{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-300);background-color:var(--color-neutral-50);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.prose td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-300);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.prose hr{margin-block:calc(var(--spacing) * 8);border-color:var(--color-neutral-200)}.prose del{color:var(--color-neutral-400)}.blog-layout{gap:calc(var(--spacing) * 8);display:flex}.blog-main{flex:1;min-width:0}.blog-sidebar{width:calc(var(--spacing) * 56);flex-shrink:0}.site-header{z-index:50;border-bottom:1px solid var(--ui-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(var(--ui-bg) var(--ui-safe-top),var(--ui-chrome) var(--ui-safe-top));padding-top:var(--ui-safe-top);position:sticky;top:0}.site-header-inner{min-height:64px;padding-left:max(2.5rem,var(--ui-safe-left));padding-right:max(2.5rem,var(--ui-safe-right));justify-content:space-between;align-items:center;gap:1rem;display:flex}.site-logo{font-family:var(--font-mono);color:var(--ui-accent);letter-spacing:-.01em;white-space:nowrap;align-items:center;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.site-logo-mark{width:10px;height:11.5px;filter:drop-shadow(0 0 4px var(--ui-halo));margin-right:6px;animation:2s cubic-bezier(.4,0,.6,1) infinite site-logo-pulse}@keyframes site-logo-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.site-logo-mark{animation:none}}.site-nav{align-items:center;gap:1rem;font-size:13px;font-weight:500;display:flex}.site-nav a,.site-nav button{color:var(--ui-faint);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:13px;font-weight:500;text-decoration:none;transition:color .2s}.site-nav a:hover,.site-nav button:hover{color:var(--ui-accent)}.site-nav .site-nav-primary{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ui-text);white-space:nowrap;padding-bottom:3px;font-size:12px;position:relative}.site-nav .site-nav-primary:after{content:"";background:var(--ui-accent);transform-origin:0;width:100%;height:1px;transition:transform .25s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.site-nav .site-nav-primary:hover:after{transform:scaleX(1)}@media(prefers-reduced-motion:reduce){.site-nav .site-nav-primary:after{transition:none}}.site-nav .site-nav-cluster{border:1px solid var(--ui-line);background:var(--ui-surface);border-radius:100px;align-items:center;gap:2px;padding:3px;display:flex}.site-nav .site-icon-btn{width:28px;height:28px;color:var(--ui-faint);border-radius:100px;place-items:center;font-size:15px;line-height:1;transition:color .2s,background .2s,box-shadow .2s;display:grid}.site-nav .site-icon-btn:hover{color:var(--ui-accent);background:var(--ui-wash);box-shadow:0 0 14px var(--ui-wash)}.site-nav .site-icon-btn-bare{background:0 0}.site-nav .site-nav-rule{background:var(--ui-line);width:1px;height:16px}.site-nav .lang-switch{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:2px;font-size:10px;display:inline-flex}.site-nav .lang-switch>*{border-radius:5px;padding:4px 8px;line-height:1;transition:color .2s,background .2s}.site-nav .lang-switch a{letter-spacing:inherit;font-size:10px}.site-nav .lang-switch a:hover{background:var(--ui-surface-hover)}.site-nav .lang-switch .lang-switch-on{background:var(--ui-wash);color:var(--ui-accent)}.site-nav .lang-switch-elsewhere{opacity:.42}.site-nav .lang-switch-elsewhere:hover{opacity:.72}.site-nav .theme-switch{width:26px;height:26px;color:var(--ui-faint);cursor:pointer;background:0 0;border:0;border-radius:100px;place-items:center;padding:0;font-size:15px;line-height:1;transition:color .2s,background .2s,box-shadow .2s;display:grid}.site-nav .theme-switch:hover{color:var(--ui-accent);background:var(--ui-wash);box-shadow:0 0 14px var(--ui-wash)}.site-nav .theme-switch:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}.site-nav .theme-switch .theme-switch-face{place-items:center;display:none}:root[data-theme-choice=light] .site-nav .theme-switch .theme-switch-face[data-mode=light],:root[data-theme-choice=dark] .site-nav .theme-switch .theme-switch-face[data-mode=dark],:root[data-theme-choice=system] .site-nav .theme-switch .theme-switch-face[data-mode=system],:root:not([data-theme-choice]) .site-nav .theme-switch .theme-switch-face[data-mode=system]{display:grid}.site-nav .site-menu-btn{color:var(--ui-faint);cursor:pointer;background:0 0;border:0;border-radius:100px;place-items:center;padding:0;font-size:15px;line-height:1;transition:color .2s,background .2s,box-shadow .2s;display:none}.site-nav .site-menu-btn:hover{color:var(--ui-accent);background:var(--ui-wash);box-shadow:0 0 14px var(--ui-wash)}.site-nav .site-menu-btn:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}@media(max-width:640px){.site-header-inner{min-height:56px;padding-left:max(1.25rem,var(--ui-safe-left));padding-right:max(1.25rem,var(--ui-safe-right));gap:.5rem}.site-nav>:not(.theme-switch):not(.site-menu-btn){display:none}.site-nav{gap:.15rem}.site-nav .theme-switch,.site-nav .site-menu-btn{width:44px;height:44px;font-size:19px;display:grid}}.nav-sheet{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ui-text);background:0 0;border:0;place-items:end center;margin:0;padding:0;transition:background .24s;display:none}.nav-sheet[open]{background:var(--ui-scrim);display:grid}@starting-style{.nav-sheet[open]{background:0 0}}.nav-sheet::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();transition:-webkit-backdrop-filter .24s,backdrop-filter .24s}.nav-sheet[open]::backdrop{-webkit-backdrop-filter:blur(6px)saturate(.85);backdrop-filter:blur(6px)saturate(.85)}@starting-style{.nav-sheet[open]::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur()}}html:has(.nav-sheet[open]){overflow:hidden}.nav-sheet-panel{overscroll-behavior:contain;background:var(--ui-bg);border:1px solid var(--ui-line);width:100%;max-width:520px;max-height:88dvh;padding-bottom:var(--ui-safe-bottom);transition:transform .3s cubic-bezier(.2,.9,.25,1),display .3s allow-discrete,overlay .3s allow-discrete;border-bottom:0;border-radius:16px 16px 0 0;overflow-y:auto;transform:translateY(0);box-shadow:0 -24px 60px -12px #00000047}@starting-style{.nav-sheet[open] .nav-sheet-panel{transform:translateY(100%)}}.nav-sheet:not([open]) .nav-sheet-panel{transform:translateY(100%)}.nav-sheet[open] .nav-sheet-panel>*{animation:.34s cubic-bezier(.2,.9,.25,1) both nav-sheet-land}.nav-sheet[open] .nav-sheet-panel>:nth-child(2){animation-delay:50ms}.nav-sheet[open] .nav-sheet-panel>:nth-child(3){animation-delay:90ms}.nav-sheet[open] .nav-sheet-panel>:nth-child(4){animation-delay:.13s}.nav-sheet[open] .nav-sheet-panel>:nth-child(5){animation-delay:.17s}.nav-sheet[open] .nav-sheet-panel>:nth-child(6){animation-delay:.21s}@keyframes nav-sheet-land{0%{opacity:0;transform:translateY(10px)}}.nav-sheet-grip{background:var(--ui-line);border-radius:100px;width:34px;height:4px;margin:10px auto 6px}.nav-sheet-panel{--row-pad:1.15rem;--row-mark:20px;--row-gap:.7rem;--row-text:calc(var(--row-pad) + var(--row-mark) + var(--row-gap))}.nav-sheet .nav-sheet-row{align-items:center;gap:var(--row-gap);min-height:52px;padding:.55rem var(--row-pad);color:var(--ui-text);text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-sheet .nav-sheet-row:active{background:var(--ui-wash)}.nav-sheet .nav-sheet-row:focus-visible{outline:2px solid var(--ui-accent);outline-offset:-2px}.nav-sheet .nav-sheet-word{flex:1;min-width:0;font-size:15px;line-height:1.35}.nav-sheet .nav-sheet-mark{width:var(--row-mark);color:var(--ui-text);flex:none;place-items:center;font-size:17px;line-height:1;display:grid}.nav-sheet .nav-sheet-place .nav-sheet-word{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ui-text);font-size:14px}.nav-sheet-pip{width:var(--row-mark);height:calc(var(--row-mark) * 1.15);box-sizing:border-box;color:var(--ui-faint);flex:none;padding:5px 5.5px}.nav-sheet .nav-sheet-go{color:var(--ui-faint);opacity:.7;flex:none;font-size:15px;line-height:1}.nav-sheet .nav-sheet-here{background:var(--ui-wash)}.nav-sheet .nav-sheet-here .nav-sheet-pip{color:var(--ui-accent);filter:drop-shadow(0 0 4px var(--ui-halo))}.nav-sheet .nav-sheet-here .nav-sheet-word{color:var(--ui-accent)}.nav-sheet-group{border-top:1px solid var(--ui-line);padding:.4rem 0}.nav-sheet-eyebrow{padding:.65rem var(--row-pad) .2rem var(--row-text);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ui-faint);margin:0;font-size:10px}.nav-sheet .nav-sheet-lang{padding-left:var(--row-text)}.nav-sheet .nav-sheet-lang .nav-sheet-word{font-size:15px}.nav-sheet-code{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ui-faint);border-radius:5px;flex:none;padding:4px 8px;font-size:10px;line-height:1}.nav-sheet .nav-sheet-here .nav-sheet-code{background:var(--ui-wash);color:var(--ui-accent)}.nav-sheet .nav-sheet-elsewhere{opacity:.62}.nav-sheet-note{letter-spacing:0;color:var(--ui-faint);margin-top:2px;font-size:11px;line-height:1.35;display:block}.nav-sheet-close{width:100%;min-height:54px;padding:.55rem var(--row-pad);border:0;border-top:1px solid var(--ui-line);color:var(--ui-faint);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:.5rem;transition:background .15s,color .15s;display:flex}.nav-sheet-close .nav-sheet-word{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;flex:none;font-size:12px}.nav-sheet-close:active{background:var(--ui-wash);color:var(--ui-accent)}.nav-sheet-close:focus-visible{outline:2px solid var(--ui-accent);outline-offset:-2px}@media(prefers-reduced-motion:reduce){.nav-sheet,.nav-sheet-panel,.nav-sheet::backdrop{transition:none}.nav-sheet:not([open]) .nav-sheet-panel{transform:none}.nav-sheet[open] .nav-sheet-panel>*{animation:none}}:root{--hx-font:"IBM Plex Sans", -apple-system, system-ui, sans-serif;--hx-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}.hx-body{background:var(--hx-bg);color:var(--hx-text);font-family:var(--hx-font);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:16px;line-height:1.7;overflow-x:hidden}.hx-overlay{z-index:1;pointer-events:none;background:var(--hx-bg);opacity:var(--overlay-opacity,1);color:var(--hx-glow);-webkit-mask-image:radial-gradient(circle var(--spot-r,0px) at var(--mx,50%) var(--my,50%),rgba(0,0,0,var(--spot-center,.75)) 0%,rgba(0,0,0,var(--spot-mid,.85)) 40%,rgba(0,0,0,var(--spot-edge,.95)) 60%,black 100%);mask-image:radial-gradient(circle var(--spot-r,0px) at var(--mx,50%) var(--my,50%),rgba(0,0,0,var(--spot-center,.75)) 0%,rgba(0,0,0,var(--spot-mid,.85)) 40%,rgba(0,0,0,var(--spot-edge,.95)) 60%,black 100%);transition:opacity .5s,--spot-center .8s,--spot-mid .8s,--spot-edge .8s;position:fixed;inset:0}@media not all and (hover:hover)and (pointer:fine){.hx-overlay{opacity:var(--overlay-opacity,.92);-webkit-mask-image:none;mask-image:none}}.hx-footer{z-index:10;padding:2rem max(2.5rem,var(--ui-safe-right)) calc(2rem + var(--ui-safe-bottom)) max(2.5rem,var(--ui-safe-left));color:var(--hx-dim);border-top:1px solid var(--hx-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--hx-chrome);justify-content:space-between;font-size:12px;display:flex;position:relative}.hx-main{z-index:5;max-width:820px;padding-left:max(2rem,var(--ui-safe-left));padding-right:max(2rem,var(--ui-safe-right));margin:0 auto;position:relative}.hx-fade{opacity:0;animation:.55s ease-out forwards hxFade;transform:translateY(14px)}@keyframes hxFade{to{opacity:1;transform:none}}.hx-hero{text-align:center;padding:6rem 0 4rem}.hx-hex-badge{cursor:pointer;-webkit-user-select:none;user-select:none;width:300px;height:140px;margin:-2rem auto 0;position:relative}.hx-badge-glow{width:0;height:0;box-shadow:0 0 60px 30px var(--hx-glow-bright);opacity:0;pointer-events:none;border-radius:50%;position:absolute;top:50%;left:50%}.hx-badge-svg{width:100%;height:100%;color:var(--hx-glow);position:absolute;inset:0}.hx-badge-initials,.hx-badge-name{font-family:var(--hx-mono);color:var(--hx-glow);white-space:nowrap;pointer-events:none;font-size:13px;font-weight:500;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hx-badge-name{color:var(--hx-strongest)}.hx-badge-name>span>span{opacity:0}.hx-badge-egg{text-align:center;font-family:var(--hx-mono);color:var(--hx-glow);opacity:0;pointer-events:none;font-size:11px;font-weight:400;line-height:1;position:absolute;top:calc(50% + 28px);left:0;right:0}.hx-hero h1{color:var(--hx-bright);letter-spacing:-.03em;margin-bottom:1.5rem;font-size:clamp(2.2rem,5vw,3.5rem);font-weight:300;line-height:1.15}.hx-hero h1 strong{color:var(--hx-strongest);font-weight:700}.hx-hero-sub{max-width:540px;color:var(--hx-text);margin:0 auto 2rem;font-size:1.1rem;line-height:1.75}.hx-hero-sub a{color:var(--hx-glow);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--hx-edge);text-decoration-color:var(--hx-edge);transition:text-decoration-color .2s}.hx-hero-sub a:hover{-webkit-text-decoration-color:var(--hx-glow);text-decoration-color:var(--hx-glow)}.hx-hero-chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.hx-chip{font-family:var(--hx-mono);color:var(--hx-glow);background:var(--hx-glow-dim);border:1px solid var(--hx-edge-soft);border-radius:100px;padding:4px 14px;font-size:12px;transition:background .2s,border-color .2s,box-shadow .2s}.hx-chip:hover{background:var(--hx-glow-bright);border-color:var(--hx-edge);box-shadow:0 0 16px var(--hx-halo)}.hx-section{border-top:1px solid var(--hx-border);padding:3.5rem 0 3.5rem 1.75rem}.hx-section h2{color:var(--hx-bright);letter-spacing:-.02em;font-size:1.6rem;font-weight:600;position:relative}.hx-section h2:before{content:"⬡";color:var(--hx-glow);opacity:.2;margin-bottom:1rem;font-size:14px;line-height:1;position:absolute;top:50%;left:-1.75rem;transform:translateY(-50%)}.hx-section p{margin-bottom:.85rem}.hx-section p:last-child{margin-bottom:0}.hx-section a{color:var(--hx-glow);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--hx-edge);text-decoration-color:var(--hx-edge)}.hx-section a:hover{-webkit-text-decoration-color:var(--hx-glow);text-decoration-color:var(--hx-glow)}.hx-hexgrid-features{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem;display:grid}.hx-hf{background:var(--hx-surface);border:1px solid var(--hx-border);border-radius:12px;padding:1.25rem;transition:border-color .2s,box-shadow .2s}.hx-hf:hover{border-color:var(--hx-edge-soft);box-shadow:0 0 24px var(--hx-glow-dim)}.hx-hf-hex{justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:.75rem;display:flex;position:relative}.hx-hf-hexagon{fill:none;width:100%;height:100%;stroke:var(--hx-glow);stroke-width:2px;opacity:.3;position:absolute;inset:0}.hx-hf-icon{color:var(--hx-glow);font-size:20px}.hx-hf strong{color:var(--hx-bright);margin-bottom:.25rem;font-size:14px;font-weight:600;display:block}.hx-hf span{color:var(--hx-text);font-size:13px;line-height:1.5}.hx-places{flex-wrap:wrap;gap:8px;margin-top:1.25rem;display:flex}.hx-places span{color:var(--hx-text);background:var(--hx-surface);border:1px solid var(--hx-border);border-radius:100px;padding:5px 14px;font-size:13px;transition:border-color .2s,box-shadow .2s}.hx-places span:hover{border-color:var(--hx-edge-soft);box-shadow:0 0 12px var(--hx-halo)}.hx-rules{gap:0;display:grid}.hx-rule{border-bottom:1px solid var(--hx-border);padding:1rem 0 1rem 1.5rem}.hx-rule:last-child{border-bottom:none}.hx-rule strong{color:var(--hx-bright);margin-bottom:.15rem;font-size:14.5px;font-weight:600;display:block;position:relative}.hx-rule strong:before{content:"⬡";color:var(--hx-glow);opacity:.25;font-size:10px;font-weight:400;line-height:1;position:absolute;top:50%;left:-1.5rem;transform:translateY(-50%)}.hx-rule p{color:var(--hx-text);margin:0;font-size:14px}.hx-setup-row{border-bottom:1px solid var(--hx-border);grid-template-columns:90px 1fr;align-items:baseline;gap:1.5rem;padding:.7rem 0;font-size:14.5px;display:grid}.hx-setup-row:last-child{border-bottom:none}.hx-setup-row span:first-child{font-family:var(--hx-mono);color:var(--hx-dim);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}.hx-stack-group{border-bottom:1px solid var(--hx-border);align-items:baseline;gap:1rem;padding:.75rem 0;display:flex}.hx-stack-group:last-child{border-bottom:none}.hx-stack-label{font-family:var(--hx-mono);color:var(--hx-dim);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;width:90px;font-size:11px;font-weight:500}.hx-stack-chips{flex-wrap:wrap;gap:6px;display:flex}.hx-stack-chips span{font-family:var(--hx-mono);color:var(--hx-text);background:var(--hx-surface);border:1px solid var(--hx-border);border-radius:6px;padding:3px 10px;font-size:12px;transition:border-color .2s,color .2s;overflow:visible}.hx-stack-chips span:hover{border-color:var(--hx-glow);color:var(--hx-bright);cursor:default}.hx-tooltip{z-index:100;width:max-content;max-width:280px;font-family:var(--hx-font);color:var(--hx-bright);background:var(--hx-tooltip-bg);border:1px solid var(--hx-edge);pointer-events:none;box-shadow:0 4px 24px var(--hx-shadow),0 0 12px var(--hx-glow-dim);border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.5;animation:.15s ease-out hxTooltipIn;position:absolute}@keyframes hxTooltipIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.hx-badge{font-family:var(--hx-mono);text-transform:uppercase;color:var(--hx-glow);background:var(--hx-glow-dim);vertical-align:middle;border-radius:4px;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:500}.hx-contact{text-align:center;border-top:1px solid var(--hx-border);padding:5rem 0}.hx-contact-hex{justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 1.5rem;display:flex;position:relative}.hx-contact-hex svg{fill:none;width:100%;height:100%;stroke:var(--hx-glow);stroke-width:1.5px;opacity:.3;position:absolute;inset:0}.hx-contact-icon{z-index:1;color:var(--hx-glow);opacity:.8;font-size:24px}.hx-contact h2{color:var(--hx-bright);letter-spacing:-.02em;margin-bottom:.75rem;font-size:2rem;font-weight:600}.hx-contact p{max-width:420px;color:var(--hx-dim);margin:0 auto 1.5rem;font-size:1rem}.hx-email{font-family:var(--hx-mono);color:var(--hx-glow);border:1px solid var(--hx-edge-soft);border-radius:100px;padding:10px 28px;font-size:16px;text-decoration:none;transition:background .2s,border-color .2s,box-shadow .2s;display:inline-block}.hx-email:hover{background:var(--hx-glow-dim);border-color:var(--hx-edge);box-shadow:0 0 32px var(--hx-halo)}@media(max-width:768px){.hx-footer{padding:1rem max(1.25rem,var(--ui-safe-right)) calc(1rem + var(--ui-safe-bottom)) max(1.25rem,var(--ui-safe-left))}.hx-main{padding-left:max(1.25rem,var(--ui-safe-left));padding-right:max(1.25rem,var(--ui-safe-right))}.hx-hero{padding:3.5rem 0 2.5rem}.hx-section{padding:2.5rem 0}.hx-section h2:before{display:none}.hx-hexgrid-features{grid-template-columns:1fr}.hx-setup-row{grid-template-columns:1fr;gap:.25rem}.hx-stack-group{flex-direction:column;gap:.4rem}.hx-contact{padding:3rem 0}.hx-footer{flex-direction:column;gap:.25rem}}.pj-head{max-width:46rem;padding:3.5rem 0 2rem}.pj-tally{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--hx-glow);margin-bottom:.9rem;font-size:11px;display:inline-block}.pj-heading{letter-spacing:-.035em;color:var(--hx-strongest);margin-bottom:.85rem;font-size:clamp(2rem,5vw,2.9rem);font-weight:300;line-height:1.05}.pj-intro{color:var(--hx-text);font-size:1.02rem;line-height:1.7}.pj-empty{color:var(--hx-dim);padding:2rem 0 5rem}.pj-grid{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:1.25rem;padding-bottom:4rem;display:grid}.pj-grid-strip{margin-top:1.5rem;padding-bottom:1.25rem}.pj-card{background:var(--hx-surface-2);border:1px solid var(--hx-border);border-radius:14px;flex-direction:column;transition:border-color .25s,box-shadow .25s,transform .25s;display:flex;overflow:hidden}.pj-card:hover{border-color:var(--hx-edge);box-shadow:0 0 32px var(--hx-glow-dim),0 12px 30px -20px var(--hx-shadow);transform:translateY(-2px)}.pj-card-face{color:inherit;flex-direction:column;gap:.5rem;text-decoration:none;display:flex}.hx-section .pj-card-face,.hx-section .pj-link,.hx-section .pj-more{text-decoration:none}.pj-plate{aspect-ratio:16/9;background:var(--hx-glow-dim);border-bottom:1px solid var(--hx-border);display:block;position:relative;overflow:hidden}.pj-shot{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.7,.3,1);display:block}.pj-card:hover .pj-shot{transform:scale(1.03)}.pj-plate-blank{background:radial-gradient(120% 100% at 50% 0%,var(--hx-glow-dim),transparent 72%),repeating-linear-gradient(90deg,var(--hx-border) 0 1px,transparent 1px 28px),repeating-linear-gradient(0deg,var(--hx-border) 0 1px,transparent 1px 28px),var(--hx-surface);place-items:center;display:grid;position:absolute;inset:0}.pj-plate-blank svg{width:44px;height:51px;fill:var(--hx-glow-dim);stroke:var(--hx-glow);stroke-width:2.5px;opacity:.55}.pj-number{font-family:var(--font-mono);letter-spacing:.08em;color:var(--hx-bright);background:var(--hx-chrome);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--hx-border);border-radius:5px;padding:2px 7px;font-size:11px;font-weight:500;position:absolute;bottom:.6rem;left:.7rem}.pj-name{letter-spacing:-.01em;color:var(--hx-bright);align-items:center;gap:6px;padding:.95rem 1.1rem 0;font-size:15px;font-weight:600;transition:color .2s;display:flex}.pj-card:hover .pj-name{color:var(--hx-glow)}.pj-name-out{color:var(--hx-dim);font-size:12px;transition:color .2s}.pj-card:hover .pj-name-out{color:var(--hx-glow)}.pj-summary{color:var(--hx-text);padding:0 1.1rem .2rem;font-size:13.5px;line-height:1.6}.pj-links{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:auto;padding:.85rem 1.1rem 1rem;display:flex}.pj-link{font-family:var(--font-mono);color:var(--hx-text);background:var(--hx-glow-dim);border:1px solid var(--hx-edge-soft);border-radius:100px;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;text-decoration:none;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.pj-link:hover{color:var(--hx-strongest);border-color:var(--hx-glow);background:var(--hx-halo)}.pj-link-quiet{border-color:var(--hx-border);color:var(--hx-dim);background:0 0}.pj-link-mark{font-size:12px}.pj-tongue{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--hx-dim);border:1px dashed var(--hx-border);cursor:help;border-radius:4px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:500}.pj-note{background:0 0;border-style:dashed;justify-content:center;gap:.55rem;padding:1.7rem 1.3rem}.pj-note:hover{border-color:var(--hx-border);box-shadow:none;transform:none}.pj-note-mark svg{fill:none;width:26px;height:30px;stroke:var(--hx-glow);stroke-width:4px;stroke-dasharray:8 7;opacity:.5}.pj-note-heading{letter-spacing:-.01em;color:var(--hx-text);font-size:15px;font-weight:600}.pj-note-body{color:var(--hx-dim);font-size:13.5px;line-height:1.6}.pj-more{font-family:var(--font-mono);letter-spacing:.06em;color:var(--hx-glow);margin-top:.4rem;padding-bottom:3px;font-size:12px;text-decoration:none;display:inline-block;position:relative}.pj-more:after{content:"";background:var(--hx-glow);transform-origin:0;width:100%;height:1px;transition:transform .25s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.pj-more:hover:after{transform:scaleX(1)}.pj-page{max-width:46rem;padding:2.5rem 0 4rem}.pj-page-top{align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.pj-back{font-family:var(--font-mono);letter-spacing:.04em;color:var(--hx-dim);align-items:center;gap:6px;font-size:12px;text-decoration:none;transition:color .2s;display:inline-flex}.pj-back:hover{color:var(--hx-glow)}.pj-back-admin{margin-left:auto}.pj-back-mark{font-size:13px}.pj-draft{font-family:var(--font-mono);color:var(--bl-warn);background:var(--bl-warn-bg);border:1px solid var(--bl-warn-edge);border-radius:8px;margin-bottom:1.5rem;padding:.6rem .9rem;font-size:12px}.pj-page-head{margin-bottom:2rem}.pj-page-name{letter-spacing:-.035em;color:var(--hx-strongest);font-size:clamp(2rem,5vw,2.75rem);font-weight:300;line-height:1.08}.pj-page-lede{color:var(--hx-text);margin-top:.75rem;font-size:1.05rem;line-height:1.65}.pj-actions{flex-wrap:wrap;gap:.6rem;margin-top:1.5rem;display:flex}.pj-action{color:var(--hx-bright);background:var(--hx-surface);border:1px solid var(--hx-border);border-radius:10px;align-items:baseline;gap:8px;padding:.55rem .9rem;font-size:13px;font-weight:500;text-decoration:none;transition:border-color .2s,box-shadow .2s,color .2s;display:inline-flex}.pj-action:hover{border-color:var(--hx-edge);box-shadow:0 0 20px var(--hx-glow-dim)}.pj-action-go{color:var(--hx-strongest);border-color:var(--hx-edge);background:var(--hx-glow-dim)}.pj-action-go:hover{border-color:var(--hx-glow);box-shadow:0 0 26px var(--hx-halo)}.pj-action-mark{color:var(--hx-glow);align-self:center;font-size:14px}.pj-action-host{font-family:var(--font-mono);color:var(--hx-dim);font-size:11px}.pj-banner{border:1px solid var(--hx-border);background:var(--hx-surface);border-radius:14px;margin:0 0 2.25rem;overflow:hidden}.pj-banner img{width:100%;height:auto;display:block}.pj-prose{--block-ink:var(--hx-text);--block-strong:var(--hx-bright);--block-mute:var(--hx-dim);--block-dim:var(--hx-dim);--block-line:var(--hx-border);--block-line-firm:var(--hx-edge-soft);--block-surface:var(--hx-surface);--block-ground:var(--hx-bg);--block-accent:var(--hx-glow);--block-on-accent:var(--bl-on-accent);--block-wash:var(--hx-glow-dim);--block-warn:var(--bl-warn);--block-warn-wash:var(--bl-warn-bg);--block-ui:var(--hx-font);--block-mono:var(--hx-mono);--block-spill:0rem;color:var(--hx-text)}.pj-prose h2,.pj-prose h3,.pj-prose strong{color:var(--hx-bright)}.pj-prose a{color:var(--hx-glow)}.pj-prose pre{background:var(--bl-code-bg);border:1px solid var(--bl-code-edge);border-radius:4px;margin:1.5rem 0;padding:1.1rem 3rem 1.1rem 1.2rem;font-size:13px;line-height:1.7;position:relative;overflow:visible}.pj-prose pre>code{display:block;overflow-x:auto}.pj-prose pre,.pj-prose code{font-variant-numeric:lining-nums tabular-nums;-webkit-hyphens:none;hyphens:none}.pj-prose code{font-family:var(--hx-mono);color:var(--hx-bright);background:var(--bl-code-bg);-webkit-box-decoration-break:clone;box-decoration-break:clone;letter-spacing:-.01em;border:0;border-radius:3px;margin:0 -.09em;padding:.11em .26em .13em;font-size:.88em}.pj-prose pre code{color:inherit;font-size:inherit;letter-spacing:normal;background:0 0;border:0;border-radius:0;margin:0;padding:0}@media(max-width:768px){.pj-head{padding-top:2.5rem}.pj-grid{grid-template-columns:1fr}.pj-page{padding-top:1.5rem}.pj-actions{flex-direction:column;align-items:stretch}.pj-action{justify-content:center}}@media(prefers-reduced-motion:reduce){.pj-card,.pj-shot,.pj-more:after{transition:none}.pj-card:hover,.pj-card:hover .pj-shot{transform:none}}.blog-body{--bl-ui:"IBM Plex Sans", -apple-system, system-ui, sans-serif;--bl-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bl-display:"Unbounded", "IBM Plex Sans", system-ui, sans-serif;--bl-read:"Source Serif 4", "Iowan Old Style", Georgia, serif;background:var(--bl-bg);color:var(--bl-soft);font-family:var(--bl-ui);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100dvh;font-size:16px;line-height:1.7;display:flex}.blog-body .site-header-inner{max-width:820px;padding-left:max(2rem,var(--ui-safe-left));padding-right:max(2rem,var(--ui-safe-right));margin:0 auto}.blog-footer{border-top:1px solid var(--bl-line);padding:1rem 0 calc(1rem + var(--ui-safe-bottom));font-family:var(--bl-mono);color:var(--bl-faint);margin-top:auto;font-size:12px}.blog-main{flex:1}.blog-contain{max-width:820px;padding-left:max(2rem,var(--ui-safe-left));padding-right:max(2rem,var(--ui-safe-right));margin:0 auto}@keyframes bl-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.bl-index{background:radial-gradient(ellipse 70% 18rem at 50% -2rem,var(--bl-glow),transparent 70%);background-repeat:no-repeat;padding:3rem 0 4.5rem;position:relative}.bl-index-header{border-style:solid;border-width:0 0 1px;border-image:linear-gradient(90deg,var(--bl-edge-firm),var(--bl-line) 30%,transparent) 1;justify-content:space-between;align-items:flex-end;gap:1.25rem;margin-bottom:1.75rem;padding-bottom:1.35rem;display:flex}.bl-index-header h1{font-family:var(--bl-display);font-optical-sizing:auto;color:var(--bl-bright);letter-spacing:-.022em;font-size:clamp(2rem,1.5rem + 2vw,2.6rem);font-weight:600;line-height:1.1}#blog-listing{display:block}.bl-search-input{font-family:var(--bl-mono);color:var(--bl-ink);background:var(--bl-surface);border:1px solid var(--bl-line);border-radius:100px;outline:none;width:230px;padding:8px 16px;font-size:12.5px;transition:border-color .18s,background .18s,box-shadow .18s}.bl-search-input::placeholder{color:var(--bl-dim)}.bl-search-input:focus{border-color:var(--bl-edge);background:var(--bl-surface-2);box-shadow:0 0 0 4px var(--bl-wash)}.bl-search-status{font-family:var(--bl-mono);color:var(--bl-dim);margin-bottom:1.25rem;font-size:12.5px}.bl-search-status a{color:var(--bl-accent);border-bottom:1px solid var(--bl-edge);text-decoration:none}.bl-search-status a:hover{border-bottom-color:var(--bl-accent)}.bl-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:2.25rem;display:flex}.bl-tag{font-family:var(--bl-mono);letter-spacing:.02em;color:var(--bl-mid);background:var(--bl-surface);border:1px solid var(--bl-line);border-radius:100px;padding:4px 13px 5px;font-size:11.5px;text-decoration:none;transition:color .18s,border-color .18s,background .18s}.bl-tag:hover{color:var(--bl-accent);border-color:var(--bl-edge);background:var(--bl-wash)}.bl-tag-active{color:var(--bl-accent);border-color:var(--bl-edge-firm);background:var(--bl-wash-2)}.bl-posts{gap:.7rem;display:grid}.bl-post{border:1px solid var(--bl-line);background:var(--bl-surface);border-radius:14px;align-items:flex-start;gap:1.35rem;padding:1.35rem 1.4rem;transition:border-color .2s,background .2s,transform .2s;display:flex;position:relative}.bl-post:hover{border-color:var(--bl-edge);background:var(--bl-surface-2);transform:translateY(-2px)}.bl-post-text{flex:1;min-width:0}.bl-post-thumb{background:var(--bl-surface);border:1px solid var(--bl-line);border-radius:10px;flex:none;order:2;width:150px;height:108px;transition:border-color .2s;display:block;overflow:hidden}.bl-post-thumb img{object-fit:cover;width:100%;height:100%;transition:scale .35s cubic-bezier(.22,1,.36,1);display:block}.bl-post:hover .bl-post-thumb{border-color:var(--bl-edge)}.bl-post:hover .bl-post-thumb img{scale:1.05}.bl-post-meta{font-family:var(--bl-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--bl-dim);flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.5rem;font-size:11px;display:flex}.bl-post-series{color:var(--bl-mid);text-decoration:none;transition:color .18s}.bl-post-series:hover{color:var(--bl-accent)}.bl-post-part{color:var(--bl-faint)}.bl-post h2{font-family:var(--bl-display);font-optical-sizing:auto;letter-spacing:-.015em;text-wrap:balance;margin-bottom:.45rem;font-size:1.32rem;font-weight:600;line-height:1.25}.bl-post h2 a{color:var(--bl-bright);text-decoration:none;transition:color .18s}.bl-post:hover h2 a{color:var(--bl-accent)}.bl-post h2 a:after{content:"";position:absolute;inset:0}.bl-post-text>p{font-family:var(--bl-read);font-optical-sizing:auto;color:var(--bl-soft);text-wrap:pretty;margin-bottom:.6rem;font-size:1.02rem;line-height:1.6}.bl-post-tags{flex-wrap:wrap;gap:.55rem;display:flex}.bl-post-tags a{font-family:var(--bl-mono);color:var(--bl-dim);font-size:11px;text-decoration:none;transition:color .18s;position:relative}.bl-post-tags a:hover{color:var(--bl-accent)}.bl-post-tags a:before{content:"#";opacity:.5}.bl-empty{font-family:var(--bl-ui);color:var(--bl-dim);text-align:center;border:1px dashed var(--bl-line);border-radius:14px;padding:3.5rem 1rem;font-size:14.5px}.bl-pagination{flex-wrap:wrap;justify-content:center;gap:.35rem;margin-top:2.5rem;display:flex}.bl-page{min-width:34px;height:34px;font-family:var(--bl-mono);color:var(--bl-mid);border:1px solid var(--bl-line);background:var(--bl-surface);border-radius:9px;justify-content:center;align-items:center;padding:0 .5rem;font-size:12.5px;text-decoration:none;transition:color .18s,border-color .18s,background .18s;display:inline-flex}.bl-page:hover{color:var(--bl-accent);border-color:var(--bl-edge);background:var(--bl-wash)}.bl-page-current{color:var(--bl-on-accent);background:var(--bl-accent);border-color:var(--bl-accent);font-weight:500}.bl-page-current:hover{color:var(--bl-on-accent);background:var(--bl-accent)}.bl-series-page{padding:1rem 0 3rem}.bl-series-head{border-style:solid;border-width:0 0 1px;border-image:linear-gradient(90deg,var(--bl-edge-firm),var(--bl-line) 30%,transparent) 1;margin-bottom:2.5rem;padding-bottom:1.75rem}.bl-series-eyebrow{font-family:var(--bl-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bl-accent);opacity:.85;margin-bottom:.7rem;font-size:11.5px;display:block}.bl-series-head h1{font-family:var(--bl-display);font-optical-sizing:auto;color:var(--bl-bright);letter-spacing:-.022em;text-wrap:balance;margin-bottom:.9rem;font-size:clamp(1.9rem,1.3rem + 2.6vw,2.8rem);font-weight:600;line-height:1.1}.bl-series-blurb{color:var(--bl-lede);text-wrap:pretty;max-width:46ch;margin-bottom:1.1rem;font-size:1.08rem;line-height:1.65}.bl-series-meta{font-family:var(--bl-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--bl-dim);flex-wrap:wrap;align-items:center;gap:.65rem;font-size:11.5px;display:flex}.bl-parts{margin:0;padding:0;list-style:none}.bl-part{grid-template-columns:2.6rem 1fr;align-items:start;column-gap:.9rem;padding:.35rem 0;display:grid;position:relative}.bl-part:before{content:"";background:var(--bl-line-firm);width:1px;position:absolute;top:0;bottom:0;left:calc(1.3rem - .5px)}.bl-part:first-child:before{top:1.7rem}.bl-part:last-child:before{bottom:calc(100% - 1.7rem)}.bl-part-no{z-index:1;width:1.85rem;height:1.85rem;font-family:var(--bl-mono);letter-spacing:.03em;color:var(--bl-mid);background:var(--bl-bg);border:1px solid var(--bl-line);border-radius:100px;justify-content:center;justify-self:center;align-items:center;margin-top:.8rem;font-size:11px;transition:color .2s,border-color .2s,background .2s;display:inline-flex;position:relative}.bl-part:hover .bl-part-no{color:var(--bl-accent);border-color:var(--bl-edge);background:var(--bl-wash)}.bl-part-card{border:1px solid var(--bl-line);background:var(--bl-surface);border-radius:14px;align-items:flex-start;gap:1.35rem;margin-bottom:.7rem;padding:1.15rem 1.3rem;text-decoration:none;transition:border-color .2s,background .2s,transform .2s;display:flex}.bl-part-card:hover{border-color:var(--bl-edge);background:var(--bl-surface-2);transform:translateY(-2px)}.bl-part-thumb{background:var(--bl-surface);border:1px solid var(--bl-line);border-radius:10px;flex:none;order:2;width:118px;height:85px;transition:border-color .2s;display:block;overflow:hidden}.bl-part-thumb img{object-fit:cover;width:100%;height:100%;transition:scale .35s cubic-bezier(.22,1,.36,1);display:block}.bl-part-card:hover .bl-part-thumb{border-color:var(--bl-edge)}.bl-part-card:hover .bl-part-thumb img{scale:1.05}.bl-part-text{flex:1;min-width:0;display:block}.bl-part-meta{font-family:var(--bl-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--bl-dim);flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.45rem;font-size:11px;display:flex}.bl-part-away-note{color:var(--bl-warn);opacity:.9}.bl-part-title{font-family:var(--bl-display);font-optical-sizing:auto;letter-spacing:-.015em;color:var(--bl-bright);text-wrap:balance;margin-bottom:.4rem;font-size:1.28rem;font-weight:600;line-height:1.25;transition:color .18s;display:block}.bl-part-card:hover .bl-part-title{color:var(--bl-accent)}.bl-part-excerpt{color:var(--bl-soft);text-wrap:pretty;font-size:.94rem;line-height:1.6;display:block}.bl-part-away .bl-part-title{color:var(--bl-mute)}.bl-part-away .bl-part-no{border-style:dashed}.bl-index-header,.bl-tags,.bl-post,.bl-empty,.bl-pagination{animation:.6s cubic-bezier(.22,1,.36,1) both bl-rise}.bl-index-header{animation-delay:20ms}.bl-tags{animation-delay:70ms}.bl-post:first-child{animation-delay:.11s}.bl-post:nth-child(2){animation-delay:.15s}.bl-post:nth-child(3){animation-delay:.19s}.bl-post:nth-child(4){animation-delay:.23s}.bl-post:nth-child(5){animation-delay:.27s}.bl-post:nth-child(6){animation-delay:.31s}.bl-post:nth-child(7){animation-delay:.35s}.bl-post:nth-child(n+8){animation-delay:.38s}@media(prefers-reduced-motion:reduce){.bl-index-header,.bl-tags,.bl-post,.bl-empty,.bl-pagination{animation:none}.bl-post:hover{transform:none}.bl-post:hover .bl-post-thumb img{scale:1}}@media(max-width:640px){.bl-index-header{flex-direction:column;align-items:stretch;gap:.9rem}.bl-search-input{width:100%}.bl-post{flex-direction:column;gap:.9rem;padding:1.1rem 1.1rem 1.25rem}.bl-post-thumb{order:0;width:100%;height:10rem}}.bl-article{background:radial-gradient(ellipse 75% 20rem at 50% -2rem,var(--bl-glow),transparent 70%),radial-gradient(ellipse 45% 15rem at 84% 5rem,var(--bl-glow-cool),transparent 70%);background-repeat:no-repeat;padding:2.25rem 0 5rem;position:relative}.bl-progress{height:2px;scale:var(--bl-progress,0) 1;transform-origin:0;background:linear-gradient(90deg,transparent 0%,var(--bl-accent) 15%,var(--bl-accent-lift) 100%);position:absolute;bottom:0;left:0;right:0}.bl-article-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;margin-bottom:2rem;display:flex}.bl-back{font-family:var(--bl-mono);letter-spacing:.02em;color:var(--bl-dim);align-items:center;gap:.45rem;font-size:12px;text-decoration:none;transition:color .18s;display:inline-flex}.bl-back i{transition:translate .18s}.bl-back:hover{color:var(--bl-accent)}.bl-back:hover i{translate:-3px}.bl-also-in{flex-wrap:wrap;gap:.9rem;display:flex}.bl-also-in-link{font-family:var(--bl-mono);letter-spacing:.02em;color:var(--bl-accent);background-image:linear-gradient(var(--bl-accent),var(--bl-accent));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;align-items:center;gap:.4rem;font-size:12px;text-decoration:none;transition:background-size .22s,color .18s;display:inline-flex}.bl-also-in-link:hover{color:var(--bl-accent-hi);background-size:100% 1px}.bl-cover{border:1px solid var(--bl-line);background:var(--bl-surface);aspect-ratio:21/9;width:min(100vw - 3rem,980px);box-shadow:0 32px 64px -32px var(--bl-shadow);border-radius:14px;margin:0 0 2.75rem;position:relative;left:50%;overflow:hidden;translate:-50%}.bl-cover img{object-fit:cover;width:100%;height:100%;display:block}.bl-cover:after{content:"";pointer-events:none;background:linear-gradient(to top,var(--bl-bg),transparent);height:45%;position:absolute;inset:auto 0 0}@supports (color:color-mix(in lab,red,red)){.bl-cover:after{background:linear-gradient(to top,color-mix(in srgb,var(--bl-bg) 50%,transparent),transparent)}}.bl-article-header{border-style:solid;border-width:0 0 1px;border-image:linear-gradient(90deg,var(--bl-edge-firm),var(--bl-line) 30%,transparent) 1;margin-bottom:2.75rem;padding-bottom:1.75rem;position:relative}@media(min-width:68rem){.bl-article-header .bl-article-meta{text-align:right;white-space:nowrap;margin:0;line-height:1.9;display:block;position:absolute;top:.7rem;right:calc(100% + 2.25rem)}.bl-article-header .bl-article-meta .bl-meta-dot{display:none}.bl-article-header .bl-article-meta>span{display:block}}.bl-series-mark{font-family:var(--bl-mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.85rem;font-size:11.5px;display:flex}.bl-series-mark-label{color:var(--bl-accent);opacity:.85}.bl-series-mark-name{color:var(--bl-strong);background-image:linear-gradient(var(--bl-accent),var(--bl-accent));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;text-decoration:none;transition:background-size .22s,color .18s}.bl-series-mark-name:hover{color:var(--bl-accent);background-size:100% 1px}.bl-series-mark-place{color:var(--bl-dim)}.bl-article-meta{font-family:var(--bl-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--bl-dim);flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:1.1rem;font-size:11.5px;display:flex}.bl-meta-dot{background:var(--bl-accent);opacity:.6;border-radius:50%;width:3px;height:3px}.bl-article-header h1{font-family:var(--bl-display);color:var(--bl-bright);letter-spacing:-.045em;text-wrap:balance;margin-bottom:1.15rem;font-size:clamp(1.95rem,1.1rem + 3.4vw,3rem);font-weight:600;line-height:1.02}.bl-article-tags{flex-wrap:wrap;gap:.35rem 1rem;display:flex}.bl-article-tags a{font-family:var(--bl-mono);letter-spacing:.02em;color:var(--bl-dim);background:0 0;border:0;padding:0;font-size:11.5px;text-decoration:none;transition:color .18s}.bl-article-tags a:before{content:"#";color:var(--bl-accent);opacity:.55}.bl-article-tags a:hover{color:var(--bl-accent)}.bl-draft-banner{font-family:var(--bl-mono);color:var(--bl-warn);background:var(--bl-warn-bg);border:1px solid var(--bl-warn-edge);border-radius:10px;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:.65rem 1rem;font-size:12.5px;display:flex}.bl-draft-banner a{color:var(--bl-warn);border-bottom:1px solid var(--bl-warn-edge);margin-left:auto;text-decoration:none}.bl-draft-banner a:hover{border-bottom-color:var(--bl-warn)}.bl-prose,.bl-diagram-viewer{--block-ink:var(--bl-ink);--block-strong:var(--bl-strong);--block-mute:var(--bl-mute);--block-dim:var(--bl-dim);--block-line:var(--bl-line);--block-line-firm:var(--bl-line-firm);--block-surface:var(--bl-surface-3);--block-ground:var(--bl-bg);--block-accent:var(--bl-accent);--block-on-accent:var(--bl-on-accent);--block-wash:var(--bl-wash);--block-warn:var(--bl-warn);--block-warn-wash:var(--bl-warn-bg);--block-ui:var(--bl-ui);--block-mono:var(--bl-mono);--block-spill:0rem}@media(min-width:60rem){.bl-prose{--block-spill:4rem}}.bl-prose{counter-reset:bl-section bl-figure;font-family:var(--bl-read);font-optical-sizing:auto;--bl-rhythm: 2.04rem ;color:var(--bl-ink);hanging-punctuation:first last;font-variant-numeric:oldstyle-nums proportional-nums;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:8 4 3;margin-bottom:2.75rem;font-size:1.2rem;line-height:1.7;position:relative}.bl-prose p{text-wrap:pretty;margin:0}.bl-prose p+p{text-indent:1em}.bl-prose>p:first-child{color:var(--bl-lede);font-size:1.36rem;line-height:1.5}.bl-prose h1{font-family:var(--bl-display);color:var(--bl-bright);letter-spacing:-.04em;margin:calc(var(--bl-rhythm) * 1.5) 0 calc(var(--bl-rhythm) * .5);font-size:1.8rem;font-weight:600;line-height:1.1}.bl-prose h2{font-family:var(--bl-display);color:var(--bl-bright);letter-spacing:-.035em;margin:calc(var(--bl-rhythm) * 2) 0 calc(var(--bl-rhythm) * .5);padding-top:var(--bl-rhythm);border-top:1px solid var(--bl-hair);text-wrap:balance;font-size:1.22rem;font-weight:600;line-height:1.25;position:relative}.bl-prose h2:before{content:counter(bl-section,decimal-leading-zero);counter-increment:bl-section;font-family:var(--bl-mono);letter-spacing:.16em;color:var(--bl-accent);margin-bottom:.75rem;font-size:.7rem;font-weight:500;line-height:1;display:block}.bl-prose h3{font-family:var(--bl-display);letter-spacing:-.03em;color:var(--bl-strong);margin:calc(var(--bl-rhythm) * 1.25) 0 calc(var(--bl-rhythm) * .25);font-size:1.05rem;font-weight:600}@media(min-width:68rem){.bl-prose h2:before{right:calc(100% + 2.25rem);top:calc(var(--bl-rhythm) + (1.22rem * 1.25) / 2);margin:0;position:absolute;translate:0 -50%}}.bl-prose a{color:var(--bl-link);text-underline-offset:.19em;text-decoration:underline;text-decoration-thickness:.055em;-webkit-text-decoration-color:var(--bl-edge);text-decoration-color:var(--bl-edge);-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto;transition:color .15s,text-decoration-color .15s}.bl-prose a:hover{color:var(--bl-link-hover);-webkit-text-decoration-color:var(--bl-accent);text-decoration-color:var(--bl-accent)}.bl-prose strong{color:var(--bl-bright);font-weight:600}.bl-prose em{font-style:italic}.bl-prose ul{margin:var(--bl-rhythm) 0;padding-left:0;list-style:none}.bl-prose ul>li{padding-left:1.4rem;position:relative}.bl-prose ul>li:before{content:"—";font-family:var(--bl-mono);color:var(--bl-accent);font-size:.8em;position:absolute;top:0;left:0}.bl-prose ol{margin:var(--bl-rhythm) 0;padding-left:1.6rem;list-style:decimal}.bl-prose ol>li::marker{font-family:var(--bl-mono);color:var(--bl-accent);font-size:.8em}.bl-prose li{margin-bottom:.5rem}.bl-prose li>p+p{text-indent:0;margin-top:.5rem}.bl-prose blockquote{margin:calc(var(--bl-rhythm) * 1.5) 0;border-left:1px solid var(--bl-edge);font-family:var(--bl-display);letter-spacing:-.03em;color:var(--bl-mute);padding-left:1.6rem;font-size:.98rem;line-height:1.55;position:relative}.bl-prose blockquote p+p{text-indent:0;margin-top:.8rem}.bl-prose pre{background:var(--bl-code-bg);border:1px solid var(--bl-code-edge);margin:var(--bl-rhythm) 0;border-radius:4px;padding:1.1rem 3rem 1.1rem 1.2rem;font-size:13px;line-height:1.7;position:relative;overflow:visible}.bl-prose pre>code{display:block;overflow-x:auto}.bl-copy{z-index:1;appearance:none;width:2rem;height:2rem;color:var(--bl-dim);cursor:pointer;opacity:0;background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;padding:0;font-size:15px;line-height:1;transition:opacity .15s,color .15s,border-color .15s,background .15s;display:grid;position:absolute;top:.5rem;right:.5rem}.bl-prose pre:hover .bl-copy,.pj-prose pre:hover .bl-copy,.bl-copy:focus-visible,.bl-copy.is-copied{opacity:1}@media(hover:none){.bl-copy{opacity:1}}.bl-copy-idle,.bl-copy-done{grid-area:1/1;transition:opacity .15s}.bl-copy-done{opacity:0}.bl-copy.is-copied{color:var(--bl-accent)}.bl-copy.is-copied .bl-copy-idle{opacity:0}.bl-copy.is-copied .bl-copy-done{opacity:1}.bl-copy:hover{color:var(--bl-accent);background:var(--bl-wash)}.bl-copy:focus-visible{color:var(--bl-accent);border-color:var(--bl-edge);outline:none}.bl-prose pre,.bl-prose code{font-variant-numeric:lining-nums tabular-nums;-webkit-hyphens:none;hyphens:none}.bl-prose code{font-family:var(--bl-mono);color:var(--bl-bright);background:var(--bl-code-bg);-webkit-box-decoration-break:clone;box-decoration-break:clone;letter-spacing:-.01em;border:0;border-radius:3px;margin:0 -.09em;padding:.11em .26em .13em;font-size:.88em}.bl-prose pre code{color:inherit;font-size:inherit;letter-spacing:normal;background:0 0;border:0;border-radius:0;margin:0;padding:0}@media(min-width:68rem){.bl-prose pre:has(>code[class*=language-]):before{font-family:var(--bl-mono);letter-spacing:.14em;color:var(--bl-dim);white-space:nowrap;font-size:.7rem;line-height:1;position:absolute;top:calc(1.1rem + 11.05px);right:calc(100% + 2.25rem);translate:0 -50%}.bl-prose pre:has(>code.language-bash):before{content:"bash"}.bl-prose pre:has(>code.language-css):before{content:"css"}.bl-prose pre:has(>code.language-diff):before{content:"diff"}.bl-prose pre:has(>code.language-dockerfile):before{content:"docker"}.bl-prose pre:has(>code.language-erb):before{content:"erb"}.bl-prose pre:has(>code.language-go):before{content:"go"}.bl-prose pre:has(>code.language-html):before{content:"html"}.bl-prose pre:has(>code.language-ini):before{content:"ini"}.bl-prose pre:has(>code.language-javascript):before{content:"js"}.bl-prose pre:has(>code.language-json):before{content:"json"}.bl-prose pre:has(>code.language-make):before{content:"make"}.bl-prose pre:has(>code.language-markdown):before{content:"md"}.bl-prose pre:has(>code.language-python):before{content:"python"}.bl-prose pre:has(>code.language-ruby):before{content:"ruby"}.bl-prose pre:has(>code.language-rust):before{content:"rust"}.bl-prose pre:has(>code.language-sql):before{content:"sql"}.bl-prose pre:has(>code.language-toml):before{content:"toml"}.bl-prose pre:has(>code.language-typescript):before{content:"ts"}.bl-prose pre:has(>code.language-yaml):before{content:"yaml"}}.bl-prose img{border:1px solid var(--bl-line);border-radius:0;max-width:100%;margin:0;display:block}.bl-prose p:has(>img:only-child){margin:calc(var(--bl-rhythm) * 1.5) 0;text-indent:0;position:relative}.bl-prose p:has(>img:only-child):before{content:"рис. " counter(bl-figure);counter-increment:bl-figure;font-family:var(--bl-mono);letter-spacing:.14em;color:var(--bl-dim);margin-bottom:.75rem;font-size:.7rem;line-height:1;display:block}@media(min-width:68rem){.bl-prose p:has(>img:only-child):before{white-space:nowrap;margin:0;position:absolute;top:.22rem;right:calc(100% + 2.25rem)}.bl-prose p:has(>img:only-child){width:min(100% + 7rem,100vw - 26rem)}}.bl-prose table{border-collapse:collapse;width:100%;font-family:var(--bl-ui);margin:2rem 0}.bl-prose th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--bl-mid);background:var(--bl-surface);border-bottom:1px solid var(--bl-line-firm);padding:.6rem .85rem;font-size:11.5px;font-weight:600}.bl-prose td{border-bottom:1px solid var(--bl-hair);padding:.65rem .85rem;font-size:14.5px}.bl-prose tbody tr:hover td{background:var(--bl-surface)}.bl-prose hr{height:1px;margin:calc(var(--bl-rhythm) * 2) 0;background:linear-gradient(90deg,transparent,var(--bl-line-firm) 30%,var(--bl-line-firm) 70%,transparent);border:none}.bl-prose del{color:var(--bl-dim)}.bl-endmark{color:var(--bl-accent);justify-content:center;align-items:center;gap:1rem;margin-bottom:2.5rem;font-size:17px;line-height:1;display:flex}@supports (color:color-mix(in lab,red,red)){.bl-endmark{color:color-mix(in srgb,var(--bl-accent) 80%,transparent)}}.bl-endmark:before,.bl-endmark:after{content:"";background:linear-gradient(90deg,transparent,var(--bl-line));flex:1;height:1px}.bl-endmark:after{background:linear-gradient(90deg,var(--bl-line),transparent)}.bl-chain{border:1px solid var(--bl-line);background:linear-gradient(180deg,var(--bl-wash),transparent 60%);border-radius:14px;margin-bottom:2.5rem;padding:1.4rem 1.5rem 1.25rem}.bl-chain-head{font-family:var(--bl-mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:.55rem;margin-bottom:1.1rem;font-size:11.5px;display:flex}.bl-chain-label{color:var(--bl-accent);opacity:.85}.bl-chain-name{color:var(--bl-strong);text-decoration:none;transition:color .18s}.bl-chain-name:hover{color:var(--bl-accent)}.bl-chain-steps{margin:0 0 .35rem;padding:0;list-style:none}.bl-step{grid-template-columns:2.1rem 1fr;align-items:baseline;column-gap:.85rem;padding:.42rem 0;display:grid;position:relative}.bl-step:before{content:"";background:var(--bl-line-firm);width:1px;position:absolute;top:0;bottom:0;left:calc(1.05rem - .5px)}.bl-step:first-child:before{top:50%}.bl-step:last-child:before{bottom:50%}.bl-step-no{z-index:1;min-width:1.55rem;font-family:var(--bl-mono);letter-spacing:.04em;color:var(--bl-faint);background:var(--bl-bg);border-radius:100px;justify-content:center;justify-self:center;align-items:center;padding:.1rem 0;font-size:11px;display:inline-flex;position:relative}.bl-step-title{color:var(--bl-mute);text-wrap:pretty;line-height:1.4;text-decoration:none;transition:color .18s}a.bl-step-title:hover{color:var(--bl-accent)}.bl-step-here .bl-step-no{color:var(--bl-on-accent);background:var(--bl-accent);font-weight:500}.bl-step-here .bl-step-title{color:var(--bl-bright);font-weight:500}.bl-step-next .bl-step-title{color:var(--bl-link)}.bl-step-next .bl-step-title:after{content:" →";color:var(--bl-accent);opacity:.7}.bl-step-away .bl-step-title{color:var(--bl-faint)}.bl-step-note{font-family:var(--bl-mono);letter-spacing:.04em;color:var(--bl-faint);opacity:.85;grid-column:2;font-size:10.5px}.bl-chain-all{font-family:var(--bl-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--bl-dim);align-items:center;gap:.4rem;margin-left:2.95rem;font-size:11px;text-decoration:none;transition:color .18s;display:inline-flex}.bl-chain-all i{transition:translate .18s}.bl-chain-all:hover{color:var(--bl-accent)}.bl-chain-all:hover i{translate:3px}.bl-article-actions{border:1px solid var(--bl-line);background:linear-gradient(180deg,var(--bl-surface-2),transparent);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:3rem;padding:.8rem .9rem;display:flex}.bl-like-btn{font-family:var(--bl-ui);color:var(--bl-mute);background:var(--bl-surface-2);border:1px solid var(--bl-line-firm);cursor:pointer;border-radius:100px;align-items:center;gap:.5rem;padding:6px 7px 6px 15px;font-size:13.5px;font-weight:600;text-decoration:none;transition:color .18s,border-color .18s,background .18s,transform .12s;display:inline-flex}.bl-like-btn:hover{color:var(--bl-accent);border-color:var(--bl-edge);background:var(--bl-wash)}.bl-like-btn:active{transform:scale(.97)}.bl-like-count{font-family:var(--bl-mono);color:var(--bl-mid);background:var(--bl-surface-3);border-radius:100px;padding:2px 9px;font-size:11.5px}.bl-like-active{color:var(--bl-accent);border-color:var(--bl-edge-firm);background:var(--bl-wash-2)}.bl-like-active .bl-like-count{color:var(--bl-accent);background:var(--bl-wash-3)}.bl-like-active i{animation:.45s cubic-bezier(.34,1.56,.64,1) bl-pop}@keyframes bl-pop{0%{scale:1}35%{scale:1.35}60%{scale:.93}to{scale:1}}.bl-like-hint{font-family:var(--bl-mono);color:var(--bl-dim);align-items:center;gap:.45rem;font-size:12.5px;display:inline-flex}.bl-like-hint a{color:var(--bl-accent);border-bottom:1px solid var(--bl-edge);text-decoration:none}.bl-like-hint a:hover{border-bottom-color:var(--bl-accent)}.bl-share{flex-wrap:wrap;align-items:center;gap:.15rem;margin-left:auto;display:flex}.bl-share-to{width:30px;height:30px;color:var(--bl-dim);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:color .18s,background .18s;display:inline-flex}.bl-share-to:hover{color:var(--bl-accent);background:var(--bl-wash)}.bl-share-to:active{transform:scale(.94)}.bl-share .bl-share-btn{border-left:1px solid var(--bl-line);border-radius:0 8px 8px 0;margin-left:.35rem;padding-left:.7rem}@media(max-width:420px){.bl-share-btn .bl-share-idle{display:none}}.bl-share-btn{font-family:var(--bl-mono);letter-spacing:.02em;color:var(--bl-dim);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:.45rem;padding:6px 10px;font-size:12px;transition:color .18s,background .18s;display:inline-flex}.bl-share-btn:hover{color:var(--bl-accent);background:var(--bl-wash)}.bl-share-done{display:none}.bl-share-btn.is-copied{color:var(--bl-accent)}.bl-share-btn.is-copied .bl-share-idle{display:none}.bl-share-btn.is-copied .bl-share-done{display:inline}.bl-comments{padding-top:.5rem}.bl-comments summary{font-family:var(--bl-ui);color:var(--bl-mute);cursor:pointer;border-top:1px solid var(--bl-line);align-items:center;gap:.6rem;padding:1rem 0;font-size:15px;font-weight:600;list-style:none;transition:color .18s;display:flex}.bl-comments summary::-webkit-details-marker{display:none}.bl-comments summary:hover{color:var(--bl-bright)}.bl-comments summary:after{content:"";opacity:.4;border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;margin-left:auto;transition:rotate .25s;rotate:45deg}.bl-comments[open] summary:after{rotate:-135deg}.bl-comments-mark{color:var(--bl-accent);opacity:.75}.bl-comments-count{font-family:var(--bl-mono);color:var(--bl-accent);background:var(--bl-wash-2);border-radius:100px;padding:2px 9px;font-size:11px}.bl-comments .bl-empty{font-family:var(--bl-ui);color:var(--bl-dim);padding:1.25rem 0;font-size:14px}.bl-comments-list{gap:.6rem;padding:.25rem 0 1rem;display:grid}.bl-comment{border:1px solid var(--bl-line);background:var(--bl-surface);border-radius:12px;gap:.85rem;padding:1rem 1.1rem;transition:border-color .18s,background .18s;display:flex}.bl-comment:hover{border-color:var(--bl-line-firm);background:var(--bl-surface-2)}.bl-comment:target{border-color:var(--bl-edge-firm);background:var(--bl-wash)}.bl-comment-avatar{border:2px solid var(--bl-line);border-radius:50%;flex:0 0 36px;width:36px;height:36px}.bl-comment-body{flex:1;min-width:0}.bl-comment-meta{align-items:center;gap:.6rem;margin-bottom:.3rem;display:flex}.bl-comment-meta strong{font-family:var(--bl-ui);color:var(--bl-strong);font-size:13.5px;font-weight:600}.bl-comment-meta span{font-family:var(--bl-mono);color:var(--bl-dim);font-size:11px}.bl-comment-delete{color:var(--bl-dim);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:6px;margin-left:auto;padding:4px;transition:opacity .15s,color .15s,background .15s;display:flex}.bl-comment:hover .bl-comment-delete,.bl-comment-delete:focus-visible{opacity:1}.bl-comment-delete:hover{color:var(--bl-danger);background:var(--bl-danger-bg)}.bl-comment-text{font-family:var(--bl-ui);color:var(--bl-soft);font-size:14.5px;line-height:1.65}.bl-comment-text p{margin:0 0 .4rem}.bl-comment-text p:last-child{margin:0}.bl-comment-form{padding:1.25rem 0 .5rem}.bl-comment-form-inner{align-items:flex-start;gap:.85rem;display:flex}.bl-comment-form-avatar{border:2px solid var(--bl-line);border-radius:50%;flex:0 0 36px;width:36px;height:36px;margin-top:4px}.bl-comment-textarea{min-width:0;font-family:var(--bl-ui);color:var(--bl-ink);background:var(--bl-surface);border:1px solid var(--bl-line);resize:none;border-radius:12px;outline:none;flex:1;min-height:88px;padding:13px 15px;font-size:14.5px;line-height:1.6;transition:border-color .18s,box-shadow .18s,background .18s}.bl-comment-textarea::placeholder{color:var(--bl-dim)}.bl-comment-textarea:focus{border-color:var(--bl-edge);background:var(--bl-surface-2);box-shadow:0 0 0 4px var(--bl-wash)}.bl-comment-form-actions{justify-content:flex-end;padding-top:.75rem;display:flex}.bl-comment-submit{font-family:var(--bl-ui);color:var(--bl-on-accent);background:var(--bl-accent);cursor:pointer;border:none;border-radius:100px;padding:8px 22px;font-size:13.5px;font-weight:600;transition:background .18s,transform .1s,box-shadow .18s}.bl-comment-submit:hover{background:var(--bl-accent-hi);box-shadow:0 8px 24px -12px var(--bl-accent)}@supports (color:color-mix(in lab,red,red)){.bl-comment-submit:hover{box-shadow:0 8px 24px -12px color-mix(in srgb,var(--bl-accent) 80%,transparent)}}.bl-comment-submit:active{transform:scale(.97)}.bl-comments-signin{font-family:var(--bl-ui);color:var(--bl-dim);flex-wrap:wrap;align-items:center;gap:.6rem;padding:1rem 0;font-size:14px;display:flex}.bl-comments-signin a{color:var(--bl-accent)}.bl-article-top,.bl-cover,.bl-article-header,.bl-prose,.bl-endmark,.bl-chain,.bl-article-actions,.bl-comments{animation:.65s cubic-bezier(.22,1,.36,1) both bl-rise}.bl-article-top{animation-delay:20ms}.bl-cover{animation-delay:60ms}.bl-article-header{animation-delay:.13s}.bl-prose{animation-delay:.2s}.bl-endmark{animation-delay:.26s}.bl-chain{animation-delay:.28s}.bl-article-actions{animation-delay:.31s}.bl-comments{animation-delay:.34s}.bl-series-head,.bl-part{animation:.65s cubic-bezier(.22,1,.36,1) both bl-rise}.bl-series-head{animation-delay:20ms}.bl-part:first-child{animation-delay:90ms}.bl-part:nth-child(2){animation-delay:.13s}.bl-part:nth-child(3){animation-delay:.17s}.bl-part:nth-child(4){animation-delay:.21s}.bl-part:nth-child(5){animation-delay:.25s}.bl-part:nth-child(6){animation-delay:.29s}.bl-part:nth-child(n+7){animation-delay:.32s}@media(prefers-reduced-motion:reduce){.bl-article-top,.bl-cover,.bl-article-header,.bl-prose,.bl-endmark,.bl-chain,.bl-article-actions,.bl-comments,.bl-series-head,.bl-part,.bl-like-active i{animation:none}.bl-chain-all:hover i,.bl-back:hover i{translate:none}}@media(max-width:640px){.blog-contain{padding-left:max(1.25rem,var(--ui-safe-left));padding-right:max(1.25rem,var(--ui-safe-right))}.bl-article{padding:1.5rem 0 3.5rem}.bl-cover{border-radius:12px;width:min(100vw - 1.5rem,980px);margin-bottom:2rem}.bl-article-header{margin-bottom:2rem;padding-bottom:1.35rem}.bl-prose{font-size:1.09rem;line-height:1.62}.bl-prose>p:first-child{font-size:1.2rem}.bl-prose p+p{text-indent:.85em}.bl-prose h2{margin-top:2.5rem;padding-top:1.25rem;font-size:1.12rem}.bl-prose pre{padding:1rem 2.7rem 1rem .9rem}.bl-article-actions{justify-content:center}.bl-comment{padding:.85rem .9rem}}.bl-github-btn{font-family:var(--bl-mono);color:var(--bl-mute);background:var(--bl-surface-2);border:1px solid var(--bl-line-firm);border-radius:100px;align-items:center;gap:.5rem;padding:6px 15px;font-size:12.5px;text-decoration:none;transition:color .18s,border-color .18s,background .18s;display:inline-flex}.bl-github-btn:hover{color:var(--bl-accent);border-color:var(--bl-edge);background:var(--bl-wash)}.bl-github-btn-lg{font-family:var(--bl-ui);border-radius:14px;gap:.7rem;margin-top:.75rem;padding:11px 24px;font-size:14.5px;font-weight:600}.bl-signin{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;min-height:60vh;animation:.6s cubic-bezier(.22,1,.36,1) both bl-rise;display:flex}.bl-signin h1{font-family:var(--bl-display);font-optical-sizing:auto;color:var(--bl-bright);letter-spacing:-.022em;font-size:clamp(1.9rem,1.4rem + 2vw,2.4rem);font-weight:600;line-height:1.1}.bl-signin p{font-family:var(--bl-read);font-optical-sizing:auto;color:var(--bl-dim);font-size:1.05rem}@media(prefers-reduced-motion:reduce){.bl-signin{animation:none}}}@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.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}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-4{height:calc(var(--spacing) * 4)}.h-dvh{height:100dvh}.w-4{width:calc(var(--spacing) * 4)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.bg-green-50{background-color:var(--color-green-50)}.p-4{padding:calc(var(--spacing) * 4)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[15px\]{font-size:15px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-800{color:var(--color-amber-800)}.text-green-800{color:var(--color-green-800)}.lowercase{text-transform:lowercase}.italic{font-style:italic}.not-italic{font-style:normal}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media(hover:hover){.hover\:underline:hover{text-decoration-line:underline}}@media(min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:self-auto{align-self:auto}.sm\:px-0{padding-inline:0}}@media(min-width:48rem){.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root{--bl-bg:light-dark(#f5f4ef,#0b0f14);--bl-bg-veil:light-dark(#f5f4efd1,#0b0f14cc);--bl-code-bg:light-dark(#e8e6db,#131a24);--bl-code-edge:light-dark(#131a181f,#ffffff12);--bl-bright:light-dark(#131a18,#f2f6fb);--bl-strong:light-dark(#1c2422,#e6ecf4);--bl-lede:light-dark(#24302c,#d8e0ea);--bl-ink:light-dark(#2e3a37,#c7d1de);--bl-mute:light-dark(#3f4b47,#a9b6c7);--bl-soft:light-dark(#4c5854,#94a3b8);--bl-mid:light-dark(#5a6662,#8b98ab);--bl-dim:light-dark(#646f6b,#566578);--bl-faint:light-dark(#6d7874,#475569);--bl-accent:light-dark(#0d7a5f,#63c8aa);--bl-accent-hi:light-dark(#0a6a52,#74dcbc);--bl-accent-lift:light-dark(#0f8a6b,#7ee0c2);--bl-on-accent:light-dark(#f4fbf8,#071310);--bl-link:light-dark(#0a6c54,#7fd8bd);--bl-link-hover:light-dark(#075442,#9fead3);--bl-hair:light-dark(#131a1812,#ffffff0b);--bl-line:light-dark(#131a181c,#ffffff12);--bl-line-firm:light-dark(#131a182b,#ffffff1c);--bl-surface:light-dark(#ffffff9e,#ffffff06);--bl-surface-2:light-dark(#ffffffe0,#ffffff0b);--bl-surface-3:light-dark(#fff,#ffffff0f);--bl-wash:light-dark(#0d7a5f0f,#63c8aa12);--bl-wash-2:light-dark(#0d7a5f1a,#63c8aa1a);--bl-wash-3:light-dark(#0d7a5f26,#63c8aa29);--bl-edge-soft:light-dark(#0d7a5f29,#63c8aa24);--bl-edge:light-dark(#0d7a5f52,#63c8aa54);--bl-edge-firm:light-dark(#0d7a5f73,#63c8aa73);--bl-glow:light-dark(#0d7a5f12,#63c8aa14);--bl-glow-cool:light-dark(#2b6e960d,#63a0c80d);--bl-shadow:light-dark(#131a1833,#000000e6);--bl-shadow-deep:light-dark(#131a1842,#000000f2);--bl-warn:light-dark(#8a5a0c,#f0b34a);--bl-warn-bg:light-dark(#b4781417,#f59e0b12);--bl-warn-edge:light-dark(#8c5c0c4d,#f59e0b38);--bl-danger:light-dark(#b91c1c,#f87171);--bl-danger-bg:light-dark(#b91c1c14,#f8717114);--hx-bg:light-dark(#f5f4ef,#0b0f14);--hx-chrome:light-dark(#f5f4efb8,#0b0f14b3);--hx-surface:light-dark(#ffffffa8,#ffffff08);--hx-surface-2:light-dark(#fff,#1c2530);--hx-border:light-dark(#131a181a,#ffffff0f);--hx-text:light-dark(#4c5854,#94a3b8);--hx-bright:light-dark(#1c2422,#e2e8f0);--hx-strongest:light-dark(#0b100e,#fff);--hx-dim:light-dark(#646f6b,#475569);--hx-glow:light-dark(#0d7a5f,#63c8aa);--hx-glow-dim:light-dark(#0d7a5f17,#63c8aa1a);--hx-glow-bright:light-dark(#0d7a5f47,#63c8aa40);--hx-edge-soft:light-dark(#0d7a5f2e,#63c8aa26);--hx-edge:light-dark(#0d7a5f4d,#63c8aa4d);--hx-halo:light-dark(#0d7a5f17,#63c8aa1a);--hx-tooltip-bg:light-dark(#fff,#151a22);--hx-shadow:light-dark(#131a1829,#0006);--ui-accent:var(--bl-accent);--ui-text:var(--bl-soft);--ui-faint:var(--bl-faint);--ui-line:var(--bl-line);--ui-surface:var(--bl-surface);--ui-surface-hover:var(--bl-surface-3);--ui-wash:var(--bl-wash-2);--ui-bg:var(--bl-bg);--ui-chrome:var(--bl-bg-veil);--ui-halo:light-dark(#0d7a5f73,#63c8aa99);--ui-scrim:light-dark(#131a1857,#06080e80);--ui-safe-top:env(safe-area-inset-top,0px);--ui-safe-bottom:env(safe-area-inset-bottom,0px);--ui-safe-left:env(safe-area-inset-left,0px);--ui-safe-right:env(safe-area-inset-right,0px);--fl-notice:var(--bl-accent);--fl-notice-wash:var(--bl-wash-2);--fl-error:var(--bl-danger);--fl-error-wash:var(--bl-danger-bg);--fl-bright:var(--bl-bright);--fl-faint:var(--bl-faint);--fl-line-firm:var(--bl-line-firm);--fl-surface:var(--bl-surface-3);--fl-veil:var(--bl-bg-veil);--fl-shadow:0 1px 2px var(--bl-shadow), 0 18px 40px -22px var(--bl-shadow-deep)}@media(max-width:768px){@layer components{.blog-layout{flex-direction:column}.blog-sidebar{width:100%}}}@property --spot-center{syntax:"<number>";inherits:true;initial-value:.92}@property --spot-mid{syntax:"<number>";inherits:true;initial-value:.92}@property --spot-edge{syntax:"<number>";inherits:true;initial-value:.97}@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}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
