*{box-sizing:border-box;margin:0;padding:0}:root{--spacing-xs:6px;--spacing-sm:10px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:30px;--spacing-2xl:40px;--font-mono:var(--font-jetbrains), ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-display:var(--font-vt323), var(--font-mono);--font-size-xs:10px;--font-size-sm:11px;--font-size-base:12px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:20px;--font-size-2xl:28px;--font-size-3xl:32px;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.8;--border-width:1px;--border-radius:2px;--dur-key:80ms;--dur-quick:.16s;--dur-base:.28s;--dur-lnin:.36s;--dur-phosphor:.52s;--dur-chan:.42s;--dur-crt:.9s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-crt:cubic-bezier(.7, 0, .3, 1);--ease-spring:cubic-bezier(.22, 1.2, .36, 1);--z-background:0;--z-grid:1;--z-particles:2;--z-content:10;--z-cursor:100000;--min-touch-target:44px;--container-max-width:1000px;--container-padding:16px;--terminal-padding-x:16px;--terminal-padding-y:20px;--grid-size:30px;--grid-opacity:.2}:root[data-theme=p1]{--bg:#07110b;--surface:#0c1a12;--text:#a8f5c0;--bright:#4dff8f;--dim:#5e9c76;--warn:#ffb454;--error:#ff6e61;--agent:#6fd3ff;--glow:77 255 143;--bg-rgb:7 17 11;--surface-rgb:12 26 18;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=p3]{--bg:#120c05;--surface:#1c140a;--text:#ffd08a;--bright:#ffb000;--dim:#a8834c;--warn:#ff7a45;--error:#ff5d5d;--agent:#8fd8ff;--glow:255 176 0;--bg-rgb:18 12 5;--surface-rgb:28 20 10;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=p4]{--bg:#0a0e14;--surface:#111823;--text:#d9e6f2;--bright:#fff;--dim:#7d8fa3;--warn:#ffc46b;--error:#ff7a85;--agent:#7cc8ff;--glow:255 255 255;--bg-rgb:10 14 20;--surface-rgb:17 24 35;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root,:root[data-theme=night]{--bg:#0f0b1a;--surface:#181229;--text:#e6dcff;--bright:#5cf2ff;--dim:#8d80b3;--warn:#ffc15e;--error:#ff6b8b;--agent:#ff7fdf;--glow:92 242 255;--bg-rgb:15 11 26;--surface-rgb:24 18 41;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=paper]{--bg:#f3f1e7;--surface:#e8e5d6;--text:#1d3325;--bright:#0a6b39;--dim:#5f6e62;--warn:#9a5200;--error:#b3261e;--agent:#0f5e8c;--glow:10 107 57;--bg-rgb:243 241 231;--surface-rgb:232 229 214;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{scroll-behavior:auto;scrollbar-width:none;-ms-overflow-style:none;height:100dvh;overflow:hidden}html::-webkit-scrollbar{width:0;display:none}body::-webkit-scrollbar{width:0;display:none}body{background:var(--bg);font-family:var(--font-mono);color:var(--text);font-size:var(--font-size-base);line-height:var(--line-height-normal);-ms-overflow-style:none;scrollbar-width:none;scroll-snap-type:y mandatory;height:100dvh;overflow:hidden scroll}html:has(.project-page){scrollbar-width:thin;scrollbar-color:rgb(var(--glow) / .45) transparent;height:auto;overflow:visible}html:has(.project-page) body{scroll-snap-type:none;height:auto;overflow:visible}@media (prefers-reduced-motion:no-preference){html:has(.project-page){scroll-behavior:smooth}}html.has-custom-cursor *{cursor:none!important}html:not(.has-custom-cursor) .custom-cursor{display:none}.custom-cursor{pointer-events:none;width:0;height:0;z-index:var(--z-cursor);will-change:transform;transition:opacity var(--dur-quick) var(--ease-out);position:fixed;top:0;left:0}.custom-cursor__dot{background:var(--bright);width:8px;height:8px;box-shadow:0 0 8px rgb(var(--glow) / .4), 0 0 15px rgb(var(--glow) / .15);opacity:.7;transition:transform var(--dur-base) cubic-bezier(.22, 1.2, .36, 1), opacity var(--dur-quick) var(--ease-out);will-change:transform, opacity;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.custom-cursor__ring{border:1.5px solid rgb(var(--glow) / .55);opacity:0;width:36px;height:36px;transition:transform var(--dur-quick) cubic-bezier(.22, 1.2, .36, 1), opacity var(--dur-quick) var(--ease-out);will-change:transform, opacity;border-radius:50%;position:absolute;transform:translate(-50%,-50%)scale(.4)}.custom-cursor__caret{background:var(--bright);width:2px;height:18px;box-shadow:0 0 4px rgb(var(--glow) / .4);opacity:0;transition:opacity var(--dur-key) var(--ease-out);will-change:opacity;position:absolute;transform:translate(-50%,-50%)}.custom-cursor[data-state=default][data-section=home] .custom-cursor__dot{box-shadow:0 0 8px rgb(var(--glow) / .48), 0 0 15px rgb(var(--glow) / .18)}.custom-cursor[data-state=default][data-section=about] .custom-cursor__dot,.custom-cursor[data-state=default][data-section=experience] .custom-cursor__dot{box-shadow:0 0 8px rgb(var(--glow) / .32), 0 0 15px rgb(var(--glow) / .12)}.custom-cursor[data-state=default][data-section=terminal] .custom-cursor__dot{box-shadow:0 0 8px rgb(var(--glow) / .52), 0 0 15px rgb(var(--glow) / .195)}.custom-cursor[data-state=link] .custom-cursor__dot{opacity:1;box-shadow:0 0 12px rgb(var(--glow) / .6), 0 0 22px rgb(var(--glow) / .2);transform:translate(-50%,-50%)scale(1.25)}.custom-cursor[data-state=link] .custom-cursor__ring{opacity:1;transform:translate(-50%,-50%)scale(1)}.custom-cursor[data-hug=true] .custom-cursor__ring{opacity:.9;transition:width var(--dur-base) var(--ease-spring), height var(--dur-base) var(--ease-spring), border-radius var(--dur-base) var(--ease-spring), opacity var(--dur-quick) var(--ease-out);border-width:1px;border-radius:4px}.custom-cursor[data-hug=true] .custom-cursor__dot{opacity:.5;transform:translate(-50%,-50%)scale(.75)}.custom-cursor[data-state=input] .custom-cursor__dot{opacity:0}.custom-cursor[data-state=input] .custom-cursor__caret{animation:cursorCaretBlink var(--cursor-blink-rate,1s) step-end infinite}@keyframes cursorCaretBlink{0%,to{opacity:1}50%{opacity:0}}.custom-cursor[data-pressed=true] .custom-cursor__dot{transition:transform var(--dur-key) cubic-bezier(.4, 0, 1, 1), opacity var(--dur-quick) var(--ease-out);transform:translate(-50%,-50%)scale(.4)}.custom-cursor[data-state=link][data-pressed=true] .custom-cursor__dot{transform:translate(-50%,-50%)scale(.6)}.custom-cursor[data-state=link][data-pressed=true] .custom-cursor__ring{transition:transform var(--dur-key) cubic-bezier(.4, 0, 1, 1), opacity var(--dur-quick) var(--ease-out);transform:translate(-50%,-50%)scale(.65)}.custom-cursor--reduced-motion .custom-cursor__dot,.custom-cursor--reduced-motion .custom-cursor__ring,.custom-cursor--reduced-motion .custom-cursor__caret{transition-duration:.01ms!important}.custom-cursor--reduced-motion[data-state=input] .custom-cursor__caret{opacity:1;animation:none!important}.gradient-background{width:100%;height:100%;z-index:var(--z-background);background:radial-gradient(circle at 20% 30%, rgb(var(--glow) / .07) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgb(var(--glow) / .05) 0%, transparent 50%), linear-gradient(135deg, var(--bg) 0%, var(--surface) 50%, var(--bg) 100%);pointer-events:none;animation:20s infinite gradientShift;position:fixed;top:0;left:0}@keyframes gradientShift{0%,to{opacity:1}50%{opacity:.85}}.grid-overlay{width:100%;height:100%;z-index:var(--z-grid);background-image:linear-gradient(rgb(var(--glow) / .05) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--glow) / .05) 1px, transparent 1px);background-size:var(--grid-size) var(--grid-size);opacity:var(--grid-opacity);pointer-events:none;position:fixed;top:0;left:0;-webkit-mask-image:radial-gradient(circle,#000c 0%,#0000004d 70%,#00000026 100%);mask-image:radial-gradient(circle,#000c 0%,#0000004d 70%,#00000026 100%)}main>section{z-index:var(--z-content);scroll-snap-align:start;scroll-snap-stop:always;height:100dvh;min-height:100dvh;padding:var(--spacing-xl) var(--container-padding);justify-content:center;align-items:center;display:flex;position:relative}@media (max-width:767px){body{scroll-snap-type:y proximity}main>section:not(#terminal){scroll-snap-stop:normal;height:auto}main>section:not(#terminal) .terminal-container{max-height:none;overflow-y:visible}}html.reveal-ready [data-reveal]:not(.is-revealed):not(.is-typing){clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}html.reveal-ready [data-reveal]:not(.is-revealed):not(.is-typing),html.reveal-ready [data-reveal]:not(.is-revealed):not(.is-typing) *{animation:none!important}[data-reveal=type].is-typing [data-type-full]{display:none}[data-reveal=type].has-live [data-type-full]{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}html.reveal-ready .ln-in,.terminal-interactive-line.ln-in{animation:lnin var(--dur-lnin) var(--ease-out) both!important;animation-delay:calc(var(--ln,0) * 30ms)!important}.section-skip-hint{color:var(--dim);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}[data-type-live]:empty,[data-reveal=type][data-caret=typing]:not(.is-typing) [data-type-caret]{display:none}.about-section-prompt,.contact-section-prompt,.experience-section-prompt,.hero-section-prompt,.projects-section-prompt{color:var(--bright)}.contact-section-content,.experience-section-content,.hero-section-content,.projects-section-content,.terminal-section-content{color:var(--text);font-family:var(--font-mono)}.contact-section-command-line,.experience-section-command-line,.projects-section-command-line{font-size:var(--font-size-md);margin-bottom:var(--spacing-lg);line-height:var(--line-height-normal)}.about-section-output-block,.hero-section-output-block{margin-bottom:var(--spacing-lg)}.terminal-container{background:rgb(var(--surface-rgb) / .65);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:var(--border-width) solid rgb(var(--glow) / .4);border-radius:var(--border-radius);padding:var(--terminal-padding-y) var(--terminal-padding-x);max-width:var(--container-max-width);text-align:left;width:98%;max-height:90dvh;box-shadow:0 0 1px var(--bright);overflow:hidden}@media (hover:none) and (pointer:coarse){.terminal-container{-webkit-backdrop-filter:none;background:rgb(var(--surface-rgb) / .82)}}.terminal-header{align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:var(--border-width) solid rgb(var(--glow) / .2);display:flex}.terminal-dot{background:rgb(var(--glow) / .7);border-radius:50%;width:10px;height:10px}.terminal-title{color:var(--dim);font-size:var(--font-size-base);margin-left:6px;font-weight:400}@keyframes section-cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.section-cursor-blink{color:var(--bright);animation:.7s infinite section-cursor-blink;display:inline-block}.hidden{display:none}.visible{display:block}@media (min-width:480px){:root{--spacing-xs:8px;--spacing-sm:12px;--spacing-md:18px;--spacing-lg:26px;--spacing-xl:35px;--spacing-2xl:45px;--font-size-base:13px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:24px;--font-size-2xl:32px;--container-padding:20px;--terminal-padding-x:25px;--terminal-padding-y:25px;--grid-size:35px}.terminal-container{width:96%}.terminal-dot{width:11px;height:11px}.terminal-title{margin-left:8px}}@media (min-width:667px){:root{--spacing-2xl:48px;--font-size-xl:26px;--font-size-2xl:36px;--terminal-padding-y:28px;--grid-size:40px}main>section{padding:var(--spacing-xl) var(--spacing-lg)}}@media (min-width:768px){:root{--spacing-md:20px;--spacing-lg:30px;--spacing-xl:40px;--spacing-2xl:50px;--font-size-base:14px;--font-size-md:16px;--font-size-lg:20px;--font-size-xl:28px;--font-size-2xl:40px;--container-padding:25px;--terminal-padding-x:30px;--terminal-padding-y:30px;--grid-size:45px;--grid-opacity:.3}.terminal-container{width:95%}.terminal-dot{width:12px;height:12px}.terminal-title{margin-left:10px}}@media (min-width:1024px){:root{--spacing-2xl:60px;--font-size-xl:32px;--font-size-2xl:48px;--terminal-padding-x:40px;--terminal-padding-y:35px;--grid-size:50px;--grid-opacity:.35}.terminal-container{width:93%}}@media (min-width:1280px){:root{--terminal-padding-x:50px;--grid-opacity:.4}.terminal-container{width:90%}}@media (min-width:1440px){:root{--terminal-padding-x:60px}.terminal-container{max-width:1100px}}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--bright);outline-offset:3px}::selection{background:var(--bright);color:var(--bg)}@media (hover:none) and (pointer:coarse){a,button{min-width:48px;min-height:48px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-snap-type:y mandatory}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-to-content{z-index:100000;background:rgb(var(--bg-rgb) / .95);border:2px solid var(--bright);color:var(--text);font-family:var(--font-mono);font-size:var(--font-size-sm);transition:top var(--dur-quick) var(--ease-out);padding:12px 24px;text-decoration:none;position:fixed;top:-100%;left:50%;transform:translate(-50%)}.skip-to-content:focus{box-shadow:0 0 20px rgb(var(--glow) / .4), 0 0 40px rgb(var(--glow) / .15);outline:none;top:16px}:focus-visible{outline:2px solid var(--bright);outline-offset:2px;box-shadow:0 0 12px rgb(var(--glow) / .3)}:focus:not(:focus-visible){box-shadow:none;outline:none}@media print{.custom-cursor,.particle-canvas{display:none}section{page-break-inside:avoid}body{cursor:auto}}.particle-canvas{pointer-events:none;width:100%;height:100%;z-index:var(--z-particles);position:fixed;top:0;left:0}@keyframes mouse-ripple{0%{opacity:.8;width:0;height:0}to{opacity:0;width:300px;height:300px}}.mouse-ripple{border:2px solid var(--bright);pointer-events:none;animation:mouse-ripple var(--dur-crt) var(--ease-out) forwards;z-index:var(--z-particles);border-radius:50%;position:fixed}.k{animation:phos var(--dur-phosphor) var(--ease-out) both}@keyframes phos{0%{color:#f2fff6;text-shadow:0 0 8px var(--bright), 0 0 2px #fff}to{color:inherit;text-shadow:0 0 #0000}}@keyframes lnin{0%{opacity:.2;color:#f2fff6;text-shadow:0 0 10px var(--bright)}to{opacity:1;text-shadow:0 0 #0000}}@keyframes crton{0%{filter:brightness(6);opacity:1;transform:scale(.02,.004)}30%{filter:brightness(4);transform:scaleY(.006)}60%{filter:brightness(1.8);transform:scale(1)}to{filter:brightness();transform:scale(1)}}@keyframes chan-out{0%{filter:brightness();transform:scaleY(1)}to{filter:brightness(3);transform:scaleY(.02)}}@keyframes chan-in{0%{filter:brightness(3);transform:scaleY(.02)}to{filter:brightness();transform:scaleY(1)}}.rgb{animation:rgb var(--dur-quick) steps(4) both}@keyframes rgb{0%{text-shadow:-2px 0 #ff3c3ccc,2px 0 #3cdcffcc;transform:translate(1px)}50%{text-shadow:2px 0 #ff3c3ccc,-2px 0 #3cdcffcc;transform:translate(-1px)}to{text-shadow:none;transform:none}}.glitch-text{display:inline}.glitch-text.rgb{display:inline-block}.gch{position:relative}.gch-x{visibility:hidden;color:var(--bright);text-shadow:0 0 6px rgb(var(--glow) / .6);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;top:0;left:0}.gch.on{color:#0000}.gch.on .gch-x{visibility:visible}@keyframes flick{0%,to{opacity:.85}50%{opacity:1}51%{opacity:.7}52%{opacity:1}}::view-transition{background:var(--bg)}html[data-vt=crton]::view-transition-old(root){opacity:0;animation:none}html[data-vt=crton]::view-transition-new(root){animation:crton var(--dur-crt) var(--ease-crt) both;transform-origin:50%}html[data-vt=chan]::view-transition-old(root){animation:chan-out calc(var(--dur-chan) * .35) var(--ease-crt) both}html[data-vt=chan]::view-transition-new(root){animation:chan-in calc(var(--dur-chan) * .65) var(--ease-crt) calc(var(--dur-chan) * .35) both}html.crt-power-on body:before,html.booted body:before{content:"";z-index:99997;pointer-events:none;background-color:var(--bg);background-image:radial-gradient(ellipse at center, rgb(var(--glow) / .9) 0, rgb(var(--glow) / .35) 1px, transparent 3px), linear-gradient(to bottom, transparent calc(50% - 1px), rgb(var(--glow) / .85) 50%, transparent calc(50% + 1px));animation:crt-cover var(--dur-crt) var(--ease-crt) both;background-position:50%;background-repeat:no-repeat;position:fixed;inset:0}@keyframes crt-cover{0%{opacity:1;background-size:4% .6%,0% 100%}30%{opacity:1;background-size:0% 0%,100% 100%}60%{opacity:.6;background-size:0% 0%,100% 100%}to{opacity:0;visibility:hidden;background-size:0% 0%,100% 100%}}@media (prefers-reduced-motion:no-preference){html[data-crt=on] body:after{content:"";z-index:99998;pointer-events:none;background:repeating-linear-gradient(#00000047 0 1px,#0000 1px 3px);animation:4s steps(40,end) infinite flick;position:fixed;inset:0}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){main>section{animation:linear both standby;animation-timeline:view();animation-range:cover}}}@keyframes standby{0%{opacity:.55}30%,70%{opacity:1}to{opacity:.55}}button,.keycap,a.projects-section-link,a.projects-section-footer-link,a.contact-section-link{transition:transform var(--dur-key) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out), background var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out)}button:active:not(:disabled),.keycap:active,a.projects-section-link:active,a.projects-section-footer-link:active,a.contact-section-link:active,.is-keycap-pressed{box-shadow:0 0 14px rgb(var(--glow) / .45);transform:translateY(1px)}html[data-mode=plain]{height:auto;overflow:visible}html[data-mode=plain] body{scroll-snap-type:none;height:auto;overflow:visible}html[data-mode=plain] main>section{scroll-snap-align:none;height:auto;min-height:0;padding:var(--spacing-lg) var(--container-padding)}html[data-mode=plain] main>section:first-child{padding-top:calc(var(--spacing-2xl) + 40px)}html[data-mode=plain] .terminal-container{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface);max-height:none;box-shadow:none;overflow:visible}html[data-mode=plain] .terminal-content{overflow:visible}html[data-mode=plain] .boot-screen,html[data-mode=plain] .gradient-background,html[data-mode=plain] .grid-overlay,html[data-mode=plain] .particle-canvas,html[data-mode=plain] .custom-cursor,html[data-mode=plain] .crt-shader,html[data-mode=plain] .scroll-hint,html[data-mode=plain] .mute-toggle-btn,html[data-mode=plain] body:after,html[data-mode=plain] body:before{display:none!important}html[data-mode=plain].has-custom-cursor *{cursor:auto!important}html[data-mode=plain] *,html[data-mode=plain] :before,html[data-mode=plain] :after{transition:none!important;animation:none!important}#main-content:focus{box-shadow:none;outline:none}
@font-face{font-family:mono;src:url(../media/JetBrainsMono_latin_wght-s.p.2odd3csjijl0b.woff2)format("woff2");font-display:swap;font-weight:100 800}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.qXksfG_className{font-family:mono,mono Fallback}.qXksfG_variable{--font-jetbrains:"mono", "mono Fallback"}
@font-face{font-family:display;src:url(../media/VT323_latin_400-s.p.3wcaarws2hqpf.woff2)format("woff2");font-display:swap;font-weight:400}@font-face{font-family:display Fallback;src:local(Arial);ascent-override:91.26%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:87.66%}.dOfTzW_className{font-family:display,display Fallback;font-weight:400}.dOfTzW_variable{--font-vt323:"display", "display Fallback"}
