@import"https://fonts.googleapis.com/css?family=VT323";:root{--bg: #ffffff;--fg: #0f0f0f;--muted: #6b7280;--card: #f9fafb;--accent: #3b82f6;--border: #e5e7eb;font-family:Inter,system-ui,sans-serif;--lerp-0: 1;--lerp-1: .85;--lerp-2: .707;--lerp-3: .5;--lerp-4: .258;--lerp-5: .1}:root .theme-toggle-animated:focus-visible{outline:2px solid Highlight}[data-theme=dark]{--bg: #0a0a0a;--fg: #f0f0f0;--muted: #9ca3af;--card: #1f1f1f;--accent: #60a5fa;--border: #374151}.app,.site-header,main,footer,#root>*{position:relative;z-index:1}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--fg);line-height:1.6;font-size:16px}.app{max-width:1200px;margin:0 auto;padding:0 20px}.site-header{display:flex;justify-content:space-between;align-items:center;padding:40px 0;border-bottom:1px solid var(--border)}.site-header h1{font-size:1.5rem;font-weight:700}.header-left{display:flex;align-items:center;gap:18px}.social-links{display:flex;gap:10px}.social-links a{font-size:.9rem;color:var(--muted);text-decoration:none;padding:6px 8px;border-radius:6px;transition:background-color .15s,color .15s,transform .12s}.social-links a:hover,.social-links a:focus{background:var(--card);color:var(--fg);transform:translateY(-2px);outline:none}.social-links svg{vertical-align:middle;display:inline-block;color:var(--muted)}.social-links a:hover svg,.social-links a:focus svg{color:var(--fg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.theme-toggle{background:transparent;border:1px solid var(--border);color:var(--fg);padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px}.theme-toggle:hover{background:var(--card)}section{padding:80px 0}.hero{text-align:center}.hero h2{font-size:3rem;margin-bottom:16px}.hover-underline{position:relative;display:inline-block;color:var(--fg)}.hover-underline:after,.hover-underline:before{content:"";position:absolute;width:100%;height:2px;background:linear-gradient(to right,#ff4d4d,#4defff);left:0;transform:scaleX(0);transform-origin:right;transition:transform .4s ease-out}.hover-underline:before{top:-8px;transform-origin:left}.hover-underline:after{bottom:-8px}.hover-underline:hover:after,.hover-underline:hover:before,.hover-underline:focus-within:after,.hover-underline:focus-within:before{transform:scaleX(1)}@media (prefers-reduced-motion: reduce){.hover-underline:after,.hover-underline:before{transition:none;transform:none;opacity:1}}.hero p{font-size:1.2rem;color:var(--muted)}.projects h2{text-align:center;margin-bottom:40px;font-size:2rem}section>h2,.skills-header h2,.education h2,.projects h2{text-align:center}.skill-group h3,.education-card h3,.skills-header{display:flex;justify-content:center;align-items:center;margin-bottom:24px}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.education{padding-top:40px;padding-bottom:40px;display:flex;flex-direction:column;align-items:center;justify-content:center}.education-card{max-width:760px;margin:0 auto;background:var(--card);border:1px solid var(--border);padding:28px;border-radius:12px;display:flex;flex-direction:column;align-items:center;text-align:center}.education-card h3{margin-bottom:6px}.edu-program{color:var(--muted);font-weight:600}.edu-status{color:var(--muted);margin-top:8px}.edu-courses{margin-top:20px}.edu-courses h4{font-size:.95rem;margin-bottom:8px;color:var(--fg);text-align:center;font-weight:600}.edu-courses ul{list-style:none;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:0;margin:0 auto}.edu-courses li{background:var(--card);border:1px solid var(--border);padding:6px 10px;border-radius:999px;font-size:.9rem;color:var(--muted)}.skill-group{background:var(--card);border:1px solid var(--border);padding:20px;border-radius:10px}.skill-list{display:flex;flex-direction:column;gap:16px}.skill-row{display:flex;align-items:center;gap:12px}.skill-meta{display:flex;align-items:center;gap:10px}.skill-icon{width:20px;height:20px;display:inline-flex;align-items:center}.skill-icon svg{width:20px;height:20px;display:block}.skill-icon span{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center}.skill-name{font-weight:600}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.project-card{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:transform .2s}.project-card:hover{transform:translateY(-4px)}.project-card img{width:100%;height:200px;object-fit:cover}.card-body{padding:24px}.card-body h3{margin-bottom:8px;font-size:1.25rem}.card-body p{color:var(--muted);margin-bottom:20px}.badges{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.badge{background:var(--accent);color:#fff;padding:4px 8px;border-radius:4px;font-size:12px}.links{display:flex;gap:12px}.links a{color:var(--accent);text-decoration:none;font-weight:500}.links a:hover{text-decoration:underline}.contact{max-width:600px;margin:0 auto}.contact h2{text-align:center;margin-bottom:40px;font-size:2rem}form{display:flex;flex-direction:column;gap:20px}label{display:flex;flex-direction:column;gap:8px;font-weight:500}input,textarea{padding:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--fg);font-size:16px}input:focus,textarea:focus{outline:none;border-color:var(--accent)}button{background:var(--accent);color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:16px;cursor:pointer;font-weight:500}button:hover{opacity:.9}.contact-cta{text-align:center}.contact-link{display:inline-block}.email-btn{display:inline-block;margin:8px auto 0}.email-btn{--color: #3b82f6;position:relative;display:inline-block;padding:20px 44px;margin:12px;color:#fff;font-family:VT323,monospace;font-size:22px;text-shadow:0 3px 5px rgba(0,0,0,.25);border-radius:999px;border:6px solid var(--color);background:transparent;overflow:hidden;cursor:pointer;transition:background-position 1.5s ease,color .2s ease}.email-btn:before{content:"";position:absolute;left:0;top:0;width:200%;height:200%;background-image:url(https://web.archive.org/web/20160312084140im_/http://splatoon.nintendo.com/assets/img/nav-bg-fill-blue.png?1443460871);background-repeat:repeat-x;background-position:0 -100%;transform:translateZ(0);transition:background-position 1.5s ease;z-index:0}.email-btn:hover:before,.email-btn:focus:before{background-position:500% 100%}.email-btn:hover,.email-btn:focus{color:#fff}.liquid-btn{--color: #3b82f6;position:relative;display:inline-block;padding:20px 44px;margin:12px;color:#fff;font-family:VT323,monospace;font-size:22px;text-shadow:0 3px 5px rgba(0,0,0,.25);border-radius:999px;border:6px solid var(--color);background:transparent;overflow:hidden;cursor:pointer;transition:background-position 1.5s ease,color .2s ease}.liquid-btn:before{content:"";position:absolute;left:0;top:0;width:200%;height:200%;background-image:url(https://web.archive.org/web/20160312084140im_/http://splatoon.nintendo.com/assets/img/nav-bg-fill-blue.png?1443460871);background-repeat:repeat-x;background-position:0 -100%;transform:translateZ(0);transition:background-position 1.5s ease;z-index:0}.liquid-btn:hover:before,.liquid-btn:focus:before{background-position:500% 100%}.liquid-btn:hover,.liquid-btn:focus{color:#fff}.liquid-btn .label{position:relative;z-index:1}.liquid-btn .liquid{position:absolute;left:0;top:0;width:100%;height:100%;z-index:0;pointer-events:none}.wrapper button:nth-child(1){filter:hue-rotate(20deg)}.wrapper button:nth-child(2){filter:hue-rotate(40deg)}.wrapper button:nth-child(3){filter:hue-rotate(60deg)}.wrapper button:nth-child(4){filter:hue-rotate(80deg)}.wrapper button:nth-child(5){filter:hue-rotate(100deg)}.wrapper button:nth-child(6){filter:hue-rotate(120deg)}.wrapper button:nth-child(7){filter:hue-rotate(140deg)}.wrapper button:nth-child(8){filter:hue-rotate(160deg)}.wrapper button:nth-child(9){filter:hue-rotate(180deg)}.wrapper button:nth-child(10){filter:hue-rotate(200deg)}.wrapper button:nth-child(11){filter:hue-rotate(220deg)}.wrapper button:nth-child(12){filter:hue-rotate(240deg)}.wrapper button:nth-child(13){filter:hue-rotate(260deg)}.wrapper button:nth-child(14){filter:hue-rotate(280deg)}.wrapper button:nth-child(15){filter:hue-rotate(300deg)}.wrapper button:nth-child(16){filter:hue-rotate(320deg)}.wrapper button:nth-child(17){filter:hue-rotate(340deg)}.wrapper button:nth-child(18){filter:hue-rotate(360deg)}.site-footer{text-align:center;padding:40px 0;border-top:1px solid var(--border);color:var(--muted)}.site-footer{display:flex;flex-direction:column;align-items:center;gap:12px}.site-footer .social-links{display:flex;justify-content:center;gap:10px}.liquid-btn,.liquid-btn.submit{position:relative;display:inline-block;padding:10px 32px;text-decoration:none;text-transform:uppercase;width:200px;overflow:hidden;border-radius:30px;text-align:center;color:#fff;font-family:VT323,monospace;font-size:15px;letter-spacing:2px;border:6px solid var(--color, #3b82f6);text-shadow:0 3px 5px rgba(0,0,0,.25);background:transparent}.liquid-btn .label,.liquid-btn.submit .label{position:relative;color:#fff;z-index:2}.liquid-btn .liquid,.liquid-btn.submit .liquid{position:absolute;top:-52px;left:0;width:200px;height:200px;background:linear-gradient(180deg,#4973ff,#2f5bd6);box-shadow:inset 0 0 40px #00000073;transition:.45s;z-index:1;border-radius:50%}.liquid-btn .liquid:before,.liquid-btn .liquid:after,.liquid-btn.submit .liquid:before,.liquid-btn.submit .liquid:after{content:"";width:200%;height:200%;position:absolute;top:0;left:50%;transform:translate(-50%,-75%);background:#0000000d}.liquid-btn .liquid:before{border-radius:45%;background:#141414;animation:liquid-rotate 6s linear infinite}.liquid-btn .liquid:after{border-radius:40%;background:#14141480;animation:liquid-rotate 12s linear infinite}.liquid-btn:hover .liquid{top:-120px}@keyframes liquid-rotate{0%{transform:translate(-50%,-75%) rotate(0)}to{transform:translate(-50%,-75%) rotate(360deg)}}.interactive-name{display:flex;justify-content:center;padding:0;margin:0;list-style:none;font-size:4rem;font-weight:700;color:var(--fg);cursor:pointer;-webkit-user-select:none;user-select:none}.interactive-name .char{display:flex;padding:.45rem .12rem;--active: 0}.interactive-name .char:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.interactive-name .char span{display:inline-block;scale:calc(var(--active, 0) + .5);filter:blur(calc((1 - var(--active, 0)) * .5rem));transition:transform .18s cubic-bezier(.2,.9,.3,1),filter .18s ease}.interactive-name .char.sim-0{--active: 1}.interactive-name .char.sim-1{--active: .85}.interactive-name .char.sim-2{--active: .707}.interactive-name .char.sim-3{--active: .5}.interactive-name .char.sim-4{--active: .258}.interactive-name .char.sim-5{--active: .1}.interactive-name .char:is(:hover,:focus-visible){--active: var(--lerp-0)}.interactive-name .char:is(:hover,:focus-visible)+.char,.interactive-name .char:has(+.char:is(:hover,:focus-visible)){--active: var(--lerp-1)}.interactive-name .char:is(:hover,:focus-visible)+.char+.char,.interactive-name .char:has(+.char+.char:is(:hover,:focus-visible)){--active: var(--lerp-2)}.interactive-name .char:is(:hover,:focus-visible)+.char+.char+.char,.interactive-name .char:has(+.char+.char+.char:is(:hover,:focus-visible)){--active: var(--lerp-3)}.interactive-name .char:is(:hover,:focus-visible)+.char+.char+.char+.char,.interactive-name .char:has(+.char+.char+.char+.char:is(:hover,:focus-visible)){--active: var(--lerp-4)}.interactive-name .char:is(:hover,:focus-visible)+.char+.char+.char+.char+.char,.interactive-name .char:has(+.char+.char+.char+.char+.char:is(:hover,:focus-visible)){--active: var(--lerp-5)}@media (max-width: 768px){.hero h2,.interactive-name{font-size:2rem}.project-grid{grid-template-columns:1fr}.site-header{flex-direction:column;gap:20px}}@media (max-width: 480px){.interactive-name{font-size:1.5rem}.interactive-name .char{padding:.45rem .08rem}}.theme-toggle-wrapper{display:inline-block}.theme-toggle-input{position:absolute;opacity:0;pointer-events:auto}.theme-toggle-animated{display:block;width:64px;height:32px;border:2px solid var(--border);border-radius:9999px;position:relative;transition:transform .28s ease-in-out,background-color .18s ease;transform-origin:50% 50%;cursor:pointer;background-color:var(--card)}.theme-toggle-animated:before{transition:transform .28s cubic-bezier(.2,.8,.2,1);transition-delay:.08s;content:"";display:block;position:absolute;width:20px;height:20px;background-color:var(--fg);border-radius:50%;top:50%;left:6px;transform:translateY(-50%);box-shadow:0 2px 6px #0000001f;border:1px solid rgba(0,0,0,.06)}.theme-toggle-input:checked+.theme-toggle-animated{transform:rotate(360deg);background-color:var(--bg)}.theme-toggle-input:checked+.theme-toggle-animated:before{transform:translate(38px,-50%);background-color:var(--bg);box-shadow:0 2px 8px #0000001f;border:1px solid rgba(0,0,0,.06)}.theme-toggle-animated .thumb{position:absolute;width:20px;height:20px;border-radius:50%;top:50%;left:6px;transform:translateY(-50%);background:linear-gradient(180deg,#fffffff2,#0000000f);pointer-events:none;box-shadow:0 2px 6px #0000001f;border:1px solid rgba(0,0,0,.06)}@media (prefers-reduced-motion: reduce){.theme-toggle-animated,.theme-toggle-animated:before,.theme-toggle-animated .thumb{transition:none!important}}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.power-switch{--color-invert: var(--fg);--width: 100px;--height: 100px;position:relative;display:flex;justify-content:center;align-items:center;width:var(--width);height:var(--height)}.power-switch .button{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:relative}.power-switch .button:after{content:"";width:100%;height:100%;position:absolute;background:radial-gradient(circle closest-side,var(--color-invert),transparent);filter:blur(20px);opacity:0;transition:opacity 1s ease,transform 1s ease;transform:perspective(1px) translateZ(0);backface-visibility:hidden}.power-switch .power-on,.power-switch .power-off{height:100%;width:100%;position:absolute;z-index:1;fill:none;stroke:var(--color-invert);stroke-width:8px;stroke-linecap:round;stroke-linejoin:round}.power-switch .power-on .line,.power-switch .power-off .line{opacity:.2}.power-switch .power-on .circle,.power-switch .power-off .circle{opacity:.2;transform:rotate(-58deg);transform-origin:center 80px;stroke-dasharray:220;stroke-dashoffset:40}.power-switch .power-on{filter:drop-shadow(0px 0px 6px rgba(0,0,0,.18))}.power-switch .power-on .line{opacity:0;transition:opacity .3s ease 1s}.power-switch .power-on .circle{opacity:1;stroke-dashoffset:220;transition:transform 0s ease,stroke-dashoffset 1s ease 0s}.power-switch input{position:absolute;height:100%;width:100%;z-index:2;cursor:pointer;opacity:0}.power-switch input:checked+.button:after{opacity:.15;transform:scale(2) perspective(1px) translateZ(0);transition:opacity .5s ease,transform .5s ease}.power-switch input:checked+.button .power-on,.power-switch input:checked+.button .power-off{animation:click-animation .3s ease forwards;transform:scale(1)}.power-switch input:checked+.button .power-on .line,.power-switch input:checked+.button .power-off .line{animation:line-animation .8s ease-in forwards}.power-switch input:checked+.button .power-on .circle,.power-switch input:checked+.button .power-off .circle{transform:rotate(302deg)}.power-switch input:checked+.button .power-on .line{opacity:1;transition:opacity .05s ease-in .55s}.power-switch input:checked+.button .power-on .circle{transform:rotate(302deg);stroke-dashoffset:40;transition:transform .4s ease .2s,stroke-dashoffset .4s ease .2s}@keyframes line-animation{0%{transform:translateY(0)}10%{transform:translateY(10px)}40%{transform:translateY(-25px)}60%{transform:translateY(-25px)}85%{transform:translateY(10px)}to{transform:translateY(0)}}@keyframes click-animation{0%{transform:scale(1)}50%{transform:scale(.9)}to{transform:scale(1)}}.socials{position:fixed;display:block;left:20px;bottom:20px}.socials>a{display:block;width:30px;opacity:.2;transform:scale(var(--scale, .8));transition:transform .3s cubic-bezier(.38,-.12,.24,1.91)}.socials>a:hover{--scale: 1}body.power-switch-demo{background:#1b1a23;height:100vh;font:400 16px Poppins,sans-serif;display:flex;flex-direction:column;justify-content:center;align-items:center}
