.geist-pixel-main{font-optical-sizing:auto;font-variation-settings:"ELSH" 0;font-family:Geist Pixel,sans-serif;font-style:normal;font-weight:400}.geist-main{font-optical-sizing:auto;font-family:Geist,sans-serif;font-style:normal;font-weight:400}*,:before,:after{box-sizing:border-box}body{margin:0;font-family:Geist Pixel,sans-serif}html{scroll-behavior:smooth}#hero,#about,#projects,#skills,#services,#contact{scroll-margin-top:5rem}:root{--main-background:#fff;--main-card:#ebebeb;--main-text:#000;--secondary-text:#4d4d4d;--main-accent:#1e9e45;--link-hover:#e6e4e4;--link-active:#d2d1d1;--accent-hover:#1a883b;--accent-active:#187c36;--slanted-shape:polygon(.75rem 0%, 100% 0%, calc(100% - .75rem) 100%, 0% 100%);--content-max-width:1200px;--section-inset:max(3rem, calc((100% - var(--content-max-width)) / 2));--texture-line:color-mix(in srgb, var(--main-accent) 10%, transparent);--diagonal-texture:repeating-linear-gradient(45deg, transparent 0 14px, var(--texture-line) 14px 16px)}[data-theme=dark]{--main-background:#000;--main-card:#1a1a1a;--main-text:#fff;--secondary-text:#b3b3b3;--main-accent:#1e9e45;--link-hover:#1d1d1d;--link-active:#343434;--texture-line:color-mix(in srgb, var(--main-accent) 14%, transparent)}p{color:var(--main-text);margin:0}a,button{-webkit-tap-highlight-color:transparent}.header{border-bottom:solid var(--main-text) 4px;z-index:100;background-color:var(--main-background);flex-direction:row;justify-content:space-between;padding:1rem .75rem;display:flex;position:sticky;top:0}.left-header{color:var(--main-text);white-space:nowrap;flex-shrink:0;align-items:center;font-size:1.75rem;font-weight:1000;display:flex}.left-header .header-link{padding:.5rem 1.5rem}.menu-toggle,.mode-toggle{background-color:var(--main-background);color:var(--main-text);cursor:pointer;border:none;align-content:center;align-items:center;padding:.5rem;font-size:2rem;display:flex}.menu-toggle{background-color:var(--main-accent);clip-path:var(--slanted-shape)}.nav{display:none}@media (width>=800px){.left-header{font-size:2.5rem}.menu-toggle{display:none}.nav{background-color:var(--main-background);border-bottom:none;flex-direction:row;width:auto;padding:0;display:flex;position:static}.header{gap:1rem}}.nav.nav-open{background-color:var(--main-background);z-index:10;border-bottom:4px solid #000;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:0;display:flex;position:absolute;top:100%;left:0%}.right-header{color:var(--main-text);align-items:center;margin-left:auto;font-size:1.5rem;font-weight:600;display:flex}.header-link{cursor:pointer;text-align:center;color:var(--main-text);clip-path:var(--slanted-shape);justify-content:center;align-items:center;padding:1rem;text-decoration:none;display:flex}@media (hover:hover){.header-link:hover{background-color:var(--link-hover)}}.header-link:active{background-color:var(--link-active)}.contact{background-color:var(--main-accent);color:var(--main-text);clip-path:var(--slanted-shape);font-weight:700}@media (hover:hover){.contact:hover{background-color:var(--accent-hover)}}.contact:active{background-color:var(--accent-active)}.header-buttons{align-items:center;gap:.5rem;display:flex}.hero{border-bottom:solid var(--main-text) 4px;background-color:var(--main-background);background-image:var(--diagonal-texture);isolation:isolate;flex-direction:column;gap:1rem;min-height:80dvh;padding:1rem;display:flex;position:relative;overflow:hidden}.hero-stripes{background-color:var(--main-accent);z-index:-1;clip-path:polygon(0% 0%,100% 0%,100% 100%,98% 100%);width:43%;height:100%;position:absolute;top:0;right:0}.hero-stripes:before{content:"";background-color:var(--main-background);clip-path:polygon(18% 0%,24% 0%,122% 100%,116% 100%);position:absolute;inset:0}@media (width>=800px){.hero{padding:2rem;padding-inline:var(--section-inset)}.left-hero-badges{font-size:1.5rem}}.left-hero-text{align-items:left;flex-direction:column;justify-content:left;gap:1rem;font-size:1.5rem;font-weight:400;display:flex}.intro-1{color:var(--main-accent);font-size:3rem;font-weight:400;line-height:1}.intro-2{color:var(--main-text);letter-spacing:-.05em;margin-bottom:1.3rem;font-family:Geist;font-size:6rem;font-weight:900;line-height:.9;transform:scaleY(1.2)}.left-hero-badges{text-align:center;flex-direction:column;gap:1rem;font-size:1.35rem;font-weight:400;display:flex}.hero-badge-row{gap:1rem;display:flex}.hero-badge{isolation:isolate;color:var(--main-text);background-color:#0000;padding:.85rem;font-weight:600;position:relative}.hero-badge:after{content:"";background-color:var(--main-text);clip-path:var(--slanted-shape);z-index:-2;position:absolute;inset:0}.hero-badge:before{content:"";background-color:var(--main-card);clip-path:var(--slanted-shape);z-index:-1;position:absolute;inset:.14em}.left-hero-buttons{display:flex}.hero-button{background-color:var(--main-accent);color:var(--main-text);clip-path:var(--slanted-shape);cursor:pointer;padding:1.5rem;font-size:1.2rem;font-weight:600;text-decoration:none}@media (hover:hover){.hero-button:hover{background-color:var(--accent-hover)}}.hero-button:active{background-color:var(--accent-active)}.about{border-bottom:solid var(--main-text) 4px;background-color:var(--main-background);background-image:var(--diagonal-texture);isolation:isolate;flex-direction:column;gap:1.5rem;min-height:60dvh;padding:3rem 1rem;display:flex;position:relative;overflow:hidden}.about-main{flex-direction:column;gap:1rem;display:flex}.about-top{display:flex}.about-intro{color:var(--main-accent);font-size:2rem;font-weight:400;line-height:1}.about-tag{color:var(--main-accent);font-size:1.5rem;font-weight:500;line-height:1}.about-info{flex-direction:column;gap:.75rem;font-size:1.5rem;display:flex}.about-info-item{align-items:center;gap:.75rem;display:flex}.about-info-icon{color:var(--main-accent);flex-shrink:0;font-size:2rem}.about-info-logo{object-fit:contain;flex-shrink:0;width:2rem;height:2rem}.about-photo{border:4px solid var(--main-accent);width:100%;max-width:320px;height:auto;display:block}.about-text{font-size:1.5rem;font-weight:400}.about-showcase{grid-template-columns:repeat(2,minmax(0,12rem));justify-content:start;gap:1rem 0;display:grid}.about-table-badge{isolation:isolate;aspect-ratio:4/2;text-align:center;color:var(--main-text);background-color:#0000;justify-content:center;align-items:center;gap:.5rem;margin:0;padding:1rem;font-size:1.5rem;font-weight:400;text-decoration:none;display:flex;position:relative}.about-badge-icon{color:var(--main-accent);flex-shrink:0;font-size:1.75rem}a.about-table-badge{cursor:pointer}@media (hover:hover){a.about-table-badge:hover{color:var(--main-background)}a.about-table-badge:hover:before{background-color:var(--main-accent)}a.about-table-badge:hover .about-badge-icon{color:var(--main-background)}}.about-table-badge:after{content:"";background-color:var(--main-accent);clip-path:var(--slanted-shape);z-index:-2;position:absolute;inset:0}.about-table-badge:before{content:"";background-color:var(--main-card);clip-path:var(--slanted-shape);z-index:-1;position:absolute;inset:3px}@media (width>=600px){.about{padding:4rem 2rem;padding-inline:var(--section-inset);gap:2rem}.about-main{flex-direction:row;align-items:flex-start}.about-top{flex-shrink:0}.about-info{flex-direction:row;gap:2rem}.about-showcase{grid-template-columns:repeat(3,minmax(0,12rem))}}@media (width>=1200px){.about-showcase{grid-template-columns:repeat(6,minmax(0,12rem))}}.project-card{background-color:var(--main-card);border:4px solid var(--main-text);box-shadow:-6px 6px 0 var(--main-accent);flex-direction:column;gap:1rem;padding:1rem;display:flex}.card-top{justify-content:space-between;align-items:center;gap:1rem;display:flex}.card-title{background-color:var(--main-accent);color:var(--main-text);clip-path:var(--slanted-shape);padding:.5rem 1rem;font-size:1.5rem;font-weight:600}.card-github{isolation:isolate;color:var(--main-text);justify-content:center;align-items:center;padding:.5rem 1rem;text-decoration:none;display:flex;position:relative}.card-github-icon{font-size:1.75rem}.card-github:after{content:"";background-color:var(--main-text);clip-path:var(--slanted-shape);z-index:-2;position:absolute;inset:0}.card-github:before{content:"";background-color:var(--main-card);clip-path:var(--slanted-shape);z-index:-1;position:absolute;inset:3px}@media (hover:hover){.card-github:hover:before{background-color:var(--main-accent)}.card-github:hover{color:var(--main-card)}}.card-photo{aspect-ratio:16/9;background-color:var(--main-background);background-image:var(--diagonal-texture);border:2px solid var(--secondary-text)}.card-photo img{object-fit:cover;width:100%;height:100%;display:block}.card-description{color:var(--secondary-text);font-size:1.25rem;font-weight:400}.card-skills{flex-wrap:wrap;gap:.5rem;margin-top:auto;display:flex}.card-skill-badge{background-color:var(--main-text);color:var(--main-card);clip-path:var(--slanted-shape);align-items:center;gap:.4rem;padding:.4rem 1rem;font-size:1rem;font-weight:500;display:flex}.card-skill-icon{object-fit:contain;flex-shrink:0;width:1em;height:1em;font-size:1.25rem}.projects{border-bottom:solid var(--main-text) 4px;background-color:var(--main-background);background-image:var(--diagonal-texture);isolation:isolate;flex-direction:column;gap:1.5rem;min-height:90dvh;padding:3rem 1rem;display:flex;position:relative;overflow:hidden}.projects-intro{color:var(--main-accent);font-size:2rem;font-weight:400;line-height:1}.projects-grid{grid-template-columns:minmax(0,1fr);gap:2rem;display:grid}@media (width>=800px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects{padding:4rem 2rem;padding-inline:var(--section-inset);gap:2rem}}.skills{border-bottom:solid var(--main-text) 4px;background-color:var(--main-background);background-image:var(--diagonal-texture);flex-direction:column;gap:1.5rem;padding:3rem 1rem;display:flex}.skills-intro{color:var(--main-accent);font-size:2rem;font-weight:400;line-height:1}.skills-carousel{background-color:var(--main-card);border:4px solid var(--main-text);box-shadow:-6px 6px 0 var(--main-accent);padding-block:1rem;overflow:hidden}.carousel-track{align-items:center;gap:3rem;width:max-content;animation:25s linear infinite carousel-scroll;display:flex}.carousel-logo{object-fit:contain;flex-shrink:0;width:1em;height:1em;font-size:3rem}@keyframes carousel-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (hover:hover){.skills-carousel:hover .carousel-track{animation-play-state:paused}}@media (prefers-reduced-motion:reduce){.carousel-track{animation:none}}.skills-groups{grid-template-columns:minmax(0,1fr);gap:2rem;display:grid}.skill-group{background-color:var(--main-card);border:4px solid var(--main-text);box-shadow:-6px 6px 0 var(--main-accent);flex-direction:column;gap:1rem;padding:1rem;display:flex}.skill-group-label{background-color:var(--main-accent);color:var(--main-text);clip-path:var(--slanted-shape);align-self:flex-start;padding:.65rem 1.5rem;font-size:1.4rem;font-weight:700}.skill-group-badges{flex-wrap:wrap;gap:.5rem;display:flex}.skill-badge{background-color:var(--main-text);color:var(--main-card);clip-path:var(--slanted-shape);align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:1.15rem;font-weight:600;display:flex}.skill-badge-icon{object-fit:contain;flex-shrink:0;width:1em;height:1em;font-size:1.5rem}@media (width>=600px){.skills{padding:4rem 2rem;padding-inline:var(--section-inset);gap:2rem}.skills-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-group:first-child{grid-column:1/-1}}@media (width>=1200px){.skills-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}.services{border-bottom:solid var(--main-text) 4px;background-color:var(--main-background);background-image:var(--diagonal-texture);flex-direction:column;gap:1.5rem;padding:3rem 1rem;display:flex}.services-intro{color:var(--main-accent);font-size:2rem;font-weight:400;line-height:1}.services-grid{grid-template-columns:minmax(0,1fr);gap:2rem;display:grid}.service-card{background-color:var(--main-card);border:4px solid var(--main-text);box-shadow:-6px 6px 0 var(--main-accent);flex-direction:column;gap:1rem;padding:1rem;display:flex}.service-tag{background-color:var(--main-accent);color:var(--main-text);clip-path:var(--slanted-shape);align-self:flex-start;padding:.5rem 1.25rem;font-size:1rem;font-weight:600}.service-title{color:var(--main-text);font-size:1.75rem;font-weight:700;line-height:1.1}.service-description{color:var(--secondary-text);margin-top:auto;font-size:1.15rem;font-weight:400}@media (width>=600px){.services{padding:4rem 2rem;padding-inline:var(--section-inset);gap:2rem}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-section{background-color:var(--main-background);background-image:var(--diagonal-texture);flex-direction:column;gap:2rem;padding:3rem 1rem;display:flex}.contact-headline{color:var(--main-text);letter-spacing:-.05em;font-family:Geist;font-size:4rem;font-weight:900;line-height:.9}.contact-headline-accent{color:var(--main-accent)}.contact-columns{flex-direction:column;gap:2rem;display:flex}.contact-column{flex-direction:column;gap:.75rem;display:flex}.contact-column-title{color:var(--main-accent);font-size:1.5rem;font-weight:500;line-height:1}.contact-link{color:var(--main-text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;width:fit-content;padding:0;font-family:inherit;font-size:1.15rem;text-decoration:none;display:flex}@media (hover:hover){.contact-link:hover{color:var(--main-accent)}}.contact-icon{flex-shrink:0;font-size:1.5rem}.contact-toast{background-color:var(--main-accent);color:var(--main-background);clip-path:var(--slanted-shape);z-index:10;padding:1rem 2rem;font-size:1rem;font-weight:600;animation:.2s ease-out toast-in;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(1rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (prefers-reduced-motion:reduce){.contact-toast{animation:none}}@media (width>=600px){.contact-section{padding:4rem 2rem;padding-inline:var(--section-inset);flex-direction:row;justify-content:space-between;align-items:center;gap:3rem}.contact-headline{font-size:5rem}.contact-columns{flex-direction:row;gap:3rem}}.footer{background-color:var(--main-accent);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.footer-text{color:var(--main-background);font-size:.9rem;font-weight:500}@media (width>=600px){.footer{padding-inline:var(--section-inset)}}
