@layer tokens,base,layout,components,utilities,overrides;@layer base{@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:local('Inter'),local('Inter Regular'),url("../css/fonts/Inter-Latin.woff2") format('woff2')}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:local('Inter Medium'),local('Inter'),url("../css/fonts/Inter-Latin.woff2") format('woff2')}@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:local('Poppins Medium'),local('Poppins'),url("../css/fonts/Poppins-500-Latin.woff2") format('woff2')}@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:local('Poppins SemiBold'),local('Poppins'),url("../css/fonts/Poppins-600-Latin.woff2") format('woff2')}}@layer tokens{:root{--bg:#0D1117;--surface:#161B22;--surface-light:color-mix(in srgb,var(--surface) 85%,#fff 15%);--surface-accent:color-mix(in srgb,var(--surface) 92%,#fff 8%);--primary:#2396AD;--secondary:var(--primary);--text-light:#F1F4F8;--text-muted:#BFC8D3;--link:color-mix(in srgb,var(--primary) 85%,#fff 15%);--link-hover:color-mix(in srgb,var(--primary) 65%,#fff 35%);--focus:color-mix(in srgb,var(--primary) 70%,#fff 30%);--border-subtle:#21262D;--border-1:var(--border-subtle);--border-2:color-mix(in srgb,var(--primary) 24%,transparent);--border-3:color-mix(in srgb,var(--primary) 42%,transparent);--surface-1:var(--surface);--surface-2:color-mix(in srgb,var(--surface) 90%,#000 10%);--surface-3:color-mix(in srgb,var(--surface) 82%,#000 18%);--text-1:var(--text-light);--text-2:var(--text-muted);--text-3:color-mix(in srgb,var(--text-muted) 70%,#ffffff 30%);--accent-1:var(--primary);--accent-2:color-mix(in srgb,var(--primary) 72%,#ffffff 28%);--accent-3:color-mix(in srgb,var(--primary) 42%,#0A1A1F 58%);--success:#38B37E;--warning:#E0A328;--danger:#E05757;--nav-height:72px;--container-max:1068px;--modal-max:1100px;--modal-max-wide:1240px;--modal-media-height:clamp(360px,62vh,620px);--modal-media-max-width:900px;scroll-padding-top:var(--nav-height,72px);--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-14:14px;--space-16:16px;--space-20:20px;--space-24:24px;--space-28:28px;--space-32:32px;--space-40:40px;--space-48:48px;--space-64:64px;--radius-6:6px;--radius-8:8px;--radius-10:10px;--radius-12:12px;--radius-14:14px;--radius-16:16px;--shadow-sm:0 2px 6px rgba(0,0,0,.25);--shadow-md:0 6px 18px rgba(0,0,0,.35);--shadow-lg:0 12px 32px rgba(0,0,0,.6);--motion-fast:160ms;--motion-base:220ms;--motion-slow:320ms;--easing-standard:cubic-bezier(.22,.61,.36,1);--hover-lift:-2px;--hover-lift-strong:-4px;--hover-scale:1.02;--interactive-shadow-rest:0 10px 24px rgba(0,0,0,.24);--interactive-shadow-hover:0 16px 34px rgba(0,0,0,.32);--interactive-shadow-strong:0 24px 46px rgba(0,0,0,.4);--interactive-border:var(--border-2);--interactive-border-hover:var(--border-3);--interactive-bg:color-mix(in srgb,var(--surface-2) 88%,#000 12%);--interactive-bg-hover:color-mix(in srgb,var(--accent-1) 18%,var(--surface-2) 82%);--interactive-text:color-mix(in srgb,var(--text-1) 92%,#ffffff 8%);--focus-ring:3px solid color-mix(in srgb,var(--accent-1) 62%,#ffffff 38%);--bp-sm:480px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px;--vh:100vh;--project-card-aspect:1 / 1;--logo-tile-bg:linear-gradient(145deg,color-mix(in srgb,var(--surface) 35%,var(--text-light) 65%) 0%,color-mix(in srgb,var(--surface) 50%,var(--text-light) 50%) 100%);--logo-tile-bg-blue:color-mix(in srgb,var(--surface) 85%,#0d1622 15%);--logo-tile-bg-company:var(--logo-tile-bg);--logo-tile-bg-cert:var(--logo-tile-bg-blue);--logo-tile-bg-education:var(--logo-tile-bg-blue)}}@layer base{html,body{height:100%;margin:0;padding:0;width:100%;max-width:100%;overflow-x:hidden;overflow-x:clip;font-family:'Inter',sans-serif;background:var(--bg);color:var(--text-light);line-height:1.6;-webkit-font-smoothing:antialiased;color-scheme:dark light}body{display:flex;flex-direction:column;min-height:100vh;padding-top:var(--nav-height,72px)}main{flex:1 0 auto}.wrapper{max-width:var(--container-max);margin-inline:auto;padding-inline:24px}a{color:inherit;text-decoration:none}.hide{display:none !important}h1,h2,h3{font-family:'Poppins',sans-serif;font-weight:500;letter-spacing:.4px}h1{font-size:48px;line-height:56px;margin:.4em 0}h2{font-size:32px;line-height:40px;margin:.6em 0 .4em}h3{font-size:24px;line-height:32px;margin:.8em 0 .4em}p{margin-bottom:1em;font-size:19px}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}.reveal{opacity:1 !important;transform:none !important}}}@layer layout{.nav{--brand-logo-size:clamp(48px,4.6vw,68px);--brand-title-size:clamp(18px,2vw,24px);--brand-tagline-size:clamp(13px,1.6vw,16px);--nav-accent-gradient:linear-gradient(135deg,color-mix(in srgb,var(--primary) 92%,#ffffff 8%) 0%,color-mix(in srgb,var(--primary) 68%,#0A1A1F 32%) 100%);--nav-block-padding:clamp(12px,1.8vw,20px);--nav-inline-padding:clamp(20px,5vw,48px);--nav-border-width:1px;--nav-dropdown-max:720px;position:fixed;inset:0;width:100%;z-index:1000;background:linear-gradient(120deg,rgba(13,17,23,.92) 0%,rgba(15,21,30,.86) 60%,rgba(18,25,36,.82) 100%);border-bottom:var(--nav-border-width) solid color-mix(in srgb,var(--primary) 18%,transparent);backdrop-filter:blur(18px)}.nav::after{content:"";position:absolute;left:0;right:auto;bottom:0;height:2px;width:calc(var(--scroll-progress,0) * 1%);background:var(--primary)}.nav .wrapper{display:flex;align-items:center;justify-content:space-between;gap:clamp(16px,4vw,48px);padding:var(--nav-block-padding) var(--nav-inline-padding);max-width:calc(var(--container-max) + 96px);margin-inline:auto}.nav-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(180px,1.7fr);align-items:stretch;gap:clamp(8px,1.4vw,18px);margin-left:auto;flex:1 1 480px;max-width:min(760px,86vw)}.nav-search{display:flex;align-items:center;width:100%}.nav-search-field{position:relative;width:100%}.nav-search-input{width:100%;min-height:44px;padding:10px 44px 10px 14px;box-sizing:border-box;border-radius:999px;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);background:color-mix(in srgb,var(--surface) 36%,transparent);color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);font-size:clamp(.78rem,1.05vw,.92rem);letter-spacing:.01em}.nav-search-input::placeholder{color:color-mix(in srgb,var(--text-light) 64%,transparent)}.nav-search-input:focus{outline:none;border-color:color-mix(in srgb,var(--primary) 42%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.nav-search-button{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid color-mix(in srgb,var(--primary) 26%,transparent);background:color-mix(in srgb,var(--surface) 72%,#000000 28%);color:color-mix(in srgb,var(--text-light) 86%,#ffffff 14%);cursor:pointer;transition:background .2s ease,border-color .2s ease}.nav-search-button:hover,.nav-search-button:focus-visible{outline:none;border-color:color-mix(in srgb,var(--primary) 44%,transparent);background:color-mix(in srgb,var(--surface) 88%,#000000 12%)}.nav-search-button svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nav-link{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;inline-size:100%;padding:10px 0;min-height:44px;text-align:center;font-size:clamp(.78rem,1.05vw,.92rem);font-weight:500;letter-spacing:.02em;color:color-mix(in srgb,var(--text-light) 78%,#ffffff 22%);white-space:nowrap;transition:color .25s ease}.nav-link::after{content:"";position:absolute;left:0;bottom:-8px;width:100%;height:2px;background:color-mix(in srgb,var(--primary) 92%,#ffffff 8%);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav-link:hover,.nav-link:focus-visible{color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%)}.nav-link:hover::after,.nav-link:focus-visible::after,.nav-link.is-current::after{transform:scaleX(1)}.nav-link:focus-visible{outline:none;text-decoration:none}.nav-link.nav-link-cta{padding:10px 22px;border-radius:999px;background:var(--nav-accent-gradient);color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%);box-shadow:0 12px 28px rgba(0,0,0,.28);transition:color .25s ease,transform .25s ease,box-shadow .25s ease}.nav-link.nav-link-cta::after{display:none}.nav-link.nav-link-cta:hover,.nav-link.nav-link-cta:focus-visible{transform:translateY(-1px);box-shadow:0 16px 32px rgba(0,0,0,.32);color:color-mix(in srgb,#ffffff 96%,var(--bg) 4%)}.nav-item{position:relative;display:flex;align-items:center;width:100%}.nav-link-has-menu{gap:6px}.nav-link-caret{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid color-mix(in srgb,var(--text-light) 70%,#ffffff 30%);transition:transform .2s ease,border-top-color .2s ease}.nav-link-cta .nav-link-caret{border-top-color:color-mix(in srgb,#ffffff 92%,var(--bg) 8%)}.nav-dropdown{display:none}.nav-dropdown-inner{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:clamp(14px,2vw,20px);align-items:start}.nav-dropdown-column{display:flex;flex-direction:column;gap:10px}.nav-dropdown-column-actions{padding:12px;border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 92%,#02070d 8%) 0%,color-mix(in srgb,var(--surface) 82%,#02070d 18%) 100%);border:1px solid color-mix(in srgb,var(--primary) 24%,var(--surface) 76%);box-shadow:0 18px 36px rgba(0,0,0,.28)}.nav-dropdown-actions{display:grid;gap:12px}.nav-dropdown-header{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:color-mix(in srgb,var(--text-light) 68%,#ffffff 32%);margin-bottom:12px}.nav-dropdown-list{display:flex;flex-direction:column}.nav-dropdown-footer{margin-top:16px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--primary) 18%,var(--surface) 82%)}.nav-dropdown-footer .nav-dropdown-link{margin-top:0}.nav-dropdown-footer .nav-dropdown-link + .nav-dropdown-link{margin-top:6px}.nav-dropdown-link{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid transparent;text-decoration:none;color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);background:transparent;transition:border-color .2s ease,background .2s ease,color .2s ease}.nav-dropdown-list .nav-dropdown-link + .nav-dropdown-link{margin-top:6px}.nav-dropdown-title{font-weight:600;letter-spacing:.01em;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav-dropdown-subtitle{font-size:.85rem;color:color-mix(in srgb,var(--text-light) 72%,#ffffff 28%)}.nav-dropdown-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--primary) 40%,var(--surface) 60%);color:color-mix(in srgb,#ffffff 92%,var(--bg) 8%)}.nav-dropdown-link.nav-dropdown-link-recommended{border-color:color-mix(in srgb,var(--primary) 32%,var(--surface) 68%);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 18%,var(--surface) 82%) 0%,color-mix(in srgb,var(--primary) 22%,var(--surface) 78%) 100%)}.nav-dropdown-link.nav-dropdown-featured{font-weight:600;border-color:color-mix(in srgb,var(--primary) 28%,var(--surface) 72%);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 16%,var(--surface) 84%) 0%,color-mix(in srgb,var(--primary) 32%,var(--surface) 68%) 100%);color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%)}.nav-dropdown-link.nav-dropdown-all{font-weight:600;text-align:left;border:1px solid transparent;background:transparent;color:color-mix(in srgb,var(--text-light) 94%,#ffffff 6%);box-shadow:none;padding-inline:10px}.nav-dropdown-link.nav-dropdown-all:hover,.nav-dropdown-link.nav-dropdown-all:focus-visible{background:color-mix(in srgb,var(--surface) 92%,#000 8%);border-color:color-mix(in srgb,var(--primary) 36%,var(--surface) 64%);box-shadow:none}.nav-dropdown-link:hover,.nav-dropdown-link:focus-visible{border-color:color-mix(in srgb,var(--primary) 38%,var(--surface) 62%);background:color-mix(in srgb,var(--surface) 94%,#000 6%);color:color-mix(in srgb,var(--text-light) 98%,#ffffff 2%);outline:none}.nav-dropdown-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 26%,var(--surface) 74%);background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 90%,#000 10%) 0%,color-mix(in srgb,var(--surface) 82%,#000 18%) 100%);color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%);text-decoration:none;transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.nav-dropdown-card:hover,.nav-dropdown-card:focus-visible{border-color:color-mix(in srgb,var(--primary) 42%,var(--surface) 58%);background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 90%,#000 10%) 0%,color-mix(in srgb,var(--primary) 16%,var(--surface) 84%) 100%);box-shadow:0 16px 32px rgba(0,0,0,.32);transform:translateY(-2px);outline:none}.nav-dropdown-card-copy{display:flex;flex-direction:column;gap:4px}.nav-dropdown-card .nav-dropdown-title{color:color-mix(in srgb,var(--text-light) 98%,#ffffff 2%)}.nav-dropdown-card .nav-dropdown-subtitle{color:color-mix(in srgb,var(--text-light) 80%,#ffffff 20%)}.nav-dropdown-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.4),transparent 60%),linear-gradient(145deg,color-mix(in srgb,var(--primary) 78%,#0b1621 22%) 0%,color-mix(in srgb,var(--primary) 54%,#02070d 46%) 100%);color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%);box-shadow:0 10px 26px rgba(0,0,0,.3)}.nav-dropdown-icon svg{width:28px;height:28px;color:inherit}.nav-dropdown-card .nav-dropdown-badge{margin-left:6px}.nav-dropdown-footer-inline{margin-top:14px}.nav-project-grid{display:grid;grid-template-columns:1fr;gap:10px}.nav-dropdown-inner-portfolio{grid-template-columns:1fr;gap:14px;align-items:start;max-width:540px}.nav-project-card{display:grid;grid-template-columns:auto 96px 1fr;align-items:center;gap:12px;border-radius:14px;border:1px solid transparent;background:transparent;text-decoration:none;color:inherit;padding:10px 4px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.nav-project-card:hover,.nav-project-card:focus-visible{box-shadow:none;background:color-mix(in srgb,var(--surface) 94%,#000 6%);border-color:color-mix(in srgb,var(--primary) 36%,var(--surface) 64%);outline:none}.nav-project-thumb{display:inline-block;width:96px;height:72px;position:relative;overflow:hidden;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:12px;box-shadow:0 6px 14px rgba(0,0,0,.24);filter:saturate(1.02)}.nav-project-thumb-media{width:100%;height:100%;object-fit:cover;display:none;border-radius:inherit;pointer-events:none}.nav-project-card.is-video-active .nav-project-thumb-media{display:block}@media (prefers-reduced-motion:reduce){.nav-project-thumb-media{display:none}}.nav-project-meta{display:flex;flex-direction:column;gap:4px}.nav-project-rank{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;border-radius:10px;font-weight:700;font-size:1rem;color:color-mix(in srgb,#ffffff 92%,var(--bg) 8%);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 26%,#0a1622 74%) 0%,color-mix(in srgb,var(--primary) 46%,#0a1622 54%) 100%);box-shadow:0 8px 18px rgba(0,0,0,.24)}.nav-project-preview{position:fixed;width:clamp(320px,38vw,520px);aspect-ratio:16 / 9;height:auto;border-radius:18px;overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 26%,var(--surface) 74%);background-image:var(--preview-image,linear-gradient(135deg,color-mix(in srgb,var(--surface) 88%,#000 12%) 0%,color-mix(in srgb,var(--primary) 18%,var(--surface) 82%) 100%));background-size:contain;background-position:center;background-repeat:no-repeat;box-shadow:0 18px 32px rgba(0,0,0,.32);opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease,background-image .2s ease;pointer-events:none;z-index:1201}.nav-project-preview.nav-project-preview-visible{opacity:1;transform:translateY(0)}.nav-project-preview.nav-project-preview-animating{animation:nav-preview-fade .25s ease}@keyframes nav-preview-fade{from{opacity:.35}to{opacity:1}}.nav-project-badge{align-self:flex-start;padding:3px 7px;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;background:color-mix(in srgb,var(--primary) 38%,var(--surface) 62%);color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%)}.nav-dropdown-column-highlights .nav-dropdown-header{margin-bottom:4px}.nav-dropdown-column-prefilters .nav-dropdown-header{margin-bottom:8px}.nav-prefilter-actions{display:grid;gap:10px}.nav-prefilter-groups{display:grid;gap:14px;height:100%}.nav-prefilter-group{display:flex;flex-direction:column;gap:8px}.nav-dropdown-column,.nav-dropdown-column-actions,.nav-dropdown-column-prefilters{height:100%}.nav-prefilter-link{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;border:1px dashed color-mix(in srgb,var(--primary) 28%,var(--surface) 72%);background:color-mix(in srgb,var(--surface) 92%,#000 8%);color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%);text-decoration:none;transition:border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease}.nav-prefilter-link:hover,.nav-prefilter-link:focus-visible{border-color:color-mix(in srgb,var(--primary) 42%,var(--surface) 58%);background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 90%,#000 10%) 0%,color-mix(in srgb,var(--primary) 18%,var(--surface) 82%) 100%);transform:translateY(-1px);box-shadow:0 12px 26px rgba(0,0,0,.28);outline:none}.nav-highlight-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--surface) 76%);background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 92%,#000 8%) 0%,color-mix(in srgb,var(--surface) 84%,#000 16%) 100%);color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%);text-decoration:none;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.nav-highlight-card:hover,.nav-highlight-card:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 40%,var(--surface) 60%);box-shadow:0 16px 28px rgba(0,0,0,.3);outline:none}.nav-highlight-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--text-light) 72%,#ffffff 28%)}.nav-dropdown-inner.nav-dropdown-inner-contact{grid-template-columns:minmax(0,1fr)}@media (max-width:1200px){.nav-dropdown-inner{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.nav-dropdown-column-actions{padding:10px}.nav-project-grid{grid-template-columns:1fr}#nav-dropdown-resume{width:min(440px,88vw)}#nav-dropdown-contact{width:min(440px,88vw)}}.nav-item-portfolio:hover .nav-link-caret,.nav-item-portfolio:focus-within .nav-link-caret,.nav-item-portfolio.dropdown-open .nav-link-caret,.nav-item-contributions:hover .nav-link-caret,.nav-item-contributions:focus-within .nav-link-caret,.nav-item-contributions.dropdown-open .nav-link-caret,.nav-item-resume:hover .nav-link-caret,.nav-item-resume:focus-within .nav-link-caret,.nav-item-resume.dropdown-open .nav-link-caret,.nav-item-contact:hover .nav-link-caret,.nav-item-contact:focus-within .nav-link-caret,.nav-item-contact.dropdown-open .nav-link-caret{transform:translateY(2px);border-top-color:color-mix(in srgb,var(--primary) 80%,#ffffff 20%)}.nav-item-contact.dropdown-open .nav-link.nav-link-cta{transform:translateY(-1px);box-shadow:0 16px 32px rgba(0,0,0,.32)}@media (hover:hover) and (pointer:fine){.nav-dropdown{display:block;position:absolute;top:calc(100% + var(--nav-bottom-gap,var(--nav-block-padding)) - var(--nav-border-width));left:50%;margin-top:0;width:min(520px,78vw);max-width:540px;padding:18px;border-radius:0 0 20px 20px;overflow:hidden;background:var(--surface);border:1px solid color-mix(in srgb,var(--primary) 22%,var(--surface) 78%);border-top:none;box-shadow:0 24px 48px rgba(0,0,0,.45);transform:translate3d(calc(-50% + var(--dropdown-shift,0px)),-2px,0) scale(.98);opacity:0;pointer-events:none;max-height:0;-webkit-clip-path:inset(0 0 100% 0 round 0 0 20px 20px);clip-path:inset(0 0 100% 0 round 0 0 20px 20px);z-index:1100;transition:max-height .24s ease,-webkit-clip-path .24s ease,clip-path .24s ease,opacity .25s ease,transform .25s ease}#nav-dropdown-portfolio{width:min(460px,74vw);max-width:500px;--nav-dropdown-max:780px}#nav-dropdown-contributions{width:min(640px,78vw)}#nav-dropdown-resume{width:min(340px,64vw)}#nav-dropdown-contact{width:min(340px,64vw)}.nav-item-portfolio:hover .nav-dropdown,.nav-item-portfolio:focus-within .nav-dropdown,.nav-item-portfolio.dropdown-open .nav-dropdown,.nav-item-contributions:hover .nav-dropdown,.nav-item-contributions:focus-within .nav-dropdown,.nav-item-contributions.dropdown-open .nav-dropdown,.nav-item-resume:hover .nav-dropdown,.nav-item-resume:focus-within .nav-dropdown,.nav-item-resume.dropdown-open .nav-dropdown,.nav-item-contact:hover .nav-dropdown,.nav-item-contact:focus-within .nav-dropdown,.nav-item-contact.dropdown-open .nav-dropdown{opacity:1;transform:translate3d(calc(-50% + var(--dropdown-shift,0px)),0,0) scale(1);pointer-events:auto;max-height:var(--nav-dropdown-max,480px);-webkit-clip-path:inset(0 0 0 0 round 0 0 20px 20px);clip-path:inset(0 0 0 0 round 0 0 20px 20px)}.nav-item-portfolio::after,.nav-item-contributions::after,.nav-item-resume::after,.nav-item-contact::after{content:"";position:absolute;left:-12px;right:-12px;top:100%;height:calc(var(--nav-bottom-gap,var(--nav-block-padding)) + 12px);pointer-events:none}.nav-item-portfolio:hover::after,.nav-item-portfolio:focus-within::after,.nav-item-portfolio.dropdown-open::after,.nav-item-contributions:hover::after,.nav-item-contributions:focus-within::after,.nav-item-contributions.dropdown-open::after,.nav-item-resume:hover::after,.nav-item-resume:focus-within::after,.nav-item-resume.dropdown-open::after,.nav-item-contact:hover::after,.nav-item-contact:focus-within::after,.nav-item-contact.dropdown-open::after{pointer-events:auto}}.brand{display:flex;align-items:center;gap:clamp(12px,2vw,18px);text-decoration:none;color:inherit}.brand-logo{width:var(--brand-logo-size);height:var(--brand-logo-size);transition:transform .3s ease}.brand:hover .brand-logo{transform:scale(1.03)}.brand-name{display:flex;align-items:center;gap:clamp(10px,1.6vw,16px);font-family:'Poppins',sans-serif;color:var(--text-light);min-width:0}.brand-title{font-size:var(--brand-title-size);font-weight:600;letter-spacing:.3px;line-height:1.1;white-space:nowrap}.brand-divider{width:2px;min-height:1.8em;background:color-mix(in srgb,var(--primary) 86%,transparent);border-radius:999px;align-self:stretch}.brand-tagline{display:inline-flex;flex-wrap:wrap;column-gap:.35rem;row-gap:0;font-size:var(--brand-tagline-size);font-weight:500;color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);line-height:1.1}.brand-tagline-chunk{white-space:nowrap}@media (max-width:1100px) and (min-width:769px){.nav .brand-name{gap:6px;flex-direction:column;align-items:flex-start}.nav .brand-title{display:inline-block}.nav .brand-title::after{content:"";display:block;width:100%;height:2px;margin:4px 0 2px;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 18%,transparent) 0%,color-mix(in srgb,var(--primary) 72%,transparent) 52%,color-mix(in srgb,var(--primary) 30%,transparent) 100%);border-radius:2px}.nav .brand-divider{display:none}.nav .brand-tagline{display:flex;width:100%;font-size:clamp(12px,1.3vw,14px);text-align:left}}}@layer components{.hero{min-height:calc(100svh - var(--nav-height,72px));margin:0 0 clamp(1.5rem,4vh,3rem);padding:clamp(4.2rem,8vh,6.4rem) 0 clamp(4rem,8vh,5.4rem);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;isolation:isolate;text-align:center;background:linear-gradient(155deg,color-mix(in srgb,var(--surface) 94%,#020509 6%) 0%,color-mix(in srgb,var(--surface) 86%,#000 14%) 42%,#0f141d 100%)}body[data-page="home"] .hero{margin-bottom:0}.hero.hero--default{min-height:calc(100svh - var(--nav-height,72px))}.hero.hero--tools,.hero.hero--games{min-height:auto;margin:0;justify-content:flex-start;text-align:left}.hero.hero--tools::before,.hero.hero--tools::after,.hero.hero--games::before,.hero.hero--games::after{display:none}.hero.hero--tools{padding:clamp(1.2rem,3.2vh,1.9rem) 0 clamp(1.5rem,4vh,2.3rem);background:radial-gradient(900px circle at 8% 12%,color-mix(in srgb,var(--primary) 28%,transparent),transparent 60%),radial-gradient(800px circle at 92% 0%,color-mix(in srgb,var(--primary) 22%,#ffffff 8%),transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--surface) 90%,#070e15 10%) 0%,color-mix(in srgb,var(--surface) 78%,#050b12 22%) 100%);border-bottom:1px solid color-mix(in srgb,var(--primary) 25%,transparent);box-shadow:0 30px 60px rgba(0,0,0,.4)}.hero.hero--tools .wrapper{max-width:var(--container-max);display:flex;align-items:center;min-width:0;gap:0;text-align:left}.hero.hero--tools:is(.hero-eyebrow,h1,.hero-tagline,.hero-status,.cta-group),.hero.hero--games:is(.hero-eyebrow,h1,.hero-tagline,.hero-status,.cta-group){opacity:1;transform:none;animation:none}.hero.hero--tools .hero-eyebrow,.hero.hero--games .hero-eyebrow{margin:0}.hero.hero--games{padding:clamp(3.4rem,7vh,4.8rem) 0;background:linear-gradient(140deg,color-mix(in srgb,var(--surface) 92%,#040910 8%) 0%,color-mix(in srgb,var(--surface) 80%,#040910 20%) 100%);border-bottom:1px solid color-mix(in srgb,var(--primary) 18%,transparent);box-shadow:0 22px 48px rgba(0,0,0,.32)}.hero.hero--games .wrapper{max-width:min(1080px,calc(var(--container-max) + 80px));display:grid;gap:clamp(1.2rem,2.4vw,1.8rem);text-align:left;justify-items:start;align-items:start}.hero.hero--games h1,.hero.hero--games p{margin:0}.hero.hero--games p{max-width:70ch;color:var(--text-muted);font-size:1.05rem;line-height:1.7}@keyframes heroFade{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}.hero::before{content:"";position:absolute;inset:-18% -28% -32%;z-index:-1;background:radial-gradient(120% 90% at 12% calc(18% + var(--hero-parallax,0px)),color-mix(in srgb,var(--primary) 22%,transparent) 0%,transparent 62%);opacity:.85;transition:opacity .4s ease}.hero::after{content:"";position:absolute;inset:-40%;z-index:-2;background:radial-gradient(32% 32% at var(--mx,48%) calc(var(--my,38%) + var(--hero-parallax,0px)),color-mix(in srgb,var(--primary) 18%,transparent) 0%,transparent 70%);opacity:.7;pointer-events:none}.hero .wrapper{width:100%;max-width:min(1040px,var(--container-max));margin-inline:auto;padding-inline:clamp(20px,5vw,48px);display:flex;flex-direction:column;align-items:center;gap:clamp(1.2rem,3vh,2rem);text-align:center}.hero-avatar{width:clamp(108px,12vw,176px);height:auto;aspect-ratio:1;border-radius:999px;object-fit:cover;border:3px solid color-mix(in srgb,var(--primary) 22%,transparent);box-shadow:0 20px 46px rgba(0,0,0,.35)}.hero-eyebrow{margin:0;font-size:.85rem;letter-spacing:.22em;text-transform:uppercase;color:color-mix(in srgb,var(--primary) 78%,#ffffff 22%);opacity:0;animation:heroFade 1s .3s forwards}.hero h1{margin:0;font-size:clamp(2.6rem,4.3vw,3.8rem);line-height:1.15;letter-spacing:.4px;opacity:0;animation:heroFade 1s .4s forwards}.hero-tagline{margin:0;font-size:1.12rem;line-height:1.75;color:var(--text-muted);max-width:48ch;opacity:0;animation:heroFade 1s .55s forwards}.hero-noscript-hint{margin:0;font-size:.95rem;line-height:1.5;color:color-mix(in srgb,var(--text-muted) 90%,#fff 10%);max-width:48ch}.hero-status{display:inline-flex;align-items:center;gap:8px;padding:7px 20px;border-radius:999px;font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:color-mix(in srgb,var(--surface) 80%,#000 20%);color:color-mix(in srgb,var(--primary) 78%,#fff 22%);box-shadow:0 10px 26px rgba(0,0,0,.28);border:1px solid color-mix(in srgb,var(--primary) 24%,transparent);opacity:0;animation:heroFade 1s .7s forwards}.cta-group{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;opacity:0;animation:heroFade 1s .85s forwards}.hero-cta{min-width:0}.hero-kpis{--kpi-gap:clamp(1rem,2vw,1.4rem);--kpi-inline-pad:clamp(1.25rem,1.9vw,1.7rem);--kpi-block-pad:clamp(1.15rem,1.8vw,1.55rem);--kpi-value-height:clamp(44px,4.2vw,58px);width:100%;max-width:min(1120px,var(--container-max));margin-inline:auto;list-style:none;margin-top:clamp(2.1rem,4.5vh,3.4rem);margin-bottom:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--kpi-gap);align-items:stretch}.hero-kpi{min-width:240px;flex:1 1 280px;max-width:320px;opacity:0;animation:heroFade .9s forwards}.hero-kpi-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(12px,1.4vw,18px);width:100%;height:100%;padding:var(--kpi-block-pad) var(--kpi-inline-pad) clamp(.75rem,1vw,.95rem);border-radius:22px;background:linear-gradient(155deg,color-mix(in srgb,var(--surface) 92%,#02070f 8%) 0%,color-mix(in srgb,var(--surface) 80%,#050913 20%) 100%);border:1px solid color-mix(in srgb,var(--primary) 28%,transparent);box-shadow:0 18px 44px rgba(5,8,20,.35);color:inherit;text-align:center;position:relative;overflow:hidden;isolation:isolate;cursor:pointer}.hero-kpi-link,.hero-kpi-link:hover,.hero-kpi-link:visited{text-decoration:none;text-decoration-line:none}.hero-kpi-link:focus-visible{outline:3px solid var(--focus);outline-offset:6px;border-radius:16px}.hero-kpi-link::before{content:"";position:absolute;inset:1px;border-radius:inherit;background:radial-gradient(120% 120% at 12% 0%,color-mix(in srgb,var(--primary) 32%,transparent) 0%,transparent 55%);opacity:.5;pointer-events:none;z-index:0}.hero-kpi-link > *{position:relative;z-index:1;text-decoration:none}.hero-kpi:nth-child(1){animation-delay:.95s}.hero-kpi:nth-child(2){animation-delay:1.05s}.hero-kpi:nth-child(3){animation-delay:1.15s}.hero-kpi-value{display:flex;align-items:flex-end;justify-content:center;flex-wrap:wrap;column-gap:8px;row-gap:4px;font-family:'Poppins',sans-serif;font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:600;color:color-mix(in srgb,var(--text-light) 95%,#fff 5%);min-height:var(--kpi-value-height);text-align:center;white-space:normal;word-break:break-word;line-height:1.15;letter-spacing:.02em}.hero-kpi-label{display:block;margin-top:6px;font-size:.92rem;color:color-mix(in srgb,var(--text-muted) 86%,#fff 14%);line-height:1.65;letter-spacing:.025em;max-width:32ch;text-align:center;margin-inline:auto}.chevron-hint{position:absolute;left:50%;bottom:16px;transform:translate(-50%,0);display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .75rem;color:var(--primary);font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:1px solid color-mix(in srgb,var(--primary) 35%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface) 88%,#0b131f 12%);box-shadow:0 12px 30px rgba(3,10,18,.35);opacity:.95;cursor:pointer;transition:opacity .25s ease,background .2s ease,border-color .2s ease;animation:chevron-bob 1.8s infinite ease-in-out}.chevron-hint:hover{background:color-mix(in srgb,var(--surface) 84%,#0b131f 16%);border-color:color-mix(in srgb,var(--primary) 50%,transparent)}.chevron-hint:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 80%,#fff 20%);outline-offset:4px}.chevron-hint.fade{opacity:0;pointer-events:none;animation-play-state:paused}.chevron-label{line-height:1.1}.chevron-hint svg{width:32px;height:32px;display:block;flex-shrink:0}@keyframes chevron-bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,6px)}}@media (min-width:769px){.hero-kpi{flex:0 1 280px}.hero-kpi-link{width:auto;max-width:320px;margin-inline:auto}}@media (max-width:1100px){.hero-kpis{justify-content:stretch}}@media (min-width:769px){body[data-page="home"] .hero .cta-group .hero-cta{min-width:240px}}@media (max-width:768px){.hero{--hero-action-width:min(520px,92vw)}.hero .wrapper{align-items:center;text-align:center;padding-bottom:clamp(1.6rem,5vh,2.8rem);padding-top:clamp(1rem,3vh,1.8rem)}.hero .wrapper:is(.hero-eyebrow,.hero-tagline,.hero-status){text-align:center}.cta-group{justify-content:center;width:var(--hero-action-width);max-width:100%;margin-inline:auto}.cta-group .hero-cta{width:100%}.hero-kpis{flex-direction:column;align-items:center;gap:clamp(1.1rem,4.5vw,1.6rem)}.hero-kpi{width:var(--hero-action-width);max-width:100%;flex-basis:auto;margin-inline:auto}.hero-kpi-link{width:100%;padding:clamp(1.1rem,4.5vw,1.5rem) clamp(1.2rem,5.4vw,1.6rem) clamp(.7rem,3vw,1rem);text-align:center;align-items:center}.hero-kpi-value{justify-content:center;text-align:center;font-size:clamp(1.32rem,5vw,1.95rem)}.hero-kpi-label{text-align:center;margin-inline:auto;font-size:clamp(.88rem,3.8vw,1rem)}body[data-page="home"] .chevron-hint{display:none}body:not([data-page="home"]) .chevron-hint{display:inline-flex}}@media (max-width:640px){.hero.hero--tools{padding:clamp(1.6rem,5vh,2.2rem) 0 clamp(1.8rem,5.6vh,2.6rem)}.hero{padding-inline:18px}.hero .wrapper{align-items:center;text-align:center}.hero .wrapper:is(.hero-eyebrow,.hero-tagline,.hero-status){text-align:center}.cta-group{width:100%;flex-direction:column;align-items:center}.hero-cta{width:100%;justify-content:center}.hero-kpi{width:100%;max-width:100%}.hero-kpis{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.hero-eyebrow,.hero h1,.hero-tagline,.hero-status,.cta-group,.hero-kpis,.hero-kpi{animation:none !important;opacity:1 !important;transform:none !important}.hero::before,.hero::after{transition:none !important;opacity:.4 !important}}}@layer components{.btn-primary,.btn-secondary,.btn-ghost,.btn-icon{display:inline-flex;align-items:center;justify-content:center;font-family:'Poppins';font-weight:500;border-radius:999px;cursor:pointer;transition:transform var(--motion-base) var(--easing-standard),box-shadow var(--motion-base) var(--easing-standard),background var(--motion-fast) var(--easing-standard),color var(--motion-fast) var(--easing-standard),border-color var(--motion-fast) var(--easing-standard);position:relative;overflow:hidden}.btn-primary{padding:14px 30px;background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1) 92%,#ffffff 8%) 0%,color-mix(in srgb,var(--accent-3) 68%,#0A1A1F 32%) 100% );color:var(--interactive-text);border:1px solid var(--interactive-border-hover);box-shadow:var(--interactive-shadow-rest)}.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,rgba(255,255,255,.25),rgba(255,255,255,0));opacity:0;transition:opacity var(--motion-fast) var(--easing-standard)}.btn-primary:hover{transform:translateY(var(--hover-lift-strong));box-shadow:var(--interactive-shadow-hover)}.btn-primary:hover::after{opacity:1}.btn-primary:disabled{background:color-mix(in srgb,var(--surface) 82%,#0f141d 18%);color:color-mix(in srgb,var(--text-light) 58%,#ffffff 42%);border-color:color-mix(in srgb,var(--text-light) 22%,transparent);box-shadow:none;transform:none;cursor:not-allowed;opacity:.8}.btn-primary:disabled::after{opacity:0}.btn-secondary{padding:14px 30px;border:1px solid var(--interactive-border);color:var(--interactive-text);background:var(--interactive-bg);box-shadow:var(--interactive-shadow-rest)}.btn-secondary:hover{transform:translateY(var(--hover-lift));background:var(--interactive-bg-hover);border-color:var(--interactive-border-hover);color:var(--text-1)}.btn-secondary:disabled{background:color-mix(in srgb,var(--surface) 85%,#0f141d 15%);color:color-mix(in srgb,var(--text-light) 55%,#ffffff 45%);border-color:color-mix(in srgb,var(--text-light) 20%,transparent);box-shadow:none;transform:none;cursor:not-allowed;opacity:.8}.btn-ghost{padding:12px 22px;border:1px dashed var(--interactive-border);color:var(--interactive-text);background:transparent;box-shadow:none}.btn-ghost:hover{border-style:solid;border-color:var(--interactive-border-hover);color:var(--text-1);background:var(--interactive-bg-hover)}.btn-ghost:disabled{border-color:color-mix(in srgb,var(--text-light) 20%,transparent);color:color-mix(in srgb,var(--text-light) 55%,#ffffff 45%);background:transparent;box-shadow:none;transform:none;cursor:not-allowed;opacity:.7}.btn-icon{width:44px;height:44px;border:1px solid var(--interactive-border);color:var(--accent-2);background:var(--interactive-bg);transition:transform var(--motion-base) var(--easing-standard),box-shadow var(--motion-base) var(--easing-standard),background var(--motion-fast) var(--easing-standard),color var(--motion-fast) var(--easing-standard),border-color var(--motion-fast) var(--easing-standard)}.btn-icon i{font-size:22px;color:currentColor}.btn-icon svg{width:22px;height:22px;color:currentColor;fill:none;stroke:currentColor;shape-rendering:geometricPrecision;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.btn-icon svg.brand-fill{fill:currentColor;stroke:none}.btn-icon img{width:22px;height:22px;object-fit:contain;display:block}.btn-icon .icon{display:block;width:22px;height:22px}.btn-icon .icon-github{background-color:currentColor;-webkit-mask-image:url('../img/icons/github-icon.png');mask-image:url('../img/icons/github-icon.png');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.btn-icon:hover{background:var(--interactive-bg-hover);color:var(--text-1);border-color:var(--interactive-border-hover);transform:translateY(var(--hover-lift));box-shadow:var(--interactive-shadow-hover)}.btn-icon.btn-icon-featured{width:50px;height:50px;background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1) 88%,#ffffff 12%) 0%,color-mix(in srgb,var(--accent-3) 65%,#071219 35%) 100% );color:var(--interactive-text);border-color:var(--interactive-border-hover);box-shadow:var(--interactive-shadow-hover)}.btn-icon.btn-icon-featured svg{stroke-width:1.6}.btn-icon.btn-icon-featured:hover{background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1) 94%,#ffffff 6%) 0%,color-mix(in srgb,var(--accent-3) 72%,#030b12 28%) 100% );color:var(--text-1);border-color:var(--interactive-border-hover);transform:translateY(var(--hover-lift-strong)) scale(var(--hover-scale));box-shadow:var(--interactive-shadow-strong)}.btn-icon:hover i,.btn-icon:hover svg{color:inherit}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-ghost:focus-visible,.btn-icon:focus-visible{outline:var(--focus-ring);outline-offset:3px}}@layer components{.grid-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(24px,3vw,32px);width:100%;max-width:min(var(--container-max),960px);margin:clamp(24px,4vw,36px) auto;justify-content:center}.icon-info{position:relative;background:var(--interactive-bg);border:1px solid var(--interactive-border);border-radius:20px;padding:28px 28px 26px;text-align:left;color:var(--interactive-text);display:flex;flex-direction:column;gap:12px;align-items:flex-start;opacity:0;transform:translateY(18px);transition:opacity .45s var(--easing-standard),transform var(--motion-base) var(--easing-standard),box-shadow var(--motion-base) var(--easing-standard),border-color var(--motion-fast) var(--easing-standard),background var(--motion-fast) var(--easing-standard);box-shadow:var(--interactive-shadow-rest)}.icon-info::before{content:"";position:absolute;inset:18px 18px auto 18px;height:3px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent-1) 78%,#ffffff 22%) 0%,color-mix(in srgb,var(--accent-3) 58%,#0A1A1F 42%) 100%);opacity:.75;pointer-events:none}.icon-info svg{width:32px;height:32px;color:color-mix(in srgb,var(--accent-1) 82%,#ffffff 18%);shape-rendering:geometricPrecision}.icon-info p{margin:0;font-family:'Poppins';font-weight:600;font-size:1.06rem;letter-spacing:.02em}.icon-info small{color:var(--text-2);line-height:1.6}.icon-info:hover{transform:translateY(var(--hover-lift));box-shadow:var(--interactive-shadow-hover);border-color:var(--interactive-border-hover);background:var(--interactive-bg-hover)}@keyframes focusIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}#about-me.reveal.active .icon-info{animation:focusIn .45s forwards}#about-me.reveal.active .icon-info:nth-child(2){animation-delay:.08s}#about-me.reveal.active .icon-info:nth-child(3){animation-delay:.16s}#about-me.reveal.active .icon-info:nth-child(4){animation-delay:.24s}#about-me.reveal.active .icon-info:nth-child(5){animation-delay:.32s}#about-me.reveal.active .icon-info:nth-child(6){animation-delay:.40s}#about-me .section-title{text-align:center}.skill-note{display:inline-flex;align-items:center;gap:6px;font-size:0.9rem;padding:6px 14px;border-radius:999px;background:color-mix(in srgb,var(--surface) 85%,#000 15%);border:1px solid color-mix(in srgb,var(--primary) 24%,transparent);margin-top:8px}@media (max-width:768px){.icon-info{align-items:center;text-align:center;padding:24px 22px 22px}.icon-info::before{inset:16px 28px auto 28px}.icon-info p{font-size:1.02rem}.icon-info small{line-height:1.5}}@media (max-width:768px){#about-me .grid-container{justify-items:center}#about-me .grid-container .icon-info{width:min(100%,480px);max-width:100%;box-sizing:border-box;margin-inline:auto}}html.no-js .icon-info{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.icon-info{opacity:1 !important;transform:none !important}}}@layer components{@keyframes rippleFade{0%{opacity:0;transform:translateY(12px) scale(.98)}100%{opacity:1;transform:none}}.project-card{position:relative;border-radius:14px;overflow:hidden;cursor:pointer;opacity:0;transition:opacity .35s cubic-bezier(.22,.61,.36,1),transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .35s cubic-bezier(.22,.61,.36,1)}.project-card.ripple-in{animation:rippleFade .55s cubic-bezier(.2,.7,.3,1) forwards;transform:none}.project-card img{position:relative;z-index:0;width:100%;display:block;object-fit:cover;object-position:top;background:transparent}.project-card video{position:relative;z-index:0;width:100%;object-fit:cover;object-position:top;background:transparent}.gif-video{display:none}.project-card .gif-video{display:none}.project-card .gif-video.gif-video-only{display:block}.project-card.is-video-active .gif-video{display:block}.project-card.is-video-active .gif-video + picture,.project-card.is-video-active .gif-video + img{display:none}.project-card .overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.35)0%,rgba(0,0,0,.95)100%)}.project-card .project-text{position:absolute;left:18px;right:18px;bottom:18px;display:flex;flex-direction:column;gap:4px;z-index:2;transform:translateZ(0);-webkit-transform:translateZ(0);backface-visibility:hidden;will-change:transform}.project-card .project-title{position:static;font-family:'Poppins';font-weight:600;font-size:20px;margin:0}.project-card .project-subtitle{position:static;font-size:14px;color:var(--text-muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.project-card::before{content:"";position:absolute;inset:0;border:2px solid transparent;border-radius:14px;pointer-events:none;transition:border-color .35s cubic-bezier(.22,.61,.36,1)}.project-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 28px color-mix(in srgb,var(--primary) 26%,transparent),0 6px 18px rgba(0,0,0,.5)}.project-card:hover::before{border-color:var(--primary)}@keyframes previewPan{0%{transform:scale(1) translateY(0)}50%{transform:scale(1.04) translateY(-2%)}100%{transform:scale(1) translateY(0)}}.project-card.is-animated-preview img{animation:previewPan 12s ease-in-out infinite;transform-origin:center}@media (prefers-reduced-motion:reduce){.project-card.is-animated-preview img{animation:none}}#projects.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px;padding:24px;max-width:var(--container-max);margin-inline:auto;align-content:start;transition:height .45s cubic-bezier(.22,.61,.36,1),padding .45s cubic-bezier(.22,.61,.36,1),opacity .35s ease;will-change:height,padding,opacity}#projects.grid-fade{opacity:0 !important}#projects.grid-hidden{visibility:hidden}.project-metric{position:absolute;top:18px;left:18px;background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary);font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:6px;max-width:75%;pointer-events:none}.project-examples-band{background:linear-gradient(120deg,color-mix(in srgb,var(--surface) 92%,#000 8%) 0%,color-mix(in srgb,var(--surface) 86%,#000 14%) 100%);border-block:1px solid color-mix(in srgb,var(--primary) 14%,transparent);padding:clamp(2.2rem,5vw,3.1rem) 0}.project-examples-head{margin:0 0 clamp(1.1rem,3vw,1.6rem);text-align:center}.project-examples-head h2{margin:0;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.25}.project-examples-subtitle{margin:10px auto 0;max-width:70ch;color:var(--text-muted);font-size:1.02rem}.project-examples-actions{margin-top:clamp(1.2rem,4vw,1.8rem);display:flex;justify-content:center}.project-examples-cta{white-space:nowrap;min-width:200px}.project-examples-grid{--project-card-aspect:1 / 1;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,340px));justify-content:center;gap:24px;align-items:stretch}.project-examples-card{max-width:100%}.project-card img,.project-card video{width:100%;height:auto;aspect-ratio:var(--project-card-aspect,1 / 1);display:block;object-fit:cover;object-position:top;background:transparent}button.project-card{border:0;background:transparent;padding:0;font:inherit;color:inherit;display:block;text-align:left;cursor:pointer}.project-card,.project-card .project-title,.project-card .project-subtitle,.carousel-card .project-title,.carousel-card .project-subtitle{color:var(--text-light);text-align:left}.project-card .overlay{pointer-events:none}.project-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.portfolio-see-more{text-align:center;margin-top:20px}.portfolio-filters-head{text-align:center}.filter-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;max-width:var(--container-max);margin-inline:auto;margin-top:16px}.filter-panel{border-radius:24px;border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);background:color-mix(in srgb,var(--surface) 94%,#03060d 6%);box-shadow:0 18px 36px rgba(0,0,0,.25);padding:clamp(20px,3vw,30px);display:flex;flex-direction:column;gap:14px}.filter-panel-head h3{margin:.2rem 0;font-size:1.3rem}.filter-panel-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:color-mix(in srgb,var(--text-muted) 88%,#fff 12%)}.filter-panel-copy{margin:0;color:var(--text-muted);font-size:.95rem}.filter-chip-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.filter-chip-row button{width:100%}.filter-chip-row .filter-chip-all{grid-column:1 / -1}.filter-chip-row button.filter-chip-disabled{opacity:.45}.filter-chip-row button:disabled{cursor:not-allowed}@media (max-width:640px){.filter-chip-row{grid-template-columns:1fr;justify-items:stretch}.filter-chip-row button{max-width:none}}@media (max-width:900px){.project-examples-cta{width:100%;min-width:0;justify-content:center}}@media (max-width:768px){.project-examples-grid{grid-template-columns:repeat(2,minmax(0,320px));gap:18px}}@media (max-width:640px){.project-examples-grid{grid-template-columns:minmax(0,1fr)}}html.no-js #projects.hide{display:grid !important;opacity:1;visibility:visible}html.no-js #filters.hide,html.no-js #carousel-gap.hide{display:block !important;opacity:1;visibility:visible}html.no-js #see-more{display:none}html.no-js #portfolio-carousel .carousel-track{flex-direction:column;gap:18px;transform:none !important}html.no-js #portfolio-carousel .carousel-card{max-width:100%;flex:1 1 auto;opacity:1;transform:none}html.no-js #portfolio-carousel .carousel-dots{display:none}@media (prefers-reduced-motion:reduce){.project-card{opacity:1 !important;transform:none !important}.project-card.ripple-in{animation:none !important}.project-card:hover{transform:none !important;box-shadow:none !important}}}@layer components{.speed-dial{position:fixed;right:calc(var(--space-20) + env(safe-area-inset-right));bottom:calc(var(--space-20) + env(safe-area-inset-bottom));z-index:2600;display:inline-flex;align-items:center;--speed-dial-toggle-size:56px;--speed-dial-gap:var(--space-12);--speed-dial-label-room:160px;--speed-dial-join:calc(var(--speed-dial-toggle-size) / 2)}.speed-dial__tray{position:absolute;right:calc(var(--speed-dial-toggle-size) - var(--speed-dial-join));bottom:0;width:max-content;clip-path:inset(-40px 0 -40px calc(-1 * var(--speed-dial-label-room)));pointer-events:none;z-index:1}.speed-dial.is-open .speed-dial__tray{pointer-events:auto}.speed-dial__actions{display:flex;flex-direction:row;align-items:center;gap:var(--space-12);padding:4px calc(10px + var(--speed-dial-join)) 4px 8px;border-radius:999px;border:1px solid var(--border-subtle);border-right:none;background:var(--surface);box-shadow:var(--shadow-md);transform:translateX(100%);pointer-events:none;visibility:hidden;transition:transform .24s ease,visibility 0s linear .24s}.speed-dial.is-open .speed-dial__actions{transform:translateX(0);pointer-events:auto;visibility:visible;transition:transform .24s ease}.speed-dial__item{position:relative;display:inline-flex;align-items:center;justify-content:center}.speed-dial__label{position:absolute;left:50%;bottom:calc(100% + 10px);font-family:'Poppins';font-size:12px;letter-spacing:.02em;color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);background:color-mix(in srgb,var(--surface) 88%,#000000 12%);border:1px solid var(--border-subtle);padding:6px 10px;border-radius:999px;box-shadow:var(--shadow-sm);opacity:0;transform:translateX(-50%) translateY(6px);pointer-events:none;transition:opacity .18s ease,transform .18s ease;white-space:nowrap;z-index:1}.speed-dial__item:hover .speed-dial__label,.speed-dial__item:focus-within .speed-dial__label{opacity:1;transform:translateX(-50%) translateY(0)}.speed-dial__action{width:48px;height:48px;min-width:48px;min-height:48px;pointer-events:auto}.speed-dial .speed-dial__action--direct.btn-icon{background:linear-gradient( 135deg,color-mix(in srgb,var(--primary) 88%,#ffffff 12%) 0%,color-mix(in srgb,var(--primary) 65%,#071219 35%) 100% );color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%);border-color:color-mix(in srgb,var(--primary) 55%,transparent);box-shadow:0 16px 32px rgba(0,0,0,.32)}.speed-dial .speed-dial__action--direct.btn-icon:hover,.speed-dial .speed-dial__action--direct.btn-icon:focus-visible{background:linear-gradient( 135deg,color-mix(in srgb,var(--primary) 94%,#ffffff 6%) 0%,color-mix(in srgb,var(--primary) 72%,#030b12 28%) 100% );color:color-mix(in srgb,#ffffff 96%,var(--bg) 4%);border-color:color-mix(in srgb,var(--primary) 68%,transparent);box-shadow:0 24px 46px rgba(0,0,0,.4)}.speed-dial__toggle{width:var(--speed-dial-toggle-size);height:var(--speed-dial-toggle-size);min-width:var(--speed-dial-toggle-size);min-height:var(--speed-dial-toggle-size);pointer-events:auto;z-index:2}.speed-dial__toggle svg{transition:transform .2s ease}.speed-dial.is-open .speed-dial__toggle svg{transform:rotate(-8deg)}.speed-dial__toggle.btn-icon-featured{background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1,var(--primary)) 88%,#ffffff 12%) 0%,color-mix(in srgb,var(--accent-3,var(--primary)) 65%,#071219 35%) 100% );color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%);border-color:color-mix(in srgb,var(--accent-1,var(--primary)) 55%,transparent);box-shadow:0 16px 32px rgba(0,0,0,.32)}@media (hover:hover) and (pointer:fine){.speed-dial__toggle.btn-icon-featured:hover,.speed-dial__toggle.btn-icon-featured:focus-visible{background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1,var(--primary)) 94%,#ffffff 6%) 0%,color-mix(in srgb,var(--accent-3,var(--primary)) 72%,#030b12 28%) 100% );color:color-mix(in srgb,#ffffff 96%,var(--bg) 4%);border-color:color-mix(in srgb,var(--accent-1,var(--primary)) 68%,transparent);box-shadow:0 24px 46px rgba(0,0,0,.4)}}@media (hover:none) and (pointer:coarse){.speed-dial{bottom:calc(var(--space-20) + env(safe-area-inset-bottom) + 22px);bottom:calc(var(--space-20) + env(safe-area-inset-bottom) + clamp(16px,4svh,30px))}}@media (prefers-reduced-motion:reduce){.speed-dial__actions,.speed-dial__label,.speed-dial__toggle svg{transition:none}}}@layer components{.cookie-settings{position:fixed;left:calc(var(--space-20) + env(safe-area-inset-left));bottom:calc(var(--space-20) + env(safe-area-inset-bottom));z-index:2600;display:inline-flex;align-items:center}.cookie-settings__item{position:relative;display:inline-flex;align-items:center;justify-content:center}.cookie-settings__label{position:absolute;left:50%;bottom:calc(100% + 10px);font-family:'Poppins';font-size:12px;letter-spacing:.02em;color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);background:color-mix(in srgb,var(--surface) 88%,#000000 12%);border:1px solid var(--border-subtle);padding:6px 10px;border-radius:999px;box-shadow:var(--shadow-sm);opacity:0;transform:translateX(-50%) translateY(6px);pointer-events:none;transition:opacity .18s ease,transform .18s ease;white-space:nowrap;z-index:1}.cookie-settings__item:hover .cookie-settings__label,.cookie-settings__item:focus-within .cookie-settings__label{opacity:1;transform:translateX(-50%) translateY(0)}.cookie-settings__toggle.btn-icon-featured{background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1,var(--primary)) 88%,#ffffff 12%) 0%,color-mix(in srgb,var(--accent-3,var(--primary)) 65%,#071219 35%) 100% );color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%);border-color:color-mix(in srgb,var(--accent-1,var(--primary)) 55%,transparent);box-shadow:0 16px 32px rgba(0,0,0,.32)}@media (hover:hover) and (pointer:fine){.cookie-settings__toggle.btn-icon-featured:hover,.cookie-settings__toggle.btn-icon-featured:focus-visible{background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1,var(--primary)) 94%,#ffffff 6%) 0%,color-mix(in srgb,var(--accent-3,var(--primary)) 72%,#030b12 28%) 100% );color:color-mix(in srgb,#ffffff 96%,var(--bg) 4%);border-color:color-mix(in srgb,var(--accent-1,var(--primary)) 68%,transparent);box-shadow:0 24px 46px rgba(0,0,0,.4)}}@media (hover:none) and (pointer:coarse){.cookie-settings{bottom:calc(var(--space-20) + env(safe-area-inset-bottom) + 22px);bottom:calc(var(--space-20) + env(safe-area-inset-bottom) + clamp(16px,4svh,30px))}}}@layer components{.contrib-divider{width:100%;padding:40px 0;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.contrib-divider::before{content:"";display:block;width:min(920px,calc(100% - 72px));height:2px;border-radius:999px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--primary) 15%,transparent) 18%,color-mix(in srgb,var(--primary) 85%,#fff 15%) 50%,color-mix(in srgb,var(--primary) 15%,transparent) 82%,transparent 100%);box-shadow:0 0 32px color-mix(in srgb,var(--primary) 30%,transparent)}.contrib-divider::after{content:"";position:absolute;width:18px;height:18px;border-radius:999px;border:2px solid color-mix(in srgb,var(--primary) 65%,#fff 35%);background:var(--surface);box-shadow:0 0 24px color-mix(in srgb,var(--primary) 45%,transparent);top:50%;left:50%;transform:translate(-50%,-50%)}.contributions-page #contrib-root,.contributions-page .contrib-section{scroll-margin-top:var(--nav-height,72px)}.docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px;padding:24px 0;row-gap:8px}.contrib-stack{display:flex;flex-direction:column;gap:20px;margin-top:18px}.doc-card{position:relative;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:26px 24px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:14px;transition:transform .25s,box-shadow .25s,background .25s,border-color .25s}.doc-card.featured-doc{display:block;padding:32px 30px;background:color-mix(in srgb,var(--primary) 8%,var(--surface));border-color:color-mix(in srgb,var(--primary) 45%,var(--border-subtle));box-shadow:0 16px 46px color-mix(in srgb,var(--primary) 22%,transparent)}.doc-label{margin:0 0 12px;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--primary)}.doc-card:hover{background:var(--primary);transform:translateY(-6px);box-shadow:0 12px 28px color-mix(in srgb,var(--primary) 35%,transparent);border-color:var(--primary)}.doc-card:hover .doc-role,.doc-card:hover h3,.doc-card:hover .doc-label{color:var(--bg)}.doc-body h3{margin:0 0 6px;font-family:'Poppins';font-size:1.05rem;font-weight:600}.doc-role{margin:0;font-size:.85rem;color:var(--text-muted)}.doc-links{display:flex;gap:14px;margin-left:14px}.doc-links-compact{gap:10px;margin-left:0}.doc-links-compact .doc-link{width:36px;height:36px}.doc-link{display:flex;align-items:center;justify-content:center;width:42px;height:42px;font-size:1.6rem;color:inherit;border:2px solid currentColor;border-radius:10px;transition:background .25s}.doc-card:hover .doc-link{background:rgba(0,0,0,.15);color:var(--bg);border-color:var(--bg)}.doc-link svg{width:22px;height:22px;color:currentColor}.docs-carousel{display:flex;gap:28px;overflow-x:auto;scroll-snap-type:smooth;margin-inline:-24px;padding:8px 24px}.docs-carousel>.doc-card{flex:0 0 260px;scroll-snap-align:center}.docs-carousel.dragging{cursor:grabbing;user-select:none}.contrib-section{margin-top:32px;margin-bottom:32px}.contrib-timeline{display:flex;flex-direction:column;gap:16px;margin-top:2px}.timeline-year{border:1px solid var(--border-subtle);border-radius:16px;background:var(--surface);padding:0 26px 14px;position:relative}.timeline-year[data-contains-latest="true"]{border-color:color-mix(in srgb,var(--primary) 45%,var(--border-subtle));box-shadow:0 12px 30px color-mix(in srgb,var(--primary) 18%,transparent)}.timeline-year::before{content:"";position:absolute;left:20px;top:22px;width:12px;height:12px;border-radius:999px;background:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent)}.timeline-year::after{content:"";position:absolute;left:25px;top:36px;bottom:20px;width:2px;background:color-mix(in srgb,var(--primary) 12%,var(--border-subtle));opacity:.4}.timeline-year:last-child::after{display:none}.timeline-year summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:flex-start;gap:12px;font-family:'Poppins';font-weight:600;font-size:1rem;padding:18px 0 8px 32px;position:relative}.timeline-year summary::-webkit-details-marker{display:none}.timeline-year summary::after{content:"";width:18px;height:18px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .25s ease;margin-left:auto}.timeline-year[open] summary::after{transform:rotate(-135deg)}.timeline-year-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 14px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--text-light);font-size:.95rem}.timeline-year-meta{color:var(--text-muted);font-size:.9rem}.timeline-list{list-style:none;margin:0;padding:0}.timeline-item{display:flex;gap:18px;align-items:flex-start;padding:16px 0 8px 32px;border-top:1px solid color-mix(in srgb,var(--border-subtle) 70%,transparent)}.timeline-item:first-child{border-top:1px solid color-mix(in srgb,var(--border-subtle) 60%,transparent)}.timeline-item-card{width:100%}.timeline-item-text{flex:1;min-width:0}.timeline-item-title{display:block;font-weight:600;color:var(--text-light);font-family:'Poppins'}.timeline-item-role{display:block;font-size:.84rem;color:var(--text-muted);margin-top:4px}.timeline-item .doc-links{margin-left:0}.contributions-page .docs-carousel{scrollbar-color:var(--primary) var(--bg)}.contributions-page::-webkit-scrollbar{width:10px;background:var(--surface)}.contributions-page::-webkit-scrollbar-thumb{background:var(--primary);border-radius:6px}.contributions-page .docs-carousel::-webkit-scrollbar{height:8px;background:var(--surface)}.contributions-page .docs-carousel::-webkit-scrollbar-thumb{background:var(--primary);border-radius:4px}.contributions-page .docs-carousel::-webkit-scrollbar-thumb:hover,.contributions-page::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--primary) 75%,#000 25%)}.doc-layout{display:flex;flex-direction:column;justify-content:flex-start;height:100%}.doc-title{font-family:'Poppins';font-size:1.1rem;font-weight:600;color:var(--text-light);margin-top:0}.doc-footer{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-top:16px;width:100%}.doc-card .doc-footer{margin-top:auto}.timeline-item-card .doc-footer{margin-top:12px}.doc-footer .doc-role{font-size:.85rem;color:var(--text-muted);margin:0}.doc-footer .doc-links{display:flex;gap:12px;margin-left:auto;align-items:center}@media (min-width:769px){.doc-card.featured-doc .doc-footer{flex-wrap:nowrap}.doc-card.featured-doc .doc-role{flex:1 1 auto;min-width:0}}@media (max-width:768px){.doc-card,.doc-card.featured-doc{position:static;padding:26px 22px 32px}.doc-footer{position:static;left:auto;right:auto;bottom:auto;flex-direction:column;align-items:flex-start;gap:12px}.doc-card .doc-footer,.timeline-item-card .doc-footer{margin-top:18px}.doc-card .doc-links,.timeline-item-card .doc-links{position:static;justify-content:flex-start;flex-wrap:wrap;gap:12px;margin-left:0}.docs-grid{grid-template-columns:1fr}.timeline-year{padding:16px 20px 18px}.timeline-year::before,.timeline-year::after{display:none}.timeline-year summary{flex-direction:column;align-items:flex-start;padding:0}.timeline-year summary::after{margin-left:0;margin-top:8px}.timeline-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}.timeline-item{padding-left:0;border-top:none}.timeline-item-card{padding:18px;border:1px solid color-mix(in srgb,var(--border-subtle) 80%,transparent);border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,var(--bg))}}}@layer components{.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .45s ease;z-index:2000}.modal.active{opacity:1;pointer-events:auto}body.modal-open{overflow:hidden;padding-right:var(--scrollbar,0px)}.modal-content{position:relative;max-height:82vh;margin:5% 12px;width:min(var(--modal-max),calc(100vw - 24px));max-width:var(--modal-max);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);color:var(--text-light);padding:24px 32px;font-size:1rem;line-height:1.7;border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,0.6),0 0 0 1px color-mix(in srgb,var(--primary) 20%,transparent);transform:translateY(-24px) scale(.96);opacity:0;transition:transform .45s cubic-bezier(.22,.61,.36,1),opacity .45s cubic-bezier(.22,.61,.36,1)}.modal-content.modal-wide{width:min(var(--modal-max-wide,var(--container-max)),calc(100vw - 24px));max-width:var(--modal-max-wide,var(--container-max))}.modal.active .modal-content{transform:none;opacity:1}.modal-content::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;border-radius:16px 16px 0 0;background:var(--primary)}.modal-close{position:absolute;top:10px;right:14px;background:none;border:none;cursor:pointer;font-size:30px;line-height:1;color:var(--text-muted);transition:color .25s;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%}.modal-close:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.modal-close:hover{color:var(--primary);text-shadow:0 0 4px color-mix(in srgb,var(--primary) 40%,transparent)}.modal-title-strip{text-align:center;padding:32px 28px 24px;border-bottom:1px solid color-mix(in srgb,var(--text-light) 10%,transparent)}.modal-title{margin:0;font-family:'Poppins';font-weight:600;font-size:1.9rem;letter-spacing:.3px;color:var(--primary)}.modal-header-details{flex:0 0 100%;display:flex;flex-wrap:wrap;justify-content:space-around;gap:12px;padding:22px 0;background:var(--surface-accent);border-top:1px solid color-mix(in srgb,var(--text-light) 12%,transparent);border-bottom:1px solid color-mix(in srgb,var(--text-light) 12%,transparent);position:relative}.modal-half{flex:1 1 260px;text-align:center;position:relative;padding:12px 0}.header-label{margin:0 0 10px;font-weight:600;font-size:.95rem;color:var(--primary);text-transform:uppercase;letter-spacing:.6px}.tool-badges,.icon-row{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.badge{background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary);padding:4px 10px;border-radius:6px;font-size:.85rem;font-weight:500}.icon-row .icon{width:38px;height:38px}.modal-body{flex:1 1 auto;display:flex;flex-wrap:wrap;gap:32px;padding:0 32px 32px;overflow-y:auto;align-items:flex-start}.modal-text{flex:.9 1 320px;max-width:520px;min-width:0;overflow-wrap:anywhere;word-break:break-word;hyphens:auto;font-size:1rem;line-height:1.75;color:var(--text-light)}.modal-text p{margin:0 0 .85em}.modal-text ul{margin:.5em 0 1em}.modal-text h4{color:var(--primary);margin-top:1em;margin-bottom:.5em;font-size:1.2rem}.modal-text ul{padding-left:20px}.modal-subtitle{margin-top:8px;color:var(--text-muted)}.modal-image{position:relative;flex:1 1 520px;width:min(var(--modal-media-max-width),100%);max-height:var(--modal-media-height);aspect-ratio:var(--media-aspect,auto);align-self:flex-start;min-width:320px;display:grid;place-items:center;border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--surface) 92%,#05080c 8%);box-shadow:0 6px 24px rgba(0,0,0,.4);height:auto}.modal-image picture{width:100%;height:auto;display:grid;place-items:center}.modal-image img,.modal-image video{width:auto;height:auto;max-width:100%;max-height:var(--modal-media-height);aspect-ratio:var(--media-aspect,auto);border-radius:0;display:block;object-fit:contain}.modal-content:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.media-zoomable{position:relative}.media-zoom-toggle{position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:10px;border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);background:color-mix(in srgb,var(--surface) 92%,#02060c 8%);color:var(--text-light);cursor:pointer;box-shadow:0 8px 18px rgba(0,0,0,.26);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease,background .2s ease}.media-zoom-toggle:hover,.media-zoom-toggle:focus-visible{transform:translateY(-1px);box-shadow:0 12px 24px rgba(0,0,0,.32);border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--surface) 96%,#02060c 4%)}.media-zoom-icon{display:inline-flex;width:18px;height:18px}.media-zoom-icon svg{width:18px;height:18px;display:block;stroke:currentColor;fill:none;stroke-width:2}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body.media-viewer-open{overflow:hidden}.media-viewer{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;--viewer-max-width:min(1100px,96vw);--viewer-max-height:calc(100vh - 48px);background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:2400}.media-viewer.active{opacity:1;pointer-events:auto}.media-viewer-content{position:relative;width:auto;height:auto;max-width:var(--viewer-max-width);max-height:var(--viewer-max-height);padding:clamp(12px,3vw,20px);border-radius:18px;background:var(--surface);border:1px solid color-mix(in srgb,var(--primary) 24%,transparent);box-shadow:0 28px 56px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;overflow:hidden;box-sizing:border-box}.media-viewer-frame{width:100%;height:100%;display:grid;place-items:center;max-height:100%;max-width:100%;min-height:0;padding:4px;box-sizing:border-box}.media-viewer img,.media-viewer video{max-width:100%;max-height:100%;width:100%;height:100%;border-radius:14px;box-shadow:0 20px 48px rgba(0,0,0,.45);background:var(--surface);object-fit:contain}.media-viewer-embed{width:100%;height:100%;border:none;border-radius:14px;background:var(--surface);box-shadow:0 20px 48px rgba(0,0,0,.45)}.media-viewer-video{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}.media-viewer-close{position:absolute;top:10px;right:12px;width:44px;height:44px;z-index:3;border:none;border-radius:50%;background:color-mix(in srgb,var(--surface) 92%,#05080c 8%);color:var(--text-light);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 12px 24px rgba(0,0,0,.32);transition:transform .2s ease,color .2s ease,box-shadow .2s ease}.media-viewer-close:hover,.media-viewer-close:focus-visible{transform:translateY(-1px);color:var(--primary);box-shadow:0 16px 30px rgba(0,0,0,.38);outline:2px solid var(--primary);outline-offset:2px}@media (max-width:768px){.modal-image{min-width:0;width:100%;max-height:clamp(240px,62vh,520px)}.media-zoom-toggle{width:34px;height:34px;top:8px;right:8px}.media-viewer{--viewer-max-width:96vw;--viewer-max-height:min(78vh,620px)}.media-viewer-content{width:auto;height:auto;max-height:calc(100vh - 20px);padding:12px;border-radius:14px}.media-viewer img,.media-viewer video,.media-viewer-video{max-height:100%}.media-viewer-close{width:40px;height:40px;top:8px;right:8px}}.modal-copy{position:absolute;top:16px;right:56px;background:transparent;color:var(--text-muted);border:1px solid var(--surface-accent);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:.85rem;transition:color .2s,border-color .2s,transform .2s}.modal-copy:hover,.modal-copy:focus-visible{color:var(--primary);border-color:var(--primary);transform:translateY(-1px)}.modal-toast{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);background:color-mix(in srgb,var(--surface) 85%,#000 15%);color:var(--text-light);border:1px solid var(--surface-accent);padding:6px 10px;border-radius:8px;font-size:.85rem;box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;transition:opacity .25s ease}.modal-toast.show{opacity:0.92}.modal-divider{position:absolute;left:50%;top:20%;width:1px;height:60%;background:color-mix(in srgb,var(--text-light) 12%,transparent);transform:translateX(-50%)}#contact-modal{z-index:2700}#contact-modal .modal-content{width:min(760px,calc(100vw - 24px));margin-inline:auto}#contact-modal .modal-body{overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable;flex-direction:column;align-items:stretch;gap:20px;padding:24px clamp(16px,6vw,32px) 28px}#contact-modal.contact-success .contact-form{display:none !important}#contact-modal.contact-success .contact-form-success{display:block !important}#contact-modal .contact-form,#contact-modal .contact-form-success{max-width:100%;min-width:0}.contact-form{display:flex;flex-direction:column;gap:18px;width:100%}.contact-form .form-field{display:flex;flex-direction:column;gap:6px}.contact-form label{font-weight:600;font-size:.95rem;color:var(--text-light)}.contact-form input:not([type="checkbox"]):not([type="radio"]),.contact-form textarea{width:100%;box-sizing:border-box;border-radius:10px;border:1px solid color-mix(in srgb,var(--text-light) 18%,transparent);background:color-mix(in srgb,var(--surface) 90%,#0a0f18 10%);color:var(--text-light);padding:12px 14px;font:inherit;transition:border-color .2s ease,box-shadow .2s ease}.contact-form input:not([type="checkbox"]):not([type="radio"]):focus,.contact-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 30%,transparent);outline:none}.contact-form input[type="checkbox"],.contact-form input[type="radio"]{width:18px;height:18px;margin:0;padding:0;accent-color:color-mix(in srgb,var(--primary) 85%,#ffffff 15%)}.contact-form textarea{min-height:160px;resize:vertical}.contact-form .honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none}.contact-form .form-field.has-error label{color:var(--danger)}.contact-form .form-field.has-error input,.contact-form .form-field.has-error textarea{border-color:var(--danger);box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 40%,transparent)}.contact-form .field-required{font-size:.85rem;color:color-mix(in srgb,var(--text-light) 70%,var(--danger) 30%);font-weight:500;margin-left:6px}.contact-form .field-required[hidden]{display:none}.contact-form-status{min-height:1.5rem;font-size:.95rem;color:var(--text-muted);min-width:0;overflow-wrap:anywhere;word-break:break-word}.contact-form-status:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.contact-form-status[data-tone='success']{color:var(--success)}.contact-form-status[data-tone='warning']{color:var(--warning)}.contact-form-status[data-tone='error']{color:var(--danger)}.contact-form-alt{display:flex;gap:12px}.contact-form-alt[hidden]{display:none}.contact-form .form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;width:100%}.contact-form .form-actions > *{flex:1 1 200px}.contact-form .btn-primary{gap:10px;justify-content:center}.contact-form .btn-primary .btn-spinner{display:none;width:16px;height:16px;border-radius:50%;border:2px solid color-mix(in srgb,#fff 85%,var(--primary) 15%);border-right-color:transparent;animation:modal-spin 1s linear infinite}.contact-form .btn-primary.is-busy .btn-spinner{display:inline-block}.contact-form .btn-primary.is-busy .btn-label{opacity:.7}@keyframes modal-spin{to{transform:rotate(360deg)}}.contact-form-note{color:var(--text-muted);font-size:.85rem}.contact-form-success{width:100%;box-sizing:border-box;padding:32px;border-radius:16px;text-align:center;background:color-mix(in srgb,var(--surface) 95%,#020407 5%);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);box-shadow:0 18px 40px rgba(0,0,0,.26);min-width:0;overflow-wrap:anywhere;word-break:break-word}.contact-form-success[hidden]{display:none}.contact-form-success .success-icon{width:52px;height:52px;border-radius:50%;margin:0 auto 12px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--success) 25%,transparent);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 45%,transparent)}.contact-form-success .success-icon::before{content:"✓";font-size:1.6rem;font-weight:600}.contact-form-success h4{margin:8px 0;font-size:1.4rem;color:var(--text-light);overflow-wrap:anywhere;word-break:break-word}.contact-form-success p{margin:0 auto 18px;max-width:36ch;color:var(--text-muted);overflow-wrap:anywhere;word-break:break-word}.contact-form-success .form-actions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%}.contact-form-success .form-actions > *{width:100%;max-width:320px;box-sizing:border-box}.contact-form-success .form-actions .btn-secondary{min-width:0}html.no-js #contact-modal{position:static;inset:auto;display:block;opacity:1;pointer-events:auto;background:transparent;backdrop-filter:none;margin-top:24px}html.no-js #contact-modal .modal-content{max-height:none;margin:0 auto;transform:none;opacity:1;box-shadow:0 6px 24px rgba(0,0,0,.35)}html.no-js #contact-modal .modal-body{overflow:visible}html.no-js #contact-modal .modal-close{display:none}html.no-js #contact-form-toggle{display:none}#smartSentence-modal .modal-body{overflow-x:hidden}#smartSentence-modal .modal-embed{overflow-x:hidden}.modal-body.stacked{display:grid;grid-template-columns:1fr;flex-direction:column;align-items:stretch;gap:clamp(18px,2.5vw,26px);overflow-x:hidden}.modal-body.stacked > *{width:100%}.modal-body.stacked .modal-embed{order:99}.modal-body.stacked .modal-text{max-width:none;width:100%;flex:0 0 auto}.modal-body.stacked .modal-header-details{width:100%}.modal-tableau-layout{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;gap:clamp(14px,2vw,20px);width:100%}.modal-tableau-layout .modal-text{max-width:none;width:100%}.modal-tableau-layout .modal-embed{width:100%;max-width:none;margin:0;flex:0 0 auto}.modal-tableau-layout .modal-embed iframe{min-height:clamp(520px,68vh,920px);height:clamp(520px,70vh,980px)}.modal-embed{width:100%;min-width:0;flex:1 1 420px;align-self:flex-start;margin:clamp(1rem,2vh,1.6rem) auto;padding:clamp(12px,3vw,18px);border-radius:22px;border:1px solid color-mix(in srgb,var(--primary) 24%,transparent);background:color-mix(in srgb,var(--surface) 92%,#03060a 8%);box-shadow:0 28px 48px rgba(0,0,0,.35);overflow:hidden;position:relative}.modal-embed-loader{position:absolute;inset:0;display:grid;place-items:center;gap:10px;background:color-mix(in srgb,var(--surface) 88%,#020507 12%);color:var(--text);text-align:center;opacity:0;pointer-events:none;transition:opacity 160ms ease;z-index:2}.modal-embed.is-loading .modal-embed-loader{opacity:1;pointer-events:auto}.modal-embed-spinner{width:34px;height:34px;border-radius:50%;border:3px solid color-mix(in srgb,var(--primary) 55%,#fff 45%);border-right-color:transparent;animation:modal-spin 1s linear infinite}.modal-embed-text{font-size:.92rem;color:var(--text-muted)}.modal-embed iframe{width:100%;border:none;display:block;border-radius:16px;background:var(--surface);min-height:320px;box-shadow:0 18px 36px rgba(0,0,0,.32);box-sizing:border-box}.tableau-scale-inner{transform-origin:top left}@media (max-width:768px){.modal-header-details{flex-direction:column;align-items:center}.modal-half{flex:1 1 auto;width:100%}.modal-divider{position:static;width:80%;height:1px;margin:12px 0;transform:none}.modal-body{padding:16px}#contact-modal .modal-body{padding:20px 16px 24px}.contact-form .form-actions{flex-direction:column;align-items:stretch}.contact-form .form-actions > *{width:100%;flex:0 0 auto}.contact-form-success .form-actions{flex-direction:column;align-items:stretch}.contact-form-success .form-actions .btn-secondary{min-width:0;width:100%}}}@layer layout{.footer{margin-top:auto;background:#090C10;color:var(--text-muted);text-align:center;padding:32px 0;display:flex;flex-direction:column;align-items:center;gap:18px;font-size:14px}.footer.footer-classic{text-align:left;padding:clamp(1.9rem,4.5vh,2.6rem) 0 clamp(1.2rem,3vh,1.6rem);gap:0}.footer.footer-classic .footer-inner{width:100%;display:grid;gap:clamp(14px,3vw,18px)}.footer.footer-classic .footer-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:clamp(14px,3.2vw,22px);align-items:start}.footer.footer-classic .footer-col{display:grid;gap:6px;align-content:start}.footer.footer-classic .footer-col-title{margin:0 0 2px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--text-muted) 88%,#ffffff 12%);font-family:'Poppins';font-weight:600}.footer.footer-classic .footer-link{display:inline-flex;align-items:center;justify-content:flex-start;padding:1px 0;border:none;background:none;color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%);font-size:12.5px;font-family:'Inter';line-height:1.6;text-decoration:none;cursor:pointer;appearance:none;text-align:left}.footer.footer-classic .footer-link:hover{color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);text-decoration:underline;text-underline-offset:3px}.footer.footer-classic .footer-link:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 70%,#ffffff 30%);outline-offset:3px;border-radius:8px}.footer.footer-classic .footer-meta{margin:0;padding-top:clamp(12px,2.4vh,14px);border-top:1px solid color-mix(in srgb,var(--primary) 12%,transparent);font-size:12.5px;font-family:'Poppins';font-weight:500;color:color-mix(in srgb,var(--text-light) 72%,var(--text-muted) 28%)}@media (max-width:640px){.footer.footer-classic{text-align:center}.footer.footer-classic .footer-link{justify-content:center;text-align:center}}}@layer utilities{.featured-track{display:flex;gap:24px;overflow-x:auto;scroll-behavior:smooth;margin-inline:-16px;padding:8px 16px}.featured-track::-webkit-scrollbar{display:none}.featured-card{flex:0 0 80%;max-width:320px;scroll-snap-align:center;border-radius:14px;overflow:hidden;cursor:pointer;background:var(--surface);transition:transform .35s,box-shadow .35s}.featured-card img{width:100%;height:200px;object-fit:cover;display:block}.featured-card .card-body{padding:20px}.featured-card h3{margin:0 0 4px}.featured-card p{margin:0;color:var(--text-muted)}.featured-card:hover{transform:translateY(-8px)scale(1.04);box-shadow:0 14px 34px color-mix(in srgb,var(--primary) 32%,transparent),0 6px 20px rgba(0,0,0,.55)}#portfolio-carousel{position:relative;overflow:hidden;max-width:var(--container-max);margin-inline:auto}#portfolio-carousel-section{margin-top:24px;margin-bottom:24px}#portfolio-carousel-section .section-title{text-align:center}#portfolio-carousel .carousel-track{display:flex;gap:24px;transition:transform .6s cubic-bezier(.22,.61,.36,1);will-change:transform}.carousel-card{--carousel-scale:.9;flex:0 0 70%;max-width:340px;opacity:.7;transform:translateZ(0) scale(var(--carousel-scale));transition:transform .5s cubic-bezier(.22,.61,.36,1),opacity .5s cubic-bezier(.22,.61,.36,1),box-shadow .35s cubic-bezier(.22,.61,.36,1);will-change:transform;backface-visibility:hidden;-webkit-transform:translateZ(0) scale(var(--carousel-scale))}.carousel-card.active{--carousel-scale:1;opacity:1}.carousel-card{user-select:none}.carousel-card img,.carousel-card video{-webkit-user-drag:none;user-select:none;pointer-events:none}#portfolio-carousel .carousel-card:hover{transform:translateZ(0) translateY(-4px) scale(var(--carousel-scale))}.carousel-dots{text-align:center;margin-top:16px}.carousel-dot{display:inline-block;width:24px;height:24px;padding:0;line-height:0;border-radius:50%;border:2px solid var(--primary);background:transparent;cursor:pointer;aspect-ratio:1;margin:0 6px}.carousel-dot.active{background:var(--primary)}#portfolio-carousel.dragging{cursor:grabbing;user-select:none}@media (max-width:768px){.carousel-card{flex:0 0 80%}}.contact-page{scrollbar-color:var(--primary) var(--surface)}.contact-page::-webkit-scrollbar{width:10px;background:var(--surface)}.contact-page::-webkit-scrollbar-thumb{background:var(--primary);border-radius:6px}.contact-page::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--primary) 75%,#000 25%)}#cta{padding:clamp(3.2rem,6vw,4.6rem) 0}#cta .wrapper{display:flex;justify-content:center}#cta #cta-link{display:flex;flex-direction:column;gap:clamp(1.1rem,2vw,1.6rem);align-items:center;max-width:640px;border-radius:24px;padding:clamp(2.2rem,4vw,2.8rem) clamp(2.2rem,4vw,3.2rem);background:color-mix(in srgb,var(--surface) 88%,#000 12%);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);box-shadow:0 22px 48px rgba(0,0,0,.32);text-align:center}#cta #cta-link h2{margin:0}#cta #cta-link p{margin:0;color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%)}#cta #cta-link > div{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap}.burger{display:none}@media (max-width:768px){.burger{display:block;margin-left:auto;padding:8px;background:none;border:none;cursor:pointer;z-index:1001}.burger .bar{display:block;width:22px;height:3px;margin:4px 0;background:var(--text-light);transition:transform .3s,opacity .3s}.burger[aria-expanded="true"] .bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.burger[aria-expanded="true"] .bar:nth-child(2){opacity:0}.burger[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav{--nav-block-padding:clamp(12px,3vw,18px);--nav-inline-padding:clamp(20px,6vw,28px);--nav-mobile-dropdown-max:calc(100svh - var(--nav-height,72px) - clamp(32px,12vh,96px))}.nav .wrapper{padding:var(--nav-block-padding) var(--nav-inline-padding);gap:16px}.nav-row{position:absolute;top:calc(100% - var(--nav-border-width));left:50%;right:auto;width:min(420px,calc(100% - 32px));box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:16px;border-radius:0 0 20px 20px;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--surface) 78%);border-top:none;background:var(--surface);box-shadow:0 24px 48px rgba(0,0,0,.45);transform:translateX(-50%);opacity:0;pointer-events:none;max-height:0;overflow:hidden;-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);transition:max-height .28s ease,-webkit-clip-path .28s ease,clip-path .28s ease,opacity .2s ease}.nav-row.open{opacity:1;max-height:var(--nav-mobile-dropdown-max,calc(100svh - var(--nav-height,72px) - 48px));pointer-events:auto;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.nav-row,.nav-row.open{scrollbar-width:none}.nav-row::-webkit-scrollbar{width:0;height:0}.nav-row .nav-link{width:100%;justify-content:center;text-align:center;gap:8px;padding:14px 18px;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);border-radius:14px;font-size:1.02rem;letter-spacing:.01em;background:color-mix(in srgb,var(--surface) 86%,#020509 14%);box-shadow:0 16px 32px rgba(0,0,0,.28);transition:color .25s ease,border-color .25s ease,background .25s ease,transform .25s ease}.nav-row .nav-link::after{display:none}.nav-row .nav-link:hover,.nav-row .nav-link:focus-visible{color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%);border-color:color-mix(in srgb,var(--primary) 42%,transparent);background:color-mix(in srgb,var(--surface) 92%,#0b1520 8%);transform:translateY(-1px)}.nav-row .nav-link.is-current{color:color-mix(in srgb,var(--text-light) 94%,#ffffff 6%);border-color:color-mix(in srgb,var(--primary) 36%,transparent)}.nav-row .nav-link + .nav-link{margin-top:4px}.nav-row .nav-link.nav-link-cta{margin-top:10px;justify-content:center;padding:14px 18px;border-radius:999px;border:none;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 92%,#ffffff 8%) 0%,color-mix(in srgb,var(--primary) 70%,#071219 30%) 100%);box-shadow:0 22px 42px rgba(0,0,0,.36)}.nav-search{order:-1}.nav-search-field{width:100%}.nav-search-input{width:100%;box-sizing:border-box;padding:14px 52px 14px 18px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);background:color-mix(in srgb,var(--surface) 86%,#020509 14%);box-shadow:0 16px 32px rgba(0,0,0,.28);font-size:1.02rem}.nav-search-button{right:10px;width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--primary) 18%,var(--surface) 82%);border-color:color-mix(in srgb,var(--primary) 32%,transparent)}.nav-item{width:100%;display:block}.nav-item-portfolio .nav-link-has-menu,.nav-item-contributions .nav-link-has-menu,.nav-item-resume .nav-link-has-menu,.nav-item-contact .nav-link-has-menu{gap:0}.nav-item-portfolio .nav-link-caret,.nav-item-contributions .nav-link-caret,.nav-item-resume .nav-link-caret,.nav-item-contact .nav-link-caret{display:none}.nav-item-portfolio .nav-dropdown,.nav-item-contributions .nav-dropdown,.nav-item-resume .nav-dropdown,.nav-item-contact .nav-dropdown{display:none !important}.grid-container{grid-template-columns:1fr;margin-inline:auto;width:100%;max-width:min(var(--container-max),480px);justify-items:stretch;gap:clamp(18px,5vw,26px)}.hero-kpis.grid-container{margin:clamp(1.6rem,4.5vh,2.4rem) auto 0;padding-inline:clamp(10px,2vw,18px);width:100%;max-width:min(var(--container-max),1100px);box-sizing:border-box;gap:clamp(1.1rem,4.5vw,1.8rem);display:flex;flex-wrap:wrap;justify-content:center}.hero-kpis .hero-kpi-link{box-sizing:border-box;width:100%;max-width:100%;margin-inline:auto}.brand{flex-shrink:1;min-width:0;overflow:hidden}.brand-name{white-space:normal;word-break:break-word;text-align:left}.cta-group{display:flex;flex-direction:column;gap:12px;align-items:center;width:90%;max-width:100%;margin:0 auto}.cta-group .hero-cta{width:90%;text-align:center;align-items:center;padding:16px;font-size:1.05rem}.hero h1{font-size:clamp(28px,8vw,34px);line-height:1.2;text-align:center}.hero p{font-size:clamp(16px,4.5vw,18px);text-align:center}.hero-status{font-size:0.78rem;margin-inline:auto}#cta .wrapper{padding-inline:clamp(18px,6vw,28px)}#cta #cta-link{align-items:center;text-align:center}#cta #cta-link p{text-align:center}.btn-primary,.btn-secondary{padding:14px 28px;font-size:1rem}}.modal-content{scrollbar-color:var(--primary) var(--surface)}.modal-content::-webkit-scrollbar{width:10px;background:var(--surface)}.modal-content::-webkit-scrollbar-thumb{background:var(--primary);border-radius:6px}.modal-content::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--primary) 75%,#000 25%)}.docs-carousel.dragging{cursor:grabbing;user-select:none}.skill-link{position:relative;border:2px solid var(--interactive-border);transition:transform var(--motion-base) var(--easing-standard),box-shadow var(--motion-base) var(--easing-standard),border-color var(--motion-fast) var(--easing-standard),background var(--motion-fast) var(--easing-standard),color var(--motion-fast) var(--easing-standard);background:var(--interactive-bg)}.skill-link small{display:block;margin-top:6px;color:var(--text-2)}@media (hover:hover) and (pointer:fine){.skill-link:hover,.skill-link:focus-visible{transform:translateY(var(--hover-lift));box-shadow:var(--interactive-shadow-hover);border-color:var(--interactive-border-hover);cursor:pointer}.skill-link:hover small,.skill-link:focus-visible small{color:var(--text-1)}}.icon-row a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;padding:6px;background:radial-gradient(circle at 30% 30%,#ffffff 0%,#f2f4f6 65%,#e8ebed 100%);border:1px solid rgba(0,0,0,.06);box-shadow:0 2px 6px rgba(0,0,0,.25),inset 0 1px 2px rgba(255,255,255,.6);transition:transform .25s,box-shadow .25s;cursor:pointer}.icon-row a:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 6px 16px rgba(0,0,0,.30),inset 0 1px 2px rgba(255,255,255,.65)}.icon-row img.icon{width:30px;height:30px}.nav{position:fixed;inset:0 auto auto 0;width:100%;z-index:1001;background:var(--surface);border-bottom:1px solid var(--border-subtle)}body.menu-open::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:1000;pointer-events:none}body.menu-open{overflow:hidden;overscroll-behavior:none;touch-action:none}.hero{padding-top:0;padding-bottom:0}@media(max-width:768px){.reveal{opacity:1 !important;transform:none !important}}@media(max-width:768px){.nav{--brand-logo-size:clamp(44px,10vw,56px);--brand-title-size:clamp(18px,5vw,22px);--brand-tagline-size:clamp(14px,4.4vw,18px)}.nav .wrapper{padding-inline:clamp(12px,5vw,20px);gap:12px;align-items:center}.brand{flex:1 1 auto;min-width:0}.wrapper{margin-inline:5%}}@media (max-width:768px) and (orientation:landscape){:root{--nav-height:48px}.nav{--brand-logo-size:clamp(36px,7vw,44px);--brand-title-size:clamp(16px,4vw,19px);--brand-tagline-size:clamp(13px,3.4vw,16px)}.nav .wrapper{padding-block:12px;gap:clamp(8px,2vw,20px)}}body{padding-top:var(--nav-height,72px)}body::before{content:"";position:fixed;inset:0;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(4px);opacity:0;pointer-events:none;z-index:1000;transition:opacity .45s ease}body.menu-open::before{opacity:1}.brand{gap:clamp(10px,2vw,16px)}.brand-name{position:relative}@media (max-width:768px){.brand{align-items:center;gap:clamp(8px,3vw,12px)}.brand-logo{--mobile-logo-target:calc(var(--nav-height,96px) * 0.5);width:max(48px,var(--mobile-logo-target));height:max(48px,var(--mobile-logo-target));min-width:max(48px,var(--mobile-logo-target));display:block}.brand-name{flex-direction:column;align-items:flex-start;gap:6px}.brand-divider{display:none}.brand-title{display:inline-block}.brand-title::after{content:"";display:block;width:100%;height:2px;margin:4px 0 2px;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 18%,transparent) 0%,color-mix(in srgb,var(--primary) 72%,transparent) 52%,color-mix(in srgb,var(--primary) 30%,transparent) 100%);border-radius:2px}.brand-tagline{display:flex;flex-direction:column;align-items:flex-start;row-gap:2px}.brand-tagline-chunk{white-space:nowrap}}.see-less-float{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);display:none;z-index:1000}.see-more-wrap.sticky{position:sticky;bottom:1rem;width:100%;text-align:center;z-index:1000;transition:opacity 0.3s ease}.see-more-wrap.sticky.fade-out{opacity:0;pointer-events:none}body[data-page="home"]{--home-band-a:var(--surface);--home-band-b:var(--surface-accent);--home-band-border:1px solid color-mix(in srgb,var(--primary) 14%,transparent)}body[data-page="home"] main > section:not(.hero){--home-band-base:var(--home-band-a);background:linear-gradient(120deg,color-mix(in srgb,var(--home-band-base) 96%,#000 4%) 0%,color-mix(in srgb,var(--home-band-base) 88%,#000 12%) 100%);border-block:var(--home-band-border)}body[data-page="home"] main > section:not(.hero):nth-of-type(odd){--home-band-base:var(--home-band-b)}.error-page #main{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 1rem;min-height:calc(100vh - var(--nav-height,0px) - 64px)}}@layer utilities{.reveal{opacity:0;transform:translateY(50px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}.reveal.active{opacity:1;transform:none}html.no-js .reveal{opacity:1;transform:none}.interest-pad{padding:48px 0}#filters{margin-top:0;transition:height .45s cubic-bezier(.22,.61,.36,1),padding .45s cubic-bezier(.22,.61,.36,1),opacity .35s ease;will-change:height,padding,opacity}#filters.grid-fade{opacity:0 !important}#carousel-gap{padding:32px 0;background:transparent;transition:padding .45s cubic-bezier(.22,.61,.36,1),opacity .35s ease;will-change:padding,opacity}#carousel-gap.grid-fade{opacity:0 !important}.contact-big{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;padding:32px}@media (max-width:768px){.contact-big{padding:28px 0 32px}}.contact-big .contact-card{padding:32px}.contact-card i{font-size:38px}#projects.grid{content-visibility:auto;contain-intrinsic-size:800px}.docs-grid{content-visibility:auto;contain-intrinsic-size:600px}.featured-track,.cert-track{content-visibility:auto;contain-intrinsic-size:220px}.health-pill[data-state="warming"]::after{content:"";width:10px;height:10px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:modal-spin .9s linear infinite}@media (prefers-reduced-motion:reduce){.health-pill[data-state="warming"]::after{animation:none}}}@layer utilities{p a:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link):not(.hero-kpi-link),li a:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link):not(.hero-kpi-link),.modal-text a:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link){color:var(--link);text-decoration:underline;text-underline-offset:2px}p a:hover:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link):not(.hero-kpi-link),li a:hover:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link):not(.hero-kpi-link),.modal-text a:hover:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link){color:var(--link-hover)}.hero-kpis .hero-kpi-link,.hero-kpis .hero-kpi-link:hover,.hero-kpis .hero-kpi-link:visited{text-decoration:none}.surface-band{padding:clamp(2.8rem,6vh,3.8rem) 0}.section-title{margin:0;font-size:clamp(1.85rem,3vw,2.35rem);line-height:1.25;letter-spacing:.02em}.section-subtitle{margin:10px 0 0;max-width:72ch;color:var(--text-muted);font-size:1.02rem;line-height:1.7}}@layer utilities{}@layer utilities{.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:absolute;left:10px;top:10px;width:auto;height:auto;padding:8px 12px;background:#fff;color:#000;z-index:1000}:focus-visible{outline:var(--focus-ring);outline-offset:3px}}@layer overrides{:is( .btn-primary,.btn-secondary,.btn-ghost,.btn-icon,.skill-link,.icon-info,.nav-link.nav-link-cta,.nav-dropdown-link,.nav-dropdown-card,.nav-prefilter-link,.nav-highlight-card,.nav-project-card,.project-pager-link,.project-demo-tab ){transition:transform var(--motion-base) var(--easing-standard),box-shadow var(--motion-base) var(--easing-standard),border-color var(--motion-fast) var(--easing-standard),background var(--motion-fast) var(--easing-standard),color var(--motion-fast) var(--easing-standard)}:is( .btn-secondary,.btn-ghost,.btn-icon,.skill-link,.icon-info,.nav-dropdown-link,.nav-dropdown-card,.nav-prefilter-link,.nav-highlight-card,.nav-project-card,.project-pager-link,.project-demo-tab ){border-color:var(--interactive-border);color:var(--interactive-text)}:is( .btn-primary,.btn-secondary,.btn-ghost,.btn-icon,.skill-link,.icon-info,.nav-link,.nav-dropdown-link,.nav-dropdown-card,.nav-prefilter-link,.nav-highlight-card,.nav-project-card,.project-pager-link,.project-demo-tab ):focus-visible{outline:var(--focus-ring);outline-offset:3px}@media (hover:hover) and (pointer:fine){:is( .btn-secondary,.btn-ghost,.btn-icon,.skill-link,.icon-info,.nav-dropdown-link,.nav-dropdown-card,.nav-prefilter-link,.nav-highlight-card,.nav-project-card,.project-pager-link,.project-demo-tab ):hover{transform:translateY(var(--hover-lift));box-shadow:var(--interactive-shadow-hover);border-color:var(--interactive-border-hover);color:var(--text-1)}:is( .btn-primary,.nav-link.nav-link-cta,.btn-icon.btn-icon-featured ):hover{transform:translateY(var(--hover-lift-strong));box-shadow:var(--interactive-shadow-strong)}}@media (hover:none),(pointer:coarse){:is( .btn-primary,.btn-secondary,.btn-ghost,.btn-icon,.skill-link,.icon-info,.nav-link.nav-link-cta,.nav-dropdown-link,.nav-dropdown-card,.nav-prefilter-link,.nav-highlight-card,.nav-project-card,.project-pager-link,.project-demo-tab ){transform:none !important}}:is( .btn-secondary,.btn-ghost,.btn-icon,.skill-link,.icon-info,.nav-dropdown-link,.nav-dropdown-card,.nav-prefilter-link,.nav-highlight-card,.nav-project-card,.project-pager-link,.project-demo-tab ){background:var(--interactive-bg)}:is( .btn-secondary:hover,.btn-ghost:hover,.btn-icon:hover,.skill-link:hover,.icon-info:hover,.nav-dropdown-link:hover,.nav-dropdown-card:hover,.nav-prefilter-link:hover,.nav-highlight-card:hover,.nav-project-card:hover,.project-pager-link:hover,.project-demo-tab:hover ){background:var(--interactive-bg-hover)}:is( .cookie-settings__toggle.btn-icon-featured,.speed-dial__toggle.btn-icon-featured,.speed-dial .speed-dial__action--direct.btn-icon ){background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1,var(--primary)) 88%,#ffffff 12%) 0%,color-mix(in srgb,var(--accent-3,var(--primary)) 65%,#071219 35%) 100% );color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%);border-color:color-mix(in srgb,var(--accent-1,var(--primary)) 55%,transparent);box-shadow:0 16px 32px rgba(0,0,0,.32)}@media (hover:hover) and (pointer:fine){:is( .cookie-settings__toggle.btn-icon-featured,.speed-dial__toggle.btn-icon-featured,.speed-dial .speed-dial__action--direct.btn-icon ):hover,:is( .cookie-settings__toggle.btn-icon-featured,.speed-dial__toggle.btn-icon-featured,.speed-dial .speed-dial__action--direct.btn-icon ):focus-visible{background:linear-gradient( 135deg,color-mix(in srgb,var(--accent-1,var(--primary)) 94%,#ffffff 6%) 0%,color-mix(in srgb,var(--accent-3,var(--primary)) 72%,#030b12 28%) 100% );color:color-mix(in srgb,#ffffff 96%,var(--bg) 4%);border-color:color-mix(in srgb,var(--accent-1,var(--primary)) 68%,transparent);box-shadow:0 24px 46px rgba(0,0,0,.4)}}}@layer utilities{@supports not (color:color-mix(in srgb,black,white)){.project-metric{background:rgba(35,150,173,0.15)}.hero{background:rgba(22,27,34,0.5)}.modal{background:rgba(13,17,23,0.88)}.modal-content{box-shadow:0 10px 28px rgba(13,17,23,0.6),0 0 0 1px rgba(35,150,173,0.15)}p a:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link),li a:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link),.modal-text a:not(.btn-primary):not(.btn-secondary):not(.doc-link):not(.pcz-link){color:#44A6B9}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}}}