*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px;font-size:16px}body{font-family:IBM Plex Mono,monospace;font-weight:400;background-color:#0a0a0a;color:#e8e6e3;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7}:root{--bg-primary: #0a0a0a;--bg-secondary: #111111;--bg-tertiary: #1a1a1a;--text-primary: #e8e6e3;--text-secondary: #8a8a8a;--text-dim: #555555;--accent: #c4f042;--accent-dim: rgba(196, 240, 66, .12);--border: #1e1e1e;--border-hover: #333333;--mono: "IBM Plex Mono", monospace;--serif: "Newsreader", Georgia, serif;--max-width: 1080px;--side-padding: clamp(24px, 5vw, 80px)}.app{min-height:100vh;position:relative}.app:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--side-padding)}.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 var(--side-padding);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#0a0a0acc;border-bottom:1px solid var(--border);transition:all .3s ease}.nav-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:64px}.nav-logo{font-family:var(--mono);font-size:.85rem;font-weight:500;color:var(--text-primary);text-decoration:none;letter-spacing:-.02em}.nav-logo .accent{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:32px;list-style:none}.nav-links a{font-family:var(--mono);font-size:.75rem;color:var(--text-secondary);text-decoration:none;text-transform:lowercase;letter-spacing:.05em;transition:color .2s ease;position:relative}.nav-resume-button{font-family:var(--mono);font-size:.75rem;color:var(--text-secondary);text-decoration:none;text-transform:lowercase;letter-spacing:.05em;transition:color .2s ease;position:relative;background:none;border:none;padding:0;cursor:pointer}.nav-links a:hover,.nav-links a.active,.nav-resume-button:hover{color:var(--text-primary)}.nav-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--accent);transition:width .3s ease}.nav-resume-button:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--accent);transition:width .3s ease}.nav-links a:hover:after,.nav-resume-button:hover:after{width:100%}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}.nav-toggle span{display:block;width:18px;height:1px;background:var(--text-primary);margin:5px 0;transition:all .3s ease}@media(max-width:768px){.nav-toggle{display:block}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:#0a0a0af2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;padding:32px var(--side-padding);gap:24px;border-bottom:1px solid var(--border)}.nav-links.open{display:flex}}.resume-modal{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:32px;background:#000000c7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.resume-modal-panel{width:min(1080px,100%);height:min(88vh,900px);display:flex;flex-direction:column;background:linear-gradient(180deg,#141414fa,#0c0c0cfa);border:1px solid var(--border-hover);box-shadow:0 30px 80px #00000073;overflow:hidden}.resume-modal-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;border-bottom:1px solid var(--border)}.resume-modal-header h2{margin:4px 0 0;font-family:var(--serif);font-size:1.4rem;font-weight:400;color:var(--text-primary)}.resume-modal-label{margin:0;font-family:var(--mono);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.resume-modal-close{border:1px solid var(--border-hover);background:transparent;color:var(--text-secondary);font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:10px 14px;cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.resume-modal-close:hover{color:var(--text-primary);border-color:var(--accent);background:var(--accent-dim)}.resume-modal-frame{flex:1;min-height:0;background:#111}.resume-modal-frame iframe{width:100%;height:100%;border:none}@media(max-width:768px){.resume-modal{padding:16px}.resume-modal-panel{height:min(86vh,900px)}.resume-modal-header{padding:16px;align-items:flex-start;flex-direction:column}.resume-modal-close{width:100%}}.hero{min-height:100vh;display:flex;align-items:center;position:relative;padding-top:64px}.hero-content{max-width:var(--max-width);margin:0 auto;padding:0 var(--side-padding);width:100%}.hero-label{font-family:var(--mono);font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.2em;margin-bottom:24px;display:flex;align-items:center;gap:12px;opacity:0;animation:fadeUp .6s ease forwards .2s}.hero-label:before{content:"";display:block;width:32px;height:1px;background:var(--accent)}.hero-name{font-family:var(--serif);font-size:clamp(3rem,8vw,6.5rem);font-weight:300;line-height:1.05;letter-spacing:-.03em;color:var(--text-primary);margin-bottom:32px;opacity:0;animation:fadeUp .6s ease forwards .4s}.hero-name em{font-style:italic;color:var(--accent)}.hero-description{max-width:560px;font-family:var(--mono);font-size:.85rem;line-height:1.8;color:var(--text-secondary);margin-bottom:48px;opacity:0;animation:fadeUp .6s ease forwards .6s}.hero-meta{display:flex;gap:48px;flex-wrap:wrap;opacity:0;animation:fadeUp .6s ease forwards .8s}.hero-meta-item{display:flex;flex-direction:column;gap:4px}.hero-meta-label{font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.15em}.hero-meta-value{font-family:var(--serif);font-size:1rem;color:var(--text-primary);font-weight:400}.hero-meta-value a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--border);transition:border-color .2s ease}.hero-meta-value a:hover{border-color:var(--accent)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section{padding:120px 0;position:relative}.section-header{display:flex;align-items:baseline;gap:16px;margin-bottom:64px}.section-number{font-family:var(--mono);font-size:.7rem;color:var(--accent);letter-spacing:.05em}.section-title{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2rem);font-weight:300;color:var(--text-primary);letter-spacing:-.02em}.section-line{flex:1;height:1px;background:var(--border);margin-left:24px}.research-grid{display:grid;gap:1px;background:var(--border);border:1px solid var(--border)}.research-item{background:var(--bg-primary);padding:40px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start;transition:background .3s ease;cursor:default}.research-item:hover{background:var(--bg-secondary)}.research-item-content h3{font-family:var(--serif);font-size:1.15rem;font-weight:400;color:var(--text-primary);margin-bottom:12px;line-height:1.4}.research-item-content p{font-size:.8rem;color:var(--text-secondary);line-height:1.7;max-width:640px}.research-item-meta{text-align:right;display:flex;flex-direction:column;gap:8px;align-items:flex-end;min-width:120px}.research-venue{font-family:var(--mono);font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;padding:4px 10px;border:1px solid var(--accent-dim);background:var(--accent-dim)}.research-year{font-family:var(--mono);font-size:.7rem;color:var(--text-dim)}.research-tags{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.research-tag{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);padding:3px 8px;border:1px solid var(--border);text-transform:lowercase}@media(max-width:640px){.research-item{grid-template-columns:1fr;padding:28px 20px}.research-item-meta{text-align:left;align-items:flex-start;flex-direction:row;gap:12px}}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.project-card{border:1px solid var(--border);padding:36px;transition:all .3s ease;position:relative;overflow:hidden;text-decoration:none;display:block;cursor:pointer}.project-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}.project-card:hover{border-color:var(--border-hover);background:var(--bg-secondary)}.project-card:hover:before{transform:scaleX(1)}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.project-card-title{font-family:var(--serif);font-size:1.1rem;font-weight:400;color:var(--text-primary);line-height:1.3}.project-card-arrow{font-size:1rem;color:var(--text-dim);transition:all .3s ease;flex-shrink:0;margin-left:16px}.project-card:hover .project-card-arrow{color:var(--accent);transform:translate(3px,-3px)}.project-card-description{font-size:.8rem;color:var(--text-secondary);line-height:1.7;margin-bottom:20px}.project-card-stack{display:flex;gap:8px;flex-wrap:wrap}.project-card-stack span{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);padding:3px 8px;border:1px solid var(--border)}.project-card-status{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;padding:3px 8px;border:1px solid}.project-card-status.active{color:var(--accent);border-color:var(--accent-dim);background:var(--accent-dim)}.project-card-status.completed{color:var(--text-dim);border-color:var(--border)}@media(max-width:768px){.projects-grid{grid-template-columns:1fr}}.skills-container{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}.skill-group{background:var(--bg-primary);padding:36px;transition:background .3s ease}.skill-group:hover{background:var(--bg-secondary)}.skill-group-title{font-family:var(--mono);font-size:.65rem;color:var(--accent);text-transform:uppercase;letter-spacing:.15em;margin-bottom:20px}.skill-group-list{list-style:none;display:flex;flex-direction:column;gap:10px}.skill-group-list li{font-family:var(--mono);font-size:.8rem;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.skill-group-list li:before{content:"";width:4px;height:4px;background:var(--text-dim);flex-shrink:0}@media(max-width:768px){.skills-container{grid-template-columns:1fr}}.experience-list{display:flex;flex-direction:column}.experience-item{display:grid;grid-template-columns:200px 1fr;gap:48px;padding:40px 0;border-bottom:1px solid var(--border);transition:all .2s ease}.experience-item:first-child{border-top:1px solid var(--border)}.experience-date{font-family:var(--mono);font-size:.75rem;color:var(--text-dim)}.experience-content h3{font-family:var(--serif);font-size:1.1rem;font-weight:400;color:var(--text-primary);margin-bottom:4px}.experience-content .role{font-family:var(--mono);font-size:.75rem;color:var(--accent);margin-bottom:12px;display:block}.experience-content p{font-size:.8rem;color:var(--text-secondary);line-height:1.7;max-width:560px}@media(max-width:640px){.experience-item{grid-template-columns:1fr;gap:8px;padding:28px 0}}.contact{padding:120px 0 80px;border-top:1px solid var(--border)}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.contact-heading{font-family:var(--serif);font-size:clamp(2rem,5vw,3.5rem);font-weight:300;line-height:1.1;color:var(--text-primary);letter-spacing:-.03em}.contact-heading em{font-style:italic;color:var(--accent)}.contact-links{display:flex;flex-direction:column;gap:20px;padding-top:12px}.contact-link{display:flex;align-items:center;gap:16px;text-decoration:none;font-family:var(--mono);font-size:.8rem;color:var(--text-secondary);transition:color .2s ease;padding:12px 0;border-bottom:1px solid var(--border)}.contact-link:hover{color:var(--text-primary)}.contact-link-label{font-size:.6rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.15em;min-width:80px}.contact-link-arrow{margin-left:auto;color:var(--text-dim);transition:all .2s ease}.contact-link:hover .contact-link-arrow{color:var(--accent);transform:translate(3px,-3px)}@media(max-width:768px){.contact-inner{grid-template-columns:1fr;gap:40px}}.footer{padding:40px 0;border-top:1px solid var(--border)}.footer-inner{display:flex;justify-content:space-between;align-items:center}.footer-text{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);letter-spacing:.05em}.footer-text a{color:var(--text-dim);text-decoration:none;transition:color .2s ease}.footer-text a:hover{color:var(--text-secondary)}@media(max-width:640px){.footer-inner{flex-direction:column;gap:12px;text-align:center}}::selection{background:var(--accent);color:var(--bg-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-hover)}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}
