:root{--bg: #0a0a0f;--surface: #12121a;--text: #e8e8ed;--text-muted: #8b8b9e;--accent: #00d4ff;--accent-hover: #33dfff;--border: #1e1e2e;--font-heading: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-body: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--max-width: 1200px;--gutter: clamp(1rem, 4vw, 2.5rem);--nav-offset: 0px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .18s;--duration-base: .32s;--duration-slow: .6s;--z-nav: 50;--z-overlay: 80;--z-modal: 90}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;overflow-x:clip}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}body{margin:0;min-height:100vh;line-height:1.5;font-family:var(--font-body);background:var(--bg);color:var(--text);overflow-x:clip}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list],ul.reset,ol.reset{list-style:none;padding:0;margin:0}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent);color:var(--bg)}#app{position:relative;width:100%;min-height:100vh}.section{position:relative;width:100%;min-height:100vh;padding:var(--space-9) var(--gutter);display:flex;flex-direction:column;justify-content:center;align-items:center}.section--tight{min-height:auto;padding:var(--space-8) var(--gutter)}.container{width:100%;max-width:var(--max-width);margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}.section-header{display:flex;flex-direction:column;gap:var(--space-3);text-align:left;margin-bottom:var(--space-7);width:100%}.section-header__eyebrow{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.section-header__title{font-family:var(--font-heading);font-size:clamp(2rem,4vw,3.25rem);font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--text)}.section-header__subtitle{font-size:1rem;color:var(--text-muted);max-width:60ch;line-height:1.65}@media(min-width:768px){.section{padding:var(--space-9) var(--gutter)}}.hero{position:relative;overflow:hidden;text-align:left;padding:0 var(--gutter)}.hero__inner{width:100%;max-width:var(--max-width);display:flex;flex-direction:column;gap:var(--space-5);position:relative;z-index:2}.hero__canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.6}.hero__eyebrow{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);letter-spacing:.18em;text-transform:uppercase}.hero__title{font-family:var(--font-heading);font-size:clamp(2.75rem,8vw,6rem);font-weight:600;letter-spacing:-.04em;line-height:.95;color:var(--text)}.hero__title-accent{background:linear-gradient(120deg,var(--accent) 0%,var(--accent-hover) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__tagline{font-size:clamp(1.05rem,1.6vw,1.4rem);color:var(--text-muted);max-width:56ch;line-height:1.6}.hero__meta{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted)}.hero__cta-row{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-3)}.hero__inner.stagger>*{animation-delay:calc(.2s + var(--stagger-i, 0) * .1s)}.hero__scroll-hint{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);z-index:2}.hero__scroll-hint:after{content:"";width:1px;height:32px;background:linear-gradient(to bottom,var(--text-muted),transparent)}.projects-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5);width:100%}@media(min-width:768px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.projects-grid{grid-template-columns:repeat(3,1fr)}}.about-grid{display:grid;grid-template-columns:1fr;gap:var(--space-7);width:100%}@media(min-width:1024px){.about-grid{grid-template-columns:1fr 1.4fr;align-items:start}}.about__photo{width:100%;aspect-ratio:1 / 1;background:linear-gradient(135deg,var(--surface) 0%,var(--border) 100%);border-radius:50%;border:1px solid var(--border);position:relative;overflow:hidden;max-width:280px;margin:0 auto;box-shadow:0 0 24px #00d4ff1f,0 0 0 1px #00d4ff26}.about__photo:after{display:none}.about__photo svg{display:block;width:100%;height:100%}.about__photo-img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.about__photo-fallback svg{display:block;width:100%;height:100%}.about__bio{font-size:1.05rem;line-height:1.75;color:var(--text);margin-bottom:var(--space-5);max-width:60ch}.skills-group{margin-bottom:var(--space-6)}.skills-group__label{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted);margin-bottom:var(--space-3)}.skills-pills{display:flex;flex-wrap:wrap;gap:var(--space-2);overflow-x:hidden}.experience-list{list-style:none;padding:0;margin:var(--space-6) 0 0;display:flex;flex-direction:column;gap:var(--space-6);position:relative}.experience-list:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--accent),var(--border),transparent)}.experience-item{position:relative;padding-left:var(--space-6)}.experience-item:before{content:"";position:absolute;left:3px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}.experience-item__role{font-family:var(--font-heading);font-size:1.1rem;font-weight:500;color:var(--text)}.experience-item__company{color:var(--accent);font-weight:500}.experience-item__meta{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);letter-spacing:.06em;margin:var(--space-1) 0 var(--space-2)}.experience-item__description{color:var(--text-muted);font-size:.95rem;line-height:1.65}.timeline__item--present:before{background:var(--accent);animation:pulse-dot 2s var(--ease-in-out) infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 #00d4ff66}50%{box-shadow:0 0 0 8px #00d4ff00}}.education-section{margin-top:var(--space-7)}.timeline__icon{position:absolute;left:-2px;top:6px;font-size:1rem;line-height:1}@media(min-width:1024px){.about__photo{position:sticky;top:calc(var(--space-9) + 32px);max-width:100%;margin:0}}.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--space-7);width:100%}@media(min-width:1024px){.contact-grid{grid-template-columns:1fr 1fr;align-items:start}}.contact-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-field__label{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted)}.form-field__input,.form-field__textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--text);font-family:var(--font-body);font-size:.95rem;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.form-field__input::placeholder,.form-field__textarea::placeholder{color:var(--text-muted);opacity:.5}.form-field__textarea{min-height:140px;resize:vertical;font-family:var(--font-body)}.form-field__input:focus,.form-field__textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #00d4ff26,0 0 20px #00d4ff0f}.form-field__input--error,.form-field__textarea--error{border-color:#ff6b6b;box-shadow:0 0 0 3px #ff6b6b1f}.form-field__error{font-family:var(--font-mono);font-size:.72rem;color:#ff6b6b;margin-top:-2px}.contact-form__submit{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px}.contact-form__btn-text{transition:opacity var(--duration-fast) var(--ease-out)}.contact-form__btn-spinner{display:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.contact-form__submit.is-loading .contact-form__btn-text{opacity:0}.contact-form__submit.is-loading .contact-form__btn-spinner{display:block;position:absolute}.contact-form__submit.is-loading{pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}.contact-toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%) translateY(120%);background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);font-family:var(--font-mono);font-size:.85rem;color:var(--accent);box-shadow:0 0 24px #00d4ff2e,0 8px 32px #0006;z-index:1000;opacity:0;transition:transform .4s var(--ease-out),opacity .4s var(--ease-out);pointer-events:none;white-space:nowrap}.contact-toast.is-visible{transform:translate(-50%) translateY(0);opacity:1}.contact-socials{display:flex;flex-direction:column;gap:var(--space-4)}.contact-socials__title{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted);margin-bottom:var(--space-2)}.social-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-family:var(--font-mono);font-size:.9rem;transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.social-link:hover{border-color:var(--accent);transform:scale(1.03) translate(4px);color:var(--accent);box-shadow:0 0 16px #00d4ff1a}.social-link__icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.social-link__icon svg{display:block}.philosophy-quote{font-family:var(--font-heading);font-style:italic;font-size:clamp(1.1rem,2vw,1.5rem);line-height:1.6;color:var(--text);border-left:2px solid var(--accent);padding-left:var(--space-4);margin:var(--space-7) 0 0;max-width:60ch;position:relative}.philosophy-quote__mark{font-family:var(--font-heading);font-size:2.4em;line-height:0;color:var(--accent);opacity:.6;vertical-align:-.15em;font-style:normal}.philosophy-quote__mark--close{margin-left:2px}.footer{margin-top:var(--space-9);padding-top:var(--space-5);border-top:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);width:100%}.footer__left,.footer__center,.footer__right{display:flex;align-items:center;gap:var(--space-3)}.footer__copyright{color:var(--text-muted)}.footer__social-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:var(--text-muted);transition:color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.footer__social-icon:hover{color:var(--accent);transform:scale(1.15)}.footer__social-icon svg{display:block;width:16px;height:16px}@media(max-width:768px){.footer{flex-direction:column;text-align:center;gap:var(--space-4)}.footer__left,.footer__center,.footer__right{justify-content:center}}.nav-dots{position:fixed;top:50%;right:clamp(1rem,3vw,2rem);transform:translateY(-50%);display:none;flex-direction:column;gap:var(--space-4);z-index:var(--z-nav)}@media(min-width:768px){.nav-dots{display:flex}}.nav-dot{position:relative;width:10px;height:10px;border-radius:50%;border:1px solid var(--text-muted);background:transparent;cursor:pointer;padding:0;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.nav-dot:hover{border-color:var(--accent);transform:scale(1.15)}.nav-dot[aria-current=true]{background:var(--accent);border-color:var(--accent)}.nav-dot__label{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.nav-dot:hover .nav-dot__label,.nav-dot:focus-visible .nav-dot__label{opacity:1;color:var(--accent)}.mobile-nav{position:fixed;top:0;left:0;right:0;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);background:#0a0a0fc7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);z-index:var(--z-nav)}.mobile-nav:has(.mobile-nav__toggle[aria-expanded=true]){z-index:calc(var(--z-overlay) + 1)}@media(min-width:768px){.mobile-nav{display:none}}.mobile-nav__brand{font-family:var(--font-heading);font-weight:500;font-size:.95rem;color:var(--text);letter-spacing:-.01em}.mobile-nav__toggle{width:44px;height:44px;display:flex;align-items:center;justify-content:center;position:relative}.mobile-nav__bars{width:24px;height:18px;position:relative;display:flex;flex-direction:column;justify-content:space-between}.mobile-nav__bars span{display:block;height:2px;width:100%;background:var(--text);border-radius:2px;transition:transform var(--duration-base) var(--ease-in-out),opacity var(--duration-fast) var(--ease-out)}.mobile-nav__toggle[aria-expanded=true] .mobile-nav__bars span:nth-child(1){transform:translateY(8px) rotate(45deg);background:var(--accent)}.mobile-nav__toggle[aria-expanded=true] .mobile-nav__bars span:nth-child(2){opacity:0}.mobile-nav__toggle[aria-expanded=true] .mobile-nav__bars span:nth-child(3){transform:translateY(-8px) rotate(-45deg);background:var(--accent)}.mobile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:var(--z-overlay);display:flex;flex-direction:column;padding:96px var(--gutter) var(--space-7);clip-path:inset(0 0 0 100%);visibility:hidden;transition:clip-path var(--duration-base) var(--ease-out),visibility 0s var(--duration-base)}.mobile-overlay[data-open=true]{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path var(--duration-base) var(--ease-out),visibility 0s 0s}.mobile-overlay__list{display:flex;flex-direction:column;gap:var(--space-4);list-style:none;padding:0;margin:0}.mobile-overlay__link{font-family:var(--font-heading);font-size:2rem;font-weight:500;color:var(--text);letter-spacing:-.02em;transition:color var(--duration-fast) var(--ease-out);cursor:pointer;display:block;padding:var(--space-2) 0}.mobile-overlay__link:hover,.mobile-overlay__link[aria-current=true]{color:var(--accent)}.mobile-overlay__meta{margin-top:auto;font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted)}.project-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);transition:transform var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);overflow:hidden;isolation:isolate;min-height:220px}.project-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 18px 40px -20px #00d4ff59,0 0 0 1px #00d4ff33}.project-card__glow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(260px circle at var(--cursor-x, 50%) var(--cursor-y, 50%),rgba(0,212,255,.18),transparent 60%);opacity:0;transition:opacity var(--duration-base) var(--ease-out);z-index:-1}.project-card:hover .project-card__glow{opacity:1}.project-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.project-card__title{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--text);letter-spacing:-.01em}.project-card__badge{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);background:#00d4ff14;border:1px solid rgba(0,212,255,.25);padding:4px 8px;border-radius:999px;white-space:nowrap}.project-card__description{color:var(--text-muted);font-size:.95rem;line-height:1.6;flex:1}.project-card__tech{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tech-pill{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--text-muted);background:#ffffff05;border:1px solid var(--border);padding:4px 10px;border-radius:999px;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.project-card:hover .tech-pill{border-color:#00d4ff59}.project-card__links{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.project-card__link{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted);display:inline-flex;align-items:center;gap:var(--space-1);transition:color var(--duration-fast) var(--ease-out)}.project-card__link:hover{color:var(--accent)}.project-card__link[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.skills-items{display:flex;flex-direction:column;gap:var(--space-2)}.skill-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.skill-item:hover{border-color:var(--accent);box-shadow:0 4px 16px -8px #00d4ff33}.skill-item__name{font-family:var(--font-heading);font-size:.95rem;font-weight:500;color:var(--text)}.skill-item__level,.skill-item--advanced .skill-item__level,.skill-item--intermediate .skill-item__level{display:none}.skill-item__desc{font-size:.82rem;color:var(--text-muted);line-height:1.5}.diagrams-section{margin-top:var(--space-8)}.diagrams-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media(min-width:1024px){.diagrams-grid{grid-template-columns:1fr 1fr}}.diagram-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);overflow:hidden;cursor:pointer;transition:transform var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}.diagram-container:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 12px 32px -16px #00d4ff4d}.diagram-expand-hint{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);text-align:center;margin-top:var(--space-3);opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.diagram-container:hover .diagram-expand-hint{opacity:1}.diagram-title{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-4)}.diagram-svg{width:100%;height:auto;min-height:500px;border-radius:var(--radius-md)}.diagram-svg img{width:100%;height:auto}.section-subheader{font-family:var(--font-heading);font-size:1.5rem;font-weight:600;color:var(--text);margin-bottom:var(--space-5);letter-spacing:-.02em}.timeline-section,.education-section,.certifications-section,.webgpu-section{margin-top:var(--space-8)}.cert-list{display:flex;flex-direction:column;gap:var(--space-3)}.cert-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out)}.cert-item:hover{border-color:var(--accent)}.cert-item__icon{font-size:1.2rem;flex-shrink:0}.cert-item__info{display:flex;flex-direction:column;flex:1;min-width:0}.cert-item__name{font-family:var(--font-heading);font-size:.95rem;font-weight:500;color:var(--text)}.cert-item__provider{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);letter-spacing:.04em}.cert-item__status{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;border-radius:999px;white-space:nowrap;flex-shrink:0}.cert-item__status--completed{color:#4ecdc4;background:#4ecdc41a;border:1px solid rgba(78,205,196,.25)}.cert-item__status--in-progress{color:#ffe66d;background:#ffe66d1a;border:1px solid rgba(255,230,109,.25)}.webgpu-section__body{color:var(--text-muted);font-size:.95rem;line-height:1.75;max-width:72ch}.webgpu-section__body p{margin-bottom:var(--space-4)}.webgpu-section__body p:last-child{margin-bottom:0}.project-card--top{border-color:#00d4ff33;background:linear-gradient(135deg,var(--surface) 0%,rgba(0,212,255,.03) 100%)}.project-card__headline{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);letter-spacing:.04em;margin:calc(-1 * var(--space-2)) 0 0}.project-card__impact{font-size:.88rem;color:var(--accent);font-style:italic;border-left:2px solid var(--accent);padding-left:var(--space-3);margin:var(--space-2) 0}.project-card__depth{margin:var(--space-2) 0;font-size:.85rem}.project-card__depth summary{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;padding:var(--space-2) 0;transition:color var(--duration-fast) var(--ease-out)}.project-card__depth summary:hover{color:var(--accent)}.project-card__depth dl{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-3);margin-top:var(--space-2);padding:var(--space-3);background:#0003;border-radius:var(--radius-md);border:1px solid var(--border)}.project-card__depth dt{font-family:var(--font-mono);font-size:.7rem;color:var(--accent);letter-spacing:.06em;text-transform:capitalize;white-space:nowrap}.project-card__depth dd{color:var(--text-muted);font-size:.82rem;line-height:1.5;margin:0}.skill-pill{font-family:var(--font-mono);font-size:.78rem;color:var(--text);background:var(--surface);border:1px solid var(--border);padding:6px 12px;border-radius:999px;cursor:default;position:relative;transform:scale(1);transition:transform var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.skill-pill:hover{transform:scale(1.08) translateY(-1px);border-color:var(--accent);color:var(--accent);box-shadow:0 6px 18px -10px #00d4ff99}.skill-pill:after{content:attr(data-category);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;color:var(--accent);background:var(--surface);border:1px solid var(--border);padding:3px 8px;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out)}.skill-pill:hover:after{opacity:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.85rem 1.4rem;border-radius:var(--radius-md);font-family:var(--font-heading);font-size:.95rem;font-weight:500;letter-spacing:-.005em;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);border:1px solid transparent}.btn--primary{background:var(--accent);color:var(--bg)}.btn--primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn--ghost{border-color:#3a3a4a;color:var(--text)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.back-to-top{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);transition:color var(--duration-fast) var(--ease-out)}.back-to-top:hover{color:var(--accent)}.diagram-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity var(--duration-base) var(--ease-out)}.diagram-modal.is-open{pointer-events:auto;opacity:1}.diagram-modal__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.diagram-modal__content{position:relative;max-width:90vw;max-height:90vh;overflow:auto;z-index:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.diagram-modal__close{position:absolute;top:var(--space-3);right:var(--space-3);width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--text-muted);background:#ffffff0d;border:1px solid var(--border);border-radius:50%;cursor:pointer;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out);z-index:2}.diagram-modal__close:hover{color:var(--accent);border-color:var(--accent)}.diagram-modal__title{font-family:var(--font-heading);font-size:1.2rem;font-weight:600;color:var(--text);margin-bottom:var(--space-4)}.diagram-modal__body svg,.diagram-modal__body object{width:100%;height:auto;max-height:80vh;border-radius:var(--radius-md)}.experience-item__bullets{list-style:none;padding:0;margin:var(--space-2) 0 0;display:flex;flex-direction:column;gap:var(--space-2)}.experience-item__bullets li{font-size:.88rem;color:var(--text-muted);line-height:1.6;padding-left:var(--space-4);position:relative}.experience-item__bullets li:before{content:"▸";position:absolute;left:0;color:var(--accent);font-size:.8rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes stagger-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-soft{0%,to{opacity:.55}50%{opacity:1}}@keyframes blink{0%,to{opacity:1}50%{opacity:.2}}.anim-fade-in{animation:fade-in var(--duration-slow) var(--ease-out) both}.anim-slide-up{animation:slide-up var(--duration-slow) var(--ease-out) both}.anim-slide-down{animation:slide-down var(--duration-base) var(--ease-out) both}.anim-pulse{animation:pulse-soft 2.4s var(--ease-in-out) infinite}.anim-cursor{animation:blink 1.05s steps(2) infinite}.stagger>*{animation:stagger-in var(--duration-slow) var(--ease-out) both;animation-delay:calc(var(--stagger-i, 0) * 90ms)}.reveal{opacity:0;transform:translateY(20px);transition:opacity var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-stagger>.reveal{transition-delay:0ms}.reveal-stagger>.reveal:nth-child(2){transition-delay:90ms}.reveal-stagger>.reveal:nth-child(3){transition-delay:.18s}.reveal-stagger>.reveal:nth-child(4){transition-delay:.27s}.reveal-stagger>.reveal:nth-child(5){transition-delay:.36s}.reveal-stagger>.reveal:nth-child(6){transition-delay:.45s}.reveal-stagger>.reveal:nth-child(7){transition-delay:.54s}.reveal-stagger>.reveal:nth-child(8){transition-delay:.63s}@keyframes scroll-bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(8px)}}@keyframes scroll-line-pulse{0%,to{opacity:.6;height:32px}50%{opacity:1;height:40px}}.hero__scroll-hint.is-visible{animation:scroll-bounce 2s var(--ease-in-out) infinite}.hero__scroll-hint.is-visible:after{animation:scroll-line-pulse 2s var(--ease-in-out) infinite;animation-delay:.15s}
