@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&display=swap";@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;600;700&family=Inter:ital,opsz@0,14..32;1,14..32&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&family=Roboto:ital,wdth,wght@0,77.7,100;1,77.7,100&display=swap";:root{--bg: #f7f5f2;--paper: #fdfcf9;--ink: #1a1a1a;--moss: #527e59;--pine: rgb(52, 88, 58);--accent-soft: #656e67;--font-size-sm: clamp(.8rem, 2vw, 1rem);--font-size-base: clamp(1rem, 2.5vw, 1.2rem);--font-size-lg: clamp(1.5rem, 4vw, 2rem);--font-size-xl: clamp(2rem, 6vw, 3.5rem);--font-size-xxl: clamp(3rem, 8vw, 6rem);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem}*{margin:0;padding:0;box-sizing:border-box;user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-tap-highlight-color:transparent}canvas{display:block}.max480{display:none}.page-container{width:100%;height:100%;flex-direction:column;text-align:center;align-items:center;justify-content:center;display:flex}.page-content{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:start;overflow-y:auto}.header{width:100%;flex-direction:column;padding-top:1.5rem;display:flex;align-items:center;justify-content:end}.header div{font-size:calc(5rem + 2vw);letter-spacing:2px;line-height:.8;color:#527e59;font-family:KiwiSoda,sans-serif;-webkit-user-select:none;user-select:none}.header p{font-size:calc(1rem + .5vw);color:#527e59;font-family:VCR;font-weight:100;line-height:1.4;letter-spacing:.01em;align-items:center}nav{display:flex;justify-content:left;padding:1.2rem;position:fixed;top:0;width:100%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;font-family:IBM Plex Mono,monospace;font-weight:100;margin:0;flex-wrap:wrap}.nav-item-container{display:flex;flex-direction:row;gap:9px;align-items:center;justify-content:center}.nav-item{display:inline-flex;font-weight:500;text-decoration:inherit;width:min-content;text-align:center;margin:0;align-items:center;justify-content:center;transition:color .5s ease}.nav-item:hover{color:#f0f5f2;transition:color .5s ease}.nav-item:before,.nav-item:after{content:"";display:inline-block;width:2ch;text-align:center;transition:opacity .3s ease;opacity:0}.nav-item:before{content:">>"}.nav-item:after{content:"<<"}.nav-item:before,.nav-item:after{display:inline-block;width:2ch;text-align:center;opacity:0;transition:opacity .3s ease}.nav-item:hover:before,.nav-item:hover:after{opacity:1}.contact-container{display:flex;width:100%;font-size:1rem;font-family:KiwiSoda,sans-serif}.contact-links{display:flex;width:100%;height:max-content;padding-bottom:1.5rem;gap:1.5rem;font-size:calc(.95rem + .5vw);flex-direction:column;align-items:center;padding-top:5vh}.contact-links a{position:relative;color:#5f6760;text-decoration:none;transition:color .3s ease;line-height:1rem}.contact-links a:before{content:"[   ";margin-right:.1ch;transition:content .3s ease}.contact-links a:after{content:"   ]";margin-left:.1ch;transition:content .3s ease}.contact-links a:hover:before{content:'["'}.contact-links a:hover:after{content:'"]'}.contact-links a:hover{color:var(--pine)}.skills-mobile{display:none}.about{display:flex;height:100%;width:100%;flex-wrap:wrap;justify-content:start;align-items:center;font-family:VCR;font-weight:100;margin-top:0rem;overflow-y:auto}.blob{height:110%;position:fixed;z-index:-10;display:flex;justify-content:center;bottom:-10vh;align-items:center;left:0;object-fit:cover;opacity:100%}.about-container{display:flex;width:100%;flex-direction:column;align-items:center;justify-content:start;overflow-y:auto}.about-image-container{width:calc(7rem + 6vw);aspect-ratio:1 / 1;display:flex;justify-content:start;align-items:center;position:relative}.title-container{display:flex;align-self:center;justify-content:center;width:100%;padding:0}.about-info{display:flex;width:100%;align-self:center;flex-direction:column}.about-title{display:flex;font-size:calc(4rem + 1.5vw);border-bottom:2px solid #2f4f3a55;font-family:KiwiSoda,sans-serif;line-height:100%;color:var(--pine);text-align:start;margin-left:0;align-items:end;justify-content:center;text-align:center}.about-text{font-size:calc(1rem + .5vw);font-weight:50;color:var(--pine);flex-direction:column;padding-top:25px;height:100%;justify-content:center;align-self:center;font-weight:700;padding-left:10%;padding-right:10%}.about-text-highlight{color:var(--pine);font-family:VCR;font-weight:700;letter-spacing:1px;font-family:rainyhearts,sans-serif;font-size:calc(1rem + .5vw);word-spacing:2px}.img-border{position:absolute;pointer-events:none;object-fit:cover;width:100%;padding:10%}.about-img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center top;padding:10%}.halftone-bg{background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.15) 2px,transparent 0),radial-gradient(circle at 1px 1px,rgba(255,255,255,.1) 1px,transparent 0);background-size:5px,5px,5px 5px}.projects{width:100%;height:100%;overflow-y:auto}.projects-title{display:flex;font-size:calc(3rem + 5vw);font-family:KiwiSoda,sans-serif;line-height:80%;color:var(--pine);padding:6rem;align-items:end;justify-content:start}.projects-layout{display:flex;width:100%;padding:6rem;gap:4rem;font-family:VCR OSD Mono,monospace;color:#2f4f3a}.projects-list{display:flex;flex-direction:column;gap:1.8rem}.project-row{display:flex;align-items:center;gap:1.4rem;cursor:pointer}.project-box{width:22px;height:22px;border:1px solid #2f4f3a;transition:width .35s ease,background-color .35s ease}.project-title{letter-spacing:.14em;font-size:1rem;opacity:.85}.project-row:hover .project-box{width:64px;background-color:#2f4f3a}.project-row.active .project-box{width:110px;background-color:#2f4f3a}.project-row.active .project-title{opacity:1}.project-panel{flex:1;padding:3rem;border-left:1px solid #2f4f3a55;animation:slideIn .4s ease forwards}@keyframes slideIn{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}.project-panel h2{font-size:1.6rem;margin-bottom:1rem}.project-panel p{max-width:420px;line-height:1.6;opacity:.85}.project-links{margin-top:2rem}.project-links a{margin-right:1.6rem;text-decoration:underline;color:inherit}.dither-container{width:100%;height:100%;position:relative}html,body,#root,canvas{margin:0;padding:0;width:100%;height:100%;top:0;overflow-x:hidden;overflow-y:auto}body{margin:0;display:block;place-items:center;min-width:320px;min-height:100vh;font-family:Space Grotesk,sans-serif;color:#e0e0e0}@media(max-width:480px){.skills-desktop{display:none}.max480{display:flex;flex-direction:column}}@media(max-width:768px){.projects-layout{flex-direction:column;height:auto;min-height:unset;padding:2rem 1.2rem;gap:2rem}.projects-list{gap:1.2rem}.project-row{gap:1rem}.project-box{width:18px;height:18px}.project-row.active .project-box{width:64px}.project-panel{border-left:none;border-top:1px solid #2f4f3a55;padding:1.5rem 0;animation:none}.project-panel p{max-width:100%}.project-links a{display:inline-block;margin-bottom:.5rem}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}}@font-face{font-family:KiwiSoda;src:url(/assets/KiwiSoda-C3uP6YfD.ttf)format("truetype")}@font-face{font-family:VCR;src:url(/assets/VCR_OSD_MONO_1.001-Ceif2qmb.ttf)format("truetype")}@font-face{font-family:rainyhearts;src:url(/assets/rainyhearts-C-NYzKXz.ttf)format("truetype")}html,body,#root{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:#9da594;align-items:center;width:100%;height:100%;margin:0;padding:0;font-size:100%;overflow:hidden}.nav-item,.header div{-webkit-user-select:none;user-select:none}.app{width:100vw;height:100vh;position:relative}.background{z-index:0;width:100%;height:100dvh;position:fixed;top:0;left:0}.content{z-index:10;color:#fff;width:100%;height:100%;padding-top:4em;position:relative}
