/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer tokens{:root{--ui-color-bg:#08090b;--ui-color-bg-secondary:#0e1013;--ui-color-surface:#121519;--ui-color-surface-elevated:#191d22;--ui-color-border:#282e35;--ui-color-border-subtle:#20252b;--ui-color-text-primary:#f3f5f7;--ui-color-text-secondary:#a4adb7;--ui-color-text-muted:#717b86;--ui-color-accent:#8fb7ff;--ui-color-accent-hover:#bad1ff;--ui-color-accent-subtle:#8fb7ff1f;--ui-color-purple:#2e0382;--ui-color-purple-subtle:#2e038252;--ui-color-success:#6dd6a4;--ui-color-warning:#f0c674;--ui-color-error:#ff8585;--ui-font-sans:"Inter","Aptos",ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--ui-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;--ui-text-display:clamp(2.7rem,6.5vw,5rem);--ui-text-h1:clamp(2.5rem,6vw,4.5rem);--ui-text-h2:clamp(2rem,4vw,3rem);--ui-text-h3:1.5rem;--ui-text-body:1rem;--ui-text-body-small:.875rem;--ui-text-caption:.75rem;--ui-text-label:.8125rem;--ui-leading-display:1.05;--ui-leading-heading:1.2;--ui-leading-body:1.65;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--ui-tracking-tight:-.04em;--ui-tracking-normal:0;--ui-tracking-wide:.12em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--ui-radius-sm:.25rem;--ui-radius-md:.5rem;--ui-radius-lg:.75rem;--ui-radius-xl:1rem;--ui-radius-pill:9999px;--ui-duration-fast:.12s;--ui-duration-normal:.2s;--ui-duration-slow:.35s;--ui-ease-out:cubic-bezier(.16,1,.3,1);--ui-ease-in-out:cubic-bezier(.65,0,.35,1);--ui-ease-spring:cubic-bezier(.34,1.56,.64,1);--ui-shadow-sm:0 1px 2px #0000003d;--ui-shadow-md:0 12px 32px #00000047;--ui-shadow-lg:0 24px 70px #00000061;--ui-shadow-glow:0 0 28px #8fb7ff24;--bp-sm:640px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px}:root[data-theme=light]{--ui-color-bg:#f4f5f7;--ui-color-bg-secondary:#eceef2;--ui-color-surface:#fff;--ui-color-surface-elevated:#fff;--ui-color-border:#d3d8df;--ui-color-border-subtle:#e2e6eb;--ui-color-text-primary:#0d1117;--ui-color-text-secondary:#3d4651;--ui-color-text-muted:#59626e;--ui-color-accent:#2453c4;--ui-color-accent-hover:#1c3f99;--ui-color-accent-subtle:#2453c41a;--ui-color-purple-subtle:#2e03821f;--ui-color-success:#157a52;--ui-color-warning:#8a5a00;--ui-color-error:#b42328;--ui-shadow-sm:0 1px 2px #0f172a14;--ui-shadow-md:0 12px 32px #0f172a1a;--ui-shadow-lg:0 24px 70px #0f172a24;--ui-shadow-glow:0 0 28px #2453c41f}@media (prefers-reduced-motion:reduce){:root{--ui-duration-fast:0s;--ui-duration-normal:0s;--ui-duration-slow:0s}}}:root{color-scheme:dark}:root[data-theme=light]{color-scheme:light}*,:after,:before{box-sizing:border-box}.ui-badge,.ui-button,.ui-card,.ui-container,.ui-link,.ui-project-card,.ui-section,.ui-social-links,.ui-stat,.ui-stats-grid,.ui-technology-card,.ui-timeline{font-family:var(--ui-font-sans)}.ui-button{border-radius:var(--ui-radius-pill);min-height:2.75rem;font-size:var(--ui-text-body-small);cursor:pointer;transition:color var(--ui-duration-normal) var(--ui-ease-out),background var(--ui-duration-normal) var(--ui-ease-out),border-color var(--ui-duration-normal) var(--ui-ease-out),box-shadow var(--ui-duration-normal) var(--ui-ease-out),transform var(--ui-duration-normal) var(--ui-ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:.55rem;font-weight:600;text-decoration:none;display:inline-flex}.ui-button-link:hover,.ui-button:hover:not(:disabled){transform:translateY(-1px)}.ui-button-link:focus-visible,.ui-button:focus-visible,.ui-link:focus-visible,.ui-project-card__link:focus-visible,.ui-social-links__link:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:4px}.ui-button:disabled{opacity:.48;cursor:not-allowed}.ui-button--primary{color:light-dark(#fff,#10141a);background:var(--ui-color-accent);box-shadow:0 8px 26px light-dark(#2453c41f,#8fb7ff1f)}.ui-button--primary:hover:not(:disabled){background:var(--ui-color-accent-hover);box-shadow:var(--ui-shadow-glow)}.ui-button--secondary{color:var(--ui-color-text-primary);background:var(--ui-color-surface-elevated);border-color:var(--ui-color-border)}.ui-button--ghost{color:var(--ui-color-text-secondary);background:0 0}.ui-button--ghost:hover:not(:disabled){color:var(--ui-color-text-primary);background:light-dark(#0d11170b,#ffffff0b)}.ui-button--outline{color:var(--ui-color-text-primary);border-color:var(--ui-color-border);background:0 0}.ui-button--outline:hover:not(:disabled){border-color:var(--ui-color-accent);color:var(--ui-color-accent)}.ui-button--sm{min-height:2.25rem;font-size:var(--ui-text-label);padding:0 .95rem}.ui-button--md{padding:0 1.25rem}.ui-button--lg{min-height:3.25rem;font-size:var(--ui-text-body);padding:0 1.6rem}.ui-button__icon{align-items:center;display:inline-flex}.ui-button__spinner{width:1rem;height:1rem;animation:ui-spin 1s linear infinite}.ui-button__spinner-track{opacity:.25}.ui-button__spinner-fill{opacity:.8}@keyframes ui-spin{to{transform:rotate(1turn)}}.ui-link{color:var(--ui-color-text-secondary);transition:color var(--ui-duration-normal) var(--ui-ease-out);border-radius:2px;align-items:center;gap:.35rem;font-weight:550;text-decoration:none;display:inline-flex}.ui-link--default:hover,.ui-link:hover{color:var(--ui-color-text-primary)}.ui-link--subtle{color:var(--ui-color-text-muted)}.ui-link--accent{color:var(--ui-color-accent)}.ui-link--accent:hover{color:var(--ui-color-accent-hover)}.ui-badge{border:1px solid var(--ui-color-border-subtle);border-radius:var(--ui-radius-pill);min-height:1.55rem;font-size:var(--ui-text-caption);white-space:nowrap;align-items:center;padding:.18rem .62rem;font-weight:550;line-height:1.2;display:inline-flex}.ui-badge--default{color:var(--ui-color-text-secondary);background:var(--ui-color-surface-elevated);border-color:var(--ui-color-border)}.ui-badge--accent{color:var(--ui-color-accent);background:var(--ui-color-accent-subtle);border-color:light-dark(#2453c438,#8fb7ff38)}.ui-badge--success{color:var(--ui-color-success);background:light-dark(#157a5214,#6dd6a414);border-color:light-dark(#157a5233,#6dd6a433)}.ui-badge--warning{color:var(--ui-color-warning);background:light-dark(#8a5a0014,#f0c67414);border-color:light-dark(#8a5a0033,#f0c67433)}.ui-badge--neutral{color:var(--ui-color-text-muted);background:light-dark(#0d111706,#ffffff06)}.ui-container{width:100%;margin-inline:auto}.ui-container--sm{max-width:640px}.ui-container--md{max-width:768px}.ui-container--lg{max-width:1024px}.ui-container--xl{max-width:1280px}.ui-container--2xl{max-width:1440px}.ui-container--full{max-width:none}.ui-container--padded{padding-inline:clamp(1.25rem,5vw,4.5rem)}.ui-section{padding-block:clamp(2.5rem,5vw,4.5rem);scroll-margin-top:5rem;position:relative}.ui-section:before{background:linear-gradient(90deg,transparent,var(--ui-color-border),transparent);content:"";width:min(100% - 3rem,1280px);height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.ui-section__heading{box-sizing:border-box;width:100%;max-width:1280px;margin:0 auto clamp(2rem,5vw,4rem);padding-inline:clamp(1.25rem,5vw,4.5rem)}.ui-section--sm .ui-section__heading{max-width:640px}.ui-section--md .ui-section__heading{max-width:768px}.ui-section--lg .ui-section__heading{max-width:1024px}.ui-section--2xl .ui-section__heading{max-width:1440px}.ui-section__eyebrow{color:var(--ui-color-accent);font-family:var(--ui-font-mono);font-size:var(--ui-text-caption);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:.75rem;margin:0 0 .9rem;display:flex}.ui-section__eyebrow:after{opacity:.55;content:"";background:currentColor;width:2.5rem;height:1px}.ui-section__title{max-width:22ch;color:var(--ui-color-text-primary);font-size:var(--ui-text-h2);letter-spacing:var(--ui-tracking-tight);font-weight:650;line-height:var(--ui-leading-heading);margin:0 0 .8rem}.ui-section__subtitle{max-width:42rem;color:var(--ui-color-text-secondary);font-size:var(--ui-text-body);line-height:var(--ui-leading-body);margin:0}.ui-card{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl);transition:border-color var(--ui-duration-normal) var(--ui-ease-out),transform var(--ui-duration-normal) var(--ui-ease-out),box-shadow var(--ui-duration-normal) var(--ui-ease-out)}.ui-card--default{background:light-dark(#ffffffbd,#121519bd)}.ui-card--elevated{box-shadow:var(--ui-shadow-md);background:linear-gradient(145deg,light-dark(#ffffffe6,#191d22e6),light-dark(#ffffffdb,#0f1215db))}.ui-card--interactive{cursor:pointer;background:light-dark(#ffffffbd,#121519bd)}.ui-card--interactive:hover{box-shadow:var(--ui-shadow-glow);border-color:light-dark(#2453c466,#8fb7ff66);transform:translateY(-3px)}.ui-technology-group__title{color:var(--ui-color-text-primary);letter-spacing:var(--ui-tracking-wide);margin:0;font-size:clamp(1.05rem,1.8vw,1.3rem);font-weight:600}.ui-technology-group__heading{justify-content:space-between;align-items:center;gap:1rem;padding:0 clamp(2.5rem,5vw,4rem);display:flex}.ui-technology-group__count{color:var(--ui-color-accent);font-family:var(--ui-font-mono);font-size:var(--ui-text-caption)}.ui-technology-group__count span{color:var(--ui-color-text-muted)}.ui-technology-carousel{margin-top:.4rem;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000);mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000)}.ui-technology-carousel__slides{align-items:center;width:133.333%;padding-block:1.5rem;display:flex;transform:translate(0)}.ui-technology-carousel__slides.is-moving{transition:transform 1.8s cubic-bezier(.42,0,.32,1);transform:translate(-25%)}.ui-technology-card{isolation:isolate;border-radius:var(--ui-radius-xl);height:100%;min-height:10rem;transition:opacity .5s var(--ui-ease-out),border-color .5s var(--ui-ease-out),transform 2.4s cubic-bezier(.2,.72,.2,1),box-shadow .5s var(--ui-ease-out);background:radial-gradient(at 50% 0,#2e03822b,#0000 60%),linear-gradient(150deg,light-dark(#fffffff0,#171a20f0),light-dark(#fffffff0,#0b0d11f0));border:1px solid light-dark(#2453c429,#8fb7ff29);padding:clamp(1rem,2vw,1.5rem);position:relative;overflow:hidden;box-shadow:0 16px 40px light-dark(#0f172a12,#00000029)}.ui-technology-card__layout{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:.5rem;height:100%;display:flex;position:relative}.ui-technology-card__icon{width:3.5rem;height:3.5rem;color:var(--ui-color-accent);transition:transform .65s var(--ui-ease-out),border-color .5s var(--ui-ease-out),box-shadow .5s var(--ui-ease-out);background:light-dark(#ffffffe0,#14171ee0);border-radius:1rem;flex:0 0 3.5rem;place-items:center;display:grid}.ui-technology-card__icon img{width:3rem;height:rem;object-fit:contain;display:block}.ui-technology-card__monogram{color:var(--ui-color-accent);font-family:var(--ui-font-mono);letter-spacing:-.05em;font-size:.95rem;font-weight:700}.ui-technology-card__body{flex-direction:column;flex:1;width:100%;min-width:0;display:flex}.ui-technology-card__title-row{justify-content:center;align-items:center;display:flex}.ui-technology-card__title{color:var(--ui-color-text-primary);margin:0;font-size:clamp(1rem,1.1vw,1.1rem);font-weight:500}.ui-technology-card__category,.ui-technology-card__count{color:var(--ui-color-text-muted);font-size:var(--ui-text-caption)}.ui-technology-card__category{display:none}.ui-technology-card__description{color:var(--ui-color-text-secondary);font-size:var(--ui-text-body-small);line-height:var(--ui-leading-body);-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.ui-technology-card__count{margin:.6rem 0 0}.ui-technology-card__experience{width:min(100%,17rem);margin:auto auto 0;padding-top:.5rem}.ui-technology-card__experience-heading{color:var(--ui-color-text-muted);font-size:var(--ui-text-caption);flex-direction:column;justify-content:center;align-items:center;display:flex}.ui-technology-card__experience-value{min-height:1em;color:var(--ui-color-text-primary);font-size:calc(var(--ui-text-body-small) * .8)}.ui-technology-card__experience-meter{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:.7rem;margin-left:2.5rem;margin-right:2.5rem;display:grid}.ui-technology-card__experience-step{height:.4rem;transition:background .4s var(--ui-ease-out),box-shadow .4s var(--ui-ease-out);background:light-dark(#0d111729,#b9c0cc29);border-radius:999px}.ui-technology-card__experience-step.is-filled{background:linear-gradient(90deg,var(--ui-color-purple),var(--ui-color-accent));box-shadow:0 0 .7rem #2e038280}.ui-technology-carousel__slide--next,.ui-technology-carousel__slide--previous{opacity:.58;flex:0 0 25%;min-width:0;padding-inline:.6rem;transition:opacity 1.55s cubic-bezier(.2,.72,.2,1),transform 1.55s cubic-bezier(.2,.72,.2,1);transform:scale(.88)}.ui-technology-carousel__slide--active,.ui-technology-carousel__slide--departing,.ui-technology-carousel__slide--incoming{flex:0 0 25%;min-width:0;padding-inline:.6rem}.ui-technology-carousel__slide--departing,.ui-technology-carousel__slide--incoming{opacity:0;transition:opacity 1.45s cubic-bezier(.2,.72,.2,1),transform 1.45s cubic-bezier(.2,.72,.2,1);transform:scale(.84)}.ui-technology-carousel__slide--next .ui-technology-card__icon,.ui-technology-carousel__slide--previous .ui-technology-card__icon{transform:scale(.85)}.ui-technology-carousel__slide--active{isolation:isolate;z-index:1;border-color:light-dark(#6b3fd480,#9d82ff80);position:relative;overflow:hidden;transform:translateY(-.25rem)scale(1.04);box-shadow:0 24px 60px light-dark(#0f172a22,#0000004d),0 0 2rem #2e03822e,inset 0 1px #ffffff0b}.ui-technology-carousel__slide--active,.ui-technology-carousel__slide--next,.ui-technology-carousel__slide--previous{transition:opacity 1.55s cubic-bezier(.2,.72,.2,1),border-color .5s var(--ui-ease-out),transform 1.55s cubic-bezier(.2,.72,.2,1),box-shadow .5s var(--ui-ease-out)}.ui-technology-card__water-ripple{z-index:0;top:var(--technology-ripple-y,50%);left:var(--technology-ripple-x,50%);aspect-ratio:1;color:light-dark(#2453c447,#89c2ff47);pointer-events:none;border-radius:50%;width:8rem;position:absolute;transform:translate(-50%,-50%)}.ui-technology-card__water-ripple:after,.ui-technology-card__water-ripple:before{content:"";opacity:0;pointer-events:none;animation:ui-technology-water-ripple var(--technology-ripple-duration,2s) ease-out var(--technology-ripple-delay,0s) infinite;border:1px solid;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 .65rem light-dark(#2453c41f,#5a9eff1f)}.ui-technology-card__water-ripple:after{animation-delay:calc(var(--technology-ripple-delay,0s) + .55s)}@keyframes ui-technology-water-ripple{0%,62%{opacity:0;transform:scale(.14)}68%{opacity:.34}88%{opacity:.12}to{opacity:0;transform:scale(2.45)}}.ui-technology-card__border-spark{z-index:2;pointer-events:none;background:light-dark(#2453c4,#8cc8ff);border:1px solid light-dark(#0d1117f2,#e1f5fff2);border-radius:50%;width:.2rem;height:.2rem;display:none;position:absolute;top:0;left:0;box-shadow:0 0 .35rem .12rem light-dark(#2453c4eb,#8bcbffeb),0 0 .9rem .25rem light-dark(#2453c48c,#2e71ff8c)}@supports (offset-path:inset(0 round 1rem)){.ui-technology-card__border-spark{offset-path:inset(1px round calc(var(--ui-radius-xl) - 1px));offset-anchor:center;offset-distance:0;animation:ui-technology-border-spark 20s linear infinite;display:block}}@keyframes ui-technology-border-spark{to{offset-distance:100%}}.ui-technology-carousel__slide--active .ui-technology-card__icon{border-color:light-dark(#6b3fd473,#9d82ff73);flex-basis:4.1rem;width:4.1rem;height:4.1rem;transform:translateY(-.1rem);box-shadow:0 0 1.6rem #2e038240}.ui-technology-carousel__slide--active .ui-technology-card__icon img{width:2.4rem;height:2.4rem}.ui-technology-carousel:focus-visible{border-radius:var(--ui-radius-xl);outline:2px solid var(--ui-color-accent);outline-offset:4px}.ui-technology-carousel__pagination{justify-content:center;gap:.4rem;display:flex}.ui-technology-carousel__page{cursor:pointer;background:0 0;border:0;place-items:center;width:1.5rem;height:1.5rem;padding:0;display:grid}.ui-technology-carousel__page:before{content:"";width:.38rem;height:.38rem;transition:width .45s var(--ui-ease-out),background .45s var(--ui-ease-out),box-shadow .45s var(--ui-ease-out);background:light-dark(#0d11174d,#b9c0cc4d);border-radius:999px}.ui-technology-carousel__page.is-active{width:1.5rem}.ui-technology-carousel__page.is-active:before{background:var(--ui-color-accent);width:1.15rem;box-shadow:0 0 .75rem light-dark(#2453c494,#89c2ff94)}.ui-technology-carousel__page:hover:before{background:var(--ui-color-accent)}.ui-technology-carousel__page:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:1px;border-radius:999px}.ui-technology-experience-legend{flex-wrap:wrap;justify-content:center;gap:.65rem 1.4rem;margin:0 0 3rem;display:flex}.ui-technology-experience-legend__item{color:var(--ui-color-text-secondary);font-size:var(--ui-text-caption);align-items:center;gap:.5rem;display:flex}.ui-technology-experience-legend__step{color:var(--ui-color-accent);font-family:var(--ui-font-mono);font-size:.68rem}.ui-timeline{position:relative}.ui-timeline-item{align-items:stretch;gap:clamp(1rem,2.5vw,2rem);display:flex}.ui-timeline--staggered .ui-timeline-item{opacity:0;transform:translateY(1.4rem)}.ui-timeline--staggered.is-visible .ui-timeline-item{animation:ui-timeline-arrive .65s var(--ui-ease-out) forwards;animation-delay:calc(var(--timeline-index,0) * .13s)}@keyframes ui-timeline-arrive{to{opacity:1;transform:translateY(0)}}.ui-timeline-item__chronology{flex-direction:column;flex:0 0 clamp(6.5rem,13vw,9.5rem);justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.65rem 1.8rem 2.4rem 0;display:flex;position:relative}.ui-timeline-item__chronology .ui-timeline-item__date{text-align:right;padding-top:.05rem;line-height:1.4}.ui-timeline-item__date--end{margin-top:auto}.ui-timeline-item__rail{flex-direction:column;align-items:center;width:1rem;display:flex;position:absolute;inset:1.7rem .35rem 2.45rem auto}.ui-timeline-item__dot{z-index:1;background:var(--ui-color-purple);border:1px solid light-dark(#2453c49e,#8fb7ff9e);border-radius:50%;flex:none;width:.8rem;height:.8rem;margin-top:.05rem;position:relative;box-shadow:0 0 0 .3rem #2e03821f,0 0 1.1rem #2e03829e}.ui-timeline-item.is-active .ui-timeline-item__dot{border-color:var(--ui-color-accent);background:var(--ui-color-accent);box-shadow:var(--ui-shadow-glow)}.ui-timeline-item__line{background:linear-gradient(light-dark(#2453c4c7,#8fb7ffc7),light-dark(#6b3fd4ad,#451f91ad) 40%,#2e038294);border-radius:999px;flex:1;width:2px;min-height:3rem;margin-top:.7rem;position:relative;overflow:hidden}.ui-timeline-item__line:after{border-radius:inherit;content:"";opacity:.8;background:linear-gradient(#0000,light-dark(#2453c4f2,#d0c2fff2),#0000);width:6px;height:38%;animation:ui-timeline-rail-glow 4.8s ease-in-out infinite;position:absolute;top:-45%;left:-2px}@keyframes ui-timeline-rail-glow{to{transform:translateY(400%)}}.ui-timeline-item__content{flex:1;min-width:0;padding-bottom:2.4rem}.ui-timeline-item__date{color:var(--ui-color-accent);font-family:var(--ui-font-mono);font-size:var(--ui-text-caption);letter-spacing:.04em;text-transform:uppercase}.ui-timeline-item__flip{position:relative}.ui-timeline-item__flip-inner{display:grid}.ui-timeline-item__face{isolation:isolate;border-radius:var(--ui-radius-xl);background:radial-gradient(at 100% 0,#2e038229,#0000 52%),linear-gradient(145deg,light-dark(#fffffff5,#171a20f5),light-dark(#fffffff5,#0b0d11f5));border:1px solid light-dark(#2453c426,#8fb7ff26);flex-direction:column;grid-area:1/1;align-items:flex-start;min-height:17rem;padding:clamp(1.2rem,3vw,2rem);transition:opacity .95s cubic-bezier(.2,.72,.2,1),transform 1.1s cubic-bezier(.2,.72,.2,1),border-color .5s,box-shadow .5s;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 48px light-dark(#0f172a19,#00000038),inset 0 1px #ffffff09}.ui-timeline-item__face:before{z-index:0;border-radius:inherit;content:"";opacity:0;pointer-events:none;background:conic-gradient(#0000 0deg 285deg,#2e038214 300deg,light-dark(#6b3fd4cc,#987dffcc) 326deg,light-dark(#2453c4f2,#a4d1fff2) 340deg,#0000 356deg 1turn);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.ui-timeline-item__face>*{z-index:1;position:relative}.ui-timeline-item__flip:focus-within .ui-timeline-item__face:before,.ui-timeline-item__flip:hover .ui-timeline-item__face:before{opacity:1;animation:ui-timeline-border-sweep 5s linear infinite}@keyframes ui-timeline-border-sweep{to{transform:rotate(1turn)}}.ui-timeline-item__face--front{z-index:1;opacity:1;transform:translate(0)scale(1)}.ui-timeline-item__face--back{z-index:0;opacity:0;pointer-events:none;transform:translate(1.1rem)scale(.985)}.ui-timeline-item__flip.is-flipped .ui-timeline-item__face--front{z-index:0;opacity:0;pointer-events:none;transform:translate(-1.1rem)scale(.985)}.ui-timeline-item__flip.is-flipped .ui-timeline-item__face--back{z-index:1;opacity:1;pointer-events:auto;transform:translate(0)scale(1)}.ui-timeline-item__heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.ui-timeline-item__heading .ui-badge{flex:none}.ui-timeline-item__title{max-width:35rem;color:var(--ui-color-text-primary);letter-spacing:-.035em;margin:1.25rem 0 .65rem;font-size:clamp(1.35rem,2.4vw,2rem);font-weight:600;line-height:1.2}.ui-timeline-item__summary{max-width:34rem;color:var(--ui-color-text-secondary);font-size:var(--ui-text-body-small);line-height:var(--ui-leading-body);margin:0}.ui-timeline-item__flip-action{min-height:2.5rem;color:var(--ui-color-accent);margin-top:auto;padding-inline:0}.ui-timeline-item__flip-action:hover{color:var(--ui-color-text-primary)}.ui-timeline-item__action-mark{border-top:1px solid;border-right:1px solid;width:.48rem;height:.48rem;margin-left:.55rem;transform:rotate(45deg)}.ui-timeline-item__action-mark--back{transform:rotate(225deg)}.ui-timeline-item__description{max-width:48rem;color:var(--ui-color-text-secondary);font-size:var(--ui-text-body-small);line-height:var(--ui-leading-body);margin:1rem 0 .9rem}.ui-timeline-item__highlights{color:var(--ui-color-text-primary);font-size:var(--ui-text-body-small);gap:.4rem;margin:.15rem 0 1rem;padding:0;list-style:none;display:grid}.ui-timeline-item__face--front .ui-timeline-item__highlights{margin-top:.8rem}.ui-timeline-item__highlights li{align-items:baseline;gap:.65rem;display:flex}.ui-timeline-item__highlights li:before{background:var(--ui-color-purple);content:"";border-radius:50%;flex:none;width:.38rem;height:.38rem;box-shadow:0 0 .7rem #2e0382cc}.ui-timeline-item__tags{flex-wrap:wrap;gap:.45rem;display:flex}.ui-timeline-item__back-actions{justify-content:space-between;align-items:center;width:100%;margin-top:auto;padding-top:.85rem}.ui-timeline-item__back-actions,.ui-timeline-item__links{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.ui-timeline-item__back-actions .ui-timeline-item__flip-action{margin-top:0}.ui-timeline-item__face :focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:3px}.ui-project-card{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl);height:100%;transition:transform var(--ui-duration-normal) var(--ui-ease-out),border-color var(--ui-duration-normal) var(--ui-ease-out),box-shadow var(--ui-duration-normal) var(--ui-ease-out);background:linear-gradient(155deg,light-dark(#ffffffeb,#191d22eb),light-dark(#fffffff0,#0e1013f0));position:relative;overflow:hidden}.ui-project-card--clickable{cursor:pointer}.ui-project-card__overlay-link{z-index:1;border-radius:inherit;position:absolute;inset:0}.ui-project-card__overlay-link:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:4px}.ui-project-card:hover{box-shadow:0 20px 60px light-dark(#0f172a1d,#00000040),var(--ui-shadow-glow);border-color:light-dark(#2453c461,#8fb7ff61);transform:translateY(-4px)}.ui-project-card__media{background:var(--ui-color-surface-elevated);aspect-ratio:16/9;position:relative;overflow:hidden}.ui-project-card__media--orbit{background:radial-gradient(at 68% 20%,light-dark(#2453c429,#8fb7ff29),#0000 50%),light-dark(#eceff5,#101722)}.ui-project-card__media--layers{background:radial-gradient(at 30% 90%,light-dark(#6b3fd424,#a98bff24),#0000 52%),light-dark(#eceff5,#15131d)}.ui-project-card__media--network{background:radial-gradient(at 75% 75%,light-dark(#157a521f,#6dd6a41f),#0000 50%),light-dark(#eceff5,#101917)}.ui-project-art{background-image:linear-gradient(light-dark(#0d111706,#ffffff06) 1px,#0000 0),linear-gradient(90deg,light-dark(#0d111706,#ffffff06) 1px,#0000 0);background-size:34px 34px;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.ui-project-art__frame{aspect-ratio:1;width:42%;transition:transform .7s var(--ui-ease-out);border:1px solid light-dark(#2453c452,#bccff152);border-radius:50%;position:absolute;transform:rotate(-25deg)scaleY(.62);box-shadow:0 0 50px light-dark(#2453c41f,#8fb7ff1f),inset 0 0 30px light-dark(#2453c40b,#8fb7ff0b)}.ui-project-card__media--layers .ui-project-art__frame{border-radius:1rem;width:34%;transform:translate(-18px,-12px)rotate(-12deg);box-shadow:18px 14px 0 -1px light-dark(#eceff5,#15131d),18px 14px light-dark(#6b3fd440,#cdbdff40),36px 28px 0 -1px light-dark(#eceff5,#15131d),36px 28px light-dark(#6b3fd42e,#cdbdff2e)}.ui-project-card__media--network .ui-project-art__frame{border-radius:.8rem;width:40%;transform:rotate(45deg)scale(.72);box-shadow:0 0 40px light-dark(#157a521a,#6dd6a41a)}.ui-project-art__orbit{aspect-ratio:1;border:1px dashed light-dark(#2453c447,#bccff147);border-radius:50%;width:29%;animation:ui-art-orbit 26s linear infinite;position:absolute}.ui-project-art__node{background:var(--ui-color-accent);border:1px solid light-dark(#0d1117cc,#dce8ffcc);border-radius:50%;width:.62rem;height:.62rem;position:absolute;box-shadow:0 0 18px light-dark(#2453c480,#8fb7ff80)}.ui-project-art__node--one{top:25%;left:58%}.ui-project-art__node--two{opacity:.6;width:.38rem;height:.38rem;bottom:27%;left:42%}.ui-project-art__node--three{opacity:.45;width:.28rem;height:.28rem;top:52%;right:31%}.ui-project-card__media--layers .ui-project-art__node{display:none}.ui-project-card__media--network .ui-project-art__node{background:light-dark(#157a52,#6dd6a4);width:.5rem;height:.5rem;box-shadow:0 0 16px light-dark(#157a5266,#6dd6a466)}.ui-project-art__label{color:light-dark(#0d1117b8,#dee6f3b8);letter-spacing:.14em;text-transform:uppercase;font-size:.58rem;bottom:1rem;left:1.1rem}.ui-project-art__index,.ui-project-art__label{font-family:var(--ui-font-mono);position:absolute}.ui-project-art__index{color:light-dark(#0d11176b,#dee6f36b);font-size:.68rem;top:.8rem;right:1.2rem}.ui-project-art__signal{background:var(--ui-color-accent);width:.38rem;height:.38rem;box-shadow:0 0 14px var(--ui-color-accent);opacity:.65;border-radius:50%;position:absolute;top:1.1rem;left:1.1rem}.ui-project-card__icon-wrap{z-index:1;aspect-ratio:1;place-items:center;width:clamp(4rem,7vw,5.5rem);transition:transform .9s cubic-bezier(.2,.72,.2,1);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ui-project-card__icon,.ui-project-card__icon-halo{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:light-dark(#ffffffc7,#0d0e16c7);border:1px solid light-dark(#6b3fd475,#9d82ff75);border-radius:1.5rem;position:absolute;inset:0;box-shadow:0 0 2rem #2e03823d,inset 0 1px #ffffff14}.ui-project-card__icon-halo{box-shadow:none;background:0 0;border-color:light-dark(#2453c42e,#8fb7ff2e);border-radius:1.9rem;transition:transform .9s cubic-bezier(.2,.72,.2,1),border-color .7s,box-shadow .7s;inset:-.7rem;transform:rotate(12deg)scale(.92)}.ui-project-card__icon{color:var(--ui-color-accent);place-items:center;font-size:clamp(1.7rem,3vw,2.4rem);transition:color .6s,box-shadow .7s,background .7s;display:grid}.ui-project-card__icon-image,.ui-project-card__icon>svg{width:1em;height:1em}.ui-project-card__icon-image{object-fit:contain;width:72%;height:72%}.ui-project-card:focus-within .ui-project-card__icon-wrap,.ui-project-card:hover .ui-project-card__icon-wrap{transform:translate(-50%,-54%)rotate(-5deg)scale(1.08)}.ui-project-card:focus-within .ui-project-card__icon-halo,.ui-project-card:hover .ui-project-card__icon-halo{border-color:light-dark(#6b3fd49e,#9d82ff9e);transform:rotate(65deg)scale(1.08);box-shadow:0 0 1.5rem #2e03824d}.ui-project-card:focus-within .ui-project-card__icon,.ui-project-card:hover .ui-project-card__icon{color:light-dark(#2453c4,#d8ccff);background:light-dark(#ffffffe6,#1e1537e6);box-shadow:0 0 2.5rem light-dark(#6b3fd46b,#6e4fff6b),inset 0 0 1rem light-dark(#2453c424,#8fb7ff24)}.ui-project-card:hover .ui-project-art__frame{transform:rotate(-15deg)scaleY(.7)scale(1.08)}.ui-project-card__media--layers .ui-project-art__frame{transition:transform .7s var(--ui-ease-out),box-shadow .7s var(--ui-ease-out)}.ui-project-card:hover .ui-project-card__media--layers .ui-project-art__frame{transform:translate(-18px,-12px)rotate(-8deg)scale(1.06)}@keyframes ui-art-orbit{to{transform:rotate(1turn)}}.ui-project-card__image{object-fit:cover;width:100%;height:100%;transition:transform var(--ui-duration-slow) var(--ui-ease-out)}.ui-project-card:hover .ui-project-card__image{transform:scale(1.035)}.ui-project-card__body{padding:1.35rem}.ui-project-card__heading{justify-content:space-between;align-items:flex-start;gap:.8rem;margin-bottom:.5rem;display:flex}.ui-project-card__title{color:var(--ui-color-text-primary);font-size:var(--ui-text-h3);letter-spacing:-.025em;margin:0;font-weight:600}.ui-project-card__title-link{color:inherit;text-underline-offset:.2em;transition:color var(--ui-duration-normal),text-decoration-color var(--ui-duration-normal);-webkit-text-decoration:none;text-decoration:none}.ui-project-card__title-link:hover{color:var(--ui-color-accent-hover);text-decoration:underline}.ui-project-card__category{color:var(--ui-color-text-muted);font-size:var(--ui-text-caption);flex:none;margin-top:.3rem}.ui-project-card__description{min-height:2.8rem;color:var(--ui-color-text-secondary);font-size:var(--ui-text-body-small);line-height:var(--ui-leading-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 1rem;display:-webkit-box;overflow:hidden}.ui-project-card__tags{flex-wrap:wrap;gap:.38rem;margin-bottom:.7rem;display:flex}.ui-project-card__links{z-index:2;border-top:1px solid var(--ui-color-border-subtle);gap:1rem;padding-top:.8rem;display:flex;position:relative}.ui-project-card__action{color:var(--ui-color-accent);font-size:var(--ui-text-caption);transition:gap var(--ui-duration-normal) var(--ui-ease-out),color var(--ui-duration-normal);align-items:center;gap:.4rem;margin-right:auto;font-weight:600;text-decoration:none;display:inline-flex}.ui-project-card__action:hover{color:var(--ui-color-accent-hover);gap:.65rem}.ui-project-card__link{color:var(--ui-color-text-muted);font-size:var(--ui-text-caption);transition:color var(--ui-duration-normal) var(--ui-ease-out);text-decoration:none}.ui-project-card__link:hover{color:var(--ui-color-accent)}.ui-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;display:grid}.ui-stat{text-align:center}.ui-stat__value{color:var(--ui-color-text-primary);letter-spacing:var(--ui-tracking-tight);font-size:clamp(2.2rem,5vw,4rem);font-weight:650;line-height:1}.ui-stat__label{color:var(--ui-color-text-secondary);font-size:var(--ui-text-body-small);margin-top:.55rem;font-weight:550}.ui-stat__description{color:var(--ui-color-text-muted);font-size:var(--ui-text-caption);margin-top:.3rem}.ui-social-links{align-items:center;display:flex}.ui-social-links__item{display:inline-flex}.ui-social-links--horizontal{flex-direction:row;gap:1.2rem}.ui-social-links--vertical{flex-direction:column;align-items:flex-start;gap:.8rem}.ui-social-links__link{min-height:2rem;color:var(--ui-color-text-secondary);font-size:var(--ui-text-body-small);transition:color var(--ui-duration-normal) var(--ui-ease-out);align-items:center;gap:.5rem;font-weight:550;text-decoration:none;display:inline-flex}.ui-social-links__link:hover{color:var(--ui-color-accent)}.ui-social-links__icon{display:inline-flex}.ui-social-links__pending{min-height:2rem;color:var(--ui-color-text-secondary);font-size:var(--ui-text-body-small);align-items:center;gap:.42rem;font-weight:550;display:inline-flex}.ui-social-links__pending-label{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.58rem}.ui-icon{flex:none;display:inline-block}.ui-icon--sm{width:1rem;height:1rem}.ui-icon--md{width:1.25rem;height:1.25rem}.ui-icon--lg{width:1.5rem;height:1.5rem}.ui-showcase{min-height:100vh;color:var(--ui-color-text-primary);background:radial-gradient(ellipse at 75% 8%,light-dark(#2453c41f,#8fb7ff1f),transparent 30rem),radial-gradient(ellipse at 10% 42%,light-dark(#2453c417,#4a689917),transparent 34rem),var(--ui-color-bg);font-family:var(--ui-font-sans);padding:clamp(1.25rem,5vw,4rem);overflow:hidden}.ui-showcase__topline{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);letter-spacing:.12em;justify-content:space-between;align-items:center;gap:1rem;font-size:.68rem}.ui-showcase__hero,.ui-showcase__topline{max-width:1280px;margin-inline:auto;display:flex}.ui-showcase__hero{flex-direction:column;justify-content:center;align-items:flex-start;min-height:min(78vh,760px);padding-block:5rem}.ui-showcase__eyebrow{color:var(--ui-color-accent);font-family:var(--ui-font-mono);font-size:var(--ui-text-caption);letter-spacing:.16em;margin:0 0 1.1rem}.ui-showcase__hero h1{letter-spacing:-.065em;max-width:13ch;margin:0;font-size:clamp(3rem,9vw,7rem);font-weight:620;line-height:.98}.ui-showcase__hero h1 span,.ui-showcase__intro{color:var(--ui-color-text-secondary)}.ui-showcase__intro{max-width:34rem;margin:1.5rem 0 0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.ui-showcase__actions{flex-wrap:wrap;gap:.7rem;margin:2rem 0 1.7rem;display:flex}.ui-showcase>.ui-section{max-width:1280px;margin-inline:auto;padding-block:4rem}.ui-showcase>.ui-section .ui-section__title{max-width:none}.ui-showcase__project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.ui-showcase__stats-card{max-width:1280px;margin:2rem auto;padding:clamp(1.5rem,4vw,3rem)}.ui-showcase__contact{border-top:1px solid var(--ui-color-border-subtle);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:24rem;margin-top:3rem;display:flex}.ui-showcase__contact h2{letter-spacing:-.055em;margin:0 0 1.6rem;font-size:clamp(2.5rem,6vw,4.5rem)}@media (min-width:640px){.ui-technology-card__category{display:inline}}@media (max-width:700px){.ui-technology-group__heading{padding-inline:3rem}.ui-technology-carousel__slides{width:400%;padding:1rem 0;transform:translate(-25%)}.ui-technology-carousel__slides.is-moving{transform:translate(-50%)}.ui-technology-carousel__slide--departing,.ui-technology-carousel__slide--incoming,.ui-technology-carousel__slide--next,.ui-technology-carousel__slide--previous{opacity:0;pointer-events:none}.ui-technology-carousel__slide--active{flex-basis:25%;min-height:14rem;transform:none}.ui-timeline-item{gap:.75rem}.ui-timeline-item__chronology{flex-basis:5.5rem;padding-right:1.35rem}.ui-timeline-item__chronology .ui-timeline-item__date{overflow-wrap:anywhere;font-size:.65rem}.ui-technology-group__grid{grid-template-columns:1fr}.ui-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}.ui-social-links--horizontal{flex-wrap:wrap;gap:.5rem 1rem}.ui-showcase__topline{flex-direction:column;align-items:flex-start}.ui-showcase__hero{min-height:75vh}.ui-showcase__project-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ui-project-art__orbit{animation:none}.ui-timeline--staggered .ui-timeline-item{opacity:1;transform:none;animation:none!important}}