:root{--bg: #121826;--bg-raised: #171F30;--bg-inset: #0E1420;--text: #E9EDF3;--text-muted: #9AA7BD;--text-faint: #6B7690;--border: #29334A;--border-strong: #3A4666;--accent: #2BB3A3;--accent-strong: #4FD0C0;--accent-text: #06171B;--shadow: 0 20px 60px -20px rgba(0, 0, 0, .55);--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--container: 1100px;--radius-s: 6px;--radius-m: 12px;--radius-l: 20px;--ease: cubic-bezier(.22, 1, .36, 1);color-scheme:dark}:root[data-theme=light]{--bg: #F2F4F1;--bg-raised: #FFFFFF;--bg-inset: #E8EBE6;--text: #14191F;--text-muted: #52596A;--text-faint: #808898;--border: #DADEDA;--border-strong: #C3C9C3;--accent: #1E8F82;--accent-strong: #146F65;--accent-text: #FFFFFF;--shadow: 0 20px 50px -24px rgba(20, 25, 31, .22);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .3s var(--ease),color .3s var(--ease)}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}ul{list-style:none;margin:0;padding:0}h1,h2,h3,h4,p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 28px}.section{padding:108px 0;border-top:1px solid var(--border)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:56px}.section-index{font-family:var(--font-mono);font-size:13px;color:var(--text-faint);letter-spacing:.02em}.section-title{font-family:var(--font-display);font-size:clamp(28px,3.4vw,40px);font-weight:600;letter-spacing:-.01em;max-width:640px}.section-lede{color:var(--text-muted);max-width:60ch;font-size:17px;margin-top:14px}.tag{font-family:var(--font-mono);font-size:12.5px;padding:5px 11px;border:1px solid var(--border-strong);border-radius:999px;color:var(--text-muted);white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 24px;border-radius:var(--radius-s);font-weight:600;font-size:15px;border:1px solid transparent;transition:transform .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:hover{background:var(--accent-strong)}.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--radius-s);border:1px solid var(--border-strong);color:var(--text);transition:border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}.btn-icon:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.is-visible{opacity:1;transform:translateY(0)}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:72px}.brand{font-family:var(--font-mono);font-weight:600;font-size:17px;display:flex;align-items:center;gap:10px}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.nav-links{display:flex;gap:6px;align-items:center}.nav-link{padding:9px 14px;font-size:14.5px;color:var(--text-muted);border-radius:var(--radius-s);transition:color .2s var(--ease),background .2s var(--ease)}.nav-link:hover{color:var(--text)}.nav-link.is-active{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.nav-actions{display:flex;align-items:center;gap:10px}.theme-toggle{width:40px;height:40px;border-radius:var(--radius-s);border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;color:var(--text);transition:border-color .2s var(--ease),transform .2s var(--ease)}.theme-toggle:hover{border-color:var(--accent);transform:rotate(14deg)}.nav-burger{display:none;width:40px;height:40px;border-radius:var(--radius-s);border:1px solid var(--border-strong);flex-direction:column;align-items:center;justify-content:center;gap:4px}.nav-burger span{width:18px;height:2px;background:var(--text);transition:transform .25s var(--ease),opacity .25s var(--ease)}.nav-burger.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-burger.is-open span:nth-child(2){opacity:0}.nav-burger.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.nav-mobile{display:none;flex-direction:column;padding:8px 0 20px;border-top:1px solid var(--border)}.nav-mobile.is-open{display:flex}.nav-mobile .nav-link{padding:12px 4px;font-size:16px}.hero{padding:168px 0 96px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:64px 64px;opacity:.35;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 30% 20%,black,transparent);mask-image:radial-gradient(ellipse 70% 60% at 30% 20%,black,transparent);pointer-events:none}.hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}.hero-eyebrow{font-family:var(--font-mono);font-size:13.5px;color:var(--accent);display:flex;align-items:center;gap:10px;margin-bottom:22px}.hero-eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}.hero-title{font-family:var(--font-display);font-size:clamp(38px,5.4vw,64px);line-height:1.06;font-weight:600;letter-spacing:-.015em}.hero-title .accent-word{color:var(--accent);font-style:italic}.hero-role{margin-top:20px;font-size:clamp(17px,1.6vw,20px);color:var(--text-muted);max-width:52ch}.hero-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}.hero-social{display:flex;gap:10px;margin-top:28px}.hero-photo-wrap{position:relative;justify-self:center}.hero-photo-frame{position:relative;width:100%;max-width:340px;aspect-ratio:4 / 5;border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--border-strong);box-shadow:var(--shadow)}.hero-photo-frame img{width:100%;height:100%;object-fit:cover}.hero-photo-tag{position:absolute;bottom:-18px;left:-18px;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-m);padding:12px 16px;font-family:var(--font-mono);font-size:12.5px;box-shadow:var(--shadow)}.hero-photo-tag strong{display:block;color:var(--accent);font-size:15px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.about-copy p{color:var(--text-muted);font-size:16.5px;margin-bottom:18px}.about-facts{display:grid;gap:20px}.fact{display:grid;grid-template-columns:84px 1fr;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--border)}.fact:last-child{border-bottom:none}.fact-label{font-family:var(--font-mono);font-size:12.5px;color:var(--text-faint);padding-top:3px}.fact-value{font-size:15.5px}.fact-value span{display:block;color:var(--text-muted);font-size:14px;margin-top:2px}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-m);overflow:hidden}.skill-card{background:var(--bg-raised);padding:26px 24px}.skill-card-label{font-family:var(--font-mono);font-size:12.5px;color:var(--accent);margin-bottom:14px}.skill-card-items{display:flex;flex-wrap:wrap;gap:8px}.projects-list{display:grid;gap:24px}.project-card{border:1px solid var(--border);border-radius:var(--radius-l);background:var(--bg-raised);padding:40px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;transition:border-color .3s var(--ease),transform .3s var(--ease)}.project-card:hover{border-color:var(--border-strong);transform:translateY(-4px)}.project-heading{display:flex;flex-direction:column;gap:10px}.project-period{font-family:var(--font-mono);font-size:12.5px;color:var(--text-faint)}.project-name{font-family:var(--font-display);font-size:26px;font-weight:600}.project-subtitle{color:var(--text-muted);font-size:14.5px}.project-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.project-body p{color:var(--text-muted);margin-bottom:16px}.project-features{display:grid;gap:10px}.project-features li{position:relative;padding-left:20px;font-size:15px;color:var(--text)}.project-features li:before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:2px;background:var(--accent)}.timeline{position:relative;padding-left:32px;border-left:1px solid var(--border-strong);display:grid;gap:40px}.timeline-item{position:relative}.timeline-item:before{content:"";position:absolute;left:-37px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}.timeline-duration{font-family:var(--font-mono);font-size:12.5px;color:var(--accent);margin-bottom:6px}.timeline-degree{font-family:var(--font-display);font-size:20px;font-weight:600}.timeline-institution{color:var(--text-muted);font-size:15px;margin-top:4px}.timeline-detail{margin-top:8px;font-family:var(--font-mono);font-size:13px;color:var(--text-faint)}.cert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.cert-card{border:1px solid var(--border);border-radius:var(--radius-m);padding:22px 24px;background:var(--bg-raised);display:flex;align-items:flex-start;gap:16px;transition:border-color .25s var(--ease),transform .25s var(--ease)}.cert-card:hover{border-color:var(--accent);transform:translateY(-3px)}.cert-icon{width:38px;height:38px;flex-shrink:0;border-radius:var(--radius-s);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:600;font-size:13px}.cert-name{font-size:15px;font-weight:600}.cert-issuer{font-family:var(--font-mono);font-size:12.5px;color:var(--text-faint);margin-top:4px}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px}.contact-list{display:grid;gap:4px}.contact-row{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--border)}.contact-row:last-child{border-bottom:none}.contact-row-label{font-family:var(--font-mono);font-size:12.5px;color:var(--text-faint)}.contact-row-value{font-size:15.5px;transition:color .2s var(--ease)}a.contact-row-value:hover{color:var(--accent)}.form-field{display:grid;gap:8px;margin-bottom:20px}.form-field label{font-family:var(--font-mono);font-size:12.5px;color:var(--text-faint)}.form-field input,.form-field textarea{background:var(--bg-inset);border:1px solid var(--border-strong);border-radius:var(--radius-s);padding:13px 14px;color:var(--text);font-family:var(--font-body);font-size:15px;resize:vertical;transition:border-color .2s var(--ease)}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent);outline:none}.form-status{margin-top:14px;font-size:14px;color:var(--accent);font-family:var(--font-mono)}.footer{border-top:1px solid var(--border);padding:48px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}.footer-brand{display:flex;flex-direction:column;gap:4px}.footer-name{font-family:var(--font-display);font-size:18px;font-weight:600}.footer-tagline{color:var(--text-faint);font-size:13.5px}.footer-links{display:flex;gap:10px}.footer-copy{width:100%;margin-top:24px;padding-top:24px;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:12.5px;color:var(--text-faint)}.back-to-top{position:fixed;bottom:28px;right:28px;width:46px;height:46px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;z-index:90}.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{transform:translateY(-3px)}@media (max-width: 860px){.nav-links{display:none}.nav-burger{display:flex}.hero{padding:140px 0 72px}.hero-grid{grid-template-columns:1fr;gap:48px}.hero-photo-wrap{justify-self:start;order:-1}.hero-photo-frame{max-width:220px}.about-grid{grid-template-columns:1fr;gap:40px}.project-card{grid-template-columns:1fr;padding:28px}.contact-grid{grid-template-columns:1fr;gap:40px}.section{padding:76px 0}}@media (max-width: 520px){.container{padding:0 20px}.section-head{flex-direction:column;align-items:flex-start;gap:10px}.fact{grid-template-columns:1fr;gap:4px}.footer-inner{flex-direction:column;align-items:flex-start}}
