@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;--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);--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;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;overflow-x:hidden;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(var(--vh,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}@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{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{body[data-page="home"] .jump-panel{--jump-collapsed:56px;--jump-expanded:156px;--jump-shift:0px;--jump-hide-offset:calc(100% + 24px);position:fixed;right:16px;top:50%;transform:translateY(-50%) translateX(var(--jump-shift));z-index:1050;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;padding:10px 4px;width:var(--jump-collapsed);border-radius:18px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 94%,#000 6%) 0%,color-mix(in srgb,var(--surface) 86%,#000 14%) 100%);box-shadow:0 16px 38px rgba(0,0,0,.35);backdrop-filter:blur(10px);overflow:hidden;transition:width .24s cubic-bezier(.2,.9,.2,1),background .2s ease,border-color .2s ease,transform .24s cubic-bezier(.2,.9,.2,1),opacity .2s ease;will-change:width,transform,opacity}body[data-page="home"] .jump-panel:hover,body[data-page="home"] .jump-panel:focus-within{width:var(--jump-expanded);border-color:color-mix(in srgb,var(--primary) 32%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 96%,#000 4%) 0%,color-mix(in srgb,var(--surface) 88%,#000 12%) 100%)}body[data-page="home"] .jump-panel-link{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:0;padding:10px 6px;min-height:44px;border-radius:14px;border:1px solid transparent;color:color-mix(in srgb,var(--text-light) 88%,#ffffff 12%);text-decoration:none;transition:background .2s ease,color .2s ease,transform .2s ease,border-color .2s ease,gap .24s cubic-bezier(.2,.9,.2,1)}body[data-page="home"] .jump-panel:hover .jump-panel-link,body[data-page="home"] .jump-panel:focus-within .jump-panel-link{justify-content:flex-start;gap:8px}body[data-page="home"] .jump-panel-link.is-active,body[data-page="home"] .jump-panel-link[aria-current="location"]{background:color-mix(in srgb,var(--primary) 22%,transparent);border-color:color-mix(in srgb,var(--primary) 40%,transparent);color:color-mix(in srgb,#ffffff 96%,var(--bg) 4%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 20%,transparent)}body[data-page="home"] .jump-panel-link.is-active .jump-panel-dot,body[data-page="home"] .jump-panel-link[aria-current="location"] .jump-panel-dot{background:color-mix(in srgb,var(--primary) 70%,transparent);border-color:color-mix(in srgb,var(--primary) 90%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 30%,transparent)}body[data-page="home"] .jump-panel-link:hover{background:color-mix(in srgb,var(--primary) 18%,transparent);border-color:color-mix(in srgb,var(--primary) 30%,transparent);color:color-mix(in srgb,#ffffff 92%,var(--bg) 8%);transform:translateY(-1px)}body[data-page="home"] .jump-panel-link:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 60%,#ffffff 40%);outline-offset:2px}body[data-page="home"] .jump-panel-dot{width:10px;height:10px;border-radius:999px;background:color-mix(in srgb,var(--primary) 38%,transparent);border:2px solid color-mix(in srgb,var(--primary) 62%,transparent);flex-shrink:0}body[data-page="home"] .jump-panel-text{max-width:0;min-width:0;opacity:0;overflow:hidden;white-space:nowrap;transform:translateX(6px);transition:max-width .24s cubic-bezier(.2,.9,.2,1),opacity .18s ease,transform .24s cubic-bezier(.2,.9,.2,1);font-size:.86rem;letter-spacing:.01em}body[data-page="home"] .jump-panel:hover .jump-panel-text,body[data-page="home"] .jump-panel:focus-within .jump-panel-text{max-width:124px;opacity:1;transform:none}body[data-page="home"] .jump-panel-action{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:0;padding:8px 6px;min-height:40px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:transparent;color:color-mix(in srgb,var(--text-light) 88%,#ffffff 12%);font:inherit;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease,border-color .2s ease,gap .24s cubic-bezier(.2,.9,.2,1)}body[data-page="home"] .jump-panel-action:hover{background:color-mix(in srgb,var(--primary) 18%,transparent);border-color:color-mix(in srgb,var(--primary) 32%,transparent);color:color-mix(in srgb,#ffffff 92%,var(--bg) 8%);transform:translateY(-1px)}body[data-page="home"] .jump-panel-action:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 60%,#ffffff 40%);outline-offset:2px}body[data-page="home"] .jump-panel-action-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;transition:transform .2s ease}body.menu-open .jump-panel{opacity:0;pointer-events:none}body[data-page="home"] .jump-panel-reveal{position:fixed;right:16px;top:50%;transform:translateY(-50%) translateX(14px);z-index:1048;display:flex;align-items:center;justify-content:center;gap:0;width:40px;height:40px;padding:8px;border-radius:16px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 94%,#000 6%) 0%,color-mix(in srgb,var(--surface) 86%,#000 14%) 100%);box-shadow:0 16px 34px rgba(0,0,0,.32);backdrop-filter:blur(10px);color:color-mix(in srgb,var(--text-light) 90%,#ffffff 10%);font:inherit;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .24s cubic-bezier(.2,.9,.2,1),background .2s ease,border-color .2s ease}body[data-page="home"] .jump-panel.is-hidden + .jump-panel-reveal{opacity:1;pointer-events:auto;transform:translateY(-50%) translateX(0)}body[data-page="home"] .jump-panel-reveal:hover{border-color:color-mix(in srgb,var(--primary) 32%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 96%,#000 4%) 0%,color-mix(in srgb,var(--surface) 88%,#000 12%) 100%)}body[data-page="home"] .jump-panel-reveal:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 60%,#ffffff 40%);outline-offset:2px}body[data-page="home"] .jump-panel-reveal-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px}body.menu-open .jump-panel-reveal{opacity:0;pointer-events:none}@media (hover:none) and (pointer:coarse),(max-width:768px){body[data-page="home"] .jump-panel{--jump-collapsed:46px;--jump-expanded:136px;--jump-hide-offset:calc(100% + 20px);left:auto;right:calc(10px + env(safe-area-inset-right,0px));top:55%;bottom:auto;transform:translateY(-50%);width:var(--jump-collapsed);gap:6px;padding:8px 4px;border-radius:16px;box-shadow:0 10px 22px rgba(0,0,0,.24);opacity:.9}body.menu-open .jump-panel{opacity:0;pointer-events:none}body[data-page="home"] .jump-panel:hover,body[data-page="home"] .jump-panel:focus-within{width:var(--jump-expanded);opacity:1}body[data-page="home"] .jump-panel-link{min-height:38px;padding:8px 6px}body[data-page="home"] .jump-panel-action{min-height:34px}body[data-page="home"] .jump-panel:hover .jump-panel-link,body[data-page="home"] .jump-panel:focus-within .jump-panel-link{gap:6px}body[data-page="home"] .jump-panel-dot{width:8px;height:8px}body[data-page="home"] .jump-panel-text{font-size:.78rem}body[data-page="home"] .jump-panel:hover .jump-panel-text,body[data-page="home"] .jump-panel:focus-within .jump-panel-text{max-width:108px}body[data-page="home"] .jump-panel-reveal{right:calc(10px + env(safe-area-inset-right,0px));width:36px;height:36px;padding:6px;border-radius:14px;box-shadow:0 10px 22px rgba(0,0,0,.24)}}@media (max-width:520px){body[data-page="home"] .jump-panel{--jump-collapsed:42px;--jump-expanded:124px;--jump-hide-offset:calc(100% + 18px);right:calc(8px + env(safe-area-inset-right,0px));top:56%}body[data-page="home"] .jump-panel-reveal{right:calc(8px + env(safe-area-inset-right,0px));top:56%}}body[data-page="home"] .jump-panel.is-condensed,body[data-page="home"] .jump-panel.is-condensed:hover,body[data-page="home"] .jump-panel.is-condensed:focus-within{width:var(--jump-collapsed);border-color:color-mix(in srgb,var(--primary) 18%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 94%,#000 6%) 0%,color-mix(in srgb,var(--surface) 86%,#000 14%) 100%)}body[data-page="home"] .jump-panel.is-condensed .jump-panel-link,body[data-page="home"] .jump-panel.is-condensed:hover .jump-panel-link,body[data-page="home"] .jump-panel.is-condensed:focus-within .jump-panel-link{justify-content:center;gap:0}body[data-page="home"] .jump-panel.is-condensed .jump-panel-action,body[data-page="home"] .jump-panel.is-condensed:hover .jump-panel-action,body[data-page="home"] .jump-panel.is-condensed:focus-within .jump-panel-action{justify-content:center;gap:0}body[data-page="home"] .jump-panel.is-condensed .jump-panel-text,body[data-page="home"] .jump-panel.is-condensed:hover .jump-panel-text,body[data-page="home"] .jump-panel.is-condensed:focus-within .jump-panel-text{max-width:0;opacity:0;transform:translateX(6px)}body[data-page="home"] .jump-panel.is-hidden,body[data-page="home"] .jump-panel.is-hidden:hover,body[data-page="home"] .jump-panel.is-hidden:focus-within{--jump-shift:var(--jump-hide-offset);opacity:0;pointer-events:none;width:var(--jump-collapsed);border-color:color-mix(in srgb,var(--primary) 18%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 94%,#000 6%) 0%,color-mix(in srgb,var(--surface) 86%,#000 14%) 100%)}@media (prefers-reduced-motion:reduce){body[data-page="home"] .jump-panel,body[data-page="home"] .jump-panel-link,body[data-page="home"] .jump-panel-dot,body[data-page="home"] .jump-panel-text,body[data-page="home"] .jump-panel-action,body[data-page="home"] .jump-panel-action-icon,body[data-page="home"] .jump-panel-reveal{transition:none !important;transform:none !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 .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease,border-color .2s ease;position:relative;overflow:hidden}.btn-primary{padding:14px 30px;background:linear-gradient( 135deg,color-mix(in srgb,var(--primary) 92%,#ffffff 8%) 0%,color-mix(in srgb,var(--primary) 68%,#0A1A1F 32%) 100% );color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%);border:1px solid color-mix(in srgb,var(--primary) 65%,transparent);box-shadow:0 12px 28px rgba(0,0,0,.28)}.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 .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(0,0,0,.32)}.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 color-mix(in srgb,var(--primary) 38%,transparent);color:color-mix(in srgb,var(--text-light) 90%,#ffffff 10%);background:color-mix(in srgb,var(--surface) 88%,#000000 12%);box-shadow:0 8px 20px rgba(0,0,0,.22)}.btn-secondary:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--primary) 22%,transparent);border-color:color-mix(in srgb,var(--primary) 55%,transparent);color:color-mix(in srgb,#ffffff 92%,var(--bg) 8%)}.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 color-mix(in srgb,var(--text-light) 40%,transparent);color:color-mix(in srgb,var(--text-light) 80%,#ffffff 20%);background:transparent;box-shadow:none}.btn-ghost:hover{border-style:solid;border-color:color-mix(in srgb,var(--primary) 45%,transparent);color:color-mix(in srgb,#ffffff 92%,var(--bg) 8%);background:color-mix(in srgb,var(--primary) 18%,transparent)}.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 color-mix(in srgb,var(--primary) 45%,transparent);color:color-mix(in srgb,var(--primary) 80%,#ffffff 20%);background:color-mix(in srgb,var(--surface) 85%,#000000 15%);transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease,border-color .2s ease}.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:color-mix(in srgb,var(--primary) 22%,transparent);color:color-mix(in srgb,#ffffff 90%,var(--bg) 10%);border-color:color-mix(in srgb,var(--primary) 55%,transparent);transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.25)}.btn-icon.btn-icon-featured{width:50px;height:50px;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)}.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(--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);transform:translateY(-3px) scale(1.03);box-shadow:0 24px 46px rgba(0,0,0,.4)}.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:3px solid color-mix(in srgb,var(--primary) 60%,#ffffff 40%);outline-offset:3px}}@layer components{.cert-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);overflow:hidden;position:relative;padding:clamp(2.2rem,5vw,3.1rem) 0}.cert-band-inner{display:flex;flex-direction:column;align-items:stretch;gap:clamp(14px,3vw,20px);padding:0 clamp(16px,5vw,36px)}.cert-head{text-align:center;margin:0 auto}.cert-head h2{margin:0;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.25}.cert-subtitle{margin:10px auto 0;max-width:70ch;color:var(--text-muted);font-size:1.02rem}.cert-modal-trigger{align-self:center;white-space:nowrap;min-width:200px}.cert-band::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--home-band-base,var(--bg)) 92%,transparent) 0%,transparent 14%,transparent 86%,color-mix(in srgb,var(--home-band-base,var(--bg)) 90%,transparent) 100%);pointer-events:none;z-index:2}.cert-track{position:relative;height:60px;cursor:grab;user-select:none;touch-action:pan-y;mask-image:linear-gradient(90deg,transparent 0%,black 12%,black 88%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,black 12%,black 88%,transparent 100%)}.cert-track.dragging{cursor:grabbing}.cert-track.dragging .cert{pointer-events:none}.cert-track a,.cert-track img{-webkit-user-drag:none;user-select:none}.cert{position:absolute;top:50%;--ticker-x:0px;transform:translate3d(var(--ticker-x),-50%,0);display:inline-flex;align-items:center;gap:14px;padding:11px 22px;border-radius:999px;background:color-mix(in srgb,var(--surface) 82%,#000 18%);font-family:'Poppins';font-weight:500;font-size:.95rem;color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);white-space:nowrap;box-shadow:0 10px 24px rgba(0,0,0,.2);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent)}.cert img{height:24px;width:auto;filter:grayscale(.1);opacity:.9}.cert span{opacity:.75;transition:opacity .2s ease,color .2s ease}.cert:hover span{color:color-mix(in srgb,var(--primary) 82%,#ffffff 18%);opacity:1}@keyframes fadeCert{from{opacity:0;transform:translate3d(var(--ticker-x),-50%,0) scale(.96)}to{opacity:1;transform:translate3d(var(--ticker-x),-50%,0) scale(1)}}.cert.reenter{animation:fadeCert .35s ease}.cert-modal-body{padding:24px clamp(16px,5vw,32px) 32px}.cert-modal-grid{--cert-card-col-gap:clamp(28px,4vw,40px);--cert-card-row-gap:clamp(32px,5vw,48px);display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;align-content:center;gap:var(--cert-card-row-gap) var(--cert-card-col-gap);width:100%;margin-top:clamp(12px,2vw,18px)}@supports not (gap:1rem){.cert-modal-grid{margin:-32px -28px 0;margin:calc(var(--cert-card-row-gap) * -1) calc(var(--cert-card-col-gap) * -1) 0}.cert-modal-grid .cert-card{margin:32px 28px 0;margin:var(--cert-card-row-gap) var(--cert-card-col-gap) 0}}.cert-card{background:color-mix(in srgb,var(--surface) 94%,#010306 6%);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:12px;justify-content:space-between;flex:0 1 clamp(320px,32vw,360px);min-width:280px;max-width:420px;box-sizing:border-box;box-shadow:0 20px 38px rgba(0,0,0,.28);position:relative}.cert-card-header{display:flex;gap:16px;align-items:flex-start}.cert-card-logo{width:52px;height:52px;border-radius:14px;background:var(--logo-tile-bg-cert);padding:10px;object-fit:contain;box-shadow:0 8px 20px rgba(0,0,0,.3)}.cert-card-label{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;color:var(--primary)}.cert-card h4{margin:4px 0;font-size:1.05rem;font-family:'Poppins';color:var(--text-light)}.cert-card-meta{margin:0;font-size:.92rem;color:var(--text-muted)}.cert-card-note{margin:0;font-size:.95rem;color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%);line-height:1.5}.cert-card-note.subtle{font-size:.9rem;opacity:.8}.cert-card-actions{display:flex;flex-direction:column;gap:10px;margin-top:12px}.cert-card-actions .btn-secondary{width:100%;justify-content:center;box-sizing:border-box}@media (max-width:900px){.cert-modal-trigger{width:100%;min-width:0}.cert-modal-grid{flex-direction:column;align-items:center;text-align:center}.cert-modal-grid .cert-card{width:min(100%,420px);max-width:100%}.cert-card-actions .btn-secondary{width:100%}}}@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:color-mix(in srgb,var(--surface) 88%,#000 12%);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);border-radius:20px;padding:28px 28px 26px;text-align:left;color:var(--text-light);display:flex;flex-direction:column;gap:12px;align-items:flex-start;opacity:0;transform:translateY(18px);transition:opacity .45s cubic-bezier(.22,.61,.36,1),transform .45s cubic-bezier(.22,.61,.36,1),box-shadow .35s ease,border-color .3s ease,background .3s ease;box-shadow:0 18px 38px rgba(0,0,0,.28)}.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(--primary) 78%,#ffffff 22%) 0%,color-mix(in srgb,var(--primary) 58%,#0A1A1F 42%) 100%);opacity:.75;pointer-events:none}.icon-info svg{width:32px;height:32px;color:color-mix(in srgb,var(--primary) 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:color-mix(in srgb,var(--text-muted) 90%,#ffffff 10%);line-height:1.6}.icon-info:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(0,0,0,.3);border-color:color-mix(in srgb,var(--primary) 30%,transparent);background:color-mix(in srgb,var(--surface) 82%,#000 18%)}@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 .icon-info{width:100%}}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{.search-page .search-hero .wrapper{justify-content:center}.search-page .search-hero-inner{width:100%;max-width:980px;display:grid;gap:10px;text-align:center}.search-page .search-hero-inner h1{margin:0;font-size:clamp(2.1rem,3.6vw,2.7rem);line-height:1.2}.search-page .search-hero-tagline{margin:0;color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%);max-width:60ch;margin-inline:auto}.search-page .search-panel{max-width:980px;margin-inline:auto}.search-card{border-radius:22px;padding:clamp(18px,3vw,26px);background:color-mix(in srgb,var(--surface) 90%,#000 10%);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);box-shadow:0 22px 48px rgba(0,0,0,.28)}.search-form{display:flex;gap:12px;align-items:stretch}.search-field{flex:1;display:flex;gap:10px;align-items:stretch}.search-input{flex:1;min-height:48px;padding:12px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);background:color-mix(in srgb,var(--surface) 82%,#020509 18%);color:color-mix(in srgb,var(--text-light) 94%,#ffffff 6%);font-size:1rem}.search-input::placeholder{color:color-mix(in srgb,var(--text-muted) 78%,#ffffff 22%)}.search-input:focus{outline:none;border-color:color-mix(in srgb,var(--primary) 44%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.search-actions{display:flex;gap:10px;align-items:stretch}.search-hint{margin:14px 0 0;color:color-mix(in srgb,var(--text-muted) 86%,#ffffff 14%)}.search-status{margin:0;color:color-mix(in srgb,var(--text-muted) 86%,#ffffff 14%)}.search-results{margin-top:16px;display:grid;gap:12px}.search-result{display:block;border-radius:18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--primary) 16%,transparent);background:color-mix(in srgb,var(--surface) 94%,#000 6%);color:inherit;text-decoration:none;cursor:pointer;transition:border-color .18s ease,transform .18s ease}.search-result:hover{border-color:color-mix(in srgb,var(--primary) 28%,transparent);transform:translateY(-1px)}.search-result[role="note"]{cursor:default}.search-result[role="note"]:hover{transform:none}.search-result:focus-visible{outline:none;border-color:color-mix(in srgb,var(--primary) 44%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.search-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.search-result-title{color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%);text-decoration:none;font-weight:650;letter-spacing:.01em;line-height:1.2}.search-result:hover .search-result-title,.search-result:focus-visible .search-result-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.search-result-url{margin:8px 0 0;font-size:.92rem;color:color-mix(in srgb,var(--text-muted) 84%,#ffffff 16%)}.search-result-desc{margin:10px 0 0;color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%)}.search-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);background:color-mix(in srgb,var(--surface) 78%,#000 22%);color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);white-space:nowrap}.search-keywords{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}.search-keyword{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.82rem;border:1px dashed color-mix(in srgb,var(--primary) 20%,transparent);background:color-mix(in srgb,var(--surface) 88%,#000 12%);color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%)}.search-highlight{padding:0 .12em;border-radius:6px;background:color-mix(in srgb,var(--primary) 26%,transparent);color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%)}@media (max-width:768px){.search-form{flex-direction:column}.search-field{flex-direction:column}.search-actions{justify-content:flex-start}}}@layer components{.sitemap-page .sitemap-panel{max-width:980px;margin-inline:auto}.sitemap-card{border-radius:22px;padding:clamp(18px,3vw,26px);background:color-mix(in srgb,var(--surface) 90%,#000 10%);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);box-shadow:0 22px 48px rgba(0,0,0,.28)}.sitemap-filter{display:flex;gap:10px;align-items:stretch}.sitemap-filter-input{flex:1;min-height:48px;padding:12px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);background:color-mix(in srgb,var(--surface) 82%,#020509 18%);color:color-mix(in srgb,var(--text-light) 94%,#ffffff 6%);font-size:1rem}.sitemap-filter-input::placeholder{color:color-mix(in srgb,var(--text-muted) 78%,#ffffff 22%)}.sitemap-filter-input:focus{outline:none;border-color:color-mix(in srgb,var(--primary) 44%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.sitemap-meta{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;color:color-mix(in srgb,var(--text-muted) 86%,#ffffff 14%)}.sitemap-meta p{margin:0}.sitemap-links a{color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);text-decoration:none}.sitemap-links a:hover,.sitemap-links a:focus-visible{outline:none;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.sitemap-status{margin:14px 0 0;min-height:1.2em;color:color-mix(in srgb,var(--text-muted) 86%,#ffffff 14%)}.sitemap-sections{margin-top:16px;display:grid;gap:18px}.sitemap-section{border-radius:20px;overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 14%,transparent);background:color-mix(in srgb,var(--surface) 94%,#000 6%)}.sitemap-section-head{padding:14px 16px;border-bottom:1px solid color-mix(in srgb,var(--primary) 14%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 80%,#000 20%),transparent)}.sitemap-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.sitemap-section-title{margin:0;font-size:1.1rem;letter-spacing:.01em;color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%)}.sitemap-section-count{flex:0 0 auto;display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);background:color-mix(in srgb,var(--surface) 78%,#000 22%);font-size:.82rem;color:color-mix(in srgb,var(--text-muted) 84%,#ffffff 16%)}.sitemap-section-subtitle{margin:8px 0 0;color:color-mix(in srgb,var(--text-muted) 86%,#ffffff 14%)}.sitemap-items{display:grid}.sitemap-item{display:block;padding:14px 16px;text-decoration:none;color:inherit;border-top:1px solid color-mix(in srgb,var(--primary) 12%,transparent);transition:background .15s ease,border-color .15s ease,transform .15s ease}.sitemap-item:first-child{border-top:none}.sitemap-item:hover{background:color-mix(in srgb,var(--surface) 88%,#000 12%);border-top-color:color-mix(in srgb,var(--primary) 18%,transparent);transform:translateY(-1px)}.sitemap-item-title{font-weight:650;letter-spacing:.01em;color:color-mix(in srgb,var(--text-light) 96%,#ffffff 4%);line-height:1.2}.sitemap-item-url{margin-top:8px;font-size:.92rem;color:color-mix(in srgb,var(--text-muted) 84%,#ffffff 16%)}.sitemap-item-desc{margin-top:10px;color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%)}.sitemap-item-meta{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px;font-size:.9rem;color:color-mix(in srgb,var(--text-muted) 86%,#ffffff 14%)}.sitemap-loading,.sitemap-empty{padding:16px;border-radius:18px;border:1px solid color-mix(in srgb,var(--primary) 14%,transparent);background:color-mix(in srgb,var(--surface) 94%,#000 6%);color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%)}@media (max-width:768px){.sitemap-filter{flex-direction:column}.sitemap-meta{flex-direction:column;align-items:flex-start}}}@layer components{.work-band{padding:clamp(2.2rem,5vw,3.1rem) 0}.work-head{text-align:center;margin:0 0 clamp(1.1rem,3vw,1.6rem)}.work-subtitle{margin:10px auto 0;max-width:70ch;color:var(--text-muted);font-size:1.02rem}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}.work-card{background:color-mix(in srgb,var(--surface) 94%,#010306 6%);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 38px rgba(0,0,0,.28)}.work-logo-shell{height:86px;min-width:86px;padding:0 18px;border-radius:18px;background:var(--logo-tile-bg-company);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.3);align-self:center;max-width:100%}.work-logo-shell img{width:auto;height:auto;max-height:56px;max-width:240px;display:block}.work-logo-link:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.work-company{margin:4px 0 0;font-size:1.1rem;text-align:center}.work-timeframe{margin:0;font-size:.95rem;color:var(--text-muted);text-align:center}.work-role{margin:0;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;text-align:center;color:color-mix(in srgb,var(--text-muted) 78%,#ffffff 22%)}.work-highlights{margin:10px 0 0;padding-left:20px;color:color-mix(in srgb,var(--text-muted) 92%,#ffffff 8%);line-height:1.55}.work-highlights li{margin:0 0 10px;font-size:.95rem}.work-highlights li:last-child{margin-bottom:0}@media (max-width:980px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.work-grid{grid-template-columns:1fr}.work-card{padding:20px}}}@layer components{.resume-section{padding:clamp(2.4rem,6vw,3.8rem) 0}.resume-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.25em;font-size:.72rem;color:var(--text-muted)}.resume-paper{max-width:980px;margin:0 auto;padding:clamp(1.4rem,3vw,2.2rem);border-radius:20px;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,#ffffff 4%) 0%,color-mix(in srgb,var(--surface) 90%,#02070d 10%) 100%);box-shadow:0 26px 64px rgba(0,0,0,.38);position:relative;overflow:hidden}.resume-paper::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 80%,#ffffff 20%) 0%,color-mix(in srgb,var(--primary) 40%,#071219 60%) 100%)}.resume-paper-header{padding-top:8px}.resume-top{margin-top:10px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px 20px;flex-wrap:wrap}.resume-identity{display:grid;gap:8px;min-width:min(360px,100%)}.resume-name{margin:0;font-family:'Poppins';font-size:clamp(2.2rem,4vw,3.05rem);line-height:1.05;color:var(--text-light);letter-spacing:.01em}.resume-title{margin:0;font-size:.95rem;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--primary) 92%,#ffffff 8%);font-weight:700}.resume-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.resume-contact-grid{margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (max-width:840px){.resume-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.resume-contact-grid{grid-template-columns:1fr}}.resume-contact-item{display:inline-flex;align-items:center;gap:8px;box-sizing:border-box;padding:8px 12px;border-radius:14px;border:1px solid color-mix(in srgb,var(--text-light) 10%,transparent);background:transparent;color:color-mix(in srgb,var(--text-light) 88%,#ffffff 12%);font-size:.92rem;letter-spacing:.01em;line-height:1.3;width:100%;justify-content:flex-start;min-width:0;overflow-wrap:anywhere}a.resume-contact-item{text-decoration:none;transition:transform .15s ease,border-color .15s ease,background-color .15s ease}a.resume-contact-item:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 32%,transparent);background:color-mix(in srgb,var(--surface) 94%,#000 6%)}.resume-contact-item svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.resume-contact-item .icon-fill{fill:currentColor;stroke:none}.resume-summary{margin:18px 0 0;color:var(--text-light);max-width:78ch;line-height:1.7}.resume-highlights{margin-top:16px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.resume-highlight{padding:12px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--text-light) 10%,transparent);background:transparent;display:grid;gap:6px}.resume-highlight-value{font-family:'Poppins';font-weight:700;color:color-mix(in srgb,var(--primary) 80%,#ffffff 20%);font-size:1.25rem;letter-spacing:.01em}.resume-highlight-label{color:var(--text-muted);font-size:.92rem;line-height:1.4}.resume-body{margin-top:22px;display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:26px;align-items:stretch}.resume-side,.resume-main{display:grid;gap:18px;align-content:start}.resume-main{padding-left:22px;border-left:1px solid color-mix(in srgb,var(--text-light) 10%,transparent)}.resume-block{padding-top:16px;border-top:1px solid color-mix(in srgb,var(--text-light) 10%,transparent)}.resume-block:first-child{padding-top:0;border-top:none}.resume-block-title{margin:0 0 12px;font-family:'Poppins';font-size:1.15rem;letter-spacing:.01em;color:var(--text-light)}.resume-projects-wide{grid-column:1 / -1}.resume-wide-category{display:flex;align-items:center;gap:14px;justify-content:center}.resume-wide-category::before,.resume-wide-category::after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--text-light) 10%,transparent)}.resume-wide-category span{white-space:nowrap}.resume-subhead{margin:16px 0 10px;font-size:.92rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted)}.resume-skill-group:first-of-type .resume-subhead{margin-top:0}.resume-chip-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:8px}.resume-chip{padding:8px 10px;border-radius:12px;border:1px solid color-mix(in srgb,var(--text-light) 10%,transparent);background:transparent;color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);font-size:.9rem;font-weight:600}.resume-cert-grid{list-style:none;padding:0;margin:0;display:grid;gap:10px}.resume-cert a{display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:10px;row-gap:2px;padding:10px 12px;border-radius:14px;border:1px solid color-mix(in srgb,var(--text-light) 10%,transparent);background:transparent;text-decoration:none;color:inherit;transition:transform .15s ease,border-color .15s ease}.resume-cert a:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 32%,transparent)}.resume-cert img{grid-row:1 / span 2;box-sizing:border-box;width:40px;height:40px;padding:6px;border-radius:12px;object-fit:contain;background:var(--logo-tile-bg-cert);border:1px solid color-mix(in srgb,var(--primary) 10%,transparent)}.resume-cert-title{font-weight:700;color:var(--text-light)}.resume-cert-meta{font-size:.88rem;color:var(--text-muted)}.resume-role{padding:0;border:none;border-radius:0;background:transparent}.resume-role + .resume-role{margin-top:18px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--text-light) 10%,transparent)}.resume-role-header{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:10px;align-items:start}.resume-role-brand{display:flex;gap:12px;align-items:flex-start;min-width:0;text-decoration:none;color:inherit}a.resume-role-brand:hover .resume-role-logo-shell{border-color:color-mix(in srgb,var(--primary) 32%,transparent)}.resume-role-brand > div{min-width:0}.resume-role-logo-shell{height:56px;min-width:56px;padding:0 12px;border-radius:16px;background:var(--logo-tile-bg-company);border:1px solid color-mix(in srgb,var(--primary) 12%,transparent);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex-shrink:0}.resume-role-logo-shell img{width:auto;height:auto;max-height:40px;max-width:200px;display:block}.resume-role-title{margin:0;font-size:1.1rem;color:var(--text-light)}.resume-role-company{margin:4px 0 0;color:var(--text-muted);font-size:1rem}.resume-role-dates{margin:0;font-size:.95rem;color:var(--text-muted);text-align:right}.resume-role-list{margin:12px 0 0 18px;display:grid;gap:6px;color:color-mix(in srgb,var(--text-muted) 90%,#ffffff 10%)}.resume-education-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.resume-education-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 16px;padding:14px 16px;border-radius:12px;border:1px solid color-mix(in srgb,var(--text-light) 10%,transparent);background:transparent;text-decoration:none;color:inherit;transition:transform .15s ease,border-color .15s ease}a.resume-education-item:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 32%,transparent)}.resume-education-row{display:flex;gap:10px;align-items:flex-start}.resume-school-logo{box-sizing:border-box;width:40px;height:40px;padding:6px;border-radius:12px;object-fit:contain;background:var(--logo-tile-bg-education);border:1px solid color-mix(in srgb,var(--primary) 10%,transparent);flex-shrink:0}.resume-education-title{margin:0;font-weight:600;color:var(--text-light);font-size:1rem}.resume-education-meta{margin:4px 0 0;color:var(--text-muted);font-size:.95rem}.resume-education-item > .resume-education-meta{margin-left:auto;text-align:right}.resume-projects-grid{list-style:none;padding:0;margin:0;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.resume-project{padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--text-light) 10%,transparent);background:transparent;display:grid;gap:8px}.resume-project-title{font-weight:700;color:var(--text-light);text-decoration:none;border-bottom:1px dashed color-mix(in srgb,var(--primary) 35%,transparent);width:fit-content}.resume-project-title:hover{border-color:var(--primary)}.resume-project-meta{margin:0;color:var(--text-muted);line-height:1.55;font-size:.95rem}.resume-more{margin:10px 0 0;color:var(--text-muted);font-size:.95rem}.resume-more a{color:color-mix(in srgb,var(--primary) 80%,#ffffff 20%);text-decoration:none;border-bottom:1px dashed color-mix(in srgb,var(--primary) 40%,transparent)}.resume-more a:hover{border-color:var(--primary)}.resume-pdf{margin-top:16px;border-radius:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);box-shadow:0 18px 38px rgba(0,0,0,.3)}.resume-pdf object{width:100%;height:clamp(480px,70vh,900px);display:block;background:var(--surface)}.resume-pdf-note{color:var(--text-muted);margin:0}@media (max-width:960px){.resume-body{grid-template-columns:1fr}.resume-main{padding-left:0;border-left:none}.resume-highlights{grid-template-columns:1fr}.resume-projects-grid{grid-template-columns:1fr}}@media (min-width:980px){.resume-chip-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}@media (max-width:720px){.resume-role-header{grid-template-columns:1fr;align-items:start}.resume-role-dates{text-align:left}.resume-education-item{flex-direction:column;align-items:flex-start}}@media print{body{background:#fff;color:#000}header,footer{display:none}.resume-section{padding:0}.resume-paper{box-shadow:none;border:1px solid #ccc;background:#fff;border-radius:0}.resume-body{grid-template-columns:1fr}.resume-main{padding-left:0;border-left:none}.resume-actions{display:none}.resume-contact-item,.resume-cert a,.resume-project{border:1px solid #ddd;background:transparent}.resume-contact-item,.resume-highlight-label,.resume-education-meta,.resume-project-meta,.resume-more{color:#333}.resume-name,.resume-role-title,.resume-block-title{color:#000}.resume-project-title,.resume-more a{color:#000;border-color:#000}}}@layer components{.policy-page main{min-height:calc(var(--vh,100vh) - var(--nav-height,72px));padding-top:var(--nav-height,72px);display:grid;align-content:center;justify-items:center;margin:0;padding-inline:24px}.policy-card{width:min(840px,100%);box-sizing:border-box;background:var(--surface);border:2px solid var(--primary);border-radius:14px;box-shadow:0 10px 24px rgba(44,169,188,.18);padding:clamp(18px,4vw,32px);margin:0 auto 1.5rem}.policy-card h1{margin-top:0;text-align:center}.policy-lead{text-align:center;color:var(--text-muted);max-width:60ch;margin:8px auto 16px}.policy-section{margin-top:20px}.policy-section h2{margin-top:0.2em}.policy-list{padding-left:20px}.policy-meta{margin-top:16px;font-size:.95rem;color:var(--text-muted)}#privacy-preferences-form{margin-top:1.25rem}.pref-grid{display:grid;gap:12px}.pref-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px;border:1px solid rgba(255,255,255,0.05);border-radius:12px;background:rgba(255,255,255,0.02)}.pref-toggle{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;width:100%;border:2px solid var(--primary);border-radius:10px;background:transparent;color:inherit;font:inherit;cursor:pointer;transition:background-color 0.2s ease,color 0.2s ease,border-color 0.2s ease}.pref-toggle[aria-pressed="true"]{background:var(--primary);color:var(--on-primary)}.pref-toggle[disabled]{cursor:not-allowed;opacity:0.85}.pref-label{font-weight:600;text-align:left}.pref-state{font-size:0.85rem;text-transform:uppercase;letter-spacing:0.05em}.pref-toggle[aria-pressed="true"] .pref-state{color:inherit}.pref-toggle:not([aria-pressed="true"]) .pref-state{color:var(--text-muted)}.pref-info{border:none;background:var(--surface-elevated,rgba(255,255,255,0.08));color:inherit;width:36px;height:36px;border-radius:50%;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color 0.2s ease,color 0.2s ease}.pref-info:hover,.pref-info:focus-visible{background:var(--primary);color:var(--on-primary)}.pref-description{margin:0;margin-top:8px;font-size:0.9rem;color:var(--text-muted);grid-column:1 / -1}#save-privacy-preferences{margin-top:1rem;padding:0.75rem 1.25rem;border:none;border-radius:8px;background-color:var(--primary);color:var(--on-primary);cursor:pointer;font-weight:600;width:100%}#save-privacy-preferences:hover{background-color:var(--primary-dark,#2ca9bc)}@media (min-width:680px){.pref-option{grid-template-columns:minmax(0,1fr) auto}#save-privacy-preferences{width:auto}}}@layer components{.contact-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 32px;text-align:center;background:var(--surface);border:1px solid var(--border-subtle);border-radius:14px;color:var(--primary);font-family:'Poppins';font-weight:600;transition:transform .25s,background .25s,color .25s,box-shadow .25s,border-color .25s}.contact-card svg{width:40px;height:40px;color:inherit;fill:none;stroke:currentColor;shape-rendering:geometricPrecision;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.contact-card svg.brand-fill{fill:currentColor;stroke:none}.contact-card .icon{display:block;width:40px;height:40px}.contact-card .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}.contact-card small{font-family:'Inter';color:var(--text-muted);transition:inherit}.contact-card:hover{background:var(--primary);color:var(--bg);transform:translateY(-3px);border-color:var(--primary);box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 35%,transparent)}.contact-card:hover i,.contact-card:hover small{color:var(--bg)}.surface-band.reveal.active .contact-card{animation:focusIn .6s forwards}.contact-card-badge{position:absolute;top:16px;right:16px;padding:4px 10px;border-radius:999px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;background:color-mix(in srgb,var(--primary) 20%,#ffffff 80%);color:color-mix(in srgb,var(--primary) 80%,#031016 20%)}.contact-card.contact-card-recommended{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 22%,var(--surface) 78%) 0%,color-mix(in srgb,var(--primary) 38%,var(--surface) 62%) 100%);border-color:color-mix(in srgb,var(--primary) 48%,transparent);color:color-mix(in srgb,#ffffff 92%,var(--bg) 8%);box-shadow:0 24px 48px rgba(0,0,0,.35);isolation:isolate}.contact-card.contact-card-recommended::after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--primary);opacity:0;transition:opacity .25s;z-index:-1;pointer-events:none}.contact-card.contact-card-recommended small{color:color-mix(in srgb,#ffffff 88%,var(--bg) 12%)}.contact-card.contact-card-recommended:hover{color:var(--bg);border-color:var(--primary);transform:translateY(-3px);box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 35%,transparent)}.contact-card.contact-card-recommended:hover::after{opacity:1}.contact-card.contact-card-recommended:hover small{color:var(--bg)}.contact-options-heading{text-align:center;margin:0 auto 32px;max-width:min(640px,90vw)}.contact-options-heading .section-title{margin:0 0 8px}.contact-options-heading .section-subtitle{margin:0;color:var(--text-muted);font-size:1rem}}@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__action--direct{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)}.speed-dial__action--direct:hover{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)}.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)}@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)}}@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{.games-hero{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)}.games-hero .wrapper{max-width:min(1080px,calc(var(--container-max) + 80px));display:grid;gap:clamp(1.2rem,2.4vw,1.8rem)}.games-hero h1{margin:0}.games-hero p{margin:0;max-width:70ch;color:var(--text-muted);font-size:1.05rem;line-height:1.7}.games-section{padding:clamp(2.8rem,6vh,3.6rem) 0}.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(16px,3vw,22px);align-items:stretch}.game-card{display:grid;gap:12px;align-content:start;padding:clamp(1.1rem,2vw,1.4rem);border-radius:16px;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);background:linear-gradient(150deg,color-mix(in srgb,var(--surface) 94%,#040910 6%) 0%,color-mix(in srgb,var(--surface) 82%,#040910 18%) 100%);box-shadow:0 16px 32px rgba(0,0,0,.28);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.game-card:hover,.game-card:focus-visible{transform:translateY(-2px);box-shadow:0 20px 42px rgba(0,0,0,.35);border-color:color-mix(in srgb,var(--primary) 36%,transparent);outline:none}.game-card a{color:inherit;text-decoration:none;display:grid;gap:12px;height:100%}.game-top{display:flex;gap:12px;align-items:center}.game-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(140deg,color-mix(in srgb,var(--primary) 84%,#ffffff 16%) 0%,color-mix(in srgb,var(--primary) 56%,#071219 44%) 100%);display:inline-flex;align-items:center;justify-content:center;color:color-mix(in srgb,#ffffff 94%,var(--bg) 6%);box-shadow:0 10px 22px rgba(0,0,0,.26);flex-shrink:0}.game-icon svg{width:24px;height:24px;color:currentColor;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.game-icon .icon-fill{fill:currentColor;stroke:none}.game-card h3{margin:0;letter-spacing:.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}.game-card p{margin:0;color:var(--text-muted);font-size:.98rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;min-height:6.4em}.game-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--text-muted);font-size:.9rem;min-height:3.2em}.game-pill{padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,#000 8%);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);font-weight:600;color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);font-size:.9rem;letter-spacing:.01em}}@layer components{.project-hero{padding:clamp(3.1rem,6.5vh,4.4rem) 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)}.project-hero .wrapper{max-width:min(1080px,calc(var(--container-max) + 80px));display:grid;gap:clamp(1.05rem,2.1vw,1.55rem)}.project-hero h1{margin:0;font-weight:600;letter-spacing:.3px;line-height:1.12}.project-hero h1::after{content:"";display:block;width:min(210px,42vw);height:3px;margin-top:12px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 92%,#ffffff 8%) 0%,color-mix(in srgb,var(--primary) 42%,transparent) 55%,transparent 100%);opacity:.9}.project-subtitle{margin:0;max-width:70ch;color:var(--text-muted);font-size:1.05rem;line-height:1.7}.project-cta{justify-content:flex-start;flex-wrap:wrap}.project-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;color:var(--text-muted)}.project-tag{padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,#000 8%);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);font-weight:600;color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);font-size:.9rem;letter-spacing:.01em}.project-body{padding:clamp(2.6rem,6vh,3.6rem) 0}.project-pager{position:sticky;top:var(--nav-height,72px);z-index:900;background:linear-gradient(120deg,rgba(13,17,23,.92) 0%,rgba(15,21,30,.86) 60%,rgba(18,25,36,.82) 100%);border-bottom:1px solid color-mix(in srgb,var(--primary) 18%,transparent);backdrop-filter:blur(18px)}.project-pager .wrapper{display:flex;align-items:stretch;justify-content:space-between;gap:12px;padding-block:10px}.project-pager-link,.project-pager-spacer{flex:1 1 0;max-width:calc(50% - 6px)}.project-pager-link{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:color-mix(in srgb,var(--surface) 36%,transparent);color:color-mix(in srgb,var(--text-light) 92%,#ffffff 8%);font-weight:800;min-height:44px;box-sizing:border-box;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.project-pager-link:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 40%,transparent);box-shadow:0 12px 22px rgba(0,0,0,.28)}.project-pager-link:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 80%,#fff 20%);outline-offset:3px}.project-pager-text{display:flex;flex-direction:column;gap:1px;min-width:0}.project-pager-label{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.project-pager-title{font-size:.98rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-pager-next{justify-content:flex-end;text-align:right}.project-demo-shell{position:relative;display:flex;flex-direction:column;margin:0 0 28px;border-radius:18px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:color-mix(in srgb,var(--surface) 92%,#000 8%);box-shadow:0 18px 38px rgba(0,0,0,.28);overflow:hidden;min-height:min(820px,calc(100svh - var(--nav-height)))}.project-demo-tabs{display:flex;gap:8px;padding:10px;border-bottom:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:linear-gradient(0deg,color-mix(in srgb,var(--surface) 92%,#000 8%),color-mix(in srgb,var(--surface) 86%,#000 14%))}.project-demo-tab{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:10px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:color-mix(in srgb,var(--surface) 90%,#000 10%);color:var(--text-light);font-weight:700;letter-spacing:.02em;position:relative;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.project-demo-tab:hover{border-color:color-mix(in srgb,var(--primary) 35%,transparent);transform:translateY(-1px)}.project-demo-tab:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 80%,#fff 20%);outline-offset:3px}.project-demo-tab.is-active{background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 22%,var(--surface) 78%),color-mix(in srgb,var(--surface) 92%,#000 8%));border-color:color-mix(in srgb,var(--primary) 45%,transparent)}.project-demo-tab.is-active::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 86%,#ffffff 14%) 0%,color-mix(in srgb,var(--primary) 28%,transparent) 60%,transparent 100%);opacity:.85}.project-demo-panels{flex:1 1 auto;display:flex;min-height:0}.project-demo-panel{flex:1 1 auto;min-height:0;padding:0;display:none}.project-demo-panel.is-active{display:flex}.project-demo-panel-inner{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:14px;padding:clamp(1rem,2.6vw,1.6rem)}.project-demo-lead{margin:0;max-width:75ch;color:var(--text-muted);font-size:1.05rem;line-height:1.7}.project-demo-list{margin:0;padding-left:22px;display:grid;gap:12px;max-width:90ch}.project-demo-actions{margin-top:16px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;align-items:center}.project-demo-panel[data-demo-panel="instructions"] .project-demo-panel-inner{justify-content:center;align-items:center;text-align:center}.project-demo-panel[data-demo-panel="instructions"]:is(.project-demo-lead,.project-demo-list){width:min(90ch,100%)}.project-demo-panel[data-demo-panel="instructions"] .project-demo-list{text-align:left}.project-demo-panel .project-media{margin:0;box-shadow:none;border-color:color-mix(in srgb,var(--primary) 14%,transparent);background:color-mix(in srgb,var(--surface) 84%,#000 16%);padding:12px}.project-demo-panel .project-embed-frame{border-radius:12px;background:color-mix(in srgb,var(--surface) 92%,#000 8%)}.project-demo-shell .project-embed-frame{height:clamp(440px,70vh,820px)}.project-demo-shell .project-embed-tableau .project-embed-frame{height:clamp(520px,74vh,960px)}.project-media{width:100%;display:block;border-radius:18px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:color-mix(in srgb,var(--surface) 92%,#000 8%);box-shadow:0 18px 38px rgba(0,0,0,.28);margin:0 0 24px;overflow:hidden}img.project-media{width:auto;max-width:100%;height:auto;max-height:clamp(360px,70vh,640px);object-fit:contain;margin-inline:auto}picture.project-media{display:block}.project-media img{width:auto;max-width:100%;height:auto;max-height:clamp(360px,70vh,640px);object-fit:contain;display:block;margin-inline:auto}.project-media video{width:auto;max-width:100%;height:auto;max-height:clamp(360px,70vh,640px);object-fit:contain;display:block;margin-inline:auto}.project-embed{background:color-mix(in srgb,var(--surface) 88%,#000 12%)}.project-embed-frame{width:100%;height:clamp(420px,72vh,780px);border:0;display:block}.project-embed-tableau .project-embed-frame{height:clamp(520px,75vh,920px)}.project-star{margin-top:22px;padding:clamp(1.1rem,2.2vw,1.6rem);border-radius:18px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:color-mix(in srgb,var(--surface) 94%,#000 6%);box-shadow:0 14px 30px rgba(0,0,0,.22);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.project-star:hover{border-color:color-mix(in srgb,var(--primary) 26%,transparent);box-shadow:0 16px 34px rgba(0,0,0,.26)}.project-star .section-title{margin:0 0 14px}.project-star-grid{margin:0;display:grid;gap:14px}.project-star-row{position:relative;display:grid;grid-template-columns:minmax(110px,140px) minmax(0,1fr);gap:14px;padding:12px 12px 12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 12%,transparent);background:color-mix(in srgb,var(--surface) 92%,#000 8%)}.project-star-row::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 70%,#ffffff 30%),color-mix(in srgb,var(--primary) 30%,transparent));opacity:.85}.project-star-label{margin:0;font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;color:color-mix(in srgb,var(--text-muted) 92%,#fff 8%);line-height:1.3}.project-star-value{margin:0;color:color-mix(in srgb,var(--text-light) 88%,var(--text-muted) 12%);line-height:1.7;font-size:1.02rem}.project-star-list{margin:0;padding-left:20px;display:grid;gap:10px}.project-section{margin-top:22px;padding:clamp(1.1rem,2.2vw,1.6rem);border-radius:18px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);background:color-mix(in srgb,var(--surface) 94%,#000 6%);box-shadow:0 14px 30px rgba(0,0,0,.18);scroll-margin-top:calc(var(--nav-height) + 18px);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.project-section:hover{border-color:color-mix(in srgb,var(--primary) 24%,transparent);box-shadow:0 16px 34px rgba(0,0,0,.22)}.project-section .section-title{margin:0 0 12px}.project-section .project-lead + .project-lead{margin-top:12px}.project-lead{margin:0;max-width:75ch;color:var(--text-muted);font-size:1.05rem;line-height:1.7}.project-list{margin:14px 0 0;padding-left:22px;display:grid;gap:12px;max-width:90ch}.project-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px;align-items:stretch}.project-link{display:inline-flex;align-items:center;justify-content:flex-start;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--primary) 28%,transparent);background:color-mix(in srgb,var(--surface) 92%,#000 8%);color:var(--text-light);font-weight:600;min-height:50px;box-sizing:border-box;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;text-decoration:none}.project-link-icon{width:18px;height:18px;padding:6px;flex:0 0 auto;opacity:.92;border-radius:10px;background:color-mix(in srgb,var(--primary) 14%,transparent);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent)}.project-link-label{line-height:1.1}.project-link:hover,.project-link:focus-visible{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 45%,transparent);box-shadow:0 14px 28px rgba(0,0,0,.3)}.project-link:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 80%,#fff 20%);outline-offset:3px}.project-related-grid{--project-card-aspect:1 / 1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:14px}.project-related-grid .project-card{opacity:1}@media (max-width:768px){.project-demo-shell{min-height:min(760px,calc(100svh - var(--nav-height)))}.project-demo-shell .project-embed-frame{height:clamp(380px,68vh,720px)}.project-demo-shell .project-embed-tableau .project-embed-frame{height:clamp(430px,72vh,820px)}.project-embed-frame{height:clamp(360px,70vh,660px)}.project-embed-tableau .project-embed-frame{height:clamp(420px,75vh,760px)}}@media (max-width:960px){.project-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.project-star-row{grid-template-columns:1fr;gap:10px}.project-pager-title{display:none}.project-related-grid{grid-template-columns:1fr}}}@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(100vh - 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(100vw - 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(100vh - 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;transition:transform .25s,box-shadow .25s;border:2px solid transparent}.skill-link:hover,.skill-link:focus-visible{transform:translateY(-4px) scale(1.03);box-shadow:0 8px 22px color-mix(in srgb,var(--primary) 35%,transparent);border-color:var(--primary)}.skill-link small{display:block;margin-top:6px;color:var(--text-muted)}.skill-link:hover small{color:var(--text-light)}.skill-link{border:2px solid var(--primary);transition:transform .25s,box-shadow .25s}.skill-link:hover,.skill-link:focus-visible{transform:translateY(-4px) scale(1.03);box-shadow:0 10px 26px color-mix(in srgb,var(--primary) 35%,transparent);cursor:pointer}.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}}@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:2px solid var(--focus);outline-offset:2px}}@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}}}