*:where(:not(html,iframe,canvas,img,svg,video,audio,pre,code):not(svg *,symbol *)){all:unset;display:revert}*,*::before,*::after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}a,button{cursor:revert}ol,ul,menu,summary{list-style:none}ol{counter-reset:revert}img{max-inline-size:100%;max-block-size:100%}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{-webkit-appearance:revert;appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}::marker{content:initial}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable=true]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}pre,code{margin:0}::-webkit-details-marker{display:none}:root{--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--primary:rgb(245 212 31);--background:rgb(255 255 255);--background-subtle:rgb(200 200 200 / .1);--background-hover:rgb(220, 220, 220, .35);--background-dim:rgb(247 247 247 / .25);--color:rgb(34 40 40);--color-fade:rgb(153 153 153);--color-nav:rgb(0 0 0/ .7);--box-shadow:0 25px 50px -12px rgb(0 0 0/ .2);--model-background:#ffffff;--model-foreground:rgb(247 247 247/ .25);--model-box-shadow:0 8px 32px 0 rgb(31 38 135/ .37);--padding:12px;--padding_d2:6px;--padding_x2:24px;--blur:4px;--model-blur:10px;--border:rgb(0 0 0/ .063);--border-nav:rgb(0 0 0/ .133);--border-subtle:rgb(200 200 200 / .2);--radius:6px;--anchor:#235ce8;--hover:#547ce3;--chroma-base00:var(--background-subtle);--chroma-base01:#e0e0e0;--chroma-base02:rgb(159 218 159/ .2);--chroma-base03:#8e908c;--chroma-base04:#969896;--chroma-base05:#4d4d4c;--chroma-base06:#282a2e;--chroma-base07:#1d1f21;--chroma-base08:#c82829;--chroma-base09:#f5871f;--chroma-base0A:#eab700;--chroma-base0B:#718c00;--chroma-base0C:#3e999f;--chroma-base0D:#4271ae;--chroma-base0E:#8959a8;--chroma-base0F:#a3685a;--alert-note:rgb(from var(--chroma-base0D) r g b / .06);--alert-tip:rgb(from var(--chroma-base0B) r g b / .06);--alert-important:rgb(from var(--chroma-base0E) r g b / .06);--alert-warning:rgb(from var(--chroma-base09) r g b / .06);--alert-caution:rgb(from var(--chroma-base08) r g b / .06);--alert-search:rgb(from var(--chroma-base0E) r g b / .06);--alert-assignment:rgb(from var(--chroma-base0A) r g b / .06);--alert-lab:rgb(from var(--chroma-base0B) r g b / .06);--alert-recap:rgb(from var(--chroma-base0D) r g b / .06);--cover-img-height:32svh;--section-item-cover-img-height:24svh;--site-header-height:60px}:root[data-color=dark]{--primary:rgb(245 212 31/ .8);--background:rgb(16 16 16);--background-subtle:rgb(255 255 255/ .05);--background-hover:rgb(255 255 255/ .075);--background-dim:rgb(255 255 255/ .0126);--color:rgb(255 255 255);--color-fade:rgb(255 255 255/ .5);--color-nav:rgb(255 255 255/ .8);--box-shadow:0 25px 50px -12px rgb(255 255 255/ .2);--model-background:rgb(16 16 16);--model-foreground:rgb(255 255 255/ .05);--model-box-shadow:0 8px 32px 0 rgb(241 235 235/ .1);--border:rgb(225 225 225/ .1);--border-nav:rgb(255 255 255/ .2);--border-subtle:rgb(255 255 255/ .05);--anchor:#2e87f1;--hover:#044b9d;--chroma-base00:var(--background-subtle);--chroma-base01:#393939;--chroma-base02:rgb(159 218 159/ .1);--chroma-base03:#999999;--chroma-base04:#b4b7b4;--chroma-base05:#cccccc;--chroma-base06:#e0e0e0;--chroma-base07:#ffffff;--chroma-base08:#f2777a;--chroma-base09:#f99157;--chroma-base0A:#ffcc66;--chroma-base0B:#99cc99;--chroma-base0C:#66cccc;--chroma-base0D:#6699cc;--chroma-base0E:#cc99cc;--chroma-base0F:#a3685a;--alert-note:rgb(from var(--chroma-base0D) r g b / .12);--alert-tip:rgb(from var(--chroma-base0B) r g b / .12);--alert-important:rgb(from var(--chroma-base0E) r g b / .12);--alert-warning:rgb(from var(--chroma-base09) r g b / .12);--alert-caution:rgb(from var(--chroma-base08) r g b / .12);--alert-search:rgb(from var(--chroma-base0E) r g b / .12);--alert-assignment:rgb(from var(--chroma-base0A) r g b / .12);--alert-lab:rgb(from var(--chroma-base0B) r g b / .12);--alert-recap:rgb(from var(--chroma-base0D) r g b / .12);--pf-background:var(--background);--pf-text:var(--color-nav);--pf-text-muted:var(--color-fade);--pf-hover:var(--background-hover);--pf-text-secondary:var(--color-nav);--pf-modal-backdrop:var(--background-dim);--pf-border:var(--border);--pf-mark:var(--primary);--pf-skeleton:var(--background-hover)}@view-transition{navigation: auto;
}@media(min-width:744px) and (orientation:portrait){:root{--cover-img-height:30svh;--section-item-cover-img-height:20svh}}@media(min-width:1024px){:root{--padding:16px;--padding_d2:8px;--padding_x2:32px;--cover-img-height:43svh;--section-item-cover-img-height:28svh}}@media(min-width:1280px) and (orientation:landscape){:root{--cover-img-height:50svh;--section-item-cover-img-height:22svh}}.btn{display:flex;padding:var(--padding_d2);gap:calc(var(--padding_d2)/2);justify-items:center;align-items:center;background:var(--background-dim);backdrop-filter:blur(--blur);border:1px solid var(--border);border-radius:var(--radius);color:var(--color-nav);fill:currentColor;cursor:pointer}.btn:hover,.btn:focus{background:var(--background-hover)}.btn-primary{background:rgb(from var(--primary) r g b/.5);border:1px solid rgb(from var(--primary) r g b/.6);color:rgb(from var(--color-nav) r g b/.8)}.btn-primary:hover,.btn-primary:focus{background:var(--primary);color:var(--color-nav)}.dropdown{position:relative}.dropdown-btn{display:flex;flex-direction:row;gap:calc(var(--padding_d2)/3);padding:var(--padding_d2);background:var(--background-dim);backdrop-filter:blur(--blur);border:1px solid var(--border);border-radius:var(--radius);color:var(--color-nav);fill:currentColor;cursor:pointer}.dropdown-btn:hover,.dropdown-btn:focus{background:var(--background-hover)}.dropdown-btn>span:last-child{opacity:.8}.dropdown-menu{display:none;position:absolute;z-index:15;right:0;top:2.4rem;min-width:3.6rem;max-height:15rem;overflow-x:auto;background:var(--background-hover);color:var(--color-nav);border-radius:var(--radius);padding:var(--padding_d2)}.dropdown-menu.show{display:block}.dropdown-menu button,.dropdown-menu a{width:100%;display:flex;gap:var(--padding_d2);padding:var(--padding_d2);align-items:center;justify-content:center;cursor:pointer}.dropdown-menu button:hover,.dropdown-menu a:hover{background:var(--background-hover);color:var(--color-nav)}@media(min-width:1024px){.dropdown-menu{top:2.7rem}}.badge{display:inline-block;align-items:center;padding:var(--padding_d2)var(--padding);gap:var(--padding_d2);font-size:.7rem;font-weight:600;color:var(--color);background:var(--background-subtle);border-radius:var(--radius)}#site-header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"logo actions" "menu menu";border-bottom:1px solid var(--border);align-items:center}#site-header-logo{grid-area:logo;padding:var(--padding_d2)}#site-header-actions{grid-area:actions;display:flex;align-items:center;gap:var(--padding_d2);padding-right:var(--padding)}#site-header-menu{grid-area:menu;display:flex;flex-wrap:wrap;background:var(--background-subtle);backdrop-filter:blur(var(--blur));padding:var(--padding_d2);gap:var(--padding_d2);border-top:1px solid var(--border)}#site-header-menu a{display:flex;gap:calc(var(--padding)/3);padding:var(--padding_d2);align-items:center;text-transform:uppercase;font-size:.86em;color:var(--color-fade);fill:currentColor;border-radius:var(--radius);border:1px solid transparent}#site-header-menu a:not(.active):hover{background:var(--background-hover);color:var(--color-nav)}#site-header-menu a.active{background:var(--background-subtle);backdrop-filter:blur(var(--blur));border:1px solid var(--border-subtle);pointer-events:none}#search-box{display:flex;align-items:center;justify-content:center}#repo-main{display:flex;align-items:center;justify-content:center;fill:var(--color-nav)}#repo-main:hover{fill:var(--color)}@media(max-width:743px){.pf-trigger-shortcut{display:none!important}}@media(min-width:1024px){#site-header{grid-template-columns:minmax(0,1fr)auto minmax(0,1fr);grid-template-areas:"logo menu actions";backdrop-filter:blur(var(--blur));position:sticky;top:0;z-index:10}#site-header-logo{justify-self:start}#site-header-menu{background:0 0;border:none;justify-content:center;justify-self:center}#site-header-actions{justify-self:end}}#site-footer{display:flex;align-items:center;justify-content:center;gap:var(--padding_d2);text-align:center;flex-wrap:wrap;white-space:initial;padding:var(--padding_x2);color:var(--color-fade);fill:currentColor}#site-footer>a.btn-primary{padding:0 var(--padding_d2);font-weight:400}@media(min-width:1024px){#site-footer{width:75vw}}html{scroll-behavior:smooth;scroll-padding:2em}body{display:flex;flex-direction:column;height:100%;color:var(--color);background:var(--background);font-family:var(--font-sans)}#content-wrapper{display:flex;flex:1;flex-direction:column;min-height:100svh}main{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--padding_x2) * 2)}#site-footer{width:100%}main>section{scroll-snap-align:start}main h2{font-size:2.5rem}main h3{font-size:1.4rem}main h4{font-size:1.1rem}.hero-section{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:var(--padding_x2);min-height:64svh}.hero-header .hero-svg svg{padding-top:var(--padding_x2);max-width:80%;height:auto}.hero-header h2{font-size:clamp(2.5rem,11vw,4rem);font-weight:700;line-height:1.1;letter-spacing:-.05em}.hero-header h2 span{color:var(--primary);text-shadow:0 0 3px var(--border-nav)}.hero-content{max-width:48rem;font-size:1.12rem;line-height:1.3}.hero-controls{display:flex;flex-direction:row;gap:var(--padding);padding-top:var(--padding)}.hero-section .btn{font-size:1.125rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;border-radius:calc(var(--radius) * 4);padding:var(--padding_d2)var(--padding)}.hero-section .badge{text-transform:uppercase;letter-spacing:.16em;margin-bottom:var(--padding_x2)}@media(min-width:744px){.hero-section{min-height:40svh}}@media(min-width:1024px) and (orientation:landscape){.hero-section{min-height:60svh}}.bento-section{display:grid;grid-template-columns:1fr;gap:var(--padding);margin:0 auto;padding:0 var(--padding)}.bento-card{background:var(--background-subtle);border-radius:var(--radius);border:1px solid var(--border);padding:var(--padding);transition:all .3s}.bento-card:hover{background:var(--background-hover)}.bento-card h3{margin-bottom:var(--padding)}.bento-card p{color:var(--color-nav)}.bento-card footer{margin-top:var(--padding);padding-top:var(--padding);gap:1rem;font-family:var(--font-mono);font-size:.875rem;border-top:1px solid var(--border)}.bento-card .card-icon{display:flex;margin-bottom:var(--padding);height:32px;fill:var(--color-nav)}.col-7,.col-5{grid-column:span 12}@media(min-width:744px){.col-7{grid-column:span 7}.col-5{grid-column:span 5}.bento-section{grid-template-columns:repeat(12,1fr)}}@media(min-width:1024px){.bento-section{max-width:80svw;min-height:80svh;padding:0}}@media(min-width:1024px) and (orientation:portrait){.bento-section{min-height:50svh}}@media(min-width:1280px){.bento-section{min-height:60svh;gap:var(--padding_x2)}.bento-card{padding:var(--padding_x2)}.bento-card footer{margin-top:var(--padding_x2);padding-top:var(--padding_x2)}}.card-grid-section{display:flex;flex-direction:column;gap:var(--padding_x2);padding:0 var(--padding)}.card-grid-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--padding)}.card-grid-body{display:grid;grid-template-columns:repeat(2,1fr);margin:0 auto;gap:var(--padding)}.card-grid-card{display:flex;flex-direction:column;justify-content:space-between;gap:var(--padding);padding:var(--padding);background:var(--background-subtle);border-radius:var(--radius);border:1px solid var(--border);transition:all .3s}.card-grid-card:hover{transform:translateY(-.5rem);background:var(--background-hover);box-shadow:var(--box-shadow)}.card-grid-card span{font-size:1.875rem;padding:var(--padding)var(--padding)var(--padding)0;fill:var(--color-nav)}.card-grid-card p{font-size:.875rem;color:var(--color-nav)}.card-grid-card footer .btn{justify-content:center}@media(min-width:744px){.card-grid-card header{display:flex;flex-direction:row-reverse;justify-content:space-between}}@media(min-width:1024px){.card-grid-body{grid-template-columns:repeat(4,1fr)}.card-grid-section{min-height:50svh;justify-content:center}}@media(min-width:1024px) and (orientation:portrait){.card-grid-section{min-height:30svh;justify-content:center}}@media(min-width:1280px){.card-grid-body{gap:var(--padding_x2)}.card-grid-card{padding:var(--padding_x2)}.card-grid-card span{padding:0}}@media(min-width:1440px){.card-grid-section{max-width:80svw;margin:0 auto}}.chroma{width:100%;overflow-x:auto;font-size:.9rem;color:var(--chroma-base05);background-color:var(--chroma-base00);border-radius:var(--radius);padding:var(--padding)calc(var(--padding_d2)*3)}.chroma .x{color:var(--chroma-base05)}.chroma .err{color:var(--chroma-base08)}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:var(--chroma-base02)}.chroma .lnt{margin-right:.4em;padding:0 .4em}.chroma .ln{margin-right:.4em;padding:0 .4em;border-right:1px solid var(--chroma-base0A)}.chroma .line{display:flex}.chroma .k{color:var(--chroma-base0E)}.chroma .kc{color:var(--chroma-base0E)}.chroma .kd{color:var(--chroma-base0E)}.chroma .kn{color:var(--chroma-base0E)}.chroma .kp{color:var(--chroma-base0D)}.chroma .kr{color:var(--chroma-base0E)}.chroma .kt{color:var(--chroma-base0E)}.chroma .n{color:var(--chroma-base05)}.chroma .na{color:var(--chroma-base05)}.chroma .nb{color:var(--chroma-base0D)}.chroma .bp{color:var(--chroma-base0D)}.chroma .nc{color:var(--chroma-base0A)}.chroma .no{color:var(--chroma-base09)}.chroma .nd{color:var(--chroma-base09)}.chroma .ni{color:var(--chroma-base0A)}.chroma .ne{color:var(--chroma-base0A)}.chroma .nf{color:var(--chroma-base05)}.chroma .fm{color:var(--chroma-base05)}.chroma .nl{color:var(--chroma-base08)}.chroma .nn{color:var(--chroma-base0A)}.chroma .nx{color:var(--chroma-base0D)}.chroma .py{color:var(--chroma-base08)}.chroma .nt{color:var(--chroma-base0D)}.chroma .nv{color:var(--chroma-base0D)}.chroma .vc{color:var(--chroma-base0D)}.chroma .vg{color:var(--chroma-base0D)}.chroma .vi{color:var(--chroma-base08)}.chroma .vm{color:var(--chroma-base0D)}.chroma .l{color:var(--chroma-base0B)}.chroma .ld{color:var(--chroma-base0B)}.chroma .s{color:var(--chroma-base0B)}.chroma .sa{color:var(--chroma-base0B)}.chroma .sb{color:var(--chroma-base0B)}.chroma .sc{color:var(--chroma-base0B)}.chroma .dl{color:var(--chroma-base0F)}.chroma .sd{color:var(--chroma-base03)}.chroma .s2{color:var(--chroma-base0B)}.chroma .se{color:var(--chroma-base0C)}.chroma .sh{color:var(--chroma-base0B)}.chroma .si{color:var(--chroma-base0F)}.chroma .sx{color:var(--chroma-base0B)}.chroma .sr{color:var(--chroma-base0C)}.chroma .s1{color:var(--chroma-base0B)}.chroma .ss{color:var(--chroma-base0B)}.chroma .m{color:var(--chroma-base09)}.chroma .mb{color:var(--chroma-base09)}.chroma .mf{color:var(--chroma-base09)}.chroma .mh{color:var(--chroma-base09)}.chroma .mi{color:var(--chroma-base09)}.chroma .il{color:var(--chroma-base09)}.chroma .mo{color:var(--chroma-base09)}.chroma .o{color:var(--chroma-base05)}.chroma .ow{color:var(--chroma-base05)}.chroma .p{color:var(--chroma-base05)}.chroma .c{color:var(--chroma-base03)}.chroma .ch{color:var(--chroma-base03)}.chroma .cm{color:var(--chroma-base03)}.chroma .c1{color:var(--chroma-base03)}.chroma .cs{color:var(--chroma-base03)}.chroma .cp{color:var(--chroma-base0F)}.chroma .cpf{color:var(--chroma-base0B)}.chroma .g{color:var(--chroma-base05)}.chroma .gd{color:var(--chroma-base08)}.chroma .ge{color:var(--chroma-base05);font-style:italic}.chroma .gr{color:var(--chroma-base05)}.chroma .gh{color:var(--chroma-base0D)}.chroma .gi{color:var(--chroma-base0B)}.chroma .go{color:var(--chroma-base05)}.chroma .gp{color:var(--chroma-base05)}.chroma .gs{color:var(--chroma-base05);font-weight:700}.chroma .gu{color:var(--chroma-base0D)}.chroma .gt{color:var(--chroma-base05)}.chroma .gl{color:var(--chroma-base05);text-decoration:underline}.chroma .w{color:var(--chroma-base00)}.code-window{background:var(--background-subtle);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.code-header{display:flex;justify-content:space-between;align-items:center;padding:var(--padding_d2)var(--padding);border-bottom:1px solid var(--border-subtle)}.traffic-lights{display:flex;gap:.375rem}.traffic-lights .light{width:.625rem;height:.625rem;border-radius:50%;opacity:.8}.traffic-lights .light-red{background:#ff5f56}.traffic-lights .light-yellow{background:#ffbd2e}.traffic-lights .light-green{background:#27c93f}.code-title{font-size:.875rem;font-family:var(--font-mono);color:var(--color-nav)}.code-label{font-size:.625rem;line-height:2;background:var(--background-hover);padding:calc(var(--padding_d2) * .32)calc(var(--padding_d2) * .7);text-transform:uppercase}.code-body{box-shadow:var(--box-shadow)}.code-body>.chroma{background:0 0;border:none;width:100%;overflow-x:auto}.accordion-vertical-tabs{display:flex;flex-direction:column;width:100%;gap:var(--padding_d2);overflow:hidden}.accordion-vertical-tabs>details{background:var(--background-subtle);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.accordion-vertical-tabs>details>summary{font-weight:500;cursor:pointer;color:var(--color-nav);padding:var(--padding)}.accordion-vertical-tabs>details>summary:hover,.accordion-vertical-tabs>details>summary:focus{background:var(--background-hover)}.accordion-vertical-tabs>details[open] :is(summary,.summary){background:var(--primary);color:var(--color-nav);pointer-events:none}.accordion-vertical-tabs>details[open]::details-content{background:var(--background-subtle);padding:0 var(--padding)var(--padding)}@media(min-width:1024px){.accordion-vertical-tabs{display:grid;grid-template-columns:var(--tab-width,20svw)1fr;grid-template-rows:repeat(calc(var(--tabs-count,5) + 1),auto);background:var(--background-subtle);border:1px solid var(--border);border-radius:var(--radius)}.accordion-vertical-tabs>details{display:grid;grid-column:1/-1;grid-row:1/span calc(var(--tabs-count,5) + 1);grid-template-columns:subgrid;grid-template-rows:subgrid;gap:0;background:0 0;border:none}.accordion-vertical-tabs>details>summary{grid-column:1;grid-row:var(--n);height:var(--tab-height,3.75rem);display:flex;align-items:center;z-index:1;background:var(--background-subtle);border-bottom:1px solid var(--border)}.accordion-vertical-tabs>details[open]::details-content{grid-column:2;grid-row:1/span calc(var(--tabs-count,5) + 1);border-left:1px solid var(--border);overflow:auto;z-index:1}.accordion-vertical-tabs>details:not([open])::details-content{display:none}}.showcase-section{background:var(--background-subtle);padding-top:var(--padding_x2);padding-bottom:var(--padding_x2);width:100%}.showcase-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--padding)}.showcase-body{margin:var(--padding);gap:var(--padding);overflow-x:auto}@media(min-width:1024px){.showcase-body{max-width:80svw;margin:var(--padding)auto}}@media(min-width:1280px){.showcase-body{max-width:60svw}}.showcase-body{font-size:.95rem}.showcase-body p,.showcase-body pre:not(.chroma),.showcase-body .highlight{line-height:1.8em;letter-spacing:-.1px}.showcase-body strong,.showcase-body b,.showcase-body table th{font-weight:600}.showcase-body em{font-style:italic}.showcase-body a{color:var(--primary);text-decoration:none}.showcase-body a:hover{text-decoration:underline;background:var(--background-hover)}.showcase-body p,.showcase-body .highlight{margin-top:1rem}.showcase-body code,.showcase-body pre{font-family:var(--font-mono);font-size:.875rem}.showcase-body pre,.showcase-body pre code{display:inline-grid}.showcase-body .chroma code{padding:unset;background:unset;border-radius:unset;border:unset}.showcase-body :not(.code-window).highlight .chroma{border:1px solid var(--border)}