:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#121316;--color-surface-lowest:#0d0e11;--color-surface-low:#1b1b1f;--color-surface:#1f1f23;--color-surface-high:#292a2d;--color-surface-highest:#343538;--color-surface-bright:#38393c;--color-code-bg:#07080a;--color-text:#e3e2e6;--color-text-muted:#bec8d2;--color-text-subtle:#88929b;--color-text-inverse:#0d0e11;--color-line:#3e4850;--line-faint:#3e485033;--line-soft:#3e48504d;--line-medium:#3e485066;--hairline:#ffffff14;--color-primary:#89ceff;--color-primary-strong:#0ea5e9;--color-on-primary-strong:#00344d;--color-primary-fixed:#c9e6ff;--color-secondary:#7bd0ff;--color-secondary-strong:#00a6e0;--color-tertiary:#b4c5ff;--color-error:#ffb4ab;--color-error-container:#93000a;--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-pill:999px;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--page-margin:1.25rem;--container-max:1120px;--header-height:4rem;--section-space:3.5rem;--shadow-card-hover:0 12px 30px -10px #0ea5e914;--highlight-gradient:radial-gradient(circle at 50% 0%, #0ea5e914, transparent 70%);--grid-line:#ffffff08;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-base:.2s;--duration-slow:.6s}@media (min-width:768px){:root{--page-margin:2rem;--section-space:4rem}}@media (min-width:1024px){:root{--page-margin:3rem}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--color-bg)}body{background-color:var(--color-bg);background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);min-height:100vh;color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-size:32px 32px;flex-direction:column;margin:0;font-size:1rem;line-height:1.5;display:flex;overflow-x:clip}::selection{background-color:var(--color-primary-strong);color:#fff}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul[class],ol[class]{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}img,svg,canvas{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}pre,code{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--color-primary-strong);outline-offset:2px}[tabindex="-1"]:focus{outline:none}[ng-cloak]{display:none!important}#main-content{flex:1 0 auto}.skip-link{z-index:100;border-radius:var(--radius-md);background:var(--color-text);color:var(--color-text-inverse);font:600 .875rem/1.25rem var(--font-sans);transition:transform var(--duration-base) var(--ease-out);padding:.5rem .875rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.noscript-notice{max-width:40rem;color:var(--color-text-muted);margin:4rem auto;padding:0 1.25rem}.noscript-notice a{color:var(--color-primary)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.text-headline-xl{font-family:var(--font-sans);letter-spacing:-.02em;font-size:2rem;font-weight:600;line-height:2.5rem}.text-headline-lg{font-family:var(--font-sans);letter-spacing:-.015em;font-size:1.625rem;font-weight:600;line-height:2.125rem}.text-headline-md{font-family:var(--font-sans);letter-spacing:-.01em;font-size:1.25rem;font-weight:600;line-height:1.75rem}.text-headline-sm{font-family:var(--font-sans);letter-spacing:-.005em;font-size:1.125rem;font-weight:500;line-height:1.625rem}@media (min-width:768px){.text-headline-xl{letter-spacing:-.03em;font-size:2.75rem;line-height:3.25rem}.text-headline-lg{letter-spacing:-.02em;font-size:2rem;line-height:2.5rem}.text-headline-md{font-size:1.375rem;line-height:1.875rem}}.text-body-lg{font-size:1rem;line-height:1.625rem}.text-body-md{font-size:.875rem;line-height:1.375rem}.text-body-sm{letter-spacing:.005em;font-size:.8125rem;line-height:1.25rem}.text-label-md{font-family:var(--font-mono);letter-spacing:.04em;font-size:.75rem;font-weight:500;line-height:1rem}.text-label-sm{font-family:var(--font-mono);letter-spacing:.05em;font-size:.6875rem;font-weight:500;line-height:.875rem}.text-code{font-family:var(--font-mono);font-size:.8125rem;line-height:1.125rem}.uppercase{text-transform:uppercase}.text-strong{color:var(--color-text)}.text-muted{color:var(--color-text-muted)}.text-subtle{color:var(--color-text-subtle)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-tertiary{color:var(--color-tertiary)}dd-home-page,dd-hero,dd-experience-section,dd-experience-card,dd-projects-section,dd-skills-section,dd-education-section,dd-certificates,dd-contact-section,dd-section-header,dd-project-inspector,dd-site-footer{display:block}dd-site-header{z-index:50;min-height:calc(var(--header-height) + 1px);display:block;position:sticky;top:0}.container{width:100%;max-width:var(--container-max);padding-inline:var(--page-margin);margin-inline-start:auto;margin-inline-end:auto}.section{padding-block:var(--section-space);border-top:1px solid var(--line-faint);scroll-margin-top:var(--header-height)}.section:focus{outline:none}.tag-list{gap:var(--space-sm);flex-wrap:wrap;display:flex}.tag-list--tight{gap:.375rem}.reveal{opacity:0;transition:opacity var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:translateY(12px)}.reveal.is-revealed{opacity:1;transform:none}@media print{.reveal{opacity:1;transform:none}}.icon{flex-shrink:0;width:1em;height:1em;font-size:1rem;line-height:1;display:inline-flex}.icon svg{width:100%;height:100%}.eyebrow{margin-bottom:var(--space-xs);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);font-size:.6875rem;font-weight:500;line-height:.875rem;display:block}.text-link{align-items:center;gap:var(--space-xs);color:var(--color-secondary);transition:color var(--duration-fast) ease;display:inline-flex}@media (hover:hover){.text-link:hover{color:var(--color-primary)}}.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);white-space:nowrap;transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease, filter var(--duration-fast) ease, transform var(--duration-fast) ease;border:1px solid #0000;display:inline-flex}.btn:active{transform:scale(.98)}.btn--primary{background-color:var(--color-primary-strong);color:var(--color-on-primary-strong);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;line-height:1.25rem}.btn--outline{border-color:var(--line-medium);background-color:var(--color-surface-lowest);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.04em;padding:.625rem 1rem;font-size:.75rem;font-weight:500;line-height:1rem}.btn--light{background-color:var(--color-text);color:var(--color-text-inverse);font-family:var(--font-mono);letter-spacing:.04em;padding:.375rem .875rem;font-size:.75rem;font-weight:600;line-height:1rem}.btn--subtle,.btn--accent{font-family:var(--font-mono);letter-spacing:.05em;padding:.375rem .75rem;font-size:.6875rem;font-weight:500;line-height:.875rem}.btn--subtle{border-color:var(--line-medium);background-color:var(--color-surface-high);color:var(--color-text)}.btn--accent{background-color:var(--color-primary-strong);color:var(--color-on-primary-strong);font-weight:600}.btn--block{width:100%}.btn .icon{font-size:1rem}@media (hover:hover){.btn--primary:hover{filter:brightness(1.1)}.btn--outline:hover{color:var(--color-primary);border-color:#89ceff66}.btn--light:hover{background-color:var(--color-primary)}.btn--subtle:hover{background-color:var(--color-surface-bright)}.btn--accent:hover{background-color:var(--color-secondary-strong)}}.icon-btn{border:1px solid var(--line-soft);border-radius:var(--radius-sm);width:2.25rem;height:2.25rem;color:var(--color-text-muted);transition:color var(--duration-fast) ease, border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;justify-content:center;align-items:center;display:inline-flex}.icon-btn .icon{font-size:1.125rem}@media (hover:hover){.icon-btn:hover{color:var(--color-primary);border-color:#89ceff66}}.chip{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background-color:var(--color-surface-high);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.05em;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;line-height:.875rem;display:inline-flex}.chip--accent{color:var(--color-primary)}.chip--plain{border-color:#0000}.chip--lg{padding:.25rem .75rem;font-weight:600}.chip--core{color:var(--color-primary);border-color:#89ceff4d}.chip--tool{border-color:var(--color-line);color:var(--color-text)}.chip--code{color:var(--color-text);letter-spacing:0;padding:.25rem .625rem;font-size:.8125rem;font-weight:400;line-height:1.125rem}.chip--quiet{border-color:var(--line-faint);background-color:var(--color-surface-low);color:var(--color-text-muted)}.badge{align-items:center;gap:var(--space-sm);border:1px solid var(--line-medium);border-radius:var(--radius-sm);background-color:var(--color-surface-high);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;padding:.125rem .625rem;font-size:.6875rem;font-weight:500;line-height:.875rem;display:inline-flex}.badge--primary{color:var(--color-primary);background-color:#89ceff1a;border-color:#89ceff4d}.badge--secondary{color:var(--color-secondary);background-color:#7bd0ff1a;border-color:#7bd0ff4d}.badge--tertiary{color:var(--color-tertiary);background-color:#b4c5ff1a;border-color:#b4c5ff4d}.badge--strong{font-weight:600}.card{border:1px solid var(--hairline);border-radius:var(--radius-md);background-color:var(--color-bg);transition:border-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);position:relative}@media (hover:hover){.card:hover{box-shadow:var(--shadow-card-hover);border-color:#89ceff59;transform:translateY(-2px)}}.card--lg{border-radius:var(--radius-lg)}.highlight{background-image:var(--highlight-gradient)}.info-box{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background-color:var(--color-surface-low);padding:.875rem}.meta-label{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-subtle);font-size:.6875rem;font-weight:500;line-height:.875rem;display:block}.info-box .meta-label{margin-bottom:var(--space-xs)}.info-box__text{color:var(--color-text);font-size:.8125rem;line-height:1.25rem}.private-tag{color:var(--color-text-subtle);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;flex-shrink:0;align-items:center;gap:.375rem;font-size:.6875rem;font-weight:500;line-height:.875rem;display:inline-flex}.private-tag .icon{font-size:.875rem}.private-tag--boxed{border:1px solid var(--line-soft);border-radius:var(--radius-sm);color:var(--color-text-muted);padding:.375rem .75rem}.date-chip{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background-color:var(--color-surface-low);color:var(--color-text-muted);white-space:nowrap;padding:.25rem .75rem;display:inline-block}.date-chip--current{background-color:var(--color-surface-high);color:var(--color-text);border-color:#0000}.status-chip{border:1px solid var(--line-medium);border-radius:var(--radius-sm);background-color:var(--color-surface-low);color:var(--color-primary);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:.375rem;padding:.125rem .625rem;font-size:.6875rem;font-weight:500;line-height:.875rem;display:inline-flex}.hint-touch{display:none}@media (hover:none){.hint-pointer{display:none}.hint-touch{display:inline}}.dot{background-color:var(--color-primary);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block;position:relative}.dot--lg{width:8px;height:8px}.dot--strong{background-color:var(--color-primary-strong)}.dot--secondary{background-color:var(--color-secondary-strong)}.dot--muted{background-color:var(--color-text-subtle)}.dot--pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite dot-pulse}.dot--ping:after{content:"";border-radius:inherit;background-color:inherit;animation:1.6s cubic-bezier(0,0,.2,1) infinite dot-ping;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes dot-pulse{50%{opacity:.4}}@keyframes dot-ping{75%,to{opacity:0;transform:scale(2.4)}}@media (prefers-reduced-motion:reduce){.dot--pulse,.dot--ping:after{animation:none}}.section-header{justify-content:space-between;align-items:center;gap:var(--space-md) var(--space-lg);flex-wrap:wrap;margin-bottom:2rem;display:flex}.section-header__text{max-width:48rem}.section-header__title{color:var(--color-text)}.section-header__description{margin-top:var(--space-xs)}.section-header__aside:empty{display:none}body.has-pager{height:100vh;height:100dvh;overflow:hidden}html:has(>body.has-pager){overscroll-behavior:none}body.has-pager #main-content{flex:1 1 0;min-height:0}body.has-pager #main-content>[ng-view],body.has-pager dd-home-page{height:100%;display:block}dd-section-pager{--pager-duration:1s;--pager-ease:cubic-bezier(.76, 0, .24, 1);height:100%;display:block;position:relative}.pager{height:100%;position:relative;overflow:clip}dd-pager-panel{z-index:var(--index,0);visibility:hidden;background-color:var(--color-bg);background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);touch-action:pan-y pinch-zoom;transition:transform var(--pager-duration) var(--pager-ease), box-shadow var(--pager-duration) ease, visibility 0s linear var(--pager-duration);background-size:32px 32px;display:block;position:absolute;top:0;bottom:0;left:0;right:0;overflow:clip;transform:translate(100%)}dd-pager-panel.is-before{transform:translate(-30%)scale(.9)}dd-pager-panel.is-current{visibility:visible;transition-delay:0s;transform:none}dd-pager-panel.is-parked{display:none}dd-pager-panel:after{content:"";z-index:5;opacity:0;pointer-events:none;transition:opacity var(--pager-duration) var(--pager-ease);background-color:#000;position:absolute;top:0;bottom:0;left:0;right:0}dd-pager-panel.is-before:after{opacity:.7}dd-pager-panel:before{content:"";z-index:6;background:linear-gradient(to bottom, transparent, var(--color-primary) 30%, var(--color-primary-strong) 70%, transparent);opacity:0;pointer-events:none;width:2px;transition:opacity .5s;position:absolute;top:0;bottom:0;left:0;right:auto;box-shadow:0 0 32px 6px #0ea5e973}dd-pager-panel.is-moving{box-shadow:-48px 0 96px -12px #000000d9}dd-pager-panel.is-moving:before{opacity:1}dd-section-pager.is-instant dd-pager-panel,dd-section-pager.is-instant dd-pager-panel:after,dd-section-pager.is-instant .pager-panel__mark,dd-section-pager.is-instant .pager-panel__glow{transition:none!important}.pager-panel__scroll{z-index:1;overscroll-behavior:contain;scrollbar-color:#ffffff26 transparent;scrollbar-width:thin;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden auto}.pager-panel__scroll:focus{outline:none}.pager-panel__scroll:after{content:"";flex:0 0 5.5rem}.pager-panel__content{flex-direction:column;flex:1 0 auto;display:flex}.pager-panel__content>:first-child{margin-block-start:auto;margin-block-end:auto}dd-pager-panel .section{border-top:0}.pager-panel__mark{z-index:0;color:#0000;font:800 clamp(9rem, 30vw, 28rem) / 1 var(--font-sans);letter-spacing:-.06em;-webkit-text-stroke:1px #89ceff1a;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;transform:translate3d(calc(var(--pager-dir,1) * 35%), 0, 0);transition:transform 1.4s var(--ease-out), opacity 1s ease;position:absolute;bottom:-.2em;right:-.04em}dd-pager-panel.is-current .pager-panel__mark{opacity:1;transition-delay:.15s;transform:none}.pager-panel__glow{top:var(--glow-y);left:var(--glow-x);z-index:0;opacity:0;pointer-events:none;width:70vmax;height:70vmax;transition:scale 1.6s var(--ease-out), opacity 1.2s ease;background:radial-gradient(circle,#0ea5e921,#0ea5e90a 35%,#0000 62%);border-radius:50%;animation:22s ease-in-out infinite alternate paused pager-drift;position:absolute;translate:-50% -50%;scale:.6}dd-pager-panel.is-current .pager-panel__glow{opacity:1;animation-play-state:running;scale:1}.pager-panel__rail{display:none}@media (min-width:1280px){.pager-panel__rail{z-index:2;color:var(--color-text-subtle);font:500 .6875rem / 1 var(--font-mono);letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;writing-mode:vertical-rl;pointer-events:none;display:block;position:absolute;top:50%;left:1.5rem;transform:translateY(-50%)rotate(180deg)}}dd-pager-panel.is-arriving .section-header__text>*,dd-pager-panel.is-arriving .section-header__aside,dd-pager-panel.is-arriving .hero__crumbs,dd-pager-panel.is-arriving .hero__intro>*,dd-pager-panel.is-arriving .topology-window,dd-pager-panel.is-arriving .contact-panel__inner>*{animation:pager-arrive .9s var(--ease-out) .38s backwards}dd-pager-panel.is-arriving .section-header__text>:nth-child(2),dd-pager-panel.is-arriving .hero__intro>:nth-child(2),dd-pager-panel.is-arriving .contact-panel__inner>:nth-child(2){animation-delay:.47s}dd-pager-panel.is-arriving .section-header__text>:nth-child(3),dd-pager-panel.is-arriving .section-header__aside,dd-pager-panel.is-arriving .hero__intro>:nth-child(3),dd-pager-panel.is-arriving .contact-panel__inner>:nth-child(3){animation-delay:.56s}dd-pager-panel.is-arriving .hero__intro>:nth-child(n+4),dd-pager-panel.is-arriving .topology-window,dd-pager-panel.is-arriving .contact-panel__inner>:nth-child(n+4){animation-delay:.65s}.pager-next-wrap{margin-top:var(--space-lg)}.pager-next{padding-top:var(--space-lg);border-top:1px solid var(--line-faint);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem 1.25rem;display:flex}.pager-next__target{color:var(--color-text);letter-spacing:-.02em;align-items:baseline;gap:.75rem;font-size:clamp(1.375rem,3vw,2rem);font-weight:600;line-height:1.2;display:inline-flex}.pager-next__number{color:var(--color-primary);font-family:var(--font-mono);font-size:.875rem;font-weight:500}.pager-next__arrow{border:1px solid var(--line-medium);width:3rem;height:3rem;color:var(--color-primary);transition:transform .3s var(--ease-out), background-color var(--duration-base) ease, border-color var(--duration-base) ease, color var(--duration-base) ease;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.pager-next__arrow .icon{font-size:1.25rem}@media (hover:hover){.pager-next:hover .pager-next__arrow{border-color:var(--color-primary-strong);background-color:var(--color-primary-strong);color:var(--color-on-primary-strong);transform:translate(6px)}}.pager-dock{left:50%;bottom:max(.875rem, env(safe-area-inset-bottom));z-index:30;border:1px solid var(--line-medium);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#0d0e11b8;align-items:center;gap:.25rem;padding:.25rem;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 12px 30px -12px #000c,inset 0 1px #ffffff0a}.pager-dock__arrow{width:2.25rem;height:2.25rem;color:var(--color-text-muted);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, opacity var(--duration-fast) ease;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.pager-dock__arrow .icon{font-size:1.25rem}.pager-dock__arrow:disabled{opacity:.3;cursor:default}.pager-dock__dots{align-items:center;display:flex}.pager-dock__dot{padding:.75rem .25rem;display:block}.pager-dock__pip{border-radius:var(--radius-pill);background-color:var(--color-line);width:8px;height:8px;transition:width .5s var(--ease-out), background-color .3s ease;display:block;overflow:hidden}.pager-dock__dot.is-current .pager-dock__pip{background-color:#89ceff38;width:2.25rem}.pager-dock__fill{background-color:var(--color-primary);height:100%;box-shadow:0 0 8px var(--color-primary);transform-origin:0;transition:transform .2s linear;display:block;transform:scaleX(0)}.pager-dock__dot.is-current .pager-dock__fill{transform:scaleX(var(--progress,0))}.pager-dock__label{display:none}@media (hover:hover){.pager-dock__arrow:not(:disabled):hover{background-color:var(--color-surface-high);color:var(--color-primary)}.pager-dock__dot:not(.is-current):hover .pager-dock__pip{background-color:var(--color-text-muted)}}@media (min-width:640px){.pager-dock__label{border-left:1px solid var(--line-soft);min-width:9.5rem;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.5rem;padding-inline-start:.75rem;padding-inline-end:.25rem;font-size:.6875rem;font-weight:500;display:inline-flex}.pager-dock__count{color:var(--color-primary);font-variant-numeric:tabular-nums}.pager-dock__name{color:var(--color-text)}}@keyframes pager-arrive{0%{opacity:0;transform:translateX(calc(var(--pager-dir,1) * 56px));filter:blur(6px)}}@keyframes pager-drift{to{translate:-42% -58%}}@media (prefers-reduced-motion:reduce){dd-pager-panel.is-arriving .section-header__text>*,dd-pager-panel.is-arriving .section-header__aside,dd-pager-panel.is-arriving .hero__crumbs,dd-pager-panel.is-arriving .hero__intro>*,dd-pager-panel.is-arriving .topology-window,dd-pager-panel.is-arriving .contact-panel__inner>*,.pager-panel__glow{animation:none}}@media print{body.has-pager{height:auto;overflow:visible}.pager,dd-pager-panel,dd-pager-panel.is-parked,.pager-panel__scroll{visibility:visible;height:auto;display:block;position:static;overflow:visible;transform:none}dd-pager-panel:before,dd-pager-panel:after,.pager-panel__mark,.pager-panel__glow,.pager-panel__rail,.pager-next-wrap,.pager-dock{display:none}}.hero{padding-top:3rem;padding-bottom:var(--section-space);scroll-margin-top:var(--header-height)}.hero:focus{outline:none}.hero__crumbs{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.hero__crumb-divider{color:var(--color-line)}.hero__grid{align-items:center;gap:2rem;display:grid}.hero__intro>*+*{margin-top:var(--space-lg)}.hero__heading>*+*{margin-top:.75rem}.hero__name{color:var(--color-text)}.hero__roles{color:var(--color-secondary);letter-spacing:-.015em}.hero__summary{max-width:36rem}.hero__facts{padding-top:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.hero__fact{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background-color:#1b1b1f99;min-width:0;padding:.75rem}.hero__fact:last-child:nth-child(odd){grid-column:span 2}.hero__fact-value{color:var(--color-text);margin-top:.125rem;font-weight:500}.hero__actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.hero__intro>.hero__actions{margin-top:2.5rem}.topology-window{padding:var(--space-md);border:1px solid var(--line-medium);border-radius:var(--radius-lg);background-color:var(--color-surface-lowest);position:relative;overflow:hidden}.topology-window__bar{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid var(--line-faint);padding-bottom:.75rem;display:flex}.topology-window__file{align-items:center;gap:var(--space-sm);min-width:0;display:flex}.window-dot{background-color:var(--color-line);border-radius:50%;flex-shrink:0;width:10px;height:10px}.topology-window__filename{margin-left:var(--space-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topology-window__status{color:var(--color-primary);text-transform:uppercase;align-items:center;gap:.375rem;display:inline-flex}.topology-window__stage{border-radius:var(--radius-sm);background-color:#1b1b1f66;height:15rem;position:relative}.topology-window__canvas{cursor:crosshair;touch-action:pan-y;width:100%;height:100%}.topology-window__hint{right:var(--space-sm);bottom:var(--space-sm);left:var(--space-sm);color:var(--color-text-subtle);pointer-events:none;position:absolute}.topology-window__stats{gap:var(--space-sm);border-top:1px solid var(--line-faint);color:var(--color-text-muted);text-align:center;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.75rem;padding-top:.75rem;display:grid}.topology-window__stats dt,.topology-window__stats dd{display:inline}.topology-window__stats dd{color:var(--color-text);white-space:nowrap;font-weight:600}@media (max-width:479.98px){.hero__crumb-divider{display:none}.topology-window__stats{grid-template-columns:minmax(0,1fr)}}.topology-window__stats dd.text-secondary{color:var(--color-secondary)}@media (min-width:640px){.hero__facts{grid-template-columns:repeat(3,minmax(0,1fr))}.hero__fact:last-child:nth-child(odd){grid-column:auto}}@media (min-width:768px){.hero{padding-top:5rem}.topology-window__stage{height:17.5rem}}@media (min-width:1024px){.hero__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.experience-cycle{align-items:center;gap:var(--space-sm);display:none}.experience-list{gap:var(--space-lg);display:grid}.experience-card{padding:var(--space-lg)}.experience-card__head{gap:var(--space-md);margin-bottom:var(--space-md);flex-direction:column;display:flex}.experience-card__title-group .badge{margin-bottom:var(--space-sm)}.experience-card__role{color:var(--color-text)}.experience-card__meta{align-items:flex-start;gap:var(--space-xs);flex-direction:column;display:flex}.experience-card__summary{margin-bottom:var(--space-md);line-height:1.625}.experience-card__tags{padding-top:var(--space-sm);border-top:1px solid var(--line-faint)}@media (min-width:640px){.experience-cycle{display:inline-flex}}@media (min-width:768px){.experience-card__head{flex-direction:row;justify-content:space-between;align-items:flex-start}.experience-card__meta{text-align:right;flex-shrink:0;align-items:flex-end}}.projects-console{gap:2rem;display:grid}@media (min-width:1120px){.projects-console{grid-template-columns:minmax(0,30rem) minmax(0,1fr);align-items:start}}@media (min-width:1120px) and (min-height:880px){.projects-console__dial{position:sticky;top:1.5rem}}dd-rotary-dial{gap:var(--space-md);flex-direction:column;display:flex;container-type:inline-size}.dial-controls{align-items:stretch;gap:var(--space-md);padding:.75rem var(--space-md);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background-color:var(--color-surface-lowest);flex-direction:column;display:flex}.dial-readout{justify-content:center;align-items:center;gap:var(--space-xs) .75rem;flex-wrap:wrap;display:flex}.dial-readout__angle{min-width:29ch;color:var(--color-primary);font-variant-numeric:tabular-nums;font-weight:600}.dial-readout__rpm{font-variant-numeric:tabular-nums;min-width:9ch;display:inline-block}.dial-readout__divider,.dial-readout__velocity{display:none}.dial-readout__divider{color:var(--color-line)}.dial-readout__velocity{color:var(--color-text-muted)}.dial-tabs{border:1px solid var(--line-faint);border-radius:var(--radius-sm);background-color:var(--color-surface);gap:.375rem;padding:.25rem;display:flex}.dial-tab{border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.05em;text-align:center;transition:background-color var(--duration-base) ease, color var(--duration-base) ease;flex:1 1 0;padding:.375rem .5rem;font-size:.6875rem;font-weight:500;line-height:.875rem}.dial-tab.is-active{background-color:var(--color-primary-strong);color:var(--color-on-primary-strong);font-weight:600}@media (hover:hover){.dial-tab:not(.is-active):hover{color:var(--color-text)}}.dial-actions{justify-content:center;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.dial-actions .icon-btn{background-color:var(--color-surface)}.dial-spin{padding-block-start:.5rem;padding-block-end:.5rem;box-shadow:0 4px 14px -4px #0ea5e959}.dial-spin.is-spinning .icon{animation:.9s linear infinite dial-spin-icon}@keyframes dial-spin-icon{to{transform:rotate(360deg)}}.dial-toggle{border:1px solid var(--line-medium);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.05em;transition:border-color var(--duration-fast) ease;align-items:center;gap:.375rem;padding:.5rem .625rem;font-size:.6875rem;font-weight:500;line-height:.875rem;display:inline-flex}.dial-toggle[aria-pressed=true]{border-color:var(--color-primary-strong)}@media (hover:hover){.dial-toggle:hover{border-color:var(--color-primary)}}.dial-stage{padding:2rem var(--space-md) var(--space-lg);border:1px solid var(--line-faint);border-radius:var(--radius-lg);scroll-margin-top:calc(var(--header-height) + 1rem);-webkit-user-select:none;user-select:none;background-color:#0d0e11cc;flex-direction:column;align-items:center;display:flex;position:relative;overflow:hidden}.dial-pointer{z-index:3;pointer-events:none;filter:drop-shadow(0 0 12px #0ea5e999);flex-direction:column;align-items:center;margin-bottom:-1rem;display:flex;position:relative}.dial-pointer__badge{border:1px solid var(--color-primary);border-radius:var(--radius-pill);background-color:var(--color-surface-high);color:var(--color-primary);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.375rem;padding:.125rem .75rem;font-size:.625rem;font-weight:500;line-height:1rem;display:inline-flex}.dial-pointer__needle{width:1.75rem;height:1.5rem;fill:var(--color-primary)}.dial{z-index:1;aspect-ratio:1;cursor:grab;touch-action:none;border-radius:50%;width:min(100%,30.625rem);position:relative}.dial.is-dragging{cursor:grabbing}.dial:focus-visible{outline-offset:6px}.dial__bezel,.dial__rotor{pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.dial__rotor{will-change:transform;border-radius:50%;box-shadow:0 20px 60px -15px #000000e6,0 0 0 1px #ffffff14}.dial__rotor *{pointer-events:visiblePainted}.dial__rings{z-index:-1;opacity:.25;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.dial__ring,.dial__axis{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dial__ring{aspect-ratio:1;border-radius:50%}.dial__ring--outer{border:1px dashed #3e485080;width:130%}.dial__ring--middle{border:1px solid var(--line-soft);width:106%}.dial__ring--inner{border:1px solid var(--line-faint);width:86%}.dial__axis--x{background:linear-gradient(90deg,#0000,#89ceff4d,#0000);width:240%;height:1px}.dial__axis--y{background:linear-gradient(#0000,#89ceff4d,#0000);width:1px;height:170%}.dial-sector{cursor:pointer;stroke-width:1.5px;stroke-opacity:.25;transition:stroke-opacity .3s,filter .2s}.dial-sector.is-active{stroke-opacity:.9}.dial-spoke{stroke:var(--color-primary-strong);stroke-width:3px;stroke-linecap:round;pointer-events:none}.dial-track{fill:none;stroke:#fff;pointer-events:none}.dial-track--inner{stroke-dasharray:3 6;stroke-opacity:.08}.dial-track--outer{stroke-dasharray:1 4;stroke-opacity:.05}.dial-label,.dial-ticks{pointer-events:none}.dial-label__badge{fill:var(--color-surface);stroke-width:1.5px}.dial-label__number,.dial-label__title,.dial-label__stack,.dial-label__note,.dial-hub__label{text-anchor:middle}.dial-label__number{font:700 13px var(--font-mono);dominant-baseline:central}.dial-label__title{fill:#fff;font:600 14px var(--font-sans);letter-spacing:-.02em}.dial-label__stack{font:500 9px var(--font-mono);letter-spacing:.08em}.dial-label__note{fill:var(--color-text-muted);opacity:.7;font:400 8px var(--font-mono);letter-spacing:.04em}.dial-ticks{opacity:.7}.dial-ticks circle{fill:none}.dial-ticks__major{stroke:var(--color-text-muted);stroke-width:6px}.dial-ticks__minor{stroke:var(--color-text-subtle);stroke-width:3px}.dial-hub__cap{cursor:pointer}.dial-hub__face{fill:var(--color-surface);stroke:var(--color-primary);stroke-width:1.5px;transition:fill var(--duration-base) ease}.dial-hub__label{fill:var(--color-primary);font:600 7.5px var(--font-mono);letter-spacing:.1em}@media (hover:hover){.dial-sector:hover{filter:brightness(1.35)}.dial-hub__cap:hover .dial-hub__face{fill:var(--color-surface-highest)}}.dial-hint{z-index:2;align-items:center;gap:var(--space-sm);max-width:100%;padding:.375rem var(--space-md);border:1px solid var(--line-soft);border-radius:var(--radius-lg);color:var(--color-text-muted);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#0d0e11e6;margin-top:1.25rem;display:inline-flex;position:relative}.dial-hint .icon{color:var(--color-primary);font-size:.9375rem}@container (width>=36rem){.dial-readout__divider,.dial-readout__velocity{display:inline}.dial-stage{padding-inline:var(--space-lg)}.dial-hint{border-radius:var(--radius-pill)}}@container (width>=46rem){.dial-controls{align-items:center;gap:.75rem var(--space-md);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"readout actions""tabs tabs";display:grid}.dial-readout{grid-area:readout;justify-content:flex-start}.dial-actions{flex-wrap:nowrap;grid-area:actions}.dial-tabs{grid-area:tabs}.dial-tab{white-space:nowrap;padding-inline-start:.75rem;padding-inline-end:.75rem}}dd-project-inspector{container-type:inline-size}.inspector{--accent:var(--color-primary);--accent-strong:var(--color-primary-strong);border:1px solid var(--line-soft);border-radius:var(--radius-lg);background-color:var(--color-surface-low);background-image:var(--highlight-gradient);flex-direction:column;gap:1.25rem;padding:1.25rem;transition:border-color .3s;display:flex;position:relative;overflow:hidden}.inspector--secondary{--accent:var(--color-secondary);--accent-strong:var(--color-secondary-strong)}.inspector--tertiary{--accent:var(--color-tertiary);--accent-strong:var(--color-tertiary)}.inspector:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.7;height:2px;position:absolute;top:0;bottom:auto;left:0;right:0}.inspector.is-scanning{border-color:#7bd0ff59}.inspector__scan{left:0;right:0;z-index:1;border-bottom:1px solid color-mix(in srgb, var(--accent) 70%, transparent);background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--accent) 14%, transparent));opacity:0;pointer-events:none;height:6rem;position:absolute;top:-6rem}.inspector__bar{justify-content:space-between;align-items:center;gap:var(--space-md);border-bottom:1px solid var(--line-faint);color:var(--color-text-muted);text-transform:uppercase;padding-bottom:.75rem;display:flex}.inspector__status{align-items:center;gap:var(--space-sm);min-width:0;display:inline-flex}.inspector__counter{color:var(--accent);font-variant-numeric:tabular-nums;flex-shrink:0}.inspector__content{gap:var(--space-lg);flex-direction:column;transition:opacity .25s,filter .25s,transform .25s;display:flex}.inspector.is-scanning .inspector__content{opacity:.28;filter:blur(2px)saturate(.5);transform:scale(.99)}.inspector__head{flex-direction:column;gap:.75rem;display:flex}.inspector__title-group{align-items:center;gap:.75rem;display:flex}.inspector__number{border-radius:var(--radius-sm);background-color:var(--accent-strong);width:2.5rem;height:2.5rem;color:var(--color-text-inverse);font-family:var(--font-mono);flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:700;transition:background-color .3s;display:inline-flex}.inspector__category,.inspector__accent{color:var(--accent)}.inspector__title{color:var(--color-text)}.inspector__tags{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.inspector__body{gap:1.25rem;display:grid}.inspector__main,.inspector__aside{flex-direction:column;gap:1.25rem;min-width:0;display:flex}.inspector__stats,.inspector__highlights{gap:.75rem;display:grid}.inspector__stat{border:1px solid var(--line-faint);border-radius:var(--radius-sm);background-color:var(--color-surface);padding:.875rem}.inspector__stat .meta-label,.inspector__specs .meta-label{margin-bottom:var(--space-xs)}.inspector__challenge{gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background-color:var(--color-surface-lowest);flex-direction:column;display:flex}.inspector__challenge-label{align-items:center;gap:var(--space-sm);color:var(--accent);text-transform:uppercase;display:inline-flex}.inspector__challenge-label .icon{font-size:1.125rem}.inspector__specs{gap:.875rem var(--space-md);padding:var(--space-md);border:1px solid var(--line-faint);border-radius:var(--radius-sm);background-color:var(--color-surface);display:grid}.inspector__stack-label{margin-bottom:var(--space-sm)}.inspector__chip{background-color:var(--color-surface);padding:.25rem .625rem}@container (width>=30rem){.inspector{padding:1.75rem}.inspector__stats,.inspector__highlights,.inspector__specs{grid-template-columns:repeat(2,minmax(0,1fr))}.inspector__highlight:last-child:nth-child(odd){grid-column:1/-1}}@container (width>=52rem){.inspector{padding:2rem}.inspector__body{gap:var(--space-lg);grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.inspector.is-pending [data-step]{opacity:0}.inspector.is-revealing [data-step]{animation:inspector-rise .62s var(--ease-out) both;animation-delay:calc(var(--step,0) * 70ms)}.inspector.is-revealing .inspector__number{animation:inspector-flip .65s var(--ease-out) both}.inspector.is-revealing .inspector__chip{animation:inspector-pop .38s var(--ease-out) both;animation-delay:calc(.64s + var(--chip,0) * 60ms)}.inspector.is-revealing .inspector__scan{animation:1.1s cubic-bezier(.4,0,.2,1) both inspector-scan}.inspector.is-revealing:before{animation:inspector-edge .7s var(--ease-out) both}@keyframes inspector-rise{0%{opacity:0;filter:blur(6px);transform:translateY(14px)}to{opacity:1;filter:none;transform:none}}@keyframes inspector-flip{0%{transform:perspective(200px)rotateX(90deg)}to{transform:none}}@keyframes inspector-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes inspector-scan{0%{opacity:1;top:-6rem}to{opacity:0;top:100%}}@keyframes inspector-edge{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.inspector.is-revealing [data-step],.inspector.is-revealing .inspector__number,.inspector.is-revealing .inspector__chip,.inspector.is-revealing .inspector__scan,.inspector.is-revealing:before{animation:none}.inspector.is-scanning .inspector__content{filter:none;transform:none}}.languages-panel{border:1px solid var(--line-soft);border-radius:var(--radius-md);background-color:var(--color-surface-low);margin-top:2rem;padding:1.25rem}.languages-panel__title{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.75rem;font-size:.75rem;font-weight:600;line-height:1rem}.languages-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.language{justify-content:space-between;align-items:center;gap:var(--space-sm);border:1px solid var(--line-faint);border-radius:var(--radius-sm);background-color:var(--color-surface-high);padding:.75rem;display:flex}.language__name{color:var(--color-text);font-weight:500}.language__level{font-weight:600}.language__level--tier-1{color:var(--color-primary)}.language__level--tier-2{color:var(--color-secondary)}.language__level--tier-3{color:var(--color-text-muted)}.language__level--tier-4{color:var(--color-text-subtle)}@media (min-width:640px){.languages-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}dd-tech-carousel{display:block}.tech-carousel{--slide-duration:5.5s;--float-duration:6.5s;--float-phase:-.9s;gap:var(--space-md);flex-direction:column;display:flex}.tech-carousel__viewport{padding:2.25rem 0 4.75rem;position:relative;overflow:hidden}.tech-carousel__viewport:after{content:"";z-index:0;clip-path:polygon(38% 100%,62% 100%,100% 0,0 0);pointer-events:none;background:linear-gradient(#0000 15%,#0ea5e924);width:min(70%,30rem);height:70%;position:absolute;bottom:2.25rem;left:50%;transform:translate(-50%)}.tech-carousel__stage{z-index:1;perspective:1600px;perspective-origin:50% 35%;touch-action:pan-y;display:grid;position:relative}.tech-slide{width:min(100%,38rem);transform:translate3d(calc(var(--offset) * 66%), 0, calc(var(--depth) * -320px)) rotateY(calc(var(--offset) * -30deg));transition:transform .9s var(--ease-out), opacity .6s ease, filter .6s ease;grid-area:1/1;justify-self:center}.tech-slide.is-active{z-index:3}.tech-slide.is-near{z-index:2;opacity:.4;filter:blur(1px)saturate(.6)brightness(.75);cursor:pointer}.tech-slide.is-far{z-index:1;opacity:.15;filter:blur(2px)saturate(.4);pointer-events:none}.tech-slide.is-hidden{opacity:0;pointer-events:none}.tech-slide__float{height:100%;animation:tech-float var(--float-duration) ease-in-out infinite;animation-delay:calc(var(--phase) * var(--float-phase))}.tech-card{--accent-rgb:137 206 255;border:1px solid rgb(var(--accent-rgb) / .28);border-radius:var(--radius-lg);background:radial-gradient(circle at var(--mx,50%) var(--my,-10%), rgb(var(--accent-rgb) / .16), transparent 55%), linear-gradient(160deg, #24262cf0, #0d0e11f5);height:100%;box-shadow:0 40px 60px -40px #000000f2, 0 0 48px -18px rgb(var(--accent-rgb) / .55), inset 0 1px 0 #ffffff0f;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s var(--ease-out);flex-direction:column;gap:.875rem;padding:1.5rem 1.25rem 1.25rem;display:flex;position:relative;overflow:hidden}.tech-card--secondary{--accent-rgb:14 165 233}.tech-card--tertiary{--accent-rgb:180 197 255}.tech-card--muted{--accent-rgb:136 146 155}.tech-card:before{content:"";pointer-events:none;background:repeating-linear-gradient(#ffffff06 0 1px,#0000 1px 4px);position:absolute;top:0;bottom:0;left:0;right:0}.tech-card:after{content:"";background:linear-gradient(100deg, transparent 42%, rgb(var(--accent-rgb) / .1) 50%, transparent 58%);pointer-events:none;position:absolute;top:-50%;bottom:-50%;left:-20%;right:-20%;transform:translate(-60%)}.tech-slide.is-active .tech-card:after{animation:7s ease-in-out infinite tech-sheen}.tech-card__corner{border:0 solid rgb(var(--accent-rgb) / .8);pointer-events:none;width:14px;height:14px;position:absolute}.tech-card__corner--tl{border-top-width:2px;border-left-width:2px;top:8px;left:8px}.tech-card__corner--tr{border-top-width:2px;border-right-width:2px;top:8px;right:8px}.tech-card__corner--bl{border-bottom-width:2px;border-left-width:2px;bottom:8px;left:8px}.tech-card__corner--br{border-bottom-width:2px;border-right-width:2px;bottom:8px;right:8px}.tech-card__hud,.tech-card__foot{justify-content:space-between;align-items:center;gap:var(--space-sm);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.08em;display:flex}.tech-card__hud{border-bottom:1px dashed rgb(var(--accent-rgb) / .2);padding-bottom:.75rem}.tech-card__code{color:rgb(var(--accent-rgb));align-items:center;gap:.375rem;display:inline-flex}.tech-card__code .dot{background-color:rgb(var(--accent-rgb));box-shadow:0 0 8px rgb(var(--accent-rgb))}.tech-card__heading{justify-content:space-between;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.tech-card__title{color:var(--color-text);text-shadow:0 0 24px rgb(var(--accent-rgb) / .35)}.tech-card__set-label{margin-bottom:var(--space-sm)}.tech-card__tiles{grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));gap:.5rem;display:grid}.tech-tile{border:1px solid var(--line-soft);border-radius:var(--radius-sm);min-width:0;color:var(--color-text);font-family:var(--font-mono);transition:border-color var(--duration-base) ease, box-shadow var(--duration-base) ease, transform var(--duration-base) ease;background-color:#07080a8c;align-items:center;gap:.5rem;padding:.5rem;font-size:.75rem;line-height:1rem;display:flex}.tech-tile__index{color:rgb(var(--accent-rgb) / .75);flex-shrink:0;font-size:.625rem;display:none}.tech-tile--core{border-color:rgb(var(--accent-rgb) / .35);background-color:rgb(var(--accent-rgb) / .06);color:rgb(var(--accent-rgb))}.tech-card__foot{border-top:1px dashed rgb(var(--accent-rgb) / .2);margin-top:auto;padding-top:.75rem}.tech-card__signal{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.tech-card__signal span{background-color:rgb(var(--accent-rgb));border-radius:1px;width:3px}.tech-card__signal span:first-child{height:4px}.tech-card__signal span:nth-child(2){height:7px}.tech-card__signal span:nth-child(3){height:10px}.tech-card__signal span:nth-child(4){height:12px}.tech-slide.is-active .tech-card__signal span{animation:1.2s ease-in-out infinite tech-signal}.tech-slide.is-active .tech-card__signal span:nth-child(2){animation-delay:.15s}.tech-slide.is-active .tech-card__signal span:nth-child(3){animation-delay:.3s}.tech-slide.is-active .tech-card__signal span:nth-child(4){animation-delay:.45s}.tech-slide.is-active .tech-card__code{animation:.7s step-end backwards tech-flicker}.tech-slide.is-active .tech-card__heading,.tech-slide.is-active .tech-card__description{animation:tech-rise .6s var(--ease-out) 80ms backwards}.tech-slide.is-active .tech-tile{animation:tech-tile-in .52s var(--ease-out) backwards;animation-delay:calc(.2s + var(--i) * 40ms)}@media (hover:hover){.tech-slide.is-near:hover{opacity:.75}.tech-slide.is-active .tech-tile:hover{border-color:rgb(var(--accent-rgb) / .8);box-shadow:0 0 18px -6px rgb(var(--accent-rgb)), inset 0 0 12px -8px rgb(var(--accent-rgb));transform:translateY(-2px)}}.tech-carousel__particles{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.tech-carousel__particle{background-color:var(--color-primary);box-shadow:0 0 6px var(--color-primary);opacity:0;border-radius:50%;animation:linear infinite tech-particle;position:absolute;bottom:2rem}.tech-carousel__pad{z-index:0;width:min(80%,32rem);height:3rem;animation:tech-pad var(--float-duration) ease-in-out infinite;animation-delay:calc(var(--phase,0) * var(--float-phase));pointer-events:none;background:radial-gradient(#0ea5e961,#0ea5e914 55%,#0000 70%);border-radius:50%;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}.tech-carousel__pad:before,.tech-carousel__pad:after{content:"";border-radius:50%;position:absolute}.tech-carousel__pad:before{border:1px solid #89ceff73;top:18%;bottom:18%;left:12%;right:12%}.tech-carousel__pad:after{border:1px dashed #89ceff2e;top:-6px;bottom:-6px;left:-8%;right:-8%}.tech-carousel__controls{align-items:center;gap:var(--space-sm);display:flex}.tech-rail{flex:1;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.375rem;min-width:0;display:grid}.tech-rail__item{width:100%;color:var(--color-text-subtle);font-family:var(--font-mono);letter-spacing:.08em;text-align:left;text-transform:uppercase;transition:color var(--duration-base) ease;flex-direction:column;gap:.375rem;padding:.375rem .125rem;font-size:.625rem;font-weight:500;line-height:.875rem;display:flex}.tech-rail__item.is-active{color:var(--color-primary)}.tech-rail__code{display:none}.tech-rail__bar{background-color:var(--line-medium);border-radius:1px;height:2px;display:block;overflow:hidden}.tech-rail__fill{background-color:var(--color-primary);height:100%;box-shadow:0 0 8px var(--color-primary);transform-origin:0;display:block;transform:scaleX(0)}.tech-rail__item.is-active .tech-rail__fill{transform:scaleX(1)}.tech-carousel.is-playing .tech-rail__item.is-active .tech-rail__fill{animation-name:tech-rail-fill;animation-duration:var(--slide-duration);animation-timing-function:linear}.tech-carousel:has(:focus-visible) .tech-rail__fill{animation-play-state:paused}@media (hover:hover){.tech-carousel:has(.tech-carousel__viewport:hover) .tech-rail__fill{animation-play-state:paused}.tech-rail__item:not(.is-active):hover{color:var(--color-text)}}.tech-carousel.is-offscreen *,.tech-carousel.is-offscreen :before,.tech-carousel.is-offscreen :after{animation-play-state:paused!important}.tech-carousel__toggle{border:1px solid var(--line-medium);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.05em;transition:border-color var(--duration-fast) ease;flex-shrink:0;align-items:center;gap:.375rem;padding:.5rem .625rem;font-size:.6875rem;font-weight:500;line-height:.875rem;display:inline-flex}.tech-carousel__toggle[aria-pressed=true]{border-color:var(--color-primary-strong)}@media (hover:hover){.tech-carousel__toggle:hover{border-color:var(--color-primary)}}@media (min-width:768px){.tech-carousel__viewport{-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.tech-card{padding:1.75rem 1.75rem 1.5rem}.tech-card__tiles{grid-template-columns:repeat(auto-fill,minmax(8.75rem,1fr))}.tech-tile{padding:.5rem .625rem;font-size:.8125rem;line-height:1.125rem}.tech-tile__index,.tech-rail__code{display:inline}}@keyframes tech-float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes tech-pad{0%,to{opacity:1;transform:translate(-50%)scale(1)}50%{opacity:.6;transform:translate(-50%)scale(.88)}}@keyframes tech-sheen{0%,55%{transform:translate(-60%)}to{transform:translate(60%)}}@keyframes tech-signal{50%{opacity:.3}}@keyframes tech-flicker{0%{opacity:0}20%{opacity:1}30%{opacity:.2}45%{opacity:1}55%{opacity:.4}70%{opacity:1}}@keyframes tech-rise{0%{opacity:0;filter:blur(6px);transform:translateY(10px)}}@keyframes tech-tile-in{0%{opacity:0;filter:blur(4px);border-color:rgb(var(--accent-rgb));transform:translateY(10px)scale(.95)}}@keyframes tech-particle{0%{opacity:0;transform:translateY(0)}15%{opacity:.7}80%{opacity:.2}to{opacity:0;transform:translateY(-26rem)}}@keyframes tech-rail-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.tech-slide__float,.tech-carousel__pad,.tech-slide.is-active .tech-card:after,.tech-slide.is-active .tech-card__signal span,.tech-slide.is-active .tech-card__code,.tech-slide.is-active .tech-card__heading,.tech-slide.is-active .tech-card__description,.tech-slide.is-active .tech-tile{animation:none}.tech-carousel__particles{display:none}.tech-carousel.is-playing .tech-rail__item.is-active .tech-rail__fill{animation-duration:var(--slide-duration)!important}}.education-list{gap:var(--space-lg);display:grid}.education-card{padding:var(--space-lg)}.education-card--current,.education-card--current:hover{border-left:4px solid var(--color-primary)}.education-card__head{gap:var(--space-sm);flex-direction:column;margin-bottom:.75rem;display:flex}.education-card__level{letter-spacing:.06em}.education-card--current .education-card__level{color:var(--color-primary)}.education-card__degree{color:var(--color-text)}.education-card__meta{align-items:flex-start;gap:var(--space-xs);flex-direction:column;display:flex}.education-card__grade{color:var(--color-text);font-weight:600}.education-card__coursework{margin-top:var(--space-md);border-top:1px solid var(--line-faint);padding-top:.75rem}.education-card__coursework .meta-label{margin-bottom:var(--space-sm)}.course-chip{border-radius:var(--radius-sm);background-color:var(--color-surface-high);color:var(--color-text);padding:.25rem .625rem}.school-row{justify-content:space-between;align-items:center;gap:var(--space-sm) var(--space-md);padding:var(--space-md);border:1px solid var(--line-faint);border-radius:var(--radius-md);background-color:#0d0e1180;flex-wrap:wrap;display:flex}.school-row__info{align-items:baseline;gap:var(--space-xs) var(--space-sm);flex-wrap:wrap;display:flex}.school-row__name{font-weight:400}.school-row__divider{color:var(--color-line)}.certificates{border-top:1px solid var(--line-faint);scroll-margin-top:var(--header-height);margin-top:3rem;padding-top:2rem}.certificates__title{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);color:var(--color-text);display:flex}.certificates__title .icon{color:var(--color-primary);font-size:1.375rem}.certificates__grid{gap:var(--space-lg);display:grid}.program-card{padding:var(--space-lg);border-radius:var(--radius-lg);background-color:var(--color-surface-low);border:1px solid #7bd0ff66;grid-column:1/-1;overflow:hidden}.program-card__head{gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--line-faint);flex-direction:column;display:flex}.program-card__badges{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);flex-wrap:wrap;display:flex}.program-card__institution{color:var(--color-text);font-weight:700}.program-card__program{color:var(--color-secondary);font-weight:500}.program-card__outcome{align-items:baseline;gap:var(--space-xs) var(--space-md);padding:var(--space-md);border:1px solid var(--line-soft);border-radius:var(--radius-md);background-color:#292a2d99;grid-template-columns:1fr auto;grid-template-areas:"label date""score score""credits credits";display:grid}.program-card__outcome-label{grid-area:label}.program-card__score{color:var(--color-primary);letter-spacing:-.02em;white-space:nowrap;grid-area:score;font-size:1.625rem;font-weight:800;line-height:2.125rem}.program-card__credits{color:var(--color-secondary);grid-area:credits;font-weight:600}.program-card__date{text-align:right;grid-area:date}.program-card__summary{max-width:48rem;margin-top:var(--space-md);line-height:1.625}.certificates__item{min-width:0;display:flex}.cert-card{flex-direction:column;flex:1;justify-content:space-between;padding:1.25rem;display:flex}.cert-card__top{justify-content:space-between;align-items:center;gap:var(--space-xs) var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.cert-card__title{margin-bottom:var(--space-sm);color:var(--color-text);font-weight:600}.cert-card p{margin-bottom:var(--space-md)}.cert-card__footer{justify-content:space-between;align-items:center;gap:var(--space-sm);border-top:1px solid var(--line-faint);padding-top:.75rem;display:flex}.cert-card__footer .icon{font-size:1.125rem}@media (min-width:768px){.education-card__head{flex-direction:row;justify-content:space-between;align-items:flex-start}.education-card__meta{text-align:right;flex-shrink:0;align-items:flex-end}.certificates__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.program-card__head{flex-direction:row;justify-content:space-between;align-items:center}.program-card__outcome{align-items:flex-end;gap:var(--space-xs);flex-direction:column;flex-shrink:0;display:flex}.program-card__score{font-size:2rem;line-height:2.5rem}}.contact-panel{padding:var(--space-lg);border:1px solid var(--line-medium);border-radius:var(--radius-lg);background-color:var(--color-surface-low)}.contact-panel__inner{max-width:42rem}.contact-panel__title{color:var(--color-text);margin-bottom:.75rem}.contact-panel__description{margin-bottom:2rem;line-height:1.625}.contact-grid{gap:var(--space-md);display:grid}.contact-link{padding:var(--space-md);border:1px solid var(--line-soft);border-radius:var(--radius-sm);transition:border-color var(--duration-base) ease, background-color var(--duration-base) ease;background-color:#292a2d80;display:block}.contact-link__label{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.contact-link__label .icon{color:var(--color-primary);font-size:1.125rem}.contact-link .meta-label{transition:color var(--duration-base) ease}.contact-link__value{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}@media (hover:hover){.contact-link:hover{background-color:var(--color-surface-high);border-color:#89ceff66}.contact-link:hover .meta-label{color:var(--color-primary)}}@media (min-width:640px){.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.contact-panel{padding:2rem}}.site-header{isolation:isolate;border-bottom:1px solid var(--line-soft);position:relative}.site-header:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#121316e6;position:absolute;top:0;bottom:0;left:0;right:0}.site-header__bar{justify-content:space-between;align-items:center;gap:var(--space-md);height:var(--header-height);display:flex}.brand{align-items:center;gap:var(--space-sm);min-width:0;display:inline-flex}.brand__mark{border:1px solid var(--line-medium);border-radius:var(--radius-sm);background-color:var(--color-surface-low);width:2rem;height:2rem;color:var(--color-primary);font-family:var(--font-mono);letter-spacing:.04em;transition:border-color var(--duration-fast) ease;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:inline-flex}.brand__name{color:var(--color-text);font-family:var(--font-mono);letter-spacing:.06em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;transition:color var(--duration-fast) ease;font-size:.75rem;font-weight:600;line-height:1rem;overflow:hidden}@media (hover:hover){.brand:hover .brand__mark{border-color:var(--color-primary)}.brand:hover .brand__name{color:var(--color-primary)}}.site-nav{display:none}.site-nav__list{align-items:center;gap:var(--space-lg);display:flex}.site-nav__link{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.04em;transition:color var(--duration-fast) ease;padding-block-start:.375rem;padding-block-end:.375rem;font-size:.75rem;line-height:1rem;display:inline-block;position:relative}.site-nav__link:after{content:"";background-color:var(--color-primary-strong);transform-origin:0;height:2px;transition:transform var(--duration-base) var(--ease-out);position:absolute;top:auto;bottom:0;left:0;right:0;transform:scaleX(0)}.site-nav__link.is-active{color:var(--color-primary);font-weight:500}.site-nav__link.is-active:after{transform:scaleX(1)}@media (hover:hover){.site-nav__link:hover{color:var(--color-primary)}}.site-header__actions{align-items:center;gap:.75rem;display:flex}.site-header__social{display:none}.menu-toggle .icon{font-size:1.25rem}@media (min-width:640px){.site-header__social{display:inline-flex}}@media (min-width:1024px){.site-nav{display:block}.menu-toggle{display:none}}.mobile-menu{z-index:2;border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:opacity var(--duration-base) ease, transform var(--duration-base) var(--ease-out), visibility 0s linear var(--duration-base);background-color:#121316f7;position:absolute;top:100%;left:0;right:0;transform:translateY(-6px)}.mobile-menu.is-open{opacity:1;visibility:visible;transition-delay:0s;transform:none}.mobile-menu__panel{max-height:calc(100dvh - var(--header-height));padding-block:var(--space-sm) var(--space-lg);overflow-y:auto}.mobile-menu__list li+li{border-top:1px solid var(--line-faint)}.mobile-menu__link{align-items:center;gap:var(--space-md);color:var(--color-text-muted);transition:color var(--duration-fast) ease;padding-block-start:.875rem;padding-block-end:.875rem;font-size:1rem;font-weight:500;line-height:1.5rem;display:flex}.mobile-menu__link.is-active,.mobile-menu__link:hover{color:var(--color-primary)}.mobile-menu__index{min-width:1.5rem;color:var(--color-text-subtle);font-family:var(--font-mono);letter-spacing:.05em;font-size:.6875rem}.mobile-menu__actions{margin-top:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--line-faint);flex-wrap:wrap;gap:.75rem;display:flex}.mobile-menu__backdrop{inset:var(--header-height) 0 0;z-index:1;background-color:#00000073;position:fixed}@media (min-width:1024px){.mobile-menu,.mobile-menu__backdrop{display:none}}.site-footer{border-top:1px solid var(--line-faint);background-color:var(--color-surface-lowest)}.site-footer__inner{align-items:center;gap:var(--space-md);padding-block:var(--space-xl);text-align:center;flex-direction:column;display:flex}.site-footer__brand{gap:var(--space-xs);flex-direction:column;display:flex}.site-footer__name{color:var(--color-text);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:600;line-height:1rem}.site-footer__links{justify-content:center;gap:var(--space-sm) var(--space-lg);flex-wrap:wrap;display:flex}.site-footer__link{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.05em;text-underline-offset:3px;transition:color var(--duration-fast) ease;font-size:.6875rem;font-weight:500;line-height:.875rem}@media (hover:hover){.site-footer__link:hover{color:var(--color-primary);text-decoration:underline}}@media (min-width:1024px){.site-footer__inner{text-align:left;flex-direction:row;justify-content:space-between}}
