.header__container,.content__container,.footer__container{width:min(100% - 2rem,1200px);margin-inline:auto}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}:is(img,picture,video,canvas,svg){max-width:100%}:is(input,button,textarea,select){font:inherit}:is(a,a:hover){padding:1pt;text-decoration:none}:is(ul,ol){list-style:none}:is(h1,h2,h3,h4,h5,h6){font-size:1em;font-weight:400}:is(button,input[type=submit],input[type=reset],input[type=button]){color:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:3px 10px}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}}:root{--clr-primary-base:225, 50%;--clr-primary-darker:hsl(var(--clr-primary-base), 8%);--clr-primary-dark:hsl(var(--clr-primary-base), 18%);--clr-primary:hsl(var(--clr-primary-base), 23%);--clr-primary-light:hsl(var(--clr-primary-base), 33%);--clr-primary-lighter:hsl(var(--clr-primary-base), 43%);--clr-secondary:#fffaef;--clr-accent:#ffb70b;--clr-white:#fff;--clr-gray-light:#eee;--clr-gray:#ccc;--clr-gray-dark:#333;--clr-black:#2a2a2a;--clr-header-blur:#fffaefcc;--clr-menu-blur:#fffe;--clr-error:#d81616;--clr-success:green;color-scheme:light;--clr-bg:var(--clr-white);--clr-text:var(--clr-black);--clr-text-muted:var(--clr-gray-dark);--clr-heading:var(--clr-primary);--clr-surface:var(--clr-secondary);--clr-input-bg:var(--clr-white);--clr-border:var(--clr-gray-light);--clr-border-strong:var(--clr-gray)}[data-theme=dark]{color-scheme:dark;--clr-bg:var(--clr-primary-darker);--clr-text:hsl(var(--clr-primary-base), 88%);--clr-text-muted:#a3abc2;--clr-heading:var(--clr-secondary);--clr-surface:var(--clr-primary-dark);--clr-border:#1e263e;--clr-border-strong:#364163;--clr-input-bg:var(--clr-primary-dark);--clr-header-blur:#0a0f1f40;--clr-menu-blur:#0a0f1fed;--clr-error:#ff6b6b;--clr-success:#4ade80}::selection{background:var(--clr-accent);color:var(--clr-primary-darker)}*,:after,:before{transition:background .15s,color .15s,box-shadow .15s}body{color:var(--clr-text);isolation:isolate;font-family:Inter,sans-serif;font-size:1.125rem;line-height:1.5}.header{z-index:1;padding-block:1rem;transition:all .175s;position:fixed;inset:0 0 auto}.header.blur{backdrop-filter:blur(.25rem);background:var(--clr-header-blur);padding-block:.5rem}.header__container{justify-content:space-between;align-items:center;gap:1rem;display:flex}.header__actions{align-items:center;gap:1rem;display:flex}.header__logo{width:100px;display:grid}.header__logo img{grid-area:1/1;display:block}.header__logo--dark{visibility:hidden}.header__nav ul{flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.header__nav ul a{color:var(--clr-heading);font-size:1.125rem}.header__nav ul a:hover,.header__nav ul a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--clr-accent);text-decoration-thickness:.2ch}.theme-toggle{color:var(--clr-heading);place-items:center;padding:5px;transition:color .175s;display:grid}.theme-toggle:hover{color:var(--clr-accent)}.theme-toggle svg{grid-area:1/1}.theme-toggle__icon--sun,[data-theme=dark] .header__logo--light,[data-theme=dark] .theme-toggle__icon--moon{visibility:hidden}[data-theme=dark] .header__logo--dark,[data-theme=dark] .theme-toggle__icon--sun{visibility:visible}.content{background:var(--clr-bg);padding-block:50px}.content__section{padding-block:5rem}.content__section:not(.content__section--hero)+.content__section{position:relative}.content__section:not(.content__section--hero)+.content__section:before,.content__section:not(.content__section--hero)+.content__section:after{content:"";position:absolute;top:0}.content__section:not(.content__section--hero)+.content__section:before{background:var(--clr-border);width:min(100% - 2rem,1200px);height:1px;left:50%;translate:-50%}.content__section:not(.content__section--hero)+.content__section:after{background:var(--clr-accent);border-radius:100vmax;width:3rem;height:3px;left:calc(50% + min(100% - 2rem,1200px)/-2);translate:0 -1px}.footer{z-index:-1;color:#fff;text-align:center;background-color:var(--clr-primary);position:sticky;bottom:0;left:0;right:0}.footer__container{justify-content:space-between;align-items:center;padding-block:1rem;display:flex}.footer__nav ul{justify-content:center;align-items:center;gap:2rem;display:flex}.footer__nav ul a{color:var(--clr-white);font-size:1.125rem}.footer__nav ul a:hover,.footer__nav ul a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--clr-accent);text-decoration-thickness:.2ch}.footer__copyright{background-color:var(--clr-primary-darker);padding:.25rem;font-size:1rem}.footer__name{display:inline-block}.heading{color:var(--clr-heading);padding-bottom:.5rem;font-family:Sora,sans-serif;font-size:2.5rem;font-weight:600}.subheading{color:var(--clr-text-muted);padding-bottom:1rem;font-family:Inter,sans-serif;font-size:1.375rem;display:block}.grid{gap:2rem;display:grid}.card{outline:1pt solid var(--clr-border);border-radius:5px;overflow:clip}.card>a{padding:0}.card__picture{aspect-ratio:2;object-fit:cover;object-position:top left;width:100%;height:auto;box-shadow:0 5px 0 0 var(--clr-accent)}.card__content{padding:1rem}.card__title-container{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:1rem;display:flex}.card__title-container a{color:var(--clr-heading)}.card__title{color:var(--clr-heading);font-family:Sora,sans-serif;font-size:1.375rem;font-weight:600}.card__tags{gap:.5rem;display:flex}.card__tags li{background:var(--clr-surface);outline:1pt solid var(--clr-accent);border-radius:100vmax;padding:.25rem .5rem;font-size:.875rem}.card__link{color:var(--clr-heading);align-items:center;gap:.5rem;margin-top:1rem;display:flex}.card__link:hover{text-decoration:underline;text-decoration-color:var(--clr-accent);text-decoration-thickness:.2ch}.about__picture{aspect-ratio:1/1.1;object-fit:cover;width:100%;height:auto;box-shadow:0 5px 0 0 var(--clr-accent);border-radius:1px}.content__section--hero{background:url(/_astro/background.B85YTnqH.png) bottom/cover no-repeat;height:100dvh}.content__section--hero .heading{font-size:2.5rem}.content__section--hero .subheading{font-size:2rem}.content__section--hero>.grid{padding-top:5vw}.contact__social{margin-top:1rem}.contact__social ul{gap:2rem;display:flex}.contact__social ul a{color:var(--clr-heading)}@media (width>50rem){.header__nav ul{gap:2rem}.content{min-height:100lvh}.content__section--hero .grid,#contact .grid{grid-template-columns:1fr 500px}#projects .grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}#about .grid{grid-template-columns:1fr 350px}}@media (width<=50rem){.header__nav{display:none}.header__actions{justify-content:flex-end}#header__menu-btn{--size:30px;width:var(--size);height:var(--size);display:block;position:relative}#header__menu-btn span{background-color:var(--clr-heading);width:80%;height:2px;transition:all .175s;display:block;position:absolute;left:10%}#header__menu-btn span.top{top:30%}#header__menu-btn span.middle{top:50%}#header__menu-btn span.bottom{top:70%}#header__menu-btn[aria-expanded=true] span.top{top:50%;transform:rotate(45deg)}#header__menu-btn[aria-expanded=true] span.middle{opacity:0}#header__menu-btn[aria-expanded=true] span.bottom{top:50%;transform:rotate(-45deg)}.header__nav{z-index:-1;background-color:var(--clr-menu-blur);backdrop-filter:blur(.25rem);opacity:0;transition-property:transform,opacity;transition-duration:.35s;display:block;position:absolute;top:100%;left:0;right:0;overflow:hidden;transform:translateY(-100%)}.header__nav ul{flex-direction:column;width:100%;padding-block:.5rem}.header__nav li{width:100%;display:block}.header__nav li:not(:last-child){border-bottom:1pt solid var(--clr-border-strong)}.header__nav a{text-align:center;padding-block:1rem;display:block}.header__nav[aria-expanded=true]{opacity:1;transform:translateY(0)}.footer__container{flex-direction:column;gap:2rem}.footer__nav:not(:last-child) ul{flex-direction:column;gap:.5rem}}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border-width:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.highlight{font-style:normal;text-decoration:underline!important;text-decoration-color:var(--clr-accent)!important;text-decoration-thickness:.2ch!important}@media (width<=50rem){.desktop-only{display:none!important}}@media (width>50rem){.mobile-only{display:none!important}}.form{outline:1pt solid var(--clr-border);border-radius:5px;padding:1rem}.form fieldset{border:0;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;display:flex}.form fieldset label{flex:200px}.form fieldset label span{color:var(--clr-heading)}.form fieldset label input,.form fieldset label textarea,.form fieldset label select{width:100%;color:var(--clr-text);background:var(--clr-input-bg);outline:1pt solid var(--clr-border-strong);border:0;border-radius:5px;margin-top:.5rem;padding:.5rem .75rem;font-size:.85em;transition:outline-color .175s;display:block}.form fieldset label input::placeholder,.form fieldset label textarea::placeholder,.form fieldset label select::placeholder{color:var(--clr-text-muted);opacity:1}.form fieldset label input:hover,.form fieldset label textarea:hover,.form fieldset label select:hover{outline-color:var(--clr-text-muted)}.form fieldset label input:focus-visible,.form fieldset label textarea:focus-visible,.form fieldset label select:focus-visible{outline:2pt solid var(--clr-accent)}.form fieldset label input:-webkit-autofill,.form fieldset label textarea:-webkit-autofill,.form fieldset label select:-webkit-autofill{-webkit-text-fill-color:var(--clr-text);box-shadow:inset 0 0 0 100vmax var(--clr-surface);caret-color:var(--clr-text)}.form fieldset label textarea{resize:vertical;height:10ch;min-height:5ch;max-height:15ch}.form .form-status{text-align:center;font-size:1rem}.form .form-status.success{color:var(--clr-success)}.form .form-status.error{color:var(--clr-error)}.form input[type=submit]{width:100%;color:var(--clr-primary-darker);background:var(--clr-accent);padding:.6rem;transition:filter .175s;display:block}.form input[type=submit]:hover{filter:brightness(1.1)}.form input[type=submit]:focus-visible{outline:2pt solid var(--clr-heading);outline-offset:2pt}
