:root{--color-space-deep: #0f1419;--color-space-dark: #1a1f2e;--color-space-medium: #252b3a;--color-ice-blue: #a8c5e0;--color-frost-blue: #89a8c5;--color-silver: #a5b8cc;--color-silver-light: #d0dce8;--color-silver-dark: #7a8fa5;--color-star-white: #f5f7fa;--color-star-blue: #a8c5e0;--color-text-primary: #dce3ea;--color-text-secondary: #a0afc0;--font-display: "Cascadia Code";--font-body: "IBM Plex Sans";--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 4rem;--spacing-xl: 6rem;--container-max-width: 1200px;--container-padding: 2rem}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{font-family:var(--font-body),sans-serif;color:var(--color-text-primary);background:linear-gradient(180deg,var(--color-space-deep) 0%,var(--color-space-dark) 50%,var(--color-space-deep) 100%) fixed;line-height:1.6;overflow-x:hidden;position:relative;min-height:100vh}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");pointer-events:none;z-index:1;opacity:.5}#stars-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}main{position:relative;z-index:2}.nav-container{position:fixed;top:0;right:0;z-index:1000;padding:var(--spacing-md)}.hamburger-button{width:48px;height:48px;background:#2a2f5280;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(192,214,232,.2);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;z-index:1001}.hamburger-button:hover{background:#2a2f52cc;border-color:#c0d6e866;transform:scale(1.05)}.hamburger-line{width:24px;height:2px;background:var(--color-silver);transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:2px}.hamburger-button[aria-expanded=true] .hamburger-line:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger-button[aria-expanded=true] .hamburger-line:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger-button[aria-expanded=true] .hamburger-line:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-menu{position:fixed;top:0;right:0;height:100vh;width:min(320px,80vw);background:#0a0e1af2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid rgba(192,214,232,.1);transform:translate(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:-4px 0 24px #0000004d}.nav-menu[aria-hidden=false]{transform:translate(0)}.nav-list{list-style:none;padding:calc(var(--spacing-md) + 48px + var(--spacing-md)) var(--spacing-md) var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs)}.nav-link{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-primary);text-decoration:none;font-family:var(--font-display),monospace;font-size:1.25rem;font-weight:600;border-radius:8px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.nav-link:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:0;height:2px;background:var(--color-silver);transition:width .3s cubic-bezier(.4,0,.2,1)}.nav-link:hover{background:#c0d6e81a;color:var(--color-silver-light);padding-left:calc(var(--spacing-md) + 12px)}.nav-link:hover:before{width:8px;margin-left:var(--spacing-sm)}.scroll-to-top{position:fixed;bottom:var(--spacing-md);right:var(--spacing-md);width:48px;height:48px;background:#2a2f52cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(192,214,232,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:999;color:var(--color-silver);opacity:0;visibility:hidden;transform:translateY(20px)}.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-to-top:hover{background:#2a2f52;border-color:#c0d6e866;transform:translateY(-4px);box-shadow:0 8px 24px #c0d6e833}.scroll-to-top svg{width:24px;height:24px}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding)}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:var(--spacing-md)}.hero-content{text-align:center;position:relative;animation:fadeInUp 1.2s cubic-bezier(.16,1,.3,1)}.hero-title{display:flex;flex-direction:column;gap:var(--spacing-sm)}.hero-title-line{font-family:var(--font-display),monospace;font-size:clamp(2.5rem,12vw,8rem);font-weight:700;letter-spacing:.02em;white-space:nowrap;background:linear-gradient(135deg,var(--color-silver-light) 0%,var(--color-silver) 50%,var(--color-silver-dark) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 40px rgba(192,214,232,.3);animation:shimmer 3s ease-in-out infinite}.hero-title-subtitle{font-family:var(--font-body),sans-serif;font-size:clamp(1rem,3vw,1.5rem);font-weight:300;letter-spacing:.3em;text-transform:uppercase;color:var(--color-text-secondary);opacity:0;animation:fadeIn 1s ease .5s forwards}.hero-ornament{margin-top:var(--spacing-md);width:80px;height:1px;background:var(--color-silver);opacity:0;animation:expandWidth 1s ease .8s forwards}.scroll-indicator{position:absolute;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);color:var(--color-text-secondary);font-size:.875rem;letter-spacing:.2em;text-transform:uppercase;opacity:0;animation:fadeInBounce 1s ease 1.5s forwards}.scroll-indicator:after{content:"";width:1px;height:40px;background:linear-gradient(180deg,var(--color-silver) 0%,transparent 100%);animation:scrollLine 2s ease-in-out infinite}section{padding:var(--spacing-xl) 0;position:relative}.section-header{text-align:center;margin-bottom:var(--spacing-lg);opacity:0;animation:fadeInUp .8s ease forwards;animation-play-state:paused}.section-header.visible{animation-play-state:running}.section-title{font-family:var(--font-display),monospace;font-size:clamp(2.5rem,6vw,4rem);font-weight:600;color:var(--color-star-white);letter-spacing:.05em;margin-bottom:var(--spacing-sm)}.section-decoration{width:60px;height:1px;margin:0 auto;background:var(--color-silver);opacity:.5}.bio-content{max-width:800px;margin:0 auto;opacity:0;animation:fadeInUp .8s ease .2s forwards;animation-play-state:paused}.bio-content.visible{animation-play-state:running}.bio-text{font-size:clamp(1.125rem,2.5vw,1.375rem);line-height:1.8;color:var(--color-text-primary);margin-bottom:var(--spacing-md);text-align:center}.bio-text:last-child{margin-bottom:0}.social-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-md);max-width:900px;margin:0 auto}.social-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:#2a2f524d;border:1px solid rgba(192,214,232,.1);border-radius:12px;text-decoration:none;color:var(--color-text-primary);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;opacity:0;animation:fadeInUp .6s ease forwards;animation-play-state:paused}.social-card:nth-child(1){animation-delay:0s}.social-card:nth-child(2){animation-delay:.1s}.social-card:nth-child(3){animation-delay:.2s}.social-card.visible{animation-play-state:running}.social-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(192,214,232,.1) 50%,transparent 100%);transition:left .6s ease}.social-card:hover{transform:translateY(-4px);border-color:#c0d6e866;box-shadow:0 8px 24px #c0d6e826}.social-card:hover:before{left:100%}.social-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--color-silver);flex-shrink:0}.social-icon svg{width:28px;height:28px}.social-content{flex:1}.social-title{font-family:var(--font-display),monospace;font-size:1.25rem;font-weight:600;margin-bottom:.25rem;color:var(--color-star-white)}.social-handle{font-size:.9375rem;color:var(--color-text-secondary)}.skills-constellation{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md);max-width:900px;margin:0 auto;padding:var(--spacing-lg) 0}.skill-star{position:relative;padding:var(--spacing-sm) var(--spacing-md);opacity:0;animation:fadeInScale .6s ease forwards;animation-delay:var(--delay);animation-play-state:paused;text-decoration:none;display:inline-block;cursor:pointer}.skill-star.visible{animation-play-state:running}.skill-star:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;background:radial-gradient(circle,rgba(165,184,204,.1) 0%,transparent 70%);border-radius:50%;z-index:-1;transition:all .3s ease}.skill-star:hover:before{width:140%;height:140%;background:radial-gradient(circle,rgba(165,184,204,.2) 0%,transparent 70%)}.skill-name{font-family:var(--font-display),monospace;font-size:clamp(1.25rem,3vw,1.75rem);font-weight:600;color:var(--color-star-white);text-shadow:0 0 15px rgba(165,184,204,.3);position:relative;display:inline-block;transition:all .3s ease}.skill-star:hover .skill-name{color:var(--color-silver-light);text-shadow:0 0 20px rgba(165,184,204,.6);transform:translateY(-2px)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--spacing-md);max-width:1100px;margin:0 auto}.project-card{display:block;padding:var(--spacing-md);background:#2a2f524d;border:1px solid rgba(192,214,232,.1);border-radius:12px;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;opacity:0;animation:fadeInUp .6s ease forwards;animation-play-state:paused;text-decoration:none;color:inherit}.project-card:nth-child(1){animation-delay:0s}.project-card:nth-child(2){animation-delay:.15s}.project-card:nth-child(3){animation-delay:.3s}.project-card.visible{animation-play-state:running}.project-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--color-silver) 0%,var(--color-silver-light) 100%);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.4,0,.2,1)}.project-card:hover{transform:translateY(-8px);border-color:#c0d6e84d;box-shadow:0 12px 32px #c0d6e833}.project-card:hover:before{transform:scaleX(1)}.project-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--spacing-sm)}.project-title{font-family:var(--font-display),monospace;font-size:1.5rem;font-weight:600;color:var(--color-star-white)}.project-year{font-size:.9375rem;color:var(--color-silver);font-weight:500}.project-description{color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--spacing-md)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.project-tag{padding:.375rem .875rem;background:#c0d6e81a;border:1px solid rgba(192,214,232,.2);border-radius:20px;font-size:.8125rem;color:var(--color-silver-light);font-weight:500}.contact-content{max-width:700px;margin:0 auto;text-align:center;opacity:0;animation:fadeInUp .8s ease forwards;animation-play-state:paused}.contact-content.visible{animation-play-state:running}.contact-text{font-size:clamp(1.125rem,2.5vw,1.375rem);line-height:1.8;color:var(--color-text-primary);margin-bottom:var(--spacing-lg)}.contact-button{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:1.25rem 2.5rem;background:linear-gradient(135deg,#c0d6e826,#9cc5e026);border:2px solid var(--color-silver);border-radius:50px;font-family:var(--font-display),monospace;font-size:1.125rem;font-weight:600;color:var(--color-silver);text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.contact-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(192,214,232,.2) 50%,transparent 100%);transition:left .6s ease}.contact-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #c0d6e84d;background:linear-gradient(135deg,#c0d6e840,#9cc5e040)}.contact-button:hover:before{left:100%}.contact-button-icon{width:20px;height:20px;transition:transform .3s ease}.contact-button:hover .contact-button-icon{transform:translate(4px)}.footer{padding:var(--spacing-md) 0 var(--spacing-sm);text-align:center;border-top:1px solid rgba(192,214,232,.1)}.footer-share{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:var(--spacing-sm)}.footer-share-text{color:var(--color-text-secondary);font-size:.75rem;opacity:.6}.footer-share-button{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:transparent;border:none;color:var(--color-text-secondary);font-size:.75rem;font-weight:400;text-decoration:none;opacity:.5;transition:opacity .2s ease}.footer-share-button:hover{opacity:.8}.footer-share-button svg{width:.875rem;height:.875rem}.footer-text{color:var(--color-text-secondary);font-size:.9375rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes fadeInBounce{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}@keyframes expandWidth{0%{width:0;opacity:0}to{width:80px;opacity:1}}@keyframes shimmer{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}@keyframes scrollLine{0%{height:0}50%{height:40px}to{height:0}}@media(max-width:768px){:root{--container-padding: 1.5rem;--spacing-lg: 3rem;--spacing-xl: 4rem}.social-grid,.projects-grid{grid-template-columns:1fr}.skills-constellation{gap:var(--spacing-sm)}.contact-button{padding:1rem 2rem;font-size:1rem}}@media(max-width:480px){:root{--container-padding: 1rem}.hero{min-height:100svh}.scroll-indicator{bottom:var(--spacing-md)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms}}
