@font-face{font-family:Barlow;src:url(/fonts/Barlow-Regular.ttf);font-weight:400}@font-face{font-family:Barlow;src:url(/fonts/Barlow-Italic.ttf);font-weight:400;font-style:italic}@font-face{font-family:Barlow;src:url(/fonts/Barlow-Bold.ttf);font-weight:700;font-style:normal}@font-face{font-family:Barlow;src:url(/fonts/Barlow-BoldItalic.ttf);font-weight:700;font-style:italic}:root{--dark-gray:#bbb;--light-gray:oklch(from var(--dark-gray) calc(l + .1) c h);--white:snow;--main-background-color:#111;--grid-areas-padding:clamp(.8rem, 2dvw, 1.5rem);--grid-gap:.25rem;--main-section-padding:1rem;--font-size-normal:clamp(.8rem, 3dvw + .1rem, 1rem);--font-size-small:clamp(.6rem, 2.8dvw + .1rem, .8rem);--buttons-88-31-width:88px;--project-card-theme-light-border-radius:1.3rem;--theme-dark-font:"Courier New", Courier, monospace;--theme-light-font:Barlow, "TeX Gyre Adventor", "URW Gothic L", sans-serif}@supports (scrollbar-gutter:stable){:root{scrollbar-gutter:stable}}body{margin:0}*{box-sizing:border-box}:not(html){font-size:var(--font-size-normal)}code{font-family:Courier New,Courier,monospace}h1,h2,h3,h4,h5,h6{font-weight:400}h1,h2{text-align:center}h1{letter-spacing:.2rem;margin-top:0;font-size:clamp(1rem,5dvw + .3rem,2rem)}h2{font-size:clamp(.95rem,4dvw + .2rem,1.5rem)}h3{font-size:clamp(.9rem,3.5dvw + .2rem,1.17rem);margin-top:0!important}ol{padding-left:clamp(20px,3dvw,40px)}#site-title>a{font-size:inherit;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:700}#content{gap:var(--grid-gap);display:grid}#content header{grid-area:header}#content main{padding:var(--grid-areas-padding);grid-area:main}#content main.theme-dark{border:1rem ridge var(--light-gray);background-color:var(--main-background-color);height:36rem;overflow-y:auto}@supports (scrollbar-color:snow rgba(0, 0, 0, 0)){#content main.theme-dark{scrollbar-color:snow #0000}}#content.theme-dark{grid-template-columns:12.5rem 1fr 12.5rem;grid-template-areas:"header header header""aside-left main aside-right"}#content.theme-dark #aside-top{display:none}#content.theme-dark #aside-left{padding:var(--grid-areas-padding);grid-area:aside-left}#content.theme-dark #aside-right{padding:var(--grid-areas-padding);grid-area:aside-right}#content.theme-light{grid-template-columns:initial;grid-template-areas:"header""aside-top""main"}#content.theme-light #aside-top{grid-area:aside-top}#content.theme-light #aside-left,#content.theme-light #aside-right{display:none}@media (width<=1024px){#content.theme-dark{grid-template-columns:initial;grid-template-areas:"header""aside-top""main"}#content.theme-dark #aside-top{display:initial;grid-area:aside-top}#content.theme-dark #aside-left,#content.theme-dark #aside-right{display:none}#content.theme-light{grid-template-columns:initial;grid-template-areas:"header""aside-top""main"}#content.theme-light #aside-top{grid-area:aside-top}}.nav-list{padding-left:0;list-style:none}.theme-dark.nav-list{color:#000;margin:0}@media (width<=1024px){.theme-dark.nav-list{gap:var(--grid-gap);text-align:center;margin-top:0;margin-bottom:0;display:flex}.theme-dark.nav-list .nav-item{flex:1}.theme-dark.nav-list .nav-item .nav-link{width:100%;padding:1em 0}}.theme-dark.nav-link{color:currentColor;background-color:var(--dark-gray);border:.3rem outset var(--light-gray);width:100%;font-family:var(--theme-dark-font);padding:.5rem 0;text-decoration:none;display:inline-block}.theme-dark.nav-link:hover{border-style:inset}.theme-dark.nav-link:active{background-color:oklch(from var(--dark-gray) calc(l - .05) c h)}.theme-light.nav-list{text-align:center;margin-top:0;margin-bottom:0;padding:0 1rem;display:flex}.theme-light.nav-link{color:currentColor;font-family:var(--theme-light-font);flex:1;padding:1em;text-decoration:none;transition:color .3s;display:block}.theme-light.nav-link:hover{color:var(--dark-gray)}.theme-light.nav-link:active{color:oklch(from var(--dark-gray) calc(l - .1) c h)}.nav-link:hover{cursor:pointer}@media (width>=1025px){#aside-right{flex-direction:column;align-items:center;gap:.5rem;display:flex}#aside-right>img{width:var(--buttons-88-31-width)}}main section{padding:var(--main-section-padding);margin:var(--grid-areas-padding) 0}#aside-top{overflow:hidden}#aside-top.theme-light{background-color:var(--white);box-shadow:.5rem .5rem 1rem var(--dark-gray);border-radius:1rem}#page-not-found-block{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#page-not-found-block #page-not-found-sentence{font-size:1.4em;font-weight:700}#welcome-container{justify-content:center;align-items:center;height:100%;margin:0;display:flex}#welcome{flex-wrap:wrap;grid-area:welcome;justify-content:center;align-items:center;gap:0 3rem;display:flex}#welcome>img{width:min(193px,100%);height:auto}#welcome>p{text-align:center;align-items:center;max-width:20rem;display:flex}@supports (text-wrap:balance){#welcome>p{text-wrap:balance}}.cv-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.cv-list>li>.title{margin:0}.cv-list>li>.details{font-size:var(--font-size-small)}.cv-list>li>.details.theme-dark{color:#ccc}.cv-list>li>.details.theme-light{color:#888}.projects-grid{justify-content:center;gap:var(--main-section-padding);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));display:grid}@media (width<=500px){.projects-grid{grid-template-columns:1fr}}.project-card{grid-template-rows:auto 1fr;display:grid;overflow:hidden}.project-card img{aspect-ratio:16/9;width:100%;height:auto}.project-card .text-section{flex-direction:column;justify-content:space-between;gap:2rem;padding:0 1rem;display:flex}.project-card .text-section .caption{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.project-card .text-section .caption .title{text-align:center;margin:0}.project-card .text-section .caption .description{font-size:var(--font-size-small);margin:0}.project-card .text-section .technologies{justify-content:flex-start;gap:1rem;display:flex}.project-card .text-section .technologies img{width:auto;height:1.2rem;aspect-ratio:initial}.project-card-link{border-radius:var(--project-card-theme-light-border-radius);-webkit-text-decoration:inherit;text-decoration:inherit;color:inherit;transition:transform .2s;display:flex}.project-card-link:hover{transform:scale(1.025)}.theme-dark.project-card{border:1px dotted;flex:1}.theme-dark.project-card .text-section{padding-bottom:1rem}.theme-light.project-card{border:1px solid var(--dark-gray);border-radius:var(--project-card-theme-light-border-radius);box-shadow:.2rem .2rem 1rem var(--dark-gray);flex:1}.theme-light.project-card .text-section{padding-bottom:var(--project-card-theme-light-border-radius)}#technical-skills-grid{grid-template-columns:repeat(auto-fit,min(100%,4rem + 1dvw));justify-content:center;gap:1rem;display:grid}.skill-card{text-align:center}.skill-card img{max-width:100%;height:clamp(2rem,2rem + 1dvw,2.5rem);margin-bottom:.5rem}.skill-card .caption{font-size:var(--font-size-small);line-height:1}#base-page{flex-direction:column;width:min(90%,85rem);min-height:100dvh;margin:auto;padding:clamp(1rem,2dvw + .2rem,3rem) 0;display:flex}#base-page.theme-dark{color:#fff;font-family:var(--theme-dark-font)}#base-page.theme-light{color:#000;font-family:var(--theme-light-font)}#base-page:before{content:"";z-index:-1;pointer-events:none;position:fixed;inset:0}#base-page.theme-dark:before{background:url(/decoration/stars4.gif)}#base-page.theme-light:before{background:#eee}#theme-switch-container{align-self:flex-end;transition:all .3s}#theme-switch-container:hover{transform:scale(1.5)}#theme-switch-button{cursor:pointer;font-size:clamp(1rem,5dvw + .3rem,1.5rem)}@supports ((-webkit-user-select:none) or (user-select:none)){#theme-switch-button{-webkit-user-select:none;user-select:none}}@supports not ((-webkit-user-select:none) or (user-select:none)){#theme-switch-button{-webkit-user-select:none}}#theme-switch-button>input{display:none}#theme-switch-button.theme-light{text-shadow:.2rem .2rem .5rem var(--dark-gray)}#snake-95__app *,#snake-95__app :before,#snake-95__app :after{box-sizing:border-box}#snake-95__app :not(dialog){margin:0}@media (prefers-reduced-motion:no-preference){@supports (interpolate-size:allow-keywords){#snake-95__app html{interpolate-size:allow-keywords}}}#snake-95__app body{-webkit-font-smoothing:antialiased}#snake-95__app img,#snake-95__app picture,#snake-95__app video,#snake-95__app canvas,#snake-95__app svg{max-width:100%;display:block}#snake-95__app input,#snake-95__app button,#snake-95__app textarea,#snake-95__app select{font:inherit}#snake-95__app p,#snake-95__app h1,#snake-95__app h2,#snake-95__app h3,#snake-95__app h4,#snake-95__app h5,#snake-95__app h6{overflow-wrap:break-word;font-size:1em}@supports (text-wrap:pretty){#snake-95__app p{text-wrap:pretty}}@supports (text-wrap:pretty){#snake-95__app h1,#snake-95__app h2,#snake-95__app h3,#snake-95__app h4,#snake-95__app h5,#snake-95__app h6{text-wrap:balance}}#snake-95__app #root,#snake-95__app #__next{isolation:isolate}#snake-95__app h1{letter-spacing:initial;font-weight:700}#snake-95__app :not(html){font-size:inherit}#snake-95__app main{padding:0}@font-face{font-family:w95f;src:url(/projects/snake-95/w95f.woff2)}@keyframes snake-95__dead-snake-expansion{0%{transform:scale(1)}to{transform:scale(50)}}:root{--snake-95__cell-sidelength:1.5rem;--snake-95__snake-part-width-to-cell-ratio:.6;--snake-95__snake-part-width:calc(var(--snake-95__cell-sidelength) * var(--snake-95__snake-part-width-to-cell-ratio));--snake-95__snake-part-height:calc(var(--snake-95__cell-sidelength) / 2 + var(--snake-95__snake-part-width) / 2);--snake-95__snake-color:black;--snake-95__dead-snake-color:red;--snake-95__food-sidelength:calc(var(--snake-95__cell-sidelength) * .6);--snake-95__food-color:mediumblue;--snake-95__w95-window-color:#c1c1c1;--snake-95__w95-window-border-color:#eee;--snake-95__w95-background-color:#008181;--snake-95__w95-window-button-size:1.1em}#snake-95__app-container{background:url(/projects/snake-95/starsagain.gif);grid-template-rows:auto 1fr;grid-template-areas:"nav-link""app";height:100dvh;padding:1rem;display:grid}#snake-95__app-container .nav-link{grid-area:nav-link;justify-self:start;width:auto;padding-left:1rem;padding-right:1rem}#snake-95__app-container #snake-95__app{grid-area:app;justify-content:center;align-items:center;font-family:w95f,monospace;font-size:2rem;display:flex}#snake-95__app-container #snake-95__app .snake-95__window{background-color:var(--snake-95__w95-window-color);border:.2rem outset var(--snake-95__w95-window-border-color);padding:.2rem;font-size:.6em}#snake-95__app-container #snake-95__app .snake-95__topbar{color:#fff;background-color:#0000a8;justify-content:space-between;padding:.2em;line-height:1;display:flex}@supports ((-webkit-user-select:none) or (user-select:none)){#snake-95__app-container #snake-95__app .snake-95__topbar{-webkit-user-select:none;user-select:none}}#snake-95__app-container #snake-95__app .snake-95__topbar .snake-95__window-buttons{color:#000;gap:.2em;display:flex}#snake-95__app-container #snake-95__app .snake-95__topbar .snake-95__window-buttons>.snake-95__window-button{height:var(--snake-95__w95-window-button-size);width:var(--snake-95__w95-window-button-size);text-align:center;background-color:var(--snake-95__w95-window-color);border:.1em outset var(--snake-95__w95-window-border-color)}#snake-95__app-container #snake-95__app .snake-95__info-bar{padding-left:.5em;padding-right:.5em;padding-top:calc(var(--snake-95__food-sidelength) / 2);padding-bottom:calc(var(--snake-95__food-sidelength) / 2);grid-template-columns:1fr auto 1fr;grid-template-areas:"score instructions.";line-height:1em;display:grid}#snake-95__app-container #snake-95__app .snake-95__info-bar .snake-95__score-container{flex-direction:row;grid-area:score;align-items:center;gap:.5em;display:flex}#snake-95__app-container #snake-95__app .snake-95__info-bar .snake-95__instructions{text-align:center;grid-area:instructions}#snake-95__app-container #snake-95__app .snake-95__grid-container{background-color:var(--snake-95__w95-background-color);border:.2rem inset var(--snake-95__w95-window-border-color);font-size:var(--snake-95__cell-sidelength);place-items:center;display:grid;position:relative;overflow:hidden}#snake-95__app-container #snake-95__app .snake-95__cell{height:var(--snake-95__cell-sidelength);width:var(--snake-95__cell-sidelength);justify-content:center;align-items:center;display:flex}#snake-95__app-container #snake-95__app .snake-95__snake-part{width:100%;height:100%;color:var(--snake-95__snake-color);position:relative}#snake-95__app-container #snake-95__app .snake-95__snake-part.snake-95__dead{color:var(--snake-95__dead-snake-color);animation:4s linear 1s forwards snake-95__dead-snake-expansion}#snake-95__app-container #snake-95__app .snake-95__snake-part>*{background-color:currentColor;display:block;position:absolute}#snake-95__app-container #snake-95__app .snake-95__snake-part>.snake-95__right,#snake-95__app-container #snake-95__app .snake-95__snake-part>.snake-95__left{width:var(--snake-95__snake-part-height);height:var(--snake-95__snake-part-width);top:50%;translate:0 -50%}#snake-95__app-container #snake-95__app .snake-95__snake-part>.snake-95__right{right:0}#snake-95__app-container #snake-95__app .snake-95__snake-part>.snake-95__left{left:0}#snake-95__app-container #snake-95__app .snake-95__snake-part>.snake-95__up,#snake-95__app-container #snake-95__app .snake-95__snake-part>.snake-95__down{width:var(--snake-95__snake-part-width);height:var(--snake-95__snake-part-height);left:50%;translate:-50%}#snake-95__app-container #snake-95__app .snake-95__snake-part>.snake-95__up{top:0}#snake-95__app-container #snake-95__app .snake-95__snake-part>.snake-95__down{bottom:0}#snake-95__app-container #snake-95__app .snake-95__food{height:var(--snake-95__food-sidelength);width:var(--snake-95__food-sidelength);background-color:var(--snake-95__food-color)}#snake-95__app-container #snake-95__app .snake-95__popup{text-align:center;flex-direction:column;gap:.5em;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#snake-95__app-container #snake-95__app .snake-95__popup .snake-95__play-button{cursor:pointer;border-style:outset;border-width:.2em;border-color:var(--snake-95__w95-window-border-color);background-color:var(--snake-95__w95-window-color);width:6em;height:2em;font-size:.8em}#snake-95__app-container #snake-95__app .snake-95__popup .snake-95__play-button:hover{border-style:inset}#snake-95__app-container #snake-95__app .snake-95__popup .snake-95__play-button:active{background-color:oklch(from var(--snake-95__w95-window-color) calc(l - .03) c h)}
