:root{--portfolio-navy: #1d1913;--portfolio-navy-light: #3c342b;--portfolio-navy-dark: #0f0c08;--portfolio-white: #f8f3ea;--portfolio-black: #14110d;--portfolio-gray-light: #efe7db;--portfolio-gray-medium: #6a5f52;--portfolio-gray-dark: #2a241e;--portfolio-accent: #8a4b3a;--portfolio-hover: #e3d9cb;--portfolio-border: #d9cfc1;--portfolio-surface: #f6f0e6;--portfolio-ink: #3a2f25;--portfolio-muted: #7b6e60;--portfolio-slate: #cbbfb1;--portfolio-font-body: "Source Serif 4", "Times New Roman", serif;--portfolio-font-heading: "Playfair Display", "Times New Roman", serif;--cursor-default: url(/cursor-quill.svg) 2 2, auto;--cursor-pointer: url(/cursor-quill.svg) 2 2, pointer;--cursor-pointer-hover: url(/cursor-quill-accent.svg) 2 2, pointer;--cursor-default-cream: url(/cursor-quill-cream.svg) 2 2, auto;--cursor-pointer-cream: url(/cursor-quill-cream.svg) 2 2, pointer;--portfolio-sidebar-width: 280px;--portfolio-spacing-sm: .5rem;--portfolio-spacing-md: 1rem;--portfolio-spacing-lg: 1.5rem;--portfolio-spacing-xl: 2rem;--portfolio-transition: all .3s ease;--portfolio-transition-fast: all .15s ease;--portfolio-sidebar-collapsed-width: 70px;--portfolio-nav-icon-size: 24px}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--portfolio-font-body);background-color:var(--portfolio-gray-light);color:var(--portfolio-black);line-height:1.7;overflow-x:hidden;cursor:var(--cursor-default)}a,button,[role=button],input,textarea,select,summary{cursor:var(--cursor-pointer)}a:hover,button:hover,[role=button]:hover,summary:hover{cursor:var(--cursor-pointer-hover)}h1,h2,h3,h4{font-weight:800;font-family:var(--portfolio-font-heading);letter-spacing:.01em}.portfolio-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--portfolio-spacing-sm) var(--portfolio-spacing-md);border:none;border-radius:6px;font-weight:500;text-decoration:none;transition:var(--portfolio-transition-fast);cursor:var(--cursor-pointer);font-size:.875rem}.portfolio-btn-primary{background-color:var(--portfolio-navy);color:var(--portfolio-white)}.portfolio-btn-primary:hover{background-color:var(--portfolio-navy-dark);transform:translateY(-1px)}.portfolio-btn-secondary{background-color:transparent;color:var(--portfolio-navy);border:1px solid var(--portfolio-navy)}.portfolio-btn-secondary:hover{background-color:var(--portfolio-navy);color:var(--portfolio-white)}.portfolio-btn-ghost{background-color:transparent;color:var(--portfolio-gray-dark)}.portfolio-btn-ghost:hover{background-color:var(--portfolio-hover);color:var(--portfolio-navy)}.portfolio-sidebar{position:fixed;top:20px;left:20px;width:var(--portfolio-sidebar-collapsed-width);height:calc(100vh - 40px);background-color:var(--portfolio-surface);border-radius:12px;box-shadow:0 10px 24px #14120f0f;z-index:1000;transition:width .4s cubic-bezier(.25,.46,.45,.94),box-shadow .4s cubic-bezier(.25,.46,.45,.94);overflow:hidden;border:1px solid var(--portfolio-border);will-change:width}.portfolio-sidebar:hover{width:var(--portfolio-sidebar-width);box-shadow:0 16px 32px #14120f1a}.portfolio-sidebar-nav{padding:var(--portfolio-spacing-md) 0;height:100%;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;justify-content:center}.portfolio-sidebar-nav::-webkit-scrollbar{width:0;background:transparent}.portfolio-nav-list{list-style:none;padding:var(--portfolio-spacing-lg) 0;margin:0;flex:1;display:flex;flex-direction:column;justify-content:space-evenly;gap:0;height:100%}.portfolio-nav-item{margin:0}.portfolio-nav-link{display:flex;align-items:center;padding:var(--portfolio-spacing-md);color:var(--portfolio-ink);text-decoration:none;font-weight:500;font-family:var(--portfolio-font-heading);transition:color .3s ease,background-color .3s ease,box-shadow .3s ease,transform .3s ease,padding-left .3s ease;margin:0 var(--portfolio-spacing-md);border-radius:8px;position:relative;white-space:nowrap;min-height:48px;justify-content:flex-start;gap:var(--portfolio-spacing-md)}.portfolio-sidebar:not(:hover) .portfolio-nav-link{padding-left:calc((var(--portfolio-sidebar-collapsed-width) - (var(--portfolio-spacing-md) * 2) - var(--portfolio-nav-icon-size)) / 2)}.portfolio-nav-icon{display:flex;align-items:center;justify-content:center;width:var(--portfolio-nav-icon-size);height:var(--portfolio-nav-icon-size);min-width:var(--portfolio-nav-icon-size);flex-shrink:0;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.portfolio-nav-icon svg{width:var(--portfolio-nav-icon-size);height:var(--portfolio-nav-icon-size);stroke-width:2}.portfolio-nav-text{margin-left:0;opacity:0;transform:translate(-8px);transition:opacity .2s ease,transform .2s ease,max-width .2s ease;pointer-events:none;overflow:hidden;white-space:nowrap;max-width:0;will-change:opacity,transform}.portfolio-sidebar:hover .portfolio-nav-text{opacity:1;transform:translate(0);pointer-events:auto;max-width:200px}.portfolio-nav-link:hover{color:var(--portfolio-navy);background-color:var(--portfolio-hover)}.portfolio-sidebar:hover .portfolio-nav-link:hover{transform:translate(4px)}.portfolio-sidebar:not(:hover) .portfolio-nav-link:hover{transform:scale(1.05)}.portfolio-nav-link:hover .portfolio-nav-icon{transform:scale(1.1)}.portfolio-nav-link.active{color:var(--portfolio-navy);background-color:var(--portfolio-hover);font-weight:600}.portfolio-nav-link.active .portfolio-nav-icon{transform:scale(1.05)}.portfolio-mobile-nav{display:none;position:fixed;top:0;left:0;right:0;background-color:var(--portfolio-white);border-bottom:1px solid var(--portfolio-border);z-index:1001;padding:var(--portfolio-spacing-sm) var(--portfolio-spacing-md)}.portfolio-mobile-header{display:flex;align-items:center;justify-content:space-between;gap:var(--portfolio-spacing-md)}.portfolio-burger-btn{background:none;border:none;cursor:var(--cursor-pointer);padding:var(--portfolio-spacing-sm);border-radius:4px;transition:var(--portfolio-transition-fast);position:relative;z-index:1002}.portfolio-burger-btn:hover{background-color:var(--portfolio-hover);transform:scale(1.05)}.portfolio-burger-icon{width:24px;height:24px;position:relative}.portfolio-burger-line{display:block;width:100%;height:2px;background-color:var(--portfolio-navy);margin:4px 0;transition:var(--portfolio-transition-fast)}.portfolio-burger-btn.active .portfolio-burger-line:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.portfolio-burger-btn.active .portfolio-burger-line:nth-child(2){opacity:0}.portfolio-burger-btn.active .portfolio-burger-line:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.portfolio-mobile-menu{position:absolute;top:100%;left:0;right:0;background-color:var(--portfolio-white);border-bottom:1px solid var(--portfolio-border);transform:translateY(-100%);opacity:0;visibility:hidden;transition:var(--portfolio-transition);z-index:1000;pointer-events:none}.portfolio-mobile-menu.open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}.portfolio-mobile-nav-list{list-style:none;padding:var(--portfolio-spacing-sm) 0 var(--portfolio-spacing-md)}.portfolio-mobile-nav-item{border-top:1px solid var(--portfolio-border)}.portfolio-mobile-nav-link{display:block;padding:var(--portfolio-spacing-sm) var(--portfolio-spacing-md);color:var(--portfolio-ink);text-decoration:none;font-weight:500;font-family:var(--portfolio-font-heading);transition:var(--portfolio-transition-fast);position:relative;margin:0 var(--portfolio-spacing-sm);border-radius:6px;letter-spacing:.04em}.portfolio-mobile-nav-link:hover{color:var(--portfolio-navy);background-color:var(--portfolio-hover);transform:translate(2px)}.portfolio-mobile-nav-link.active{color:var(--portfolio-navy);background-color:var(--portfolio-hover);font-weight:600}@media (max-width: 1024px){.portfolio-sidebar{transform:translate(-100%);visibility:hidden}.portfolio-mobile-nav{display:block}.portfolio-main-content{margin-left:0!important;padding-top:80px}}@media (min-width: 1025px){.portfolio-main-content{margin-left:110px;transition:margin-left .3s ease}}.portfolio-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portfolio-text-center{text-align:center}.portfolio-text-navy{color:var(--portfolio-navy)}.portfolio-bg-navy{background-color:var(--portfolio-navy)}.portfolio-mobile-nav[data-astro-cid-5blmo7yk]{transition:all .3s cubic-bezier(.4,0,.2,1)}.portfolio-mobile-nav[data-astro-cid-5blmo7yk].floating{position:fixed;top:16px;left:16px;right:16px;z-index:1000;border-radius:16px;box-shadow:0 8px 32px #0000001f,0 2px 16px #00000014;transform:translateY(0);animation:floatIn .3s cubic-bezier(.4,0,.2,1)}.portfolio-mobile-nav[data-astro-cid-5blmo7yk].floating .portfolio-mobile-header[data-astro-cid-5blmo7yk]{border-radius:16px}.portfolio-mobile-nav[data-astro-cid-5blmo7yk].floating .portfolio-mobile-menu[data-astro-cid-5blmo7yk]{top:calc(100% + 8px);border-radius:16px;box-shadow:0 8px 32px #0000001f,0 2px 16px #00000014}.portfolio-mobile-nav-item[data-astro-cid-5blmo7yk]:first-child{border-top:none}@keyframes floatIn{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (min-width: 1025px){.portfolio-mobile-nav[data-astro-cid-5blmo7yk].floating{position:static;top:auto;left:auto;right:auto;border-radius:0;box-shadow:none;transform:none;animation:none}.portfolio-mobile-nav[data-astro-cid-5blmo7yk].floating .portfolio-mobile-header[data-astro-cid-5blmo7yk]{border-radius:0}.portfolio-mobile-nav[data-astro-cid-5blmo7yk].floating .portfolio-mobile-menu[data-astro-cid-5blmo7yk]{top:100%;border-radius:0;box-shadow:none}}.about-hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--portfolio-spacing-xl);background-color:var(--portfolio-gray-light);background-image:linear-gradient(0deg,rgba(0,0,0,.03),transparent 55%),repeating-linear-gradient(90deg,rgba(20,18,15,.04) 0,rgba(20,18,15,.04) 1px,transparent 1px,transparent 18px);position:relative;text-align:center;margin-left:110px;width:calc(100% - 110px);z-index:1}.about-hero-content{max-width:800px;margin:0 auto;transform:translateY(-10vh)}.about-greeting{font-size:clamp(2.5rem,8vw,4rem);font-weight:800;color:var(--portfolio-navy);margin-bottom:var(--portfolio-spacing-lg);letter-spacing:-.02em;text-shadow:0 2px 4px rgba(30,58,138,.1)}.about-tagline{font-size:clamp(1.2rem,4vw,1.8rem);color:var(--portfolio-ink);font-weight:500;margin-bottom:var(--portfolio-spacing-xl);line-height:1.4;max-width:600px;margin-left:auto;margin-right:auto}.software-engineer-text{color:var(--portfolio-navy);font-weight:700}.letter{display:inline-block;animation:letterWave 4s ease-in-out infinite;animation-delay:calc(var(--delay) * .06s + 1s);transform-origin:bottom center;vertical-align:baseline;color:var(--portfolio-navy)}.space{display:inline-block;width:.25em}@keyframes letterWave{0%,90%,to{transform:translateY(0) scale(1)}5%{transform:translateY(-12px) scale(1.1)}10%{transform:translateY(0) scale(1)}}.about-social-links{display:flex;justify-content:center;gap:var(--portfolio-spacing-lg);margin-bottom:var(--portfolio-spacing-xl)}.about-social-link{display:flex;align-items:center;justify-content:center;width:60px;height:60px;background-color:var(--portfolio-white);border:1px solid var(--portfolio-border);border-radius:50%;color:var(--portfolio-navy);text-decoration:none;transition:var(--portfolio-transition);box-shadow:0 4px 12px #14120f1f;position:relative;overflow:hidden}.about-social-link:hover{background-color:var(--portfolio-navy);color:var(--portfolio-white);transform:translateY(-5px) scale(1.1);box-shadow:0 8px 20px #14120f2e}.about-icon{width:28px;height:28px;transition:var(--portfolio-transition)}.about-social-link:nth-child(1){animation:fistBumpLeft 5s ease-in-out infinite;animation-delay:.5s}.about-social-link:nth-child(2){animation:fistBumpRight 5s ease-in-out infinite;animation-delay:.5s}@keyframes fistBumpLeft{0%,80%,to{transform:translate(0) translateY(0) rotate(0) scale(1)}8%{transform:translate(15px) translateY(-2px) rotate(5deg) scale(1.05)}12%{transform:translate(20px) translateY(-1px) rotate(8deg) scale(1.1)}16%{transform:translate(-8px) translateY(2px) rotate(-3deg) scale(.95)}20%{transform:translate(-3px) translateY(1px) rotate(-1deg) scale(.98)}25%{transform:translate(0) translateY(0) rotate(0) scale(1)}}@keyframes fistBumpRight{0%,80%,to{transform:translate(0) translateY(0) rotate(0) scale(1)}8%{transform:translate(-15px) translateY(-2px) rotate(-5deg) scale(1.05)}12%{transform:translate(-20px) translateY(-1px) rotate(-8deg) scale(1.1)}16%{transform:translate(8px) translateY(2px) rotate(3deg) scale(.95)}20%{transform:translate(3px) translateY(1px) rotate(1deg) scale(.98)}25%{transform:translate(0) translateY(0) rotate(0) scale(1)}}.about-cta-buttons{display:flex;justify-content:center;align-items:center;gap:var(--portfolio-spacing-md);margin-bottom:var(--portfolio-spacing-xl);flex-wrap:wrap}.about-cta-buttons .portfolio-btn{min-width:140px;padding:var(--portfolio-spacing-md) var(--portfolio-spacing-lg);font-size:1rem;font-weight:600;border-radius:8px;transition:var(--portfolio-transition)}.about-cta-buttons .portfolio-btn:hover{transform:translateY(-2px);box-shadow:0 4px 14px #1e3a8a2e}.about-scroll-indicator{position:absolute;bottom:var(--portfolio-spacing-xl);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--portfolio-spacing-sm);color:var(--portfolio-muted);animation:aboutBounce 2s infinite;opacity:1;transition:opacity .3s ease-out,visibility .3s ease-out,color .3s ease-out;visibility:visible;cursor:var(--cursor-pointer);user-select:none}.about-scroll-indicator:hover{color:var(--portfolio-navy);transform:translate(-50%) scale(1.05)}.about-scroll-indicator.about-scroll-hidden{opacity:0;visibility:hidden}.about-scroll-text{font-size:.875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.about-scroll-arrow{width:24px;height:24px;color:var(--portfolio-navy)}@keyframes aboutBounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}.about-bio-section{min-height:100vh;padding:calc(var(--portfolio-spacing-xl) * 3) var(--portfolio-spacing-xl);background-color:var(--portfolio-white);opacity:0;transform:translateY(50px);transition:all .8s ease-out;margin-left:110px;width:calc(100% - 110px);z-index:1}.about-bio-section.about-bio-visible{opacity:1;transform:translateY(0)}.about-bio-container{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:var(--portfolio-spacing-xl);align-items:center}.about-bio-content{max-width:800px;margin:0 auto}.about-bio-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;color:var(--portfolio-navy);margin-bottom:var(--portfolio-spacing-xl);text-align:center;position:relative}.about-bio-text{font-size:1.1rem;line-height:1.8;color:var(--portfolio-gray-dark);text-align:left}.about-bio-text p{margin-bottom:var(--portfolio-spacing-lg);opacity:0;transform:translateY(20px);animation:aboutSlideInUp .6s ease-out forwards}.about-bio-visible .about-bio-text p:nth-child(1){animation-delay:.2s}.about-bio-visible .about-bio-text p:nth-child(2){animation-delay:.4s}.about-bio-visible .about-bio-text p:nth-child(3){animation-delay:.6s}.about-bio-text p:last-child{margin-bottom:0}@keyframes aboutSlideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.about-hero{padding:var(--portfolio-spacing-lg);min-height:calc(100vh - 80px);margin-left:0!important;width:100%!important;padding-top:calc(70px + var(--portfolio-spacing-md))}.about-hero-content{transform:none;margin-top:0}.about-greeting{font-size:clamp(2rem,10vw,3rem)}.about-tagline{font-size:clamp(1rem,5vw,1.4rem);margin-bottom:var(--portfolio-spacing-lg)}.about-social-links{gap:var(--portfolio-spacing-md)}.about-social-link{width:50px;height:50px}.about-icon{width:24px;height:24px}.about-scroll-indicator{bottom:var(--portfolio-spacing-lg)}.about-cta-buttons{gap:var(--portfolio-spacing-sm);margin-bottom:var(--portfolio-spacing-lg)}.about-cta-buttons .portfolio-btn{min-width:120px;padding:var(--portfolio-spacing-sm) var(--portfolio-spacing-md);font-size:.9rem}.about-bio-section{padding:calc(var(--portfolio-spacing-xl) * 2) var(--portfolio-spacing-lg);margin-left:0!important;width:100%!important}.about-bio-text{font-size:1rem;line-height:1.7}}@media (max-width: 768px){.about-hero{padding-bottom:calc(var(--portfolio-spacing-xl) * 2)}.about-scroll-indicator{position:static;transform:none;margin-top:var(--portfolio-spacing-lg)}}@media (max-width: 480px){.about-hero{padding-top:calc(64px + var(--portfolio-spacing-sm))}.about-hero-content{padding:0 var(--portfolio-spacing-sm)}.about-social-links{gap:var(--portfolio-spacing-sm)}.about-social-link{width:45px;height:45px}.about-icon{width:20px;height:20px}.about-scroll-text{font-size:.75rem}}@media (prefers-reduced-motion: reduce){.about-cursor,.about-scroll-indicator{animation:none}.about-bio-section{transition:none}.about-bio-text p{animation:none;opacity:1;transform:none}}.about-social-link:focus{outline:3px solid var(--portfolio-accent);outline-offset:2px}.about-social-link:focus:not(:focus-visible){outline:none}@media print{.about-hero{min-height:auto;page-break-inside:avoid}.about-scroll-indicator{display:none}.about-social-link{box-shadow:none;border:1px solid var(--portfolio-navy)}}.experience-section{min-height:100vh;padding:80px 24px;background-color:var(--portfolio-white);background-image:repeating-linear-gradient(90deg,rgba(20,18,15,.03) 0,rgba(20,18,15,.03) 1px,transparent 1px,transparent 20px);margin-left:110px;width:calc(100% - 110px)}.experience-container{max-width:1100px;margin:0 auto}.experience-header{text-align:center;margin-bottom:48px}.experience-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;color:var(--portfolio-navy);margin-bottom:var(--portfolio-spacing-lg);text-align:center}.experience-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:start}.experience-columns{display:grid;gap:20px}.experience-article{background-color:var(--portfolio-white);border:1px solid var(--portfolio-border);border-radius:16px;padding:24px;box-shadow:0 10px 24px #14120f14}.experience-feature{border:1px solid var(--portfolio-border);padding:28px 28px 32px}.experience-kicker{font-family:var(--portfolio-font-heading);font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--portfolio-muted);margin-bottom:10px}.experience-date{font-size:.9rem;font-weight:600;color:var(--portfolio-muted);margin-bottom:14px}.experience-role{font-size:1.4rem;font-weight:800;color:var(--portfolio-navy);margin:0 0 8px}.experience-company{font-size:1.05rem;font-weight:600;color:var(--portfolio-ink);margin:0 0 18px}.experience-role-stack{display:grid;gap:12px;margin-bottom:18px;padding-left:16px;border-left:2px solid var(--portfolio-border)}.experience-role-row{display:grid;gap:4px}.experience-role-title{font-weight:700;color:var(--portfolio-navy);font-size:1rem}.experience-role-range{font-weight:600;color:var(--portfolio-muted);font-size:.9rem}.experience-description,.experience-detail{font-size:1rem;color:var(--portfolio-ink);line-height:1.7;margin:0 0 16px}.experience-detail{margin-bottom:0}@media (max-width: 1024px){.experience-section{margin-left:0;width:100%}.experience-layout{grid-template-columns:1fr}}@media (max-width: 768px){.experience-section{padding:64px 18px}.experience-article{padding:22px}.experience-feature{padding:24px}.experience-role{font-size:1.25rem}}@media (max-width: 520px){.experience-section{padding:56px 16px}.experience-article{padding:20px}}.skills-section{min-height:100vh;padding:clamp(64px,8vw,96px) 20px;background-color:var(--portfolio-gray-light);background-image:repeating-linear-gradient(90deg,rgba(20,18,15,.03) 0,rgba(20,18,15,.03) 1px,transparent 1px,transparent 20px);margin-left:110px;width:calc(100% - 110px);display:flex;align-items:center;position:relative}.skills-container{max-width:1100px;margin:0 auto;width:100%}.skills-header{text-align:center;margin-bottom:64px}.skills-title{font-size:clamp(2.5rem,5vw,3.5rem);font-weight:800;color:var(--portfolio-navy);margin:0 0 16px;position:relative}.skills-subtitle{font-size:1.1rem;color:var(--portfolio-muted);margin:0;font-weight:500}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(20px,3vw,32px);opacity:0;transform:translateY(18px);transition:transform .6s ease,opacity .6s ease}.skills-grid.skills-visible{opacity:1;transform:translateY(0)}.skills-card{background-color:var(--portfolio-white);border:1px solid var(--portfolio-border);border-radius:16px;padding:24px;box-shadow:0 6px 16px #14120f14}.skills-card-title{font-size:1.05rem;font-weight:800;color:var(--portfolio-navy);margin-bottom:16px;letter-spacing:.02em}.skills-chips{display:flex;flex-wrap:wrap;gap:10px}.skills-chip{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;background-color:var(--portfolio-surface);border:1px solid var(--portfolio-border);color:var(--portfolio-ink);font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-family:var(--portfolio-font-heading);letter-spacing:.06em}@media (max-width: 1024px){.skills-section{margin-left:0;width:100%}}@media (max-width: 768px){.skills-section{padding:60px 16px;min-height:auto}.skills-header{margin-bottom:48px}.skills-chip{white-space:normal;text-align:center}}@media (max-width: 480px){.skills-section{padding:50px 12px}}@media (prefers-reduced-motion: reduce){.skills-grid{transition:none;transform:none;opacity:1}}.education-section{min-height:100vh;padding:80px 20px;background-color:var(--portfolio-white);background-image:repeating-linear-gradient(0deg,rgba(20,18,15,.03) 0,rgba(20,18,15,.03) 1px,transparent 1px,transparent 24px);margin-left:110px;width:calc(100% - 110px);display:flex;align-items:center}.education-container{max-width:800px;margin:0 auto;width:100%}.education-header{text-align:center;margin-bottom:80px}.education-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;color:var(--portfolio-navy);margin-bottom:var(--portfolio-spacing-xl);text-align:center;position:relative}.education-content{display:flex;justify-content:center}.education-card{background:var(--portfolio-white);border:1px solid var(--portfolio-border);border-radius:16px;padding:40px;box-shadow:0 6px 16px #14120f14;max-width:600px;width:100%;opacity:0;transform:translateY(30px);transition:all .6s ease;position:relative;overflow:hidden}.education-card.education-visible{opacity:1;transform:translateY(0)}.education-card:hover{transform:translateY(-5px);box-shadow:0 10px 24px #14120f1f;border-color:#1e3a8a33}.education-institution{margin-bottom:24px}.institution-name{font-size:1.5rem;font-weight:800;color:var(--portfolio-navy);margin:0 0 8px;line-height:1.3}.institution-location{font-size:1rem;color:var(--portfolio-muted);font-weight:500;margin:0}.education-details{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--portfolio-border)}.degree-title{font-size:1.25rem;font-weight:700;color:var(--portfolio-navy);margin:0 0 8px;line-height:1.4}.degree-duration{font-size:.95rem;color:var(--portfolio-muted);font-weight:500;margin:0}.education-description{margin:0}.education-description p{font-size:1rem;color:var(--portfolio-ink);line-height:1.7;margin:0}@media (max-width: 1024px){.education-section{margin-left:0;width:100%}}@media (max-width: 768px){.education-section{padding:60px 16px}.education-header{margin-bottom:60px}.education-card{padding:32px 24px}.institution-name{font-size:1.3rem}.degree-title{font-size:1.1rem}.education-description p{font-size:.95rem}}@media (max-width: 480px){.education-section{padding:50px 12px}.education-card{padding:24px 20px}.institution-name{font-size:1.2rem}.degree-title{font-size:1rem}.education-description p{font-size:.9rem;line-height:1.6}}@media (prefers-reduced-motion: reduce){.education-card{transition:opacity .3s ease;transform:none}.education-card:hover{transform:none}}.education-card:focus-within{outline:3px solid var(--portfolio-accent);outline-offset:2px}.education-card:focus-within:not(:focus-visible){outline:none}.projects-section{min-height:100vh;padding:80px 20px;background-color:var(--portfolio-white);background-image:repeating-linear-gradient(0deg,rgba(20,18,15,.04) 0,rgba(20,18,15,.04) 1px,transparent 1px,transparent 22px);margin-left:110px;width:calc(100% - 110px);display:flex;align-items:center}.projects-container{max-width:1200px;margin:0 auto;width:100%}.projects-header{text-align:center;margin-bottom:80px}.projects-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;color:var(--portfolio-navy);margin-bottom:var(--portfolio-spacing-xl);text-align:center;position:relative}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:40px;margin-bottom:60px}.project-card{background:var(--portfolio-white);border:1px solid var(--portfolio-border);border-radius:16px;overflow:hidden;box-shadow:0 6px 16px #14120f14;opacity:0;transform:translateY(30px);transition:all .6s ease;transition-delay:var(--animation-delay, 0s);position:relative;display:flex}.project-card.project-visible{opacity:1;transform:translateY(0)}.project-card:hover{transform:translateY(-8px);box-shadow:0 10px 26px #14120f24;border-color:var(--portfolio-slate)}.project-content{padding:32px;display:flex;flex-direction:column;gap:20px;width:100%}.project-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.project-type{font-size:.85rem;font-weight:600;color:var(--portfolio-muted);background-color:var(--portfolio-surface);padding:6px 12px;border-radius:16px;border:1px solid var(--portfolio-border);font-family:var(--portfolio-font-heading);letter-spacing:.08em;text-transform:uppercase}.project-status{font-size:.8rem;font-weight:600;color:var(--portfolio-white);background-color:var(--portfolio-accent);padding:4px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px;font-family:var(--portfolio-font-heading);letter-spacing:.08em}.project-duration{font-size:.85rem;font-weight:500;color:var(--portfolio-muted)}.project-name{font-size:1.5rem;font-weight:800;color:var(--portfolio-navy);margin:0 0 16px;line-height:1.3}.project-description{font-size:1rem;color:var(--portfolio-ink);line-height:1.7;margin:0 0 24px}.project-tech{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.tech-tag{font-size:.8rem;font-weight:600;color:var(--portfolio-ink);background-color:var(--portfolio-surface);padding:6px 12px;border-radius:16px;border:1px solid var(--portfolio-border);transition:all .2s ease}.project-tech{font-family:var(--portfolio-font-heading);letter-spacing:.04em}.tech-tag:hover{background-color:var(--portfolio-navy);color:var(--portfolio-white);transform:translateY(-1px)}.project-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto}.project-link{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;text-decoration:none;padding:12px 20px;border-radius:25px;transition:all .2s ease;border:2px solid transparent}.project-link.primary{background-color:var(--portfolio-navy);color:var(--portfolio-white);border-color:var(--portfolio-navy)}.project-link.primary:hover{transform:translateY(-2px);box-shadow:0 4px 14px #1e3a8a33}.project-link.secondary{background-color:transparent;color:var(--portfolio-navy);border-color:var(--portfolio-navy)}.project-link.secondary:hover{background-color:var(--portfolio-navy);color:var(--portfolio-white);transform:translateY(-2px);box-shadow:0 4px 14px #1e3a8a33}.project-link.disabled{background-color:var(--portfolio-surface);color:var(--portfolio-muted);border-color:var(--portfolio-border);cursor:not-allowed}.link-icon{width:16px;height:16px;flex-shrink:0}.projects-note{text-align:center;margin-top:40px}.projects-note p{font-size:1rem;color:var(--portfolio-muted);font-style:italic;margin:0;opacity:.8}@media (max-width: 1024px){.projects-section{margin-left:0;width:100%}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:32px}}@media (max-width: 768px){.projects-section{padding:60px 16px}.projects-header{margin-bottom:60px}.projects-grid{grid-template-columns:1fr;gap:24px}.project-content{padding:24px}.project-name{font-size:1.3rem}.project-description{font-size:.95rem}.project-meta{flex-direction:column;align-items:flex-start;gap:8px}}@media (max-width: 480px){.projects-section{padding:50px 12px}.project-content{padding:20px}.project-name{font-size:1.2rem}.project-description{font-size:.9rem;line-height:1.6}.tech-tag{font-size:.75rem;padding:4px 8px}.project-link{font-size:.85rem;padding:10px 16px}}@media (prefers-reduced-motion: reduce){.project-card{transition:opacity .3s ease;transform:none}.project-card:hover,.tech-tag:hover,.project-link.primary:hover{transform:none}}.project-link:focus{outline:3px solid var(--portfolio-accent);outline-offset:2px}.project-link:focus:not(:focus-visible){outline:none}.footer{background-color:var(--portfolio-navy);color:var(--portfolio-white);padding:3rem 0 1rem;margin-top:4rem;margin-left:110px;width:calc(100% - 110px);position:relative;cursor:var(--cursor-default-cream)}.footer a,.footer button,.footer [role=button],.footer input,.footer textarea,.footer select,.footer summary{cursor:var(--cursor-pointer-cream)}.footer a:hover,.footer button:hover,.footer [role=button]:hover,.footer summary:hover{cursor:var(--cursor-pointer-cream)}.footer-container{max-width:1200px;margin:0 auto;padding:0 2rem;position:relative}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:2rem}.footer-section{display:flex;flex-direction:column;gap:1rem}.footer-title{font-size:1.1rem;font-weight:700;color:var(--portfolio-white);margin-bottom:.5rem;position:relative;padding-bottom:.5rem}.footer-nav,.footer-social,.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.footer-link{color:#fffc;text-decoration:none;font-size:.9rem;transition:var(--portfolio-transition);display:inline-block}.footer-link:hover{color:var(--portfolio-accent);transform:translate(4px)}.footer-social-link{color:#fffc;text-decoration:none;font-size:.9rem;transition:var(--portfolio-transition);display:flex;align-items:center;gap:.5rem}.footer-social-link:hover{color:var(--portfolio-accent);transform:translate(4px)}.footer-social-link svg{width:16px;height:16px;flex-shrink:0}.footer-contact{display:flex;flex-direction:column;gap:.75rem}.footer-contact-item{color:#fffc;font-size:.9rem;display:flex;align-items:center;gap:.5rem;margin:0}.footer-contact-item svg{width:16px;height:16px;flex-shrink:0;color:var(--portfolio-accent)}.back-to-top{position:fixed;bottom:30px;right:30px;width:50px;height:50px;background:var(--portfolio-navy);border:2px solid var(--portfolio-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:var(--cursor-pointer);opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s ease;z-index:100;box-shadow:0 4px 20px #0000001a}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--portfolio-accent);border-color:var(--portfolio-accent);transform:translateY(-2px);box-shadow:0 6px 25px #06b6d44d}.back-to-top svg{width:20px;height:20px;color:var(--portfolio-white)}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.5rem;margin-top:2rem}.footer-bottom-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-bottom-left{display:flex;flex-direction:column;gap:.35rem}.footer-copyright,.footer-tagline,.footer-attribution{color:#fff9;font-size:.85rem;margin:0}.footer-tagline{font-style:italic}@media (max-width: 1024px){.footer{margin-left:0!important;width:100%!important}}@media (max-width: 768px){.footer{padding:2.5rem 0 1.5rem;margin-top:3rem}.footer-container{padding:0 1.5rem}.footer-content{grid-template-columns:repeat(2,1fr);gap:2rem;text-align:center}.footer-section{gap:1rem;align-items:center}.footer-title{margin-bottom:1rem}.footer-nav,.footer-social,.footer-links,.footer-contact{align-items:center}.footer-social-link,.footer-contact-item{justify-content:center}.footer-bottom-content{flex-direction:column;text-align:center;gap:.75rem}.back-to-top{bottom:20px;right:20px;width:45px;height:45px}.back-to-top svg{width:18px;height:18px}}@media (max-width: 576px){.footer{padding:2rem 0 1.5rem;margin-top:2.5rem}.footer-container{padding:0 1rem}.footer-content{grid-template-columns:1fr;gap:2rem;text-align:center}.footer-section{gap:1rem;align-items:center}.footer-title{font-size:1rem;margin-bottom:1rem}.footer-nav,.footer-social,.footer-links,.footer-contact{align-items:center;gap:1rem}.footer-link,.footer-social-link{font-size:.85rem}.footer-contact-item{font-size:.85rem;justify-content:center}.footer-link:hover,.footer-social-link:hover{transform:none}.footer-bottom{margin-top:1.5rem;padding-top:1rem}.footer-bottom-content{gap:.5rem}.footer-copyright,.footer-tagline{font-size:.8rem}.back-to-top{bottom:16px;right:16px;width:42px;height:42px}.back-to-top svg{width:16px;height:16px}}@media (max-width: 380px){.footer-container{padding:0 .75rem}.footer-content{gap:1.5rem}.footer-section,.footer-nav,.footer-social,.footer-links,.footer-contact{gap:.75rem}.footer-link,.footer-social-link,.footer-contact-item{font-size:.8rem}}@media (prefers-reduced-motion: reduce){.footer-link,.footer-social-link,.back-to-top{transition:none}.footer-link:hover,.footer-social-link:hover,.back-to-top:hover{transform:none}}.footer-link:focus-visible,.footer-social-link:focus-visible{outline:2px solid var(--portfolio-accent);outline-offset:2px;border-radius:4px}.back-to-top:focus-visible{outline:2px solid var(--portfolio-accent);outline-offset:2px}
