*,*: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: "JetBrains Mono Variable", 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)}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;@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)}.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-main);: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;display:flex;flex-direction:column;gap:var(--space-main)}.article-title{font-variation-settings:"opsz" 11,"wght" var(--font-weight-extrabold),"GRAD" 140!important;letter-spacing:-.0175em;font-kerning:auto;font-optical-sizing:auto;white-space:normal;text-wrap:balance}.article-subtitle{font-size:var(--font-size-xl);font-kerning:auto;font-optical-sizing:auto;letter-spacing:-.005em;line-height:1.3;font-variation-settings:"opsz" 11,"wght" var(--font-weight-medium),"GRAD" -50!important;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){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-inlinepadding{padding-inline:var(--layout-padding-inline)}.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 1fr;align-items:start;@media screen and (width>1200px){gap:var(--space-l)}}.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}}.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: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);@media screen and (width<960px){display:flex;gap:var(--space-md);overflow-x:auto;padding-block:var(--space-s);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;.collection-item{width:min(440px,87vw);scroll-snap-align:start}}@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:100dvw;& 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;width:100vw;align-items:center;justify-content:center;margin-block-start:1rem;padding-inline:var(--layout-padding-inline);display:flex;gap:var(--space-s)}li::scroll-marker{content:"";width:1rem;height:1rem;aspect-ratio:1 / 1;background:var(--color-content-softest);border-radius:100%;cursor: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)}@media screen and (width>1600px){grid-template-columns:repeat(auto-fit,minmax(600px,1fr))}}}a.pagecard-linkwrapper{all:unset;cursor: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}}}.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-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-size:var(--font-size-main);font-variation-settings:"opsz" 16,"wght" var(--font-weight-regular),"GRAD" var(--font-grade-medium)!important;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{animation:card--show .7s ease-in-out;-webkit-animation:card--show .7s ease-in-out;animation-timeline:view(block);animation-range-start:cover 0%;animation-range-end:55vh;@starting-style{transform:translateY(25vh)}}@keyframes card--show{0%{opacity:0;transform:translateY(200px)}to{opacity:1;transform:translateY(0)}}}}.parallax-item{will-change:transform;pointer-events:none;user-select:none;-webkit-backface-visibility:hidden}.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: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: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){&.astro-dxdab6uj: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 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;&.astro-dx6afsyz: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%)}&.astro-dx6afsyz: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))}.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}}}body{display:flex;flex-direction:column;min-height:100vh}main{width:100%;background:var(--color-bg-main);flex-grow:1}@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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.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}
