@import "https://fonts.googleapis.com/css2?family=VT323&display=swap";@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";@font-face{font-family:SF Pro Rounded;src:url(/fonts/SFProRounded-Regular.otf)format("opentype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:SF Pro Rounded;src:url(/fonts/SFProRounded-Bold.otf)format("opentype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:SF Pro Rounded;src:url(/fonts/SFProRounded-Black.otf)format("opentype");font-style:normal;font-weight:900;font-display:swap}:root{color:#e6f3ff;font-synthesis:none;text-rendering:optimizelegibility;--bg:#050911;--panel:#0b1422;--panel-raised:#102038;--blue:#408dff;--blue-light:#a8d5ff;--text:#e6f3ff;--muted:#8ca7c6;--line:#25405e;--contact-card-shape:polygon(7px 0, calc(100% - 7px) 0, calc(100% - 7px) 2px, calc(100% - 2px) 2px, calc(100% - 2px) 7px, 100% 7px, 100% calc(100% - 7px), calc(100% - 2px) calc(100% - 7px), calc(100% - 2px) calc(100% - 2px), calc(100% - 7px) calc(100% - 2px), calc(100% - 7px) 100%, 7px 100%, 7px calc(100% - 2px), 2px calc(100% - 2px), 2px calc(100% - 7px), 0 calc(100% - 7px), 0 7px, 2px 7px, 2px 2px, 7px 2px);--display:"Press Start 2P", "Courier New", monospace;--body:"VT323", "Courier New", monospace;--content-max:calc(620px + clamp(240px, 22vw, 300px) + clamp(2.5rem, 5vw, 5rem));--gutter:clamp(1.5rem, 4vw, 2.5rem);background:#050911;font-family:VT323,Courier New,monospace;font-weight:400}*{box-sizing:border-box}.pixel-frame{--frame-fill:var(--panel);--frame-outline:#416b99;isolation:isolate;background:var(--frame-outline);clip-path:var(--contact-card-shape);box-shadow:none;border:0;position:relative}.pixel-frame:before{z-index:-1;content:"";background:var(--frame-fill);clip-path:var(--contact-card-shape);position:absolute;inset:2px}html{scroll-behavior:smooth;scrollbar-width:none;background:var(--bg)}html::-webkit-scrollbar{width:0;height:0;display:none}body{background:var(--bg);margin:0}body,button,input,textarea,select{font-family:var(--body)}button,input,textarea,select{font-size:inherit}button{cursor:pointer}a{color:inherit}img{max-width:100%}::selection{color:var(--bg);background:var(--blue-light)}:focus-visible{outline:2px solid var(--blue-light);outline-offset:4px}#root{min-height:100svh}.scroll-portfolio{--display:"SF Pro Rounded", Arial, sans-serif;--body:"SF Pro Rounded", Arial, sans-serif;--bg:#fff;--panel:#f5f5f5;--panel-raised:#e9e9e9;--blue:#000;--blue-light:#3f3f3f;--text:#111;--muted:#5b5b5b;--line:#b8b8b8;--frame-outline:#111;--content-max:900px;--gutter:clamp(1.5rem, 4vw, 3.5rem);font-family:var(--body);color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400}.scroll-portfolio .site-shell{background:var(--bg);flex-direction:column;min-height:100svh;display:flex}.scroll-portfolio .site-shell>main{flex:1}.scroll-portfolio .pixel-frame{--frame-outline:#111;border:1px solid var(--frame-outline,#416b99);background:var(--frame-fill,var(--panel));clip-path:none;border-radius:14px;overflow:hidden;box-shadow:0 8px 20px #0000001f}.scroll-portfolio .pixel-frame:before{display:none}.scroll-portfolio .pixel-button,.scroll-portfolio .filter-button{clip-path:none;filter:none;border-radius:10px}.scroll-portfolio .pixel-button{border:1px solid var(--button-outline);background:var(--button-fill);box-shadow:none}.scroll-portfolio .pixel-button:before{display:none}.scroll-portfolio .filter-button{border-width:1px;box-shadow:0 3px #111}.scroll-portfolio .hero-actions .pixel-button,.scroll-portfolio .hero-actions .pixel-button:hover,.scroll-portfolio .hero-actions .pixel-button:focus-visible{translate:0;rotate:0deg;scale:1;transform:none!important}.scroll-portfolio .hero-actions .pixel-button:active{transform:scale(.98)!important}.scroll-portfolio .tool-pill{border-radius:6px}.scroll-portfolio .project-monogram{border-radius:8px}.scroll-portfolio :focus-visible{outline-color:var(--blue)}.scroll-portfolio ::selection{color:#fff;background:var(--blue)}.scroll-portfolio img{filter:grayscale()}.scroll-portfolio .pixel-frame,.scroll-portfolio .contact-rail>*,.scroll-portfolio .project-monogram,.scroll-portfolio .certification-card,.scroll-portfolio .startup-card{transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s}@media (width>=640px) and (width<=1023px){:root{--gutter:3rem}}@media (width<=374px){:root{--gutter:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.route-link{text-underline-offset:.18em;text-decoration-thickness:.08em}.certification-card:active{transform:scale(.98)}.scroll-portfolio .certification-card.pixel-frame{box-shadow:none;color:#fff;background:#000;border:0}.scroll-portfolio .certification-card.pixel-frame:hover,.scroll-portfolio .certification-card.pixel-frame:focus-visible{box-shadow:none;color:#fff;background:#171717;border:0}@media (width<=640px){.certification-card{min-height:0;padding:18px}}.icon{flex-shrink:0;display:block}.cert-modal-backdrop{--display:"SF Pro Rounded", Arial, sans-serif;--body:"SF Pro Rounded", Arial, sans-serif;z-index:1200;overscroll-behavior:contain;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);font-family:var(--body);background:#0003;place-items:center;padding:24px;animation:.22s both cert-modal-fade-in;display:grid;position:fixed;inset:0}.cert-modal.pixel-frame{clip-path:none;box-shadow:none;background:#000;border:0;border-radius:14px;overflow:auto}.cert-modal.pixel-frame:before{display:none}@keyframes cert-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cert-modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes cert-modal-pop-in{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cert-modal-pop-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.96)}}.cert-modal-kicker{color:#bdbdbd;letter-spacing:.08em;font-size:12px;font-weight:700;display:block}.cert-modal-row-logo{place-items:center;width:20px;height:20px;display:grid}.cert-modal-row-logo .certification-logo{object-fit:contain;width:20px;height:20px}.cert-modal-row-logo .certification-logo-vector{width:18px;height:18px}.cert-modal-row-logo .certification-logo-vector-cisco{width:20px;height:16px}.cert-modal-row-logo .certification-logo-vector-simplilearn{width:20px;height:20px}@media (width<=640px){.cert-modal-backdrop{padding:14px}.cert-modal{max-height:calc(100svh - 28px);padding:52px 18px 22px}.cert-modal-row{grid-template-columns:22px minmax(0,1fr) auto}.cert-modal-row-verify{grid-column:3;justify-self:end}.cert-modal-row-verify-label{display:none}}@media (prefers-reduced-motion:reduce){.cert-modal-backdrop,.cert-modal{animation:none}}.site-footer{background:var(--bg);position:relative}.site-footer:before{z-index:1;width:min(calc(var(--content-max) + 80px), calc(100% - var(--gutter)));content:"";background:linear-gradient(90deg, transparent, var(--line) 17%, var(--line) 83%, transparent);height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.footer-inner{min-height:72px;color:var(--muted);text-align:center;justify-content:center;align-items:center;padding-block:18px;font-size:clamp(15px,1.15vw - 2px,17px);font-weight:400;display:flex}@media (width>=1024px){.scroll-portfolio .site-footer:before{height:1.25px}}@media (width<=640px){.site-footer{padding-bottom:calc(64px + env(safe-area-inset-bottom))}}@media (width<=600px){.footer-inner{min-height:64px;padding-block:16px;font-size:15px}}.github-contributions{--github-cell-size:11px;min-width:0;margin-top:24px;padding:25px}.github-log-header{justify-content:space-between;align-items:center;gap:15px;margin-bottom:19px;display:flex}.github-log-header h3{color:var(--blue-light);margin:0;font-size:17px;font-weight:700}.github-profile-link{color:var(--blue-light);align-items:center;gap:7px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.github-profile-link:hover{color:var(--text)}.github-log-scroll{max-width:100%;padding-bottom:10px;overflow-x:auto}.github-grid{grid-template-columns:repeat(var(--github-week-count), var(--github-cell-size));justify-content:space-between;align-items:start;gap:4px 0;width:100%;min-width:700px;display:grid}.github-week{grid-template-rows:repeat(7, var(--github-cell-size));width:var(--github-cell-size);min-width:var(--github-cell-size);align-content:start;align-self:start;gap:4px;display:grid}.github-cell{width:var(--github-cell-size);height:var(--github-cell-size);background:#eee;border-radius:3px;display:block}.github-cell.level-1{background:#d0d0d0}.github-cell.level-2{background:#9a9a9a}.github-cell.level-3{background:#555}.github-cell.level-4{background:#111}.github-tooltip{z-index:1000;border:1px solid var(--blue);color:var(--text);-webkit-font-smoothing:antialiased;pointer-events:none;white-space:nowrap;background:#fff;border-radius:8px;padding:6px 8px;font-family:SF Pro Rounded,Arial,sans-serif;font-size:11px;font-weight:400;position:fixed;transform:translate(-50%,calc(-100% - 8px));box-shadow:0 6px 16px #0000002e}.github-unavailable{color:var(--muted);margin:0;padding:22px 0;font-size:17px;font-weight:400}.scroll-portfolio .github-contributions.pixel-frame{--github-cell-size:clamp(11px, 1.45vw, 14px);padding-top:0;box-shadow:none;background:0 0;border:0;padding-inline:0;overflow:visible}.scroll-portfolio .github-log-header h3,.scroll-portfolio .github-profile-link{color:#111}.scroll-portfolio .github-profile-link:hover{color:#5b5b5b}.scroll-portfolio .github-cell{background:#e6e6e6}.scroll-portfolio .github-cell.level-1{background:#bdbdbd}.scroll-portfolio .github-cell.level-2{background:#858585}.scroll-portfolio .github-cell.level-3{background:#454545}.scroll-portfolio .github-cell.level-4{background:#111}.github-tooltip-count{font-weight:600}.github-tooltip-date{font-weight:400}.github-tooltip-public{box-shadow:none;color:#111;background:#fff;border-color:#000}@media (width<=600px){.github-contributions{padding:17px}.github-log-header{flex-direction:row;align-items:center;gap:10px;margin-bottom:16px}.github-log-header h3{white-space:nowrap;font-size:15px;line-height:1.2}.github-profile-link{white-space:nowrap;gap:5px;font-size:15px;line-height:1.2}.github-profile-mark{width:16px;height:16px}.github-profile-arrow{stroke-width:2.3px;width:13px;height:13px}.github-log-scroll{overflow-x:hidden}.github-grid{justify-content:start;column-gap:2px;width:max-content;min-width:0}}.project-card{min-width:0;color:inherit;text-decoration:none;transition:background-color .2s,color .2s,transform .16s;display:block}.scroll-portfolio .project-card.pixel-frame{box-shadow:none;color:#fff;background:#000}.project-card-body{padding:22px}.project-card-body h2{color:#fff;text-align:center;margin:0 0 9px;font-size:clamp(20px,1.4vw,24px);font-weight:900;line-height:1.2}.project-card-body p{color:#bdbdbd;text-align:justify;min-height:52px;margin:0;font-size:clamp(16px,1.05vw,18px);font-weight:400;line-height:1.45}.project-card-tech-stack{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.project-card-tech-badge{color:#bdbdbd;white-space:nowrap;border:1px solid #666;border-radius:999px;align-items:center;min-height:26px;padding:4px 9px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.project-card:active{transform:scale(.98)}.project-preview{isolation:isolate;box-sizing:border-box;background:#f5f5f5;border:1px solid #c9c9c9;position:relative;overflow:hidden}.project-preview img{z-index:1;object-position:top center;filter:none;width:100%;height:100%;display:block;position:absolute;inset:0}.project-preview-fallback{z-index:0;color:#111;font-family:var(--display);place-items:center;font-size:30px;font-weight:900;display:grid;position:absolute;inset:0}.project-preview--row{aspect-ratio:1.25;border-radius:10px;width:100%}.project-preview--card{aspect-ratio:16/9;border:0;border-radius:14px 14px 0 0;margin:0}.project-preview--dia{background:#edf4ff}.project-preview--camemera{background:#101010}.project-preview--karaocakes{background:#0a3d70}.project-preview--morphism{background:#edf7ee}html[data-portfolio-theme=dark] .project-preview{background:#292929;border-color:#484848}html[data-portfolio-theme=dark] .project-preview-fallback{color:#f5f5f5}.project-carousel{isolation:isolate;margin-top:8px;padding-top:16px;padding-bottom:16px;position:relative;overflow:hidden}.project-carousel-track{z-index:1;transition:transform .5s;display:flex;position:relative}.project-carousel-slide{opacity:1;flex:0 0 50%;min-width:0;padding:0 8px;transition:opacity .35s;display:flex}.project-carousel-slide.is-active{opacity:1}.project-carousel-slide .project-card{width:100%}.project-carousel-fade{z-index:10;pointer-events:none;width:clamp(28px,4vw,56px);position:absolute;top:0;bottom:0}.project-carousel-fade-left{background:linear-gradient(90deg, var(--bg) 0%, var(--bg) 30%, transparent 100%);left:0}.project-carousel-fade-right{background:linear-gradient(270deg, var(--bg) 0%, var(--bg) 30%, transparent 100%);right:0}.project-carousel-dots{justify-content:center;align-items:center;gap:8px;margin-top:18px;padding:2px 0;display:flex}.project-carousel-dot{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;width:9px;height:9px;padding:0;transition:background-color .2s,border-color .2s,transform .2s}.project-carousel-dot:hover,.project-carousel-dot:focus-visible{border-color:var(--blue-light)}.project-carousel-dot.is-active{border-color:var(--blue);background:var(--blue);transform:scale(1.15)}@media (width<=640px){.project-carousel-fade{display:none}.project-carousel-slide{flex-basis:100%;margin-right:16px;padding:0}.project-carousel-slide .project-card-body{padding:22px}.project-carousel-slide .project-card-body h2{font-size:19px}.project-carousel-slide .project-card-body p{font-size:16px}.project-carousel-slide .project-card-tech-badge{font-size:12px}.project-carousel-dots{gap:6px}.project-carousel-dot{width:7px;height:7px}}@media (prefers-reduced-motion:reduce){.project-carousel-track,.project-carousel-slide,.project-carousel-dot{transition:none}}.recommendation-carousel{margin-top:24px;position:relative;overflow:hidden}.recommendation-carousel:before,.recommendation-carousel:after{z-index:2;content:"";pointer-events:none;width:clamp(28px,4vw,56px);position:absolute;top:0;bottom:38px}.recommendation-carousel:before{background:linear-gradient(90deg, var(--bg) 0%, transparent 100%);left:0}.recommendation-carousel:after{background:linear-gradient(270deg, var(--bg) 0%, transparent 100%);right:0}.recommendation-track{z-index:1;transition:transform .5s;display:flex;position:relative}.recommendation-slide{opacity:.58;flex:0 0 33.3333%;min-width:0;padding:0 8px;transition:opacity .35s;display:flex}.recommendation-slide.is-active{opacity:1}.recommendation-slide.is-active .recommendation-card{--frame-outline:var(--blue)}.recommendation-card{flex-direction:column;width:100%;min-height:225px;padding:27px;display:flex}.scroll-portfolio .recommendation-card.pixel-frame{box-shadow:none;background:0 0}.scroll-portfolio .recommendation-slide:not(.is-active) .recommendation-card.pixel-frame{border-color:#c9c9c9}.scroll-portfolio .recommendation-slide.is-active .recommendation-card.pixel-frame{border-color:#000}.recommendation-card blockquote{flex:1;margin:0 0 25px;font-size:clamp(16px,1.1vw,19px);font-weight:400;line-height:1.45}.recommendation-person{border-top:1px solid var(--line);gap:4px;padding-top:14px;display:grid}.recommendation-person strong{color:var(--blue-light);font-size:16px;font-weight:700}.recommendation-person span{color:var(--muted);font-size:15px;font-weight:400;line-height:1.3}.recommendation-dots{justify-content:center;align-items:center;gap:8px;margin-top:18px;padding:2px 0;display:flex}.recommendation-dot{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;width:9px;height:9px;padding:0;transition:background-color .2s,border-color .2s,transform .2s}.recommendation-dot:hover,.recommendation-dot:focus-visible{border-color:var(--blue-light)}.recommendation-dot.is-active{border-color:var(--blue);background:var(--blue);transform:scale(1.15)}@media (width<=900px){.recommendation-slide{flex-basis:50%}}@media (width<=640px){.recommendation-carousel:before,.recommendation-carousel:after{width:20px}.recommendation-carousel:before{background:linear-gradient(90deg, var(--bg) 0%, var(--bg) 30%, transparent 100%)}.recommendation-carousel:after{background:linear-gradient(270deg, var(--bg) 0%, var(--bg) 30%, transparent 100%)}.recommendation-slide{flex-basis:80%;padding:0 6px}.recommendation-card{min-height:205px;padding:22px}.recommendation-card blockquote{font-size:16px}.recommendation-person strong{font-size:17px}.recommendation-person span{font-size:15px}.recommendation-dots{gap:6px}.recommendation-dot{width:7px;height:7px}}@media (prefers-reduced-motion:reduce){.recommendation-track,.recommendation-slide,.recommendation-dot{transition:none}}.hero{background:var(--bg);padding:112px 0 48px;position:relative}.hero-layout{grid-template-columns:minmax(300px,.8fr) minmax(0,1.5fr);align-items:center;gap:clamp(20px,2.5vw,30px);display:grid;position:relative}.hero-copy{min-width:0;max-width:720px}.section-index,.card-index,.rail-number{letter-spacing:.08em;font-size:13px;font-weight:700}.hero h1{font-family:var(--display);letter-spacing:-.045em;white-space:nowrap;margin:0;font-size:clamp(36px,4vw,64px);font-weight:900;line-height:1.08}.hero h1 span{color:var(--blue)}.role-slot{min-height:30px;color:var(--blue-light);white-space:nowrap;margin-top:13px;font-size:clamp(18px,1.6vw,23px);font-weight:700;line-height:1.25}.role-cursor{color:var(--blue)}.role-text{display:inline-block}.role-cursor{animation:.9s step-end infinite blink}@keyframes role-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{50%{opacity:0}}.hero-description{width:100%;color:var(--muted);text-align:justify;text-justify:inter-word;margin:25px 0 0;font-size:clamp(17px,1.25vw,20px);font-weight:400;line-height:1.55}.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;width:100%;margin-top:31px;display:grid}.hero-actions .pixel-button{--button-fill:#000;--button-outline:#000;width:100%;min-height:56px;box-shadow:none;color:#fff;padding-inline:14px}.hero-actions .pixel-button--ghost{--button-fill:transparent;--button-outline:#000;color:#000}.scroll-portfolio .hero-actions .pixel-button{transition:background-color .19s ease-out,border-color .19s ease-out,color .19s ease-out,transform .19s ease-out}.scroll-portfolio .hero-actions .pixel-button:focus-visible{outline-offset:3px;outline:2px solid #111}@media (hover:hover) and (pointer:fine){.scroll-portfolio .hero-actions .pixel-button:hover{--button-fill:#222;--button-outline:#222;color:#fff}.scroll-portfolio .hero-actions .pixel-button--ghost:hover{--button-fill:#f2f2f2;--button-outline:#000;color:#000}}.scroll-portfolio .hero-actions .pixel-button:active{--button-fill:#000;--button-outline:#000;color:#fff}.scroll-portfolio .hero-actions .pixel-button--ghost:active{--button-fill:#e9e9e9;--button-outline:#000;color:#000}@media (hover:none),(pointer:coarse){.scroll-portfolio .hero-actions .pixel-button:hover:not(:active){--button-fill:#000;--button-outline:#000;box-shadow:none;color:#fff}.scroll-portfolio .hero-actions .pixel-button--ghost:hover:not(:active){--button-fill:transparent;--button-outline:#000;box-shadow:none;color:#000}}.hero-avatar{justify-content:flex-start;align-items:end;min-width:0;display:flex;overflow:visible}.hero-avatar img{width:auto;max-width:100%;height:clamp(360px,40vw,390px);image-rendering:pixelated;object-fit:contain;display:block;-webkit-mask-image:linear-gradient(#000 0% 70%,#000000f0 77%,#000000b8 85%,#0006 92%,#0000001f 97%,#0000 100%);mask-image:linear-gradient(#000 0% 70%,#000000f0 77%,#000000b8 85%,#0006 92%,#0000001f 97%,#0000 100%)}.contact-rail-section{background:var(--bg);padding:0 0 56px}.contact-rail{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.contact-rail>*{white-space:nowrap;align-items:center;gap:9px;min-height:56px;padding:8px 14px 8px 22px;font-size:clamp(16px,1.1vw,18px);font-weight:700;line-height:1.3;text-decoration:none;display:flex}.contact-rail>a:hover{--frame-fill:transparent;--frame-outline:var(--muted);color:#000}.scroll-portfolio .contact-rail>a:hover,.scroll-portfolio .contact-rail>a:focus-visible{border-color:var(--muted);color:#000;background:0 0;box-shadow:0 0 0 2px #5b5b5b24,0 0 16px #5b5b5b33}.scroll-portfolio .contact-rail>a:active{transform:scale(.98)}.scroll-portfolio .contact-rail>.pixel-frame{--frame-fill:transparent;--frame-outline:var(--line);border:1px solid var(--line);box-shadow:none;color:#000;background:0 0}.contact-icon{object-fit:contain;flex:none;width:24px;height:24px;display:block}.contact-label{min-width:0}.contact-rail-pending{color:var(--muted)}.contact-rail-pending small{color:var(--blue-light);font-size:15px}.home-section{background:var(--bg);padding:50px 0;scroll-margin-top:25px}.section-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.section-index{color:var(--blue);margin-bottom:19px;display:block}.section-heading h2{font-family:var(--display);overflow-wrap:anywhere;margin:0;font-size:clamp(24px,2.5vw,32px);font-weight:900;line-height:1.2}.section-action{flex:none;align-items:center;padding-bottom:0;font-size:16px;line-height:1.2;display:inline-flex}.about-grid{margin-top:24px;display:block}.about-summary{color:var(--muted);text-align:justify;text-justify:inter-word;margin:0;font-size:clamp(17px,1.15vw,20px);font-weight:400;line-height:1.55}.about-body{max-width:none;margin-top:24px}.about-body p{color:var(--muted);text-align:justify;text-justify:inter-word;margin:0 0 13px;font-size:clamp(17px,1.15vw,20px);font-weight:400;line-height:1.55}.about-body p:last-child{margin-bottom:0}.about-body .about-lede{border-left:4px solid var(--blue);color:#000;margin-bottom:24px;padding-left:16px;font-size:clamp(17px,1.15vw,20px);font-weight:700;line-height:1.4}.experience-list{border-top:1px solid var(--line);gap:0;margin:24px 0 0;padding:0;list-style:none;display:grid}.experience-row{border-bottom:1px solid var(--line);grid-template-columns:100px minmax(0,1fr) minmax(220px,.8fr);align-items:center;gap:24px 30px;min-height:68px;padding:12px 0;display:grid}.experience-year{color:#fff;background:#000;border-radius:999px;justify-content:center;justify-self:start;align-items:center;min-width:56px;padding:7px 10px;font-size:clamp(14px,1.1vw - 2px,16px);font-weight:700;line-height:1;display:inline-flex}.experience-row h3{margin:0;font-size:clamp(18px,1.3vw,21px);font-weight:700;line-height:1.25}.experience-row p{color:var(--muted);margin:0;font-size:clamp(16px,1.05vw,18px);font-weight:400;line-height:1.45}.experience-company{text-align:right;justify-self:end}.horizontal-rail{gap:16px;margin-top:24px;display:grid}.startup-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.card-index{color:var(--blue)}.startup-card h3{margin:0 0 10px;font-size:clamp(19px,1.4vw,23px);font-weight:700;line-height:1.2}.startup-card p{color:var(--muted);margin:0;font-size:clamp(16px,1.05vw,18px);font-weight:400;line-height:1.45}.startup-card{min-height:224px;color:inherit;flex-direction:column;align-items:stretch;padding:24px;text-decoration:none;transition:border-color .42s cubic-bezier(.22,1,.36,1),background-color .42s cubic-bezier(.22,1,.36,1),color .42s cubic-bezier(.22,1,.36,1);display:flex}.scroll-portfolio .startup-card.pixel-frame{box-shadow:none;background:#fff;border-color:#c9c9c9}.startup-card-link{cursor:pointer}.startup-card:hover,.startup-card:focus-visible{--frame-outline:var(--blue);--frame-fill:transparent}.startup-card-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.startup-identity{flex-direction:column;flex:1;align-items:flex-start;gap:4px;min-width:0;display:flex}.startup-card-heading h3{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:700}.startup-position{color:var(--blue-light)!important;margin:0!important;font-size:clamp(14px,.95vw,16px)!important;line-height:1.25!important}.startup-card-meta{flex:none;align-items:center;display:flex}.startup-logo-frame{background:#000;border-radius:12px;place-items:center;width:68px;height:68px;padding:4px;display:grid}.startup-logo{object-fit:contain;flex:none;width:60px;height:60px;transition:transform .42s cubic-bezier(.22,1,.36,1);display:block}.startup-logo-fallback{color:#fff;font-family:var(--display);background:0 0;border:0;border-radius:0;place-items:center;font-size:13px;font-weight:900;display:grid}.startup-card-chevron{color:var(--blue);flex:none;margin-left:auto;font-size:23px;line-height:1}.startup-pitch{text-align:justify;color:var(--muted)!important;margin-top:18px!important;font-size:clamp(16px,1.05vw,18px)!important;line-height:1.45!important}@media (hover:hover) and (pointer:fine){.scroll-portfolio .startup-card.pixel-frame:hover{border-color:#000}.scroll-portfolio .startup-card.pixel-frame:hover .startup-logo{transform:rotate(-2deg)scale(1.02)}}.scroll-portfolio .startup-card.pixel-frame:focus-visible{border-color:#000}.scroll-portfolio .startup-card.pixel-frame:focus-visible .startup-logo{transform:rotate(-2deg)scale(1.02)}.certification-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.certification-card{min-width:0;min-height:0;color:inherit;cursor:pointer;font:inherit;text-align:center;flex-direction:column;align-items:center;padding:18px 20px 20px;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s,box-shadow .2s;display:flex}.certification-card:hover,.certification-card:focus-visible{--frame-outline:var(--blue);--frame-fill:var(--panel-raised);color:var(--blue-light)}.certification-logo-frame{flex:none;align-self:center;place-items:center;width:42px;height:30px;margin:0 auto 10px;display:grid}.certification-logo{object-fit:contain;width:42px;height:30px;display:block}.certification-logo-vector{color:currentColor;width:24px;height:24px;display:block}.certification-logo-vector-cisco{width:42px;height:30px;transform:scale(1.6)}.certification-logo-vector-simplilearn{color:currentColor;width:30px;height:30px}.certification-card h3{color:var(--text);overflow-wrap:anywhere;margin:0 0 6px;font-size:clamp(17px,1.2vw,20px);font-weight:700;line-height:1.25}.certification-card p{color:var(--muted);margin:0;font-size:clamp(14px,.95vw,16px);font-weight:400;line-height:1.35}.scroll-portfolio .certification-card h3{color:#fff}.scroll-portfolio .certification-card p{color:#bdbdbd}.cert-modal-backdrop{z-index:1200;overscroll-behavior:contain;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0003;place-items:center;padding:24px;animation:.22s both cert-modal-fade-in;display:grid;position:fixed;inset:0}.cert-modal-backdrop.is-closing{animation:.22s both cert-modal-fade-out}.cert-modal{color:#fff;width:min(720px,100%);max-height:min(700px,100svh - 48px);box-shadow:none;transform-origin:50%;background:#000;padding:28px;animation:.24s cubic-bezier(.22,1,.36,1) both cert-modal-pop-in;position:relative;overflow:auto}.cert-modal-backdrop.is-closing .cert-modal{animation:.22s cubic-bezier(.4,0,1,1) both cert-modal-pop-out}.scroll-portfolio .cert-modal{overflow:auto}.cert-modal-close{color:#fff;cursor:pointer;width:32px;height:32px;font:400 24px/1 var(--body);background:0 0;border:1px solid #555;border-radius:50%;place-items:center;padding:0;transition:border-color .16s,color .16s,background-color .16s;display:grid;position:absolute;top:14px;right:16px}.cert-modal-close:hover,.cert-modal-close:focus-visible{color:#fff;background:#1f1f1f;border-color:#fff}.cert-modal-heading{padding-right:0}.cert-modal-kicker{color:#bdbdbd;letter-spacing:.08em;font-size:12px;font-weight:700}.cert-modal-heading h2{color:#fff;font-family:var(--display);margin:6px 0 5px;font-size:clamp(23px,2.2vw,30px);font-weight:900;line-height:1.15}.cert-modal-heading p{color:#bdbdbd;margin:0;font-size:16px;font-weight:400}.cert-modal-list{gap:10px;margin-top:26px;display:grid}.cert-modal-row{color:#fff;background:#111;border:1px solid #3f3f3f;border-radius:10px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:13px;padding:13px 14px;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s,box-shadow .2s,transform .16s;display:grid}.cert-modal-row:active{transform:scale(.98)}.cert-modal-row:hover,.cert-modal-row:focus-visible{color:#fff;background:#1f1f1f;border-color:#fff}.cert-modal-row-logo{object-fit:contain;width:20px;height:20px}.cert-modal-row-title{color:#fff;min-width:0;font-size:clamp(15px,1vw,17px);font-weight:400;line-height:1.35}.cert-modal-row-verify{color:#bdbdbd;white-space:nowrap;align-items:center;gap:7px;font-size:14px;font-weight:700;display:inline-flex}.home-tool-cloud{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.home-tool-pill{border:1px solid var(--line);width:100%;min-width:0;min-height:48px;color:var(--muted);white-space:nowrap;background:0 0;border-radius:8px;justify-content:flex-start;align-items:center;gap:10px;padding:10px 14px;font-size:clamp(14px,1vw,17px);font-weight:400;line-height:1.2;transition:border-color .2s,background-color .2s,color .2s,box-shadow .2s;display:inline-flex;overflow:hidden}.home-tool-pill img{object-fit:contain;filter:grayscale()brightness(0)opacity(.62);width:20px;height:20px}.home-tool-pill .tech-icon-svg{color:currentColor;opacity:.62;flex:none;width:20px;height:20px}.home-tool-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.home-tool-pill:hover{color:#000;background:0 0;border-color:#000}.home-tool-pill:hover img{filter:grayscale()brightness(0)}.home-tool-pill:hover .tech-icon-svg{opacity:1}.hackathon-reveal{--hackathon-row-height:84px;height:calc(min(3, var(--hackathon-count)) * var(--hackathon-row-height) + 80px);margin-top:24px;transition:height .55s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.hackathon-reveal.is-expanded{height:calc(var(--hackathon-count) * var(--hackathon-row-height) + 80px)}.hackathon-reveal .hackathon-list{border-top:1px solid var(--line);margin-top:0;display:grid}.hackathon-reveal .hackathon-row{height:var(--hackathon-row-height);min-height:var(--hackathon-row-height);max-height:none}.hackathon-reveal-cover{z-index:2;background:var(--bg);justify-content:center;align-items:center;height:80px;display:flex;position:absolute;bottom:0;left:0;right:0}.hackathon-reveal-cover:before{content:"";background:linear-gradient(to bottom, transparent, var(--bg));opacity:1;pointer-events:none;height:40px;transition:opacity .4s;position:absolute;bottom:100%;left:0;right:0}.hackathon-reveal.is-expanded .hackathon-reveal-cover:before{opacity:0}.hackathon-reveal-cover .hackathon-toggle{margin:0}.hackathon-row{border-bottom:1px solid var(--line);opacity:1;grid-template-columns:100px minmax(0,1fr) minmax(180px,.8fr);align-items:center;gap:14px 68px;min-height:84px;max-height:120px;padding:14px 0;transition:max-height .42s cubic-bezier(.22,1,.36,1),min-height .42s cubic-bezier(.22,1,.36,1),padding .42s cubic-bezier(.22,1,.36,1),border-color .3s,opacity .28s,transform .42s cubic-bezier(.22,1,.36,1);display:grid;overflow:hidden;transform:translateY(0)}.hackathon-details{text-align:left;justify-self:start;min-width:0}.hackathon-details h3{margin:0 0 6px;font-size:clamp(18px,1.3vw,21px);font-weight:700;line-height:1.25}.hackathon-details p{color:var(--muted);margin:0;font-size:clamp(14px,.9vw,15px);font-weight:400;line-height:1.25}.hackathon-achievement{color:#fff;white-space:nowrap;background:#000;border-radius:999px;justify-content:center;justify-self:start;align-items:center;width:100px;min-width:100px;padding:7px 12px;font-size:clamp(14px,1vw - 1px,16px);font-weight:700;line-height:1;display:inline-flex}.hackathon-organizer{color:var(--muted);text-align:right;justify-self:end;font-size:clamp(15px,1.05vw,18px);font-weight:400}.hackathon-toggle{color:#111;cursor:pointer;width:fit-content;min-height:56px;font:inherit;background:#fff;border:1px solid #fff;border-radius:999px;justify-content:center;align-items:center;gap:8px;margin:18px auto 0;padding:0 22px;font-size:15px;font-weight:700;line-height:1;transition:background-color .2s,border-color .2s,color .2s,transform .16s;display:flex}.hackathon-toggle:hover,.hackathon-toggle:focus-visible{color:#111;background:#e8e8e8;border-color:#e8e8e8}.hackathon-toggle:active{transform:scale(.98)}.hackathon-toggle-arrow{font-size:17px;line-height:.8}@media (width<=820px){.home-tool-cloud{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=780px){.hackathon-reveal{--hackathon-row-height:120px}.hero-layout{grid-template-columns:1fr;gap:28px}.hero-avatar{justify-content:center}.hero-avatar img{height:min(52vw,360px)}.hero-copy{max-width:640px}.hero-description{text-align:left}.experience-row{grid-template-columns:70px minmax(0,1fr);gap:12px 18px;padding:13px 0}.experience-company{text-align:left;grid-column:2;justify-self:start;margin-top:4px}.hackathon-row{grid-template-columns:100px minmax(0,1fr);gap:10px 40px;min-height:76px;padding:12px 0}.hackathon-organizer{text-align:left;grid-column:2;justify-self:start}}@media (width<=640px){.hackathon-reveal{margin-top:18px}.hero{padding:53px 0 34px}.hero-layout{grid-template-columns:1fr;gap:20px}.hero-copy{text-align:center}.hero h1{letter-spacing:-.06em;text-align:center;white-space:nowrap;font-size:clamp(29px,9.5vw,39px);line-height:1.05}.role-slot{text-align:center;white-space:normal;font-size:clamp(18px,5.4vw,22px)}.hero-description{text-align:justify;text-align-last:center;text-justify:inter-word;width:100%;max-width:none;margin:18px 0 0;font-size:16px}.hero-actions{grid-template-columns:1fr;gap:12px;width:100%;max-width:none;margin:20px 0 0}.hero-actions .pixel-button{min-height:52px;padding-inline:18px;font-size:16px}.hero-avatar{justify-content:center}.hero-avatar img{height:min(85vw,320px)}.experience-row{grid-template-columns:64px minmax(0,1fr);align-items:start;gap:5px 20px;min-height:0;padding:11px 0}.experience-year{grid-row:1/span 2;align-self:center;padding:6px 10px;font-size:14px}.experience-row h3,.experience-row p{font-size:17px;line-height:1.35}.experience-row p.experience-company{font-size:15px}.experience-company{margin-top:0}.contact-rail-section{padding-bottom:32px}.contact-rail{grid-template-columns:repeat(4,52px);justify-content:center;gap:10px;display:grid;overflow:visible}.contact-rail>*{border-radius:50%;place-items:center;width:52px;height:52px;min-height:52px;padding:0;display:grid}.contact-icon{width:28px;height:28px}.contact-label{display:none}.contact-rail-pending{width:52px!important}.home-section{padding:36px 0}.section-heading{align-items:center}.section-heading h2{font-size:clamp(22px,7vw,26px)}.section-action{margin-top:0;font-size:16px}.about-grid,.experience-list,.horizontal-rail,.certification-grid,.hackathon-list,.recommendation-carousel,.github-contributions,.home-tool-cloud,.about-body{margin-top:18px}.about-summary,.about-body p,.about-body .about-lede{font-size:16px}.home-tool-cloud{grid-template-columns:repeat(3,minmax(0,1fr))}.home-tool-pill{font-size:15px}.startup-rail{grid-template-columns:1fr;gap:12px;padding:0;display:grid;overflow:visible}.startup-card{width:100%}.startup-logo-frame{border-radius:10px;width:56px;height:56px;padding:3px}.startup-logo{width:50px;height:50px}.startup-position{font-size:15px!important}.startup-pitch{font-size:16px!important}.startup-card h3{font-size:20px}.certification-grid{grid-template-columns:1fr;gap:12px}.certification-card{min-height:0;padding:18px}.cert-modal-backdrop{padding:14px}.cert-modal{max-height:calc(100svh - 28px);padding:52px 18px 22px}.cert-modal-row{grid-template-columns:22px minmax(0,1fr) auto}.cert-modal-row-verify{grid-column:3;justify-self:end}.cert-modal-row-verify-label{display:none}.hackathon-row{grid-template-columns:100px minmax(0,1fr);align-content:center;gap:6px 20px;min-height:76px;padding:12px 0}.hackathon-details h3{font-size:17px;line-height:1.35}.hackathon-details p,.hackathon-organizer{font-size:15px;line-height:1.35}.hackathon-achievement{grid-row:1/span 2;align-self:center;width:90px;min-width:90px;font-size:14px}.hackathon-organizer{text-align:left;grid-column:2;justify-self:start}.hackathon-toggle{min-height:42px;padding-inline:18px;font-size:14px}}@media (width<=480px){.home-tool-cloud{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=374px){.section-heading{display:block}.section-action{margin-top:13px}.experience-row{grid-template-columns:56px minmax(0,1fr);gap:5px 16px}}@media (prefers-reduced-motion:reduce){.role-text,.role-cursor,.cert-modal-backdrop,.cert-modal{animation:none}.hackathon-row,.hackathon-reveal,.hackathon-reveal-cover:before,.hackathon-toggle,.scroll-portfolio .hero-actions .pixel-button{transition:none}}.subpage-backdrop{background:var(--bg);min-height:calc(100svh - 172px);padding:112px 0 100px}.subpage-toolbar{justify-content:space-between;align-items:center;gap:20px;display:flex}.subpage-route,.subpage-code{color:var(--blue);letter-spacing:.08em;font-size:13px;font-weight:700}.subpage-hero{margin:76px 0 48px;padding-bottom:44px}.subpage-hero-simple{margin:0 0 24px;padding-bottom:0}.subpage-toolbar .pixel-link,.subpage-home-link{font-size:16px}.subpage-home-link{margin-bottom:24px;display:inline-flex}.subpage-code{margin:0 0 22px}.subpage-title{font-family:var(--display);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;font-size:clamp(30px,3.4vw,46px);font-weight:900;line-height:1.2}.subpage-intro{max-width:610px;color:var(--muted);margin:20px 0 0;font-size:clamp(17px,1.15vw,19px);font-weight:400;line-height:1.55}@media (width<=600px){.subpage-backdrop{padding-top:53px;padding-bottom:72px}.subpage-hero{margin-top:52px}.subpage-hero-simple{margin-top:0}.subpage-toolbar .pixel-link,.subpage-home-link{font-size:15px}.subpage-route{display:none}}.stack-page-groups{gap:42px;display:grid}.stack-page-group{min-width:0}.stack-page-group h2{color:var(--blue);letter-spacing:0;text-transform:uppercase;margin:0;font-size:clamp(16px,1.15vw - 1px,18px);font-weight:700;line-height:1.3}.stack-tool-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.stack-tool{border:1px solid var(--line);width:100%;min-width:0;min-height:48px;color:var(--muted);background:0 0;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:clamp(14px,1vw,17px);font-weight:400;line-height:1.2;transition:border-color .2s,background-color .2s,color .2s,box-shadow .2s;display:inline-flex}.stack-tool img{object-fit:contain;filter:grayscale()brightness(0)opacity(.62);flex:none;width:20px;height:20px}.stack-tool .tech-icon-svg{color:currentColor;opacity:.62;flex:none;width:20px;height:20px}.stack-tool-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.stack-tool:hover{color:#000;background:0 0;border-color:#000}.stack-tool:hover img{filter:grayscale()brightness(0)}.stack-tool:hover .tech-icon-svg{opacity:1}@media (width<=820px){.stack-tool-list{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=760px){.stack-tool-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=600px){.stack-tool-list{grid-template-columns:repeat(2,minmax(0,1fr))}.stack-tool{font-size:15px}}.page-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}@media (width<=760px){.page-project-grid{grid-template-columns:1fr;gap:16px}.page-project-grid .project-card-body h2{font-size:19px}.page-project-grid .project-card-tech-badge{font-size:11px}}.certification-page-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.certification-page-grid .certification-card{min-height:156px}@media (width<=760px){.certification-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.certification-page-grid{grid-template-columns:1fr;gap:12px}.certification-page-grid .certification-card{min-height:0}}.snowfall{z-index:20;pointer-events:none;isolation:isolate;contain:paint;backface-visibility:hidden;position:fixed;inset:0;overflow:hidden;transform:translate(0,0)}.snowfall-flake{top:-12vh;left:var(--snow-left);width:var(--snow-size);height:var(--snow-size);background:rgba(0, 0, 0, var(--snow-opacity));will-change:transform, opacity;animation:snowfall-fall var(--snow-duration) linear var(--snow-delay) infinite;border-radius:50%;position:absolute;box-shadow:0 0 6px #00000024}@keyframes snowfall-fall{0%{opacity:0;transform:translateY(-8vh)rotate(0)}10%{opacity:1}50%{transform:translate3d(calc(var(--snow-drift) * .45), 48vh, 0) rotate(90deg)}90%{opacity:1}to{opacity:0;transform:translate3d(var(--snow-drift), 112vh, 0) rotate(180deg)}}@media (width<=600px){.snowfall-flake:nth-child(n+31){display:none}}@media (prefers-reduced-motion:reduce){.snowfall{display:none}}.poke-control{color:#111}.poke-count-value{display:inline-block}.poke-button-wrap{position:relative}.poke-button{color:#fff;white-space:nowrap;box-sizing:border-box;cursor:pointer;background:#111;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;width:132px;height:56px;padding:0 15px;font-family:SF Pro Rounded,SF Pro Display,ui-rounded,Arial Rounded MT Bold,system-ui,sans-serif;font-size:12px;font-weight:600;transition:background-color .2s,border-color .2s,color .2s,transform .16s;display:flex}.poke-button-icon{place-items:center;display:grid}.poke-button-icon.is-popping{animation:.22s ease-out poke-button-pop}.poke-button-label{display:inline-block}.poke-button-label .poke-count-value.is-popping{animation:.18s ease-out poke-count-pop}.poke-button svg{fill:currentColor;width:24px;height:24px}.poke-button:hover{background:#242424}.poke-button:active{transform:scale(.98)}.poke-button:focus-visible{outline-offset:3px;outline:2px solid}.poke-particles{z-index:2;color:currentColor;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.poke-particle{opacity:0;width:16px;height:16px;animation:poke-particle-rise var(--poke-duration) cubic-bezier(.2, .75, .25, 1) forwards;place-items:center;display:grid;position:absolute;top:-8px;left:-8px}.poke-particle svg{fill:currentColor;width:100%;height:100%}html[data-portfolio-theme=dark] .poke-control{color:#f5f5f5}html[data-portfolio-theme=dark] .poke-button{color:#111;background:#fff}html[data-portfolio-theme=dark] .poke-button:hover{background:#e8e8e8}@keyframes poke-button-pop{50%{transform:scale(.84)}}@keyframes poke-count-pop{50%{transform:scale(1.08)}}@keyframes poke-particle-rise{0%{opacity:0;transform:translate(0)rotate(0)scale(.55)}18%{opacity:1}to{opacity:0;transform:translate(var(--poke-x), var(--poke-y)) rotate(var(--poke-rotation)) scale(var(--poke-scale))}}@media (width<=640px){.poke-button{width:144px;height:52px;font-size:15px}.poke-button svg{width:20px;height:20px}}@media (width>=1024px){.poke-button{height:45px;font-size:13px}.poke-button svg{width:20px;height:20px}}@media (prefers-reduced-motion:reduce){.poke-particles{display:none}.poke-button-icon.is-popping,.poke-button-label .poke-count-value.is-popping{animation:none}.poke-button{transition:none}}html{--portfolio-cursor-light:url(/cursors/rounded-light.svg) 3 3, auto;--portfolio-cursor:var(--portfolio-cursor-light)}html[data-portfolio-theme=dark]{--portfolio-cursor:url(/cursors/rounded-dark.svg) 3 3, auto}html:has(.table-tennis-app){--portfolio-cursor:var(--portfolio-cursor-light)}html:has(.public-app-surface){cursor:var(--portfolio-cursor)!important}html:has(.public-app-surface) body{cursor:var(--portfolio-cursor)!important}html:has(.public-app-surface) body *{cursor:var(--portfolio-cursor)!important}.site-shell{isolation:isolate;background:var(--bg);min-height:100svh;position:relative;overflow-x:clip}.container{width:min(var(--content-max), calc(100% - var(--gutter) - var(--gutter)));margin-inline:auto}.pixel-link{color:var(--blue-light);align-items:center;gap:9px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.pixel-link:hover{color:var(--text)}.pixel-link .icon{flex:none}.public-app-surface{min-height:100svh;cursor:var(--portfolio-cursor);background:#fff}.table-tennis-loading{color:#f5f5f5;background:#000;place-items:center;font:14px SF Pro Rounded,Arial,sans-serif;display:grid;position:fixed;inset:0}.cursor-click-burst{z-index:1300;pointer-events:none;position:fixed}.cursor-click-burst span{background:var(--burst-color,#111);transform-origin:50% 0;border-radius:1px;width:2px;height:7px;animation:.42s cubic-bezier(.2,.7,.3,1) forwards cursor-click-burst;position:absolute;top:0;left:-1px}@keyframes cursor-click-burst{0%{opacity:1;transform:rotate(var(--burst-angle)) translateY(4px) scaleY(1)}to{opacity:0;transform:rotate(var(--burst-angle)) translateY(13px) scaleY(.3)}}.public-app-surface :where(a,button,[role=button]){-webkit-tap-highlight-color:transparent}.public-app-surface :where(a,button,[role=button]):focus:not(:focus-visible){outline:none}.scroll-portfolio.page-transition{transform-origin:50% 0;will-change:opacity, transform;animation:.42s cubic-bezier(.22,1,.36,1) both page-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.scroll-portfolio.page-transition{animation:none}.cursor-click-burst{display:none}}@media (hover:none),(pointer:coarse){html:has(.public-app-surface){cursor:auto!important}html:has(.public-app-surface) body{cursor:auto!important}html:has(.public-app-surface) body *{cursor:auto!important}.cursor-click-burst{display:none}}:root{--pixel-button-shape:polygon(12px 0, calc(100% - 12px) 0, calc(100% - 12px) 2px, calc(100% - 8px) 2px, calc(100% - 8px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 6px, 100% 6px, 100% calc(100% - 6px), calc(100% - 4px) calc(100% - 6px), calc(100% - 4px) calc(100% - 4px), calc(100% - 8px) calc(100% - 4px), calc(100% - 8px) calc(100% - 2px), calc(100% - 12px) calc(100% - 2px), calc(100% - 12px) 100%, 12px 100%, 12px calc(100% - 2px), 8px calc(100% - 2px), 8px calc(100% - 4px), 4px calc(100% - 4px), 4px calc(100% - 6px), 0 calc(100% - 6px), 0 6px, 4px 6px, 4px 4px, 8px 4px, 8px 2px, 12px 2px)}.pixel-button{--button-fill:var(--blue);--button-outline:#111;--button-shade:#00000024;--hero-button-shape:polygon(10px 0, calc(100% - 10px) 0, calc(100% - 10px) 3px, calc(100% - 5px) 3px, calc(100% - 5px) 7px, 100% 7px, 100% calc(100% - 7px), calc(100% - 5px) calc(100% - 7px), calc(100% - 5px) calc(100% - 3px), calc(100% - 10px) calc(100% - 3px), calc(100% - 10px) 100%, 10px 100%, 10px calc(100% - 3px), 5px calc(100% - 3px), 5px calc(100% - 7px), 0 calc(100% - 7px), 0 7px, 5px 7px, 5px 3px, 10px 3px);isolation:isolate;background:var(--button-outline);color:#fff;min-height:48px;clip-path:var(--hero-button-shape);filter:drop-shadow(0 4px #111);letter-spacing:.06em;text-transform:none;border:0;border-radius:0;justify-content:center;align-items:center;padding:12px 21px;font-size:clamp(16px,1.15vw,18px);font-weight:700;line-height:1.35;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s,filter .2s;display:inline-flex;position:relative;transform:none}.pixel-button:before{z-index:-1;content:"";background:var(--button-fill);clip-path:var(--hero-button-shape);box-shadow:inset 0 -4px 0 var(--button-shade);transition:background .2s;position:absolute;inset:3px}.pixel-button:hover,.pixel-button--ghost:hover{--button-fill:var(--blue-light);--button-outline:var(--blue-light);--button-shade:#0000001a;color:#fff;transform:none}.pixel-button--ghost{--button-fill:var(--panel);--button-outline:#111;--button-shade:#0000001a;color:var(--text)}@media (width>=1024px){.scroll-portfolio{zoom:.8;width:100%;min-height:125svh}}::view-transition-old(root){mix-blend-mode:normal;pointer-events:none;animation:none;cursor:var(--portfolio-cursor)!important}::view-transition-new(root){mix-blend-mode:normal;pointer-events:none;animation:none;cursor:var(--portfolio-cursor)!important}::view-transition{pointer-events:none;cursor:var(--portfolio-cursor)!important}::view-transition-group(root){pointer-events:none;cursor:var(--portfolio-cursor)!important}::view-transition-image-pair(root){pointer-events:none;cursor:var(--portfolio-cursor)!important}::view-transition-new(root){-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3Cfilter id='blur'%3E%3CfeGaussianBlur stdDeviation='.75'/%3E%3C/filter%3E%3C/defs%3E%3Ccircle cx='20' cy='20' r='19' fill='white' filter='url(%23blur)'/%3E%3C/svg%3E") var(--theme-origin-x) var(--theme-origin-y) / 0 0 no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3Cfilter id='blur'%3E%3CfeGaussianBlur stdDeviation='.75'/%3E%3C/filter%3E%3C/defs%3E%3Ccircle cx='20' cy='20' r='19' fill='white' filter='url(%23blur)'/%3E%3C/svg%3E") var(--theme-origin-x) var(--theme-origin-y) / 0 0 no-repeat}html[data-portfolio-theme=dark] .public-app-surface,html[data-portfolio-theme=dark],html[data-portfolio-theme=dark] body{background:#000}html[data-portfolio-theme=light],html[data-portfolio-theme=light] body{background:#fff}html[data-portfolio-theme=dark] .scroll-portfolio{--bg:#000;--panel:#1c1c1c;--panel-raised:#292929;--blue:#f5f5f5;--blue-light:#d0d0d0;--text:#f5f5f5;--muted:#aaa;--line:#484848;--frame-outline:#d0d0d0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-portfolio-theme=dark] .scroll-portfolio ::selection{color:#111;background:#f5f5f5}.corner-controls{z-index:1100;right:calc(20px + env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:12px;transition:opacity .12s;display:flex;position:fixed}.theme-toggle{color:#000;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #000;border-radius:999px;grid-template-columns:20px auto;place-items:center;gap:8px;width:132px;height:56px;padding:0 15px;font-family:SF Pro Rounded,SF Pro Display,ui-rounded,Arial Rounded MT Bold,system-ui,sans-serif;font-size:12px;font-weight:600;transition:border-color .2s,color .2s,background-color .2s,transform .16s;display:grid}.theme-toggle svg{fill:currentColor;width:24px;height:24px}.theme-toggle[hidden]{display:none}.theme-toggle-label{display:inline-block}.game-link{text-decoration:none}.theme-toggle:hover{background:#dbdbdb}.theme-toggle:active{transform:scale(.98)}.theme-toggle:focus-visible{outline-offset:3px;outline:2px solid}html[data-portfolio-theme=dark] .theme-toggle{color:#fff;background:#000;border-color:#fff}html[data-portfolio-theme=dark] .theme-toggle:hover{background:#242424}@media (width<=640px){.corner-controls{right:0;bottom:calc(12px + env(safe-area-inset-bottom));flex-direction:row;justify-content:center;gap:8px;width:100%;left:0;transform:none}.corner-controls>.poke-control{position:absolute;left:50%;transform:translate(-50%)}.corner-controls>.theme-toggle{margin-left:auto;margin-right:calc(20px + env(safe-area-inset-right))}.corner-controls.is-scrolling{opacity:.3}.corner-controls.is-scrolling:active{opacity:1}.corner-controls.is-scrolling:has(:focus-visible){opacity:1}.theme-toggle{grid-template-columns:1fr;gap:0;width:52px;height:52px;padding:0}.theme-toggle svg{width:20px;height:20px}.theme-toggle-label{display:none}}@media (width>=1024px){.theme-toggle{height:45px;font-size:13px}.theme-toggle svg{width:20px;height:20px}}html[data-portfolio-theme=dark] .scroll-portfolio .hero-actions .pixel-button{--button-fill:#f5f5f5;--button-outline:#f5f5f5;color:#111}html[data-portfolio-theme=dark] .scroll-portfolio .hero-actions .pixel-button--ghost{--button-fill:transparent;--button-outline:#d0d0d0;color:#f5f5f5}html[data-portfolio-theme=dark] .scroll-portfolio .hero-actions .pixel-button:focus-visible{outline-color:#f5f5f5}@media (hover:hover) and (pointer:fine){html[data-portfolio-theme=dark] .scroll-portfolio .hero-actions .pixel-button:hover{--button-fill:#ddd;--button-outline:#ddd;color:#111}html[data-portfolio-theme=dark] .scroll-portfolio .hero-actions .pixel-button--ghost:hover{--button-fill:#292929;--button-outline:#f5f5f5;color:#f5f5f5}}html[data-portfolio-theme=dark] .scroll-portfolio .hero-actions .pixel-button:active{--button-fill:#ccc;--button-outline:#ccc;color:#111}html[data-portfolio-theme=dark] .scroll-portfolio .hero-actions .pixel-button--ghost:active{--button-fill:#333;--button-outline:#f5f5f5;color:#f5f5f5}html[data-portfolio-theme=dark] .scroll-portfolio .contact-rail>.pixel-frame{color:var(--text)}html[data-portfolio-theme=dark] .scroll-portfolio .contact-rail>a:hover,html[data-portfolio-theme=dark] .scroll-portfolio .contact-rail>a:focus-visible{color:var(--text);box-shadow:0 0 0 2px #dcdcdc1f,0 0 16px #dcdcdc24}html[data-portfolio-theme=dark] .scroll-portfolio .contact-icon,html[data-portfolio-theme=dark] .scroll-portfolio .hero-avatar img{filter:grayscale()invert()}html[data-portfolio-theme=dark] .scroll-portfolio .about-body .about-lede{color:var(--text)}html[data-portfolio-theme=dark] .scroll-portfolio .experience-year,html[data-portfolio-theme=dark] .scroll-portfolio .hackathon-achievement{color:#111;background:#f5f5f5}html[data-portfolio-theme=dark] .scroll-portfolio .startup-card.pixel-frame{background:#000;border-color:#555}html[data-portfolio-theme=dark] .scroll-portfolio .startup-card.pixel-frame:hover,html[data-portfolio-theme=dark] .scroll-portfolio .startup-card.pixel-frame:focus-visible{border-color:#ddd}html[data-portfolio-theme=dark] .scroll-portfolio .startup-logo-frame{background:#f5f5f5}html[data-portfolio-theme=dark] .scroll-portfolio .startup-logo{filter:grayscale()invert()}html[data-portfolio-theme=dark] .scroll-portfolio .startup-logo-fallback{color:#111}html[data-portfolio-theme=dark] .scroll-portfolio .home-tool-pill:hover,html[data-portfolio-theme=dark] .scroll-portfolio .stack-tool:hover{color:#fff;border-color:#ddd}html[data-portfolio-theme=dark] .scroll-portfolio .home-tool-pill img,html[data-portfolio-theme=dark] .scroll-portfolio .stack-tool img{filter:grayscale()brightness(0)invert()opacity(.67)}html[data-portfolio-theme=dark] .scroll-portfolio .home-tool-pill:hover img,html[data-portfolio-theme=dark] .scroll-portfolio .stack-tool:hover img{filter:grayscale()brightness(0)invert()}html[data-portfolio-theme=dark] .scroll-portfolio .project-row.pixel-frame,html[data-portfolio-theme=dark] .scroll-portfolio .project-card.pixel-frame,html[data-portfolio-theme=dark] .scroll-portfolio .certification-card.pixel-frame{opacity:1;background:#202020;border-color:#484848}html[data-portfolio-theme=dark] .scroll-portfolio .project-row.pixel-frame,html[data-portfolio-theme=dark] .scroll-portfolio .project-card.pixel-frame{border:0}html[data-portfolio-theme=dark] .scroll-portfolio .project-row.pixel-frame:hover,html[data-portfolio-theme=dark] .scroll-portfolio .project-row.pixel-frame:focus-visible,html[data-portfolio-theme=dark] .scroll-portfolio .project-card.pixel-frame:hover,html[data-portfolio-theme=dark] .scroll-portfolio .project-card.pixel-frame:focus-visible{color:#f5f5f5;background:#2b2b2b}html[data-portfolio-theme=dark] .scroll-portfolio .certification-card.pixel-frame:hover,html[data-portfolio-theme=dark] .scroll-portfolio .certification-card.pixel-frame:focus-visible{background:#2b2b2b}html[data-portfolio-theme=dark] .scroll-portfolio .project-monogram,html[data-portfolio-theme=dark] .scroll-portfolio .project-card-visual{background:#292929}html[data-portfolio-theme=dark] .scroll-portfolio .project-card-tech-badge{color:#bdbdbd;border-color:#666}html[data-portfolio-theme=light] .scroll-portfolio .project-row.pixel-frame,html[data-portfolio-theme=light] .scroll-portfolio .project-card.pixel-frame,html[data-portfolio-theme=light] .scroll-portfolio .certification-card.pixel-frame{color:#111;background:#f5f5f5;border-color:#c9c9c9}html[data-portfolio-theme=light] .scroll-portfolio .project-row.pixel-frame,html[data-portfolio-theme=light] .scroll-portfolio .project-card.pixel-frame{border:0}html[data-portfolio-theme=light] .scroll-portfolio .project-row.pixel-frame:hover,html[data-portfolio-theme=light] .scroll-portfolio .project-row.pixel-frame:focus-visible,html[data-portfolio-theme=light] .scroll-portfolio .project-card.pixel-frame:hover,html[data-portfolio-theme=light] .scroll-portfolio .project-card.pixel-frame:focus-visible{color:#111;background:#e9e9e9}html[data-portfolio-theme=light] .scroll-portfolio .certification-card.pixel-frame:hover,html[data-portfolio-theme=light] .scroll-portfolio .certification-card.pixel-frame:focus-visible{color:#111;background:#e9e9e9;border-color:#c9c9c9}html[data-portfolio-theme=light] .scroll-portfolio .project-monogram,html[data-portfolio-theme=light] .scroll-portfolio .project-card-visual{color:#111;background:#e9e9e9}html[data-portfolio-theme=light] .scroll-portfolio .project-monogram{border-color:#c9c9c9}html[data-portfolio-theme=light] .scroll-portfolio .project-summary h3,html[data-portfolio-theme=light] .scroll-portfolio .project-card-body h2,html[data-portfolio-theme=light] .scroll-portfolio .certification-card h3{color:#111}html[data-portfolio-theme=light] .scroll-portfolio .project-summary p,html[data-portfolio-theme=light] .scroll-portfolio .project-card-body p,html[data-portfolio-theme=light] .scroll-portfolio .project-card-category,html[data-portfolio-theme=light] .scroll-portfolio .certification-card p{color:#5b5b5b}html[data-portfolio-theme=light] .scroll-portfolio .project-card-tech-badge{color:#5b5b5b;border-color:#c9c9c9}html[data-portfolio-theme=light] .scroll-portfolio .project-chevron,html[data-portfolio-theme=light] .scroll-portfolio .project-card-visual span{color:#111}html[data-portfolio-theme=light] .scroll-portfolio .certification-logo{filter:grayscale()brightness(0)}html[data-portfolio-theme=dark] .scroll-portfolio .certification-logo{filter:grayscale()brightness(0)invert()}html[data-portfolio-theme=dark] .cert-modal{color:#f5f5f5;background:#202020}html[data-portfolio-theme=light] .cert-modal{color:#111;background:#f5f5f5}html[data-portfolio-theme=dark] .cert-modal-backdrop{background:#000000b8}html[data-portfolio-theme=light] .cert-modal-backdrop{background:#ffffffad}html[data-portfolio-theme=dark] .cert-modal .certification-logo{filter:grayscale()brightness(0)invert()}html[data-portfolio-theme=light] .cert-modal .certification-logo{filter:grayscale()brightness(0)}html[data-portfolio-theme=dark] .cert-modal-row:hover,html[data-portfolio-theme=dark] .cert-modal-row:focus-visible{color:#fff;background:#202020;border-color:#fff}html[data-portfolio-theme=light] .cert-modal-close{color:#111;border-color:#c9c9c9}html[data-portfolio-theme=light] .cert-modal-close:hover,html[data-portfolio-theme=light] .cert-modal-close:focus-visible{color:#111;background:#e9e9e9;border-color:#111}html[data-portfolio-theme=light] .cert-modal-kicker,html[data-portfolio-theme=light] .cert-modal-heading p,html[data-portfolio-theme=light] .cert-modal-row-verify{color:#5b5b5b}html[data-portfolio-theme=light] .cert-modal-heading h2,html[data-portfolio-theme=light] .cert-modal-row-title{color:#111}html[data-portfolio-theme=light] .cert-modal-row{color:#111;background:#fff;border-color:#c9c9c9}html[data-portfolio-theme=light] .cert-modal-row:hover,html[data-portfolio-theme=light] .cert-modal-row:focus-visible{color:#111;background:#f5f5f5;border-color:#111}html[data-portfolio-theme=dark] .scroll-portfolio .recommendation-slide:not(.is-active) .recommendation-card.pixel-frame{border-color:#505050}html[data-portfolio-theme=dark] .scroll-portfolio .recommendation-slide.is-active .recommendation-card.pixel-frame{border-color:#ddd}html[data-portfolio-theme=dark] .scroll-portfolio .github-log-header h3,html[data-portfolio-theme=dark] .scroll-portfolio .github-profile-link{color:var(--text)}html[data-portfolio-theme=dark] .scroll-portfolio .github-profile-link:hover{color:var(--muted)}html[data-portfolio-theme=dark] .scroll-portfolio .github-cell{background:#292929}html[data-portfolio-theme=dark] .scroll-portfolio .github-cell.level-1{background:#4a4a4a}html[data-portfolio-theme=dark] .scroll-portfolio .github-cell.level-2{background:#777}html[data-portfolio-theme=dark] .scroll-portfolio .github-cell.level-3{background:#b1b1b1}html[data-portfolio-theme=dark] .scroll-portfolio .github-cell.level-4{background:#f0f0f0}html[data-portfolio-theme=dark] .github-tooltip-public{color:#f5f5f5;background:#202020;border-color:#ddd}html[data-portfolio-theme=dark] .snowfall-flake{background:rgba(255, 255, 255, var(--snow-opacity));box-shadow:0 0 6px #ffffff2e}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}.corner-controls{transition:none}}
