@font-face{font-family:Digital Pixel;src:url(data:application/font-woff2;base64,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)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:dark;--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(57.7% .245 27.325);--radius:.625rem;--font-pixel:"Digital Pixel", "JetBrains Mono", "Space Mono", "Courier New", monospace;--font-primary:"JetBrains Mono", "Space Mono", "Courier New", monospace;--font-secondary:"Space Mono", "JetBrains Mono", "Courier New", monospace;--background:oklch(8% .01 280);--foreground:oklch(90% .1 280);--card:oklch(12% .02 280);--card-foreground:oklch(90% .1 280);--primary:oklch(70% .3 280);--primary-foreground:oklch(8% .01 280);--secondary:oklch(65% .25 320);--secondary-foreground:oklch(95% .1 280);--muted:oklch(20% .05 280);--muted-foreground:oklch(60% .15 190);--accent:oklch(70% .25 190);--accent-foreground:oklch(8% .01 280);--border:oklch(20% .05 280);--input:oklch(15% .02 280);--ring:oklch(70% .3 280);--warm-orange:oklch(68% .22 45);--warm-yellow:oklch(80% .2 90);--warm-red:oklch(55% .25 15);--muted-gray:oklch(35% .02 280)}*{box-sizing:border-box}html{scrollbar-gutter:stable both-edges}body{font-family:var(--font-primary);background-color:var(--background);color:var(--foreground);min-height:100dvh;margin:0;padding:0}.skip-link{background:var(--card);color:var(--primary);text-underline-offset:3px;border:2px solid var(--primary);z-index:20;border-radius:6px;padding:.5rem .75rem;text-decoration:underline;transition:transform .14s;position:absolute;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus-visible{outline:none;transform:translateY(0)}a:focus-visible,button:focus-visible{outline:2px solid var(--warm-yellow);outline-offset:3px}.container{grid-template-columns:1fr;place-self:center;row-gap:1rem;width:min(75%,960px);min-height:100dvh;margin:auto;padding:2rem;display:grid;position:relative;overflow:hidden}@media (width<=768px){.container{row-gap:1rem;width:100%;padding:1rem}}.pixel-font{font-family:var(--font-pixel);letter-spacing:.15em;text-shadow:0 0 10px #c864ff99;font-weight:400}.cyber-glow{text-shadow:0 0 8px #c864ffcc,0 0 16px #ff009666}.font-normal{font-weight:400}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-alt{font-family:var(--font-secondary)}.decorative-shape{pointer-events:none;opacity:.15;z-index:0;font-size:3rem;position:fixed}.shape-1,.shape-2,.shape-3,.shape-4,.shape-5,.shape-6,.shape-7,.shape-8{top:var(--top);left:var(--left);font-size:var(--font-size);opacity:var(--opacity);transform:var(--transform);animation:pulse var(--animation-duration) ease-in-out infinite}@media (prefers-reduced-motion:reduce){[class*=shape-]{animation:none}}@keyframes pulse{0%,to{opacity:.25}50%{opacity:.4}}.header{z-index:10;grid-template-columns:minmax(0,1fr) auto;place-items:start stretch;gap:1rem 1.5rem;display:grid;position:relative;& .header-text{flex-direction:column;gap:.75rem;min-width:0;display:flex}& .site-title{margin:0;font-size:clamp(1.6rem,3.6vw,2.6rem)}& .site-title-link{color:var(--primary);overflow-wrap:anywhere;max-width:100%;text-shadow:0 0 6px color-mix(in oklab, var(--primary) 30%, transparent), 0 0 12px color-mix(in oklab, var(--primary) 20%, transparent);padding-bottom:2px;text-decoration:none;transition:transform .25s,text-shadow .25s;display:inline-block;&:hover{text-shadow:0 0 20px color-mix(in oklab, var(--primary) 50%, transparent), 0 0 40px color-mix(in oklab, var(--primary) 40%, transparent)}}& .site-subtitle{color:var(--accent);gap:.15rem;font-size:.75rem;display:grid;& p{margin:0}}& .avatar-box{border:3px solid var(--accent);flex-shrink:0;justify-self:end;width:12rem;height:8rem}& .avatar{object-fit:cover;width:100%;height:100%}}.hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.cta{font-family:var(--font-pixel);text-transform:uppercase;letter-spacing:.12em;background-color:var(--card);border:3px solid;padding:10px 12px;font-size:.85rem;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s,color .12s;display:inline-block}.cta-projects{color:var(--secondary-foreground);border-color:var(--secondary);box-shadow:0 0 14px color-mix(in oklab, var(--primary) 30%, transparent)}.cta-contact{border:3px solid;border-color:var(--warm-yellow);color:var(--secondary-foreground);box-shadow:0 0 14px color-mix(in oklab, var(--warm-yellow) 30%, transparent)}.cta:hover{transform:translateY(-1px)}@media (width<=768px){.header{& .site-title{font-size:1.6rem}& .site-subtitle{font-size:.5rem}& .avatar-box{width:6rem}}}.pixel-object{image-rendering:pixelated;backface-visibility:hidden}picture{width:100%;height:100%;display:block}picture img{object-fit:cover;width:100%;height:100%}.main{z-index:10;grid-template-columns:1fr;row-gap:1rem;max-width:80rem;margin:0 auto;display:grid;position:relative}.section{background-color:var(--card);image-rendering:pixelated;border:3px solid;padding:1rem}.section-about{border-color:var(--secondary)}.section-side-projects{border-color:var(--accent)}.section-publicity{border-color:var(--primary)}.section-contact{border-color:var(--warm-yellow)}.section-title{color:var(--secondary-foreground);margin-block-end:1.5rem;font-size:1.5rem;font-weight:700}.section-content{color:color-mix(in oklch, var(--foreground) 90%, transparent);flex-direction:column;gap:1rem;font-size:.875rem;line-height:1.6;display:flex;& p{margin:0}}@media (width>=768px){.section-content{font-size:1rem}}.projects-list{flex-direction:column;gap:1rem;display:flex}.project-card{background-color:var(--card);border:2px solid var(--muted);padding:1.5rem;& .project-header a{color:var(--primary);border-bottom:2px solid;padding-bottom:2px;text-decoration:none}}.project-thumbnail{object-fit:cover;image-rendering:auto;width:100%;height:auto;transition:transform .2s;display:block}.project-card:hover .project-thumbnail{transform:scale(1.02)}.project-header{flex-direction:column;align-items:flex-start;gap:.25rem;margin-block-end:.75rem;display:flex}@media (width>=768px){.project-header{flex-direction:row;justify-content:space-between;align-items:baseline;gap:1.5rem}}.project-dates{font-family:var(--font-secondary);color:color-mix(in oklch, var(--foreground) 80%, transparent);white-space:nowrap;font-size:.8125rem}.project-title{color:var(--primary);margin:0;font-size:1.125rem;font-weight:700;line-height:1.6;transition:text-shadow .12s,color .12s;&:hover{text-shadow:0 0 20px color-mix(in oklab, var(--primary) 50%, transparent), 0 0 40px color-mix(in oklab, var(--primary) 40%, transparent)}}.project-description{color:color-mix(in oklch, var(--foreground) 80%, transparent);margin:0;font-size:.875rem}.contact-buttons{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.contact-link{font-family:var(--font-pixel);text-transform:none;color:var(--primary);box-shadow:none;-webkit-tap-highlight-color:transparent;text-transform:uppercase;background:0 0;border:2px solid;border-radius:0;margin:0;padding:6px 8px;font-size:.85rem;line-height:1;text-decoration:none;transition:transform .12s,text-shadow .12s,color .12s;display:inline-block}.contact-link:hover,.contact-link:focus{text-shadow:0 0 8px color-mix(in oklab, var(--primary) 30%, transparent);color:color-mix(in oklch, var(--primary) 85%, transparent)}.contact-link:active{transform:none}@media (width<=767px){.contact-link{padding:8px 10px;font-size:.95rem}}.footer{text-align:center;color:var(--muted-foreground);border-top:3px solid var(--muted);z-index:10;padding-top:2rem;font-size:.75rem;position:relative;& p{justify-content:center;align-items:center;margin:auto;display:flex}& img{user-select:none;height:2rem;margin-inline:0 .25rem}}