*{margin:0;padding:0;box-sizing:border-box}a{text-decoration:none;color:inherit;position:relative}a:after{content:"";position:absolute;width:100%;height:1px;bottom:-1px;left:0;background-color:currentColor;transform-origin:right;transform:scaleX(0);transition:transform .3s ease}a:hover{text-decoration:none;color:inherit}a:hover:after{transform:scaleX(1);transform-origin:left}body{font-family:Lato,sans-serif;background:#0f172a;color:#e2e8f0;line-height:1.6;min-height:100vh;font-weight:300}h1,h2,h3,h4,h5,h6{font-family:Oswald,sans-serif}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:4rem 2rem;scroll-snap-align:start}.hero h1{font-size:4rem;margin-bottom:.5rem;background:linear-gradient(135deg,#6b8cae,#4a6fa5,#3d5a80);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero h2{font-size:2rem;color:#94a3b8;margin-bottom:2rem}.featured-skills{font-size:1rem;font-weight:600;color:#4a6fa5;margin-bottom:3rem;text-transform:uppercase;letter-spacing:.05em;white-space:normal;display:flex;flex-wrap:wrap;gap:.5rem;padding-bottom:.5rem}.link-name{font-family:Oswald,sans-serif;font-size:1.25rem;color:#e2e8f0}.link-type{color:#94a3b8;font-size:.9rem;margin-bottom:.25rem;display:block}.link-platform{color:#4a6fa5;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.hero p{font-size:1.25rem;color:#cbd5e1;max-width:700px;margin-bottom:3rem}.profile-image{width:200px;height:200px;border-radius:50%;object-fit:cover;border:4px solid #4a6fa5;margin-bottom:2rem;box-shadow:0 10px 40px #4a6fa54d}.profile-image.bw{filter:grayscale(100%)}.section{padding:8rem 2rem;min-height:100vh;display:flex;flex-direction:column;justify-content:center;scroll-snap-align:start}.section-title{font-size:2.5rem;margin-bottom:3rem;text-align:center;color:#e2e8f0}.contact-section{padding-bottom:20rem}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;margin-bottom:4rem;align-items:flex-start}.skills-vertical{display:flex;flex-direction:column;gap:2rem;margin-bottom:4rem}.code-block{background:#0d1117;border-radius:12px;overflow:hidden;border:1px solid transparent;transition:all .3s ease;width:100%}.code-block:hover{border-color:#4a6fa5;box-shadow:0 8px 24px #4a6fa533}.code-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:0rem;padding:.75rem 1.5rem;border-bottom:0px solid #30363d}.window-buttons{display:flex;gap:.5rem;flex-shrink:0}.window-button{width:12px;height:12px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;padding:0}.close-button{background:#ff5f56}.minimize-button{background:#ffbd2e}.fullscreen-button{background:#27ca40}.code-title-section{flex:1;display:flex;align-items:center;justify-content:center;background:#30363d80;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;color:#8b949e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-dot{width:12px;height:12px;border-radius:50%;background:#ff5f56}.code-dot:nth-child(2){background:#ffbd2e}.code-dot:nth-child(3){background:#27ca40}.code-title{margin-left:1rem;font-size:.85rem;color:#8b949e}.code-content{margin-top:1rem;font-family:Fira Code,Monaco,Courier New,monospace;font-size:.85rem;line-height:1.2;color:#e6edf3;white-space:pre;overflow-x:auto}.code-content::-webkit-scrollbar{height:0;background:transparent}.code-content::-webkit-scrollbar-thumb{background:transparent}.code-content{-ms-overflow-style:none;scrollbar-width:none}.code-scroll-container::-webkit-scrollbar{height:0;display:none}.code-scroll-container::-webkit-scrollbar-thumb{display:none}.code-scroll-container{-ms-overflow-style:none;scrollbar-width:none}.code-line{display:block;opacity:0;animation:fadeInSlide .5s ease forwards}@keyframes fadeInSlide{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.syntax-keyword{color:#4a6fa5}.syntax-string{color:#3d5a80}.syntax-function{color:#4a6fa5}.syntax-comment{color:#6b7280}.syntax-number{color:#3d5a80}.graph-container{background:#0d1117;border-radius:12px;padding:2rem;margin-bottom:2rem}.graph-title{font-size:1rem;margin-bottom:1rem;color:#e2e8f0}.graph{height:450px;position:relative;overflow:hidden}.graph-line{position:absolute;bottom:0;left:0;right:0}.graph-grid{position:absolute;inset:0;border-right:1px solid #30363d;border-left:1px solid #30363d;background-image:linear-gradient(#30363d 1px,transparent 1px);background-size:100% 50px}.graph-path{fill:none}.svg-showcase{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:3rem}.svg-showcase>div{height:500px}.publications-scroll{max-height:500px;overflow-y:auto;position:relative;margin-top:3rem}.publications-scroll:after{content:"";position:sticky;bottom:0;left:0;right:0;height:60px;background:linear-gradient(to bottom,transparent,#0d1117);pointer-events:none}.publications-scroll::-webkit-scrollbar{width:0;background:transparent}.publications-scroll::-webkit-scrollbar-thumb{background:transparent}.publications-scroll{-ms-overflow-style:none;scrollbar-width:none}.intro-container{max-width:800px;margin-left:auto;margin-right:auto}.physics-intro{font-size:1rem;line-height:1.6;margin-bottom:2rem;font-weight:300}.physics-content{display:grid;grid-template-columns:7fr 3fr;gap:4rem;align-items:start}.physics-svg{order:-1}.physics-heading{font-family:Oswald,sans-serif;font-size:1rem;margin-bottom:1rem;color:#e2e8f0}.publications-list{list-style:none;font-weight:300;line-height:1.3}.publication-item{margin-bottom:1rem}.pub-year{color:#4a6fa5;font-weight:400;display:block;margin-bottom:.15rem;font-size:.85rem}.pub-title{color:#e2e8f0;font-weight:400;font-size:.85rem;display:block}.pub-authors{color:#94a3b8;display:block;font-size:.8rem;margin-top:.15rem}.pub-ref{color:#6b7280;display:block;font-size:.75rem}.pub-note{color:#94a3b8;font-style:italic;font-size:.8rem}.link-cards{margin-top:3rem}.cards-heading{font-family:Oswald,sans-serif;font-size:1rem;margin-bottom:1.5rem;color:#e2e8f0;text-align:center}.cards-grid{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.link-card{background:#0d1117;border-radius:12px;padding:1.5rem;cursor:pointer;transition:all .3s ease;border:1px solid transparent;display:grid;grid-template-rows:1fr auto auto;gap:.25rem;width:210px}.link-card:after{display:none}.link-card:hover:after{display:none}.link-card:hover{border-color:#4a6fa5;transform:translateY(-4px);box-shadow:0 8px 24px #4a6fa533}.svg-container{background:#0d1117;border-radius:12px;padding:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;box-sizing:border-box;border:1px solid transparent;min-height:450px}.svg-container:hover{border-color:#4a6fa5;box-shadow:0 8px 24px #4a6fa533}.svg-container svg{width:100%;height:auto;max-height:100%}.animated-svg{overflow:visible}.svg-container motion-path{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}@supports (-webkit-touch-callout: none){.svg-container motion-path{-webkit-transform:translateZ(0px);transform:translateZ(0)}}@-webkit-keyframes pathDraw{0%{stroke-dashoffset:5000}to{stroke-dashoffset:0}}@keyframes pathDraw{0%{stroke-dashoffset:5000}to{stroke-dashoffset:0}}.svg-label{margin-top:1rem;font-size:.85rem;color:#8b949e}@media(max-width:768px){#root{background:#0f172a}.hero{padding:3rem 1.5rem}.hero h1{font-size:2.5rem}.hero h2{font-size:1.75rem}.hero p{font-size:1.1rem;max-width:500px}.profile-image{width:150px;height:150px}.section{padding:5rem 1.5rem}.section-title{font-size:1.75rem;margin-bottom:2rem}.contact-section{padding-bottom:5rem}.skills-grid{grid-template-columns:1fr}.skills-vertical{gap:1.5rem}.intro-container,.physics-intro,.featured-skills{max-width:100%}.physics-intro{font-size:.9rem}.featured-skills{font-size:.85rem}.code-scroll-container{padding:0 1rem 1rem}.code-content{font-size:.75rem}.physics-content{grid-template-columns:1fr;gap:2rem}.physics-svg{order:-1}.publications-scroll{max-height:400px}.svg-showcase>div{height:400px}.svg-container{min-height:350px}.cards-grid{flex-wrap:wrap;gap:1rem}.link-card{width:100%;max-width:300px}.link-name{font-size:1.1rem}.link-type,.link-platform{font-size:.85rem}footer{padding:2rem 1.5rem}.footer-tech{font-size:.85rem;margin-bottom:.75rem}.footer-credit{font-size:.9rem}}@media(max-width:480px){#root{padding:0 .5rem}.hero h1{font-size:2rem}.hero h2{font-size:1.5rem}.hero p{font-size:1rem}.profile-image{width:120px;height:120px}.section{padding:3rem .5rem}.section-title{font-size:1.5rem;margin-bottom:1.5rem}.intro-container,.physics-intro,.featured-skills{max-width:100%}.physics-intro{font-size:.85rem}.featured-skills{font-size:.75rem}.code-block{margin-left:0;margin-right:0}.code-header{padding:.75rem 1rem}.code-scroll-container{padding:0 .5rem 1rem}.code-content{font-size:.65rem}.svg-container{min-height:300px;padding:1rem}.svg-showcase>div{height:300px}footer{padding:1.5rem .5rem}.footer-tech{font-size:.75rem;margin-bottom:.5rem}.footer-credit{font-size:.85rem}}.scroll-to-next{background:none;border:none;color:#94a3b84d;cursor:pointer;padding:1rem;display:flex;align-items:center;justify-content:center;margin:2rem auto 0;transition:all .3s ease;opacity:.4}.scroll-to-next:hover{opacity:1;color:#4a6fa5;transform:translateY(4px)}.scroll-to-next:focus{outline:none}.scroll-to-next:focus-visible{outline:2px solid #4a6fa5;outline-offset:2px}footer{background:#0d1117;padding:3rem 2rem;text-align:center;width:100vw;margin-left:calc(-.5*(100vw - 100%));position:relative;margin-top:0}.footer-content{position:relative}html{height:100%;background:#0f172a}body{font-family:Lato,sans-serif;background:#0f172a;color:#e2e8f0;line-height:1.6;min-height:100vh;font-weight:300;margin:0;padding:0;width:100%;display:flex;flex-wrap:wrap}#root{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem;background:linear-gradient(180deg,#0f172a,#162030);background-attachment:fixed;min-height:100vh;flex-grow:1}.footer-tech{color:#94a3b8;font-weight:300;font-size:.85rem;margin-bottom:1rem}.footer-credit{font-family:Oswald,sans-serif;font-size:.9rem;background:linear-gradient(135deg,#6b8cae,#4a6fa5,#3d5a80);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
