@charset "UTF-8";.hero__quick{position:fixed;top:10.5px;right:10.5px;display:flex;gap:9px;z-index:1000;cursor:default;-webkit-user-select:none;user-select:none}.hero__quick *{outline:none!important;-webkit-tap-highlight-color:transparent!important;-webkit-focus-ring-color:transparent!important}.hero__quick .hero__quick-btn{pointer-events:auto;cursor:pointer}.hero__quick-btn{display:inline-flex;align-items:center;gap:10.5px;padding:12px 19.5px;border-radius:6px;background:linear-gradient(180deg,#ffffffb8,#ffffff9e);color:#0f172a;text-decoration:none;font-weight:800;font-size:1rem;border:1px solid rgba(15,23,42,.1);-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;cursor:pointer}.hero__quick-btn:hover{background:linear-gradient(180deg,#ffffffd9,#ffffffb3);transform:translateY(-2px) scale(1.03);box-shadow:0 9px 19.5px #0f172a1f}.hero__quick-btn--ghost{background:transparent;color:#0f172a;border-color:#0f172a40}.hero__quick-btn--ghost:hover{background:#0f172a0f}.hero__quick-btn--icon{width:37.5px;height:37.5px;display:grid;place-items:center;padding:0;font-size:22px;border-radius:6px}body.theme-dark .hero__quick-btn{background:#1e293bf2;border-color:#22ff8840;color:#e2e8f0}body.theme-dark .hero__quick-btn:hover{background:#1e293bfa;border-color:#22c55e66;box-shadow:0 9px 19.5px #22c55e26}body.theme-dark .hero__quick-btn--icon{color:#c7f5d9;border-color:#22ff8840}body.theme-dark .hero__quick-btn--icon:hover{background:#22c55e1a;border-color:#2f86}body.theme-dark .hero__quick-btn--ghost{border-color:#22ff8840}body.theme-dark .hero__quick-btn--ghost:hover{background:#22c55e14;border-color:#22c55e66}@media (max-width: 1024px){.hero__quick{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.social-dock{position:fixed;left:12px;bottom:12px;z-index:10;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}@media (max-width: 1024px){.social-dock{display:none!important}.social-dock--mobile{flex-direction:column;gap:6px;left:12px;transform:none}.social-dock__toggle{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:50%;background:#ffffffe6;border:1px solid rgba(15,23,42,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease;cursor:pointer}.social-dock__toggle:active{transform:scale(.95);background:#fff}.social-dock__toggle img{width:12px;height:12px;opacity:.8}.social-dock__links{display:flex;flex-direction:column;gap:6px;animation:slideUp .3s ease-out}.social{width:27px;height:27px}.social img{width:12px;height:12px}.social:active{transform:scale(.95)}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.social{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#ffffffe6;border:1px solid rgba(15,23,42,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease;text-decoration:none}.social:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a26;background:#fff}.social img{width:15px;height:15px;opacity:.8;transition:opacity .2s ease}.social:hover img{opacity:1}.social-dock .social{width:34.5px;height:34.5px;display:grid;place-items:center;text-decoration:none;font-weight:900;font-size:18px;color:#0f172a;background:linear-gradient(180deg,#ffffffc7,#ffffffa8);border:1px solid rgba(15,23,42,.12);border-radius:9px;box-shadow:inset 0 1px #ffffffb3,0 10px 30px #0f172a1f,0 1px #0f172a0f}.social-dock .social:hover{filter:brightness(1.05)}body.theme-dark .social{background:#0b1220e6;border-color:#ffffff1a}body.theme-dark .social:hover{background:#0b1220;box-shadow:0 8px 24px #0000004d}body.theme-dark .social-dock .social{color:#e2e8f0;background:linear-gradient(180deg,#1e293be6,#1e293bc7);border-color:#22ff8840;box-shadow:inset 0 1px #ffffff0f,0 10px 30px #0000004d}body.theme-dark .social-dock .social:hover{border-color:#2f86;box-shadow:inset 0 1px #ffffff14,0 10px 30px #22c55e4d;filter:none}@media (max-width: 1024px){body.theme-dark .social-dock__toggle{background:#0b1220e6;border-color:#ffffff1a}body.theme-dark .social-dock__toggle:active{background:#0b1220}}*,*:before,*:after,html,body{scrollbar-width:none!important;-ms-overflow-style:none!important}*::-webkit-scrollbar,*:before::-webkit-scrollbar,*:after::-webkit-scrollbar,html::-webkit-scrollbar,body::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.scroll-progress-top{position:fixed;left:0;top:0;width:100%;height:3px;z-index:1000;background:transparent;pointer-events:none}.scroll-progress-top__bar{height:100%;width:var(--progress, 0%);background:linear-gradient(90deg,#3b82f6,#8b5cf6);transition:width .1s ease;border-radius:0 1.5px 1.5px 0}.scroll-progress-top__bar:after{content:"";position:absolute;right:0;top:0;width:15px;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3));border-radius:0 1.5px 1.5px 0}body.theme-dark .scroll-progress-top__bar{background:linear-gradient(90deg,#22c55e,#10b981)}body.theme-dark .scroll-progress-top__bar:after{background:linear-gradient(90deg,transparent,rgba(34,197,94,.3))}@media print{@page{margin:12mm}@page :first{size:landscape}html,body{background:#fff!important}#site-header,#site-header *,.site-header__inner,.site-header__inner *,.menu,.menu *,.pill,.hero__quick,.hero__quick *,.hero__brand,.hero__brand *,.wpadminbar,.scroll-progress-top,.social-dock,.fullscreen-preview-overlay,.hero-arrow,.hero-arrow__container{display:none!important}#site-header{position:static!important;height:0!important;margin:0!important;padding:0!important;transform:none!important;background:transparent!important}*{transition:none!important;animation:none!important}#hero,#skills,#about,#projects{min-height:auto!important;height:auto!important;padding:24px 0!important;break-inside:avoid;page-break-inside:avoid}#skills,#about,#projects{break-before:page;page-break-before:always}#hero,#skills,#about{break-after:page;page-break-after:always}#projects{break-after:auto;page-break-after:auto}#hero,#hero *{box-shadow:none!important}#hero{background:transparent!important}.page-scroll,.page-scroll>section,.section-base,.hero,.skills,.about,.projects{min-height:auto!important;height:auto!important;overflow:visible!important;display:block!important}.section-inner,.skills__inner,.about__inner,.projects__inner{width:100%!important;max-width:100%!important;margin:0!important;padding-left:10mm!important;padding-right:10mm!important}.section-content,.section-card{width:100%!important;max-width:100%!important;height:auto!important;overflow:visible!important}body{font-size:11.5pt;line-height:1.4}p,li{line-height:1.4}h1,h2,h3{page-break-after:avoid;break-after:avoid}#about a[href^=http]:before,#projects a[href^=http]:before{content:" (" attr(href) ") ";font-size:7pt;font-weight:400;color:#667;text-decoration:none}#about a[href^=http]:after,#projects a[href^=http]:after{content:none!important}.project-card__demo-btn:before,.project-card__demo-btn:after,.project-card__github-btn:before,.project-card__github-btn:after,.hero__quick-btn:before,.hero__quick-btn:after,.about__cta-btn:before,.about__cta-btn:after,.animated-border:before,.animated-border:after{content:none!important}#about .about__card{break-inside:avoid-page;page-break-inside:avoid}#about .about__content-text p{orphans:3;widows:3}#about ul,#about ol{break-inside:avoid;page-break-inside:avoid}#about .about__cta{display:none!important}#skills .skills__inner,#skills .skills__viewport{height:auto!important;overflow:visible!important}#projects .projects__nav-btn,#projects .projects__header,#projects .projects__grid{display:none!important}#projects .projects__inner,#projects .projects__content,#projects .projects__card{height:auto!important;overflow:visible!important}#projects .projects__print-stack{display:block!important;width:100%!important}#projects .projects__print-stack .projects__slide{display:block!important;width:100%!important;margin:0 0 16px!important}#projects .projects__print-stack .projects__slide+.projects__slide{break-before:page;page-break-before:always}#projects .project-card--side-by-side{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;box-shadow:none!important}#projects .project-card--side-by-side .project-card__screenshot,#projects .project-card--side-by-side .project-card__info{width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin-right:0!important}#projects .project-card--side-by-side .project-card__screenshot img{width:100%!important;height:auto!important;object-fit:contain!important}#projects .project-card__actions,#projects .project-card__technologies,#projects .project-card__tags{display:none!important}#projects .print-project-heading{font-size:11pt!important;margin:0 0 4px!important;color:#000!important}#projects .project-card__title{font-size:10pt!important;margin:0 0 4px!important;color:#000!important;font-weight:700!important}#projects .project-card__excerpt{font-size:8pt!important;line-height:1.2!important;margin:0 0 6px!important;color:#333!important}#hero,#skills,#about,#projects,#hero *,#skills *,#about *,#projects *{opacity:1!important;transform:none!important;filter:none!important}#skills .skills__scrollbar,#skills .custom-scrollbar{display:none!important}#skills .skill-card{box-shadow:none!important;border-color:#ddd!important;break-inside:avoid-page;page-break-inside:avoid}#skills .skills--adaptive .skills__top-row,#skills .skills--fixed .skills__top-row,#skills .skills__bottom-row{grid-template-columns:1fr!important;gap:12px!important}#skills .skill-card--standard,#skills .skill-card--special{height:auto!important;max-height:none!important}#skills .skill-card__description{line-clamp:unset!important;-webkit-line-clamp:unset!important;display:block!important;max-height:none!important;overflow:visible!important;text-overflow:initial!important}#skills .skill-card__list{max-height:none!important;overflow:visible!important}}.settings-gear{position:fixed;bottom:18px;right:18px;z-index:25}.projects .settings-gear{bottom:60px}.settings-gear__trigger{width:27px;height:27px;border:none;background:transparent;cursor:pointer;padding:4.5px;border-radius:50%;transition:all .2s ease;opacity:.6}.settings-gear__trigger img{width:100%;height:100%;color:#64748b;transition:all .2s ease}.settings-gear__trigger:hover{opacity:1;transform:rotate(45deg);background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-gear__trigger:hover img{color:#0f172a}.settings-gear__menu{position:absolute;bottom:36px;right:0;background:#fffffff2;border:1px solid rgba(15,23,42,.12);border-radius:9px;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:0 10px 25px #0f172a1a,0 4px 12px #0f172a0d;min-width:120px;padding:6px;animation:settingsMenuFadeIn .15s ease-out;transform-origin:bottom right}.settings-gear__option{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;min-width:0;border:none;background:transparent;border-radius:6px;cursor:pointer;transition:all .15s ease;color:#374151;font-size:.85rem;font-weight:500;text-align:left;white-space:nowrap}.settings-gear__option--disabled{opacity:.5;cursor:not-allowed}.settings-gear__option--disabled:hover{background:#00000005;transform:none}.settings-gear__option--disabled:active{transform:none;background:#00000005}.settings-gear__option:hover{background:#3b82f614;color:#1f2937;transform:translate(2px)}.settings-gear__option:active{transform:translate(2px) scale(.98)}.settings-gear__icon{font-size:1.1rem;flex-shrink:0;width:20px;display:flex;align-items:center;justify-content:center}.settings-gear__label{flex:1;line-height:1.2}.settings-gear__section{margin:4px 0}.settings-gear__section:not(:last-child){border-bottom:1px solid rgba(0,0,0,.08);padding-bottom:8px;margin-bottom:8px}.settings-gear__section-header{padding:8px 16px 4px}.settings-gear__section-title{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;line-height:1}@keyframes settingsMenuFadeIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.settings-gear__performance-panel{position:absolute;bottom:36px;right:0;width:210px;background:#fffffff2;border:1px solid rgba(15,23,42,.12);border-radius:9px;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:0 7.5px 18.75px #0f172a1a,0 3px 9px #0f172a0d;padding:12px;animation:settingsMenuFadeIn .15s ease-out;transform-origin:bottom right;z-index:26}.settings-gear__performance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.settings-gear__performance-header h3{margin:0;font-size:10.5px;font-weight:600;color:#1e293b;flex:1;text-align:center}.settings-gear__performance-back{width:15px;height:15px;border:none;background:transparent;cursor:pointer;font-size:12px;color:#64748b;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all .15s ease}.settings-gear__performance-back:hover{background:#0000001a;color:#0f172a}.settings-gear__performance-close{width:15px;height:15px;border:none;background:transparent;cursor:pointer;font-size:12px;color:#64748b;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all .15s ease}.settings-gear__performance-close:hover{background:#0000001a;color:#0f172a}.settings-gear__performance-metrics{display:flex;flex-direction:column;gap:6px}.settings-gear__metric{display:flex;justify-content:space-between;align-items:center;padding:4.5px 0;border-bottom:1px solid rgba(0,0,0,.1);cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><text x="8" y="12" text-anchor="middle" font-family="Arial, sans-serif" font-size="clamp(12px, 1.2vw, 14px)" fill="%23000">?</text></svg>'),help;transition:all .2s ease;position:relative}body.theme-dark .settings-gear__metric{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><text x="8" y="12" text-anchor="middle" font-family="Arial, sans-serif" font-size="clamp(12px, 1.2vw, 14px)" fill="%23ffffff">?</text></svg>'),help}.settings-gear__metric:last-child{border-bottom:none}.settings-gear__metric:hover{background:#00000005;border-radius:3px;padding:4.5px 6px;margin:0 -6px}.settings-gear__metric:hover .settings-gear__metric-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.settings-gear__metric-info{display:flex;flex-direction:column;position:relative}.settings-gear__metric-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(3.75px);background:#000000e6;color:#fff;padding:6px 9px;border-radius:4.5px;font-size:8.25px;line-height:1.4;white-space:normal;width:180px;word-wrap:break-word;z-index:27;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none;text-align:center}.settings-gear__metric-tooltip:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid rgba(0,0,0,.9)}.settings-gear__metric-label{font-size:9px;font-weight:500;color:#64748b}.settings-gear__metric-value{font-size:9px;font-weight:600;padding:1.5px 4.5px;border-radius:3px}.settings-gear__metric-value.good{background:#22c55e1a;color:#16a34a}.settings-gear__metric-value.warning{background:#f59e0b1a;color:#d97706}.settings-gear__metric-value.loading{background:#3b82f61a;color:#3b82f6}body.theme-dark .settings-gear__trigger img{color:#94a3b8}body.theme-dark .settings-gear__trigger:hover{background:#1e293b4d}body.theme-dark .settings-gear__trigger:hover img{color:#e2e8f0}body.theme-dark .settings-gear__menu{background:#1e293bf2;border-color:#ffffff1f;box-shadow:0 10px 25px #0000004d,0 4px 12px #00000026}body.theme-dark .settings-gear__option{color:#cbd5e1}body.theme-dark .settings-gear__option:hover{background:#3b82f626;color:#e2e8f0}body.theme-dark .settings-gear__section:not(:last-child){border-bottom-color:#ffffff1a}body.theme-dark .settings-gear__section-title{color:#94a3b8}body.theme-dark .settings-gear__performance-panel{background:#1e293bf2;border-color:#ffffff1f;box-shadow:0 10px 25px #0000004d,0 4px 12px #00000026}body.theme-dark .settings-gear__performance-panel h3{color:#f1f5f9}body.theme-dark .settings-gear__performance-panel .settings-gear__performance-back{color:#94a3b8}body.theme-dark .settings-gear__performance-panel .settings-gear__performance-back:hover{background:#ffffff1a;color:#e2e8f0}body.theme-dark .settings-gear__performance-panel .settings-gear__performance-close{color:#94a3b8}body.theme-dark .settings-gear__performance-panel .settings-gear__performance-close:hover{background:#ffffff1a;color:#e2e8f0}body.theme-dark .settings-gear__performance-panel .settings-gear__metric{border-bottom-color:#ffffff1a}body.theme-dark .settings-gear__performance-panel .settings-gear__metric:hover{background:#ffffff0d}body.theme-dark .settings-gear__performance-panel .settings-gear__metric-tooltip{background:#1e293bf2;color:#e2e8f0}body.theme-dark .settings-gear__performance-panel .settings-gear__metric-tooltip:before{border-bottom-color:#1e293bf2}body.theme-dark .settings-gear__performance-panel .settings-gear__metric-label{color:#94a3b8}body.theme-dark .settings-gear__performance-panel .settings-gear__metric-value.good{background:#22c55e33;color:#4ade80}body.theme-dark .settings-gear__performance-panel .settings-gear__metric-value.warning{background:#f59e0b33;color:#fbbf24}body.theme-dark .settings-gear__performance-panel .settings-gear__metric-value.loading{background:#3b82f633;color:#60a5fa}@media (max-width: 1024px){.settings-gear{bottom:20px;right:20px}.settings-gear__trigger{width:40px;height:40px;padding:8px}.settings-gear__menu{min-width:140px;bottom:52px}.settings-gear__option{padding:14px 16px;font-size:.95rem}.settings-gear__metric-tooltip{display:none!important}}@media (max-width: 1024px){.settings-gear{display:none!important}}@media print{.settings-gear{display:none!important}}.mobile-menu{position:fixed;top:20px;right:20px;z-index:999999;display:none}.mobile-menu__toggle{width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative}.mobile-menu__toggle:hover{background:#0f172a0d}.mobile-menu__toggle:active{transform:scale(.95);background:#0f172a1a}.mobile-menu__hamburger{display:flex;flex-direction:column;justify-content:space-between;width:18px;height:14px;position:relative}.mobile-menu__line{width:100%;height:2px;background:#0f172a;border-radius:1px;transition:all .3s ease;transform-origin:center}.mobile-menu__toggle--open .mobile-menu__line:nth-child(1){transform:translateY(8px) rotate(45deg)}.mobile-menu__toggle--open .mobile-menu__line:nth-child(2){opacity:0;transform:scaleX(0)}.mobile-menu__toggle--open .mobile-menu__line:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.mobile-menu__overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:all .3s ease;z-index:999998}.mobile-menu__overlay--open{opacity:1;visibility:visible}.mobile-menu__nav{position:absolute;top:0;right:0;width:280px;height:100vh;background:linear-gradient(180deg,#fffffff2,#ffffffe6);backdrop-filter:saturate(140%) blur(20px);-webkit-backdrop-filter:saturate(140%) blur(20px);border-left:1px solid rgba(15,23,42,.1);padding:80px 0 40px;transform:translate(100%);transition:transform .3s ease;overflow-y:auto;display:flex;flex-direction:column;gap:8px;-webkit-overflow-scrolling:touch}.mobile-menu__overlay--open .mobile-menu__nav{transform:translate(0)}.mobile-menu__close{position:absolute;top:20px;right:20px;width:44px;height:44px;border:none;background:linear-gradient(180deg,#ffffffb8,#ffffff9e);border:1px solid rgba(15,23,42,.1);border-radius:12px;backdrop-filter:saturate(140%) blur(8px);-webkit-backdrop-filter:saturate(140%) blur(8px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:1}.mobile-menu__close:active{transform:scale(.95);background:linear-gradient(180deg,#ffffffd9,#ffffffb3)}.mobile-menu__close-icon{font-size:24px;font-weight:300;color:#0f172a;line-height:1;transition:all .2s ease}.mobile-menu__close:active .mobile-menu__close-icon{color:#dc2626;transform:scale(1.1)}.mobile-menu__link{display:block;padding:20px 32px;color:#0f172a;text-decoration:none;font-weight:600;font-size:1.1rem;transition:all .2s ease;border-left:3px solid transparent}.mobile-menu__link:active{background:#0f172a0f;border-left-color:#3b82f6;color:#1e40af;transform:translate(4px) scale(.98)}.mobile-menu__divider{height:1px;background:#0f172a1a;margin:16px 32px}.mobile-menu__section{padding:0 0 16px}.mobile-menu__section-title{font-size:14px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;padding:0 32px}.mobile-menu__action{display:flex;align-items:center;width:100%;padding:12px 32px;background:none;border:none;color:#64748b;text-decoration:none;font-size:16px;font-weight:500;text-align:left;cursor:pointer;transition:all .2s ease}.mobile-menu__action:active{background:#0f172a0f;color:#1e40af;transform:translate(4px) scale(.98)}.mobile-menu__action-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:12px;font-size:18px}.mobile-menu__icon{width:18px;height:18px;display:inline-block}.mobile-menu__action-label{flex:1}body.theme-dark .mobile-menu__toggle{background:linear-gradient(180deg,#0b1220d9,#0b1220c7);border-color:#ffffff1a}body.theme-dark .mobile-menu__toggle:active{background:linear-gradient(180deg,#0b1220eb,#0b1220d1)}body.theme-dark .mobile-menu__line{background:#e2e8f0}body.theme-dark .mobile-menu__nav{background:linear-gradient(180deg,#1e293bf2,#1e293be6);border-left-color:#ffffff1f}body.theme-dark .mobile-menu__link{color:#e2e8f0}body.theme-dark .mobile-menu__link:active{background:#3b82f626;border-left-color:#60a5fa;color:#93c5fd}body.theme-dark .mobile-menu__divider{background:#ffffff1a}body.theme-dark .mobile-menu__section-title{color:#64748b}body.theme-dark .mobile-menu__action{color:#cbd5e1}body.theme-dark .mobile-menu__action:active{background:#3b82f626;color:#93c5fd}body.theme-dark .mobile-menu__close{background:linear-gradient(180deg,#0b1220d9,#0b1220c7);border-color:#ffffff1a}body.theme-dark .mobile-menu__close:active{background:linear-gradient(180deg,#0b1220eb,#0b1220d1)}body.theme-dark .mobile-menu__close-icon{color:#e2e8f0}body.theme-dark .mobile-menu__close:active .mobile-menu__close-icon{color:#f87171}@media (max-width: 1024px){.mobile-menu{display:block}.mobile-menu__toggle{position:fixed;top:10px;right:20px;z-index:10001}}@media print{.mobile-menu{display:none!important}}@media (prefers-reduced-motion: reduce){.mobile-menu__toggle,.mobile-menu__overlay,.mobile-menu__nav,.mobile-menu__link{transition:none}}.mobile-menu__toggle:focus{outline:2px solid #3b82f6;outline-offset:2px}.mobile-menu__link:focus{outline:2px solid #3b82f6;outline-offset:-2px}.mobile-menu-scroll-indicator{position:absolute;right:8px;top:50%;transform:translateY(-50%);height:60%;width:3px;z-index:100;background:#0000001a;border-radius:1.5px;pointer-events:none}.mobile-menu-scroll-indicator__bar{width:100%;height:var(--scroll-progress, 0%);background:linear-gradient(180deg,#3b82f6,#8b5cf6);transition:height .1s ease;border-radius:1.5px}body.theme-dark .mobile-menu-scroll-indicator{background:#ffffff1a}body.theme-dark .mobile-menu-scroll-indicator__bar{background:linear-gradient(180deg,#22c55e,#10b981)}@media (max-width: 1024px){.mobile-menu-scroll-indicator{display:block}}.mobile-menu-shadow{position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to top,rgba(0,0,0,.2) 0%,rgba(0,0,0,.1) 30%,transparent 100%);pointer-events:none;z-index:100;opacity:1;transition:opacity .15s ease}body.theme-dark .mobile-menu-shadow{background:linear-gradient(to top,rgba(0,0,0,.4) 0%,rgba(0,0,0,.2) 30%,transparent 100%)}@media (max-width: 1024px){.mobile-menu-shadow{display:block}}.back-to-projects{position:fixed;top:41.25px;right:0;z-index:1000;display:flex;align-items:center;background:#fffffff2;border:1px solid rgba(15,23,42,.12);border-radius:6px;-webkit-backdrop-filter:blur(7.5px);backdrop-filter:blur(7.5px);transition:all .3s ease;cursor:pointer;overflow:hidden;width:135px;height:36px}.back-to-projects--minimized{width:36px}.back-to-projects--minimized .back-to-projects__text{opacity:0;transform:translate(15px);visibility:hidden}.back-to-projects__arrow{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:#0f172a;font-size:18px;font-weight:700;margin-left:9px}.back-to-projects__text{color:#0f172a;font-size:10.5px;font-weight:600;white-space:nowrap;opacity:1;transform:translate(0);transition:all .3s ease;margin-right:12px;align-self:center;line-height:1;visibility:visible}@keyframes arrow-pulse{0%{box-shadow:0 6px 18.75px #0f172a26;transform:scale(1)}50%{box-shadow:0 6px 18.75px #38bdf84d,0 0 #38bdf8b3;transform:scale(1.05)}to{box-shadow:0 6px 18.75px #0f172a26;transform:scale(1)}}@keyframes arrow-pulse-dark{0%{box-shadow:0 6px 18.75px #0000004d;transform:scale(1)}50%{box-shadow:0 6px 18.75px #38bdf866,0 0 #38bdf8cc;transform:scale(1.05)}to{box-shadow:0 6px 18.75px #0000004d;transform:scale(1)}}@keyframes pulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.4);opacity:0}}.hero-arrow{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;pointer-events:auto;opacity:1;transition:opacity .3s ease}.hero-arrow__container{width:42px;height:42px;border-radius:50%;background:#fffffff2;border:1px solid rgba(15,23,42,.12);box-shadow:0 6px 18.75px #0f172a26;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:arrow-pulse 2s infinite;position:relative}.hero-arrow__container:after{content:"";position:absolute;inset:-7.5px;border-radius:inherit;border:1.5px solid rgba(56,189,248,.45);animation:pulse 1.6s ease-out infinite}.hero-arrow__container:hover{transform:translateY(-1.5px) scale(1.05);background:#fffffffa;border-color:#38bdf84d;box-shadow:0 9px 26.25px #38bdf840,0 6px 18.75px #0f172a26;animation:none;filter:brightness(1.05)}.hero-arrow__container:hover:after{animation:none}.hero-arrow__container:active{transform:translateY(0) scale(.98);transition:all .1s ease}.hero-arrow__icon{width:15px;height:15px;color:#0f172a;transition:color .3s ease}.hero-arrow__container:hover .hero-arrow__icon{color:#38bdf8}body.theme-dark .hero-arrow__container{background:#1e293bf2;border-color:#ffffff1f;box-shadow:0 6px 18.75px #0000004d;animation:arrow-pulse-dark 2s infinite}body.theme-dark .hero-arrow__container:hover{background:#1e293bfa;border-color:#38bdf866;box-shadow:0 9px 26.25px #38bdf84d,0 6px 18.75px #0000004d;animation:none;filter:brightness(1.05)}body.theme-dark .hero-arrow__icon{color:#e2e8f0}body.theme-dark .hero-arrow__container:hover .hero-arrow__icon{color:#38bdf8}@media (max-width: 1024px){.hero-arrow{display:none}.hero-arrow .hero-arrow__container{width:36px;height:36px;border-radius:50%;background:#ffffffe6;border:1px solid rgba(15,23,42,.15);box-shadow:0 3px 15px #0f172a33;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);animation:arrow-pulse 2.5s infinite}.hero-arrow .hero-arrow__container:after{inset:-6px;border-width:1.5px;animation:pulse 2s ease-out infinite}.hero-arrow .hero-arrow__icon{width:13.5px;height:13.5px}body.theme-dark .hero-arrow .hero-arrow__container{background:#1e293be6;border-color:#ffffff26;box-shadow:0 3px 15px #0006;animation:arrow-pulse-dark 2.5s infinite}}.site-footer{position:fixed;bottom:20px;right:70px;z-index:9000;background:transparent}.site-footer--non-sticky{position:absolute;bottom:20px;right:70px}.site-footer__inner{margin:0;padding:0}.site-footer__content{display:flex;align-items:center}.site-footer__nav{display:flex;flex-direction:row-reverse;gap:16px;align-items:center}.site-footer__link{font-size:.9375rem;font-weight:600;color:#64748b;text-decoration:none;transition:all .2s ease;white-space:nowrap;border-bottom:2px solid transparent;padding-bottom:2px}.site-footer__link:hover{color:#0f172a;border-bottom-color:currentColor}body.theme-dark .site-footer__link{color:#94a3b8}body.theme-dark .site-footer__link:hover{color:#e2e8f0;border-bottom-color:currentColor}@media (max-width: 1024px){.bottom-right-controls,.site-footer{display:none!important}}@media print{.bottom-right-controls,.site-footer{display:none!important}}.credits{width:100%;padding-bottom:20px;text-align:center}.credits__inner{max-width:1200px;margin:0 auto}.credits__text{margin:0 0 8px;color:#94a3b8;font-size:.875rem}.credits__text small{font-size:inherit}.credits__link{text-decoration:none;font-family:JetBrains Mono,monospace;font-weight:700;transition:all .2s ease;display:inline-block}.credits__link:hover{transform:translateY(-1px)}.credits__link:hover .brand-base{color:var(--accent)}.credits__privacy{margin:0;color:#64748b;font-size:.75rem}.credits__privacy small{font-size:inherit}.brand-bracket{color:#64748b}.brand-base{color:#1e293b;transition:color .2s ease}.brand-accent{color:var(--accent)}body.theme-dark .credits{background-color:#192734}body.theme-dark .credits__text{color:#cbd5e1}body.theme-dark .credits__privacy,body.theme-dark .brand-bracket{color:#94a3b8}body.theme-dark .brand-base{color:#f1f5f9}@media (max-width: 1024px){.credits{padding:30px 20px 80px}}@media print{.credits{padding:20px;page-break-inside:avoid}}.projects{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:transparent;scroll-snap-align:start;scroll-margin-top:60px;position:relative;padding:90px 0 0;box-sizing:border-box;z-index:1}.projects__inner{width:min(960px,92vw);margin:0 auto;padding:0 .9375rem;position:relative;z-index:2;overflow:visible;flex:0 0 auto;display:flex;flex-direction:column;justify-content:center}.projects.projects--flow{min-height:auto;padding-top:60px}.projects.projects--flow .projects__card{overflow:visible}.projects.projects--flow .project-card--side-by-side.project-card--list{height:auto;min-height:0;max-height:none}.projects.projects--flow .project-card--side-by-side.project-card--list .project-card__screenshot{height:210px;min-height:210px;max-height:210px}.projects.projects--flow .project-card--side-by-side.project-card--list .project-card__info{height:auto;min-height:0;max-height:none}@media (min-width: 768px) and (max-width: 899px){.project-card--side-by-side.project-card--list .project-card__screenshot{flex:0 0 30%;width:30%;max-width:30%}}@media (min-width: 900px){.projects.projects--flow .project-card--side-by-side.project-card--list .project-card__screenshot{height:240px;min-height:240px;max-height:240px;flex:0 0 45%;width:45%;max-width:45%}.projects.projects--flow .project-card--side-by-side.project-card--list .project-card__info{flex:0 0 55%;width:55%;max-width:55%}}@media (min-width: 1200px){.projects.projects--flow .project-card--side-by-side.project-card--list .project-card__screenshot{height:270px;min-height:270px;max-height:270px;flex:0 0 50%;width:50%;max-width:50%}.projects.projects--flow .project-card--side-by-side.project-card--list .project-card__info{flex:0 0 50%;width:50%;max-width:50%}}.projects__content{width:100%}.projects__card{width:100%;margin:0 auto;background:#fffffff2;border:1px solid rgba(15,23,42,.12);border-radius:12px;overflow:visible;backdrop-filter:blur(7.5px) saturate(140%);-webkit-backdrop-filter:blur(7.5px) saturate(140%);padding:clamp(18px,3.5vw,36px);position:relative}.projects__header{text-align:center;margin-bottom:clamp(9px,2.5vw,18px);position:relative}.projects__view-toggle{position:absolute;top:6px;right:6px;display:flex;gap:6px;z-index:10;min-width:27px;height:27px;justify-content:flex-end}.projects__toggle-btn{width:27px;height:27px;border-radius:7.5px;border:1px solid rgba(15,23,42,.15);background:#ffffffe6;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.projects__toggle-btn img{width:16.5px;height:16.5px;display:block}.projects__toggle-btn:hover{background:#fff;border-color:#38bdf866;box-shadow:0 1px 2px #0f172a14}.projects__toggle-btn.is-active{border-color:#38bdf899;box-shadow:0 0 0 2px #38bdf840}.projects__toggle-btn{position:relative}.projects__toggle-btn:after{content:attr(data-tooltip);position:absolute;bottom:-24px;left:50%;transform:translate(-50%);background:#0f172ae6;color:#fff;padding:4.5px 7.5px;border-radius:4.5px;font-size:.9rem;font-weight:500;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none;z-index:1000}.projects__toggle-btn:hover:after{opacity:1;visibility:visible}body.theme-dark .projects__toggle-btn{background:#1e293be6;border-color:#ffffff1f}body.theme-dark .projects__toggle-btn:hover{background:#1e293b;border-color:#4ade80}body.theme-dark .projects__toggle-btn.is-active{border-color:#22c55e;box-shadow:0 0 0 2px #22ff8859}body.theme-dark .projects__toggle-btn:after{background:#fffffff2;color:#0f172a}.projects__title{margin:0 0 6px;font-size:clamp(2rem,4vw,3.2rem);font-weight:900;color:#0f172a;line-height:1.1}.projects__subtitle{margin:0;color:#64748b;font-size:clamp(.95rem,1.7vw,1.15rem);font-weight:600}.projects__body{width:100%}.projects__loading,.projects__error,.projects__empty{text-align:center;padding:clamp(18px,3.5vw,36px);color:#64748b}.projects__status{padding:2rem;color:#374151}.projects__slider--side-by-side{position:relative;width:100%;overflow:hidden;margin:0}.projects__slider--side-by-side .projects__slider-container{display:flex;transition:transform .5s ease;width:100%}.projects__slider--side-by-side .projects__slide{flex:0 0 100%;width:100%;padding:0;display:flex;justify-content:center}.project-card--side-by-side{display:flex;flex-direction:row;flex-wrap:nowrap;background:transparent;border:none;border-radius:0;overflow:visible;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;height:375px;min-height:375px;max-height:375px;width:100%;max-width:1050px;transition:all .3s ease;position:relative}.project-card--side-by-side:hover{transform:none}.project-card--side-by-side .project-card__screenshot{flex:0 0 60%;width:60%;max-width:60%;position:relative;overflow:hidden;background:#f8fafc;display:flex;align-items:center;justify-content:center;height:375px;min-height:375px;max-height:375px;border-radius:9px;margin:12px 18px 12px 12px}.project-card--side-by-side .project-card__screenshot img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9;transition:transform .3s ease;display:block;border-radius:inherit}.project-card--side-by-side .project-card__screenshot .skeleton.skeleton--image{position:absolute;inset:0;border-radius:9px;background:linear-gradient(90deg,#94a3b826 25%,#94a3b840 37%,#94a3b826 63%);background-size:400% 100%;animation:projects-skeleton-shimmer 1.2s ease-in-out infinite}.project-card--side-by-side .project-card__info{flex:0 0 40%;width:40%;max-width:40%;min-width:0;padding:0;display:flex;flex-direction:column;justify-content:flex-start;background:transparent;overflow-y:auto;max-height:100%;line-height:1.6}.project-card--side-by-side .project-card__info .project-card__title{font-size:1.5rem;font-weight:700;color:#0f172a;margin:0 0 .5625rem;line-height:1.2}.project-card--side-by-side .project-card__info .project-card__excerpt{font-size:.97rem;color:#374151;line-height:1.7;margin:0 0 .75rem;max-width:70ch}.project-card--side-by-side .project-card__info .project-card__excerpt p{margin:0 0 .75em}.project-card--side-by-side .project-card__info .project-card__excerpt ul,.project-card--side-by-side .project-card__info .project-card__excerpt ol{padding-left:.9em;margin:.375em 0}.project-card--side-by-side .project-card__info .project-card__excerpt li{margin:.25em 0}.project-card--side-by-side .project-card__info .project-card__technologies{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:1.125rem;overflow:visible;padding-bottom:0;align-items:flex-start;white-space:normal}.project-card--side-by-side .project-card__info .project-card__technologies .project-card__tech-tag{display:inline-block;padding:6px 12px;margin:0;background:#38bdf81a;color:#0f172a;border:1px solid rgba(56,189,248,.3);border-radius:15px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .3s ease;cursor:pointer;flex:0 0 auto;white-space:normal;overflow-wrap:anywhere;word-break:break-word;max-width:100%}.project-card--side-by-side .project-card__info .project-card__technologies .project-card__tech-tag:hover{background:#38bdf833;border-color:#38bdf880;transform:none}.project-card--side-by-side .project-card__info .project-card__actions{margin-top:auto}.project-card--side-by-side .project-card__info .project-card__actions .project-card__cta-row{display:grid;grid-template-columns:1fr;gap:7.5px}.project-card--side-by-side .project-card__info .project-card__actions .project-card__cta-row--two{grid-template-columns:1fr 1fr}.project-card--side-by-side .project-card__info .project-card__actions .project-card__demo-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.6rem .9rem;background:linear-gradient(135deg,#38bdf8,#0ea5e9);color:#fff;border:none;border-radius:6px;font-weight:700;font-size:1rem;line-height:1.1;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;cursor:pointer;transition:all .3s ease;text-decoration:none;text-align:center;gap:8px}.project-card--side-by-side .project-card__info .project-card__actions .project-card__demo-btn:hover{transform:none;background:linear-gradient(135deg,#0ea5e9,#0284c7)}.project-card--side-by-side .project-card__info .project-card__actions .project-card__demo-btn[type=button],.project-card--side-by-side .project-card__info .project-card__actions .project-card__demo-btn[type=submit],.project-card--side-by-side .project-card__info .project-card__actions button.project-card__demo-btn{-webkit-appearance:none;appearance:none}.project-card--side-by-side .project-card__info .project-card__actions .project-card__demo-btn--secondary{background:#0f172a0d;color:#0f172a;border:1px solid rgba(15,23,42,.15);display:inline-flex;align-items:center;justify-content:center;gap:clamp(6px,1.5vw,6px)}.project-card--side-by-side .project-card__info .project-card__actions .project-card__demo-btn--secondary:hover{background:#0f172a14;border-color:#38bdf866}.project-card--side-by-side .project-card__info .project-card__actions .project-card__cta-ico{width:clamp(10.5px,3.5vw,13.5px);height:clamp(10.5px,3.5vw,13.5px);display:inline-block;flex-shrink:0}.project-card--side-by-side .project-card__info .project-card__title,.project-card--side-by-side .project-card__info .project-card__excerpt{overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:none;hyphens:none;white-space:normal;max-width:100%}.project-card--side-by-side .skeleton.skeleton--text-line{height:12px;margin:8px 0;border-radius:6px;background:linear-gradient(90deg,#94a3b826 25%,#94a3b840 37%,#94a3b826 63%);background-size:400% 100%;animation:projects-skeleton-shimmer 1.2s ease-in-out infinite}.project-card--side-by-side .skeleton.skeleton--tag{height:28px;border-radius:20px;background:linear-gradient(90deg,#94a3b826 25%,#94a3b840 37%,#94a3b826 63%);background-size:400% 100%;animation:projects-skeleton-shimmer 1.2s ease-in-out infinite}.project-card--side-by-side.project-card--list{display:flex;flex-direction:row;align-items:stretch;height:auto;min-height:auto;max-height:none;border:1px solid rgba(15,23,42,.12);border-radius:9px;transition:border-color .18s ease,box-shadow .18s ease;box-shadow:0 1px 2px #0f172a0f;padding:0}.project-card--side-by-side.project-card--list .project-card__screenshot{flex:0 0 35%;width:35%;max-width:35%;height:180px;min-height:180px;max-height:180px;margin:12px 15px 12px 12px;border-radius:9px;overflow:hidden;background:#f8fafc}.project-card--side-by-side.project-card--list .project-card__screenshot img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}.project-card--side-by-side.project-card--list .project-card__info{flex:1;width:auto;max-width:none;padding:9px 30px 12px 9px;overflow:hidden;word-wrap:break-word;overflow-wrap:break-word;height:180px;min-height:180px;max-height:180px;display:flex;flex-direction:column;position:relative;box-sizing:border-box}.project-card--side-by-side.project-card--list .project-card__title{font-size:1.15rem;font-weight:600;margin-bottom:6px;line-height:1.3;white-space:normal;overflow-wrap:anywhere;word-break:break-word;max-width:100%}.project-card--side-by-side.project-card--list .project-card__excerpt{font-size:.9rem;color:#374151;line-height:1.5;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.project-card--side-by-side.project-card--list .project-card__info *,.project-card--side-by-side.project-card--list .project-card__excerpt p,.project-card--side-by-side.project-card--list .project-card__excerpt *{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.project-card--side-by-side.project-card--list .project-card__technologies .project-card__tech-tag{padding:4.5px 9px;font-size:.85rem}.project-card--side-by-side.project-card--list .project-card__actions{position:static;align-self:stretch;width:100%;margin-top:auto}.project-card--side-by-side.project-card--list .project-card__excerpt{flex:1 1 auto;min-height:0;overflow-y:auto}.project-card--side-by-side.project-card--list .project-card__technologies{margin-bottom:9px;flex:0 0 auto;max-width:100%;overflow:hidden;word-wrap:break-word;gap:4.5px}.project-card--side-by-side.project-card--list .project-card__cta-row{margin-right:0;width:100%;max-width:100%}.project-card--side-by-side.project-card--list .project-card__cta-row--two{grid-template-columns:1fr 1fr}.project-card--side-by-side.project-card--list .project-card__cta-row--one{grid-template-columns:1fr}.project-card--side-by-side.project-card--list .project-card__cta-row .project-card__demo-btn{padding:.6rem .9rem;font-size:1rem}body.theme-dark .project-card--side-by-side.project-card--list{border-color:#ffffff1f;box-shadow:0 1px 2px #00000059}@keyframes projects-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}body.theme-dark .skeleton{filter:brightness(.9)}.projects__nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;background:#fffffff2;border:2px solid rgba(15,23,42,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.35rem;font-weight:700;color:#0f172a;cursor:pointer;transition:all .3s ease;backdrop-filter:blur(7.5px);-webkit-backdrop-filter:blur(7.5px);z-index:10}.projects__nav-btn:hover:not(:disabled){background:#fff;border-color:#3b82f680;transform:translateY(-50%) scale(1.1)}.projects__nav-btn:disabled{opacity:.4;cursor:not-allowed;background:#ffffffb3}.projects__nav-btn--prev{left:-60px}.projects__nav-btn--next{right:-60px}.projects__grid{display:grid;grid-template-columns:1fr;gap:clamp(9px,2.5vw,15px)}@media (min-width: 600px){.projects__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 900px){.projects__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1200px){.projects__grid{grid-template-columns:repeat(3,1fr)}}.projects__grid-card{display:flex;flex-direction:column;gap:7.5px;position:relative;border:1px solid rgba(15,23,42,.12);border-radius:9px;padding:9px;transition:border-color .18s ease,box-shadow .18s ease}.projects__grid-thumb{position:relative;width:100%;aspect-ratio:16/9;background:#f8fafc;border-radius:9px;overflow:hidden;display:flex;align-items:center;justify-content:center}.projects__grid-thumb img{width:100%;height:100%;object-fit:cover}.projects__grid-card:hover{border-color:#38bdf8a6;box-shadow:0 0 0 3px #38bdf838}body.theme-dark .projects__grid-card{border-color:#ffffff1f}body.theme-dark .projects__grid-card:hover{border-color:#22c55e;box-shadow:0 0 0 3px #22ff8859}.projects__grid-cta-row{display:grid;grid-template-columns:1fr;gap:7.5px}.projects__grid-cta-row--two{grid-template-columns:1fr 1fr}.projects__grid-cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:.5rem .7rem;border-radius:6px;border:none;background:linear-gradient(135deg,#38bdf8,#0ea5e9);color:#fff;font-weight:700;font-size:1rem;line-height:1.1;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;cursor:pointer;text-decoration:none;transition:filter .16s ease}.projects__grid-cta-btn[type=button],.projects__grid-cta-btn[type=submit],button.projects__grid-cta-btn{-webkit-appearance:none;appearance:none}.projects__grid-cta-btn:hover{filter:brightness(1.05)}.projects__grid-cta-btn--secondary{background:#0f172a0d;color:#0f172a;border:1px solid rgba(15,23,42,.15)}.projects__grid-cta-btn--secondary:hover{background:#0f172a14;border-color:#38bdf866}.projects__grid-cta-ico{width:clamp(10.5px,3.5vw,13.5px);height:clamp(10.5px,3.5vw,13.5px);flex-shrink:0}body.theme-dark .projects__grid-cta-btn--secondary{background:transparent;color:#fff;border:2px solid #94a3b8}body.theme-dark .projects__grid-cta-btn--secondary:hover{background:#22ff8826!important;border-color:#4ade80!important}body.theme-dark .projects__grid-cta-ico{filter:invert(1) brightness(1.2) contrast(1.1)}.projects__grid-title{margin:3px 0 0;font-size:1.05rem;font-weight:700;color:#0f172a}.projects__grid-excerpt{margin:0;color:#374151;font-size:.95rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}body.theme-dark .projects__grid-title{color:#e2e8f0}body.theme-dark .projects__grid-excerpt{color:#cbd5e1}.project-card{background:#fff;border-radius:9px;overflow:hidden;display:flex;flex-direction:column}.project-card__thumb{display:block;aspect-ratio:16/9;background:#0b1220}.project-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}.project-card__body{padding:.5625rem .75rem .75rem}.project-card__title{margin:0 0 .375rem;font-size:.75rem}.project-card__title a{color:#0f172a;text-decoration:none}.project-card__title a:hover{color:#22c55e}.project-card__cta{display:inline-block;margin-top:.25rem;color:#38bdf8;text-decoration:none;font-weight:600}.project-card__cta:hover{text-decoration:underline}@media (max-width: 1024px){.projects{min-height:auto!important;height:auto!important}.projects__view-toggle,.projects__grid{display:none!important}.projects__list,.projects.projects--flow .projects__list{display:block!important}.project-card__title{font-size:clamp(1.1rem,2.5vw,1.3rem);line-height:1.3}.project-card__excerpt{font-size:.9rem;line-height:1.5}.project-card__tech-tag{font-size:.7rem!important;padding:.25rem .5rem!important;cursor:default!important;pointer-events:none!important}.project-card__tech-tag:hover{background:#0f172a14!important;border-color:#0f172a26!important;transform:none!important}.project-card__cta{min-height:44px;padding:.6rem 1rem;font-size:.9rem}.project-card__cta:hover{text-decoration:none}.project-card__demo-btn{min-height:44px;padding:.6rem 1rem;font-size:.9rem}.project-card__demo-btn:hover{background:#22c55e;border-color:#22c55e;transform:none;box-shadow:none}.project-card__demo-btn--secondary:hover{background:#f8fafc;border-color:#e2e8f0;transform:none;box-shadow:none}.project-card__title a:hover,.project-card__excerpt a:hover{color:inherit}}@media (max-width: 1024px){.project-card--side-by-side{height:450px;min-height:450px;max-height:450px}.project-card--side-by-side .project-card__screenshot{height:450px;min-height:450px;max-height:450px;margin:15px 28px 15px 15px}.project-card--side-by-side .project-card__info{padding:18px}.project-card--side-by-side .project-card__info .project-card__title{font-size:1.3rem}}@media (max-width: 1024px){.project-card--side-by-side{flex-direction:column!important;height:300px;min-height:300px;max-height:300px}.project-card--side-by-side .project-card__screenshot{flex:0 0 200px;width:100%;max-width:100%;height:150px;min-height:150px;max-height:150px;margin:12px 12px 0;border-radius:9px}.project-card--side-by-side .project-card__info{flex:1;width:100%;max-width:100%;padding:15px;overflow-y:auto}.projects__nav-btn{width:56px;height:56px;font-size:1.5rem}.projects__nav-btn--prev{left:-70px}.projects__nav-btn--next{right:-70px}.projects.projects--flow .project-card--side-by-side.project-card--list{flex-direction:column!important;height:auto;min-height:0;max-height:none}.projects.projects--flow .project-card--side-by-side.project-card--list .project-card__screenshot{flex:0 0 240px;width:100%;max-width:100%;height:180px;min-height:180px;max-height:180px;margin:16px 16px 0;border-radius:9px}.projects.projects--flow .project-card--side-by-side.project-card--list .project-card__info{flex:1;width:100%;max-width:100%;padding:12px 24px 12px 12px}}body.theme-dark .projects__card{background:#1e293bf2;border-color:#ffffff1f;color:#c7f5d9}body.theme-dark .projects__title{color:#fff;text-shadow:0 0 1px rgba(255,255,255,.1)}body.theme-dark .projects__subtitle{color:#e2e8f0}body.theme-dark .project-card__excerpt{color:#fff}body.theme-dark .project-card__excerpt *,body.theme-dark .project-card__excerpt li{color:inherit}body.theme-dark .project-card__excerpt li::marker{color:#fff}body.theme-dark .project-card__excerpt a{color:#38bdf8}body.theme-dark .project-card__excerpt a:hover{color:#4ade80}body.theme-dark .project-card__info,body.theme-dark .project-card__title{color:#fff}body.theme-dark .project-card--side-by-side .project-card__info,body.theme-dark .project-card--side-by-side .project-card__info *{color:#fff!important}body.theme-dark .project-card__screenshot{background:#0b1220}body.theme-dark .projects__loading,body.theme-dark .projects__error,body.theme-dark .projects__empty{color:#cbd5e1}body.theme-dark .project-card{background:#1e293bf2;color:#c7f5d9}body.theme-dark .project-card__title a{color:#e2e8f0}body.theme-dark .project-card__title a:hover{color:#22c55e}body.theme-dark .project-card__cta{color:#38bdf8}body.theme-dark .project-card__cta:hover{color:#4ade80}body.theme-dark .project-card__technologies .project-card__tech-tag,body.theme-dark .project-card__tech-tag{background:#0b1220bf!important;color:#c7f5d9!important;border-color:#22ff8840!important}body.theme-dark .project-card__technologies .project-card__tech-tag:hover,body.theme-dark .project-card__tech-tag:hover{background:#0b1220f2!important;border-color:#2f86!important;color:#fff!important}body.theme-dark .project-card__technologies .project-card__tech-tag:focus-visible,body.theme-dark .project-card__demo-btn:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}body.theme-dark .project-card__demo-btn{background:#38bdf8e6;color:#fff!important;border-color:#38bdf84d}body.theme-dark .project-card__demo-btn:hover{background:#2f8;border-color:#22ff8880;color:#fff!important}body.theme-dark .project-card__demo-btn--secondary{background:transparent;color:#fff!important;border:2px solid #94a3b8!important;box-shadow:0 1px 2px #0000004d}body.theme-dark .project-card__demo-btn--secondary .project-card__cta-ico{filter:invert(1) brightness(1.2) contrast(1.1)}body.theme-dark .project-card__demo-btn--secondary:hover{background:#22ff8826!important;border-color:#4ade80!important}.projects__credits{text-align:center;margin-top:2rem;padding:1rem 0 0}.projects__credits p{margin:0;color:var(--color-text);font-size:.875rem;opacity:.7;transition:opacity .2s ease}.projects__credits a{color:inherit;text-decoration:none;transition:opacity .2s ease}.projects__credits a:hover{opacity:1}.theme-dark .projects__credits p{color:var(--color-text-dark)}.projects__credits small[style*="$color-muted"]{color:#64748b!important}.theme-dark .projects__credits small[style*="$color-muted"]{color:#94a3b8!important}@media (max-width: 1024px){.projects__credits{margin-top:1.5rem;padding:.75rem 0 0}.projects__credits p{font-size:.75rem}}.hero{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:transparent;scroll-snap-align:start;scroll-margin-top:240px;position:relative;box-sizing:border-box;padding:0 1.5rem;margin-top:0;overflow:hidden}.hero__inner{width:min(960px,92vw);margin:0 auto;padding:0 .9375rem;position:relative;z-index:2;overflow:visible}.hero__grid{display:grid;grid-template-columns:clamp(240px,40vw,390px) 1fr;gap:36px;align-items:center;transform:translateY(0)}.hero__avatar{width:clamp(225px,38vw,390px);height:clamp(225px,38vw,390px);border-radius:15px;overflow:hidden;background:linear-gradient(135deg,#38bdf8,#a78bfa);box-shadow:0 30px 90px #0003;position:relative}.hero__avatar img{width:100%;height:100%;object-fit:cover;display:block}.hero__cursor{position:absolute;right:-9px;top:50%;transform:translateY(-50%);width:4.5px;height:18px;background:#0f172a;animation:blinkCursor .8s steps(2,end) infinite;border-radius:1.5px}.hero__code{font-size:clamp(28px,4.5vw,33px);line-height:1.2;color:#0f172a}.hero__code+.hero__code{margin-top:9px;font-size:clamp(18px,2.6vw,18px);color:#1f2937}.hero__monospace{font-family:JetBrains Mono,monospace}.hero__code .tag{display:inline-block;font-family:JetBrains Mono,monospace;background:#e8eef6;color:#0f172a;padding:4.5px 9px;border-radius:999px;border:1px solid rgba(15,23,42,.18);font-weight:700;font-size:.6em;letter-spacing:.02em;margin:0 7.5px 0 0;vertical-align:middle}.hero__code .caret{margin-left:4.5px;animation:blinkCursor .85s steps(2,end) infinite;color:#0f172a;opacity:.7}.hero__name{color:var(--accent);font-weight:800;text-decoration:none}@keyframes blinkCursor{0%{opacity:1}50%{opacity:0}to{opacity:1}}@media (max-width: 640px){.hero__grid{grid-template-columns:1fr;gap:32px;justify-items:center;text-align:center;transform:translateY(0)}.hero__avatar{width:min(75vw,400px);height:min(75vw,400px)}.hero__code{font-size:clamp(24px,6.5vw,36px);line-height:1.3}.hero__code .tag{font-size:clamp(14px,3.5vw,18px);opacity:.8;font-weight:600}.hero__copy{padding:0 16px}.hero__cursor{width:4px;height:20px;right:-8px}}@media (min-width: 1200px){.hero__grid{transform:translateY(0)}}.hero h1{margin:0 0 .375rem;font-size:clamp(2rem,4vw,2.25rem)}.hero p{margin:0;color:#475569}.hero__bg{position:absolute;inset:0;pointer-events:none}.hero__scroll:after{content:"";position:absolute;inset:-7.5px;border-radius:inherit;border:2px solid rgba(56,189,248,.45);animation:pulse 1.6s ease-out infinite}.hero__scroll:hover{filter:brightness(1.05)}@keyframes blink{0%,to{opacity:1;transform:translate(-50%) translateY(0)}50%{opacity:.35;transform:translate(-50%) translateY(3px)}}@keyframes pulse{0%{transform:scale(1);opacity:.7}to{transform:scale(1.25);opacity:0}}.blob{position:absolute;width:270px;height:270px;border-radius:50%;filter:blur(36px);opacity:.28}.blob--1{left:-45px;top:-30px;background:#ffffffbf}.blob--2{right:-45px;top:30px;background:#ffffff8c}@media (max-width: 1024px){.hero__brand{position:fixed;top:0;left:0;right:0;width:100%;background:#ffffffe6;backdrop-filter:blur(7.5px);-webkit-backdrop-filter:blur(7.5px);border:none;border-bottom:1px solid rgba(15,23,42,.08);border-radius:0;padding:7.5px 20px;box-shadow:0 1px 7.5px #0000000d;display:flex;justify-content:space-between;align-items:center;min-height:50px;z-index:10000}body.theme-dark .hero__brand{background:#1e293be6;border-bottom-color:#ffffff1f;box-shadow:0 1px 7.5px #0000004d}.hero{padding:62px 1.5rem 2rem;scroll-margin-top:62px}.hero__inner{padding:0 .5rem}.hero__code{display:none!important}.hero__mobile-text{display:block;text-align:center}.hero__mobile-text h1{font-size:clamp(2rem,6vw,3rem);font-weight:700;color:#0f172a;margin:0 0 1rem;line-height:1.2}.hero__mobile-text p{font-size:clamp(1.1rem,4.5vw,1.4rem);color:#64748b;line-height:1.5;margin:0;font-weight:400}.hero__mobile-text .hero__name{color:var(--accent);font-weight:800}body.theme-dark .hero__mobile-text h1{color:#e2e8f0!important}body.theme-dark .hero__mobile-text p{color:#94a3b8!important}body.theme-dark .hero__mobile-text .hero__name{color:var(--accent)!important}}@media (min-width: 1025px){.hero__mobile-text{display:none!important}.hero__code{display:block!important}}@media (max-width: 480px){.hero{padding:0 .75rem}.hero__inner{padding:0 .25rem}.hero__avatar{width:min(70vw,350px);height:min(70vw,350px)}.hero__code{font-size:clamp(20px,7vw,28px)}.hero__code .tag{font-size:clamp(9px,4vw,16px)}.hero__cursor{animation-duration:1s}}body.theme-dark .hero__code{color:#e2e8f0}body.theme-dark .hero__code+.hero__code{color:#cbd5e1}body.theme-dark .hero__code .tag{background:#1e293bf2;color:#e2e8f0;border-color:#38bdf84d}body.theme-dark .hero__code .caret{color:#e2e8f0}body.theme-dark .hero p{color:#cbd5e1}body.theme-dark .blob--1{background:#1e293bbf}body.theme-dark .blob--2{background:#1e293b8c}body.theme-dark .hero__brand-link{color:#e2e8f0}body.theme-dark .brand-bracket{color:#94a3b8}body.theme-dark .brand-base{color:#e2e8f0}body.theme-dark .brand-accent{color:#38bdf8}body.theme-dark .brand-caret{color:#e2e8f0}.theme-toggle__btn--hero{display:inline-flex;align-items:center;gap:9px;padding:10.5px 18px;border-radius:6px;font-size:.797rem;border:1px solid rgba(15,23,42,.1);background:linear-gradient(180deg,#ffffffb8,#ffffff9e);color:#0f172a;font-weight:800;box-shadow:inset 0 1px #ffffffb3,0 7.5px 22.5px #0f172a1a,0 1px #0f172a0f}body.theme-dark .theme-toggle__btn--hero{background:linear-gradient(180deg,#0b1220d9,#0b1220c7);color:#e2e8f0;border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff0f,0 7.5px 22.5px #00000059,0 1px #ffffff0f}.theme-toggle{position:relative}.theme-toggle__btn{display:inline-block;padding:4.5px 7.5px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#0f172a99;color:#fff;cursor:pointer;font-weight:800;font-size:9px}.theme-toggle__btn:hover{background:#0f172ae6}@media (min-width: 1025px){.hero__brand{position:fixed;top:12px;left:12px;z-index:9001;background:transparent;width:auto;min-height:auto;padding:4.5px 0;border:none;box-shadow:none}}.hero__brand-link{font-family:JetBrains Mono,monospace;font-weight:800;text-decoration:none;font-size:clamp(9px,1.4vw,13.5px);line-height:1;letter-spacing:.02em;color:#0f172a;padding:4.5px 0}.brand-bracket{color:#94a3b8}.brand-base{color:#0f172a}.brand-accent{color:#38bdf8}.brand-caret{color:#0f172a;opacity:.6;animation:blinkCursor .9s steps(2,end) infinite}.page-scroll{display:flex;flex-direction:column;min-height:100vh;scroll-behavior:smooth;scroll-snap-type:y proximity;position:relative;z-index:1}.page-scroll>section{min-height:100vh;width:100%;scroll-snap-align:start;flex:0 0 auto;transition:all .3s ease;position:relative}@supports (-webkit-appearance: none){.page-scroll{scroll-snap-type:none!important;-webkit-scroll-snap-type:none!important}.page-scroll>section{scroll-snap-align:none!important;scroll-snap-stop:normal!important;-webkit-scroll-snap-align:none!important;-webkit-scroll-snap-stop:normal!important}}@media (max-width: 1024px){.page-scroll{scroll-snap-type:y proximity}.page-scroll>section{min-height:100vh;-webkit-overflow-scrolling:touch}}.section-base{min-height:100vh;width:100%;display:flex;align-items:flex-start;justify-content:center;background:transparent;scroll-snap-align:start;scroll-margin-top:60px;position:relative;padding:90px 0 4vh;box-sizing:border-box;z-index:1}.section-inner{width:min(960px,92vw);margin:0 auto;padding:15px .9375rem;position:relative;z-index:2;overflow:visible}.section-card{width:100%;margin:0 auto;background:#fffffff2;border:1px solid rgba(15,23,42,.12);border-radius:12px;overflow:visible;backdrop-filter:blur(7.5px) saturate(140%);-webkit-backdrop-filter:blur(7.5px) saturate(140%);padding:clamp(18px,3.5vw,36px);position:relative}.section-header{text-align:center;margin-bottom:clamp(9px,2.5vw,18px)}.section-title{margin:0 0 6px;font-size:clamp(2rem,4vw,3.2rem);font-weight:900;color:#0f172a;line-height:1.1}.section-subtitle{margin:0;color:#64748b;font-size:clamp(.95rem,1.7vw,1.15rem);font-weight:600}.section-content{width:100%}.section-loading,.section-error,.section-empty{text-align:center;padding:clamp(18px,3.5vw,36px);color:#64748b}body.theme-dark .section-card{background:#1e293bf2;border-color:#ffffff1f;color:#e2e8f0}body.theme-dark .section-title{color:#e2e8f0}body.theme-dark .section-subtitle,body.theme-dark .section-loading,body.theme-dark .section-error,body.theme-dark .section-empty{color:#cbd5e1}.skills{min-height:100vh;width:100%;display:flex;align-items:flex-start;justify-content:center;background:transparent;scroll-snap-align:start;scroll-margin-top:60px;position:relative;padding:90px 0 4vh;box-sizing:border-box;z-index:1}.skills__inner{width:min(960px,92vw);margin:0 auto;padding:0 .9375rem;position:relative;z-index:2;overflow:visible}.skills__header{text-align:center;margin-bottom:clamp(9px,2.5vw,18px)}.skills__title{margin:0 0 6px;font-size:clamp(2rem,4vw,3.2rem);font-weight:900;color:#0f172a;line-height:1.1}.skills__subtitle{margin:0;color:#64748b;font-size:clamp(.95rem,1.7vw,1.15rem);font-weight:600}.skills__content{display:flex;flex-direction:column;gap:30px}.skills__top-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.skills__bottom-row{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;width:100%;max-width:600px;margin:0 auto;justify-content:center}.skill-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:21px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;display:flex;flex-direction:column}.skill-card--standard{height:195px;min-height:195px;max-height:195px}.skill-card--special{height:210px;min-height:210px;max-height:210px}@media (hover: hover){.skill-card:hover{transform:translateY(-3px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d,0 0 12px #3b82f64d,0 0 24px #3b82f626}}.skill-card__title{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:9px;display:flex;align-items:center;gap:9px}.skill-card__title .ico{width:21px;height:21px;color:#3b82f6}.skill-card__description{font-size:.95rem;line-height:1.6;color:#374151;margin-bottom:12px;flex-grow:1;overflow:hidden;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;max-height:54px}.skill-card__description strong{font-weight:700;color:#1f2937}.skill-card__list{list-style:none;padding:0;margin:0 0 15px;flex-grow:1;overflow:hidden;max-height:90px;display:flex;flex-direction:column;justify-content:flex-start}.skill-card__list li{color:#374151;position:relative;padding:1px 0 1px 15px;font-size:1rem;line-height:1.2;margin:0}.skill-card__list li:before{content:"•";position:absolute;left:3px;color:#0f172a;font-weight:700;font-size:1.2rem}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;flex-shrink:0;padding-top:9px;border-top:1px solid rgba(0,0,0,.05)}.animated-border{background:#ffffffa6;color:#0f172a;padding:9px 13.5px;border-radius:6px;font-size:.875rem;font-weight:600;border:1px solid rgba(15,23,42,.08);border-bottom:1.5px solid rgba(15,23,42,.15);transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}@media (hover: hover){.animated-border:hover{background:#fffffff2;border-bottom:2.25px solid rgba(15,23,42,.3);transform:translateY(-2.25px);box-shadow:0 6px 18.75px #00000026}}body.theme-dark .skills{--sb-track-bg: rgba(34,197,94,.2);--sb-fill-bg: rgba(34,197,94,.35);--sb-thumb-bg: linear-gradient(180deg, #22c55e, #10b981)}body.theme-dark .skills__title{color:#fff;text-shadow:0 0 1px rgba(255,255,255,.1)}body.theme-dark .skills__subtitle{color:#e2e8f0}body.theme-dark .skill-card{background:#1e293bf2;border-color:#ffffff1f;color:#c7f5d9}body.theme-dark .skill-card__title{color:#fff;text-shadow:0 0 1px rgba(255,255,255,.1)}body.theme-dark .skill-card__description{color:#89cda3}body.theme-dark .skill-card__description strong{font-weight:700;color:#f1f5f9}body.theme-dark .skill-card__list li{color:#89cda3}body.theme-dark .skill-card__list li:before{color:#fff!important}body.theme-dark .animated-border{background:#0b1220b3;color:#c7f5d9;border-color:#22ff8840;border-bottom:2px solid rgba(34,255,136,.3)}@media (hover: hover){body.theme-dark .skill-card:hover{box-shadow:0 7.5px 11.25px -2.25px #0000001a,0 3px 4.5px -1.5px #0000000d,0 0 9px #22c55e4d,0 0 18px #22c55e26}body.theme-dark .animated-border:hover{background:#0b1220f2;border-bottom:2.25px solid rgba(34,255,136,.4);transform:translateY(-2.25px);box-shadow:0 6px 18.75px #22ff8826}}@media (max-width: 1024px){.skills{min-height:auto!important;height:auto!important}.skills__scrollbar{display:none!important}.skills__viewport.is-adaptive{overflow-y:visible;height:auto}.skills__inner{height:auto!important;overflow:visible!important}.skills__top-row,.skills__bottom-row{grid-template-columns:1fr}.skill-card{padding:15px;min-height:150px}.skill-card:hover{transform:none;box-shadow:none}.skill-card{min-height:33px}.skill-card .skill-card__description{line-height:1.6;font-size:1rem}.skill-card .skill-card__list li{line-height:1.3;font-size:.9rem}.skill-card .tags{gap:4.5px;padding-top:7.5px}.skill-card .animated-border{padding:6px 9px;font-size:.8rem;cursor:default!important;pointer-events:none!important}.skill-card .animated-border:hover{background:#ffffffa6!important;border-bottom:2px solid rgba(15,23,42,.15)!important;transform:none!important;box-shadow:none!important}}.skills--adaptive .skills__inner{height:calc(96vh - 90px);overflow:visible;display:flex;flex-direction:column}.skills--adaptive .skills__content{flex:1 1 auto;min-height:0;overflow:visible;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:15px 0 24px;position:relative}.skills--adaptive .skills__viewport.is-adaptive{height:100%;overflow-y:auto;box-sizing:border-box;padding:6px 15px 6px 14px;scrollbar-width:none;-ms-overflow-style:none}.skills--adaptive .skills__viewport.is-adaptive::-webkit-scrollbar{display:none;width:0;height:0}.skills--adaptive .skills__scrollbar{position:absolute;top:50%;right:-7.5px;transform:translateY(-50%);height:45%;width:4.5px;background:#94a3b833;border-radius:999px;opacity:0;transition:opacity .2s ease;pointer-events:none;z-index:3}.skills--adaptive .skills__scrollbar.show{opacity:.9}.skills--adaptive .skills__scrollbar-fill{position:absolute;top:0;left:0;width:100%;height:20%;background:#94a3b859;border-radius:999px}.skills--adaptive .skills__scrollbar-thumb{position:absolute;left:0;width:100%;height:10%;top:0%;background:linear-gradient(180deg,#3b82f6,#8b5cf6);opacity:.8;border-radius:999px;box-shadow:0 0 4.5px #3b82f640;will-change:top,height}.skills--adaptive .custom-scrollbar{display:none;position:absolute;right:4.5px;top:50%;transform:translateY(-50%);height:50%;width:4.5px;background:transparent;border-radius:999px;opacity:0;transition:opacity .2s ease;pointer-events:none;z-index:3}.skills--adaptive .custom-scrollbar.show{opacity:.9}.skills--adaptive .custom-scrollbar .fill{position:absolute;left:0;top:0;width:100%;background:#94a3b840;border-radius:999px}.skills--adaptive .custom-scrollbar .thumb{position:absolute;left:0;width:100%;background:linear-gradient(180deg,#3b82f6,#8b5cf6);opacity:.75;border-radius:999px;box-shadow:0 0 4.5px #3b82f640;will-change:transform,height}.skills--adaptive .skills__top-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-auto-flow:row dense;gap:24px}.skills--adaptive .skills__bottom-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.skills--adaptive .skill-card--standard{height:auto;min-height:195px;max-height:none}.skills--adaptive .skill-card--special{height:auto;min-height:210px;max-height:none}.skills--adaptive .skill-card__description{overflow:visible;display:block;line-clamp:unset;-webkit-line-clamp:unset;-webkit-box-orient:unset;text-overflow:initial;max-height:none;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.skills--adaptive .skill-card__list,.skills--adaptive .tags{max-height:none}.skills--adaptive .tags .animated-border{white-space:normal;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.skills--adaptive.count-4 .skills__top-row{grid-template-columns:repeat(3,1fr)}.skills--adaptive.count-4 .skills__top-row>.skill-card:nth-child(4){grid-column:1/-1}.skills--adaptive.count-5 .skills__top-row{grid-template-columns:repeat(6,1fr);grid-auto-flow:row dense}.skills--adaptive.count-5 .skills__top-row>.skill-card:nth-child(-n+3){grid-column:span 2}.skills--adaptive.count-5 .skills__top-row>.skill-card:nth-child(n+4){grid-column:span 3}@media (max-width: 900px){.skills--adaptive.count-4 .skills__top-row,.skills--adaptive.count-5 .skills__top-row{grid-template-columns:1fr;gap:12px}.skills--adaptive.count-4 .skills__top-row>.skill-card,.skills--adaptive.count-5 .skills__top-row>.skill-card{grid-column:auto}}@media (max-width: 900px){.skills--adaptive .skills__top-row{grid-template-columns:1fr;gap:12px;grid-auto-columns:1fr}.skills--adaptive .skills__top-row>.skill-card{grid-column:auto}.skills--adaptive.count-4 .skills__top-row>.skill-card:nth-child(4){grid-column:auto}.skills--adaptive.count-5 .skills__top-row>.skill-card:nth-child(-n+3){grid-column:auto}.skills--adaptive.count-5 .skills__top-row>.skill-card:nth-child(n+4){grid-column:auto}}.about{min-height:100vh;width:100%;display:flex;align-items:flex-start;justify-content:center;background:transparent;scroll-snap-align:start;scroll-margin-top:60px;position:relative;padding:90px 0 4vh;box-sizing:border-box;z-index:1}.about__inner{width:min(960px,92vw);margin:0 auto;padding:0 .9375rem;position:relative;z-index:2;overflow:visible}.about__content{width:100%;display:grid;grid-template-columns:1fr;gap:0;align-items:center}.about__content--centered{display:grid;grid-template-columns:1fr;gap:0;align-items:center}.about__card{width:100%;margin:0 auto;background:#fffffff2;border:1px solid rgba(15,23,42,.12);border-radius:12px;overflow:visible;backdrop-filter:blur(7.5px) saturate(140%);-webkit-backdrop-filter:blur(7.5px) saturate(140%);padding:clamp(18px,3.5vw,36px);position:relative}.about__header{text-align:center;margin-bottom:clamp(9px,2.5vw,18px)}.about__title{margin:0 0 6px;font-family:Poppins,sans-serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:700;color:#0f172a;line-height:1.1;letter-spacing:-.01em}.about__subtitle{margin:0;font-family:Poppins,sans-serif;color:#64748b;font-size:clamp(.95rem,1.7vw,1.15rem);font-weight:500;letter-spacing:.01em}.about__body{width:100%;display:grid;grid-template-columns:1fr;gap:clamp(6px,1.5vw,12px);align-items:start}.about__body--grid{display:grid;grid-template-columns:1fr;gap:clamp(6px,1.5vw,12px);align-items:start}.about__image{width:100%;max-width:300px;margin:0 auto}.about__image img{width:100%;height:auto;border-radius:9px}.about__text{width:100%}.about__content-text{font-family:Poppins,sans-serif;font-size:1.125rem;line-height:1.7;color:#374151;font-weight:400;letter-spacing:.01em}.about__content-text p{margin-bottom:1rem}.about__content-text h3,.about__content-text h4{margin:1.5rem 0 .5rem;font-family:Poppins,sans-serif;color:#0f172a;font-weight:600;letter-spacing:.01em}.about__content-text a{color:#2563eb;text-decoration:underline;font-weight:500;transition:all .2s ease}.about__content-text a:hover{color:#1d4ed8;text-decoration:none}.wave-emoji{display:inline-block;animation:wave 2s ease-in-out infinite;transform-origin:70% 70%}@keyframes wave{0%,to{transform:rotate(0)}10%,30%{transform:rotate(-10deg)}20%{transform:rotate(12deg)}40%{transform:rotate(9deg)}50%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}70%{transform:rotate(-4deg)}80%{transform:rotate(2deg)}90%{transform:rotate(-1deg)}}.about__skills{margin-top:2rem}.about__skills h3{margin-bottom:1rem;color:#0f172a;font-size:1.25rem}.about__skills-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.about__skill-tag{background:#f3f4f6;color:#374151;padding:.5rem 1rem;border-radius:15px;font-size:.875rem;font-weight:600;border:1px solid #e5e7eb;transition:all .2s ease;cursor:pointer}.about__skill-tag:hover{background:#3b82f6;color:#fff;border-color:#3b82f6;transform:translateY(-1.5px);box-shadow:0 3px 9px #3b82f64d}.about__cta{margin-top:2rem;text-align:center}.about__cta-btn{display:inline-flex;align-items:center;gap:.75rem;background:#3b82f6;color:#fff;padding:1rem 2.5rem;border-radius:9px;font-weight:600;font-size:1.125rem;text-decoration:none;transition:all .3s ease;border:none;cursor:pointer;min-width:150px;justify-content:center;box-shadow:0 1.5px 6px #3b82f633}.about__cta-btn:hover{background:#2563eb;transform:translateY(-2.25px);box-shadow:0 6px 15px #3b82f666;scale:1.02}.about__loading,.about__error{text-align:center;padding:clamp(18px,3.5vw,36px);color:#64748b}@media (min-width: 768px){.about__body.has-image{grid-template-columns:1fr 1fr;gap:2rem;align-items:center}.about__body.has-image{text-align:left}.about__image{order:2}.about__content{order:1}.about__skills-list{justify-content:flex-start}}@media (max-width: 1024px){.about{min-height:auto!important;height:auto!important}.about__card{padding:clamp(15px,3vw,24px)}.about__title{font-size:clamp(1.8rem,3.5vw,2.5rem);line-height:1.2}.about__subtitle{font-size:clamp(.9rem,1.5vw,1rem)}.about__content-text{font-size:1rem;line-height:1.6}.about__content-text p{margin-bottom:.8rem}.about__content-text h3,.about__content-text h4{margin:1.2rem 0 .4rem;font-size:1.1rem}.about__skills h3{font-size:1.1rem;margin-bottom:.8rem}.about__body{gap:clamp(6px,2vw,12px)}.about__header{margin-bottom:clamp(6px,2vw,12px)}}body.theme-dark .about__card{background:#1e293bf2;border-color:#ffffff1f;color:#c7f5d9}body.theme-dark .about__title{color:#fff;text-shadow:0 0 1px rgba(255,255,255,.1)}body.theme-dark .about__subtitle{color:#e2e8f0}body.theme-dark .about__content-text{color:#f1f5f9}body.theme-dark .about__content-text h3,body.theme-dark .about__content-text h4{color:#fff}body.theme-dark .about__content-text a{color:#22c55e;text-decoration:underline}body.theme-dark .about__content-text a:hover{color:#16a34a;text-decoration:none}body.theme-dark .about__loading,body.theme-dark .about__error{color:#89cda3}body.theme-dark .about__skill-tag{background:#1e293bf2;color:#89cda3;border-color:#ffffff1f}body.theme-dark .about__skill-tag:hover{background:#22c55e;color:#fff;border-color:#22c55e}body.theme-dark .about__cta-btn{background:#22c55e;color:#fff;box-shadow:0 2px 8px #22c55e33}body.theme-dark .about__cta-btn:hover{background:#16a34a;box-shadow:0 8px 20px #22c55e66}.terminal{position:fixed;left:0;right:0;bottom:0;z-index:9999}@media (max-width: 768px){.terminal{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}}.terminal--dock{transform:translateZ(0)}.terminal__dockwrap{position:relative;width:100%;background:transparent;display:flex;flex-direction:column;height:44vh}.terminal__shellbar{display:flex;align-items:center;gap:9px;padding:6px 9px;width:100%;margin:0;background:#111827;color:#cbd5e1;border-radius:0;border-top:1px solid rgba(255,255,255,.06);border-left:0;border-right:0;border-bottom:1px solid rgba(0,0,0,.8);font-family:JetBrains Mono,monospace;height:27px;opacity:1}.shellbar__group{display:flex;align-items:center;gap:6px}.shellbar__title{font-size:.85rem;color:#e2e8f0;letter-spacing:.01em}.shellbar__sep{width:6px;height:1px;background:transparent}.shellbar__btn{background:transparent;border:0;color:inherit;cursor:pointer;font-size:12px;line-height:1;display:grid;place-items:center}.shellbar__btn--icon .icon{display:block;width:12px;height:12px}.shellbar__spacer{flex:1}.shellbar__pill,.terminal__resize{display:none}.terminal__inner{width:100%;margin:0;border-radius:0;overflow:hidden;border-top:0;border-left:0;border-right:0;border-bottom:1px solid rgba(0,0,0,.6);background:#000;box-shadow:none;display:flex;flex-direction:column;min-height:0;flex:1}.terminal__head{display:grid;place-items:center}.terminal__head-inner{width:min(900px,92vw)}.terminal__heading{margin:0 0 .25rem;font-size:1.1rem;letter-spacing:.12em;font-weight:800;color:#0f172a}.terminal__hint{margin:0 0 .5rem;font-size:.9rem;color:#475569}.terminal__chips{display:flex;gap:6px;flex-wrap:wrap}.term-chip{padding:4.5px 7.5px;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:#fff;color:#0f172a;cursor:pointer}.term-chip.is-active{background:#0f172a;color:#fff}.terminal__header{display:flex;align-items:center;gap:6px;padding:6px 7.5px;background:linear-gradient(180deg,#0f172a14,#0f172a08);border-bottom:1px solid rgba(15,23,42,.08)}.terminal__close{margin-left:auto;background:transparent;border:0;font-size:16.5px;line-height:1;color:#0f172a;cursor:pointer;opacity:.6}.terminal__close:hover{opacity:1}.dot{width:7.5px;height:7.5px;border-radius:50%;display:inline-block}.dot--red{background:#ff5f56}.dot--yellow{background:#ffbd2e}.dot--green{background:#27c93f}.terminal__title{margin-left:auto;font-size:.85rem;color:#475569}.terminal__body{padding:0;font-family:JetBrains Mono,monospace;color:#e2e8f0;overflow:hidden;flex:1;min-height:0;display:flex}.terminal__xterm{flex:1;min-height:0;background:#000;opacity:1;width:100%;height:100%}.terminal__xterm .xterm-screen{filter:none}.xterm-char-measure-element,.xterm-composition-view,.xterm-accessibility{visibility:hidden!important;position:absolute!important;left:-9999px!important;top:-9999px!important;opacity:0!important;pointer-events:none!important}.xterm-helper-textarea{position:fixed!important;width:0!important;height:0!important;left:-100px!important;top:-100px!important;opacity:0!important;z-index:-1!important;border:none!important;padding:0!important;margin:0!important;overflow:hidden!important}.terminal__prompt{display:flex;align-items:center;gap:7.5px;margin-bottom:6px}.terminal__buttons{display:flex;gap:6px;flex-wrap:wrap}.term-btn{display:none}.terminal__inputwrap{position:relative;flex:1;display:flex;align-items:center}.terminal__input{width:100%;margin-left:7.5px;font-family:inherit;font-size:.95rem;padding:4.5px 7.5px;border-radius:6px;border:1px solid rgba(15,23,42,.12);background:#ffffffe6;color:#0f172a}.terminal__ghost{display:none}.terminal__output{padding-top:4.5px}.term-title{font-weight:800;margin-bottom:4.5px}.term-lines{margin:0;padding-left:.9rem}.term-lines li{margin:.25rem 0;color:#334155;cursor:default}.term-lines li.is-sel{background:#0f172a0f;border-radius:4.5px;padding:1.5px 3px}.term-actions{margin-top:.45rem;display:flex;gap:6px}body.theme-dark .terminal__shellbar{background:#0b1220d9;border-color:#ffffff1a}body.theme-dark .terminal__inner{background:#0b1220;border-color:#ffffff14}body.theme-dark .terminal__heading{color:#2f8}body.theme-dark .terminal__hint{color:#89cda3}body.theme-dark .term-chip{background:#22ff8814;color:#c7f5d9;border-color:#22ff8840}body.theme-dark .term-chip.is-active{background:#2f8;color:#0b1220}body.theme-dark .terminal__close{color:#c7f5d9}body.theme-dark .terminal__title{color:#89cda3}body.theme-dark .terminal__body,body.theme-dark .term-lines li{color:#c7f5d9}body.theme-dark .term-lines li.is-sel{background:#22ff881f}body.theme-dark .terminal__input{background:#0b1220e6;color:#c7f5d9;border-color:#ffffff1f}body.theme-dark .terminal__ghost{color:#89cda3}.fullscreen-preview-overlay{position:fixed;inset:0;z-index:10001;background:#fff}.fullscreen-preview__iframe{width:100%;height:100%;border:none;background:#fff}.contact-form-container{margin:2rem 0;width:100%}.contact-form__toggle{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:#3b82f61a;border:2px solid rgba(59,130,246,.2);border-radius:12px;color:#3b82f6;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease;text-decoration:none;width:100%;justify-content:center}.contact-form__toggle:hover{background:#3b82f626;border-color:#3b82f64d;transform:translateY(-1px)}.contact-form__toggle:active{transform:translateY(0)}.contact-form__toggle-icon{font-size:1.25rem;line-height:1}.contact-form__toggle-text{font-size:1rem;font-weight:600}.contact-form__wrapper{overflow:hidden;margin-top:1rem}.contact-form{background:#fffffff2;border:1px solid rgba(15,23,42,.12);border-radius:16px;padding:2rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;backdrop-filter:blur(4px) saturate(110%);-webkit-backdrop-filter:blur(4px) saturate(110%)}.contact-form__header{margin-bottom:2rem;text-align:center}.contact-form__title{font-size:1.5rem;font-weight:700;color:var(--color-text);margin:0 0 .5rem;line-height:1.2}.contact-form__description{color:var(--color-text-secondary);font-size:1rem;margin:0;line-height:1.5}.contact-form__fields{display:flex;flex-direction:column;gap:1.5rem}.contact-form__field{display:flex;flex-direction:column;gap:.5rem}.contact-form__label{font-weight:600;color:var(--color-text);font-size:.875rem;margin:0}.contact-form__input,.contact-form__textarea{padding:.75rem 1rem;border:2px solid rgba(15,23,42,.1);border-radius:8px;font-size:1rem;font-family:inherit;background:#fffc;color:var(--color-text);transition:all .2s ease;width:100%;box-sizing:border-box}.contact-form__input:focus,.contact-form__textarea:focus{outline:none;border-color:#3b82f6;background:#fffffff2;box-shadow:0 0 0 3px #3b82f61a}.contact-form__input:disabled,.contact-form__textarea:disabled{opacity:.6;cursor:not-allowed;background:#0f172a0d}.contact-form__input::placeholder,.contact-form__textarea::placeholder{color:var(--color-text-secondary);opacity:.7}.contact-form__textarea{resize:vertical;min-height:120px;font-family:inherit;line-height:1.5}.contact-form__recaptcha{display:flex;justify-content:center;margin:1rem 0}.contact-form__actions{display:flex;justify-content:center;margin-top:1rem}.contact-form__submit{background:#3b82f6;color:#fff;border:none;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:140px}.contact-form__submit:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.contact-form__submit:active:not(:disabled){transform:translateY(0)}.contact-form__submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.contact-form__status{padding:1rem;border-radius:8px;font-weight:500;text-align:center;margin-top:1rem}.contact-form__status--success{background:#10b9811a;color:#059669;border:1px solid rgba(16,185,129,.2)}.contact-form__status--error{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}body.theme-dark .contact-form{background:#0b1220f2;border-color:#ffffff1f;color:#e2e8f0;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}body.theme-dark .contact-form__toggle{background:#3b82f626;border-color:#3b82f64d;color:#60a5fa}body.theme-dark .contact-form__toggle:hover{background:#3b82f633;border-color:#3b82f666}body.theme-dark .contact-form__input,body.theme-dark .contact-form__textarea{background:#0b1220cc;border-color:#ffffff1a;color:#e2e8f0}body.theme-dark .contact-form__input:focus,body.theme-dark .contact-form__textarea:focus{border-color:#60a5fa;background:#0b1220f2;box-shadow:0 0 0 3px #60a5fa1a}body.theme-dark .contact-form__input:disabled,body.theme-dark .contact-form__textarea:disabled{background:#ffffff0d}body.theme-dark .contact-form__submit{background:#3b82f6}body.theme-dark .contact-form__submit:hover:not(:disabled){background:#2563eb}@media (max-width: 768px){.contact-form{padding:1.5rem}.contact-form__toggle{padding:.875rem 1.25rem;font-size:.875rem}.contact-form__title{font-size:1.25rem}.contact-form__description{font-size:.875rem}}.imprint-page{min-height:100vh;background:transparent;color:#0f172a}.imprint-header{position:sticky;top:0;z-index:100;background:transparent;border-bottom:1px solid rgba(15,23,42,.12);backdrop-filter:blur(3px) saturate(110%);-webkit-backdrop-filter:blur(3px) saturate(110%)}.imprint-header__inner{max-width:750px!important;margin:0 auto!important;padding:1rem clamp(18px,3.5vw,36px)!important;display:flex;justify-content:space-between;align-items:center}.imprint-header__logo .imprint-header__logo-link{text-decoration:none;font-family:monospace;font-weight:700;font-size:1.1rem;transition:all .2s ease}.imprint-header__logo .imprint-header__logo-link:hover{transform:scale(1.05)}.imprint-header__back-btn{display:inline-flex;align-items:center;gap:10.5px;padding:12px 19.5px;border-radius:6px;background:linear-gradient(180deg,#ffffffb8,#ffffff9e);color:#0f172a;text-decoration:none;font-weight:800;font-size:1rem;border:1px solid rgba(15,23,42,.1);backdrop-filter:saturate(120%) blur(3px);-webkit-backdrop-filter:saturate(120%) blur(3px);cursor:pointer;transition:all .2s ease}.imprint-header__back-btn:hover{background:linear-gradient(180deg,#ffffffd9,#ffffffb3);transform:translateY(-1.5px) scale(1.03);box-shadow:0 9px 19.5px #0f172a1f;color:#0f172a}.imprint-header__back-btn svg{width:15px;height:15px}.imprint-main{padding:2rem 0}.imprint.section-base{padding:2rem 0 4vh 0}.imprint{min-height:100vh;width:100%;display:flex;align-items:flex-start;justify-content:flex-start;background:transparent;position:relative;padding:2rem 0 4vh 0;box-sizing:border-box;z-index:1}.imprint__inner{width:100%!important;max-width:500px!important;margin:0 auto!important;padding:0 2.25rem!important;position:relative!important;z-index:2!important;overflow:visible!important}.imprint__content{width:100%;margin:0}.imprint__card{width:100%!important;max-width:750px!important;margin:0 auto!important;background:#fffffff2;border:1px solid rgba(15,23,42,.12);border-radius:12px;padding:clamp(18px,3.5vw,36px);box-shadow:0 3px 4.5px -1px #0000001a,0 1.5px 3px -1px #0000000f;backdrop-filter:blur(3px) saturate(110%);-webkit-backdrop-filter:blur(3px) saturate(110%)}.imprint__header{text-align:center;margin-bottom:2rem}.imprint__title{font-size:2rem;font-weight:700;color:#0f172a;margin:0}.imprint__body{margin-top:1rem}.imprint__text{line-height:1.7}.imprint__content-text h3{font-size:1.5rem;font-weight:600;color:#0f172a;margin:2rem 0 1rem}.imprint__content-text h3:first-child{margin-top:0}.imprint__content-text p{margin:1rem 0;color:#64748b}.imprint__content-text p strong{color:#0f172a;font-weight:600}.imprint__content-text a{color:#38bdf8;text-decoration:none}.imprint__content-text a:hover{text-decoration:underline}@media (max-width: 768px){.imprint-header__inner{padding:.75rem 1rem}.imprint-header__back-btn{display:none!important}.imprint__inner{padding:0 .75rem}.imprint__card{padding:1.5rem 1rem;margin:0}.imprint__title{font-size:1.75rem;margin-bottom:1rem}.imprint__content-text h3{font-size:1.1rem;margin:1.25rem 0 .5rem}.imprint__content-text p{margin:.75rem 0;font-size:.9rem;line-height:1.5}}.theme-dark .imprint-header{background:transparent;border-bottom-color:#ffffff1f}.theme-dark .imprint-header .imprint-header__logo-link span:nth-child(1){color:#94a3b8!important}.theme-dark .imprint-header .imprint-header__logo-link span:nth-child(2){color:#e2e8f0!important}.theme-dark .imprint-header .imprint-header__logo-link span:nth-child(3){color:#38bdf8!important}.theme-dark .imprint-header .imprint-header__logo-link span:nth-child(4){color:#94a3b8!important}.theme-dark .imprint-header .imprint-header__back-btn{background:#1e293bf2;border-color:#ffffff1f;color:#e2e8f0}.theme-dark .imprint-header .imprint-header__back-btn:hover{background:#1e293bfa;border-color:#22c55e66;box-shadow:0 9px 19.5px #22c55e26;color:#e2e8f0}.theme-dark .imprint__card{background:#1e293bf2;border-color:#ffffff1f;color:#e2e8f0}.desktop-only{display:block}.mobile-only{display:none}@media (max-width: 768px){.desktop-only{display:none!important}.mobile-only{display:block!important}}.imprint__credits{text-align:center;padding:2rem 0}.imprint__credits p{margin:0;color:#0f172a;font-size:.875rem;opacity:.7;transition:opacity .2s ease}.imprint__credits a{color:inherit;text-decoration:none;transition:opacity .2s ease}.imprint__credits a:hover{opacity:1}.theme-dark .imprint__credits p{color:#e2e8f0}.imprint__credits small[style*="#64748b"]{color:#64748b!important}.theme-dark .imprint__credits small[style*="#64748b"]{color:#94a3b8!important}@media (max-width: 768px){.imprint__credits{padding:1rem 0}.imprint__credits p{font-size:.75rem}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:absolute;top:-40px;left:6px;background:#000;color:#fff;padding:8px 16px;text-decoration:none;z-index:10000;border-radius:4px;font-weight:600;transition:top .3s ease}.skip-link:focus{top:6px;outline:2px solid #fff;outline-offset:2px}.skip-link:hover{background:#333}.focus-trap:focus{outline:2px solid #0066cc;outline-offset:2px}@media (prefers-contrast: high){.btn{border:2px solid currentColor}.card{border:1px solid currentColor}.text-muted{color:currentColor!important;opacity:.8}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.smooth-scroll{scroll-behavior:auto!important}}.focus-visible{outline:2px solid #0066cc;outline-offset:2px}.btn:focus-visible{outline:2px solid #0066cc;outline-offset:2px}.btn:focus:not(:focus-visible){outline:none}a:focus-visible{outline:2px solid #0066cc;outline-offset:2px;border-radius:2px}a:focus:not(:focus-visible){outline:none}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #0066cc;outline-offset:2px}input:focus:not(:focus-visible),textarea:focus:not(:focus-visible),select:focus:not(:focus-visible){outline:none}[aria-live]{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.carousel[aria-live=polite]{position:relative}.carousel-slide[aria-hidden=true]{visibility:hidden;position:absolute;top:0;left:0}.carousel-slide[aria-selected=true]{visibility:visible;position:relative}.menu[aria-expanded=false]{display:none}.menu[aria-expanded=true]{display:block}.menu-item:focus{background-color:#0000001a;outline:2px solid #0066cc;outline-offset:-2px}.menu-item[aria-selected=true]{background-color:#0000001a}.dialog[aria-hidden=true]{display:none}.dialog[aria-hidden=false]{display:block}.btn[aria-pressed=true]{background-color:#06c;color:#fff}.btn[aria-expanded=true]:after{content:"▼";margin-left:8px}.btn[aria-expanded=false]:after{content:"▶";margin-left:8px}a[target=_blank]:after{content:" (opens in new tab)";position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.form-group{position:relative}.form-group .form-label{display:block;margin-bottom:4px;font-weight:600}.form-group .form-control{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px}.form-group .form-control:focus{border-color:#06c;box-shadow:0 0 0 2px #06c3}.form-group .form-control[aria-invalid=true]{border-color:#dc3545}.form-group .form-error{color:#dc3545;font-size:.875em;margin-top:4px}.form-group .form-help{color:#666;font-size:.875em;margin-top:4px}.required:after{content:" *";color:#dc3545}.has-error .form-control{border-color:#dc3545}.has-error .form-label{color:#dc3545}.has-success .form-control{border-color:#28a745}.has-success .form-label{color:#28a745}.loading{position:relative;pointer-events:none}.loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid #f3f3f3;border-top:2px solid #0066cc;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-color-scheme: dark){.skip-link{background:#fff;color:#000}.skip-link:hover{background:#f0f0f0}.focus-visible{outline-color:#66b3ff}.btn:focus-visible{outline-color:#66b3ff}a:focus-visible{outline-color:#66b3ff}input:focus-visible,textarea:focus-visible,select:focus-visible{outline-color:#66b3ff}}@media print{.skip-link,.sr-only{display:none!important}a[href]:after{content:" (" attr(href) ")"}a[href^="#"]:after{content:""}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.focus-visible{outline-width:1px}}@media (max-width: 768px){.skip-link{left:10px;right:10px;text-align:center}.btn,.menu-item,.form-control{min-height:44px;min-width:44px}}@media (prefers-reduced-data: reduce){.loading:after{animation:none}}:root{--brand: #0f172a;--accent: #38bdf8}html{font-size:12px}*{box-sizing:border-box}html,body{background:#fff}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji",sans-serif;color:#0f172a}body.theme-dark{background:#15202b;color:#c7f5d9}body.theme-dark .hero,body.theme-dark .skills,body.theme-dark .about,body.theme-dark .projects{background:#192734}body.theme-dark h1,body.theme-dark h2,body.theme-dark h3,body.theme-dark h4,body.theme-dark h5,body.theme-dark h6,body.theme-dark .hero__code,body.theme-dark .hero__mobile-text h1,body.theme-dark .hero__mobile-text .hero__name{color:#fff;text-shadow:0 0 1px rgba(255,255,255,.1)}body.theme-dark .hero__brand-link{filter:none}body.theme-dark .hero__code{color:#c7f5d9}body.theme-dark .hero__code+.hero__code{color:#89cda3}body.theme-dark .hero__cursor,body.theme-dark .hero__code .caret,body.theme-dark .brand-caret{background:#2f8;color:#2f8;opacity:.9}body.theme-dark .hero__quick-btn{background:#040c18cc;border-color:#22ff8840}body.theme-dark .scroll-arrow{background:#2f8}body.theme-dark .tile{background:linear-gradient(180deg,#ffffff0a,#ffffff05);border-color:#ffffff14;color:#c7f5d9}body.theme-dark svg{color:#fff!important;fill:currentColor!important}body.theme-dark img[src$=".svg"],body.theme-dark img[src^="data:image/svg+xml"],body.theme-dark .social img[src$=".svg"],body.theme-dark .social img[src^="data:image/svg+xml"],body.theme-dark .settings-gear img[src$=".svg"],body.theme-dark .settings-gear img[src^="data:image/svg+xml"],body.theme-dark .projects__toggle-btn img[src$=".svg"],body.theme-dark .projects__toggle-btn img[src^="data:image/svg+xml"]{filter:brightness(0) invert(1)!important}h1{color:#0f172a;font-size:1.5rem}
