:root{--bg-0:#0b0d12;--bg-1:#11141b;--bg-2:#171b24;--bg-light-0:#f4f5f8;--bg-light-1:#eceff4;--text-0:#f5f7fb;--text-1:#c7cfde;--text-2:#8290a8;--text-dark-0:#12141b;--text-dark-1:#3f4659;--accent:#c06cff;--accent-glow:#c06cff52;--line-dark:#ffffff1f;--line-light:#11141e21;--radius-card:20px;--radius-btn:12px;--shadow-soft:0 18px 38px #00000059, 0 3px 12px #00000040, inset 0 1px 0 #ffffff0d;--shadow-soft-light:0 16px 28px #2632542e, 0 2px 10px #2632541f, inset 0 1px 0 #ffffff73;--ease-cinematic:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}body{background:var(--bg-0);margin:0;font-family:Montserrat,Inter,sans-serif}a{color:inherit;text-decoration:none}.page-shell{isolation:isolate;min-height:100vh;padding:0 4.5rem 2.5rem;position:relative}.theme-dark{background:radial-gradient(circle at 12% 10%, #1a1f2b 0%, var(--bg-0) 48%, #090b10 100%);color:var(--text-0);--surface:color-mix(in srgb, var(--bg-2) 88%, black 12%);--line:var(--line-dark);--panel-shadow:var(--shadow-soft);--panel-fg:var(--text-0);--body-copy:var(--text-1)}.theme-light{background:radial-gradient(circle at 12% 4%, #fff 0%, var(--bg-light-0) 44%, #e8ecf2 100%);color:var(--text-dark-0);--surface:#ffffffc2;--line:var(--line-light);--panel-shadow:var(--shadow-soft-light);--panel-fg:var(--text-dark-0);--body-copy:var(--text-dark-1)}.desktop-shell{display:block;overflow:hidden}.mobile-shell{display:none;overflow:hidden}.route-stage{isolation:isolate;width:100%}.route-shell{min-height:calc(100vh - 96px);margin-top:8rem;position:relative;overflow:hidden}.cinema-grain,.cinema-vignette,.cinema-glow{pointer-events:none;z-index:0;position:absolute;inset:0}.cinema-grain{opacity:.04;mix-blend-mode:soft-light;background-image:radial-gradient(circle at 20% 30%,#ffffff85 .5px,#0000 .9px),radial-gradient(circle at 70% 80%,#fff6 .4px,#0000 .9px);background-size:3px 3px,4px 4px}.cinema-vignette{background:radial-gradient(circle,#0000 52%,#05080e5c 100%)}.cinema-glow{background:radial-gradient(circle, var(--accent-glow) 0%, #c06cff00 72%);filter:blur(30px);z-index:0;border-radius:999px;width:clamp(320px,52vw,780px);height:clamp(320px,52vw,780px);margin:auto;inset:-120px auto auto -150px}.cinema-glow-mobile{width:260px;height:260px;top:-20px;left:auto;right:-100px}.route-layer{width:100%}.route-layer-enter{z-index:2;will-change:transform, opacity, filter;position:relative}.route-layer-leave{z-index:1;pointer-events:none;position:absolute;inset:0}.card-float{transition:transform .42s var(--ease-cinematic), box-shadow .42s var(--ease-cinematic), border-color .42s var(--ease-cinematic)}.card-float:hover{transform:translateY(-6px)scale(1.01);box-shadow:0 24px 42px #00000057,0 4px 14px #0000003d,inset 0 1px #ffffff12}.top-nav{z-index:8;background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:10rem;justify-content:space-between;align-items:center;width:90%;padding:1.2rem 2.4rem;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.nav-links{gap:1.7rem;display:flex}.nav-link{opacity:.9;color:var(--body-copy);transition:color .26s var(--ease-cinematic);font-size:.95rem;position:relative}.nav-link:after{content:"";transform-origin:0;background:color-mix(in srgb, var(--accent) 88%, white 12%);width:100%;height:1.5px;transition:transform .32s var(--ease-cinematic);position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.nav-link.active{color:var(--panel-fg)}.nav-link.active:after,.nav-link:hover:after{transform:scaleX(1)}.logo-chip{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 78%, transparent);width:3.3rem;height:3.3rem;box-shadow:var(--panel-shadow);border-radius:999px;place-items:center;font-size:1.55rem;font-weight:800;display:grid}.right-actions{align-items:center;gap:.85rem;display:flex}.social-icon{width:1.5rem;height:1.5rem;color:var(--body-copy);transition:color .26s var(--ease-cinematic)}.right-actions a:hover .social-icon{color:var(--panel-fg)}.theme-toggle{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 84%, transparent);color:inherit;cursor:pointer;width:2.35rem;height:2.35rem;transition:transform .3s var(--ease-cinematic);border-radius:999px;font-size:1.05rem}.theme-toggle:hover{transform:translateY(-2px)scale(1.03)}.home-grid{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:3.5rem;margin-top:1.7rem;display:grid;position:relative}.home-projects-marquee{grid-column:1/-1;margin-top:.5rem}.projects-marquee-heading{letter-spacing:-.02em;color:var(--panel-fg);margin:0 0 1rem;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:600}.projects-marquee-section{--marquee-gap:1.25rem;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:.5rem 0 1.25rem;position:relative;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.projects-marquee-section--projects-page{margin-top:.5rem}.projects-page-lead{text-align:center;max-width:36rem;color:var(--body-copy);margin:-.5rem auto 1.25rem;font-size:1.05rem;line-height:1.6}.projects-hover-section{margin-top:.25rem;margin-bottom:2rem}.projects-hover-section__title{letter-spacing:-.02em;text-align:center;color:var(--panel-fg);margin:0 0 1rem;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:600}.projects-hover-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,17.5rem),1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.project-hover-card{border-radius:var(--radius-card);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 86%, transparent);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:border-color .28s var(--ease-cinematic), box-shadow .28s var(--ease-cinematic);outline:none;display:block;overflow:hidden}.project-hover-card:hover,.project-hover-card:focus-visible{border-color:color-mix(in srgb, var(--accent) 38%, var(--line));box-shadow:var(--panel-shadow), 0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent)}.project-hover-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.project-hover-card__media{aspect-ratio:16/10;background:var(--bg-2);position:relative;overflow:hidden}.theme-light .project-hover-card__media{background:var(--bg-light-1)}.project-hover-card__img{object-fit:cover;width:100%;height:100%;transition:transform .62s var(--ease-cinematic);will-change:transform;display:block;transform:scale(1)}.project-hover-card__overlay{background:linear-gradient(to top, color-mix(in srgb, var(--bg-0) 88%, transparent) 0%, color-mix(in srgb, var(--bg-0) 45%, transparent) 42%, transparent 100%);color:var(--text-0);opacity:0;transition:opacity .38s var(--ease-cinematic), transform .42s var(--ease-cinematic);flex-direction:column;justify-content:flex-end;gap:.5rem;padding:1.1rem 1.15rem 1.15rem;display:flex;position:absolute;inset:0;transform:translateY(.5rem)}.theme-light .project-hover-card__overlay{background:linear-gradient(to top, color-mix(in srgb, var(--text-dark-0) 82%, transparent) 0%, color-mix(in srgb, var(--text-dark-0) 38%, transparent) 45%, transparent 100%);color:#fff}.project-hover-card__title{letter-spacing:-.02em;margin:0;font-size:1.05rem;font-weight:650;line-height:1.25}.project-hover-card__desc{color:color-mix(in srgb, currentColor 82%, transparent);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;font-size:.82rem;line-height:1.45;display:-webkit-box;overflow:hidden}.project-hover-card__cta{letter-spacing:.02em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.35rem;margin-top:.15rem;font-size:.78rem;font-weight:600;display:inline-flex}.project-hover-card__cta-icon{width:.85rem;height:.85rem;display:block}@media (hover:hover) and (pointer:fine){.project-hover-card:hover .project-hover-card__img,.project-hover-card:focus-within .project-hover-card__img{transform:scale(1.08)}.project-hover-card:hover .project-hover-card__overlay,.project-hover-card:focus-within .project-hover-card__overlay{opacity:1;transform:translateY(0)}}@media (hover:none),(pointer:coarse){.project-hover-card__overlay{opacity:1;background:linear-gradient(to top, color-mix(in srgb, var(--bg-0) 92%, transparent) 0%, color-mix(in srgb, var(--bg-0) 35%, transparent) 50%, transparent 100%);transform:none}.theme-light .project-hover-card__overlay{background:linear-gradient(to top, color-mix(in srgb, var(--text-dark-0) 88%, transparent) 0%, color-mix(in srgb, var(--text-dark-0) 28%, transparent) 52%, transparent 100%)}}@media (prefers-reduced-motion:reduce){.project-hover-card__img{transition:none}.project-hover-card:hover .project-hover-card__img,.project-hover-card:focus-within .project-hover-card__img{transform:none}.project-hover-card__overlay{opacity:1;transition:none;transform:none}}.projects-marquee-viewport{overflow:hidden}.projects-marquee-viewport:hover .projects-marquee-track{animation-play-state:paused}.projects-marquee-track{gap:var(--marquee-gap);will-change:transform;width:max-content;animation:52s linear infinite projects-marquee-scroll;display:flex}.projects-marquee-set{gap:var(--marquee-gap);flex-shrink:0;display:flex}@keyframes projects-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.project-marquee-card{border-radius:var(--radius-card);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 86%, transparent);width:min(17.5rem,78vw);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.project-marquee-card__media{aspect-ratio:16/10;background:var(--bg-2);overflow:hidden}.theme-light .project-marquee-card__media{background:var(--bg-light-1)}.project-marquee-card__img{object-fit:cover;width:100%;height:100%;display:block}.project-marquee-card__body{flex:1;gap:.55rem;padding:1rem 1.05rem 1.1rem;display:grid;position:relative}.project-marquee-card__title{letter-spacing:-.02em;color:var(--panel-fg);margin:0;padding-right:2.25rem;font-size:1.05rem;font-weight:650;line-height:1.25}.project-marquee-card__desc{color:var(--body-copy);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;line-height:1.45;display:-webkit-box;overflow:hidden}.project-marquee-card__link{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 70%, transparent);width:2.15rem;height:2.15rem;color:var(--panel-fg);transition:transform .22s var(--ease-cinematic), border-color .22s var(--ease-cinematic), background .22s var(--ease-cinematic);border-radius:10px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:.85rem;right:.85rem}.project-marquee-card__link:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 12%, var(--surface));transform:translateY(-2px)}.project-marquee-card__link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-marquee-card__link-icon{width:1rem;height:1rem;display:block}@media (prefers-reduced-motion:reduce){.projects-marquee-viewport{scrollbar-gutter:stable;padding-bottom:.35rem;overflow:auto hidden;-webkit-mask-image:none;mask-image:none}.projects-marquee-track{padding-inline:1rem;animation:none}.projects-marquee-set--duplicate{display:none}}.github-contributions{grid-column:1/-1;margin-top:.5rem}.github-contributions-panel{border-radius:var(--radius-card);border:1px solid var(--line);background:var(--surface);box-shadow:var(--panel-shadow);padding:1.5rem 1.45rem 1.35rem}.github-contributions-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.25rem;margin-bottom:.45rem;display:flex}.github-contributions-title{letter-spacing:-.02em;color:var(--panel-fg);margin:0;font-size:1.25rem}.github-contributions-link{color:var(--accent);transition:opacity .2s var(--ease-cinematic);align-items:center;gap:.35rem;font-size:.95rem;font-weight:600;display:inline-flex}.github-contributions-link:hover{opacity:.88}.github-contributions-note{max-width:52rem;color:var(--body-copy);margin:0 0 1rem;font-size:.95rem;line-height:1.55}.github-chart-link{outline-offset:3px;border-radius:12px;display:block;overflow:hidden}.github-chart-link:focus-visible{outline:2px solid var(--accent)}.github-chart-frame{min-height:148px;display:block;position:relative}.github-chart-loader{z-index:1;pointer-events:none;box-sizing:border-box;grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(24,1fr);gap:3px;padding:6px 4px;display:grid;position:absolute;inset:0}.github-chart-loader-cell{background:#39d35361;border-radius:2px;min-width:0;animation:1.05s ease-in-out infinite github-loader-cell}.theme-light .github-chart-loader-cell{background:color-mix(in srgb, #39d353 28%, var(--bg-light-1) 72%)}@keyframes github-loader-cell{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.github-chart-loader-cell{opacity:.65;animation:none;transform:none}}.github-contribution-chart{vertical-align:top;opacity:0;width:100%;height:auto;transition:opacity .32s var(--ease-cinematic);display:block}.github-contribution-chart.is-loaded{opacity:1}.hero-image{border:1px solid var(--line);width:100%;max-width:520px;box-shadow:var(--panel-shadow);z-index:2;border-radius:24px;position:relative}.hero-image-wrap{position:relative}.hero-accent-glow{z-index:1;filter:blur(36px);background:radial-gradient(circle, var(--accent-glow) 0%, #c06cff00 74%);border-radius:999px;width:300px;height:300px;position:absolute;top:52px;left:-70px}.hire-circle{z-index:1000;cursor:pointer;width:4rem;height:4rem;transition:transform .28s var(--ease-cinematic), box-shadow .28s var(--ease-cinematic);background-color:#fff;border-radius:999px;position:fixed;bottom:0;left:4px;box-shadow:0 10px 28px #0f14192e}.hire-whatsapp{place-items:center;width:3rem;height:3rem;margin:auto;display:grid;position:absolute;inset:0}.hire-whatsapp:hover{transform:scale(1.06);box-shadow:0 14px 34px #25d36659}.hire-whatsapp:focus-visible{outline-offset:3px;outline:2px solid #25d366}.hire-whatsapp-icon{filter:drop-shadow(0 2px 6px #0000001f);width:72%;height:72%}.hire-chip{background:#f5f5f5;border:2px solid;border-radius:999px;width:62px;height:62px;margin:auto;font-weight:700;position:absolute;inset:0}.hero-copy h1{letter-spacing:-.02em;text-wrap:balance;margin:0 0 1.4rem;font-size:clamp(2.5rem,4vw,4.15rem);line-height:1.05}.hero-copy p{max-width:610px;color:var(--body-copy);font-size:1.2rem;line-height:1.7}.hero-actions{align-items:center;gap:1.2rem;margin-top:1.4rem;display:flex}.btn-resume{border-radius:var(--radius-btn);border:1px solid var(--line);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 90%, white 10%), var(--surface));color:var(--panel-fg);box-shadow:var(--panel-shadow);transition:transform .32s var(--ease-cinematic), box-shadow .32s var(--ease-cinematic), border-color .32s var(--ease-cinematic);align-items:center;gap:.45rem;padding:.8rem 1.2rem;font-weight:700;display:inline-flex}.btn-resume:hover{transform:translateY(-2px)rotateX(.6deg)scale(1.01)}.link-arrow{width:16px}.contact-link{color:var(--body-copy);transition:color .24s var(--ease-cinematic);font-weight:600;text-decoration:none}.contact-link:hover{color:var(--panel-fg)}.bulb-icon{width:90px;position:fixed;bottom:2.1rem;right:2.8rem}.projects-page h1,.articles-page h1{text-align:center;letter-spacing:-.02em;text-wrap:balance;margin:1rem auto 2rem;font-size:clamp(2.55rem,5vw,5.25rem);line-height:1.05}.resume-scroll-progress{z-index:20;pointer-events:none;transform-origin:0;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 20%, transparent), var(--accent), color-mix(in srgb, var(--accent) 55%, #7cf0ff));opacity:.92;height:3px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}@media (prefers-reduced-motion:reduce){.resume-scroll-progress{display:none}}.resume-page{width:100%;max-width:min(1120px,100%);margin:0 auto;padding-bottom:4rem;position:relative}.resume-page__shell{position:relative}.resume-page__inner{z-index:1;position:relative}.resume-hero{border-bottom:1px solid var(--line);isolation:isolate;grid-template-columns:minmax(200px,280px) 1fr;align-items:center;gap:clamp(1.5rem,4vw,3.5rem);margin-bottom:clamp(2rem,4vw,3rem);padding:clamp(1.2rem,3vw,2.2rem) 0 clamp(2.5rem,5vw,3.5rem);display:grid;position:relative;overflow:hidden}.about-three-backdrop{z-index:0;pointer-events:none;min-height:280px;position:absolute;inset:0}.about-three-backdrop--pending{min-height:220px}.about-three-backdrop canvas{display:block;width:100%!important;height:100%!important}.resume-hero__visual,.resume-hero__copy{z-index:1;position:relative}.resume-hero__frame{border-radius:calc(var(--radius-card) + 4px);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 55%, transparent), color-mix(in srgb, var(--surface) 40%, transparent) 42%, color-mix(in srgb, var(--accent) 35%, transparent));box-shadow:0 0 0 1px var(--line), 0 28px 56px #00000047, inset 0 1px 0 #ffffff0f;padding:3px;position:relative}.theme-light .resume-hero__frame{box-shadow:0 0 0 1px var(--line), 0 22px 44px #26325424, inset 0 1px 0 #ffffffa6}.resume-hero__photo{border-radius:var(--radius-card);aspect-ratio:4/5;object-fit:cover;width:100%;display:block}.resume-hero__scanline{border-radius:var(--radius-card);pointer-events:none;mix-blend-mode:overlay;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#0000000a 2px 3px);position:absolute;inset:0}.theme-light .resume-hero__scanline{background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ffffff1f 2px 3px)}.resume-hero__film-edge{letter-spacing:.38em;text-transform:uppercase;color:var(--text-2);opacity:.75;justify-content:space-between;margin:.85rem 0 0;font-size:.62rem;display:flex}.resume-hero__film-edge span{display:inline-block}.theme-light .resume-hero__film-edge{color:var(--text-dark-1)}.resume-hero__kicker{letter-spacing:.42em;text-transform:uppercase;color:var(--accent);margin:0 0 .75rem;font-size:.72rem;font-weight:600}.resume-hero__title{letter-spacing:-.03em;text-wrap:balance;margin:0 0 .6rem;font-size:clamp(2rem,4.2vw,3.35rem);line-height:1.08}.resume-hero__headline{color:var(--body-copy);max-width:min(52ch,100%);margin:0 0 .35rem;font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.45}.resume-hero__location{color:var(--text-2);margin:0 0 1.25rem;font-size:.95rem}.theme-light .resume-hero__location{color:var(--text-dark-1)}.resume-hero__actions{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.resume-hero__btn{text-decoration:none}.resume-hero__mailto{font-size:.95rem;font-weight:600}.resume-hero__social{flex-wrap:wrap;gap:.65rem 1.1rem;margin:0 0 1.1rem;font-size:.9rem;font-weight:600;display:flex}.resume-hero__social a{color:var(--body-copy);transition:color .24s var(--ease-cinematic);text-decoration:none;display:inline-block}.resume-hero__social a:hover{color:var(--accent)}.resume-section{border-bottom:1px solid var(--line);grid-template-columns:minmax(140px,200px) 1fr;gap:clamp(1.25rem,3vw,2.5rem);padding:clamp(1.75rem,3vw,2.75rem) 0;display:grid}.resume-section:last-of-type{border-bottom:none}.resume-section__label{align-self:start;position:sticky;top:6.5rem}.resume-section__index{letter-spacing:.28em;color:var(--accent);margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:block}.resume-section__title{letter-spacing:-.02em;margin:0;font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.15}.resume-section__body{min-width:0}.resume-about-copy{flex-direction:column;gap:1.1rem;display:flex}.resume-about-copy p{color:var(--body-copy);margin:0;font-size:1.05rem;line-height:1.78}.resume-skills{border-radius:var(--radius-card);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 78%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--panel-shadow);margin-top:2rem;padding:1.35rem 1.5rem}.resume-skills__heading{letter-spacing:.22em;text-transform:uppercase;color:var(--text-2);margin:0 0 1rem;font-size:.78rem;font-weight:600}.theme-light .resume-skills__heading{color:var(--text-dark-1)}.resume-skills__list{flex-wrap:wrap;gap:.5rem .6rem;margin:0;padding:0;list-style:none;display:flex}.resume-skills__list li{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 55%, transparent);color:var(--panel-fg);border-radius:999px;padding:.38rem .75rem;font-size:.88rem;font-weight:500}.resume-timeline{perspective:1200px;transform-style:preserve-3d;flex-direction:column;gap:1.75rem;display:flex}.resume-exp-card{border-radius:var(--radius-card);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--panel-shadow);transform-style:preserve-3d;transition:border-color .42s var(--ease-cinematic), box-shadow .42s var(--ease-cinematic);grid-template-columns:12px minmax(120px,200px) 1fr;gap:1rem 1.25rem;padding:1.5rem 1.35rem 1.6rem 1.5rem;display:grid;position:relative}.resume-exp-card:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--line));box-shadow:0 22px 48px #00000038, 0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent)}.theme-light .resume-exp-card:hover{box-shadow:0 18px 40px #2632541f, 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.resume-exp-card__rail{background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 20%, transparent));will-change:transform;border-radius:999px;grid-column:1;width:3px;margin:.2rem 0}.resume-exp-card__meta{grid-column:2;min-width:0}.resume-exp-card__period{letter-spacing:.06em;color:var(--accent);text-transform:uppercase;margin:0 0 .35rem;font-size:.82rem;font-weight:700}.resume-exp-card__company{color:var(--panel-fg);margin:0 0 .25rem;font-size:1.02rem;font-weight:700;line-height:1.25}.resume-exp-card__where{color:var(--text-2);margin:0;font-size:.86rem}.theme-light .resume-exp-card__where{color:var(--text-dark-1)}.resume-exp-card__main{grid-column:3;min-width:0}.resume-exp-card__main h3{letter-spacing:-.01em;color:var(--panel-fg);margin:0 0 .75rem;font-size:1.12rem;font-weight:700}.resume-exp-card__main ul{color:var(--body-copy);margin:0;padding-left:1.15rem;font-size:.98rem;line-height:1.68}.resume-exp-card__main li{margin-bottom:.45rem}.resume-exp-card__main li:last-child{margin-bottom:0}@media (width<=900px){.resume-exp-card{grid-template-rows:auto auto;grid-template-columns:12px 1fr}.resume-exp-card__rail{grid-row:1/span 2}.resume-exp-card__meta{grid-area:1/2}.resume-exp-card__main{grid-area:2/2}}.resume-project-list{perspective:1200px;transform-style:preserve-3d;flex-direction:column;gap:1.5rem;display:flex}.resume-project-card{border-radius:var(--radius-card);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--panel-shadow);transform-style:preserve-3d;transition:border-color .38s var(--ease-cinematic), box-shadow .38s var(--ease-cinematic);margin:0;padding:1.45rem 1.5rem}.resume-project-card:hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--line));box-shadow:0 18px 40px #0000002e, 0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent)}.resume-project-card__head{border-bottom:1px solid var(--line);margin-bottom:1rem;padding-bottom:.85rem}.resume-project-card__head h3{letter-spacing:-.02em;color:var(--panel-fg);margin:0 0 .35rem;font-size:1.15rem;font-weight:700}.resume-project-card__period{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.82rem;font-weight:700}.resume-project-card p{color:var(--body-copy);margin:0 0 .85rem;font-size:.98rem;line-height:1.72}.resume-project-card p:last-child{margin-bottom:0}.resume-publications ul{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.resume-publications a{color:var(--panel-fg);transition:color .24s var(--ease-cinematic);align-items:center;gap:.4rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.resume-publications a:hover{color:var(--accent)}.resume-pub-arrow{opacity:.85;width:14px}.resume-edu-list{perspective:1200px;transform-style:preserve-3d;flex-direction:column;gap:1rem;display:flex}.resume-edu-card{border-radius:var(--radius-card);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--panel-shadow);transform-style:preserve-3d;transition:border-color .38s var(--ease-cinematic), box-shadow .38s var(--ease-cinematic);margin:0;padding:1.35rem 1.45rem}.resume-edu-card:hover{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));box-shadow:0 16px 36px #00000029, 0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent)}.resume-edu-card h3{color:var(--panel-fg);margin:0 0 .5rem;font-size:1.08rem;font-weight:700;line-height:1.3}.resume-edu-card__credential{color:var(--body-copy);margin:0 0 .4rem;font-size:.98rem;line-height:1.55}.resume-edu-card__period{letter-spacing:.06em;color:var(--accent);text-transform:uppercase;margin:0;font-size:.82rem;font-weight:700}.projects-page{max-width:1200px;margin:0 auto}.feature-card{border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--panel-shadow);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);grid-template-columns:1.05fr 1fr;gap:1.8rem;padding:1.4rem;display:grid;position:relative;overflow:hidden}.feature-card:before{content:"";filter:blur(20px);background:radial-gradient(circle, var(--accent-glow), transparent 72%);pointer-events:none;border-radius:999px;width:180px;height:180px;position:absolute;top:-40px;right:-40px}.feature-image{border-radius:12px;width:100%}.feature-copy span{color:var(--accent);font-size:1.8rem}.feature-copy h2{margin:.5rem 0;font-size:2.8rem}.feature-copy p{color:var(--body-copy);font-size:1.2rem;line-height:1.7}.btn-visit{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 72%, white 6%), color-mix(in srgb, var(--accent) 84%, black 16%));color:#fefaff;border-radius:var(--radius-btn);border:1px solid color-mix(in srgb, var(--accent) 72%, white 28%);box-shadow:0 10px 26px color-mix(in srgb, var(--accent-glow) 75%, transparent), inset 0 1px 0 #ffffff57;transition:transform .32s var(--ease-cinematic), box-shadow .32s var(--ease-cinematic);align-items:center;gap:.6rem;margin-top:1rem;padding:.7rem 1rem;font-weight:700;display:inline-flex}.btn-visit:hover{transform:translateY(-2px)scale(1.01)}.btn-visit svg{width:24px}.articles-page{max-width:1240px;margin:0 auto}.article-card,.mobile-second-card{border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--panel-shadow);background:color-mix(in srgb, var(--surface) 80%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:560px;padding:1rem;display:none}.article-card img,.mobile-second-card img{border-radius:10px;width:100%}.article-card h2,.mobile-second-card h2{margin:1rem 0 .8rem;font-size:2rem}.article-card p,.mobile-second-card p{color:var(--body-copy);font-size:1.15rem;line-height:1.68}.article-card strong,.mobile-second-card strong{color:var(--accent)}.desktop-feature-row h2{text-align:center;margin:.6rem 0 1.2rem;font-size:3rem}.article-list-item{border:1px solid var(--line);box-shadow:var(--panel-shadow);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.15rem;padding:1.2rem 1rem;font-size:1.25rem;display:flex}.article-list-item time{color:var(--accent);white-space:nowrap;font-size:1rem}.article-card-link{color:inherit;text-decoration:none;display:block}.article-list-item-link{width:100%;color:inherit;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none;display:flex}.articles-linkedin-more{text-align:center;margin:1.35rem 0 0;font-size:1rem}.articles-linkedin-more a{color:var(--accent);font-weight:600;text-decoration:none}.articles-linkedin-more a:hover{text-decoration:underline}.articles-list-mobile{display:none}.heading-word{display:inline-block}.btn-resume:focus-visible,.btn-visit:focus-visible,.theme-toggle:focus-visible,.nav-link:focus-visible,.bottom-nav-link:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 48%, transparent), 0 0 0 5px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}}@media (width<=960px){.articles-list-desktop{display:none}.articles-list-mobile{display:block}.route-shell{margin-top:24px}.desktop-shell{display:none}.mobile-shell{padding:0 1.2rem calc(5.25rem + env(safe-area-inset-bottom,0px));display:block}.cinema-grain,.cinema-vignette{opacity:.03}.mobile-top{z-index:8;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;padding:1rem 0;display:flex;position:sticky;top:0}.mobile-bottom-nav{z-index:24;padding:.35rem .5rem calc(.45rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);justify-content:space-around;align-items:stretch;gap:.15rem;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-link{letter-spacing:.04em;text-transform:uppercase;text-align:center;min-width:0;color:var(--body-copy);border-radius:10px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:.15rem;padding:.35rem .2rem;font-size:.68rem;font-weight:600;line-height:1.15;text-decoration:none;transition:color .2s,background .2s;display:flex}.bottom-nav-link.active{color:var(--panel-fg);background:color-mix(in srgb, var(--accent-glow) 22%, transparent)}.bottom-nav-link__icon{justify-content:center;align-items:center;line-height:0;display:flex}.bottom-nav-icon{flex-shrink:0;width:1.35rem;height:1.35rem}.bottom-nav-link__label{max-width:100%}.mobile-circle-text{width:58px;height:58px;position:relative}.mobile-circle-text img{width:100%;animation:18s linear infinite spin}.mobile-circle-text .hire-chip{width:38px;height:38px;font-size:.7rem}.home-grid,.feature-card{grid-template-columns:1fr}.resume-hero{text-align:center;grid-template-columns:1fr;padding-top:.5rem}.resume-hero__visual{max-width:240px;margin:0 auto}.resume-hero__copy{text-align:center}.resume-hero__headline,.resume-hero__location{margin-left:auto;margin-right:auto}.resume-hero__actions,.resume-hero__social{justify-content:center}.resume-section{grid-template-columns:1fr;gap:1rem}.resume-section__label{align-items:baseline;gap:1rem;display:flex;position:static}.resume-section__index{margin-bottom:0}.home-grid{gap:1.2rem}.home-projects-marquee .projects-marquee-heading{text-align:center}.hero-image-wrap{order:1}.hero-copy{text-align:center;order:2}.hero-copy h1,.projects-page h1,.articles-page h1{margin-top:.5rem;font-size:3.3rem}.hero-copy p{font-size:.95rem;line-height:1.62}.hero-actions{justify-content:center}.hire-circle,.bulb-icon{display:none}.projects-page h1,.articles-page h1{text-align:center;font-size:3rem}.resume-hero__title{font-size:2.35rem}.feature-copy h2{font-size:2.25rem}.feature-copy span{font-size:2rem}.article-card{display:block}.desktop-feature-row{margin-top:2rem}.desktop-feature-row h2{font-size:2.2rem}.article-list-item{padding:.9rem;font-size:1rem}.feature-card,.article-card,.mobile-second-card,.resume-exp-card{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}}
