:root,.theme-dark{color-scheme:dark;--color-primary: #69dfc6;--color-on-primary: #082e31;--color-primary-dark: #42c9ae;--color-primary-light: #193c40;--color-primary-lighter: #102d34;--color-secondary: #9dd6e4;--color-bg-primary: #091b26;--color-bg-secondary: #15333bbd;--color-bg-tertiary: #1b3843;--color-bg-surface: #102b37c9;--color-bg-surface-hover: #173c48;--color-text-primary: #f3f8fa;--color-text-secondary: #d2e0e6;--color-text-tertiary: #c2d3dc;--color-text-muted: #b8cbd5;--color-error: #ffb4ab;--color-success: #85e6b4;--color-border-primary: #8eb8c233;--color-border-secondary: #91b9c36e;--color-border-control: #8da6b3;--color-border-subtle: #87b2bd1c;--ambient-ink: #1a527e28;--ambient-turquoise: #1cb89f0c;--glass-bg: #102b374d;--glass-bg-hover: #173c4880;--reading-surface: #091b26cc;--capability-surface: #102b371a;--glass-primary-bg: #69dfc6cc;--glass-primary-bg-hover: #69dfc6e6;--navbar-bg: #091b2666;--navbar-menu-bg: #091b26f2;--flow-opacity: .95;--gradient-bg-primary: var(--color-bg-primary)}.theme-light{color-scheme:light;--color-primary: #00534c;--color-on-primary: #ffffff;--color-primary-dark: #004b45;--color-primary-light: #d8eeea;--color-primary-lighter: #edf7f4;--color-secondary: #1c5266;--color-bg-primary: #fbfdfd;--color-bg-secondary: #e6f1efb3;--color-bg-tertiary: #e1ecee;--color-bg-surface: #ffffffb8;--color-bg-surface-hover: #edf5f5;--color-text-primary: #14232e;--color-text-secondary: #243b49;--color-text-tertiary: #2d4351;--color-text-muted: #344c5a;--color-error: #9b1c1c;--color-success: #155e37;--color-border-primary: #254f642b;--color-border-secondary: #325c6e66;--color-border-control: #5a727d;--color-border-subtle: #315b7917;--ambient-ink: #4f97ba09;--ambient-turquoise: #29bca00a;--glass-bg: #ffffffb3;--glass-bg-hover: #ffffffe6;--reading-surface: #fbfdfde6;--capability-surface: #ffffff29;--glass-primary-bg: #00534cf2;--glass-primary-bg-hover: #004b45;--navbar-bg: #fbfdfde6;--navbar-menu-bg: #fbfdfdf5;--flow-opacity: .7}.journey-stop{position:relative;overflow-anchor:none}.journey-panel{min-width:0}.spatial-ready .journey-panel{position:fixed;inset:0 0 auto;z-index:2;transform-origin:50% 50lvh;will-change:transform,opacity}.spatial-ready .hero.journey-panel{position:fixed}app-spatial-journey.scene-ready .journey-panel:not(.hero){width:min(1440px,100% - 12vw)}app-spatial-journey.orb-hover .hero{cursor:grab}app-spatial-journey.spatial-ready .hero .hero__visual{pointer-events:auto;touch-action:pan-y pinch-zoom}app-spatial-journey.orb-dragging,app-spatial-journey.orb-dragging *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}app-spatial-journey.scene-ready .journey-panel .section{border:0;padding:132px 0 100px}app-spatial-journey.scene-ready .journey-panel .section-heading{align-items:baseline;gap:22px;margin-bottom:46px}app-spatial-journey.scene-ready .journey-panel .section-heading h2{font-size:clamp(48px,6vw,92px);font-weight:400;line-height:1.1;letter-spacing:-.06em}app-spatial-journey.scene-ready .journey-panel .section-index{border:0;background:none;box-shadow:none;border-radius:0;padding:0;min-width:0;width:auto;height:auto;font-size:16px;color:var(--color-primary);font-weight:500}app-spatial-journey.scene-ready .journey-panel .project__visual{height:clamp(320px,54svh,540px);width:88%;margin:8px auto 24px}app-spatial-journey.scene-ready .journey-panel .featured__summary{grid-template-columns:1fr 1fr;gap:10%;margin-bottom:24px}app-spatial-journey.scene-ready .journey-panel .featured__summary h3{font-size:clamp(54px,7vw,100px);font-weight:400;letter-spacing:-.06em}app-spatial-journey.scene-ready .journey-panel .featured__beta{font-size:12px!important;letter-spacing:.08em!important;border-radius:0!important;padding:5px 0!important;border:0!important;border-bottom:1px solid var(--color-primary)!important}app-spatial-journey.scene-ready .journey-panel .featured__description{font-size:19px}app-spatial-journey.scene-ready .journey-panel app-muvia-showcase .showcase__visual{display:none}app-spatial-journey.scene-ready .journey-panel app-muvia-showcase figure{display:block}app-spatial-journey.scene-ready .journey-panel app-muvia-showcase figcaption{flex-direction:row;align-items:center;justify-content:space-between;gap:40px}app-spatial-journey.scene-ready .journey-panel .evolution{margin-top:70px}app-spatial-journey.scene-ready .journey-panel .evolution__grid{border:0;gap:36px}app-spatial-journey.scene-ready .journey-panel .evolution__stage{border:0;border-top:1px solid var(--color-border-secondary);padding:24px 0 0;background:none}app-spatial-journey.scene-ready .journey-panel .evolution__stage--current{border-top:2px solid var(--color-primary)}app-spatial-journey.scene-ready .journey-panel .evolution__step>span:first-child{font-size:28px;line-height:1;color:var(--color-primary);margin-right:12px}app-spatial-journey.scene-ready .journey-panel .project-row{grid-template-columns:40px 1fr 1.4fr auto;padding-block:38px}app-spatial-journey.scene-ready .journey-panel .project-row h3{font-size:clamp(26px,3vw,40px);font-weight:400}app-spatial-journey.scene-ready .journey-panel .about__grid{grid-template-columns:.72fr 1.3fr;gap:13%;align-items:start}app-spatial-journey.scene-ready .journey-panel .about figure{padding-top:12px}app-spatial-journey.scene-ready .journey-panel .about figure img{aspect-ratio:.8;border:1px solid var(--color-border-primary);border-radius:120px 120px 0 0}app-spatial-journey.scene-ready .journey-panel .about__copy>p.about__lead{font-size:clamp(30px,3.4vw,52px);line-height:1.23;letter-spacing:-.045em;margin-bottom:36px}app-spatial-journey.scene-ready .journey-panel .about__copy>p{font-size:19px}app-spatial-journey.scene-ready .journey-panel .skills{position:relative}app-spatial-journey.scene-ready .journey-panel .skills .scene-space{position:absolute;left:0;top:270px;width:40%;height:480px}app-spatial-journey.scene-ready .journey-panel .capabilities{margin-left:49%;display:block}app-spatial-journey.scene-ready .journey-panel .capability{position:relative;border:0;border-bottom:1px solid var(--color-border-primary);border-radius:0;background:none;padding:26px 0 30px 54px}app-spatial-journey.scene-ready .journey-panel .capability:hover{border-bottom-color:var(--color-border-secondary)}app-spatial-journey.scene-ready .journey-panel .capability__heading{position:absolute;top:33px;left:0}app-spatial-journey.scene-ready .journey-panel .capability__heading lucide-icon{display:none}app-spatial-journey.scene-ready .journey-panel .capability__index{color:var(--color-primary);font-size:15px}app-spatial-journey.scene-ready .journey-panel .capability h3{font-size:32px;font-weight:400;letter-spacing:-.04em;margin:0 0 14px}app-spatial-journey.scene-ready .journey-panel .capability p{margin-bottom:16px}app-spatial-journey.scene-ready .journey-panel .capability__tools{border:0;padding:0}app-spatial-journey.scene-ready .journey-panel .full-stack{margin-top:70px;padding-top:22px;border-top:1px solid var(--color-border-secondary)}app-spatial-journey.scene-ready .journey-panel .skills__items li{border-bottom:1px solid var(--color-border-subtle);padding:10px 0}app-spatial-journey.scene-ready .journey-panel .experience__timeline{width:82%;margin-left:10%;border-left:1px solid var(--color-border-secondary)}app-spatial-journey.scene-ready .journey-panel .experience__item{position:relative;margin-left:34px;grid-template-columns:minmax(150px,.55fr) 2fr;gap:36px;border:0;border-bottom:1px solid var(--color-border-primary);padding:42px 0}app-spatial-journey.scene-ready .journey-panel .experience__item:before{content:"";position:absolute;width:7px;height:7px;border:1px solid var(--color-primary);border-radius:50%;left:-39px;top:54px;background:var(--color-bg-primary);transition:background .25s,box-shadow .25s,transform .25s}app-spatial-journey.scene-ready .journey-panel .experience__item:first-child:before,app-spatial-journey.scene-ready .journey-panel .experience__item:hover:before{background:var(--color-primary);box-shadow:0 0 12px var(--color-primary);transform:scale(1.2)}app-spatial-journey.scene-ready .journey-panel .experience__content h3{font-size:34px;font-weight:400;letter-spacing:-.045em}app-spatial-journey.scene-ready .journey-panel .contact .section-heading h2{font-size:clamp(60px,10vw,150px)}app-spatial-journey.scene-ready .journey-panel .contact__content{gap:14%;align-items:start}app-spatial-journey.scene-ready .journey-panel .contact__visual{height:200px;width:190px;margin:0 0 30px}app-spatial-journey.scene-ready .journey-panel .contact__info{padding:0}app-spatial-journey.scene-ready .journey-panel .contact__description{font-size:23px;letter-spacing:-.025em}app-spatial-journey.scene-ready .journey-panel .contact__form{border-left:1px solid var(--color-border-primary);padding-left:44px}app-spatial-journey.scene-ready .journey-panel .contact__form h3{font-size:28px;font-weight:400}app-spatial-journey.scene-ready .journey-panel .contact__input,app-spatial-journey.scene-ready .journey-panel .contact__textarea{border-radius:0;border:0;border-bottom:1px solid var(--field-border)}app-spatial-journey.scene-ready .journey-panel .contact__button{border-radius:0;width:auto;min-width:210px;display:flex;margin-left:auto}@media(max-width:1000px){app-spatial-journey.scene-ready .journey-panel:not(.hero){width:calc(100% - 64px)}app-spatial-journey.scene-ready .journey-panel .section{padding-top:120px}app-spatial-journey.scene-ready .journey-panel .about__grid{gap:8%}app-spatial-journey.scene-ready .journey-panel .contact__content{gap:7%}app-spatial-journey.scene-ready .journey-panel .contact__form{padding-left:26px}app-spatial-journey.scene-ready .journey-panel .project-row{grid-template-columns:30px 1fr 1.4fr;gap:20px}app-spatial-journey.scene-ready .journey-panel .project-row__links{grid-column:3}}@media(max-width:759px){app-spatial-journey.scene-ready .journey-panel:not(.hero){width:calc(100% - 48px)}app-spatial-journey.scene-ready .journey-panel .section{padding-top:106px;padding-bottom:88px}app-spatial-journey.scene-ready .journey-panel .section-heading{gap:16px;margin-bottom:32px}app-spatial-journey.scene-ready .journey-panel .section-heading h2{font-size:clamp(40px,10vw,66px)}app-spatial-journey.scene-ready .journey-panel .project__visual{width:100%;height:260px;margin-bottom:22px}app-spatial-journey.scene-ready .journey-panel .featured__summary{grid-template-columns:1fr;gap:22px}app-spatial-journey.scene-ready .journey-panel .featured__summary h3{font-size:62px}app-spatial-journey.scene-ready .journey-panel .featured__description{font-size:18px}app-spatial-journey.scene-ready .journey-panel app-muvia-showcase figcaption{align-items:start;flex-direction:column;gap:16px}app-spatial-journey.scene-ready .journey-panel .evolution__grid{grid-template-columns:1fr;gap:26px}app-spatial-journey.scene-ready .journey-panel .evolution__heading{align-items:start;flex-direction:column}app-spatial-journey.scene-ready .journey-panel .project-row{grid-template-columns:26px 1fr}app-spatial-journey.scene-ready .journey-panel .project-row__links,app-spatial-journey.scene-ready .journey-panel .project-row__description{grid-column:2}app-spatial-journey.scene-ready .journey-panel .about__grid{grid-template-columns:1fr;gap:32px}app-spatial-journey.scene-ready .journey-panel .about figure{width:min(74%,310px);margin-inline:auto}app-spatial-journey.scene-ready .journey-panel .about figure img{aspect-ratio:.9}app-spatial-journey.scene-ready .journey-panel .about__copy>p{font-size:18px}app-spatial-journey.scene-ready .journey-panel .skills .scene-space{position:static;width:100%;height:270px}app-spatial-journey.scene-ready .journey-panel .capabilities{margin-left:0}app-spatial-journey.scene-ready .journey-panel .capability{padding-left:42px}app-spatial-journey.scene-ready .journey-panel .capability h3{font-size:28px}app-spatial-journey.scene-ready .journey-panel .experience__timeline{width:calc(100% - 5px);margin-left:4px}app-spatial-journey.scene-ready .journey-panel .experience__item{margin-left:24px;grid-template-columns:1fr;gap:12px;padding-block:30px}app-spatial-journey.scene-ready .journey-panel .experience__item:before{left:-29px;top:43px}app-spatial-journey.scene-ready .journey-panel .experience__content h3{font-size:29px}app-spatial-journey.scene-ready .journey-panel .contact .section-heading h2{font-size:clamp(50px,12vw,80px)}app-spatial-journey.scene-ready .journey-panel .contact__content{grid-template-columns:1fr;gap:45px}app-spatial-journey.scene-ready .journey-panel .contact__visual{width:130px;height:150px;float:right;margin:0 0 15px 14px}app-spatial-journey.scene-ready .journey-panel .contact__description{font-size:20px}app-spatial-journey.scene-ready .journey-panel .contact__form{border:0;border-top:1px solid var(--color-border-secondary);padding:32px 0 0}}@media(max-width:480px){app-spatial-journey.scene-ready .journey-panel .contact__visual{float:none;width:110px;height:120px;margin:0 0 22px}}@media print{.journey-canvas{display:none!important}app-spatial-journey.scene-ready .journey-stop{height:auto!important}.spatial-ready .journey-panel{position:static;transform:none!important;opacity:1!important;visibility:visible!important}}:root{--font-family-title: "Sora", sans-serif;--font-family-body: "Inter", sans-serif;--font-family-serif: "Sora", sans-serif;--font-family-mono: "Inter", sans-serif;--font-weight-heading: 500;--tracking-heading: -.025em;--text-caption: .875rem;--text-ui: 1rem;--text-body: 1.125rem;--text-title: 1.5rem;--text-section: clamp(2rem, 1.4rem + 2vw, 3rem);--text-display: clamp(3.5rem, 1.5rem + 6vw, 7rem);--motion-fast: .18s;--motion-ease: cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box}html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:100px;background:var(--color-bg-primary)}body{margin:0;color:var(--color-text-primary);background:var(--color-bg-primary);font:var(--text-body)/1.65 var(--font-family-body);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4,h5{font-family:var(--font-family-title);font-weight:var(--font-weight-heading);letter-spacing:var(--tracking-heading)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}img{display:block;max-width:100%}::selection{color:var(--color-bg-primary);background:var(--color-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:5px}.page-width{width:min(1280px,100% - 112px);margin-inline:auto}.section{padding-block:120px;border-top:2px solid var(--color-border-secondary);scroll-margin-top:0}.reading-surface{position:relative;isolation:isolate}.reading-surface:before{content:"";position:absolute;inset:-36px -24px;z-index:-1;pointer-events:none;background:var(--reading-surface);-webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent),linear-gradient(transparent,#000 40px,#000 calc(100% - 40px),transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent),linear-gradient(transparent,#000 40px,#000 calc(100% - 40px),transparent);mask-composite:intersect}.brand-mark{display:inline-block;width:28px;height:28px;flex:0 0 28px;fill:var(--color-primary)}.section-heading{display:flex;align-items:center;gap:20px;margin-bottom:56px}.section-heading h2{font-size:var(--text-section);line-height:1.1;margin:0}.eyebrow{font:var(--text-caption)/1.6 var(--font-family-mono);text-transform:uppercase;letter-spacing:.07em;font-weight:500;color:var(--color-text-secondary)}.section-index{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:48px;height:48px;padding-inline:10px;margin:0;border:1px solid var(--color-border-secondary);border-radius:10px;background:var(--glass-bg);color:var(--color-text-primary);font:500 var(--text-ui)/1 var(--font-family-title);font-variant-numeric:tabular-nums}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:48px;padding:12px 21px;border:1px solid var(--color-border-control);border-radius:8px;background:var(--glass-bg);color:var(--color-text-primary);text-shadow:none;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);font-size:var(--text-ui);font-weight:500;transition:background var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.button:not(:disabled):is(:hover,:focus-visible){background:var(--glass-bg-hover);border-color:var(--color-border-control);transform:translateY(-1px)}.button--solid{background:var(--glass-primary-bg);color:var(--color-on-primary);border-color:var(--color-primary);box-shadow:0 0 35px color-mix(in srgb,var(--color-primary) 13%,transparent)}.button--solid:is(:hover,:focus-visible){background:var(--glass-primary-bg-hover);border-color:var(--color-primary)}.text-link{font-size:var(--text-ui);display:inline-flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--color-border-control);transition:color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)}.text-link:is(:hover,:focus-visible){color:var(--color-primary);border-color:currentColor}.text-link>lucide-icon,.button>lucide-icon{display:inline-flex;flex-shrink:0;transition:transform var(--motion-fast) var(--motion-ease)}.text-link:is(:hover,:focus-visible)>lucide-icon{transform:translate(2px,-2px)}.theme-light ng-icon [fill="#61DAFB"],.theme-light ng-icon [fill="#38bdf8"]{fill:#087ea4}.theme-dark ng-icon [fill="#336791"]{fill:#82b4d9}.theme-dark ng-icon [fill="#5c4ee5"]{fill:#ad9bff}.theme-dark ng-icon [fill="#4040b2"]{fill:#8f82e6}.theme-dark ng-icon [fill="#623697"]{fill:#b59bea}.theme-dark ng-icon [fill="#0052cc"]{fill:#76afff}.theme-dark ng-icon [fill="#3A4D54"]{fill:#b1cbd8}.theme-dark .skills__icon img[src$="/jest.png"]{background:#fff;border-radius:4px;padding:2px}.disclosure>summary{display:flex;align-items:center;gap:10px;width:fit-content;max-width:100%;min-height:44px;padding:10px 0;border-radius:3px;color:var(--color-text-primary);font-size:var(--text-ui);font-weight:500;line-height:1.5;list-style:none;cursor:pointer;transition:color var(--motion-fast) var(--motion-ease)}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary>span:last-child{min-width:0;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);text-decoration-thickness:1px;text-underline-offset:5px;transition:text-decoration-color var(--motion-fast) var(--motion-ease)}.disclosure__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px}.disclosure__icon svg{width:20px;height:20px;transition:transform var(--motion-fast) var(--motion-ease)}.disclosure[open]>:not(summary){animation:disclosure-in var(--motion-fast) var(--motion-ease)}@keyframes disclosure-in{0%{opacity:.75}to{opacity:1}}.disclosure[open]>summary .disclosure__icon svg{transform:rotate(180deg)}.disclosure>summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}@media(hover:hover){.disclosure>summary:hover{color:var(--color-primary)}.disclosure>summary:hover>span:last-child{text-decoration-color:currentColor;text-decoration-thickness:1.5px}}.skip-link{position:fixed;left:20px;top:-80px;z-index:100;padding:12px 20px;background:var(--color-text-primary);color:var(--color-bg-primary)}.skip-link:focus{top:15px}.reveal{opacity:1}.reveal.is-pending{opacity:0;transform:translateY(22px)}.reveal.visible{opacity:1;transform:none;transition:opacity .65s ease,transform .65s ease}@media(max-width:900px){.page-width{width:calc(100% - 64px)}.section{padding-block:88px}}@media(max-width:640px){.page-width{width:calc(100% - 40px)}.section{padding-block:72px}.section-heading{gap:16px;margin-bottom:40px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.is-pending{opacity:1;transform:none}}
