:root{--font-serif: "Newsreader", Georgia, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--bg-color: #fafaf8;--bg-card: #ffffff;--bg-subtle: #f4f4f0;--text-main: #18181b;--text-muted: #52525b;--text-light: #71717a;--border-color: #e4e4e0;--border-strong: #d1d1ca;--accent-color: #18181b;--accent-hover: #27272a;--accent-subtle: #e4e4e0;--accent-highlight: #2563eb;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .06), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .05);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--header-height: 72px}[data-theme=dark]{--bg-color: #0c0d10;--bg-card: #13151b;--bg-subtle: #181a22;--text-main: #f4f4f6;--text-muted: #a1a1aa;--text-light: #71717a;--border-color: #232630;--border-strong: #363a48;--accent-color: #f4f4f6;--accent-hover: #e4e4e7;--accent-subtle: #232630;--accent-highlight: #3b82f6;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1.25rem);font-size:16px}.scroll-progress{position:fixed;top:0;left:0;height:2.5px;width:0%;background-color:var(--text-main);z-index:1001;pointer-events:none;transition:width .08s linear}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-main);line-height:1.65;letter-spacing:-.011em;transition:background-color var(--transition-normal),color var(--transition-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}button{font-family:inherit;cursor:pointer;border:none;background:none}ul{list-style:none}img{max-width:100%;display:block}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 1.5rem}.section{padding:6rem 0;border-bottom:1px solid var(--border-color)}.bg-subtle{background-color:var(--bg-subtle)}h1,h2,h3,h4{color:var(--text-main);font-weight:600;line-height:1.25;letter-spacing:-.02em}.section-header{display:flex;align-items:center;gap:1rem;margin-bottom:3.5rem}.section-number{font-family:var(--font-mono);font-size:.9rem;color:var(--text-light);font-weight:500}.section-title{font-family:var(--font-serif);font-size:2.25rem;font-weight:500}.section-divider{flex:1;height:1px;background-color:var(--border-color);margin-left:.5rem}.site-header{position:sticky;top:0;z-index:100;height:var(--header-height);background-color:#fafaf8d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);transition:background-color .3s cubic-bezier(.22,1,.36,1),border-color .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1)}.site-header.scrolled{box-shadow:var(--shadow-sm);background-color:#fafaf8f2}[data-theme=dark] .site-header{background-color:#0c0d10d9}[data-theme=dark] .site-header.scrolled{background-color:#0c0d10f2;box-shadow:0 4px 14px #0006}.header-inner{display:flex;align-items:center;justify-content:space-between;height:100%}.brand-logo{display:flex;align-items:center;text-decoration:none}.brand-logo-img{height:38px;width:auto;display:block;transition:transform var(--transition-fast)}.brand-logo:hover .brand-logo-img{transform:scale(1.05)}.brand-logo .logo-dark{display:none}.brand-logo .logo-light,[data-theme=dark] .brand-logo .logo-dark{display:block}[data-theme=dark] .brand-logo .logo-light{display:none}.nav-list{display:flex;align-items:center;gap:2rem}.nav-link{font-size:.925rem;font-weight:500;color:var(--text-muted);position:relative;padding:.25rem 0}.nav-link:hover,.nav-link.active{color:var(--text-main)}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0%;height:2px;background-color:var(--text-main);transition:width var(--transition-fast)}.nav-link:hover:after,.nav-link.active:after{width:100%}.header-actions{display:flex;align-items:center;gap:1rem}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--border-color);color:var(--text-muted);transition:all var(--transition-fast)}.btn-icon:hover{color:var(--text-main);border-color:var(--border-strong);background-color:var(--bg-subtle)}[data-theme=light] .moon-icon{display:block}[data-theme=light] .sun-icon,[data-theme=dark] .moon-icon{display:none}[data-theme=dark] .sun-icon{display:block}.nav-toggle{display:none;flex-direction:column;gap:5px;width:24px;padding:2px 0}.nav-toggle span{display:block;width:100%;height:2px;background-color:var(--text-main);transition:transform var(--transition-fast)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:.925rem;font-weight:500;padding:.75rem 1.5rem;border-radius:var(--radius-md);transition:transform .2s cubic-bezier(.22,1,.36,1),background-color .2s ease,border-color .2s ease,opacity .2s ease,box-shadow .2s ease;white-space:nowrap}.btn svg{transition:transform .2s cubic-bezier(.22,1,.36,1)}.btn-sm{padding:.45rem .9rem;font-size:.85rem}.btn-primary{background-color:var(--text-main);color:var(--bg-color);border:1px solid var(--text-main)}.btn-primary:hover{opacity:.92;transform:translateY(-1px)}.btn-primary:hover svg{transform:translate(3px)}.btn-secondary{background-color:var(--bg-card);color:var(--text-main);border:1px solid var(--border-strong)}.btn-secondary:hover{background-color:var(--bg-subtle);border-color:var(--text-main);transform:translateY(-1px)}.btn-secondary:hover svg{transform:translateY(2px)}.btn-outline{border:1px solid var(--border-color);color:var(--text-main)}.btn-outline:hover{border-color:var(--border-strong);background-color:var(--bg-subtle);transform:translateY(-1px)}.btn-text{font-size:.875rem;font-weight:500;color:var(--text-main);display:inline-flex;align-items:center;gap:.4rem;padding:0;transition:gap .2s cubic-bezier(.22,1,.36,1)}.btn-text:hover{gap:.6rem}.btn-text svg{transition:transform .2s cubic-bezier(.22,1,.36,1)}.btn-text:hover svg{transform:translate(3px)}.btn-full{width:100%}.hero-section{padding:6.5rem 0 5.5rem;border-bottom:1px solid var(--border-color)}.hero-container{max-width:850px}.hero-title{font-family:var(--font-serif);font-size:4rem;font-weight:500;line-height:1.1;margin-bottom:1rem;letter-spacing:-.03em}.highlight-text{font-style:italic;font-weight:400}.hero-subtitle{font-size:1.5rem;font-weight:600;color:var(--text-muted);margin-bottom:1.25rem;letter-spacing:-.015em}.hero-description{font-size:1.15rem;color:var(--text-muted);line-height:1.7;max-width:720px;margin-bottom:2.5rem}.hero-actions{display:flex;align-items:center;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.hero-socials{display:flex;align-items:center;gap:1.75rem;flex-wrap:wrap;padding-top:1.5rem;border-top:1px solid var(--border-color)}.social-link{display:inline-flex;align-items:center;gap:.45rem;font-size:.875rem;color:var(--text-muted);font-weight:500;transition:color var(--transition-fast),transform .2s cubic-bezier(.22,1,.36,1)}.social-link:hover{color:var(--text-main);transform:translateY(-2px)}.social-link svg{transition:transform .2s cubic-bezier(.22,1,.36,1)}.social-link:hover svg{transform:translateY(-1px)}.about-grid{max-width:860px}.lead-text{font-family:var(--font-serif);font-size:1.4rem;line-height:1.5;color:var(--text-main);margin-bottom:1.5rem}.about-text p{color:var(--text-muted);margin-bottom:1.25rem;font-size:1rem}.principles-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2.5rem}.principle-card{padding:1.5rem;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .3s ease}.principle-card:hover{border-color:var(--border-strong);box-shadow:0 14px 28px -6px #00000017,0 4px 10px -2px #0000000a;transform:translateY(-6px) scale(1.01)}[data-theme=dark] .principle-card:hover{box-shadow:0 14px 32px -6px #000000b3,0 0 0 1px #ffffff14}.principle-icon{margin-bottom:1rem;color:var(--text-main);transition:transform .3s cubic-bezier(.16,1,.3,1)}.principle-card:hover .principle-icon{transform:translateY(-3px) scale(1.08)}.principle-card h3{font-size:1.05rem;margin-bottom:.5rem}.principle-card p{font-size:.875rem;margin-bottom:0;line-height:1.5}.focus-list{display:flex;flex-direction:column;gap:.5rem}.focus-list li{font-size:.875rem;color:var(--text-muted);position:relative;padding-left:1.25rem}.focus-list li:before{content:"→";position:absolute;left:0;color:var(--text-light)}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.75rem}.skill-category{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.75rem;box-shadow:var(--shadow-sm);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .3s ease}.skill-category:hover{border-color:var(--border-strong);box-shadow:0 14px 30px -6px #0000001a,0 4px 10px -2px #0000000a;transform:translateY(-6px) scale(1.01)}[data-theme=dark] .skill-category:hover{box-shadow:0 14px 32px -6px #000000b3,0 0 0 1px #ffffff14}.category-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.category-header svg{color:var(--text-main);transition:transform .3s cubic-bezier(.16,1,.3,1)}.skill-category:hover .category-header svg{transform:translateY(-3px) scale(1.08)}.category-header h3{font-size:1.15rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{font-family:var(--font-sans);font-size:.825rem;padding:.3rem .75rem;border-radius:4px;background-color:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-muted)}.tag-highlight{background-color:var(--bg-color);border-color:var(--border-strong);color:var(--text-main);font-weight:500}.filter-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:2.5rem;flex-wrap:wrap}.filter-btn{padding:.45rem 1rem;font-size:.875rem;font-weight:500;border-radius:100px;border:1px solid var(--border-color);color:var(--text-muted);background-color:var(--bg-card);transition:all var(--transition-fast)}.filter-btn:hover,.filter-btn.active{color:var(--text-main);border-color:var(--text-main);background-color:var(--bg-subtle)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.project-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .3s ease}.project-card:hover{border-color:var(--border-strong);box-shadow:0 18px 38px -8px #0000001f,0 4px 12px -2px #0000000d;transform:translateY(-8px) scale(1.01)}[data-theme=dark] .project-card:hover{box-shadow:0 18px 40px -8px #000000bf,0 0 0 1px #ffffff1a}.project-card:hover .open-modal-btn svg{transform:translate(6px)}.project-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.project-badge{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;color:var(--text-light);letter-spacing:.05em}.project-year{font-family:var(--font-mono);font-size:.8rem;color:var(--text-light)}.project-title{font-size:1.35rem;margin-bottom:.75rem;line-height:1.3}.project-summary{font-size:.925rem;color:var(--text-muted);margin-bottom:1.5rem;line-height:1.6;flex:1}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.75rem}.project-tags span{font-family:var(--font-mono);font-size:.75rem;padding:.2rem .5rem;background-color:var(--bg-subtle);border:1px solid var(--border-color);border-radius:3px;color:var(--text-muted)}.project-footer{padding-top:1rem;border-top:1px solid var(--border-color)}.timeline{position:relative;max-width:850px;padding-left:2rem}.timeline:before{content:"";position:absolute;left:0;top:.5rem;bottom:.5rem;width:2px;background-color:var(--border-color);transform-origin:top;transform:scaleY(0);transition:transform .8s cubic-bezier(.22,1,.36,1)}.timeline.revealed:before{transform:scaleY(1)}.timeline-item{position:relative;margin-bottom:2.5rem}.timeline-dot{position:absolute;left:-2rem;top:.35rem;transform:translate(-50%) scale(.6);opacity:0;width:10px;height:10px;border-radius:50%;background-color:var(--text-main);border:2px solid var(--bg-color);transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .4s ease;transition-delay:calc(var(--reveal-delay, 0ms) + .15s)}.timeline-item.revealed .timeline-dot{transform:translate(-50%) scale(1);opacity:1}.timeline-content{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-sm);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .3s ease}.timeline-content:hover{border-color:var(--border-strong);box-shadow:0 14px 30px -6px #0000001a;transform:translateY(-5px)}[data-theme=dark] .timeline-content:hover{box-shadow:0 14px 32px -6px #000000b3,0 0 0 1px #ffffff14}.timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;flex-wrap:wrap;gap:.5rem}.timeline-header h3{font-size:1.2rem}.timeline-period{font-family:var(--font-mono);font-size:.825rem;color:var(--text-light)}.timeline-institution{font-weight:500;color:var(--text-muted);font-size:.95rem;margin-bottom:1rem}.timeline-desc{font-size:.925rem;color:var(--text-muted);margin-bottom:1.25rem}.timeline-highlights{display:flex;flex-wrap:wrap;gap:.5rem}.highlight-tag{font-size:.8rem;padding:.2rem .6rem;background-color:var(--bg-subtle);border:1px solid var(--border-color);border-radius:4px;color:var(--text-muted)}.certifications-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.cert-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;display:flex;align-items:flex-start;gap:1rem;box-shadow:var(--shadow-sm);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .3s ease}.cert-card:hover{border-color:var(--border-strong);box-shadow:0 14px 28px -6px #00000017,0 4px 10px -2px #0000000a;transform:translateY(-6px) scale(1.01)}[data-theme=dark] .cert-card:hover{box-shadow:0 14px 32px -6px #000000b3,0 0 0 1px #ffffff14}.cert-icon{color:var(--text-main);flex-shrink:0;margin-top:.1rem;transition:transform .3s cubic-bezier(.16,1,.3,1)}.cert-card:hover .cert-icon{transform:translateY(-3px) scale(1.08)}.cert-card h3{font-size:1.05rem;margin-bottom:.2rem}.cert-issuer{font-size:.85rem;color:var(--text-muted)}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:3.5rem}.contact-subtitle{font-family:var(--font-serif);font-size:1.75rem;margin-bottom:1rem;font-weight:500}.contact-text{color:var(--text-muted);margin-bottom:2rem}.contact-details{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2.5rem}.detail-item{display:flex;align-items:flex-start;gap:1rem}.detail-icon{width:36px;height:36px;border-radius:var(--radius-sm);background-color:var(--bg-subtle);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-main);flex-shrink:0}.detail-label{font-size:.75rem;text-transform:uppercase;color:var(--text-light);display:block;font-family:var(--font-mono);margin-bottom:.1rem}.detail-value{font-size:.95rem;font-weight:500;color:var(--text-main)}.copy-email-row{display:flex;align-items:center;gap:.75rem}.btn-copy{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;padding:.2rem .55rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--bg-subtle);color:var(--text-muted);transition:all var(--transition-fast)}.btn-copy:hover{border-color:var(--border-strong);color:var(--text-main)}.social-row{display:flex;gap:.75rem}.contact-form-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2.5rem;box-shadow:var(--shadow-sm);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .3s ease}.contact-form-card:hover{border-color:var(--border-strong);box-shadow:0 16px 36px -8px #00000014}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.85rem;font-weight:500;color:var(--text-main)}.form-group input,.form-group textarea{width:100%;padding:.75rem 1rem;font-family:inherit;font-size:.925rem;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-color);color:var(--text-main);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--text-main);box-shadow:0 0 0 2px #18181b14}.site-footer{padding:2.5rem 0;border-top:1px solid var(--border-color);font-size:.875rem;color:var(--text-muted)}.footer-inner{display:flex;align-items:center;justify-content:space-between}.back-to-top{color:var(--text-muted)}.back-to-top:hover{color:var(--text-main)}.modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.modal-backdrop.open{opacity:1;visibility:visible}.modal-window{background-color:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:760px;max-height:88vh;overflow-y:auto;position:relative;padding:2.5rem;box-shadow:var(--shadow-lg);transform:translateY(20px);transition:transform var(--transition-normal)}.modal-lg{max-width:850px}.modal-backdrop.open .modal-window{transform:translateY(0)}.modal-close{position:absolute;top:1.25rem;right:1.25rem;font-size:1.75rem;line-height:1;color:var(--text-muted);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--text-main);background-color:var(--bg-subtle)}.modal-header-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-right:2.5rem}.modal-title{font-size:1.25rem}.modal-arch-badge{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;color:var(--text-light);margin-bottom:.5rem}.modal-heading{font-family:var(--font-serif);font-size:2rem;margin-bottom:1rem}.modal-section{margin-top:1.75rem}.modal-section h4{font-size:1.05rem;margin-bottom:.75rem}.arch-box{background-color:var(--bg-subtle);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:1.25rem;font-family:var(--font-mono);font-size:.85rem;color:var(--text-main);line-height:1.6;white-space:pre-wrap;margin-bottom:1rem}.resume-paper{font-size:.925rem}.resume-header{text-align:center;margin-bottom:1.25rem}.resume-header h1{font-size:1.8rem;margin-bottom:.2rem}.resume-subtitle{font-weight:500;color:var(--text-muted)}.resume-contact-meta,.resume-links{font-size:.85rem;color:var(--text-muted);margin-top:.3rem}.resume-line{border:0;height:1px;background-color:var(--border-strong);margin:1.25rem 0}.resume-section{margin-bottom:1.5rem}.resume-section h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);padding-bottom:.3rem;margin-bottom:.85rem}.entry-row{display:flex;justify-content:space-between;margin-bottom:.2rem}.entry-sub{color:var(--text-muted);font-size:.875rem;margin-bottom:.5rem}.resume-bullet-list{display:flex;flex-direction:column;gap:.4rem}.resume-bullet-list li{position:relative;padding-left:1rem}.resume-bullet-list li:before{content:"•";position:absolute;left:0}.toast-container{position:fixed;bottom:2rem;right:2rem;z-index:2000;display:flex;flex-direction:column;gap:.75rem}.toast{background-color:var(--text-main);color:var(--bg-color);padding:.85rem 1.25rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.6rem;animation:toastIn .3s cubic-bezier(.4,0,.2,1)}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .5s cubic-bezier(.22,1,.36,1) forwards}.animate-slide-up{animation:slideUp .6s cubic-bezier(.22,1,.36,1) forwards}.animate-slide-up-delay-1{opacity:0;animation:slideUp .6s cubic-bezier(.22,1,.36,1) .1s forwards}.animate-slide-up-delay-2{opacity:0;animation:slideUp .6s cubic-bezier(.22,1,.36,1) .22s forwards}.animate-slide-up-delay-3{opacity:0;animation:slideUp .6s cubic-bezier(.22,1,.36,1) .34s forwards}.animate-slide-up-delay-4{opacity:0;animation:slideUp .6s cubic-bezier(.22,1,.36,1) .46s forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.scroll-fade-item{opacity:var(--sf-opacity, 1);transform:translate3d(0,var(--sf-y, 0px),0);transition:opacity .22s cubic-bezier(.25,1,.5,1),transform .22s cubic-bezier(.25,1,.5,1);will-change:opacity,transform}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal-header{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.reveal-header.revealed{opacity:1;transform:translateY(0)}.reveal-header .section-divider{transform-origin:left;transform:scaleX(0);transition:transform .7s cubic-bezier(.22,1,.36,1) .15s}.reveal-header.revealed .section-divider{transform:scaleX(1)}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:42px;height:42px;border-radius:50%;background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(12px) scale(.9);transition:opacity .25s cubic-bezier(.22,1,.36,1),transform .25s cubic-bezier(.22,1,.36,1),visibility .25s,background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);z-index:990}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.back-to-top:hover{color:var(--text-main);border-color:var(--border-strong);background-color:var(--bg-subtle);transform:translateY(-2px) scale(1.04)}.back-to-top svg{transition:transform .2s cubic-bezier(.22,1,.36,1)}.back-to-top:hover svg{transform:translateY(-2px)}@media (max-width: 900px){.hero-title{font-size:3.2rem}.contact-grid{grid-template-columns:1fr;gap:2.5rem}.skills-grid,.projects-grid,.certifications-grid,.principles-grid{grid-template-columns:1fr}}@media (max-width: 768px){.nav-menu{position:fixed;top:var(--header-height);left:0;width:100%;background-color:var(--bg-card);border-bottom:1px solid var(--border-color);padding:1.5rem;display:none}.nav-menu.open{display:block}.nav-list{flex-direction:column;align-items:flex-start;gap:1.25rem}.nav-toggle{display:flex}.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.25rem}.hero-description{font-size:1rem}.hero-actions{flex-direction:column;align-items:stretch}.hero-socials{gap:1rem}.section{padding:4rem 0}.reveal{transform:translateY(16px)}.back-to-top{bottom:1.5rem;right:1.5rem;width:38px;height:38px}.toast-container{bottom:4.5rem;right:1.5rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal,.reveal-header,.reveal-header .section-divider,.scroll-fade-item{opacity:1!important;transform:none!important;transition:none!important}.timeline:before{transform:none!important;transition:none!important}.timeline-dot{opacity:1!important;transform:translate(-50%)!important;transition:none!important}.scroll-progress{display:none!important}}
