*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.7;color:#0a0a0a;background-color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none;background:none}img{max-width:100%;display:block}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 24px}.section{padding:96px 0}@media(max-width:1024px){.section{padding:64px 0}}@media(max-width:640px){.section{padding:48px 0}}.section--alt{background-color:#fafafa}.section-label{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#a1a1aa;margin-bottom:12px}.section-title{font-size:40px;font-weight:700;letter-spacing:-.03em;color:#0a0a0a;line-height:1.15;margin-bottom:16px}@media(max-width:1024px){.section-title{font-size:32px}}@media(max-width:640px){.section-title{font-size:26px}}.section-desc{font-size:18px;color:#52525b;max-width:560px;line-height:1.7}@media(max-width:640px){.section-desc{font-size:16px}}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;transition:background-color .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.btn--primary{background-color:#0a0a0a;color:#fff}.btn--primary:hover{background-color:#27272a}.btn--secondary{background-color:transparent;color:#52525b;border:1px solid #e4e4e7}.btn--secondary:hover{background-color:#fafafa;border-color:#a1a1aa}.btn--ghost{background-color:transparent;color:#52525b;padding-left:0;padding-right:0}.btn--ghost:hover{color:#0a0a0a}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background-color:#fff;border:1px solid #e4e4e7;border-radius:10px;padding:24px;transition:box-shadow .15s ease,transform .15s ease}.card:hover{box-shadow:0 1px 3px #0000000d,0 4px 12px #0000000a;transform:translateY(-2px)}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:500;background-color:#f4f4f5;color:#52525b}.badge--blue{background-color:#eff6ff;color:#2563eb}.badge--green{background-color:#f0fdf4;color:#15803d}.badge--active{background-color:#eff6ff;color:#2563eb}.badge--done{background-color:#f0fdf4;color:#15803d}.badge--draft{background-color:#f4f4f5;color:#a1a1aa}:focus-visible{outline:2px solid #2563eb;outline-offset:3px;border-radius:3px}.theme-icon--dark,html.dark .theme-icon--light{display:none}html.dark .theme-icon--dark{display:block}html.dark body{background-color:#0e0e10;color:#ededed}html.dark .navbar--scrolled{background-color:#0e0e10e6}html.dark .navbar__links a{color:#a1a1aa!important}html.dark .navbar__links a:hover{color:#ededed!important;background-color:#1c1c1f!important}html.dark .navbar__links a.active{color:#c084a8!important;background-color:#714b672e!important}html.dark .navbar__theme{color:#a1a1aa!important;border-color:#ffffff1a!important}html.dark .navbar__theme:hover{color:#ededed!important;background-color:#1c1c1f!important}html.dark .navbar__burger{color:#a1a1aa!important;border-color:#ffffff1a!important}html.dark .navbar__burger:hover{background-color:#1c1c1f!important}html.dark .navbar__drawer{background-color:#0e0e10f7!important;border-top-color:#ffffff0f!important}html.dark .navbar__drawer a{color:#a1a1aa!important}html.dark .navbar__drawer a:hover{color:#ededed!important;background-color:#1c1c1f!important}html.dark .hero{background:#0e0e10}html.dark .hero:before{background:#1a1916}html.dark .hero__title{color:#ededed}html.dark .hero__desc{color:#9ca3af}html.dark .hero__callout-text,html.dark .hero__mobile-avail-text{color:#ededed}html.dark .hero__callout-sub,html.dark .hero__mobile-stat-lbl,html.dark .hero__mobile-avail-sub{color:#71717a}html.dark .hero__point-a,html.dark .hero__mobile-stat-box{border-color:#ffffff1f}html.dark .hero__mobile-stats{border-top-color:#ffffff14}html.dark .hero__scroll{border-color:#ffffff1a;color:#6b7280}html.dark .hero-btn--secondary{color:#d1d5db;border-color:#ffffff26}html.dark .hero-btn--secondary:hover{border-color:#714b67;color:#c084a8;background:#714b6714}html.dark .github-activity{background:#0e0e10;border-top-color:#ffffff0f}html.dark .github-activity__title{color:#ededed}html.dark .github-activity__link{color:#a1a1aa;border-color:#ffffff1a}html.dark .github-activity__link:hover{color:#714b67;border-color:#714b67}html.dark .github-activity__chart{background:#141416}html.dark .about-page__title{color:#ededed!important}html.dark .about-quote__card{background:#141416!important}html.dark .about-quote__text{color:#d1d5db!important}html.dark .about-quote__name{color:#ededed!important}html.dark .about-quote__role{color:#9ca3af!important}html.dark .about-desc__heading{color:#ededed!important}html.dark .about-desc__col p{color:#9ca3af!important}html.dark .about-desc__col p strong{color:#d1d5db!important}html.dark .stack-page:before{background:#141416}html.dark .stack-page__title{color:#ededed}html.dark .stack-page__title-script,html.dark .stack-section__label{color:#c084a8}html.dark .stack-card__icon-wrap{background:#1c1c1f;box-shadow:0 2px 8px #00000080}html.dark .stack-card__name{color:#9ca3af}html.dark .stack-note__headline{color:#c084a8}html.dark .stack-note__caption{color:#6b7280}html.dark .stack-note__accent{color:#9ca3af}html.dark .projects-page__title{color:#ededed!important}html.dark .project-item__player{background:#1c1c1f!important;box-shadow:0 8px 40px #00000080!important}html.dark .project-item__media{background:#141416!important}html.dark .project-item__placeholder{background:linear-gradient(135deg,#1c1c1f,#141416)!important}html.dark .project-item__placeholder-label{color:#c084a840!important}html.dark .project-item__title{color:#ededed!important}html.dark .project-item__desc{color:#9ca3af!important}html.dark .project-item__link{color:#d1d5db!important;border-color:#ffffff1f!important}html.dark .project-item__link:hover{border-color:#714b67!important;color:#c084a8!important;background:#714b6714!important}html.dark .project-item__tech-icon{background:#1c1c1f!important;box-shadow:0 2px 8px #00000080!important}html.dark .project-item__tech-name{color:#9ca3af!important}html.dark .video-bar__track{background:#ffffff1a!important}html.dark .video-bar__toggle{color:#a1a1aa!important}html.dark .cv-page-header{background:#141416}html.dark .cv-page-header__title{color:#ededed}html.dark .cv-viewer,html.dark .contact-hero{background:#0e0e10}html.dark .contact-hero__title{color:#ededed!important}html.dark .contact-hero__sub{color:#9ca3af!important}html.dark .contact-cta__icon-wrap{background:#1c1c1f!important;box-shadow:0 2px 10px #0006!important}html.dark .contact-cta__name{color:#9ca3af!important}html.dark .contact-hero__note{color:#6b7280!important}html.dark .cdeco-oval ellipse{fill:#1a1a1c!important}html.dark .cdeco-card rect:first-child{fill:#242428!important}html.dark .contact-hero__wave path{fill:#141416!important}html.dark .contact-map-section{background:#141416!important}html.dark .contact-map__title{color:#ededed!important}html.dark .contact-map__badge{background:#1c1c1f!important;color:#ededed!important;box-shadow:0 4px 16px #0006!important}html.dark .footer{background:#0e0e10;border-top-color:#ffffff0f}html.dark .footer__bottom{border-top-color:#ffffff0f!important}html.dark .footer__bottom span,html.dark .footer__nav-title{color:#6b7280!important}html.dark .footer__nav a{color:#9ca3af!important}html.dark .footer__nav a:hover{color:#c084a8!important}html.dark .footer__social-link{color:#9ca3af!important}html.dark .footer__social-link:hover{color:#c084a8!important}html.dark .footer__tagline{color:#6b7280!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.fade-in,[fadeIn]{opacity:0;transform:translateY(20px);transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1)}.fade-in.visible,.fade-in.is-visible,[fadeIn].visible,[fadeIn].is-visible{opacity:1;transform:translateY(0)}
