@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-duration:initial;--tw-space-x-reverse:0}}}:root,[data-theme=light]{--bg:#fff;--bg-subtle:#f5f6f8;--surface:#fff;--surface-raised:#fff;--surface-sunken:#eef0f3;--surface-hover:#f0f2f5;--line:#e2e5ea;--line-strong:#7d8694;--ink:#12161c;--ink-muted:#4f5866;--ink-subtle:#636c7a;--ink-disabled:#9aa1ab;--brand:#3776ab;--brand-text:#306998;--brand-hover:#306998;--brand-pressed:#255480;--brand-soft:#e9f1f8;--brand-line:#b5cde3;--on-brand:#fff;--link:var(--brand-text);--focus:var(--brand-text);--ad-surface:#f7f3e8;--ad-line:#e3d9bf;--ad-ink:#6b5418;--success:#17703f;--success-soft:#e5f3ea;--warning:#8a5300;--warning-soft:#fcf1dc;--danger:#b42a24;--on-danger:#fff;--danger-soft:#fcebe9;--info:var(--brand-text);--info-soft:var(--brand-soft);--code-bg:#f6f7f9;--code-line:#e2e5ea;--code-ink:#1d2229;--code-comment:#5f6773;--code-keyword:#a1236f;--code-string:#126b3a;--code-number:#1a56b0;--code-function:#6a3cb8;--code-builtin:#8a4b00;--logo-plate:#fff;--overlay:#0e111680;--skeleton:#e9ecf0;--skeleton-shine:#f4f6f8;--elevation-sm:0 1px 2px #12161c14;--elevation-md:0 4px 12px #12161c14, 0 1px 3px #12161c14;--elevation-lg:0 16px 40px #12161c29, 0 2px 6px #12161c14;--focus-ring:0 0 0 2px #fff, 0 0 0 4px #306998}[data-theme=dark]{--bg:#0e1116;--bg-subtle:#13171e;--surface:#171b23;--surface-raised:#1e232d;--surface-sunken:#0a0d11;--surface-hover:#212733;--line:#2a303b;--line-strong:#6c7686;--ink:#e8ebf0;--ink-muted:#a9b1bd;--ink-subtle:#8f99a8;--ink-disabled:#5a6270;--brand:#7fb2df;--brand-text:#86b6e2;--brand-hover:#9cc5ea;--brand-pressed:#6fa6d6;--brand-soft:#132538;--brand-line:#2c4a6b;--on-brand:#0e1116;--link:var(--brand-text);--focus:#9cc5ea;--ad-surface:#1f1c14;--ad-line:#3b3524;--ad-ink:#d6c28c;--success:#63c98c;--success-soft:#10281b;--warning:#e9b65a;--warning-soft:#2b200d;--danger:#ff8a80;--on-danger:#0e1116;--danger-soft:#361513;--info:var(--brand-text);--info-soft:var(--brand-soft);--code-bg:#11151b;--code-line:#262c36;--code-ink:#dde2e9;--code-comment:#8d97a5;--code-keyword:#f28fcf;--code-string:#7fdca4;--code-number:#82b6ff;--code-function:#c6a8ff;--code-builtin:#eebb73;--logo-plate:#e8ebf0;--overlay:#000000a6;--skeleton:#202631;--skeleton-shine:#2a313d;--elevation-sm:0 1px 2px #0006;--elevation-md:0 4px 14px #00000080, 0 0 0 1px #2a303b;--elevation-lg:0 16px 40px #000000b3, 0 0 0 1px #2a303b;--focus-ring:0 0 0 2px #0e1116, 0 0 0 4px #9dbff5}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--control-md:44px;--control-sm:36px;--control-lg:52px;--touch-min:44px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--avatar-sm:24px;--avatar-md:40px;--avatar-lg:96px;--header-h:64px;--header-h-m:56px;--container-max:1216px;--gutter-m:16px;--gutter-t:24px;--gutter-d:32px;--measure:68ch;--toc-w:256px;--sheet-max-h:88%;--modal-w:560px;--bp-m:360px;--bp-t:768px;--bp-d:1280px;--z-sticky:10;--z-header:20;--z-dropdown:30;--z-cookie:40;--z-overlay:50;--z-toast:60;--duration-fast:.12s;--duration-base:.2s;--duration-slow:.28s;--easing-standard:cubic-bezier(.2, 0, 0, 1);--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}@font-face{font-family:IBM Plex Sans;src:url(./IBMPlexSans-Regular-BiEB_oxT.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(./IBMPlexSans-Italic-CpbUNyku.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(./IBMPlexSans-Medium-BQLKo0ot.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(./IBMPlexSans-SemiBold-KfaJl9PC.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(./JetBrainsMono-Regular-C8L8B0wz.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(./JetBrainsMono-Italic-B_Ye5GKj.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(./JetBrainsMono-SemiBold-sXPXaUtJ.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.text-hero{font-family:var(--font-sans);letter-spacing:-.025em;font-size:56px;font-weight:600;line-height:60px}.text-display{font-family:var(--font-sans);letter-spacing:-.02em;font-size:44px;font-weight:600;line-height:52px}.text-h1{font-family:var(--font-sans);letter-spacing:-.015em;font-size:36px;font-weight:600;line-height:44px}.text-h2{font-family:var(--font-sans);letter-spacing:-.01em;font-size:28px;font-weight:600;line-height:36px}.text-h3{font-family:var(--font-sans);font-size:21px;font-weight:600;line-height:28px}.text-h4{font-family:var(--font-sans);font-size:17px;font-weight:600;line-height:24px}.text-hero-m{font-family:var(--font-sans);letter-spacing:-.02em;font-size:34px;font-weight:600;line-height:40px}.text-display-m{font-family:var(--font-sans);letter-spacing:-.015em;font-size:30px;font-weight:600;line-height:38px}.text-h1-m{font-family:var(--font-sans);letter-spacing:-.01em;font-size:28px;font-weight:600;line-height:36px}.text-h2-m{font-family:var(--font-sans);font-size:22px;font-weight:600;line-height:30px}.text-h3-m{font-family:var(--font-sans);font-size:18px;font-weight:600;line-height:26px}.text-lead{font-family:var(--font-sans);font-size:20px;font-weight:400;line-height:30px}.text-prose{font-family:var(--font-sans);font-size:18px;font-weight:400;line-height:30px}.text-prose-m{font-family:var(--font-sans);font-size:17px;font-weight:400;line-height:28px}.text-body{font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:24px}.text-body-sm{font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:20px}.text-label{font-family:var(--font-sans);font-size:15px;font-weight:500;line-height:20px}.text-label-sm{font-family:var(--font-sans);font-size:13px;font-weight:500;line-height:18px}.text-caption{font-family:var(--font-sans);font-size:12px;font-weight:400;line-height:16px}.text-code{font-family:var(--font-mono);font-size:14px;font-weight:400;line-height:22px}.text-code-sm{font-family:var(--font-mono);font-size:13px;font-weight:400;line-height:20px}.text-code-strong{font-family:var(--font-mono);font-size:14px;font-weight:600;line-height:22px}@layer theme{:root,:host{--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-widest:.1em;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--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);--color-white:#fff;--color-black:#000;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--text-xs:12px;--text-xs--line-height:16px;--text-sm:14px;--text-sm--line-height:20px;--text-base:16px;--text-base--line-height:24px;--text-lg:18px;--text-lg--line-height:26px;--text-xl:21px;--text-xl--line-height:28px;--text-2xl:28px;--text-2xl--line-height:36px;--text-2xl--letter-spacing:-.01em;--text-3xl:36px;--text-3xl--line-height:44px;--text-3xl--letter-spacing:-.015em;--color-background:var(--bg);--color-foreground:var(--ink)}}@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{:root{color-scheme:light}[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"kern";margin:0;font-size:16px;line-height:24px}a{color:var(--link)}code,kbd,samp,pre,.pyru-mono{font-variant-ligatures:none}img,svg,video{max-width:100%}:where(a,button,input,select,textarea,summary,[tabindex]):focus{outline:none}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{box-shadow:var(--focus-ring);outline:2px solid #0000}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}.pyru-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.pyru-icon{width:var(--icon-md);height:var(--icon-md);vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;display:inline-block}.pyru-icon--sm{width:var(--icon-sm);height:var(--icon-sm)}.pyru-icon--lg{width:var(--icon-lg);height:var(--icon-lg)}.pyru-icon--spin{animation:.9s linear infinite pyru-spin}@keyframes pyru-spin{to{transform:rotate(360deg)}}.pyru-display,.pyru-h1,.pyru-h2,.pyru-h3,.pyru-h4{color:var(--ink);text-wrap:balance;margin:0;font-weight:600}.pyru-display{letter-spacing:-.015em;font-size:30px;line-height:38px}.pyru-h1{letter-spacing:-.01em;font-size:28px;line-height:36px}.pyru-h2{font-size:22px;line-height:30px}.pyru-h3{font-size:18px;line-height:26px}.pyru-h4{font-size:17px;line-height:24px}@media(min-width:768px){.pyru-display{letter-spacing:-.02em;font-size:44px;line-height:52px}.pyru-h1{letter-spacing:-.015em;font-size:36px;line-height:44px}.pyru-h2{letter-spacing:-.01em;font-size:28px;line-height:36px}.pyru-h3{font-size:21px;line-height:28px}}.pyru-lead{color:var(--ink-muted);margin:0;font-size:20px;line-height:30px}.pyru-muted{color:var(--ink-muted)}.pyru-meta{align-items:center;gap:var(--space-1) var(--space-2);color:var(--ink-muted);flex-wrap:wrap;font-size:14px;line-height:20px;display:flex}.pyru-meta>*+:before{content:"·";margin-right:var(--space-2);color:var(--ink-subtle)}.pyru-meta--plain>*+:before{content:none}.pyru-mono{font-family:var(--font-mono)}.pyru-example{color:var(--ink-subtle);font-size:12px;font-weight:400;line-height:16px}.pyru-container{width:100%;max-width:calc(var(--container-max) + 2 * var(--gutter-d));padding-inline:var(--gutter-m);margin-inline:auto}.pyru-grid{gap:var(--gutter-m);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.pyru-grid>*{grid-column:span 4}.pyru-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,288px),1fr));display:grid}.pyru-cards--wide{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}.pyru-stack{gap:var(--space-4);flex-direction:column;display:flex}.pyru-stack--sm{gap:var(--space-2)}.pyru-stack--lg{gap:var(--space-8)}.pyru-cluster{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.pyru-section{padding-block:var(--space-10)}.pyru-section--subtle{background:var(--bg-subtle)}.pyru-section-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.pyru-section-head__more{align-items:center;gap:var(--space-1);min-height:var(--touch-min);flex:none;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.pyru-section-head__more:hover{text-underline-offset:3px;text-decoration:underline}.pyru-measure{max-width:var(--measure)}@media(min-width:768px){.pyru-container{padding-inline:var(--gutter-t)}.pyru-grid{gap:var(--gutter-t);grid-template-columns:repeat(8,minmax(0,1fr))}.pyru-grid>*{grid-column:span 8}.pyru-cards{gap:var(--space-6)}}@media(min-width:1280px){.pyru-container{padding-inline:var(--gutter-d)}.pyru-grid{gap:var(--gutter-t);grid-template-columns:repeat(12,minmax(0,1fr))}.pyru-grid>*{grid-column:span 12}.pyru-section{padding-block:var(--space-16)}}.pyru-span-2{grid-column:span 2!important}@media(min-width:768px){.pyru-span-t-4{grid-column:span 4!important}.pyru-span-t-8{grid-column:span 8!important}}@media(min-width:1280px){.pyru-span-d-3{grid-column:span 3!important}.pyru-span-d-4{grid-column:span 4!important}.pyru-span-d-6{grid-column:span 6!important}.pyru-span-d-8{grid-column:span 8!important}.pyru-span-d-9{grid-column:span 9!important}}.pyru-btn{justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-md);padding:0 var(--space-5);border-radius:var(--radius-sm);font:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard);border:1px solid #0000;font-size:15px;font-weight:500;line-height:20px;text-decoration:none;display:inline-flex;position:relative}.pyru-btn .pyru-icon{width:var(--icon-md);height:var(--icon-md);margin-inline:-2px}.pyru-btn--primary{background:var(--brand);color:var(--on-brand)}.pyru-btn--primary:hover,.pyru-btn--primary[data-state~=hover]{background:var(--brand-hover)}.pyru-btn--primary:active,.pyru-btn--primary[data-state~=active]{background:var(--brand-pressed)}.pyru-btn--secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.pyru-btn--secondary:hover,.pyru-btn--secondary[data-state~=hover]{background:var(--surface-hover);border-color:var(--ink-muted)}.pyru-btn--secondary:active,.pyru-btn--secondary[data-state~=active]{background:var(--surface-sunken)}.pyru-btn--ghost{color:var(--ink);background:0 0}.pyru-btn--ghost:hover,.pyru-btn--ghost[data-state~=hover]{background:var(--surface-hover)}.pyru-btn--ghost:active,.pyru-btn--ghost[data-state~=active]{background:var(--surface-sunken)}.pyru-btn--ghost.pyru-btn--brand{color:var(--brand-text)}.pyru-btn[data-state~=focus]{box-shadow:var(--focus-ring)}.pyru-btn:disabled,.pyru-btn[aria-disabled=true]{background:var(--surface-sunken);color:var(--ink-disabled);cursor:not-allowed;border-color:#0000}.pyru-btn--ghost:disabled,.pyru-btn--ghost[aria-disabled=true]{background:0 0}.pyru-btn[aria-busy=true]{cursor:progress}.pyru-btn[aria-busy=true] .pyru-icon{animation:.9s linear infinite pyru-spin}.pyru-btn--sm{height:var(--control-sm);padding:0 var(--space-3);font-size:14px}.pyru-btn--sm:after{content:"";position:absolute;inset:-4px 0}.pyru-btn--lg{height:var(--control-lg);padding:0 var(--space-6);font-size:16px}.pyru-btn--block{width:100%}.pyru-btn--icon{width:var(--control-md);padding:0}.pyru-btn--icon.pyru-btn--sm{width:var(--control-sm)}.pyru-btn--icon.pyru-btn--sm:after{inset:-4px}.pyru-btn__ext{opacity:.8;width:var(--icon-sm)!important;height:var(--icon-sm)!important}.pyru-link{color:var(--link);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}@supports (color:color-mix(in lab,red,red)){.pyru-link{-webkit-text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}}.pyru-link{transition:color var(--duration-fast) var(--easing-standard);border-radius:2px}.pyru-link:hover,.pyru-link[data-state~=hover]{color:var(--brand-hover);text-decoration-color:currentColor}.pyru-link--quiet{color:inherit;text-decoration:none}.pyru-link--quiet:hover{color:var(--brand-text);text-decoration:underline}.pyru-link--ext:after{content:"";vertical-align:-.05em;background:currentColor;width:.8em;height:.8em;margin-left:.2em;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E") 50%/contain no-repeat}.pyru-link--more{align-items:center;gap:var(--space-1);min-height:var(--touch-min);font-weight:500;text-decoration:none;display:inline-flex}.pyru-link--more:hover{text-underline-offset:3px;text-decoration:underline}.pyru-sticky-bar{z-index:var(--z-sticky);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--gutter-m) calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--surface-raised);border-top:1px solid var(--line);box-shadow:var(--elevation-md);display:flex;position:fixed;bottom:0;left:0;right:0}.pyru-sticky-bar__info{min-width:0;color:var(--ink-muted);flex-direction:column;flex:1;font-size:13px;line-height:18px;display:flex}.pyru-sticky-bar__info strong{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;line-height:20px;overflow:hidden}.pyru-sticky-bar .pyru-btn{flex:none}.pyru-sticky-bar--static{position:static}@media(min-width:768px){.pyru-sticky-bar:not(.pyru-sticky-bar--always){display:none}}.pyru-badge{align-items:center;gap:var(--space-1);min-height:24px;padding:2px var(--space-2);border-radius:var(--radius-xs);white-space:nowrap;background:var(--surface-sunken);color:var(--ink-muted);border:1px solid #0000;font-size:13px;font-weight:500;line-height:18px;display:inline-flex}.pyru-badge .pyru-icon{width:14px;height:14px}.pyru-badge--brand{background:var(--brand-soft);color:var(--brand-text)}.pyru-badge--success{background:var(--success-soft);color:var(--success)}.pyru-badge--warning{background:var(--warning-soft);color:var(--warning)}.pyru-badge--danger{background:var(--danger-soft);color:var(--danger)}.pyru-badge--outline{border-color:var(--line);color:var(--ink-muted);background:0 0}.pyru-badge--new{border-color:var(--brand-line);color:var(--brand-text);background:0 0}.pyru-badge--wrap{white-space:normal;text-align:left}.pyru-badge--community{background:var(--brand-soft);color:var(--brand-text)}.pyru-tag{border:1px solid var(--line);border-radius:var(--radius-full);min-height:24px;color:var(--ink-muted);white-space:nowrap;transition:border-color var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard);background:0 0;align-items:center;padding:2px 10px;font-size:13px;font-weight:500;line-height:18px;text-decoration:none;display:inline-flex;position:relative}a.pyru-tag:after{content:"";position:absolute;inset:-10px -2px}a.pyru-tag:hover,.pyru-tag[data-state~=hover]{border-color:var(--line-strong);color:var(--ink)}.pyru-tag--stack{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--surface-sunken);color:var(--ink-muted);border-color:#0000;font-size:12px;font-weight:400}.pyru-status{color:var(--ink);white-space:nowrap;min-height:24px;padding:2px var(--space-2) 2px 6px;border-radius:var(--radius-xs);background:var(--surface-sunken);align-items:center;gap:6px;font-size:13px;font-weight:500;line-height:18px;display:inline-flex}.pyru-status:before{content:"";border-radius:var(--radius-full);background:var(--ink-subtle);flex:none;width:8px;height:8px}.pyru-status--info:before{background:var(--brand)}.pyru-status--success:before{background:var(--success)}.pyru-status--warning:before{background:var(--warning)}.pyru-status--danger:before{background:var(--danger)}.pyru-status--muted{color:var(--ink-muted)}.pyru-status--muted:before{box-shadow:inset 0 0 0 1.5px var(--ink-subtle);background:0 0}.pyru-status--info{background:var(--brand-soft)}.pyru-status--success{background:var(--success-soft)}.pyru-status--warning{background:var(--warning-soft)}.pyru-status--danger{background:var(--danger-soft)}.pyru-ad-label{color:var(--ad-ink);flex-wrap:wrap;align-items:baseline;gap:0 6px;min-width:0;font-size:12px;font-weight:400;line-height:16px;display:flex}.pyru-ad-label__word{letter-spacing:.01em;font-weight:600}.pyru-ad-label>:not(:last-child):after{content:"·";margin-left:6px}.pyru-ad-label__erid{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:12px}.pyru-ad-label--block{padding:var(--space-2) var(--space-3);background:var(--ad-surface);border:1px solid var(--ad-line);border-radius:var(--radius-sm)}.pyru-doc{padding:3px var(--space-2);border-radius:var(--radius-xs);text-align:left;border:1px solid #0000;align-items:flex-start;gap:6px;font-size:13px;font-weight:500;line-height:18px;display:inline-flex}.pyru-doc .pyru-icon{width:16px;height:16px;margin-top:1px}.pyru-doc--license,.pyru-doc--diploma{background:var(--success-soft);color:var(--success)}.pyru-doc--cert{background:var(--surface-sunken);color:var(--ink-muted)}.pyru-doc--unknown{border:1px dashed var(--line-strong);color:var(--ink-muted);background:0 0}.pyru-ai{display:inline-block;position:relative}.pyru-ai>summary{cursor:pointer;align-items:center;gap:var(--space-1);min-height:24px;padding:2px var(--space-2);border-radius:var(--radius-xs);border:1px solid var(--line);color:var(--ink-muted);font-size:13px;font-weight:500;line-height:18px;list-style:none;display:inline-flex;position:relative}.pyru-ai>summary::-webkit-details-marker{display:none}.pyru-ai>summary:after{content:"";position:absolute;inset:-10px -2px}.pyru-ai>summary .pyru-icon{width:14px;height:14px}.pyru-ai>summary:hover{color:var(--ink);border-color:var(--line-strong)}.pyru-ai[open]>summary{color:var(--ink);border-color:var(--line-strong);background:var(--surface-hover)}.pyru-ai__panel{z-index:var(--z-dropdown);width:min(320px,100vw - 32px);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--elevation-md);color:var(--ink-muted);font-size:14px;line-height:20px;position:absolute;top:calc(100% + 8px);left:0}.pyru-ai__panel dl{gap:var(--space-2) var(--space-3);grid-template-columns:auto 1fr;margin:0;display:grid}.pyru-ai__panel dt{color:var(--ink-muted)}.pyru-ai__panel dd{color:var(--ink);margin:0}.pyru-ai__panel p{margin:0 0 var(--space-3)}.pyru-avatar{--size:var(--avatar-md);width:var(--size);height:var(--size);border-radius:var(--radius-full);background:var(--surface-sunken);color:var(--ink-muted);font-size:calc(var(--size) * .38);letter-spacing:.01em;box-shadow:inset 0 0 0 1px var(--line);flex:none;place-items:center;font-weight:600;line-height:1;display:inline-grid;overflow:hidden}.pyru-avatar img{object-fit:cover;width:100%;height:100%}.pyru-avatar--sm{--size:var(--avatar-sm);font-size:10px}.pyru-avatar--lg{--size:var(--avatar-lg)}.pyru-avatars{align-items:center;display:inline-flex}.pyru-avatars>.pyru-avatar{box-shadow:0 0 0 2px var(--surface)}.pyru-avatars>.pyru-avatar+.pyru-avatar{margin-left:-6px}.pyru-person{align-items:center;gap:var(--space-3);min-width:0;display:inline-flex}.pyru-person__text{flex-direction:column;min-width:0;display:flex}.pyru-person__role{color:var(--ink-muted);font-size:13px;line-height:18px}.pyru-person__name{color:var(--ink);font-size:15px;font-weight:500;line-height:20px;text-decoration:none}a.pyru-person__name:hover{color:var(--brand-text);text-underline-offset:3px;text-decoration:underline}.pyru-field{flex-direction:column;gap:6px;min-width:0;display:flex}.pyru-label{color:var(--ink);font-size:15px;font-weight:500;line-height:20px}.pyru-label__opt{color:var(--ink-muted);font-weight:400}.pyru-hint{color:var(--ink-muted);margin:0;font-size:13px;line-height:18px}.pyru-error-text{color:var(--danger);align-items:flex-start;gap:6px;margin:0;font-size:13px;font-weight:500;line-height:18px;display:flex}.pyru-error-text .pyru-icon{width:16px;height:16px;margin-top:1px}.pyru-input,.pyru-select,.pyru-textarea{width:100%;height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;transition:border-color var(--duration-fast) var(--easing-standard),box-shadow var(--duration-fast) var(--easing-standard);appearance:none;font-size:16px;line-height:24px}.pyru-textarea{height:auto;min-height:104px;padding:10px var(--space-3);resize:vertical}.pyru-input::placeholder,.pyru-textarea::placeholder{color:var(--ink-subtle);opacity:1}.pyru-input:hover,.pyru-select:hover,.pyru-textarea:hover,.pyru-input[data-state~=hover]{border-color:var(--ink-muted)}.pyru-input:focus-visible,.pyru-select:focus-visible,.pyru-textarea:focus-visible,.pyru-input[data-state~=focus]{border-color:var(--brand);box-shadow:var(--focus-ring)}.pyru-input[aria-invalid=true],.pyru-select[aria-invalid=true],.pyru-textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.pyru-input[aria-invalid=true]:focus-visible{box-shadow:var(--focus-ring)}.pyru-input:disabled,.pyru-select:disabled,.pyru-textarea:disabled{background:var(--surface-sunken);border-color:var(--line);color:var(--ink-disabled);cursor:not-allowed}.pyru-select-wrap{display:block;position:relative}.pyru-select{cursor:pointer;padding-right:40px}.pyru-select-wrap>.pyru-icon{right:var(--space-3);pointer-events:none;color:var(--ink-muted);position:absolute;top:50%;transform:translateY(-50%)}.pyru-input-group{gap:var(--space-2);flex-direction:column;display:flex}@container (min-width:480px){.pyru-input-group{flex-direction:row}.pyru-input-group .pyru-btn{flex:none}}.pyru-choice{align-items:flex-start;gap:var(--space-3);min-height:var(--touch-min);cursor:pointer;color:var(--ink);padding-block:10px;font-size:15px;line-height:22px;display:flex;position:relative}.pyru-choice--sm{color:var(--ink-muted);padding-block:12px;font-size:14px;line-height:20px}.pyru-choice--sm .pyru-check,.pyru-choice--sm .pyru-radio{margin-top:0}.pyru-choice a{color:var(--link);text-underline-offset:3px}.pyru-choice__hint{color:var(--ink-muted);font-size:13px;line-height:18px;display:block}.pyru-check,.pyru-radio{appearance:none;border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;width:20px;height:20px;transition:background-color var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard);flex:none;place-items:center;margin:1px 0 0;display:inline-grid}.pyru-check{border-radius:var(--radius-xs)}.pyru-radio{border-radius:var(--radius-full)}.pyru-check:hover,.pyru-radio:hover{border-color:var(--ink-muted)}.pyru-check:checked,.pyru-radio:checked{background:var(--brand);border-color:var(--brand)}.pyru-check:checked:before{content:"";background:var(--on-brand);width:14px;height:14px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat}.pyru-radio:checked:before{content:"";border-radius:var(--radius-full);background:var(--on-brand);width:8px;height:8px}.pyru-check[aria-invalid=true]{border-color:var(--danger)}.pyru-check:disabled,.pyru-radio:disabled{background:var(--surface-sunken);border-color:var(--line);cursor:not-allowed}.pyru-check:disabled:checked:before{background:var(--ink-disabled)}.pyru-check:disabled:checked{background:var(--surface-sunken)}.pyru-choice:has(:disabled){cursor:not-allowed;color:var(--ink-muted)}.pyru-switch{appearance:none;cursor:pointer;border-radius:var(--radius-full);background:var(--surface-sunken);width:40px;height:24px;box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:background-color var(--duration-fast) var(--easing-standard);flex:none;margin:0;position:relative}.pyru-switch:before{content:"";border-radius:var(--radius-full);background:var(--ink-muted);width:18px;height:18px;transition:transform var(--duration-fast) var(--easing-standard),background-color var(--duration-fast) var(--easing-standard);position:absolute;top:3px;left:3px}.pyru-switch:checked{background:var(--brand);box-shadow:none}.pyru-switch:checked:before{background:var(--on-brand);box-shadow:var(--elevation-sm);transform:translate(16px)}.pyru-switch:disabled{opacity:.5;cursor:not-allowed}.pyru-choice--switch{justify-content:space-between;align-items:center}.pyru-choice--switch.pyru-choice--lead{justify-content:flex-start}.pyru-segmented{border-radius:var(--radius-sm);background:var(--surface-sunken);border:1px solid var(--line);gap:2px;min-width:0;margin:0;padding:3px;display:inline-flex}.pyru-segmented--block{width:100%;display:flex}.pyru-segmented__opt{flex:1;display:flex;position:relative}.pyru-segmented__opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pyru-segmented__opt span{height:36px;padding:0 var(--space-4);color:var(--ink-muted);white-space:nowrap;transition:background-color var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard);border-radius:4px;flex:1;justify-content:center;align-items:center;gap:6px;font-size:15px;font-weight:500;line-height:20px;display:inline-flex}.pyru-segmented__opt:hover span{color:var(--ink)}.pyru-segmented__opt input:checked+span{background:var(--surface);color:var(--ink);box-shadow:var(--elevation-sm),0 0 0 1px var(--line)}.pyru-segmented__opt input:focus-visible+span{box-shadow:var(--focus-ring)}.pyru-segmented__opt .pyru-icon{width:18px;height:18px}.pyru-chips{gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.pyru-chip{display:inline-flex;position:relative}.pyru-chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pyru-chip>span{border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface);height:36px;color:var(--ink);white-space:nowrap;transition:background-color var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard);align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;line-height:20px;display:inline-flex}.pyru-chip:after{content:"";pointer-events:none;position:absolute;inset:-4px 0}.pyru-chip>span .pyru-icon{width:16px;height:16px;display:none}.pyru-chip:hover>span{background:var(--surface-hover)}.pyru-chip input:checked+span{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-text)}.pyru-chip input:checked+span .pyru-icon{display:inline-block}.pyru-chip input:focus-visible+span{box-shadow:var(--focus-ring)}.pyru-chip input:disabled+span{color:var(--ink-disabled);border-color:var(--line);background:var(--surface-sunken)}.pyru-form{gap:var(--space-5);flex-direction:column;display:flex;container-type:inline-size}.pyru-form__row{gap:var(--space-5);grid-template-columns:1fr;display:grid}@container (min-width:520px){.pyru-form__row--2{grid-template-columns:1fr 1fr}}.pyru-form__group{gap:var(--space-4);border:0;flex-direction:column;margin:0;padding:0;display:flex}.pyru-form__legend{margin-bottom:var(--space-2);padding:0;font-size:15px;font-weight:500;line-height:20px}.pyru-form__consents{padding-top:var(--space-1);border-top:1px solid var(--line);flex-direction:column;gap:0;display:flex}.pyru-form__actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.pyru-form__actions .pyru-hint{flex:200px}.pyru-form-done{align-items:flex-start;gap:var(--space-3);padding:var(--space-6);border-radius:var(--radius-md);background:var(--success-soft);flex-direction:column;display:flex}.pyru-form-done .pyru-icon{color:var(--success);width:28px;height:28px}.pyru-form-done h3{color:var(--ink);margin:0;font-size:18px;font-weight:600;line-height:26px}.pyru-form-done p{color:var(--ink);margin:0}.pyru-subscribe{gap:var(--space-4);flex-direction:column;display:flex;container-type:inline-size}.pyru-subscribe__row{gap:var(--space-2);flex-direction:column;display:flex}@container (min-width:480px){.pyru-subscribe__row{flex-direction:row}.pyru-subscribe__row .pyru-input{flex:1}.pyru-subscribe__row .pyru-btn{flex:none}}.pyru-subscribe__topics-label{color:var(--ink-muted);margin:0 0 var(--space-2);font-size:14px;line-height:20px}.pyru-subscribe--card{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.pyru-header{z-index:var(--z-header);background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.pyru-header__bar{align-items:center;gap:var(--space-2);height:var(--header-h-m);display:flex}.pyru-logo{min-height:var(--touch-min);color:var(--ink);border-radius:var(--radius-xs);flex:none;align-items:center;text-decoration:none;display:inline-flex}.pyru-logo__img{width:133px;height:27px;display:block}.pyru-logo__img--dark,[data-theme=dark] .pyru-logo__img--light{display:none}[data-theme=dark] .pyru-logo__img--dark{display:block}.pyru-header__nav{display:none}.pyru-header__actions{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.pyru-header__desktop-only{display:none!important}.pyru-nav{align-items:stretch;gap:2px;height:100%;margin:0;padding:0;list-style:none;display:flex}.pyru-nav>li{display:flex;position:relative}.pyru-nav__link{font:inherit;color:var(--ink-muted);cursor:pointer;white-space:nowrap;border-radius:var(--radius-sm);background:0 0;border:0;align-items:center;gap:4px;padding:0 10px;font-size:15px;font-weight:500;line-height:20px;text-decoration:none;display:inline-flex;position:relative}.pyru-nav__link .pyru-icon{width:16px;height:16px;transition:transform var(--duration-fast) var(--easing-standard)}.pyru-nav__link:hover,.pyru-nav__link[data-state~=hover],.pyru-nav__link[aria-current=page],.pyru-nav__link[aria-current=true]{color:var(--ink)}.pyru-nav__link[aria-current]:after{content:"";background:var(--brand);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.pyru-nav__link[aria-expanded=true]{color:var(--ink)}.pyru-nav__link[aria-expanded=true] .pyru-icon{transform:rotate(180deg)}@media(min-width:768px){.pyru-header__bar{height:var(--header-h);gap:var(--space-4)}}@media(min-width:1280px){.pyru-header__nav{margin-left:var(--space-4);align-self:stretch;display:flex}.pyru-header__mobile-only{display:none!important}.pyru-header__desktop-only{display:inline-flex!important}}.pyru-dropdown{z-index:var(--z-dropdown);min-width:240px;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--elevation-md);position:absolute;top:calc(100% + 4px);left:0}.pyru-dropdown--static{display:inline-block;position:static}.pyru-dropdown--hubs{width:560px;padding:var(--space-3);grid-template-columns:1fr 1fr;gap:2px;display:grid}.pyru-dropdown__footer{margin-top:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-1);border-top:1px solid var(--line);grid-column:1/-1}.pyru-menu-item{align-items:flex-start;gap:var(--space-3);width:100%;min-height:var(--touch-min);padding:10px var(--space-3);border-radius:var(--radius-sm);font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;font-size:15px;line-height:20px;text-decoration:none;display:flex}.pyru-menu-item:hover,.pyru-menu-item[data-state~=hover]{background:var(--surface-hover)}.pyru-menu-item[aria-checked=true],.pyru-menu-item[aria-current]{color:var(--brand-text)}.pyru-menu-item .pyru-icon{color:var(--ink-muted);margin-top:0}.pyru-menu-item[aria-checked=true] .pyru-icon{color:var(--brand-text)}.pyru-menu-item__text{flex-direction:column;gap:2px;min-width:0;display:flex}.pyru-menu-item__title{font-weight:500}.pyru-menu-item__desc{color:var(--ink-muted);font-size:13px;line-height:18px}.pyru-menu-item__check{margin-left:auto}.pyru-dropdown[role=menu] .pyru-menu-item{white-space:nowrap;align-items:center}.pyru-mobile-menu{inset:var(--header-h-m) 0 0 0;z-index:var(--z-header);overscroll-behavior:contain;background:var(--bg);padding:var(--space-2) var(--gutter-m) var(--space-8);flex-direction:column;display:flex;position:fixed;overflow-y:auto}.pyru-mobile-menu--static{position:static;inset:auto}.pyru-mobile-menu__list{margin:0;padding:0;list-style:none}.pyru-mobile-menu__list>li{border-bottom:1px solid var(--line)}.pyru-mobile-menu__link,.pyru-mobile-menu__list summary{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-3) 0;color:var(--ink);cursor:pointer;font-size:18px;font-weight:500;line-height:26px;text-decoration:none;list-style:none;display:flex}.pyru-mobile-menu__list summary::-webkit-details-marker{display:none}.pyru-mobile-menu__link[aria-current]{color:var(--brand-text)}.pyru-mobile-menu__link[aria-current]:after{content:"";border-radius:var(--radius-full);background:var(--brand);width:8px;height:8px}.pyru-mobile-menu__list summary .pyru-icon{color:var(--ink-muted);transition:transform var(--duration-base) var(--easing-standard)}.pyru-mobile-menu__list details[open] summary .pyru-icon{transform:rotate(180deg)}.pyru-mobile-menu__sub{margin:0 0 var(--space-3);grid-template-columns:1fr;padding:0;list-style:none;display:grid}.pyru-mobile-menu__sub a{min-height:var(--touch-min);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--ink-muted);align-items:center;font-size:16px;line-height:24px;text-decoration:none;display:flex}.pyru-mobile-menu__sub a:hover{background:var(--surface-hover);color:var(--ink)}.pyru-mobile-menu__footer{margin-top:var(--space-6);gap:var(--space-3);flex-direction:column;display:flex}.pyru-crumbs ol{flex-wrap:wrap;align-items:center;gap:2px;margin:0;padding:0;font-size:14px;line-height:20px;list-style:none;display:flex}.pyru-crumbs li{color:var(--ink-muted);align-items:center;gap:2px;display:inline-flex}.pyru-crumbs li+li:before{content:"";background:var(--ink-subtle);width:14px;height:14px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.pyru-crumbs a{color:var(--ink-muted);min-height:var(--touch-min);border-radius:var(--radius-xs);align-items:center;padding:0 2px;text-decoration:none;display:inline-flex}.pyru-crumbs a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.pyru-crumbs [aria-current=page]{color:var(--ink)}.pyru-crumbs .pyru-crumbs__back{display:none}@media(max-width:767.98px){.pyru-crumbs ol{display:none}.pyru-crumbs .pyru-crumbs__back{min-height:var(--touch-min);color:var(--ink-muted);align-items:center;gap:4px;font-size:14px;line-height:20px;text-decoration:none;display:inline-flex}.pyru-crumbs__back .pyru-icon{width:16px;height:16px}}.pyru-tabs{gap:var(--space-1);scrollbar-width:none;border-bottom:1px solid var(--line);margin:0;padding:0;list-style:none;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000)}.pyru-tabs::-webkit-scrollbar{display:none}@media(min-width:768px){.pyru-tabs{-webkit-mask-image:none;mask-image:none}}.pyru-tab{align-items:center;gap:var(--space-2);height:var(--control-md);padding:0 var(--space-3);font:inherit;color:var(--ink-muted);cursor:pointer;white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:0 0;border:0;flex:none;font-size:15px;font-weight:500;line-height:20px;text-decoration:none;display:inline-flex;position:relative}.pyru-tab:hover,.pyru-tab[data-state~=hover],.pyru-tab[aria-selected=true],.pyru-tab[aria-current=page]{color:var(--ink)}.pyru-tab[aria-selected=true]:after,.pyru-tab[aria-current=page]:after{content:"";left:var(--space-3);right:var(--space-3);background:var(--brand);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px}.pyru-tab__count{color:var(--ink-subtle);font-size:13px;font-weight:400;line-height:18px}.pyru-pagination{align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.pyru-pagination__progress{color:var(--ink-muted);margin:0;font-size:14px;line-height:20px}.pyru-pages{align-items:center;gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.pyru-page{min-width:var(--control-md);height:var(--control-md);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--ink);place-items:center;font-size:15px;font-weight:500;line-height:20px;text-decoration:none;display:inline-grid}.pyru-page:hover{background:var(--surface-hover)}.pyru-page[aria-current=page]{background:var(--brand-soft);color:var(--brand-text)}.pyru-page--gap{color:var(--ink-subtle);min-width:24px}.pyru-page[aria-disabled=true]{color:var(--ink-disabled);pointer-events:none}@media(max-width:767.98px){.pyru-pages .pyru-page--far{display:none}}.pyru-footer{background:var(--bg-subtle);border-top:1px solid var(--line);padding-block:var(--space-10) var(--space-8);color:var(--ink-muted);font-size:14px;line-height:20px}.pyru-footer__cols{gap:var(--space-8) var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));display:grid}.pyru-footer h2{margin:0 0 var(--space-3);color:var(--ink);font-size:14px;font-weight:600;line-height:20px}.pyru-footer ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pyru-footer ul a{min-height:36px;color:var(--ink-muted);align-items:center;text-decoration:none;display:inline-flex}.pyru-footer ul a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.pyru-footer__disclosure{margin:var(--space-8) 0 0;padding:var(--space-4);border-radius:var(--radius-md);background:var(--ad-surface);border:1px solid var(--ad-line);color:var(--ink-muted);max-width:72ch}.pyru-footer__disclosure strong{color:var(--ad-ink);font-weight:600}.pyru-footer__bottom{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.pyru-filterbar{gap:var(--space-3);flex-direction:column;display:flex}.pyru-filterbar__row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.pyru-filterbar__summary{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--ink-muted);flex-wrap:wrap;font-size:14px;line-height:20px;display:flex}.pyru-filterbar__count{color:var(--ink);font-weight:500}.pyru-filterbar__mobile{gap:var(--space-2);display:flex}.pyru-filterbar__desktop{display:none}@media(min-width:768px){.pyru-filterbar__mobile{display:none}.pyru-filterbar__desktop{display:flex}}.pyru-fchip{height:var(--control-sm);border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 10px 0 14px;font-size:14px;font-weight:500;line-height:20px;display:inline-flex;position:relative}.pyru-fchip:after{content:"";position:absolute;inset:-4px 0}.pyru-fchip .pyru-icon{width:16px;height:16px;color:var(--ink-muted)}.pyru-fchip:hover,.pyru-fchip[data-state~=hover]{background:var(--surface-hover)}.pyru-fchip[aria-expanded=true]{border-color:var(--ink-muted);background:var(--surface-hover)}.pyru-fchip--active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-text)}.pyru-fchip--active .pyru-icon{color:var(--brand-text)}.pyru-fchip--active:hover{background:var(--brand-soft)}.pyru-fchip__count{border-radius:var(--radius-full);background:var(--brand);min-width:20px;height:20px;color:var(--on-brand);place-items:center;padding:0 6px;font-size:12px;font-weight:600;line-height:16px;display:inline-grid}.pyru-fchip-wrap{display:inline-flex;position:relative}.pyru-filter-panel{width:300px;padding:var(--space-3) var(--space-2) var(--space-2)}.pyru-filter-panel .pyru-choice{padding-inline:var(--space-2);border-radius:var(--radius-sm)}.pyru-filter-panel .pyru-choice:hover{background:var(--surface-hover)}.pyru-filter-panel__foot{justify-content:space-between;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3) var(--space-2) 0;border-top:1px solid var(--line);display:flex}.pyru-toggle-filter{align-items:center;gap:var(--space-3);min-height:var(--touch-min);color:var(--ink);cursor:pointer;padding:0 var(--space-2);font-size:14px;line-height:20px;display:inline-flex}.pyru-sort{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:14px;line-height:20px;display:inline-flex}.pyru-sort .pyru-select{height:var(--control-sm);width:auto;padding-left:10px;font-size:14px}.pyru-sheet-backdrop{z-index:var(--z-overlay);background:var(--overlay);align-items:flex-end;display:flex;position:fixed;inset:0}.pyru-sheet-backdrop--static{height:100%;min-height:640px;position:relative;inset:auto}.pyru-sheet{width:100%;max-height:var(--sheet-max-h);background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--elevation-lg);flex-direction:column;display:flex}.pyru-sheet__handle{border-radius:var(--radius-full);background:var(--line-strong);width:36px;height:4px;margin:var(--space-2) 0 0;align-self:center}.pyru-sheet__head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--gutter-m);border-bottom:1px solid var(--line);display:flex}.pyru-sheet__title{margin:0;font-size:18px;font-weight:600;line-height:26px}.pyru-sheet__body{overscroll-behavior:contain;padding:var(--space-4) var(--gutter-m);gap:var(--space-6);flex-direction:column;flex:1;display:flex;overflow-y:auto}.pyru-sheet__section h3{margin:0 0 var(--space-3);font-size:15px;font-weight:600;line-height:20px}.pyru-sheet__foot{gap:var(--space-3);padding:var(--space-3) var(--gutter-m) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);display:flex}.pyru-sheet__foot .pyru-btn--primary{flex:1}.pyru-card{gap:var(--space-3);--card-pad:var(--space-4);padding:var(--card-pad);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);min-width:0;transition:border-color var(--duration-fast) var(--easing-standard),background-color var(--duration-fast) var(--easing-standard);flex-direction:column;display:flex;position:relative;container-type:inline-size}@media(min-width:768px){.pyru-card{--card-pad:var(--space-5)}}.pyru-card:has(.pyru-card__link:hover),.pyru-card[data-state~=hover]{border-color:var(--line-strong)}.pyru-card:has(.pyru-card__link:focus-visible){box-shadow:var(--focus-ring)}.pyru-card__link{color:inherit;text-decoration:none}.pyru-card__link:focus-visible{box-shadow:none}.pyru-card__link:after{content:"";border-radius:inherit;position:absolute;inset:0}.pyru-card__link:hover{color:var(--brand-text)}.pyru-card a:not(.pyru-card__link),.pyru-card button,.pyru-card details,.pyru-card .pyru-raise{z-index:1;position:relative}.pyru-card__top{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.pyru-card__kind{color:var(--ink-muted);align-items:center;gap:6px;font-size:13px;font-weight:500;line-height:18px;display:inline-flex}.pyru-card__kind .pyru-icon{width:16px;height:16px}.pyru-card__title{color:var(--ink);text-wrap:pretty;margin:0;font-size:18px;font-weight:600;line-height:26px}@container (min-width:420px){.pyru-card__title{font-size:21px;line-height:28px}}.pyru-card__text{color:var(--ink-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:15px;line-height:22px;display:-webkit-box;overflow:hidden}.pyru-card__foot{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-1);flex-wrap:wrap;margin-top:auto;display:flex}.pyru-card__tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.pyru-card__list{color:var(--ink);gap:var(--space-1);flex-direction:column;margin:0;padding-left:1.2em;font-size:15px;line-height:22px;display:flex}.pyru-card__list li::marker{color:var(--ink-subtle)}.pyru-card__divider{background:var(--line);border:0;height:1px;margin:0}.pyru-card>.pyru-card__divider{margin-top:auto}.pyru-card>:is(.pyru-badge,.pyru-doc,.pyru-status,.pyru-link--more),.pyru-event__body>:is(.pyru-badge,.pyru-link--more){align-self:flex-start}.pyru-card__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.pyru-card__actions .pyru-btn{flex:auto}@container (min-width:520px){.pyru-card__actions .pyru-btn{flex:none}}.pyru-card__media{aspect-ratio:16/9;margin:calc(-1 * var(--card-pad)) calc(-1 * var(--card-pad)) 0;border-radius:calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px) 0 0;background:var(--surface-sunken);color:var(--ink-subtle);place-items:center;display:grid;position:relative;overflow:hidden}.pyru-card__media>:is(img,.pyru-cover){width:100%;height:100%;position:absolute;inset:0}.pyru-card__media>img{object-fit:cover}.pyru-card__media>.pyru-cover{aspect-ratio:auto}.pyru-card__media-play{z-index:1;border-radius:var(--radius-full);background:var(--surface);width:48px;height:48px;color:var(--ink);box-shadow:var(--elevation-md);place-items:center;display:grid;position:relative}.pyru-card__duration{z-index:1;right:var(--space-2);bottom:var(--space-2);border-radius:var(--radius-xs);background:var(--surface);color:var(--ink);font-family:var(--font-mono);padding:2px 6px;font-size:12px;line-height:16px;position:absolute}@media(prefers-reduced-motion:no-preference){.pyru-card__media>img{transition:transform var(--duration-slow) var(--easing-standard)}.pyru-card:has(.pyru-card__link:hover) .pyru-card__media>img{transform:scale(1.03)}}.pyru-row{gap:var(--space-1);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:1fr;display:grid;position:relative}.pyru-row:first-child{border-top:1px solid var(--line)}.pyru-release-row{align-items:baseline;gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:auto auto 1fr;font-size:15px;line-height:22px;display:grid}.pyru-release-row:first-child{border-top:1px solid var(--line)}.pyru-release-row__pkg{font-family:var(--font-mono);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none}.pyru-release-row__pkg:hover{color:var(--brand-text);text-underline-offset:3px;text-decoration:underline}.pyru-release-row__ver{font-family:var(--font-mono);color:var(--ink-muted);font-size:13px}.pyru-release-row__text{color:var(--ink);min-width:0}@media(max-width:479.98px){.pyru-release-row{grid-template-columns:auto 1fr}.pyru-release-row__text{grid-column:1/-1}}.pyru-release__head{align-items:baseline;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.pyru-release__pkg{font-family:var(--font-mono);font-size:18px;font-weight:600;line-height:26px}.pyru-release__ver{font-family:var(--font-mono);color:var(--ink-muted);font-size:15px}.pyru-release__label{margin:0 0 var(--space-1);color:var(--ink-muted);font-size:13px;font-weight:600;line-height:18px}.pyru-cmd{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);background:var(--code-bg);border:1px solid var(--code-line);font-family:var(--font-mono);color:var(--code-ink);white-space:nowrap;padding:8px 8px 8px 12px;font-size:13px;line-height:20px;display:flex;overflow-x:auto}.pyru-cmd code{flex:1;min-width:0}.pyru-cmd:before{content:"$";color:var(--code-comment)}.pyru-event{align-items:flex-start;gap:var(--space-4);flex-direction:row}.pyru-event__date{width:64px;padding:var(--space-2) 0;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-subtle);flex-direction:column;flex:none;align-items:center;display:flex}.pyru-event__day{color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:600;line-height:32px}.pyru-event__month{color:var(--ink-muted);font-size:13px;font-weight:500;line-height:18px}.pyru-event__wd{color:var(--ink-muted);font-size:12px;line-height:16px}.pyru-event__body{gap:var(--space-3);flex-direction:column;flex:1;min-width:0;display:flex}.pyru-event__facts{gap:var(--space-1);color:var(--ink-muted);flex-direction:column;margin:0;padding:0;font-size:14px;line-height:20px;list-style:none;display:flex}.pyru-event__facts li{align-items:flex-start;gap:var(--space-2);display:flex}.pyru-event__facts .pyru-icon{width:16px;height:16px;color:var(--ink-subtle);margin-top:2px}.pyru-event__program{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pyru-event__talk{align-items:center;gap:var(--space-3);font-size:14px;line-height:20px;display:flex}.pyru-event__talk-time{font-family:var(--font-mono);color:var(--ink-muted);flex:none;width:40px;font-size:12px}.pyru-event__talk-title{color:var(--ink);font-weight:500}.pyru-event__talk-who{color:var(--ink-muted)}.pyru-event--past{background:var(--bg-subtle)}.pyru-event--cover{align-items:stretch;gap:var(--space-4);flex-direction:column}.pyru-event--cover>.pyru-event__body{flex:1}.pyru-event--cover .pyru-orgs{padding-top:var(--space-3);border-top:1px solid var(--line);margin-top:auto}@container (max-width:359.98px){.pyru-event__date{width:56px}.pyru-event__talk{flex-direction:column;align-items:flex-start;gap:0}.pyru-event__talk-time{width:auto}}.pyru-job__company{align-items:center;gap:var(--space-3);color:var(--ink-muted);font-size:14px;line-height:20px;display:flex}.pyru-job__org{flex-direction:column;min-width:0;display:flex}.pyru-job__name{color:var(--ink);font-weight:500}.pyru-salary{color:var(--ink);font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;line-height:24px}.pyru-salary--none{color:var(--ink-muted);font-size:15px;font-weight:400}.pyru-course--community{border-color:var(--brand-line)}.pyru-course__facts{gap:var(--space-1) var(--space-3);color:var(--ink-muted);flex-wrap:wrap;margin:0;padding:0;font-size:14px;line-height:20px;list-style:none;display:flex}.pyru-course__facts li{align-items:center;gap:6px;display:inline-flex}.pyru-course__facts .pyru-icon{width:16px;height:16px;color:var(--ink-subtle)}.pyru-course__learn-title{margin:0 0 var(--space-1);color:var(--ink-muted);font-size:13px;font-weight:600;line-height:18px}.pyru-course__people{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:13px;line-height:18px;display:flex}.pyru-price{flex-direction:column;gap:2px;display:flex}.pyru-price__main{color:var(--ink);font-variant-numeric:tabular-nums;font-size:18px;font-weight:600;line-height:26px}.pyru-price__sub{color:var(--ink-muted);font-size:14px;line-height:20px}.pyru-price__checked{color:var(--ink-subtle);font-size:12px;line-height:16px}.pyru-course--partner{background:var(--ad-surface);border-color:var(--ad-line)}.pyru-course--partner:has(.pyru-card__link:hover){border-color:var(--ad-ink)}.pyru-course--partner .pyru-card__divider{background:var(--ad-line)}.pyru-course--partner .pyru-btn--secondary{background:0 0}.pyru-course--partner .pyru-btn--secondary:hover{background:var(--ad-line)}.pyru-school-mini{align-items:center;gap:var(--space-2);color:var(--ink);font-size:14px;font-weight:500;line-height:20px;display:flex}.pyru-course--compact{gap:var(--space-2)}.pyru-course--compact .pyru-card__title{font-size:17px;line-height:24px}.pyru-school__head{align-items:center;gap:var(--space-3);display:flex}.pyru-school__legal{color:var(--ink-muted);font-size:13px;line-height:18px}.pyru-facts{gap:var(--space-3);grid-template-columns:1fr;margin:0;display:grid}.pyru-facts>div{gap:2px;display:grid}@container (min-width:480px){.pyru-facts>div{gap:var(--space-3);grid-template-columns:180px 1fr}}.pyru-facts dt{color:var(--ink-muted);font-size:14px;line-height:20px}.pyru-facts dd{color:var(--ink);align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;font-size:15px;line-height:22px;display:flex}.pyru-checked{color:var(--ink-muted);align-items:center;gap:6px;font-size:13px;line-height:18px;display:inline-flex}.pyru-checked .pyru-icon{width:16px;height:16px}.pyru-checked--stale{color:var(--warning)}.pyru-speaker{align-items:center;gap:var(--space-4);flex-direction:row}.pyru-speaker__body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.pyru-speaker__role{color:var(--ink-muted);margin:0;font-size:14px;line-height:20px}.pyru-speaker__stats{color:var(--ink-subtle);margin:0;font-size:13px;line-height:18px}.pyru-speaker--profile{gap:var(--space-4) var(--space-6);flex-wrap:wrap}.pyru-speaker--profile .pyru-speaker__body{flex:280px}.pyru-hub{gap:var(--space-2);min-height:152px}.pyru-hub__snippet{font-family:var(--font-mono);color:var(--code-keyword);white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:20px;overflow:hidden}.pyru-hub__snippet .tok-c{color:var(--code-comment)}.pyru-hub__snippet .tok-f{color:var(--code-function)}.pyru-hub__snippet .tok-s{color:var(--code-string)}.pyru-hub__snippet .tok-i{color:var(--code-ink)}.pyru-hub__snippet .tok-n{color:var(--code-number)}a.pyru-card{color:inherit;text-decoration:none}a.pyru-card:hover{border-color:var(--line-strong)}a.pyru-card:hover .pyru-hub__title,a.pyru-card:hover .pyru-card__title{color:var(--brand-text)}.pyru-hub__title{margin:0;font-size:18px;font-weight:600;line-height:26px}.pyru-hub__counts{color:var(--ink-muted);margin:auto 0 0;font-size:13px;line-height:18px}.pyru-b2b__icon{border-radius:var(--radius-sm);background:var(--brand-soft);width:40px;height:40px;color:var(--brand-text);place-items:center;display:grid}.pyru-cover{aspect-ratio:16/9;background:var(--bg);width:100%;color:var(--ink);font-family:var(--font-sans);--cover-accent:var(--brand);--cover-muted:var(--ink-muted);--cover-grid:var(--ink);display:block;position:relative;overflow:hidden;container-type:inline-size}@supports (color:color-mix(in lab,red,red)){.pyru-cover{--cover-grid:color-mix(in srgb, var(--ink) 6%, transparent)}}.pyru-cover__in{background-image:linear-gradient(var(--cover-grid) 1px,transparent 1px),linear-gradient(90deg,var(--cover-grid) 1px,transparent 1px);background-position:-1px -1px;background-size:4cqi 4cqi;flex-direction:column;justify-content:space-between;gap:3cqi;padding:5cqi 5.5cqi;display:flex;position:absolute;inset:0}.pyru-cover__row{justify-content:space-between;align-items:center;gap:3cqi;min-width:0;display:flex}.pyru-cover__row--end{align-items:flex-end}.pyru-cover__eyebrow{min-width:0;font-family:var(--font-mono);color:var(--cover-muted);white-space:nowrap;align-items:center;gap:1.6cqi;font-size:3cqi;line-height:1.3;display:inline-flex}.pyru-cover__eyebrow:before{content:"";background:var(--cover-accent);flex:none;width:1.8cqi;height:1.8cqi}.pyru-cover__site{font-family:var(--font-mono);color:var(--cover-muted);white-space:nowrap;font-size:2.8cqi;line-height:1.3}.pyru-cover__term{font-family:var(--font-mono);font-variant-ligatures:none}.pyru-cover__cmd{color:var(--cover-muted);white-space:nowrap;margin-bottom:1.2cqi;font-size:3.6cqi;line-height:1.4}.pyru-cover__prompt{color:var(--code-string)}.pyru-cover__out{letter-spacing:-.03em;color:var(--ink);white-space:nowrap;font-size:9.5cqi;font-weight:600;line-height:1}.pyru-cover__out b{color:var(--brand-text);font-weight:600}.pyru-cover__cursor{background:var(--brand);vertical-align:-.06em;width:.5em;height:.86em;margin-left:.14em;display:inline-block}.pyru-cover__code{font-family:var(--font-mono);font-variant-ligatures:none;color:var(--code-ink);white-space:pre;margin:0;font-size:4.3cqi;line-height:1.5;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.pyru-cover__code :is(.k,.kn,.kd,.kr,.ow){color:var(--code-keyword)}.pyru-cover__code :is(.nf,.nc,.fm){color:var(--code-function)}.pyru-cover__code :is(.nb,.nd,.bp){color:var(--code-builtin)}.pyru-cover__code :is(.s,.s1,.s2,.sa){color:var(--code-string)}.pyru-cover__code :is(.mi,.mf,.kc){color:var(--code-number)}.pyru-cover__code :is(.c,.c1){color:var(--code-comment);font-style:italic}.pyru-cover--podcast{background:var(--brand-pressed);color:var(--on-brand);--cover-accent:var(--on-brand);--cover-muted:var(--brand-line);--cover-grid:var(--on-brand)}@supports (color:color-mix(in lab,red,red)){.pyru-cover--podcast{--cover-grid:color-mix(in srgb, var(--on-brand) 8%, transparent)}}.pyru-cover__wave{align-items:center;gap:.9cqi;height:15cqi;display:flex}.pyru-cover__wave i{height:calc(var(--h,.5) * 100%);background:var(--brand-line);opacity:.45;flex:1}.pyru-cover__wave i.is-played{background:var(--on-brand);opacity:1}.pyru-cover__ep{flex-direction:column;gap:.6cqi;display:flex}.pyru-cover__ep-label{color:var(--cover-muted);font-size:3.2cqi;line-height:1.2}.pyru-cover__big{font-family:var(--font-mono);letter-spacing:-.03em;font-size:11cqi;font-weight:600;line-height:.95}.pyru-cover__meta{font-family:var(--font-mono);color:var(--cover-muted);font-size:3.4cqi;line-height:1.3}.pyru-cover--event{background:var(--brand);color:var(--on-brand);--cover-accent:var(--on-brand);--cover-muted:var(--on-brand);--cover-grid:var(--on-brand)}@supports (color:color-mix(in lab,red,red)){.pyru-cover--event{--cover-grid:color-mix(in srgb, var(--on-brand) 10%, transparent)}}.pyru-cover--event .pyru-cover__in:after{content:">>>";font-family:var(--font-mono);letter-spacing:-.08em;color:var(--on-brand);opacity:.1;pointer-events:none;font-size:24cqi;font-weight:600;line-height:1;position:absolute;top:50%;right:4cqi;transform:translateY(-58%)}.pyru-cover__num{font-family:var(--font-mono);letter-spacing:-.04em;font-size:19cqi;font-weight:600;line-height:.9}.pyru-cover__when{flex-direction:column;gap:.8cqi;min-width:0;display:flex}.pyru-cover__date{font-family:var(--font-mono);white-space:nowrap;font-size:4.2cqi;font-weight:600;line-height:1.2}.pyru-cover__place{font-size:3.3cqi;line-height:1.25}.pyru-cover__faces{flex:none;display:flex}.pyru-cover__face{background:var(--brand-pressed);width:11cqi;height:11cqi;color:var(--on-brand);box-shadow:0 0 0 .6cqi var(--brand);border-radius:50%;flex:none;place-items:center;margin-left:-2cqi;font-size:3.6cqi;font-weight:600;display:grid;overflow:hidden}.pyru-cover__face:first-child{margin-left:0}.pyru-cover__face img{object-fit:cover;width:100%;height:100%}.pyru-cover__talk{align-items:center;gap:4cqi;min-width:0;display:flex}.pyru-cover__face--lg{background:var(--surface-raised);width:20cqi;height:20cqi;color:var(--ink);box-shadow:0 0 0 .8cqi var(--brand);margin:0;font-size:6cqi}.pyru-cover__talk-text{flex-direction:column;gap:1.6cqi;min-width:0;display:flex}.pyru-cover__title{letter-spacing:-.01em;-webkit-line-clamp:3;text-wrap:balance;-webkit-box-orient:vertical;font-size:5.4cqi;font-weight:600;line-height:1.15;display:-webkit-box;overflow:hidden}.pyru-cover__who{color:var(--cover-muted);font-size:3.2cqi;line-height:1.3}@container (max-width:199.98px){.pyru-cover__eyebrow,.pyru-cover__site,.pyru-cover__cmd,.pyru-cover__place,.pyru-cover__who,.pyru-cover__meta,.pyru-cover__ep-label{visibility:hidden}}.pyru-logo-tile{--tile:32px;box-sizing:border-box;width:var(--tile);height:var(--tile);padding:calc(var(--tile) / 8);border-radius:var(--radius-sm);background:var(--logo-plate);box-shadow:inset 0 0 0 1px var(--line);font-size:calc(var(--tile) * .36);color:var(--ink-muted);flex:none;place-items:center;font-weight:600;line-height:1;text-decoration:none;display:inline-grid;position:relative;overflow:hidden}.pyru-logo-tile>img{object-fit:contain;width:100%;height:100%;display:block}.pyru-logo-tile--sm{--tile:24px;border-radius:var(--radius-xs)}.pyru-logo-tile--lg{--tile:40px}.pyru-logo-tile--xl{--tile:56px;border-radius:var(--radius-md)}.pyru-logo-tile--bleed{padding:0}.pyru-logo-tile--initials{background:var(--surface-sunken)}.pyru-logo-tile--own{background:var(--brand);color:var(--on-brand);box-shadow:none;font-family:var(--font-mono);border-radius:0}.pyru-orgs{align-items:center;gap:var(--space-3);min-width:0;display:flex}.pyru-orgs__logos{gap:var(--space-1);flex:none;display:flex}.pyru-orgs__text{min-width:0;color:var(--ink-muted);flex-direction:column;font-size:13px;line-height:18px;display:flex}.pyru-orgs__names{color:var(--ink);font-size:14px;font-weight:500;line-height:20px}.pyru-plate{background:var(--brand);min-width:24px;height:24px;color:var(--on-brand);font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;vertical-align:middle;border-radius:0;flex:none;justify-content:center;align-items:center;padding:0 6px;font-size:13px;font-weight:600;line-height:18px;display:inline-flex}.pyru-plate--sm{min-width:20px;height:20px;padding:0 4px;font-size:12px;line-height:16px}.pyru-plate--lg{min-width:32px;height:32px;padding:0 8px;font-size:16px;line-height:20px}.pyru-plate--soft{background:var(--brand-soft);color:var(--brand-text)}.pyru-plate--ink{background:var(--ink);color:var(--bg)}.pyru-eyebrow{align-items:center;gap:var(--space-2);font-family:var(--font-mono);color:var(--ink-muted);font-size:13px;font-weight:400;line-height:18px;text-decoration:none;display:inline-flex}.pyru-eyebrow:before{content:"";background:var(--brand);flex:none;width:8px;height:8px}a.pyru-eyebrow{color:var(--brand-text);min-height:24px}a.pyru-eyebrow:hover{text-underline-offset:3px;text-decoration:underline}.pyru-section-head__titles{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.pyru-section-head__title{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.pyru-section-head--split{align-items:flex-end}.pyru-section-head__tools{align-items:center;gap:var(--space-3);flex:none;display:flex}@media(max-width:767.98px){.pyru-section-head{flex-wrap:wrap}.pyru-section-head__more{font-size:14px}}.pyru-hero{padding-block:var(--space-8) var(--space-10);border-bottom:1px solid var(--line)}.pyru-hero__grid{gap:var(--space-8);display:grid}.pyru-hero__main{gap:var(--space-5);flex-direction:column;min-width:0;display:flex}.pyru-hero__title{letter-spacing:-.02em;color:var(--ink);text-wrap:balance;margin:0;font-size:34px;font-weight:600;line-height:40px}.pyru-hero__lead{max-width:56ch;color:var(--ink-muted);margin:0;font-size:17px;line-height:26px}.pyru-hero__aside{min-width:0}@media(min-width:768px){.pyru-hero__title{letter-spacing:-.025em;font-size:56px;line-height:60px}.pyru-hero__lead{font-size:20px;line-height:30px}}@media(min-width:1280px){.pyru-hero{padding-block:var(--space-16) var(--space-20)}.pyru-hero__grid{gap:var(--space-16);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}}.pyru-stats{gap:var(--space-4) var(--space-8);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.pyru-stat{flex-direction:column;gap:2px;display:flex}.pyru-stat__value{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:24px;font-weight:600;line-height:32px}.pyru-stat__label{color:var(--ink-muted);font-size:13px;line-height:18px}@media(min-width:768px){.pyru-stat__value{font-size:28px;line-height:36px}}.pyru-feature{gap:var(--space-4)}@media(min-width:768px){.pyru-feature{--card-pad:var(--space-6)}}.pyru-feature__top{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.pyru-feature__top .pyru-eyebrow{white-space:nowrap}.pyru-feature__when{font-family:var(--font-mono);color:var(--ink);white-space:nowrap;margin:0;font-size:14px;line-height:20px}.pyru-feature__when b{font-weight:600}.pyru-feature__title{text-wrap:balance;margin:0;font-size:21px;font-weight:600;line-height:28px}.pyru-feature__speakers{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pyru-feature__speaker{gap:0 var(--space-3);grid-template-columns:auto 1fr;align-items:center;display:grid}.pyru-feature__talk{color:var(--ink);font-size:15px;font-weight:500;line-height:20px}.pyru-feature__who{color:var(--ink-muted);font-size:13px;line-height:18px}.pyru-feed{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.pyru-feed__row{gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:auto 1fr;grid-template-areas:"date kind""title title""meta meta";display:grid;position:relative}.pyru-feed__row:has(.pyru-feed__title:hover){background:var(--surface-hover)}.pyru-feed__date{font-family:var(--font-mono);color:var(--ink-subtle);font-variant-numeric:tabular-nums;grid-area:date;font-size:13px;line-height:20px}.pyru-feed__kind{color:var(--ink-muted);grid-area:kind;align-items:center;gap:6px;font-size:13px;line-height:20px;display:inline-flex}.pyru-feed__kind .pyru-icon{width:16px;height:16px}.pyru-feed__title{color:var(--ink);grid-area:title;font-size:16px;font-weight:500;line-height:24px;text-decoration:none}.pyru-feed__title:after{content:"";position:absolute;inset:0}.pyru-feed__title:hover{color:var(--brand-text)}.pyru-feed__title:focus-visible{box-shadow:none}.pyru-feed__row:has(.pyru-feed__title:focus-visible){box-shadow:var(--focus-ring)}.pyru-feed__meta{align-items:center;gap:var(--space-2) var(--space-3);color:var(--ink-muted);flex-wrap:wrap;grid-area:meta;font-size:13px;line-height:20px;display:flex}.pyru-feed__meta a,.pyru-feed__meta .pyru-badge{z-index:1;position:relative}@media(min-width:768px){.pyru-feed__row{padding:var(--space-3) var(--space-2);grid-template-columns:56px 120px minmax(0,1fr) auto;grid-template-areas:"date kind title meta";align-items:baseline}.pyru-feed__meta{justify-content:flex-end}}.pyru-segmented--icons .pyru-segmented__opt span{padding:0 var(--space-3)}.pyru-rail{gap:var(--space-3);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter-m);margin-inline:calc(-1 * var(--gutter-m));padding:0 var(--gutter-m) var(--space-2);scrollbar-width:thin;grid-auto-columns:minmax(272px,86%);grid-auto-flow:column;display:grid;overflow-x:auto}.pyru-rail>*{scroll-snap-align:start}@media(min-width:768px){.pyru-rail{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(min(100%,288px),1fr));grid-auto-columns:auto;grid-auto-flow:row;margin-inline:0;padding:0;overflow:visible}}@media(min-width:1280px){.pyru-rail--4{grid-template-columns:repeat(4,minmax(0,1fr))}.pyru-rail--3{grid-template-columns:repeat(3,minmax(0,1fr))}}.pyru-code{border:1px solid var(--code-line);border-radius:var(--radius-md);background:var(--code-bg);min-width:0;color:var(--code-ink);margin:0;overflow:hidden}.pyru-code__head{align-items:center;gap:var(--space-2) var(--space-3);padding:6px 6px 6px var(--space-4);border-bottom:1px solid var(--code-line);color:var(--ink-muted);flex-wrap:wrap;font-size:13px;line-height:18px;display:flex}.pyru-code__file{font-family:var(--font-mono);color:var(--code-ink);font-size:13px}.pyru-code__lang{color:var(--ink-muted)}.pyru-code__verified{color:var(--success);align-items:center;gap:4px;font-weight:500;display:inline-flex}.pyru-code__verified .pyru-icon{width:16px;height:16px}.pyru-code__spacer{flex:1}.pyru-code__copy{border-radius:var(--radius-xs);height:32px;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.pyru-code__copy:after{content:"";position:absolute;inset:-6px 0}.pyru-code__copy .pyru-icon{width:16px;height:16px}.pyru-code__copy:hover{background:var(--surface-hover);color:var(--ink)}.pyru-code__copy[data-copied=true]{color:var(--success)}.pyru-code pre{padding:var(--space-4);tab-size:4;font-family:var(--font-mono);font-variant-ligatures:none;margin:0;font-size:14px;line-height:22px;overflow-x:auto}.pyru-code pre:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.pyru-code--lines pre{counter-reset:ln;padding-left:0}.pyru-code--lines .line{counter-increment:ln;padding-left:var(--space-4);display:block}.pyru-code--lines .line:before{content:counter(ln);width:2.5ch;margin-right:var(--space-4);text-align:right;color:var(--code-comment);-webkit-user-select:none;user-select:none;display:inline-block}.pyru-code .hll{background:var(--brand-soft);margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4);display:block}.pyru-code__foot{padding:var(--space-2) var(--space-4);border-top:1px solid var(--code-line);color:var(--ink-muted);font-size:13px;line-height:18px}.pyru-code .k,.pyru-code .kn,.pyru-code .kd,.pyru-code .kr,.pyru-code .ow,.pyru-code .kp{color:var(--code-keyword)}.pyru-code .kc,.pyru-code .m,.pyru-code .mi,.pyru-code .mf,.pyru-code .mh,.pyru-code .mo{color:var(--code-number)}.pyru-code .s,.pyru-code .s1,.pyru-code .s2,.pyru-code .sa,.pyru-code .sb,.pyru-code .sd,.pyru-code .si,.pyru-code .se,.pyru-code .sr{color:var(--code-string)}.pyru-code .si{font-weight:600}.pyru-code .nf,.pyru-code .fm,.pyru-code .nc,.pyru-code .nn{color:var(--code-function)}.pyru-code .nb,.pyru-code .bp,.pyru-code .nd,.pyru-code .ne{color:var(--code-builtin)}.pyru-code .c,.pyru-code .c1,.pyru-code .cm,.pyru-code .ch,.pyru-code .cs{color:var(--code-comment);font-style:italic}.pyru-code .gp{color:var(--code-comment);-webkit-user-select:none;user-select:none}.pyru-code .go{color:var(--ink-muted)}.pyru-code .err{color:var(--danger)}.pyru-prose{max-width:var(--measure);color:var(--ink);font-size:17px;line-height:28px}@media(min-width:768px){.pyru-prose{font-size:18px;line-height:30px}}.pyru-prose>*{margin:0}.pyru-prose>*+*{margin-top:1em}.pyru-prose h2{letter-spacing:-.01em;scroll-margin-top:calc(var(--header-h) + var(--space-4));margin-top:1.8em;font-size:22px;font-weight:600;line-height:30px}.pyru-prose h3{scroll-margin-top:calc(var(--header-h) + var(--space-4));margin-top:1.5em;font-size:18px;font-weight:600;line-height:26px}@media(min-width:768px){.pyru-prose h2{font-size:28px;line-height:36px}.pyru-prose h3{font-size:21px;line-height:28px}}.pyru-prose h2+*,.pyru-prose h3+*{margin-top:.6em}.pyru-prose a{color:var(--link);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.pyru-prose a:hover{color:var(--brand-hover)}.pyru-prose strong{font-weight:600}.pyru-prose ul,.pyru-prose ol{padding-left:1.4em}.pyru-prose li+li{margin-top:.35em}.pyru-prose li::marker{color:var(--ink-subtle)}.pyru-prose :not(pre)>code,.pyru-code-inline{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--code-bg);border:1px solid var(--code-line);color:var(--code-ink);overflow-wrap:anywhere;padding:.1em .35em;font-size:.86em}.pyru-prose blockquote{padding-left:var(--space-4);border-left:3px solid var(--line-strong);color:var(--ink-muted)}.pyru-prose hr{background:var(--line);border:0;height:1px;margin-block:2em}.pyru-prose figure figcaption{margin-top:var(--space-2);color:var(--ink-muted);font-size:14px;line-height:20px}.pyru-prose .pyru-code,.pyru-prose .pyru-callout,.pyru-prose .pyru-table-wrap,.pyru-prose .pyru-video{margin-top:1.5em;margin-bottom:.5em;font-size:16px;line-height:24px}.pyru-table-wrap{border:1px solid var(--line);border-radius:var(--radius-md);overflow-x:auto}.pyru-table{border-collapse:collapse;width:100%;font-size:15px;line-height:22px}.pyru-table th,.pyru-table td{padding:10px var(--space-4);text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.pyru-table th{color:var(--ink-muted);background:var(--bg-subtle);white-space:nowrap;font-size:14px;font-weight:600}.pyru-table tr:last-child td{border-bottom:0}.pyru-table td code{font-family:var(--font-mono);white-space:nowrap;font-size:.9em}.pyru-callout{gap:2px var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--info-soft);color:var(--ink);grid-template-columns:auto 1fr;font-size:16px;line-height:24px;display:grid}.pyru-callout>.pyru-icon{color:var(--info);grid-row:span 2;margin-top:2px}.pyru-callout__title{color:var(--ink);margin:0;font-weight:600}.pyru-callout__body{color:var(--ink);margin:0}.pyru-callout__body>*{margin:0}.pyru-callout__body>*+*{margin-top:.5em}.pyru-callout__body a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.pyru-callout--outdated{background:var(--warning-soft)}.pyru-callout--outdated>.pyru-icon{color:var(--warning)}.pyru-callout--danger{background:var(--danger-soft)}.pyru-callout--danger>.pyru-icon{color:var(--danger)}.pyru-callout--compact{padding:var(--space-3) var(--space-4);align-items:center;font-size:15px;line-height:22px}.pyru-callout--compact>.pyru-icon{grid-row:auto;margin-top:0}.pyru-toc{font-size:14px;line-height:20px}.pyru-toc__title{margin:0 0 var(--space-2);color:var(--ink-muted);font-size:13px;font-weight:600;line-height:18px}.pyru-toc ol{border-left:1px solid var(--line);margin:0;padding:0;list-style:none}.pyru-toc li a{padding:6px var(--space-3);color:var(--ink-muted);border-left:2px solid #0000;margin-left:-1px;text-decoration:none;display:block;position:relative}.pyru-toc li a:hover{color:var(--ink)}.pyru-toc li a[aria-current=true]{color:var(--brand-text);border-left-color:var(--brand);font-weight:500}.pyru-toc li li a{padding-left:var(--space-6)}.pyru-toc ol ol{border-left:0}.pyru-toc--sticky{top:calc(var(--header-h) + var(--space-6));width:var(--toc-w);max-height:calc(100vh - var(--header-h) - var(--space-12));position:sticky;overflow-y:auto}.pyru-toc-m{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.pyru-toc-m>summary{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--control-md);padding:0 var(--space-4);cursor:pointer;font-size:15px;font-weight:500;line-height:20px;list-style:none;display:flex}.pyru-toc-m>summary::-webkit-details-marker{display:none}.pyru-toc-m>summary .pyru-icon{color:var(--ink-muted);transition:transform var(--duration-base) var(--easing-standard)}.pyru-toc-m[open]>summary .pyru-icon{transform:rotate(180deg)}.pyru-toc-m>summary span{color:var(--ink-muted);margin-right:auto;font-weight:400}.pyru-toc-m .pyru-toc{padding:0 var(--space-4) var(--space-3)}.pyru-byline{gap:var(--space-4);padding-block:var(--space-4);border-block:1px solid var(--line);flex-direction:column;display:flex}.pyru-byline__people{gap:var(--space-4) var(--space-8);flex-wrap:wrap;display:flex}.pyru-byline__meta{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.pyru-video{margin:0}.pyru-video__frame{aspect-ratio:16/9;border-radius:var(--radius-md);background:var(--surface-sunken);border:1px solid var(--line);place-items:center;display:grid;position:relative;overflow:hidden}.pyru-video__frame iframe,.pyru-video__frame img{object-fit:cover;border:0;width:100%;height:100%;position:absolute;inset:0}.pyru-video__play{align-items:center;gap:var(--space-2);height:var(--control-lg);padding:0 var(--space-5) 0 var(--space-4);border-radius:var(--radius-full);cursor:pointer;background:var(--brand);color:var(--on-brand);font:inherit;box-shadow:var(--elevation-md);border:0;font-size:15px;font-weight:500;display:inline-flex;position:relative}.pyru-video__play:hover{background:var(--brand-hover)}.pyru-video__play .pyru-icon{fill:currentColor}.pyru-video__note{left:var(--space-3);bottom:var(--space-3);right:var(--space-3);color:var(--ink-muted);text-align:center;font-size:12px;line-height:16px;position:absolute}.pyru-video figcaption{margin-top:var(--space-2);gap:var(--space-1) var(--space-3);color:var(--ink-muted);flex-wrap:wrap;font-size:14px;line-height:20px;display:flex}.pyru-timecodes{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pyru-timecode{align-items:baseline;gap:var(--space-3);width:100%;min-height:var(--touch-min);padding:10px var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font:inherit;color:var(--ink);text-align:left;background:0 0;border:0;font-size:15px;line-height:22px;display:flex}.pyru-timecode:hover{background:var(--surface-hover)}.pyru-timecode__t{font-family:var(--font-mono);color:var(--brand-text);font-variant-numeric:tabular-nums;flex:none;min-width:6ch;font-size:13px}.pyru-timecode[aria-current=true]{background:var(--brand-soft)}.pyru-timecode[aria-current=true] .pyru-timecode__label{font-weight:500}.pyru-player{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:auto 1fr;display:grid}.pyru-player__play{border-radius:var(--radius-full);cursor:pointer;background:var(--brand);width:52px;height:52px;color:var(--on-brand);border:0;grid-row:span 2;place-items:center;display:grid}.pyru-player__play:hover{background:var(--brand-hover)}.pyru-player__play .pyru-icon{fill:currentColor;width:22px;height:22px}.pyru-player__title{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:15px;font-weight:600;line-height:20px;overflow:hidden}.pyru-player__sub{color:var(--ink-muted);font-weight:400}.pyru-player__track{align-items:center;gap:var(--space-3);min-width:0;display:flex}.pyru-player__time{font-family:var(--font-mono);color:var(--ink-muted);font-variant-numeric:tabular-nums;flex:none;font-size:12px;line-height:16px}.pyru-player__controls{justify-content:space-between;align-items:center;gap:var(--space-2);grid-column:1/-1;display:flex}.pyru-player__controls .pyru-btn{color:var(--ink-muted)}.pyru-player__speed{font-family:var(--font-mono);font-size:13px}.pyru-range{appearance:none;cursor:pointer;--p:30%;background:0 0;flex:1;min-width:0;height:24px;margin:0}.pyru-range::-webkit-slider-runnable-track{border-radius:var(--radius-full);background:linear-gradient(90deg,var(--brand) var(--p),var(--line) var(--p));height:4px}.pyru-range::-moz-range-track{border-radius:var(--radius-full);background:var(--line);height:4px}.pyru-range::-moz-range-progress{border-radius:var(--radius-full);background:var(--brand);height:4px}.pyru-range::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);background:var(--brand);border:2px solid var(--surface);width:14px;height:14px;margin-top:-5px}.pyru-range::-moz-range-thumb{border-radius:var(--radius-full);background:var(--brand);border:2px solid var(--surface);width:12px;height:12px}.pyru-range:focus-visible{box-shadow:none}.pyru-range:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus-ring)}.pyru-player-mini{left:var(--space-2);right:var(--space-2);bottom:calc(var(--space-2) + env(safe-area-inset-bottom));z-index:var(--z-sticky);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-2);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--elevation-lg);grid-template-columns:auto 1fr auto;display:grid;position:fixed;overflow:hidden}.pyru-player-mini--static{position:relative;bottom:auto;left:auto;right:auto}.pyru-player-mini__progress{background:var(--line);height:3px;position:absolute;top:0;left:0;right:0}.pyru-player-mini__progress>span{background:var(--brand);height:100%;display:block}.pyru-player-mini .pyru-player__play{grid-row:auto;width:44px;height:44px}.pyru-player-mini .pyru-player__play .pyru-icon{width:18px;height:18px}.pyru-player-mini__text{flex-direction:column;min-width:0;display:flex}.pyru-player-mini__text strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:20px;overflow:hidden}.pyru-player-mini__text span{font-family:var(--font-mono);color:var(--ink-muted);font-size:12px;line-height:16px}.pyru-accordion{border-top:1px solid var(--line)}.pyru-accordion>details{border-bottom:1px solid var(--line)}.pyru-accordion summary{align-items:flex-start;gap:var(--space-3);min-height:56px;padding:var(--space-4) 0;cursor:pointer;color:var(--ink);font-size:17px;font-weight:500;line-height:24px;list-style:none;display:flex}.pyru-accordion summary::-webkit-details-marker{display:none}.pyru-accordion summary:hover{color:var(--brand-text)}.pyru-accordion__num{font-family:var(--font-mono);color:var(--ink-subtle);min-width:2ch;font-size:13px;line-height:24px}.pyru-accordion__title{flex:1}.pyru-accordion__meta{color:var(--ink-muted);white-space:nowrap;font-size:14px;font-weight:400;line-height:24px}.pyru-accordion summary>.pyru-icon{color:var(--ink-muted);transition:transform var(--duration-base) var(--easing-standard);margin-top:2px}.pyru-accordion details[open]>summary>.pyru-icon{transform:rotate(180deg)}.pyru-accordion__body{padding:0 0 var(--space-5) calc(2ch + var(--space-3));color:var(--ink-muted);font-size:15px;line-height:24px}.pyru-accordion__body>*{margin:0}.pyru-accordion__body>*+*{margin-top:var(--space-2)}.pyru-accordion__body ul{padding-left:1.2em}.pyru-accordion--plain .pyru-accordion__body{padding-left:0}.pyru-skeleton{border-radius:var(--radius-xs);background:var(--skeleton);background-image:linear-gradient(90deg,var(--skeleton) 0,var(--skeleton-shine) 40%,var(--skeleton) 80%);background-size:300% 100%;animation:1.4s ease-in-out infinite pyru-shimmer;display:block}.pyru-skeleton--text{height:14px;margin-block:5px}.pyru-skeleton--title{width:80%;height:20px;margin-block:3px}.pyru-skeleton--btn{height:var(--control-md);border-radius:var(--radius-sm)}.pyru-skeleton--circle{border-radius:var(--radius-full)}.pyru-skeleton--media{aspect-ratio:16/9;border-radius:var(--radius-sm)}@keyframes pyru-shimmer{0%{background-position:100% 0}to{background-position:-50% 0}}.pyru-card--skeleton{pointer-events:none}.pyru-empty{text-align:center;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);border:1px dashed var(--line-strong);border-radius:var(--radius-md);flex-direction:column;display:flex}.pyru-empty__icon{border-radius:var(--radius-full);background:var(--surface-sunken);width:56px;height:56px;color:var(--ink-muted);place-items:center;display:grid}.pyru-empty__icon .pyru-icon{width:24px;height:24px}.pyru-empty__title{color:var(--ink);margin:0;font-size:18px;font-weight:600;line-height:26px}.pyru-empty__text{max-width:44ch;color:var(--ink-muted);margin:0;font-size:15px;line-height:22px}.pyru-empty__actions{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.pyru-empty--error .pyru-empty__icon{background:var(--danger-soft);color:var(--danger)}.pyru-alert{gap:2px var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--info-soft);color:var(--ink);grid-template-columns:auto 1fr;align-items:start;font-size:15px;line-height:22px;display:grid}.pyru-alert>.pyru-icon{color:var(--info);margin-top:1px}.pyru-alert__title{margin:0;font-weight:600}.pyru-alert__text{grid-column:2;margin:0}.pyru-alert__actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;grid-column:2;display:flex}.pyru-alert--danger{background:var(--danger-soft)}.pyru-alert--danger>.pyru-icon{color:var(--danger)}.pyru-alert--success{background:var(--success-soft)}.pyru-alert--success>.pyru-icon{color:var(--success)}.pyru-alert--warning{background:var(--warning-soft)}.pyru-alert--warning>.pyru-icon{color:var(--warning)}.pyru-toasts{z-index:var(--z-toast);left:var(--space-4);right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));gap:var(--space-2);pointer-events:none;flex-direction:column;display:flex;position:fixed}@media(min-width:768px){.pyru-toasts{left:auto;right:var(--space-6);bottom:var(--space-6);width:400px}}.pyru-toasts--static{width:auto;position:static}.pyru-toast{pointer-events:auto;align-items:start;gap:var(--space-3);padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--elevation-lg);color:var(--ink);animation:pyru-toast-in var(--duration-base) var(--easing-standard);grid-template-columns:auto 1fr auto;font-size:15px;line-height:22px;display:grid}.pyru-toast>.pyru-icon{margin-top:1px}.pyru-toast--success>.pyru-icon{color:var(--success)}.pyru-toast--danger>.pyru-icon{color:var(--danger)}.pyru-toast--info>.pyru-icon{color:var(--info)}.pyru-toast__title{margin:0;font-weight:600}.pyru-toast__text{color:var(--ink-muted);margin:0;font-size:14px;line-height:20px}.pyru-toast__text a{color:var(--link)}.pyru-toast .pyru-btn--icon{color:var(--ink-muted);margin:-8px 0}@keyframes pyru-toast-in{0%{opacity:0;transform:translateY(8px)}}.pyru-modal{width:min(var(--modal-w),calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-8));border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:var(--elevation-lg);border:0;flex-direction:column;padding:0;display:flex;overflow:hidden}.pyru-modal:not([open]){display:none}.pyru-modal::backdrop{background:var(--overlay)}.pyru-modal__head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-3) var(--space-3) var(--space-6);display:flex}.pyru-modal__title{margin:0;font-size:21px;font-weight:600;line-height:28px}.pyru-modal__sub{margin:var(--space-1) 0 0;color:var(--ink-muted);font-size:14px;line-height:20px}.pyru-modal__body{padding:var(--space-2) var(--space-6) var(--space-6);overflow-y:auto}.pyru-modal__foot{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--line);background:var(--bg-subtle);flex-wrap:wrap;display:flex}@media(max-width:767.98px){.pyru-modal{border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0}.pyru-modal__head{padding:var(--space-3) var(--space-2) var(--space-2) var(--gutter-m);border-bottom:1px solid var(--line)}.pyru-modal__title{font-size:18px;line-height:26px}.pyru-modal__body{padding:var(--space-4) var(--gutter-m) var(--space-8);flex:1}}.pyru-modal-stage{padding:var(--space-8) var(--space-4);background:var(--overlay);place-items:center;min-height:100%;display:grid;position:relative}.pyru-modal-stage .pyru-modal{display:flex;position:static}.pyru-cookie{z-index:var(--z-cookie);left:var(--space-2);right:var(--space-2);bottom:calc(var(--space-2) + env(safe-area-inset-bottom));gap:var(--space-4);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--elevation-lg);color:var(--ink-muted);flex-direction:column;font-size:14px;line-height:20px;display:flex;position:fixed}@media(min-width:768px){.pyru-cookie{left:var(--space-6);right:auto;bottom:var(--space-6);width:440px;padding:var(--space-5)}}.pyru-cookie--static{width:auto;max-width:440px;position:static}.pyru-cookie__title{color:var(--ink);margin:0;font-size:16px;font-weight:600;line-height:24px}.pyru-cookie p{margin:0}.pyru-cookie__actions{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.pyru-cookie__actions .pyru-btn{width:100%}.pyru-cookie__actions .pyru-btn--ghost{grid-column:1/-1}.pyru-cookie__prefs{border-top:1px solid var(--line);flex-direction:column;display:flex}.pyru-cookie__prefs .pyru-choice{border-bottom:1px solid var(--line);color:var(--ink)}.pyru-theme-btn .pyru-icon--light,.pyru-theme-btn .pyru-icon--dark,[data-theme-pref=light] .pyru-theme-btn .pyru-icon--system,[data-theme-pref=dark] .pyru-theme-btn .pyru-icon--system{display:none}[data-theme-pref=light] .pyru-theme-btn .pyru-icon--light,[data-theme-pref=dark] .pyru-theme-btn .pyru-icon--dark{display:inline-block}}@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.inset-x-0{inset-inline:0}.top-4{top:calc(var(--spacing) * 4)}.top-\[49px\]{top:49px}.top-\[50\%\]{top:50%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.left-2{left:calc(var(--spacing) * 2)}.left-\[50\%\]{left:50%}.z-40{z-index:40}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-1{margin-block:var(--spacing)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[1px\]{height:1px}.h-\[640px\]{height:640px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-\[60px\]{min-height:60px}.w-2{width:calc(var(--spacing) * 2)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-9{width:calc(var(--spacing) * 9)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-\[1px\]{width:1px}.w-full{width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.list-decimal{list-style-type:decimal}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_2fr_100px\]{grid-template-columns:1fr 2fr 100px}.grid-cols-\[180px_1fr\]{grid-template-columns:180px 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}: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)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-border{border-color:var(--line)}.border-input{border-color:var(--line-strong)}.border-primary{border-color:var(--brand)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--warning)}.bg-background{background-color:var(--bg)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-border{background-color:var(--line)}.bg-card{background-color:var(--surface)}.bg-danger-soft{background-color:var(--danger-soft)}.bg-destructive{background-color:var(--danger)}.bg-info-soft{background-color:var(--info-soft)}.bg-muted,.bg-muted\/50{background-color:var(--bg-subtle)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--bg-subtle) 50%,transparent)}}.bg-popover{background-color:var(--surface-raised)}.bg-primary,.bg-primary\/10{background-color:var(--brand)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--brand) 10%,transparent)}}.bg-secondary{background-color:var(--surface-sunken)}.bg-sidebar{background-color:var(--bg-subtle)}.bg-sidebar-accent{background-color:var(--surface-hover)}.bg-transparent{background-color:#0000}.bg-warning-soft{background-color:var(--warning-soft)}.bg-white{background-color:var(--color-white)}.fill-current{fill:currentColor}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-0{padding-top:0}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));letter-spacing:var(--tw-tracking,var(--text-2xl--letter-spacing))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));letter-spacing:var(--tw-tracking,var(--text-3xl--letter-spacing))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--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))}.leading-none{--tw-leading:1;line-height:1}.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)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-card-foreground{color:var(--ink)}.text-current{color:currentColor}.text-danger{color:var(--danger)}.text-destructive-foreground{color:var(--on-danger)}.text-foreground{color:var(--ink)}.text-link{color:var(--link)}.text-muted-foreground{color:var(--ink-muted)}.text-popover-foreground{color:var(--ink)}.text-primary{color:var(--brand)}.text-primary-foreground{color:var(--on-brand)}.text-secondary-foreground,.text-sidebar-foreground{color:var(--ink)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:var(--elevation-lg);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:var(--elevation-md);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:var(--elevation-sm);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--bg)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{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))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--bg-subtle)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--brand)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--ink-muted)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--on-brand)}.group-\[\.toaster\]\:border-border:is(:where(.group).toaster *){border-color:var(--line)}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--bg)}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--ink)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--tw-shadow:var(--elevation-lg);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--ink)}.placeholder\:text-muted-foreground::placeholder{color:var(--ink-muted)}@media(hover:hover){.hover\:bg-accent:hover{background-color:var(--surface-hover)}.hover\:bg-destructive\/80:hover{background-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab,var(--danger) 80%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--danger) 90%,transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--bg-subtle)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--bg-subtle) 50%,transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--brand)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--brand) 80%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--brand)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--brand) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--surface-sunken)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--surface-sunken) 80%,transparent)}}.hover\:bg-sidebar-accent:hover,.hover\:bg-surface-hover:hover{background-color:var(--surface-hover)}.hover\:text-accent-foreground:hover,.hover\:text-foreground:hover{color:var(--ink)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--surface-hover)}.focus\:text-accent-foreground:focus{color:var(--ink)}.focus\:ring-1:focus{--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)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + 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)}.focus\:ring-ring:focus{--tw-ring-color:var(--focus)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--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)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + 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)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--focus)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--ink-muted)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--bg)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--ink)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--brand)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--on-brand)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--surface-hover)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--ink-muted)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--bg-subtle)}@media(min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-60{width:calc(var(--spacing) * 60)}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[2fr_1fr\]{grid-template-columns:2fr 1fr}.md\:flex-row{flex-direction:row}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-5{padding-block:calc(var(--spacing) * 5)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));letter-spacing:var(--tw-tracking,var(--text-2xl--letter-spacing))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}.xl\:grid-cols-\[1fr_360px\]{grid-template-columns:1fr 360px}.xl\:grid-cols-\[1fr_420px\]{grid-template-columns:1fr 420px}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}html,body,#root{height:100%}body{background:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-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-tracking{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-duration{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes pulse{50%{opacity:.5}}
