/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--font-sans:var(--ui-font-sans);--font-mono:var(--ui-font-mono);--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:var(--ui-tracking-tight);--tracking-wide:var(--ui-tracking-wide);--radius-2xl:1rem;--ease-out:var(--ui-ease-out);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--ui-color-bg);--color-surface:var(--ui-color-surface);--color-border:var(--ui-color-border);--color-border-subtle:var(--ui-color-border-subtle);--color-text-primary:var(--ui-color-text-primary);--color-text-secondary:var(--ui-color-text-secondary);--color-text-muted:var(--ui-color-text-muted);--color-accent:var(--ui-color-accent);--color-accent-hover:var(--ui-color-accent-hover);--text-display:var(--ui-text-display);--text-h3:var(--ui-text-h3);--text-body:var(--ui-text-body);--text-caption:var(--ui-text-caption);--text-label:var(--ui-text-label)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.z-0{z-index:0}.z-10{z-index:10}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.h-full{height:100%}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-screen{min-height:100vh}.w-full{width:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.rounded-2xl{border-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-border{border-color:var(--color-border)}.border-border-subtle{border-color:var(--color-border-subtle)}.bg-bg{background-color:var(--color-bg)}.bg-surface\/70{background-color:var(--color-surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/70{background-color:color-mix(in oklab,var(--color-surface) 70%,transparent)}}.p-6{padding:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-body{font-size:var(--text-body)}.text-caption{font-size:var(--text-caption)}.text-display{font-size:var(--text-display)}.text-h3{font-size:var(--text-h3)}.text-label{font-size:var(--text-label)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-accent{color:var(--color-accent)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-\[0\.03\]{opacity:.03}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-accent-hover:hover{color:var(--color-accent-hover)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-accent:focus-visible{--tw-ring-color:var(--color-accent)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:p-9{padding:calc(var(--spacing) * 9)}.md\:py-9{padding-block:calc(var(--spacing) * 9)}.md\:py-10{padding-block:calc(var(--spacing) * 10)}.md\:pt-8{padding-top:calc(var(--spacing) * 8)}.md\:pb-7{padding-bottom:calc(var(--spacing) * 7)}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}@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}}.project-detail__hero{animation:project-detail-arrive .85s cubic-bezier(.2,.72,.2,1) both}.project-detail__panel{animation:project-panel-arrive 1.1s cubic-bezier(.2,.72,.2,1) .12s both;position:relative;overflow:hidden}.project-detail__panel:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,light-dark(#2453c409,#8fb7ff09),#0000);width:35%;height:160%;animation:project-panel-glint 12s ease-in-out 1.2s infinite;position:absolute;top:-30%;left:-45%;transform:rotate(18deg)}.project-detail__block{animation:project-detail-arrive .7s cubic-bezier(.2,.72,.2,1) both;animation-delay:calc(.22s + var(--detail-index,0) * 90ms);position:relative}.project-detail__block h2{transition:color .35s,transform .5s cubic-bezier(.2,.72,.2,1)}.project-detail__block:hover h2{color:var(--ui-color-accent);transform:translate(.3rem)}.project-detail__list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.project-detail__list li{padding-left:1.2rem;position:relative}.project-detail__list li:before{background:var(--ui-color-accent);content:"";border-radius:50%;width:.38rem;height:.38rem;position:absolute;top:.7em;left:0;box-shadow:0 0 .8rem light-dark(#2453c47a,#8fb7ff7a)}.project-detail__layout.has-media,.project-detail__list--columns{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail__layout.has-media{gap:clamp(1.25rem,4vw,3rem);display:grid}.project-detail__layout.has-media .project-detail__copy{justify-self:center;width:min(100%,62ch);line-height:1.75}.project-detail__layout.has-media .project-detail__list--columns{grid-template-columns:1fr}.project-detail__layout.has-media.media-left .project-detail__copy{grid-area:1/2}.project-detail__layout.has-media.media-left .project-detail__media-grid{grid-area:1/1}.project-detail__layout.has-media.media-right .project-detail__copy,.project-detail__layout.has-media.media-right .project-detail__media-grid{grid-row:1}.project-detail__copy{min-width:0}.project-detail__copy>:first-child{margin-top:0}.project-detail__copy>:last-child{margin-bottom:0}.project-detail__evolution{gap:1rem;display:grid}.project-detail__stage{border:1px solid var(--ui-color-border-subtle);background:linear-gradient(120deg,#2e03821a,light-dark(#0d111703,#ffffff03));border-radius:1rem;grid-template-columns:2.6rem minmax(0,1fr);gap:1rem;padding:1.2rem;transition:transform .45s cubic-bezier(.2,.72,.2,1),border-color .35s,background .35s;display:grid}.project-detail__stage:hover{background:linear-gradient(120deg,#2e03822b,light-dark(#0d111705,#ffffff05));border-color:light-dark(#2453c447,#8fb7ff47);transform:translate(.25rem)}.project-detail__stage-index{width:2.3rem;height:2.3rem;color:var(--ui-color-accent);font-family:var(--ui-font-mono);border:1px solid light-dark(#2453c438,#8fb7ff38);border-radius:.75rem;place-items:center;font-size:.7rem;display:grid}.project-detail__stage h3{color:var(--ui-color-text-primary);margin:0 0 .55rem;font-size:1.05rem}.project-detail__stage p{margin:0 0 .9rem}.project-detail__media-grid{grid-template-columns:1fr;gap:1rem;min-width:0;display:grid}.project-detail__media-figure{border:1px solid var(--ui-color-border);background:var(--ui-color-bg-secondary);border-radius:.9rem;min-width:0;margin:0;overflow:hidden}.project-detail__media-figure img,.project-detail__media-figure video{aspect-ratio:16/10;object-fit:contain;background:light-dark(#0f172a1c,#0000003d);width:100%;height:auto;max-height:32rem;display:block}.project-detail__media-figure video{aspect-ratio:16/9}.project-detail__media-figure iframe{aspect-ratio:16/9;background:light-dark(#0f172a1c,#0000003d);border:0;width:100%;display:block}.project-detail__pdf iframe{aspect-ratio:auto;height:clamp(24rem,58vh,44rem)}.project-detail__pdf>a{min-height:2.8rem;color:var(--ui-color-accent);font-size:var(--ui-text-caption);justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem .9rem;text-decoration:none;transition:color .25s,background .25s;display:flex}.project-detail__pdf>a:hover{color:var(--ui-color-text-primary);background:light-dark(#2453c40f,#8fb7ff0f)}.project-detail__pdf>a:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:-2px}.project-detail__media-figure figcaption{color:var(--ui-color-text-muted);font-size:var(--ui-text-caption);padding:.75rem .9rem}@keyframes project-detail-arrive{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes project-panel-arrive{0%{opacity:0;transform:translateY(1.4rem)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes project-panel-glint{0%,68%,to{opacity:0;left:-45%}72%{opacity:1}88%{opacity:.5;left:120%}}@media (prefers-reduced-motion:reduce){.project-detail__block,.project-detail__hero,.project-detail__panel,.project-detail__panel:before{animation:none}}@media (max-width:640px){.project-detail__list--columns{grid-template-columns:1fr}.project-detail__stage{grid-template-columns:2rem minmax(0,1fr);gap:.75rem;padding:.9rem}.project-detail__layout.has-media{grid-template-columns:1fr}.project-detail__layout.has-media.media-left .project-detail__copy,.project-detail__layout.has-media.media-left .project-detail__media-grid,.project-detail__layout.has-media.media-right .project-detail__copy,.project-detail__layout.has-media.media-right .project-detail__media-grid{grid-area:auto/1}}html{scroll-behavior:smooth}body{background:var(--ui-color-bg);min-width:320px;color:var(--ui-color-text-primary);font-family:var(--ui-font-sans)}::selection{color:var(--ui-color-text-primary);background:light-dark(#2453c447,#8fb7ff47)}@media (max-width:700px){.global-background__glow{opacity:.45;transform:none!important}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.global-background__glow{transform:none!important}}.portfolio-nav{z-index:60;position:fixed;top:50%;right:clamp(1.25rem,3vw,3rem);transform:translateY(-50%)}.portfolio-nav__bar{justify-content:flex-end;align-items:center;display:flex}.portfolio-nav__desktop{gap:.45rem;display:grid}.portfolio-nav__link{min-width:2rem;min-height:2rem;color:var(--ui-color-text-muted);transition:color var(--ui-duration-normal);justify-content:flex-end;align-items:center;gap:.75rem;padding:0 .15rem;font-size:.72rem;text-decoration:none;display:inline-flex;position:relative}.portfolio-nav__link>span:first-child{color:var(--ui-color-text-primary);opacity:0;transition:opacity var(--ui-duration-normal),transform var(--ui-duration-normal);white-space:nowrap;position:absolute;right:1.25rem;transform:translate(.25rem)}.portfolio-nav__link.is-active>span:first-child,.portfolio-nav__link:focus-visible>span:first-child,.portfolio-nav__link:hover>span:first-child{opacity:1;transform:translate(0)}.portfolio-nav__link.is-active,.portfolio-nav__link:hover{color:var(--ui-color-text-primary)}.portfolio-nav__link.is-active{color:var(--ui-color-accent)}.portfolio-nav__link:after{content:"";width:.34rem;height:.34rem;transition:background var(--ui-duration-normal),box-shadow var(--ui-duration-normal),transform var(--ui-duration-normal);border:1px solid;border-radius:50%;flex:none}.portfolio-nav__link.is-active:after{background:currentColor;transform:scale(1.18);box-shadow:0 0 .8rem light-dark(#2453c4a6,#8fb7ffa6)}.portfolio-nav__active-mark{display:none}.portfolio-nav__toggle{width:2.7rem;height:2.7rem;color:var(--ui-color-text-primary);cursor:pointer;background:light-dark(#ffffffad,#090b0ead);border:1px solid light-dark(#0d111724,#ffffff24);border-radius:50%;place-items:center;display:none}.portfolio-nav__toggle:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:3px}.portfolio-nav__toggle-icon{gap:.32rem;display:grid}.portfolio-nav__toggle-icon span{width:1rem;height:1px;transition:transform var(--ui-duration-normal),opacity var(--ui-duration-normal);background:currentColor}.portfolio-nav.is-open .portfolio-nav__toggle-icon span:first-child{transform:translateY(.17rem)rotate(45deg)}.portfolio-nav.is-open .portfolio-nav__toggle-icon span:last-child{transform:translateY(-.17rem)rotate(-45deg)}.portfolio-nav__mobile{display:none}.portfolio-hero{isolation:isolate;align-items:center;min-height:100svh;padding:4rem 0 3rem;display:flex;position:relative;overflow:hidden}.portfolio-hero:before{z-index:-1;aspect-ratio:1;content:"";filter:blur(8px);background:radial-gradient(circle,light-dark(#2453c421,#425e8d21),light-dark(#2453c406,#425e8d06) 45%,#0000 70%);border-radius:50%;width:min(70vw,900px);position:absolute;top:8%;right:-12%}.portfolio-hero__layout{grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);align-items:center;gap:clamp(2rem,6vw,7rem);transition:opacity .28s ease-out,transform .28s ease-out;display:grid}.portfolio-hero__copy{z-index:2;max-width:760px;position:relative}.portfolio-hero__eyebrow{color:var(--ui-color-text-secondary);font-family:var(--ui-font-mono);letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:.55rem;margin:0 0 1.5rem;font-size:.68rem;display:flex}.portfolio-hero__eyebrow>span:not(.portfolio-hero__status){color:var(--ui-color-text-muted)}.portfolio-hero__eyebrow .portfolio-hero__mock{color:var(--ui-color-accent);letter-spacing:.08em;background:light-dark(#2453c40e,#8fb7ff0e);border:1px solid light-dark(#2453c429,#8fb7ff29);border-radius:999px;margin-left:.3rem;padding:.35rem .52rem;font-size:.55rem}.portfolio-hero__status{background:var(--ui-color-accent);border-radius:50%;width:.44rem;height:.44rem;position:relative;box-shadow:0 0 13px light-dark(#2453c4bf,#8fb7ffbf)}.portfolio-hero__status:after{content:"";border:1px solid light-dark(#2453c44d,#8fb7ff4d);border-radius:50%;animation:portfolio-status 2.6s ease-out infinite;position:absolute;inset:-.3rem}@keyframes portfolio-status{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.7)}}.portfolio-hero__title{max-width:10ch;color:var(--ui-color-text-primary);letter-spacing:-.075em;margin:0;font-size:clamp(3.5rem,7.8vw,7.5rem);font-weight:640;line-height:.92}.portfolio-hero__title span{color:#0000;background:linear-gradient(105deg,light-dark(#0d1117,#f3f5f7) 10%,light-dark(#0d1117,#a9b9d3) 68%,light-dark(#2453c4,#839bc0));-webkit-background-clip:text;background-clip:text;display:block}.portfolio-hero__credentials{border-top:1px solid var(--ui-color-border-subtle);grid-template-columns:minmax(0,1.35fr) minmax(9rem,.8fr);gap:clamp(1rem,2vw,2rem);margin:1.7rem 0 1.35rem;padding-top:1.15rem;display:grid}.portfolio-hero__credential-label{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .8rem;font-size:.69rem}.portfolio-hero__credential--experience{border-left:1px solid var(--ui-color-border-subtle);padding-left:clamp(1rem,2vw,2rem)}.portfolio-hero__degrees{gap:.65rem;display:grid}.portfolio-hero__degree h2{color:var(--ui-color-text-primary);margin:0;font-size:clamp(.98rem,1.25vw,1.15rem);font-weight:500;line-height:1.35}.portfolio-hero__degree p,.portfolio-hero__experience-summary{color:var(--ui-color-text-muted);margin:.16rem 0 0;font-size:.72rem;line-height:1.45}.portfolio-hero__experience-value{color:var(--ui-color-text-primary);font-family:var(--ui-font-mono);letter-spacing:-.07em;margin:.05rem 0 .18rem;font-size:clamp(1rem,3vw,3rem);font-weight:400;line-height:1}.portfolio-hero__description{max-width:39rem;color:var(--ui-color-text-secondary);margin:1.7rem 0 0;font-size:clamp(1.02rem,1.6vw,1.25rem);line-height:1.72}.portfolio-hero__actions{flex-wrap:wrap;gap:.65rem;margin-top:2rem;display:flex}.portfolio-hero__socials{align-items:center;gap:1.2rem;margin-top:2.6rem;display:flex}.portfolio-hero__social-label{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);letter-spacing:.14em;font-size:.58rem}.portfolio-hero__art{aspect-ratio:1;justify-self:end;place-items:center;width:min(100%,630px);display:grid;position:relative}.portfolio-hero__art-grid{opacity:.3;background-image:linear-gradient(light-dark(#2453c40f,#b4caec0f) 1px,#0000 0),linear-gradient(90deg,light-dark(#2453c40f,#b4caec0f) 1px,#0000 0);background-size:34px 34px;position:absolute;inset:10%;-webkit-mask-image:radial-gradient(circle,#000,#0000 70%);mask-image:radial-gradient(circle,#000,#0000 70%)}.portfolio-hero__halo{border-radius:50%;position:absolute}.portfolio-hero__halo--outer{aspect-ratio:1;width:100%;animation:portfolio-orbit 42s linear infinite;transform:rotate(-22deg)scaleY(.92);box-shadow:0 0 80px light-dark(#2453c412,#6889c112),0 0 46px #2e038221,inset 0 0 60px light-dark(#2453c40a,#6889c10a)}.portfolio-hero__halo--inner{aspect-ratio:1;border-color:light-dark(#2453c41c,#abc4ec1c);width:50%;animation:portfolio-orbit-reverse 58s linear infinite;transform:rotate(32deg)scaleY(.672)}.portfolio-hero__technology-item{z-index:3;aspect-ratio:1;place-items:center;width:clamp(2.1rem,3.1vw,3rem);display:grid;position:absolute;translate:-50% -50%}.portfolio-hero__technology-badge{background:linear-gradient(145deg,light-dark(#fffffff5,#19122ff5),light-dark(#fffffff7,#080a10f7));border-radius:50%;place-items:center;width:100%;height:100%;display:grid;box-shadow:0 0 24px #2e038257,0 0 14px light-dark(#2453c421,#8fb7ff21),inset 0 1px #ffffff1f}.portfolio-hero__technology-badge--outer{animation:technology-counter-outer 42s linear infinite}.portfolio-hero__technology-badge--inner{animation:technology-counter-inner 58s linear infinite}.portfolio-hero__technology-badge img{object-fit:contain;width:1.1rem;height:1.1rem;display:block}@keyframes technology-counter-outer{0%{transform:scaleY(1.087)rotate(22deg)}to{transform:scaleY(1.389)rotate(-338deg)}}@keyframes technology-counter-inner{0%{transform:scaleY(1.488)rotate(-32deg)}to{transform:scaleY(1.22)rotate(328deg)}}@keyframes portfolio-orbit{to{transform:rotate(338deg)scaleY(.72)}}@keyframes portfolio-orbit-reverse{to{transform:rotate(-328deg)scaleY(.82)}}.portfolio-hero__core{z-index:2;aspect-ratio:1;background:linear-gradient(150deg,light-dark(#ffffffbd,#202834bd),light-dark(#ffffffd6,#0a0d12d6));border:1px solid light-dark(#2453c442,#b9cff442);border-radius:32%;place-content:center;justify-items:center;gap:.55rem;width:18%;display:grid;position:relative;overflow:hidden;transform:rotate(-8deg);box-shadow:0 25px 90px light-dark(#0f172a25,#00000052),0 0 60px light-dark(#2453c412,#8fb7ff12),inset 0 1px #ffffff14}.portfolio-hero__core img{object-fit:cover;transform:rotate(8deg)scale(1.6)translateY(14%)}.portfolio-hero__orbit-node{z-index:2;background:var(--ui-color-accent);border:1px solid light-dark(#0d1117cc,#dce8ffcc);border-radius:50%;width:.66rem;height:.66rem;position:absolute;box-shadow:0 0 18px light-dark(#2453c480,#8fb7ff80)}.portfolio-hero__orbit-node--one{animation:portfolio-float 5s ease-in-out infinite;top:18%;left:58%}.portfolio-hero__orbit-node--two{opacity:.58;width:.42rem;height:.42rem;animation:portfolio-float 6.5s ease-in-out -2s infinite;bottom:36%;right:11%}.portfolio-hero__orbit-node--three{opacity:.38;width:.32rem;height:.32rem;animation:portfolio-float 7s ease-in-out -4s infinite;bottom:19%;left:24%}@keyframes portfolio-float{50%{transform:translateY(-8px)}}.portfolio-hero__art-note{z-index:3;color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);letter-spacing:.14em;font-size:.56rem;position:absolute}.portfolio-hero__art-note--top{top:-20%;left:7%}.portfolio-hero__art-note--top span{color:var(--ui-color-accent);margin-right:.6rem}.portfolio-hero__art-note--bottom{bottom:-25%;right:1%}.portfolio-hero__pulse{background:var(--ui-color-success);border-radius:50%;width:.38rem;height:.38rem;margin-right:.5rem;display:inline-block;box-shadow:0 0 12px light-dark(#157a528c,#6dd6a48c)}.portfolio-hero__scroll{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.75rem;font-size:.58rem;text-decoration:none;display:inline-flex;position:absolute;bottom:2rem;left:max(1.25rem,50vw - 660px)}.portfolio-hero__scroll:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:5px}.portfolio-hero__scroll-line{background:var(--ui-color-border);width:2.6rem;height:1px;position:relative;overflow:hidden}.portfolio-hero__scroll-line:after{background:var(--ui-color-accent);content:"";animation:portfolio-scroll 2.2s ease-in-out infinite;position:absolute;inset:0;transform:translate(-105%)}@keyframes portfolio-scroll{55%,to{transform:translate(105%)}}.portfolio-technologies-download{align-items:center;gap:.5rem;min-height:2.75rem;margin:-1.75rem 0 1.25rem;font-size:.82rem;display:inline-flex}.portfolio-technologies-download span{border:1px solid;border-radius:50%;place-items:center;width:1.4rem;height:1.4rem;font-size:.7rem;display:inline-grid}.portfolio-capabilities-stage{--spot-x:50%;--spot-y:40%;isolation:isolate;position:relative}.portfolio-capabilities-stage__backdrop{z-index:-1;pointer-events:none;position:absolute;inset:-4rem -2rem;overflow:hidden;-webkit-mask-image:radial-gradient(75% 70%,#000 0,#0000 100%);mask-image:radial-gradient(75% 70%,#000 0,#0000 100%)}.portfolio-capabilities-stage__aurora{filter:blur(90px);opacity:0;will-change:transform;border-radius:50%;width:44rem;height:44rem;transition:opacity 1.2s ease-out;position:absolute}.portfolio-capabilities-stage.is-visible .portfolio-capabilities-stage__aurora{opacity:1}.portfolio-capabilities-stage__aurora--blue{background:radial-gradient(circle,light-dark(#2453c438,#8fb7ff38),#0000 65%);animation:portfolio-capabilities-drift-a 22s ease-in-out infinite alternate;top:-12%;left:-8%}.portfolio-capabilities-stage__aurora--purple{background:radial-gradient(circle,#2e0382b3,#0000 65%);animation:portfolio-capabilities-drift-b 26s ease-in-out infinite alternate;bottom:-18%;right:-10%}.portfolio-capabilities-stage__grid{opacity:.5;background-image:radial-gradient(light-dark(#0d111717,#ffffff17) 1px,#0000 0);background-size:22px 22px;position:absolute;inset:0}.portfolio-capabilities-stage__spotlight{background:radial-gradient(22rem circle at calc(var(--spot-x) + 2rem) calc(var(--spot-y) + 4rem),light-dark(#2453c429,#8fb7ff29),#2e038238 40%,transparent 70%);opacity:0;transition:opacity .4s ease-out;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.portfolio-capabilities-stage:hover .portfolio-capabilities-stage__spotlight{opacity:1}}@keyframes portfolio-capabilities-drift-a{to{transform:translate(18%,22%)scale(1.15)}}@keyframes portfolio-capabilities-drift-b{to{transform:translate(-22%,-16%)scale(.9)}}.portfolio-capabilities{border-top:1px solid var(--ui-color-border-subtle);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.portfolio-capabilities{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem}}@media (min-width:1024px){.portfolio-capabilities{grid-template-columns:repeat(3,minmax(0,1fr))}}.portfolio-capability{border-bottom:1px solid var(--ui-color-border-subtle);opacity:0;transition:opacity .4s ease-out calc(var(--capability-index,0) * 40ms),transform .4s ease-out calc(var(--capability-index,0) * 40ms);grid-template-columns:2rem minmax(0,1fr);gap:.75rem;padding:1.25rem 0;display:grid;position:relative;transform:translateY(12px)}.portfolio-capability:after{background:linear-gradient(90deg,var(--ui-color-accent),var(--ui-color-purple),transparent);content:"";transform-origin:0;width:100%;height:1px;transition:transform .45s ease-out;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.portfolio-capabilities-stage.is-visible .portfolio-capability{opacity:1;transform:none}.portfolio-capability__index{color:var(--ui-color-accent);font-family:var(--ui-font-mono);padding-top:.2rem;font-size:.7rem;transition:text-shadow .3s ease-out}.portfolio-capability__title{color:var(--ui-color-text-primary);margin:0 0 .35rem;font-size:1rem;font-weight:600}.portfolio-capability__description{color:var(--ui-color-text-secondary);margin:0;font-size:.86rem;line-height:1.6}.portfolio-capability__evidence{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);margin:.5rem 0 0;font-size:.68rem;line-height:1.5}@media (hover:hover) and (pointer:fine){.portfolio-capability:hover:after{transform:scaleX(1)}.portfolio-capability:hover .portfolio-capability__index{text-shadow:0 0 12px var(--ui-color-accent)}}@media (max-width:639px){.portfolio-capabilities-stage__aurora{filter:blur(70px);width:26rem;height:26rem}.portfolio-capabilities-stage__grid{display:none}}@media (prefers-reduced-motion:reduce){.portfolio-capabilities-stage__aurora,.portfolio-capability{opacity:1;transition:none;animation:none;transform:none}.portfolio-capabilities-stage__spotlight,.portfolio-capability:after{transition:none}}.portfolio-summary{--summary-education:var(--ui-color-accent);--summary-work:var(--ui-color-success);--summary-project:light-dark(#6b3fd4,#b79cff);--summary-level-1:light-dark(#2453c438,#8fb7ff38);--summary-level-2:light-dark(#2453c473,#8fb7ff73);--summary-level-3:light-dark(#2453c4b8,#8fb7ffb8);--summary-level-4:var(--ui-color-accent);gap:clamp(1.25rem,3vw,2rem);display:grid}.portfolio-summary__kpis{background:linear-gradient(120deg,light-dark(#ffffffeb,#171c24eb),light-dark(#ffffffeb,#0e1013eb));border:1px solid light-dark(#2453c424,#a4bee724);border-radius:1rem;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;display:grid;overflow:hidden}.portfolio-summary__kpi{border-left:1px solid var(--ui-color-border-subtle);opacity:0;transition:opacity .6s ease-out,transform .6s cubic-bezier(.2,.72,.2,1);transition-delay:calc(var(--summary-index,0) * 80ms);flex-direction:column-reverse;justify-content:flex-end;gap:.4rem;padding:clamp(1rem,2.5vw,1.6rem);display:flex;transform:translateY(14px)}.portfolio-summary__kpi:first-child{border-left:0}.portfolio-summary__kpi dt{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.66rem}.portfolio-summary__kpi dd{color:var(--ui-color-text-primary);font-variant-numeric:tabular-nums;margin:0;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:600;line-height:1}.portfolio-summary__charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.5vw,1.5rem);display:grid}.portfolio-summary__panel{background:linear-gradient(150deg,light-dark(#ffffffe6,#171c24e6),light-dark(#fffffff0,#0c0e11f0));border:1px solid light-dark(#2453c424,#a4bee724);border-radius:1rem;flex-direction:column;gap:1.25rem;min-width:0;margin:0;padding:clamp(1.25rem,3vw,2rem);display:flex}.portfolio-summary__panel figcaption h3{color:var(--ui-color-text-primary);margin:0 0 .35rem;font-size:1.05rem;font-weight:600}.portfolio-summary__panel figcaption p{color:var(--ui-color-text-secondary);margin:0;font-size:.85rem;line-height:1.6}.portfolio-summary__areas,.portfolio-summary__stages{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.portfolio-summary__stage{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.45rem .75rem;display:grid}.portfolio-summary__stage--education{--stage-color:var(--summary-education)}.portfolio-summary__stage--work{--stage-color:var(--summary-work)}.portfolio-summary__stage--project{--stage-color:var(--summary-project)}.portfolio-summary__stage-label{color:var(--ui-color-text-primary);gap:.15rem;font-size:.82rem;line-height:1.35;display:grid}.portfolio-summary__stage-label span{color:var(--stage-color);font-family:var(--ui-font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:.62rem}.portfolio-summary__stage-period{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);white-space:nowrap;grid-area:1/2;font-size:.68rem}.portfolio-summary__track{background:repeating-linear-gradient(90deg,light-dark(#0d11170d,#ffffff0d) 0 calc(100% / var(--summary-years) - 2px),transparent 0 calc(100% / var(--summary-years)));border-radius:999px;grid-column:1/-1;height:.55rem;position:relative}.portfolio-summary__bar{inset-block:0;left:calc(100% * var(--bar-start) / var(--summary-years));width:calc(100% * var(--bar-length) / var(--summary-years));border-radius:inherit;background:var(--stage-color);box-shadow:0 0 16px var(--stage-color);position:absolute}@supports (color:color-mix(in lab,red,red)){.portfolio-summary__bar{box-shadow:0 0 16px color-mix(in srgb,var(--stage-color) 35%,transparent)}}.portfolio-summary__bar{transform-origin:0;transition:transform .9s cubic-bezier(.2,.72,.2,1);transition-delay:calc(.2s + var(--summary-index,0) * .12s);transform:scaleX(0)}.portfolio-summary__bar.is-ongoing{background:linear-gradient(90deg,var(--stage-color) 65%,transparent)}.portfolio-summary__axis{grid-template-columns:repeat(var(--summary-years),minmax(0,1fr));color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);margin-top:.75rem;font-size:.62rem;display:grid}.portfolio-summary__legend{flex-wrap:wrap;gap:.4rem;display:flex}.portfolio-summary__legend button{border:1px solid var(--ui-color-border);min-height:2rem;color:var(--ui-color-text-secondary);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.72rem;transition:border-color .2s,color .2s,background-color .2s;display:inline-flex}.portfolio-summary__legend button:hover,.portfolio-summary__legend button[aria-pressed=true]{background:var(--ui-color-accent-subtle);color:var(--ui-color-text-primary);border-color:light-dark(#2453c473,#8fb7ff73)}.portfolio-summary__legend button:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:2px}.portfolio-summary__legend button span{background:var(--level-color);border-radius:50%;width:.6rem;height:.6rem}.portfolio-summary__legend-item--1,.portfolio-summary__segment--1{--level-color:var(--summary-level-1)}.portfolio-summary__legend-item--2,.portfolio-summary__segment--2{--level-color:var(--summary-level-2)}.portfolio-summary__legend-item--3,.portfolio-summary__segment--3{--level-color:var(--summary-level-3)}.portfolio-summary__legend-item--4,.portfolio-summary__segment--4{--level-color:var(--summary-level-4)}.portfolio-summary__areas{gap:.75rem}.portfolio-summary__area{grid-template-columns:minmax(7rem,.9fr) minmax(0,1.6fr) 1.5rem;align-items:center;gap:.75rem;display:grid}.portfolio-summary__area-name{color:var(--ui-color-text-secondary);font-size:.78rem;line-height:1.3}.portfolio-summary__stack{width:calc(100% * var(--area-share));transform-origin:0;height:.7rem;transition:transform .9s cubic-bezier(.2,.72,.2,1);transition-delay:calc(.3s + var(--summary-index,0) * 90ms);gap:2px;display:flex;transform:scaleX(0)}.portfolio-summary__segment{background:var(--level-color);border-radius:2px;flex-basis:0;transition:opacity .25s}.portfolio-summary__segment.is-dimmed{opacity:.12}.portfolio-summary__area-count{color:var(--ui-color-text-primary);font-family:var(--ui-font-mono);font-variant-numeric:tabular-nums;text-align:right;font-size:.78rem}.portfolio-summary.is-visible .portfolio-summary__kpi{opacity:1;transform:none}.portfolio-summary.is-visible .portfolio-summary__bar,.portfolio-summary.is-visible .portfolio-summary__stack{transform:scaleX(1)}@media (max-width:900px){.portfolio-summary__charts{grid-template-columns:1fr}}@media (max-width:640px){.portfolio-summary__kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-summary__kpi{border-top:1px solid var(--ui-color-border-subtle)}.portfolio-summary__kpi:nth-child(odd){border-left:0}.portfolio-summary__kpi:nth-child(-n+2){border-top:0}.portfolio-summary__kpi:last-child{grid-column:1/-1}.portfolio-summary__area{grid-template-columns:minmax(0,1fr) 1.5rem;gap:.35rem .75rem}.portfolio-summary__stack{grid-area:2/1/auto/-1}}@media (prefers-reduced-motion:reduce){.portfolio-summary__bar,.portfolio-summary__kpi,.portfolio-summary__stack{opacity:1;transition:none;transform:none}.portfolio-summary__segment{transition:none}}.portfolio-contact{--spot-x:50%;--spot-y:50%;isolation:isolate;box-shadow:var(--ui-shadow-lg);background:linear-gradient(145deg,light-dark(#ffffffdb,#161b23db),light-dark(#fffffff0,#0a0c0ff0));border:1px solid light-dark(#2453c429,#8fb7ff29);border-radius:1.5rem;padding:clamp(1.5rem,4vw,3.25rem);position:relative;overflow:hidden}.portfolio-contact__backdrop{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.portfolio-contact__aurora{filter:blur(90px);opacity:0;border-radius:50%;width:38rem;height:38rem;transition:opacity 1.2s ease-out;position:absolute}.portfolio-contact.is-visible .portfolio-contact__aurora{opacity:1}.portfolio-contact__aurora--blue{background:radial-gradient(circle,light-dark(#2453c433,#8fb7ff33),#0000 65%);animation:portfolio-capabilities-drift-a 24s ease-in-out infinite alternate;top:-30%;left:-12%}.portfolio-contact__aurora--purple{background:radial-gradient(circle,#2e0382a6,#0000 65%);animation:portfolio-capabilities-drift-b 28s ease-in-out infinite alternate;bottom:-35%;right:-14%}.portfolio-contact__grid{background-image:radial-gradient(light-dark(#0d111714,#ffffff14) 1px,#0000 0);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 70% at 25%,#000 30%,#0000 100%);mask-image:radial-gradient(60% 70% at 25%,#000 30%,#0000 100%)}.portfolio-contact__spotlight{background:radial-gradient(24rem circle at var(--spot-x) var(--spot-y),light-dark(#2453c41f,#8fb7ff1f),#2e03822e 40%,transparent 70%);opacity:0;transition:opacity .4s ease-out;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.portfolio-contact:hover .portfolio-contact__spotlight{opacity:1}}.portfolio-contact__layout{align-items:center;gap:2.25rem;display:grid}@media (min-width:900px){.portfolio-contact__layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,4.5rem)}}.portfolio-contact__visual{aspect-ratio:1;width:min(100%,25rem);margin-inline:auto;position:relative;container-type:inline-size}.portfolio-contact__ring{opacity:0;transition:opacity .8s ease-out,scale .8s var(--ui-ease-out);border-radius:50%;position:absolute;scale:.85}.portfolio-contact__ring--outer{border:1px dashed light-dark(#2453c438,#8fb7ff38);inset:10%}.portfolio-contact__ring--inner{background:radial-gradient(circle,light-dark(#2453c40f,#8fb7ff0f),#0000 70%);border:1px solid light-dark(#0d111712,#ffffff12);transition-delay:.1s;inset:27%}.portfolio-contact.is-visible .portfolio-contact__ring{opacity:1;scale:1}.portfolio-contact__ripple{opacity:0;border:1px solid light-dark(#2453c473,#8fb7ff73);border-radius:50%;position:absolute;inset:39%}.portfolio-contact.is-visible .portfolio-contact__ripple{animation:portfolio-contact-ripple 4.2s ease-out .9s infinite}.portfolio-contact.is-visible .portfolio-contact__ripple--late{animation-delay:3s}.portfolio-contact__core{color:var(--ui-color-text-primary);font-family:var(--ui-font-mono);letter-spacing:.06em;opacity:0;transition:opacity .6s ease-out .2s,scale .7s var(--ui-ease-out) .2s,box-shadow .4s ease-out;background:radial-gradient(circle at 35% 30%,light-dark(#2453c459,#8fb7ff59),#0000 60%),radial-gradient(circle,light-dark(#6b3fd440,#2e0382e6),light-dark(#fffffff2,#0c0e14f2));border:1px solid light-dark(#2453c466,#8fb7ff66);border-radius:50%;place-items:center;font-size:clamp(.9rem,6cqw,1.5rem);font-weight:600;display:grid;position:absolute;inset:39%;scale:.6;box-shadow:0 0 40px light-dark(#2453c438,#8fb7ff38),inset 0 0 18px light-dark(#2453c42e,#8fb7ff2e)}.portfolio-contact.is-visible .portfolio-contact__core{opacity:1;scale:1}.portfolio-contact.has-active .portfolio-contact__core{box-shadow:0 0 60px light-dark(#2453c466,#8fb7ff66),inset 0 0 22px light-dark(#2453c44d,#8fb7ff4d)}.portfolio-contact__orbit{animation:portfolio-contact-spin 90s linear infinite;position:absolute;inset:0}.portfolio-contact__node{width:0;height:0;transform:rotate(var(--node-angle));position:absolute;top:50%;left:50%}.portfolio-contact__beam{transform-origin:0;width:29cqw;height:1px;transition:scale .7s var(--ui-ease-out) calc(.45s + var(--node-index,0) * .12s),background .3s ease-out;background:linear-gradient(90deg,light-dark(#2453c40d,#8fb7ff0d),light-dark(#2453c466,#8fb7ff66));position:absolute;top:-.5px;left:11cqw;scale:0 1}.portfolio-contact__beam:after{background:var(--ui-color-accent);width:4px;height:4px;box-shadow:0 0 8px var(--ui-color-accent);content:"";opacity:0;border-radius:50%;position:absolute;top:-1.5px;left:0}.portfolio-contact.is-visible .portfolio-contact__beam{scale:1}.portfolio-contact.is-visible .portfolio-contact__beam:after{animation:portfolio-contact-packet 3.6s ease-in-out calc(1.4s + var(--node-index,0) * 1.2s) infinite}.portfolio-contact__node-dot{border:1px solid var(--ui-color-border);width:clamp(2.5rem,14cqw,3.5rem);height:clamp(2.5rem,14cqw,3.5rem);color:var(--ui-color-text-secondary);transform:translate(-50%,-50%) rotate(calc(-1 * var(--node-angle)));opacity:0;transition:opacity .5s ease-out calc(.7s + var(--node-index,0) * .12s),scale .6s var(--ui-ease-out) calc(.7s + var(--node-index,0) * .12s),color .3s ease-out,border-color .3s ease-out,box-shadow .3s ease-out;background:light-dark(#ffffffeb,#0c0f14eb);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:40cqw;scale:.6;box-shadow:0 8px 24px light-dark(#0f172a28,#00000059)}.portfolio-contact.is-visible .portfolio-contact__node-dot{opacity:1;scale:1}.portfolio-contact__node-dot>span{animation:portfolio-contact-spin-reverse 90s linear infinite}.portfolio-contact__node-letter{font-family:var(--ui-font-mono);font-size:.85rem}.portfolio-contact__icon{width:1.15rem;height:1.15rem;-webkit-mask:var(--node-icon) center /contain no-repeat;mask:var(--node-icon) center /contain no-repeat;background:currentColor;display:block}.portfolio-contact.has-active .portfolio-contact__node-dot>span,.portfolio-contact.has-active .portfolio-contact__orbit{animation-play-state:paused}.portfolio-contact.has-active .portfolio-contact__node:not(.is-active) .portfolio-contact__node-dot{opacity:.4;transition-delay:0s}.portfolio-contact__node.is-active .portfolio-contact__node-dot{color:var(--ui-color-text-primary);border-color:light-dark(#2453c4b3,#8fb7ffb3);transition-delay:0s;scale:1.12;box-shadow:0 0 28px light-dark(#2453c473,#8fb7ff73)}.portfolio-contact__node.is-active .portfolio-contact__beam{background:linear-gradient(90deg,light-dark(#2453c44d,#8fb7ff4d),var(--ui-color-accent))}.portfolio-contact__node.is-active .portfolio-contact__beam:after{animation-duration:1.2s;animation-delay:0s}.portfolio-contact__body>*{opacity:0;transition:opacity .5s ease-out,transform .5s var(--ui-ease-out);transform:translateY(14px)}.portfolio-contact.is-visible .portfolio-contact__body>*{opacity:1;transform:none}.portfolio-contact__body>:nth-child(2){transition-delay:80ms}.portfolio-contact__body>:nth-child(3){transition-delay:.16s}.portfolio-contact__body>:nth-child(n+4){transition-delay:.24s}.portfolio-contact__body{min-width:0;container:contact-body/inline-size}.portfolio-contact__kicker{color:var(--ui-color-accent);font-family:var(--ui-font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.6rem;margin:0 0 1rem;font-size:.7rem;display:inline-flex}.portfolio-contact__signal{background:var(--ui-color-accent);border-radius:50%;width:.45rem;height:.45rem;position:relative;box-shadow:0 0 14px light-dark(#2453c499,#8fb7ff99)}.portfolio-contact__signal:after{background:var(--ui-color-accent);content:"";border-radius:50%;animation:portfolio-contact-ripple 2.4s ease-out infinite;position:absolute;inset:0}.portfolio-contact__copy{max-width:34rem;color:var(--ui-color-text-secondary);margin:0 0 1.75rem;font-size:1.05rem;line-height:1.75}.portfolio-contact__email{transition:opacity .5s ease-out .16s,transform .5s var(--ui-ease-out) .16s,border-color .3s ease-out,box-shadow .3s ease-out;background:light-dark(#ffffffc7,#0e1116c7);border-color:light-dark(#2453c433,#8fb7ff33);padding:clamp(1.1rem,3vw,1.6rem);position:relative}.portfolio-contact__email:focus-within,.portfolio-contact__email:hover{border-color:light-dark(#2453c473,#8fb7ff73);box-shadow:0 0 0 1px light-dark(#2453c41f,#8fb7ff1f),0 18px 50px light-dark(#0f172a28,#00000059)}.portfolio-contact__channels-title,.portfolio-contact__email-label{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .45rem;font-size:.66rem;font-weight:500;display:block}.portfolio-contact__email-address{color:var(--ui-color-text-primary);letter-spacing:-.01em;overflow-wrap:anywhere;background:linear-gradient(90deg,var(--ui-color-accent),var(--ui-color-purple)) 0 100% /0 1px no-repeat;transition:background-size .4s var(--ui-ease-out);font-size:clamp(1.05rem,2.4vw,1.45rem);font-weight:600;text-decoration:none;display:inline-block}.portfolio-contact__email-address:focus-visible,.portfolio-contact__email-address:hover{background-size:100% 1px}.portfolio-contact__channel-link:focus-visible,.portfolio-contact__email-address:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:4px;border-radius:.35rem}.portfolio-contact__email-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.portfolio-contact__copy-button.is-copied{color:var(--ui-color-success)}.portfolio-contact__channels-title{margin-top:1.9rem;margin-bottom:.8rem}.portfolio-contact__channels{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}@container contact-body (min-width:30rem){.portfolio-contact__channels{grid-template-columns:repeat(2,minmax(0,1fr))}}.portfolio-contact__channel-link{border:1px solid var(--ui-color-border-subtle);height:100%;color:inherit;transition:border-color .25s ease-out,background .25s ease-out,transform .25s var(--ui-ease-out);background:light-dark(#0d111706,#ffffff06);border-radius:1rem;grid-template-columns:2.6rem minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.9rem 1rem;text-decoration:none;display:grid}.portfolio-contact__channel-link:focus-visible,.portfolio-contact__channel-link:hover{background:light-dark(#2453c40f,#8fb7ff0f);border-color:light-dark(#2453c473,#8fb7ff73);transform:translateY(-2px)}.portfolio-contact__channel-link.is-pending{opacity:.6;grid-template-columns:1fr auto}.portfolio-contact__channel-icon{width:2.6rem;height:2.6rem;color:var(--ui-color-text-primary);background:light-dark(#2453c414,#8fb7ff14);border-radius:50%;place-items:center;display:grid}.portfolio-contact__channel-text{gap:.1rem;min-width:0;display:grid}.portfolio-contact__channel-label{color:var(--ui-color-text-primary);font-weight:600}.portfolio-contact__channel-meta{color:var(--ui-color-text-secondary);font-size:.8rem}.portfolio-contact__channel-href{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;overflow:hidden}.portfolio-contact__channel-arrow{color:var(--ui-color-text-muted);transition:color .25s ease-out,transform .25s var(--ui-ease-out)}.portfolio-contact__channel-link:focus-visible .portfolio-contact__channel-arrow,.portfolio-contact__channel-link:hover .portfolio-contact__channel-arrow{color:var(--ui-color-accent);transform:translate(2px,-2px)}.portfolio-contact__pending{justify-items:start;gap:.75rem;display:grid}.portfolio-contact__pending p{color:var(--ui-color-text-muted);font-family:var(--ui-font-mono);margin:0;font-size:.65rem}@keyframes portfolio-contact-ripple{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(3.2)}}@keyframes portfolio-contact-spin{to{transform:rotate(1turn)}}@keyframes portfolio-contact-spin-reverse{to{transform:rotate(-1turn)}}@keyframes portfolio-contact-packet{0%{opacity:0;left:0}15%,80%{opacity:1}to{opacity:0;left:100%}}@media (max-width:760px){.portfolio-contact{border-radius:1.1rem;padding:1.4rem 1.1rem}.portfolio-contact__layout{gap:1.25rem}.portfolio-contact__visual{width:min(100%,17rem)}.portfolio-contact__node-dot>span,.portfolio-contact__orbit,.portfolio-contact__ripple--late{animation:none!important}.portfolio-contact__grid{display:none}.portfolio-contact__aurora{filter:blur(70px);width:24rem;height:24rem}.portfolio-contact__email-actions>*{flex:auto;justify-content:center}}@media (prefers-reduced-motion:reduce){.portfolio-contact *,.portfolio-contact :after,.portfolio-contact :before{transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}.portfolio-contact__body>*,.portfolio-contact__core,.portfolio-contact__node-dot,.portfolio-contact__ring{opacity:1;transform:none}.portfolio-contact__node-dot{transform:translate(-50%,-50%) rotate(calc(-1 * var(--node-angle)))}.portfolio-contact__beam{scale:none}.portfolio-contact__channel-link:focus-visible,.portfolio-contact__channel-link:hover{transform:none}}@media (max-width:960px){.portfolio-hero__layout{grid-template-columns:minmax(0,1.1fr) minmax(240px,.9fr);gap:1.5rem}.portfolio-hero__title{font-size:clamp(3.4rem,8.4vw,6rem)}.portfolio-hero__credentials{grid-template-columns:minmax(0,1.2fr) minmax(8rem,.8fr);gap:1rem}.portfolio-hero__art-note{font-size:.5rem}}@media (max-width:760px){.portfolio-nav{top:.8rem;right:.8rem;transform:none}.portfolio-nav__bar{min-height:2.75rem}.portfolio-nav__desktop{display:none}.portfolio-nav__toggle{display:grid}.portfolio-nav__mobile{border:1px solid var(--ui-color-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:light-dark(#fffffff0,#090b0ef0);border-radius:.9rem;width:min(100vw - 1.6rem,17rem);padding:.55rem;position:absolute;top:calc(100% + .6rem);right:0;box-shadow:0 16px 45px light-dark(#0f172a25,#00000052)}.portfolio-nav.is-open .portfolio-nav__mobile{gap:.2rem;display:grid}.portfolio-nav__mobile .portfolio-nav__link{border-radius:.55rem;justify-content:space-between;min-height:2.8rem;padding-inline:.75rem}.portfolio-nav__mobile .portfolio-nav__link>span:first-child{color:inherit;opacity:1;position:static;transform:none}.portfolio-hero{min-height:auto;padding:8.8rem 0 6rem}.portfolio-hero__layout{grid-template-columns:1fr;gap:1.6rem;transition:none;opacity:1!important;transform:none!important}.portfolio-hero__title{max-width:12ch;font-size:clamp(3.4rem,14vw,6rem)}.portfolio-hero__credentials{grid-template-columns:1fr}.portfolio-hero__credential--experience{border-top:1px solid var(--ui-color-border-subtle);border-left:0;padding-top:1rem;padding-left:0}.portfolio-hero__description{max-width:34rem;font-size:1rem}.portfolio-hero__socials{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:1.8rem}.portfolio-hero__art{justify-self:center;width:min(78vw,350px);margin:0 auto}.portfolio-hero__halo,.portfolio-hero__orbit-node{animation:none}.portfolio-hero__technology-badge--outer{transform:scaleY(1.087)rotate(22deg);animation:none!important}.portfolio-hero__technology-badge--inner{transform:scaleY(1.488)rotate(-32deg);animation:none!important}.portfolio-hero__art-note--top{top:12%;left:0}.portfolio-hero__art-note--bottom{bottom:13%;right:-4%}.portfolio-hero__scroll{bottom:1.5rem}}@media (max-width:390px){.portfolio-hero__art-note{font-size:.42rem}.portfolio-hero__art-note--bottom{right:-3%}}@media (prefers-reduced-motion:reduce){.portfolio-hero__layout{transition:none;opacity:1!important;transform:none!important}.portfolio-hero__halo,.portfolio-hero__orbit-node,.portfolio-hero__scroll-line:after,.portfolio-hero__status:after{animation:none}.portfolio-hero__technology-badge--outer{transform:scaleY(1.087)rotate(22deg);animation:none!important}.portfolio-hero__technology-badge--inner{transform:scaleY(1.488)rotate(-32deg);animation:none!important}}:root[data-theme=light] img[src*=github\.svg],:root[data-theme=light] img[src*=openai\.svg]{filter:invert()}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}.portfolio-toolbar{position:fixed;z-index:60;top:clamp(1rem,2.5vw,1.75rem);right:clamp(1.25rem,3vw,3rem);display:flex;align-items:center;gap:.5rem}.portfolio-language{position:relative;display:inline-flex;height:2.5rem;align-items:center;gap:.45rem;padding:0 .8rem;border:1px solid light-dark(rgba(13,17,23,.14),rgba(255,255,255,.14));border-radius:999px;background:light-dark(rgba(255,255,255,.68),rgba(9,11,14,.68));color:var(--ui-color-text-secondary);backdrop-filter:blur(12px);transition:border-color var(--ui-duration-normal),color var(--ui-duration-normal),opacity var(--ui-duration-normal)}.portfolio-language:focus-within,.portfolio-language:hover{border-color:light-dark(rgba(36,83,196,.45),rgba(143,183,255,.45));color:var(--ui-color-text-primary)}.portfolio-language:has(.portfolio-language__select:focus-visible){outline:2px solid var(--ui-color-accent);outline-offset:3px}.portfolio-language.is-pending{opacity:.65}.portfolio-language__icon{width:1rem;height:1rem;flex:none}.portfolio-language__select{min-height:2.5rem;padding-right:1.1rem;border:0;background:transparent;color:inherit;font:inherit;font-size:.78rem;cursor:pointer;appearance:none;outline:none}.portfolio-language__select option{background:light-dark(#eceff5,#0b0d11);color:light-dark(#0d1117,#f5f7fa)}.portfolio-language__chevron{position:absolute;right:.75rem;width:.7rem;height:.7rem;pointer-events:none}@media (max-width:760px){.portfolio-toolbar{top:.8rem;right:4rem;gap:.4rem}.portfolio-language{height:2.7rem}}.portfolio-theme{display:inline-grid;width:2.5rem;height:2.5rem;flex:none;place-items:center;padding:0;border:1px solid light-dark(rgba(13,17,23,.14),rgba(255,255,255,.14));border-radius:50%;background:light-dark(rgba(255,255,255,.68),rgba(9,11,14,.68));color:var(--ui-color-text-secondary);backdrop-filter:blur(12px);cursor:pointer;transition:border-color var(--ui-duration-normal),color var(--ui-duration-normal)}.portfolio-theme:hover{border-color:light-dark(rgba(36,83,196,.45),rgba(143,183,255,.45));color:var(--ui-color-text-primary)}.portfolio-theme:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:3px}.portfolio-theme__icon{width:1.05rem;height:1.05rem}@media (max-width:760px){.portfolio-theme{width:2.7rem;height:2.7rem}}