:root{color-scheme:dark;color:#e6edf5;background:#050608;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0;background:#050608}body{line-height:1.5}.app-shell{padding:32px}.hero-section{max-width:1200px;margin:0 auto}h1{margin:0 0 24px;font-size:clamp(3rem,5vw,5.2rem);line-height:.95;letter-spacing:-.05em}.eyebrow{margin:0 0 32px;color:#8c96a5;text-transform:uppercase;font-size:.82rem;letter-spacing:.24em}.hero-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:32px;align-items:start}.hero-left,.hero-right{display:flex;flex-direction:column;gap:24px}.panel{border:1px solid rgba(255,255,255,.08);background:#0d1116db;padding:22px;border-radius:18px}.label{margin:0 0 12px;color:#64d2ff;text-transform:uppercase;letter-spacing:.2em;font-size:.75rem}.panel p{margin:0 0 10px;color:#d7e1ec}.links-row{display:flex;gap:14px;flex-wrap:wrap}.links-row a{color:#8be7ff;text-decoration:none;border-bottom:1px solid transparent}.links-row a:hover{border-color:#8be7ff}.profile-card{display:grid;gap:16px;padding:26px;border:1px solid rgba(255,255,255,.08);background:#12161ceb;border-radius:22px}.profile-image{width:100%;min-height:360px;border-radius:18px;background:linear-gradient(135deg,#181e25,#0c1014);display:inline-flex;align-items:center;justify-content:center;color:#5c6572;font-size:.95rem}.profile-caption{margin:0;color:#8c96a5;font-size:.95rem}.resume-button{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:999px;background:#0b5e8d;color:#f3f9ff;text-decoration:none;font-weight:600}.resume-button:hover{background:#0f79b0}.section-header{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.section-copy{margin:0;color:#a1adbe}.projects-section{margin-top:56px}.section-header{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}.section-header h2{margin:0;font-size:clamp(2rem,3vw,2.8rem);letter-spacing:-.04em}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,260px);gap:28px;justify-content:center;align-items:stretch}.project-island{width:260px;height:320px;perspective:1000px}.project-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s ease}.project-island:hover .project-card-inner{transform:rotateY(180deg)}.project-card-face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:26px 22px;border:1px solid rgba(139,231,255,.22);border-radius:28px;background:#0a0e12eb;color:inherit;text-align:center;backface-visibility:hidden;overflow:hidden}.project-card-front{box-shadow:0 18px 45px #0000002e}.project-card-back{transform:rotateY(180deg);border-color:#8be7ff7a;background:radial-gradient(circle at center,rgba(139,231,255,.16),transparent 58%),#080c10f7}.project-name{margin:0;font-size:1.22rem;font-weight:800;line-height:1.2}.project-description{margin:0;max-width:210px;color:#bac8d8;font-size:.92rem;line-height:1.45}.project-tech{margin:0;max-width:210px;color:#8be7ff;font-size:.8rem;line-height:1.35}.learn-more-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border:1px solid rgba(139,231,255,.45);border-radius:999px;background:#8be7ff1a;color:#8be7ff;text-decoration:none;font-weight:800;font-size:.9rem;transition:background .2s ease,color .2s ease,transform .2s ease}.learn-more-button:hover{background:#8be7ff38;color:#fff;transform:translateY(-2px)}.learn-more-button.disabled{cursor:not-allowed;opacity:.55;pointer-events:none}@media (max-width: 700px){.projects-grid{grid-template-columns:1fr;justify-items:center}.project-island{width:min(100%,300px);height:320px}}.github-section{margin-top:42px}.github-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.github-profile-link{color:#8be7ff;text-decoration:none;font-weight:700}.github-profile-link:hover{color:#fff}.github-muted{margin:0;color:#a1adbe}.github-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.github-repo-card{display:flex;flex-direction:column;justify-content:space-between;min-height:160px;padding:18px;border:1px solid rgba(139,231,255,.16);border-radius:18px;background:#05080ca6;color:inherit;text-decoration:none;transition:transform .2s ease,border-color .2s ease,background .2s ease}.github-repo-card:hover{transform:translateY(-4px);border-color:#8be7ff73;background:#0a1016e6}.github-repo-card h3{margin:0 0 10px;font-size:1rem}.github-repo-card p{margin:0;color:#bac8d8;font-size:.9rem;line-height:1.45}.github-repo-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;color:#8be7ff;font-size:.78rem}.cat-pet{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;will-change:transform}.cat-flip{width:32px;height:32px}.cat-flip.right{transform:scaleX(1)}.cat-flip.left{transform:scaleX(-1)}.cat-scale{width:32px;height:32px;transform:scale(3);transform-origin:bottom left}.pixel-cat{width:32px;height:32px;overflow:hidden;background-image:url(/Cat%20Sprite%20Sheet.png);background-repeat:no-repeat;image-rendering:pixelated;animation:catWalkFrames .9s steps(8) infinite}@keyframes catMove{0%{transform:translate3d(-80px,0,0)}44%{transform:translate3d(calc(100vw + 80px),0,0)}50%{transform:translate3d(calc(100vw + 80px),0,0)}94%{transform:translate3d(-80px,0,0)}to{transform:translate3d(-80px,0,0)}}@keyframes catWalkFrames{0%{background-position:0px -128px}to{background-position:-256px -128px}}.cat-scene.paused .cat-pet,.cat-scene.paused .cat-flip{animation-play-state:paused}.cat-scene.paused.sit .pixel-cat{animation:catSitTail .8s steps(4) infinite}.cat-scene.paused.sleep .pixel-cat{animation:catSleep 1.2s steps(4) infinite}.cat-scene.paused.play .pixel-cat{animation:catPlay 1s steps(6) infinite}.cat-scene.paused.scared .pixel-cat{animation:catScared 1s steps(8) infinite}.cat-scene.paused.lick .pixel-cat{animation:catLick 1.1s steps(3) infinite}.cat-scene.paused.jump .pixel-cat{animation:catJump .8s steps(8) 1}.cat-scene.paused.big-jump .pixel-cat{animation:catBigJump .9s steps(7) 1}@keyframes catLick{0%{background-position:0px -32px}to{background-position:0px -128px}}@keyframes catJump{0%{background-position:0px -128px}to{background-position:-256px -128px}}@keyframes catBigJump{0%{background-position:0px -256px}to{background-position:-224px -256px}}@keyframes catPlay{0%{background-position:0px -224px}to{background-position:-192px -224px}}@keyframes catScared{0%{background-position:0px -288px}to{background-position:-256px -288px}}@keyframes catSitTail{0%{background-position:0px 0px}to{background-position:-128px 0px}}@keyframes catSleep{0%{background-position:0px -192px}to{background-position:-128px -192px}}.cat-scene.paused.jump .cat-scale,.cat-scene.paused.big-jump .cat-scale{animation:catBounce .8s ease-out 1}@keyframes catBounce{0%{transform:scale(3) translateY(0)}40%{transform:scale(3) translateY(-18px)}to{transform:scale(3) translateY(0)}}.cat-scene.paused.big-jump .cat-scale{animation:catBigBounce .9s ease-out 1}@keyframes catBigBounce{0%{transform:scale(3) translateY(0)}45%{transform:scale(3) translateY(-32px)}to{transform:scale(3) translateY(0)}}.loading-dots{display:inline-flex;gap:4px;margin-left:8px;color:#8be7ff}.loading-dots span{opacity:.2;animation:dot-fade 1.2s infinite ease-in-out}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-fade{0%,80%,to{opacity:.2}40%{opacity:1}}@media (max-width: 900px){.hero-grid,.projects-grid{grid-template-columns:1fr}}
