.nav{z-index:50;background:0 0;border-bottom:1px solid #0000;transition:background .2s,border-color .2s;position:sticky;top:0}.nav.scrolled{background:var(--bg);border-bottom-color:var(--border)}.nav-inner{align-items:center;gap:24px;width:min(1080px,100%);height:64px;margin:0 auto;padding:0 24px;display:flex}.nav-logo{color:var(--text-bright);font-family:var(--font-display);font-size:var(--fs-h4);flex-shrink:0;align-items:baseline;padding:4px 2px 5px;font-weight:700;line-height:1;transition:color .2s;display:inline-flex;position:relative}.logo-word{letter-spacing:3.5px;margin-right:-3.5px}.logo-dot{color:var(--accent);font-size:var(--fs-icon);line-height:0}.nav-logo:after{content:"";background:0 0;height:1.5px;transition:background .15s;position:absolute;bottom:0;left:2px;right:2px}.nav-logo:hover:after{background:var(--accent)}.nav-links{align-items:center;gap:18px;min-width:0;margin:0 auto;display:flex}.nav-link{font-size:var(--fs-xs);color:var(--text-dim);white-space:nowrap;align-items:baseline;gap:7px;font-weight:500;transition:color .15s;display:flex}.nav-link .num{color:var(--accent)}.nav-link:hover,.nav-link.active{color:var(--text-bright)}.nav-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.nav-cta{font-size:var(--fs-xs);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);padding:8px 17px;font-weight:500;transition:background .15s,color .15s}.nav-cta:hover{background:var(--accent-soft)}@media (width<=1000px){.nav-cta{display:none}}@media (width<=880px){.nav-inner{gap:14px}.nav-links{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:auto;gap:16px;margin:0;padding-right:8px;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-link .num{display:none}}@media (width<=480px){.nav-inner{gap:10px;padding:0 16px}.logo-word{letter-spacing:2px;margin-right:-2px}}.hero-inner{flex-direction:column;align-items:flex-start;gap:20px;padding-top:128px;padding-bottom:88px;display:flex}@keyframes hero-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.hero-inner>*{animation:.7s cubic-bezier(.22,1,.36,1) backwards hero-in}.hero-status{animation-delay:50ms}.hero-name{animation-delay:.16s}.hero-role{animation-delay:.28s}.hero-bio{animation-delay:.4s}.hero-meta{animation-delay:.5s}.hero-stats{animation-delay:.6s}.hero-cta{animation-delay:.94s}.hero-stat{animation:.6s cubic-bezier(.22,1,.36,1) backwards hero-in}.hero-stat:first-child{animation-delay:.68s}.hero-stat:nth-child(2){animation-delay:.76s}.hero-stat:nth-child(3){animation-delay:.84s}@media (prefers-reduced-motion:reduce){.hero-inner>*,.hero-stat{animation:none}}.hero-status{font-size:var(--fs-xs);color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);align-items:center;gap:9px;margin-bottom:8px;padding:7px 15px;display:flex}.status-dot{background:var(--green);width:7px;height:7px}.hero-name{font-size:var(--fs-hero);letter-spacing:-.035em;font-weight:600;line-height:1.02}.hero-role{font-family:var(--font-mono);font-size:var(--fs-role);color:var(--accent);letter-spacing:-.01em;min-height:1.4em;font-weight:500}.cursor{background:var(--accent);vertical-align:-2px;width:2px;height:.95em;margin-left:3px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.hero-bio{max-width:58ch;font-size:var(--fs-body);color:var(--text);line-height:1.8}.hero-meta{font-size:var(--fs-sm);color:var(--text-dim);flex-wrap:wrap;gap:6px 24px;margin:0;padding:0;list-style:none;display:flex}.hero-meta li{align-items:center;gap:8px;display:inline-flex}.hero-meta-icon{width:14px;height:14px;color:var(--accent);flex-shrink:0}.hero-stats{border-top:1px solid var(--border);flex-wrap:wrap;gap:16px 40px;width:min(600px,100%);margin:12px 0 0;padding:24px 0 0;display:flex}.hero-stat{flex-direction:column;gap:4px;display:flex}.hero-stat-value{font-size:var(--fs-figure);letter-spacing:-.02em;color:var(--text-bright);font-weight:600;line-height:1.15}.hero-stat-label{color:var(--text-dim);margin:0}.hero-cta{align-items:center;gap:20px;margin-top:18px;display:flex}.btn{font-size:var(--fs-sm);border-radius:var(--radius);font-weight:500;transition:background .15s,border-color .15s,color .15s}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn-primary{color:var(--accent-contrast);background:var(--accent);border:1px solid var(--accent);padding:13px 26px}.btn-primary:hover{background:var(--text-bright);border-color:var(--text-bright)}.btn-ghost{color:var(--text-bright);border:1px solid var(--border);padding:13px 26px}.btn-ghost:hover{color:var(--accent);border-color:var(--accent)}@media (width<=720px){.hero-inner{gap:16px;padding-top:96px;padding-bottom:64px}.hero-stats{gap:14px 28px;padding-top:20px}.hero-cta{gap:14px;margin-top:12px}}@media (width<=380px){.hero-cta{flex-direction:column;align-items:stretch;width:100%}.btn-primary,.btn-ghost{text-align:center}}.section-heading-block{margin-bottom:36px}.section-eyebrow{color:var(--accent);align-items:center;gap:14px;margin-bottom:12px;display:flex}.section-eyebrow .rule{background:var(--border-strong);width:64px;height:1px}.section-heading{font-size:var(--fs-h2);line-height:1.15}.section-subtitle{max-width:54ch;font-size:var(--fs-sm);color:var(--text-dim);margin-top:12px}@media (width<=560px){.section-heading-block{margin-bottom:26px}.section-subtitle{margin-top:8px}}.about-lead{max-width:60ch;font-size:var(--fs-h3);letter-spacing:-.015em;color:var(--text-bright);margin-bottom:32px;font-weight:500;line-height:1.6}.about-copy{flex-direction:column;gap:18px;max-width:68ch;display:flex}.about-copy p{font-size:var(--fs-body);color:var(--text);line-height:1.8}.about-stack-label{color:var(--text-dim);margin-top:8px}.about-stack{flex-wrap:wrap;gap:10px 22px;margin:0;padding:0;list-style:none;display:flex}.about-stack li{font-size:var(--fs-sm);color:var(--text);padding-left:16px;position:relative}.about-stack li:before{content:"▹";color:var(--accent);position:absolute;left:0}.about-cv{font-size:var(--fs-sm);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);align-self:flex-start;align-items:center;gap:9px;margin-top:16px;padding:12px 22px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.about-cv:hover{background:var(--accent);color:var(--accent-contrast)}.about-cv:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.about-cv-icon{width:15px;height:15px}@media (width<=720px){.about-lead{margin-bottom:26px}}.skills-grid{grid-template-columns:repeat(2,1fr);gap:40px 32px;display:grid}.skill-group-label{color:var(--accent);margin-bottom:16px}.skill-chips{flex-wrap:wrap;gap:10px;display:flex}.chip{font-size:var(--fs-sm);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);cursor:default;-webkit-tap-highlight-color:transparent;align-items:center;gap:8px;padding:8px 15px 8px 13px;font-weight:500;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.chip-icon{width:15px;height:15px;color:var(--text-dim);flex-shrink:0;transition:color .15s}.chip:hover,.chip:active{border-color:var(--chip-color);background:color-mix(in srgb, var(--chip-color) 14%, var(--bg-elevated));color:var(--text-bright)}.chip:hover .chip-icon,.chip:active .chip-icon{color:var(--chip-color)}@media (width<=560px){.skills-grid{grid-template-columns:1fr;gap:30px}}.modal-backdrop{z-index:100;background:color-mix(in srgb, var(--bg) 75%, black 25%);justify-content:center;align-items:center;padding:24px;animation:.15s fade-in;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:720px;max-height:90vh;animation:.18s pop-in;position:relative;overflow-y:auto}.modal-close{z-index:2;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);width:32px;height:32px;color:var(--text);font-size:var(--fs-xs);justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex;position:absolute;top:14px;right:14px}.modal-close:hover{color:var(--accent);border-color:var(--accent)}.modal-media{aspect-ratio:16/10;background:var(--bg-inset);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.modal-media img{object-fit:contain;width:100%;height:100%}.modal-placeholder{width:100%;height:100%;color:var(--text-dim);font-size:var(--fs-xs);background:var(--bg-inset);justify-content:center;align-items:center;display:flex}.modal-skeleton{background:var(--bg-inset);position:absolute;inset:0}.modal-nav{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-elevated) 80%, transparent);width:36px;height:36px;color:var(--text-bright);font-size:var(--fs-icon);justify-content:center;align-items:center;line-height:1;transition:border-color .15s,color .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.modal-nav:hover{border-color:var(--accent);color:var(--accent)}.modal-counter{color:var(--text);background:color-mix(in srgb, var(--bg-elevated) 80%, transparent);border:1px solid var(--border);border-radius:var(--radius);padding:4px 10px;position:absolute;bottom:10px;left:10px}.modal-nav.prev{left:14px}.modal-nav.next{right:14px}.modal-info{flex-direction:column;gap:10px;padding:24px 28px 28px;display:flex}.modal-info h3{font-size:var(--fs-h3);line-height:1.3}.modal-info p{font-size:var(--fs-sm);color:var(--text);line-height:1.75}.modal-tags{color:var(--text-dim)!important;font-size:var(--fs-xs)!important}.modal-links{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.modal-links a{font-size:var(--fs-xs);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);padding:7px 14px;font-weight:500;transition:background .15s,color .15s}.modal-links a:hover{background:var(--accent);color:var(--accent-contrast)}.modal-links a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.modal-dots{justify-content:center;gap:8px;margin-top:6px;display:flex}.dot{border:1px solid var(--border-strong);background:0 0;width:7px;height:7px;padding:0;transition:background .15s,border-color .15s}.dot.active{background:var(--accent);border-color:var(--accent)}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (width<=560px){.modal-backdrop{padding:14px}.modal-content{max-height:92vh}.modal-info{padding:18px 18px 22px}.modal-nav.prev{left:8px}.modal-nav.next{right:8px}}.project-list{flex-direction:column;gap:28px;display:flex}.project-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;margin:0;padding:0;transition:background .2s,border-color .2s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--accent);background:var(--bg-hover)}.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-list .project-card:nth-child(2n){flex-direction:row-reverse}.project-media{aspect-ratio:16/10;background:var(--bg-inset);flex:0 0 42%;position:relative;overflow:hidden}.project-media img{object-fit:contain;width:100%;height:100%;display:block}.media-placeholder{background:var(--bg-inset);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.media-index{font-size:var(--fs-glyph);letter-spacing:-.03em;color:var(--border-strong);font-weight:600}.media-skeleton{background:var(--bg-inset);border-bottom:1px solid var(--border);position:absolute;inset:0}.media-overlay{opacity:0;justify-content:center;align-items:flex-end;padding-bottom:22px;transition:opacity .2s;display:flex;position:absolute;inset:0}.project-card:hover .media-overlay{opacity:1}.media-overlay span{font-size:var(--fs-xs);color:var(--accent-contrast);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);align-items:center;gap:6px;padding:8px 16px;font-weight:500;display:inline-flex}.project-content{flex-direction:column;flex:1;gap:10px;min-width:0;padding:34px;display:flex}.project-index{color:var(--accent)}.project-title{font-size:var(--fs-h3);line-height:1.3}.project-desc{font-size:var(--fs-sm);color:var(--text);line-height:1.75}.project-tags{font-size:var(--fs-xs);color:var(--text-dim);margin-top:auto;padding-top:8px}@media (width<=780px){.project-list{gap:20px}.project-card,.project-list .project-card:nth-child(2n){flex-direction:column}.project-media{aspect-ratio:16/9;flex-basis:auto}.project-content{padding:22px}.media-overlay{display:none}}.timeline{flex-direction:column;display:flex}.timeline-entry{gap:24px;display:flex}.timeline-rail{flex-direction:column;flex-shrink:0;align-items:center;width:28px;display:flex}.timeline-dot{border:2px solid var(--accent);background:var(--bg);flex-shrink:0;width:10px;height:10px;margin-top:6px}.timeline-logo{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;overflow:hidden}.timeline-logo img{object-fit:contain;width:100%;height:100%;padding:4px}:root[data-theme=light] .timeline-logo img.mono{filter:invert()}.timeline-line{background:var(--border);flex:1;width:1px;margin:6px 0}.timeline-content{padding-bottom:44px}.timeline-date{color:var(--text-dim);margin-bottom:8px}.timeline-title{font-family:var(--font-display);font-size:var(--fs-h4);letter-spacing:-.015em;color:var(--text-bright);font-weight:600}.timeline-title .at{color:var(--text-dim);font-weight:400}.timeline-highlights{flex-direction:column;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.timeline-highlights li{font-size:var(--fs-sm);color:var(--text);padding-left:16px;line-height:1.75;position:relative}.timeline-highlights li:before{content:"▹";color:var(--accent);position:absolute;left:0}@media (width<=560px){.timeline-entry{gap:16px}.timeline-content{padding-bottom:32px}}.cert-modal-backdrop{z-index:100;background:color-mix(in srgb, var(--bg) 75%, black 25%);justify-content:center;align-items:center;padding:24px;animation:.15s cert-fade-in;display:flex;position:fixed;inset:0}@keyframes cert-fade-in{0%{opacity:0}}@keyframes cert-pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.cert-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:860px;max-height:90vh;animation:.18s cert-pop-in;position:relative;overflow-y:auto}.cert-modal-close{z-index:2;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);width:32px;height:32px;color:var(--text);font-size:var(--fs-xs);justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex;position:absolute;top:14px;right:14px}.cert-modal-close:hover{color:var(--accent);border-color:var(--accent)}.cert-modal-media{aspect-ratio:297/210;background:var(--bg-inset);justify-content:center;align-items:center;max-height:68vh;display:flex;position:relative;overflow:hidden}.cert-modal-media img{object-fit:contain;width:100%;height:100%}.cert-modal-fallback{font-family:var(--font-display);color:var(--border-strong);font-size:var(--fs-glyph);letter-spacing:2px;font-weight:600}.cert-modal-nav{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-elevated) 80%, transparent);width:36px;height:36px;color:var(--text-bright);font-size:var(--fs-icon);justify-content:center;align-items:center;line-height:1;transition:border-color .15s,color .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.cert-modal-nav:hover{border-color:var(--accent);color:var(--accent)}.cert-modal-nav.prev{left:14px}.cert-modal-nav.next{right:14px}.cert-modal-counter{color:var(--text);background:color-mix(in srgb, var(--bg-elevated) 80%, transparent);border:1px solid var(--border);border-radius:var(--radius);padding:4px 10px;position:absolute;bottom:10px;left:10px}.cert-modal-info{padding:22px 28px 26px}.cert-modal-info h3{font-size:var(--fs-h3);line-height:1.4}.cert-modal-issuer{font-size:var(--fs-xs);color:var(--text-dim);margin-top:6px}@media (width<=560px){.cert-modal-backdrop{padding:14px}.cert-modal{max-height:92vh}.cert-modal-info{padding:18px 18px 22px}.cert-modal-nav.prev{left:8px}.cert-modal-nav.next{right:8px}}.cert-empty{border:1px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--text-dim);font-size:var(--fs-sm);padding:32px 24px;line-height:1.8}.cert-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.cert-hint{color:var(--text-dim)}.cert-arrows{flex-shrink:0;gap:8px;display:flex}.cert-arrow{border:1px solid var(--border);border-radius:var(--radius);width:32px;height:32px;color:var(--text);font-size:var(--fs-icon);background:0 0;justify-content:center;align-items:center;line-height:1;transition:color .15s,background .15s,border-color .15s,opacity .15s;display:flex}.cert-arrow:hover:not(:disabled){color:var(--accent);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.cert-arrow:disabled{opacity:.35;cursor:default}.cert-track{overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:20px;padding:4px 2px 18px;display:flex;overflow-x:auto}.cert-track::-webkit-scrollbar{height:6px}.cert-track::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius)}.cert-card{text-align:left;width:340px;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;flex:none;gap:12px;padding:0;display:flex}.cert-thumb{aspect-ratio:297/210;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-inset);justify-content:center;align-items:center;transition:border-color .18s;display:flex;position:relative;overflow:hidden}.cert-card:hover .cert-thumb,.cert-card:focus-visible .cert-thumb{border-color:var(--accent)}.cert-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cert-skeleton{background:var(--bg-inset);position:absolute;inset:0}.cert-thumb img{object-fit:cover;width:100%;height:100%}.cert-thumb-fallback{font-family:var(--font-display);color:var(--border-strong);font-size:var(--fs-figure);letter-spacing:1px;font-weight:600}.cert-thumb-overlay{background:color-mix(in srgb, var(--bg) 72%, transparent);color:var(--accent);font-size:var(--fs-xs);opacity:0;justify-content:center;align-items:center;font-weight:500;transition:opacity .18s;display:flex;position:absolute;inset:0}.cert-card:hover .cert-thumb-overlay,.cert-card:focus-visible .cert-thumb-overlay{opacity:1}.cert-meta{flex-direction:column;gap:4px;padding:0 2px;display:flex}.cert-title{font-family:var(--font-display);font-size:var(--fs-h4);color:var(--text-bright);letter-spacing:-.015em;min-height:2.8em;font-weight:500;line-height:1.4}.cert-issuer{font-size:var(--fs-xs);color:var(--text-dim)}@media (width<=560px){.cert-card{width:270px}.cert-arrows{display:none}}.contact-content{text-align:center;flex-direction:column;align-items:center;gap:18px;max-width:540px;margin:0 auto;display:flex}.contact-heading{font-size:var(--fs-h2);line-height:1.2}.contact-text{font-size:var(--fs-body);color:var(--text);line-height:1.8}.contact-email{font-family:var(--font-display);font-size:var(--fs-h4);letter-spacing:-.01em;color:var(--accent-contrast);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);margin-top:10px;padding:14px 30px;font-weight:600;transition:background .18s,border-color .18s,color .18s}.contact-email:hover{background:var(--text-bright);border-color:var(--text-bright)}.contact-email:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.contact-socials{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:22px;display:flex}.contact-socials a{font-size:var(--fs-sm);color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);align-items:center;gap:8px;padding:9px 17px;font-weight:500;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.social-icon{width:15px;height:15px}.contact-socials a:hover{color:var(--text-bright);border-color:var(--social-color);background:var(--bg-hover)}.contact-socials a:hover .social-icon{color:var(--social-color)}.contact-socials a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.footer{text-align:center;border-top:1px solid var(--border);margin-top:auto;padding:30px 20px}.footer p{font-size:var(--fs-xs);color:var(--text-dim);justify-content:center;align-items:center;gap:12px;display:flex}.footer-sep{background:var(--border-strong);width:1px;height:12px}.footer a{transition:color .15s}.footer a:hover{color:var(--accent)}.footer a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
