*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*{padding:0;margin:0}html,body{margin:unset;padding:unset;width:100%;height:100%;min-width:320px;overflow-x:clip;overflow-anchor:none;scroll-behavior:smooth;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}html:focus-within{scroll-behavior:smooth}a:not([class]){text-decoration-skip-ink:auto}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,button,input,label{line-height:1.2}ul[role=list],ol[role=list]{list-style:none}button{background:none;border:none}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;transition:none}}:root{color-scheme:light dark;--color-const-white: #ffffff;--color-const-light: #fcfcfc;--color-const-bg--light: oklch(.982 0 0);--color-const-black: #000000;--color-const-dark: #111111;--color-content-main: oklch(.2 .003 240);--color-content-s: oklch(.3 .004 240);--color-content-xs: oklch(.4 .005 240);--color-content-xxs: oklch(.54 .006 240);--color-content-xxxs: oklch(.75 .005 240);--color-content-softest: oklch(.85 .004 240);--color-separator-s: var(--color-content-softest);--color-separator-main: var(--color-content-xxs);--color-separator-h: var(--color-content-xs);--color-bg-xxxh: oklch(.8 0 0);--color-bg-xxh: oklch(.88 0 0);--color-bg-xh: oklch(.931 0 0);--color-bg-h: oklch(.961 0 0);--color-bg-main: oklch(.982 0 0);--color-bg-s: oklch(.99 0 0);--color-bg-xs: oklch(1 0 0);--color-brand-hardest: oklch(.1 .021 283.52);--color-brand-xxxd: oklch(.2 .047 281.74);--color-brand-xxd: oklch(.27 .065 281.13);--color-brand-xd: oklch(.34 .082 280.7);--color-brand-d: oklch(.4 .097 280.72);--color-brand-main: oklch(.543 .105 281.7);--color-brand-s: oklch(.62 .087 286.15);--color-brand-xs: oklch(.704 .066 288.04);--color-brand-xxs: oklch(.82 .037 289.03);--color-brand-xxxs: oklch(.88 .023 289.86);--color-brand-softest: oklch(.95 .008 290.4);--color-button-icon-controls: var(--color-link);--color-button-bg-main: oklch(from var(--color-bg-xh) l c h / 60%);--color-button-bg-focus: oklch(from var(--color-brand-main) l c h / 90%);--color-button-bg-hover: oklch(from var(--color-brand-main) l c h / 40%);--color-button-bg-colored: oklch(from var(--color-brand-main) l c h / 75%);--color-button-inactive: var(--color-brand-s);--color-popover-bg-main: oklch(from var(--color-brand-xxxs) l c h / 80%);--color-popover-border: oklch(from var(--color-bg-xh) l c h / 90%);--color-safe-main: #379f37;--color-danger-main: #df1f1f;--color-mark: var(--color-brand-xxxs);--color-link: var(--color-brand-main);--color-scrollbar-thumb: var(--color-brand-main);--color-scrollbar-track: var(--color-bg-main);accent-color:var(--color-brand-main);--space-xxs: calc(.25 * var(--space-main));--space-xs: calc(.5 * var(--space-main));--space-s: calc(.75 * var(--space-main));--space-main: 1rem;--space-md: calc(1.25 * var(--space-main));--space-l: calc(2 * var(--space-main));--space-xl: calc(3.25 * var(--space-main));--space-xxl: calc(5.25 * var(--space-main));--space-article-gap: var(--space-s);--space-scrollpadding-s: 4.75rem;--space-scrollpadding-main: 6rem;--space-scrollpadding-h: 7.25rem;--table-item--space: .8em;--font-family-primary: "Roboto Flex Variable", system-ui, sans-serif;--font-family-secondary: "Cascadia Mono Variable", "JetBrains Mono Variable", ui-monospace,monospace, system-ui;--font-size-xxxl: clamp(2rem, 1.7rem + 2vw, 3rem);--font-size-xxl: clamp(1.75rem, 1.4rem + 2vw, 2.25rem);--font-size-xl: clamp(1.4rem, 1.3rem + .5vw, 1.8rem);--font-size-l: clamp(1.25rem, 1.2rem + .25vw, 1.5rem);--font-size-md: clamp(1.1rem, 1.05rem + .25vw, 1.3rem);--font-size-main: clamp(1rem, .9rem + .3vw, 1.15rem);--font-size-s: clamp(.9rem, .87rem + .15vw, 1.05rem);--font-size-xs: clamp(.75rem, .66rem + .2vw, .9rem);--font-size-xxs: clamp(.6rem, .56rem + .2vw, .8rem);--font-size-xxxs: clamp(.5rem, .46rem + .2vw, .7rem);--font-weight-light: 300;--font-weight-regular: 350;--font-weight-medium: 400;--font-weight-semibold: 500;--font-weight-bold: 600;--font-weight-extrabold: 700;--font-weight-black: 800;--font-weight-extrablack: 900;--font-grade-main: 10;--font-grade-medium: 25;--font-grade-strong: -40;--font-grade-chapter-title: 60;--font-grade-chapter-subtitle: 150;--radius-button-xs: .15rem;--radius-button-s: .3rem;--radius-button-main: .5rem;--radius-button-l: .7rem;--radius-button-xl: 1rem;--radius-button-xxl: 1.2rem;--radius-button-xxxl: 1.5rem;--radius-button-largest: 2rem;--size-button-main: 3rem;--space-indentation: var(--space-main);--icon-stroke: 10;--content-max: 100%;--content-width-xs: min(var(--content-max), 24rem);--content-width-s: min(var(--content-max), 36rem);--content-width-main: min(var(--content-max), 42rem);--content-width-w: min(var(--content-max), 58rem);--content-width-xw: min(var(--content-max), 72rem);--layout-padding-inline: var(--space-main);@media screen and (width>=1200px){--layout-padding-inline: var(--space-xl)}--shadow-color: 0deg 0% 11%;--shadow-s: .1px .9px .8px hsl(var(--shadow-color) / .2), .5px 3.6px 3.3px -4px hsl(var(--shadow-color) / .05);--shadow-main: .1px .6px .8px hsl(var(--shadow-color) / .2), .5px 4px 4px -2px hsl(var(--shadow-color) / .1), 2px 8px 4px -4px hsl(var(--shadow-color) / .03);--shadow-h: .5px 1px 1px -2px hsl(var(--shadow-color) / .2), .6px 4.6px 4.2px -4px hsl(var(--shadow-color) / .15), 2px 14px 13px -6px hsl(var(--shadow-color) / .1), 6px 38px 35px -3px hsl(var(--shadow-color) / .05), 12px 84px 76px -10px hsl(var(--shadow-color) / .03);--shadow-filter: drop-shadow(.1px .6px .8px hsl(var(--shadow-color) / .2)) drop-shadow(.5px 4px 4px hsl(var(--shadow-color) / .1)) drop-shadow(2px 8px 4px hsl(var(--shadow-color) / .03))}:focus-visible{outline-color:var(--color-brand-main)}::selection{background-color:var(--color-mark)}::marker{color:var(--color-brand-main)}:is(::-webkit-calendar-picker-indicator,::-webkit-clear-button,::-webkit-inner-spin-button,::-webkit-outer-spin-button){color:var(--color-brand-main)}::-webkit-scrollbar-track{background:var(--color-brand-softest)}::-webkit-scrollbar-thumb{background:var(--color-brand-xxs)}::-webkit-scrollbar-thumb:hover{background:var(--color-brand-main)}[data-theme=dark]{--color-content-main: oklch(.99 0 0);--color-content-s: oklch(.982 0 0);--color-content-xs: oklch(.952 0 0);--color-content-xxs: oklch(.88 0 0);--color-content-xxxs: oklch(.8 0 0);--color-content-softest: oklch(.65 0 0);--color-separator-s: var(--color-bg-xh);--color-separator-main: var(--color-bg-xxh);--color-separator-h: var(--color-bg-xxxh);--color-bg-xxxh: oklch(.75 .005 240);--color-bg-xxh: oklch(.54 .006 240);--color-bg-xh: oklch(.4 .005 240);--color-bg-h: oklch(.3 .004 240);--color-bg-main: oklch(.25 .003 240);--color-bg-s: oklch(.14 .001 240);--color-bg-xs: oklch(0 0 0);--color-brand-hardest: oklch(.92 .058 290.4);--color-brand-xxxd: oklch(.88 .063 289.86);--color-brand-xxd: oklch(.82 .057 289.03);--color-brand-xd: oklch(.75 .066 288.04);--color-brand-d: oklch(.62 .087 286.15);--color-brand-main: oklch(.543 .105 281.7);--color-brand-s: oklch(.4 .097 280.72);--color-brand-xs: oklch(.34 .082 280.7);--color-brand-xxs: oklch(.27 .065 281.13);--color-brand-xxxs: oklch(.2 .047 281.74);--color-brand-softest: oklch(.1 .021 283.52);--color-button-icon-controls: var(--color-link);--color-button-bg-main: oklch(from var(--color-bg-xh) l c h / 60%);--color-button-bg-focus: oklch(from var(--color-brand-main) l c h / 90%);--color-button-bg-hover: oklch(from var(--color-brand-main) l c h / 55%);--color-button-bg-colored: oklch(from var(--color-brand-main) l c h / 75%);--color-button-inactive: var(--color-brand-xd);--color-safe-main: #61c21c;--color-danger-main: #f12828;--color-mark: var(--color-brand-xxd);--color-link: var(--color-brand-xd);--shadow-color: 267deg 41% 11%;--font-grade-main: -80;--font-grade-medium: -30;--font-grade-strong: -30;--font-grade-chapter-title: 20;--font-grade-chapter-subtitle: 100}@view-transition{navigation:auto}:root::view-transition-old(root){animation:.3s ease-in-out both slideOut}:root::view-transition-new(root){animation:.3s ease-in-out both zoomIn}*{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) var(--color-scrollbar-track)}:root{--cursor-default: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 32' width='18' height='22'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='27' x2='15' y2='1' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%236667ab'/%3E%3Cstop offset='1' stop-color='%23151617'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='%23f9f9f9' d='M0,2.65v26.71c0,2.39,2.9,3.55,4.53,1.82l7.1-7.52c.44-.47,1.04-.76,1.68-.81l10.27-.87c2.37-.2,3.27-3.2,1.42-4.69L4.27.58C2.55-.8,0,.43,0,2.65Z'/%3E%3Cpath fill='url(%23g)' d='M2.64,2c.13,0,.26.05.38.14l20.74,16.7c.29.24.26.54.21.69-.06.19-.2.42-.55.45l-10.27.87c-1.13.1-2.19.6-2.97,1.43l-7.1,7.52c-.13.14-.27.2-.43.2s-.65-.12-.65-.65V2.64c0-.19.06-.34.19-.46.12-.12.29-.18.45-.18M2.64,0C1.28,0,0,1.08,0,2.65v26.71c0,1.6,1.3,2.65,2.65,2.65.67,0,1.34-.26,1.88-.83l7.1-7.52c.44-.47,1.04-.76,1.68-.81l10.27-.87c2.37-.2,3.27-3.2,1.42-4.69L4.27.58C3.77.18,3.2,0,2.64,0h0Z'/%3E%3C/svg%3E") 1 1, auto;--cursor-pointer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25.98 32' width='18' height='22'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='27' x2='15' y2='1' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%236667ab'/%3E%3Cstop offset='1' stop-color='%23151617'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='%23f9f9f9' d='M21.21,11.39s-.69-1.1-1.65-1.59-2.17-.45-2.17-.45c0,0-.64-.81-1.63-1.21-.92-.37-1.61-.43-1.61-.43v-3.69c-.03-5.35-7.97-5.35-8,0,0,0,0,9.04,0,9.04-3.26-1.9-7.74,1.36-5.59,5.09,0,0,4.16,7.87,4.16,7.87,1.99,3.7,5.8,5.99,9.95,5.99,6.23,0,11.3-5.12,11.31-11.41,0,0,0-8.37-4.76-9.2Z'/%3E%3Cpath fill='url(%23g)' d='M10.15,0v2c.33,0,1.99.1,2,2.01v3.69l.02,1.78,1.76.21s.47.06,1.08.3c.38.15.71.49.79.58l.6.81,1.03-.04c.3,0,.87.06,1.21.24.31.16.7.62.86.87l.47.76.88.15c2.56.45,3.1,5.82,3.11,7.23,0,5.19-4.18,9.42-9.31,9.42-3.41,0-6.55-1.89-8.18-4.92,0,0-4.12-7.78-4.16-7.87l-.02-.03-.02-.03c-.35-.61-.39-1.15-.11-1.63.35-.6,1.13-1.02,1.89-1.02.38,0,.74.1,1.06.29l3.01,1.75V4.02c0-1.92,1.67-2.02,2-2.02V0M10.15,0c-1.99,0-3.99,1.34-4,4.01,0,0,0,9.04,0,9.04-.66-.39-1.37-.56-2.07-.56-2.74,0-5.23,2.67-3.52,5.65,0,0,4.16,7.87,4.16,7.87,1.99,3.7,5.8,5.99,9.95,5.99,6.23,0,11.3-5.12,11.31-11.41,0,0,0-8.37-4.76-9.2,0,0-.69-1.1-1.65-1.59-.84-.43-1.87-.45-2.12-.45-.04,0-.05,0-.05,0,0,0-.64-.81-1.63-1.21-.92-.37-1.61-.43-1.61-.43v-3.69C14.13,1.34,12.14,0,10.15,0h0Z'/%3E%3C/svg%3E") 7 1, auto}*,*:before,*:after{cursor:var(--cursor-default)}a,button,[role=button],label[for],summary,select,.clickable,.pagecard-linkwrapper,input[type=submit],input[type=button],input[type=reset],input[type=checkbox],input[type=radio]{cursor:var(--cursor-pointer, pointer)}html,body{font-family:var(--font-family-primary);color:var(--color-content-main);background:var(--color-bg-main);height:auto;scrollbar-gutter:stable;interpolate-size:allow-keywords;scroll-padding-top:var(--space-scrollpadding-main)}.hidden{display:none}h1{font-size:var(--font-size-xxxl);font-kerning:auto;font-optical-sizing:auto;line-height:1.03;letter-spacing:-.001em;font-variation-settings:"opsz" 11,"wght" var(--font-weight-extrabold),"GRAD" 50;white-space:normal;text-wrap:balance}h2{font-size:var(--font-size-xxl);font-kerning:auto;font-optical-sizing:auto;line-height:1.15;letter-spacing:-.005em;font-variation-settings:"opsz" 25,"wght" var(--font-weight-extrabold),"GRAD" -30;white-space:normal;text-wrap:balance}h3{font-size:var(--font-size-xl);font-kerning:auto;font-optical-sizing:auto;letter-spacing:-.005em;line-height:1.2;font-variation-settings:"opsz" 13,"wght" var(--font-weight-extrabold),"GRAD" 0;white-space:normal;text-wrap:balance}h4{font-size:var(--font-size-l);font-kerning:auto;font-optical-sizing:auto;letter-spacing:-.005em;line-height:1.2;font-variation-settings:"opsz" 13,"wght" var(--font-weight-extrabold),"GRAD" 0;white-space:normal;text-wrap:balance}:is(p){width:100%}:is(q){font-style:italic;color:var(--color-content-s)}:is(p,span,li,summary){font-size:var(--font-size-main);font-kerning:auto;font-optical-sizing:auto;line-height:1.45;font-weight:var(--font-weight-regular);text-wrap:pretty;font-variation-settings:"opsz" 10,"GRAD" var(--font-grade-main);& strong{font-variation-settings:"wght" 670,"GRAD" var(--font-grade-strong)}}:is(p,span,.article--wrapper li) a{color:var(--color-link);text-decoration:none;position:relative;-webkit-box-decoration-break:clone;box-decoration-break:clone;&:focus,&:target{text-decoration:underline;text-decoration-color:var(--color-link);color:var(--color-const-light);background:var(--color-link)}@media(hover:hover)and (pointer:fine){&:hover{text-decoration:underline;text-decoration-color:var(--color-link);color:var(--color-const-light);background:var(--color-link);border-radius:.4em;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-inline:.2em;margin-inline:-.2em;@supports (corner-shape: squircle){corner-shape:squircle}}}}.footnote{font-size:var(--font-size-xxs);font-family:var(--font-family-secondary);color:var(--color-content-xxs)}mark{background:var(--color-mark);padding-inline:.2em;margin-inline:-.2em;border-radius:.75em;-webkit-box-decoration-break:clone;box-decoration-break:clone;@supports (corner-shape: squircle){corner-shape:squircle}}.tag{font-family:var(--font-family-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-button-bg-main);padding-inline:var(--space-xs);padding-block:var(--space-xxs);border-radius:var(--radius-button-l);@supports (corner-shape: squircle){corner-shape:squircle}}.skills_more{font-family:var(--font-family-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding-block:var(--space-xxs);color:var(--color-safe-main);font-weight:var(--font-weight-extrabold);&:before{content:"+";padding-inline-end:var(--space-xxs);color:var(--color-safe-main)}}.article--wrapper{padding-block-start:6.2rem;padding-block-end:var(--space-l);margin-inline:auto;display:flex;flex-direction:column;gap:var(--space-md);:is(.article-head,.article-lid,.article-body,.article-chapter,.article-chapter-section:not(.wrapper-columns-two),.wrapper-columns--sticky){display:flex;flex-direction:column;gap:var(--space-article-gap)}.fullwidth{padding-inline:0!important}.maxwidth{position:relative;left:calc(-1 * var(--layout-padding-inline));width:100vw;margin-block:var(--space-md)}:is(.article-head,.article-lid,.article-chapter:not(.fullwidth)){padding-inline:var(--layout-padding-inline)}.article-text{width:var(--content-width-main);margin-inline:auto}.article-accent{font-size:var(--font-size-l)}.article-body>.article-text{width:var(--content-width-main)}.article-img{margin-inline:auto}.article-img-block{margin-block:var(--space-md)}.article-heading{width:var(--content-width-w);margin-inline:auto;margin-block-end:var(--space-md);display:flex;flex-direction:column;gap:var(--space-main)}.article-title{font-variation-settings:"opsz" 12,"wght" var(--font-weight-extrabold),"GRAD" 180!important;letter-spacing:-.0175em;font-kerning:auto;font-optical-sizing:auto;white-space:normal;text-wrap:balance}.article-subtitle{font-family:var(--font-family-secondary);font-style:italic;font-size:var(--font-size-xl);font-kerning:auto;font-optical-sizing:auto;letter-spacing:-.005em;line-height:1.3;white-space:normal;text-wrap:balance;color:var(--color-content-xxs)}.article-lid{margin-inline:auto;margin-block-end:var(--space-l);font-size:var(--font-size-l);font-variation-settings:"opsz" 10,"wght" var(--font-weight-regular),"GRAD" var(--font-grade-main);:is(p,a,li){width:var(--content-width-w);font-size:inherit!important;font-variation-settings:inherit!important;margin-inline:auto;& strong{font-variation-settings:"opsz" 10,"wght" var(--font-weight-extrabold),"GRAD" var(--font-grade-chapter-title)}}}.article-chapter{margin-block-end:var(--space-md)}.article-chapter-title{width:var(--content-width-w);margin-inline:auto;margin-block:var(--space-xs);color:var(--color-content-s);font-variation-settings:"opsz" 12,"wght" var(--font-weight-bold),"GRAD" var(--font-grade-chapter-title)}.article-chapter-subtitle{width:var(--content-width-main);margin-inline:auto;color:var(--color-content-s);font-variation-settings:"opsz" 8,"wght" var(--font-weight-semibold),"GRAD" var(--font-grade-chapter-subtitle)}.tabs{margin-inline:auto;&.tabs-container-main{width:var(--content-width-main)!important}}.article-inset{font-family:var(--font-family-secondary);font-size:var(--font-size-s);letter-spacing:-.012em;background:var(--color-bg-xh);padding:var(--space-md);border-radius:var(--space-xl);margin-inline:auto;@supports (corner-shape: squircle){corner-shape:squircle}@media screen and (width>1100px){padding:var(--space-l)}.article-inset--video{width:100%;display:flex;justify-content:center;& iframe{overflow:hidden;max-width:700px;height:auto;border-radius:2rem;aspect-ratio:16 / 9;@supports (corner-shape: squircle){corner-shape:squircle}}}&.article-inset--columns{display:grid;gap:var(--space-main);align-items:center;@media screen and (width>1200px){grid-template-columns:1fr 1fr;.article-inset--video{justify-content:end}}}}:is(ul,ol):not(.breadcrumb,.toc-list,.collection){margin-inline:auto;padding-inline-start:var(--space-main)!important;& li{padding-inline-start:.3em!important;list-style-position:outside}}}.img-bg{background:var(--color-const-white)!important}.img-caption{font-family:var(--font-family-secondary);font-size:var(--font-size-main);color:var(--color-content-xs)}.shadow-s{box-shadow:var(--shadow-s)}.shadow-main{box-shadow:var(--shadow-main)}.shadow-h{box-shadow:var(--shadow-h)}.width-xs{width:var(--content-width-xs)!important}.width-s{width:var(--content-width-s)!important}.width-main{width:var(--content-width-main)!important}.width-w{width:var(--content-width-w)!important}.width-xw{width:var(--content-width-xw)!important}.width-reset{width:100%!important}.wrapper-centered{margin-inline:auto}.wrapper-padding-inline{padding-inline:var(--layout-padding-inline)!important}.wrapper-margin-block-md{margin-block:var(--space-md)}.wrapper-marginblockstart-md{margin-block-start:var(--space-md)}.wrapper-marginblockend-md{margin-block-end:var(--space-md)}.wrapper-indentation{display:flex;flex-direction:column;gap:var(--space-indentation)}.wrapper-columns-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-template-rows:auto;grid-auto-flow:dense;align-items:center;justify-content:center;gap:var(--space-main);margin-inline:auto;margin-block:2em}.wrapper-columns-two{display:grid;gap:var(--space-main);grid-template-columns:1fr;align-items:start;@media screen and (width>1200px){gap:var(--space-l);grid-template-columns:1fr 1fr}&.wrapper-columns-two-mobile{grid-template-columns:1fr 1fr}}.wrapper-columns--sticky{@media screen and (width>=960px){position:sticky;top:var(--space-scrollpadding-main)}}.wrapper-sticky{position:sticky;top:var(--space-scrollpadding-s);&.tabs-list{z-index:+1!important}}.wrapper-rounded{border-radius:var(--radius-button-largest);overflow:clip;@supports (corner-shape: squircle){corner-shape:squircle}}.table-main{display:table!important;table-layout:fixed;text-align:left;border-collapse:collapse;padding-inline:var(--layout-padding-inline);margin-inline:auto;font-family:inherit;font-size:var(--font-size-main);font-kerning:auto;font-optical-sizing:auto;font-weight:var(--font-weight-regular);text-wrap:pretty;font-variation-settings:"opsz" 10,"GRAD" var(--font-grade-main);:is(th,td){padding-block:.4em;border-block-end:1px solid var(--color-brand-main)}& tr>:is(th,td):not(:first-child):not(:last-child){padding-inline:var(--table-item--space);border-inline:1px solid var(--color-brand-main)}& tr>th:first-child{padding-inline-end:var(--table-item--space);border-inline-end:1px solid var(--color-brand-main)}& tr>:is(th,td):last-child{padding-inline-start:var(--table-item--space)}& td{font-family:var(--font-family-secondary);font-size:var(--font-size-s);font-weight:var(--font-weight-semibold)}& *.center{text-align:center}.table-indicator-shift{font-family:inherit;color:var(--color-danger-main);font-size:var(--font-size-xs)}}details{position:relative;border-radius:var(--radius-button-xxl);border:3px solid var(--color-bg-xh);overflow:clip;@supports (corner-shape: squircle){corner-shape:squircle}& summary{padding-block:var(--space-s);padding-inline-start:var(--space-s);padding-inline-end:var(--space-l);position:relative;font-weight:var(--font-weight-bold);cursor:var(--cursor-pointer, pointer);&::marker{content:none}&:after{font-size:var(--font-size-main);color:var(--color-link);content:"›";transform:rotate(90deg);position:absolute;inset-inline-end:var(--space-xs);inset-block-start:.65rem;transform-origin:center;transition:transform .35s cubic-bezier(.05,.39,.49,1.25)}}& *:not(summary){&:not(:last-child){margin-block-end:var(--space-s)}}&[open] summary:after{transform:rotate(-90deg) translateY(-.2em)}&[open]{background:var(--color-bg-xh);transition:all .35s allow-discrete}&::details-content{font-size:var(--font-size-s);display:block;opacity:0;block-size:0;overflow:hidden;transition:all .35s allow-discrete}&[open]::details-content{opacity:1;block-size:auto;block-size:calc-size(auto,size);margin-block-end:var(--space-s)}.details-text{font-size:var(--font-size-s);padding-block:0;padding-inline:var(--space-s);opacity:0;transition:all .35s cubic-bezier(.05,.39,.49,1.25)}&[open] .details-text{opacity:1;padding-inline:var(--space-s)}}.collection{padding-inline:var(--layout-padding-inline);& li{list-style:none;padding:0;margin:0;flex:0 0 auto}@media screen and (width<960px){position:relative;display:flex;gap:var(--space-md);overflow-x:auto;scroll-padding-inline:var(--layout-padding-inline);scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;transition:scroll .5s ease;scrollbar-width:none;scroll-marker-group:after;.collection-item{width:min(440px,87vw);scroll-snap-align:start}&::scroll-marker-group{position:relative;align-items:center;justify-content:center;margin-block:var(--space-s);padding-inline:var(--layout-padding-inline);display:flex;gap:var(--space-s)}li::scroll-marker{content:"";width:.6rem;height:.6rem;aspect-ratio:1 / 1;background:var(--color-content-softest);border-radius:100%;cursor:var(--cursor-pointer, pointer);transition:transform .2s ease}li::scroll-marker:target-current{anchor-name:--active-target;background:var(--color-link);transform:translateY(-.5rem)}}@media screen and (width>=960px){display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));grid-auto-flow:dense;gap:var(--space-l)}&.collection-twoitems{@media screen and (width>=960px){grid-template-columns:1fr 1fr}}}.mockup-wrapper{width:100%;height:auto;border:4px solid var(--color-bg-xh);border-radius:var(--radius-button-xxl);@supports (corner-shape: squircle){corner-shape:squircle}@media screen and (width>=960px){max-width:1920px;max-height:80vh;object-fit:cover;overflow:auto;cursor:ns-resize}& img,video{width:100%;height:auto}}.section-cards{margin-block-end:var(--space-xl);>*:not(.fullwidth){padding-inline:var(--layout-padding-inline)}.section-cards-title{margin-block-end:var(--space-xs)}.section-cards-wrapper{width:100vw;& li{list-style:none;padding:0;margin:0}@media screen and (width<=1200px){padding-block:var(--space-s);display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;transition:scroll .5s ease;scroll-padding-inline:1.2rem;scrollbar-width:none;position:relative;gap:var(--space-main);scroll-marker-group:after;&::scroll-marker-group{position:relative;align-items:center;justify-content:center;margin-block-start:var(--space-md);padding-inline:var(--layout-padding-inline);display:flex;gap:var(--space-s)}li::scroll-marker{content:"";width:.75rem;height:.75rem;aspect-ratio:1 / 1;background:var(--color-content-softest);border-radius:100%;cursor:var(--cursor-pointer, pointer);transition:transform .2s ease}li::scroll-marker:target-current{anchor-name:--active-target;background:var(--color-link);transform:translateY(-.5rem)}}@media screen and (width>1200px){padding-block:var(--space-main);display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));grid-template-rows:auto;gap:var(--space-l)}}}a.pagecard-linkwrapper{all:unset;cursor:var(--cursor-pointer, pointer);@media(hover:hover)and (pointer:fine){&:hover,&:focus{.pagecard-title{text-decoration:underline;text-decoration-color:var(--color-link)}.pagecard-cover--primary{transform:scale(1.1) rotate(15deg)}.pagecard-cover--zoom{transform:scale(1.5) translateY(-16%)}.entry-to-left{transform:translate(-45%) translateY(-102%)!important}.entry-to-right{transform:translate(0) translateY(100%)!important}.pagecard-cover--secondary{filter:blur(2px)}}}&:focus{.pagecard{outline:4px solid var(--color-link);outline-offset:4px}}& *{cursor:var(--cursor-pointer, pointer)!important}}.pagecard{scroll-snap-align:start;position:relative;display:grid;grid-template-rows:min-content min-content 1fr;overflow:clip;width:100%;min-width:320px;max-width:85vw;height:100%;background:var(--color-bg-xh);border-radius:var(--radius-button-xxxl);@supports (corner-shape: squircle){corner-shape:squircle}.pagecard-cover{grid-area:1 / 1 / 2 / 2;position:relative;aspect-ratio:3 / 2;border-radius:var(--radius-button-xxxl) var(--radius-button-xxxl) 0 0;@supports (corner-shape: squircle){corner-shape:squircle}overflow:clip;.pagecard-cover--primary,.pagecard-cover--zoom{width:100%;height:100%;object-fit:cover;position:relative;z-index:+1;transition:transform .25s}.pagecard-cover--entrywrapper{width:100%;height:100%;position:relative;z-index:+1;>.pagecard-cover--entry{max-width:initial;position:absolute;&:is(.entry-to-left,.entry-to-right){max-height:40%;transition:transform .25s}&.entry-to-left{top:50%;transform:translate(25%) translateY(-102%)}&.entry-to-right{bottom:50%;transform:translate(-70%) translateY(102%)}}}.pagecard-cover--secondary{position:absolute;inset:0;opacity:.3;mask:linear-gradient(to top,rgba(0,0,0,0) 0%,rgb(0,0,0) 10%,rgb(0,0,0) 100%);transition:filter .4s}.pagecard-cover-video{width:100%;height:100%;object-fit:cover}.pagecard-cover-mask{mask:linear-gradient(to top,rgba(0,0,0,0) 0%,rgb(0,0,0) 25%,rgb(0,0,0) 100%)}}.pagecard-timeline{height:min-content;grid-area:1 / 1 / 2 / 2;z-index:+1;padding-block:var(--space-md);padding-inline:var(--space-md);@media screen and (width>1200px){padding-block:var(--space-l);padding-inline:var(--space-l)}>.tag{font-weight:var(--font-weight-semibold)}}.pagecard-heading{display:flex;flex-direction:column;gap:var(--space-xs)}.pagecard-title{font-variation-settings:"opsz" 14,"wght" var(--font-weight-bold),"GRAD" var(--font-grade-chapter-subtitle)!important;line-height:1.1}.pagecard-subtitle{font-family:var(--font-family-secondary);font-style:italic;font-size:var(--font-size-main);opacity:.7;line-height:1.45}.pagecard-description{grid-area:2 / 1 / -1 / -1;display:grid;grid-template-rows:1fr min-content;gap:var(--space-main);margin-block-start:var(--space-s);padding-block-end:var(--space-md);padding-inline:var(--space-md);@media screen and (width>1200px){padding-block-end:var(--space-l);padding-inline:var(--space-l)}.pagecard-tags{display:flex;flex-wrap:wrap;gap:var(--space-xxs);padding-inline-end:var(--space-md);@media screen and (width>1200px){padding-inline-end:var(--space-l)}}}.tag{font-size:var(--font-size-xxs);color:var(--color-content-xxs);background:var(--color-bg-h);border-radius:var(--radius-button-main);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:var(--shadow-main)}}@supports (animation-timeline: scroll()) and (animation-range: entry-crossing){@media(prefers-reduced-motion:no-preference){.animation-scroll-fadeup{will-change:transform,opacity;animation:card--show ease-in-out forwards;-webkit-animation:card--show ease-in-out forwards;animation-timeline:view(block);animation-range:entry 0% cover 45vh}}}@keyframes card--show{0%{opacity:0;transform:translateY(25vh)}to{opacity:1;transform:translateY(0)}}@keyframes palette-item-show{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}.parallax-item{will-change:transform;pointer-events:none;-webkit-backface-visibility:hidden;&:not(:has(p,h1,h2,h3,h4)){user-select:none}}.mask-gradient-block{-webkit-mask-image:linear-gradient(to bottom,transparent,black 15%,black 75%,transparent);mask-image:linear-gradient(to bottom,transparent,black 15%,black 75%,transparent)}.golden-grid{display:grid;grid-template-rows:6fr 6fr 12fr 24fr 16fr 32fr 32fr 26fr 17fr 21fr 21fr 17fr 26fr 32fr 32fr 16fr 24fr 12fr 6fr 6fr;grid-template-columns:6fr 6fr 12fr 24fr 16fr 32fr 32fr 26fr 17fr 21fr 21fr 17fr 26fr 32fr 32fr 16fr 24fr 12fr 6fr 6fr;opacity:.2}.golden-grid--show{position:absolute;inset:0;.padding-inline-start{grid-area:1 / 1 / -1 / span 2;background-color:beige}.padding-block-start{grid-area:1 / 1 / span 2 / -1;background-color:#d3d3d3}}.overlay.astro-zidhxsge{position:fixed;inset:0;background:var(--color-bg-main);z-index:99999;pointer-events:none;opacity:1;transition:opacity .2s ease-out;&.overlay--hide{opacity:0}}.intro.astro-zidhxsge{display:none;z-index:+100000;position:fixed;inset:0;width:100%;height:100vh;height:100dvh;background:var(--color-bg-main);opacity:1;place-items:center;padding:var(--space-main);will-change:clip-path;&.intro--out{animation-name:hideBlockToTop;animation-duration:1s;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(.77,0,.175,1)}&.intro--hide{display:none!important}>.intro_signature.astro-zidhxsge{width:min(100%,100ch)}}@keyframes hideBlockToTop{0%{clip-path:polygon(0% 0%,100% 0%,100% 100%,0% 100%)}to{clip-path:polygon(0% 0%,100% 0%,100% 0%,0% 0%)}}a.logo--wrapper{view-transition-name:header-logo;width:fit-content}nav.site-navigation{font-family:var(--font-family-secondary)}@media screen and (width<1200px){.header-menu{view-transition-name:header-menu;width:90vw;height:100vh;background:radial-gradient(circle at 90% 95%,var(--color-brand-xxs),var(--color-brand-xd) 90%);position:fixed;top:0;right:0;will-change:transform;transform:translate(103%);padding:var(--space-l);color:var(--color-const-light);border-radius:4rem 0 0 6rem;transition:transform .4s cubic-bezier(.74,.29,.33,1.12);@supports (corner-shape: squircle){corner-shape:squircle}& ul{list-style:none;padding-block:4rem;& li{width:max-content;font-size:var(--font-size-l);padding-block-end:var(--space-l);& a{all:unset;cursor:var(--cursor-pointer, pointer);width:max-content}}}&.show_menu{transform:translate(3%);box-shadow:-4px 0 40px #01010166}}.menu-contacts{display:flex;flex-direction:column;gap:var(--space-l);>*>p{display:flex;flex-direction:column;gap:var(--space-xs)}.contact--link{font-family:var(--font-family-secondary);font-size:var(--font-size-l);font-weight:var(--font-weight-black);color:var(--color-const-light)}}}@media screen and (width>=1200px){nav.site-navigation{width:fit-content;height:var(--size-button-main);margin:0 auto;background:var(--color-button-bg-main);padding:var(--space-xxs);border-radius:var(--radius-button-largest);box-shadow:var(--shadow-main);isolation:isolate;anchor-name:--hovered-link;& li:is(:hover,:focus){anchor-name:--hovered-link}&:before,&:after{content:"";position:absolute;will-change:top,left,right,bottom;top:calc(anchor(bottom) - 4px);left:calc(anchor(left) + 12px);right:calc(anchor(right) + 12px);bottom:anchor(bottom);border-radius:.75rem;position-anchor:--hovered-link;transition:.5s linear(0,.029 1.6%,.123 3.5%,.651 10.6%,.862 14.1%,1.002 17.7%,1.046 19.6%,1.074 21.6%,1.087 23.9%,1.086 26.6%,1.014 38.5%,.994 46.3%,1)}&:before{z-index:-1;background:var(--color-button-bg-hover)}&:after{z-index:-2;background:var(--color-button-bg-hover)}&:has(a:is(:hover,:focus)):before,&:has(a:is(:hover,:focus)):after{top:anchor(top);left:anchor(left);right:anchor(right);bottom:anchor(bottom);@supports (corner-shape: squircle){corner-shape:squircle;border-radius:var(--radius-button-largest)}}&:has(li:first-of-type a:is(:hover,:focus)):before,&:has(li:first-of-type a:is(:hover,:focus)):after{@supports (corner-shape: squircle){border-radius:var(--radius-button-largest)}}&:has(li:last-of-type a:is(:hover,:focus)):before,&:has(li:last-of-type a:is(:hover,:focus)):after{@supports (corner-shape: squircle){border-radius:var(--radius-button-largest)}}@supports (corner-shape: squircle){border-radius:var(--radius-button-largest);corner-shape:squircle}>ul{height:100%;padding:0;margin:0;list-style:none;display:flex;& li{padding-inline:.75rem;display:grid;place-items:center;color:var(--color-link)}}& a{display:block;width:max-content;align-items:center;text-decoration:none;color:currentColor;@media(hover:hover)and (pointer:fine){&:hover,&:focus{color:var(--color-const-light)}}}}.menu-contacts{display:none}}.header_controls.astro-dxdab6uj{view-transition-name:header-controls;display:flex;justify-content:end;gap:var(--space-s);z-index:+1}@media screen and (width>=1200px){.button_menu.astro-dxdab6uj{display:none}}.button_smilicon.astro-dxdab6uj{width:var(--size-button-main);height:var(--size-button-main);border-radius:var(--radius-button-largest);cursor:var(--cursor-pointer, pointer);padding:calc(var(--space-s) * 1.1);background:var(--color-button-bg-main);box-shadow:var(--shadow-main);@media(hover:hover)and (pointer:fine){&:hover{background:var(--color-button-bg-focus);>svg.astro-dxdab6uj path.astro-dxdab6uj{stroke:var(--color-const-light)}}}@supports (corner-shape: squircle){corner-shape:squircle}}.button_smilicon.astro-dxdab6uj svg.astro-dxdab6uj{pointer-events:none}.button_smilicon.astro-dxdab6uj svg.astro-dxdab6uj path.astro-dxdab6uj{fill:none;stroke:var(--color-button-icon-controls);stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:var(--icon-stroke)}.button_smilicon.astro-dxdab6uj.button_smilicon--onmenu svg.astro-dxdab6uj path.astro-dxdab6uj{stroke:var(--color-const-light)}.progressive-blur-container.astro-dx6afsyz{position:fixed;width:100%;z-index:5;inset:0 0 auto;height:7rem;pointer-events:none;&:before{position:absolute;inset:0;content:"";z-index:1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);mask:linear-gradient(to top,rgba(0,0,0,0) 0%,rgba(0,0,0,.1) 12.5%,rgba(0,0,0,1) 25%,rgba(0,0,0,0) 37.5%)}&:after{position:absolute;inset:0;content:"";z-index:8;-webkit-backdrop-filter:blur(64px);backdrop-filter:blur(64px);mask:linear-gradient(to top,rgba(0,0,0,0) 87.5%,rgba(0,0,0,.3) 100%)}}.progressive-blur-container.astro-dx6afsyz>.blur-filter.astro-dx6afsyz{position:absolute;inset:0}.progressive-blur-container.astro-dx6afsyz>.blur-filter.astro-dx6afsyz:nth-child(1){z-index:2;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);mask:linear-gradient(to top,rgba(0,0,0,0) 12%,rgba(0,0,0,1) 25%,rgba(0,0,0,1) 35%,rgba(0,0,0,0) 50%)}.progressive-blur-container.astro-dx6afsyz>.blur-filter.astro-dx6afsyz:nth-child(2){z-index:3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);mask:linear-gradient(to top,rgba(0,0,0,0) 25%,rgba(0,0,0,1) 35%,rgba(0,0,0,1) 50%,rgba(0,0,0,0) 65%)}.progressive-blur-container.astro-dx6afsyz>.blur-filter.astro-dx6afsyz:nth-child(3){z-index:4;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);mask:linear-gradient(to top,rgba(0,0,0,0) 35%,rgba(0,0,0,1) 50%,rgba(0,0,0,1) 65%,rgba(0,0,0,0) 75%)}.progressive-blur-container.astro-dx6afsyz>.blur-filter.astro-dx6afsyz:nth-child(4){z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);mask:linear-gradient(to top,rgba(0,0,0,0) 45%,rgba(0,0,0,1) 65%,rgba(0,0,0,1) 75%,rgba(0,0,0,0) 90%)}.progressive-blur-container.astro-dx6afsyz>.blur-filter.astro-dx6afsyz:nth-child(5){z-index:6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);mask:linear-gradient(to top,rgba(0,0,0,0) 65%,rgba(0,0,0,1) 75%,rgba(0,0,0,1) 85%,rgba(0,0,0,0) 100%)}.progressive-blur-container.astro-dx6afsyz>.blur-filter.astro-dx6afsyz:nth-child(6){z-index:7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);mask:linear-gradient(to top,rgba(0,0,0,0) 25%,rgba(0,0,0,1) 90%,rgba(0,0,0,1) 100%)}.progressive-blur-container.astro-dx6afsyz>.gradient.astro-dx6afsyz{position:absolute;inset:0;background:linear-gradient(to bottom,var(--color-bg-main) 15%,color-mix(in oklch,var(--color-bg-main),transparent 50%) 45%,color-mix(in oklch,var(--color-bg-main),transparent 80%) 75%,color-mix(in oklch,var(--color-bg-main),transparent 95%) 90%,transparent);opacity:.6}header.header{flex-shrink:0;position:fixed;top:0;z-index:+10000;padding-inline:var(--space-main);padding-block:var(--space-s);width:100%;display:grid;grid-template-columns:1fr 1fr;justify-content:space-between;align-items:center;@media screen and (width>=1200px){padding-inline:var(--space-xl);grid-template-columns:1fr auto 1fr}}.sv_signature{width:min(16rem,58vw);filter:drop-shadow(.1rem .5rem .5rem var(--color-bg-main));cursor:var(--cursor-pointer, pointer);& *{pointer-events:none;cursor:var(--cursor-pointer, pointer)}}.ascii-art{-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:pre;margin:0;padding:0;color:var(--color-link);font-family:monospace;font-family:var(--font-family-secondary);font-size:clamp(.3rem,.28rem + .2vw,.5rem);@media screen and (width>450px){font-size:var(--font-size-xxxs)}@media screen and (width>850px){font-size:var(--font-size-xxs)}}footer.footer{view-transition-name:footer;flex-shrink:0;padding-inline:var(--layout-padding-inline);border-block-start:var(--color-brand-main) 1px solid;color:var(--color-content-main);position:relative;.contacts{display:flex;flex-direction:column;gap:var(--space-main);margin-block:var(--space-l);@media screen and (width>1200px){margin-block:var(--space-xxl)}& p{font-weight:var(--font-weight-bold)}.contact--link{font-family:var(--font-family-secondary);font-weight:var(--font-weight-regular)}}.footer-bg{position:absolute;width:min(100%,70rem);max-height:100%;inset-inline-end:0;inset-block-end:0;display:flex;justify-content:end;@media screen and (width<960px){inset-block-start:4rem}@media screen and (width>1050px){inset-block-start:-1rem}@media screen and (width>1360px){inset-block-start:-3rem}}}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/roboto-flex-cyrillic-full-normal-B6SGQ0Mc.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/roboto-flex-latin-full-normal-Bs8sFGIT.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cascadia Mono Variable;font-style:normal;font-display:swap;font-weight:200 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/cascadia-mono:vf@latest/latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cascadia Mono Variable;font-style:normal;font-display:swap;font-weight:200 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/cascadia-mono:vf@latest/cyrillic-wght-normal.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cascadia Mono Variable;font-style:italic;font-display:swap;font-weight:200 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/cascadia-mono:vf@latest/latin-wght-italic.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cascadia Mono Variable;font-style:italic;font-display:swap;font-weight:200 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/cascadia-mono:vf@latest/cyrillic-wght-italic.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}body{display:flex;flex-direction:column;min-height:100vh}main{width:100%;background:var(--color-bg-main);flex-grow:1}
