.section-module__QQ_nYW__sectionHeading{letter-spacing:-.02em;color:var(--text-primary);font-size:clamp(1.5rem,2.4vw,2.125rem);font-weight:500;line-height:1.1}
.Experience-module__2pCZCq__experience{flex-direction:column;gap:2.5rem;display:flex}.Experience-module__2pCZCq__heading{}.Experience-module__2pCZCq__roles{padding:0;list-style:none}.Experience-module__2pCZCq__role{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:2rem;padding:clamp(1.25rem,2.5vh,2rem) 0;display:flex}.Experience-module__2pCZCq__role:first-child{border-top:none;padding-top:0}.Experience-module__2pCZCq__title{letter-spacing:-.015em;color:var(--text-primary);font-size:clamp(1.125rem,1.8vw,1.5rem);font-weight:400;line-height:1.2}.Experience-module__2pCZCq__meta{text-align:right;flex-direction:column;align-items:flex-end;gap:.375rem;min-width:0;display:flex}.Experience-module__2pCZCq__company{letter-spacing:-.02em;color:var(--text-primary);font-size:clamp(1.25rem,2.1vw,1.75rem);font-weight:400;line-height:1.15}.Experience-module__2pCZCq__period{color:var(--text-secondary);font-size:.875rem;line-height:1.3}@media (max-width:48rem){.Experience-module__2pCZCq__role{flex-direction:column;gap:.5rem}.Experience-module__2pCZCq__meta{text-align:left;align-items:flex-start}.Experience-module__2pCZCq__company{color:var(--text-secondary);font-size:1.125rem}}
.Portrait-module__QHi2pG__placeholder{background-color:var(--surface-hover);width:100%;height:100%;display:block}.Portrait-module__QHi2pG__image{object-fit:cover;object-position:center;--portrait-grayscale:1;--portrait-brightness:.73;--portrait-contrast:1.1;width:100%;height:100%;filter:grayscale(var(--portrait-grayscale)) brightness(var(--portrait-brightness)) contrast(var(--portrait-contrast));display:block;position:absolute;inset:0}
.ToolCarousel-module__ukoi0a__viewport{width:100%;padding:2.25rem 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.ToolCarousel-module__ukoi0a__track{width:max-content;animation:ToolCarousel-module__ukoi0a__marquee var(--marquee-duration,18s) linear infinite;align-items:center;display:flex}@keyframes ToolCarousel-module__ukoi0a__marquee{to{transform:translate(-50%)}}.ToolCarousel-module__ukoi0a__tile{background-color:var(--surface-hover);border-radius:1rem;flex-shrink:0;place-items:center;width:3.5rem;height:3.5rem;margin-right:.75rem;display:grid;position:relative}.ToolCarousel-module__ukoi0a__logo{object-fit:contain;width:55%;height:55%}.ToolCarousel-module__ukoi0a__tile:after{content:attr(data-name);z-index:1;background-color:var(--text-primary);color:var(--canvas);letter-spacing:.005em;white-space:nowrap;opacity:0;pointer-events:none;border-radius:.5rem;padding:.3rem .5rem;font-size:.75rem;transition:opacity .16s,transform .16s cubic-bezier(.22,.61,.36,1);position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%,4px)}.ToolCarousel-module__ukoi0a__tile:hover:after{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.ToolCarousel-module__ukoi0a__tile:after{transition:opacity .12s;transform:translate(-50%)}}.ToolCarousel-module__ukoi0a__invertOnDark{filter:invert()}html[data-theme=light] .ToolCarousel-module__ukoi0a__invertOnDark{filter:none}html[data-theme=light] .ToolCarousel-module__ukoi0a__invertOnLight{filter:invert()}.ToolCarousel-module__ukoi0a__onLight{display:none}html[data-theme=light] .ToolCarousel-module__ukoi0a__onDark{display:none}html[data-theme=light] .ToolCarousel-module__ukoi0a__onLight{display:block}@media (max-width:40rem){.ToolCarousel-module__ukoi0a__tile{border-radius:.875rem;width:3rem;height:3rem}}@media (prefers-reduced-motion:reduce){.ToolCarousel-module__ukoi0a__track{animation:none}}
.BentoGrid-module__sXcQBG__grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem;width:100%;height:100%;display:grid}.BentoGrid-module__sXcQBG__about{grid-column:span 3}.BentoGrid-module__sXcQBG__portfolio{grid-column:span 9}.BentoGrid-module__sXcQBG__contact{grid-column:span 6}.BentoGrid-module__sXcQBG__portrait{grid-column:span 3;padding:0;overflow:hidden}.BentoGrid-module__sXcQBG__stack{grid-column:span 3;grid-template-rows:repeat(2,minmax(0,1fr));gap:.75rem;min-width:0;min-height:0;display:grid}.BentoGrid-module__sXcQBG__card{--glass-blur:14px;background-color:var(--surface-glass);min-width:0;height:100%;min-height:0;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:1.25rem;flex-direction:column;justify-content:flex-end;padding:1.5rem;transition:background-color .25s;display:flex;position:relative}a.BentoGrid-module__sXcQBG__card:hover{background-color:var(--surface-glass-hover)}a.BentoGrid-module__sXcQBG__card:focus-visible{outline:2px solid var(--emphasis);outline-offset:3px}.BentoGrid-module__sXcQBG__foot{justify-content:space-between;align-items:center;gap:1rem;display:flex}.BentoGrid-module__sXcQBG__label{letter-spacing:-.01em;color:var(--text-primary);font-size:1.0625rem}.BentoGrid-module__sXcQBG__arrow{width:1.125rem;height:1.125rem;color:var(--text-primary);flex-shrink:0;transition:transform .25s cubic-bezier(.22,.61,.36,1)}.BentoGrid-module__sXcQBG__card:hover .BentoGrid-module__sXcQBG__arrow{transform:translate(2px,-2px)}.BentoGrid-module__sXcQBG__tools{justify-content:center;align-items:center;padding-left:0;padding-right:0}html[data-intro=done] .BentoGrid-module__sXcQBG__card{animation:.5s cubic-bezier(.22,.61,.36,1) backwards BentoGrid-module__sXcQBG__card-in;animation-delay:calc(var(--card-index,0) * 70ms)}@keyframes BentoGrid-module__sXcQBG__card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html[data-intro=done] .BentoGrid-module__sXcQBG__card{animation:none}}@media (max-width:64rem){.BentoGrid-module__sXcQBG__grid{grid-template-rows:none;height:auto}.BentoGrid-module__sXcQBG__about,.BentoGrid-module__sXcQBG__portfolio{grid-column:span 6;min-height:18rem}.BentoGrid-module__sXcQBG__contact{grid-column:span 12;min-height:16rem}.BentoGrid-module__sXcQBG__portrait,.BentoGrid-module__sXcQBG__stack{grid-column:span 6;min-height:22rem}}@media (max-width:40rem){.BentoGrid-module__sXcQBG__about,.BentoGrid-module__sXcQBG__portfolio,.BentoGrid-module__sXcQBG__contact,.BentoGrid-module__sXcQBG__portrait,.BentoGrid-module__sXcQBG__stack{grid-column:span 12}.BentoGrid-module__sXcQBG__card{border-radius:1.25rem;padding:1.25rem}.BentoGrid-module__sXcQBG__about,.BentoGrid-module__sXcQBG__portfolio,.BentoGrid-module__sXcQBG__contact,.BentoGrid-module__sXcQBG__portrait{min-height:13rem}.BentoGrid-module__sXcQBG__stack{min-height:20rem}}
.HeroWord-module__jK6k5q__hero{position:relative}.HeroWord-module__jK6k5q__base,.HeroWord-module__jK6k5q__slot{opacity:0;transition:opacity .34s cubic-bezier(.4,0,.6,1),transform .4s cubic-bezier(.4,0,.7,1);display:block}.HeroWord-module__jK6k5q__base{transform:translateY(.42em)}.HeroWord-module__jK6k5q__slot{white-space:nowrap;position:absolute;top:0;left:50%;transform:translate(-50%,.42em)}.HeroWord-module__jK6k5q__base[data-active],.HeroWord-module__jK6k5q__slot[data-active]{opacity:1;transition:opacity .52s cubic-bezier(.4,0,.6,1) .14s,transform .72s cubic-bezier(.16,1,.3,1) .14s}.HeroWord-module__jK6k5q__base[data-active]{transform:none}.HeroWord-module__jK6k5q__slot[data-active]{transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.HeroWord-module__jK6k5q__base,.HeroWord-module__jK6k5q__slot,.HeroWord-module__jK6k5q__base[data-active],.HeroWord-module__jK6k5q__slot[data-active]{transition:opacity .16s}.HeroWord-module__jK6k5q__base,.HeroWord-module__jK6k5q__base[data-active]{transform:none}.HeroWord-module__jK6k5q__slot,.HeroWord-module__jK6k5q__slot[data-active]{transform:translate(-50%)}}
.Skills-module__1ONIjW__skills{flex-direction:column;gap:1.75rem;display:flex}.Skills-module__1ONIjW__heading{}.Skills-module__1ONIjW__chips{flex-wrap:wrap;gap:.625rem;max-width:50%;padding:0;list-style:none;display:flex}.Skills-module__1ONIjW__chip{background-color:var(--surface);color:var(--text-primary);white-space:nowrap;border-radius:.625rem;padding:.6rem 1rem;font-size:.9375rem;line-height:1.2}.Skills-module__1ONIjW__more{cursor:pointer;color:var(--text-secondary);border:none;transition:background-color .2s,color .2s}.Skills-module__1ONIjW__more:hover{background-color:var(--surface-hover);color:var(--text-primary)}.Skills-module__1ONIjW__more:focus-visible{outline:2px solid var(--emphasis);outline-offset:3px}@media (max-width:60rem){.Skills-module__1ONIjW__chips{max-width:none}}@media (max-width:40rem){.Skills-module__1ONIjW__chip{white-space:normal;padding:.5rem .8125rem;font-size:.875rem}}
.page-module__xgPmsG__body{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(1.5rem,3vw,3rem);display:grid}.page-module__xgPmsG__portrait{background-color:var(--surface);border-radius:1.25rem;position:relative;overflow:hidden}.page-module__xgPmsG__copy{flex-direction:column;gap:1.5em;display:flex}.page-module__xgPmsG__paragraph{letter-spacing:-.005em;color:var(--text-primary);text-wrap:pretty;font-size:clamp(1.0625rem,1.35vw,1.3125rem);line-height:1.65}@media (max-width:60rem){.page-module__xgPmsG__body{grid-template-columns:minmax(0,1fr)}.page-module__xgPmsG__portrait{aspect-ratio:16/10}}
.IntroSequence-module__nB-78W__overlay{z-index:10;background-color:var(--bg);justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}html[data-intro=skip] .IntroSequence-module__nB-78W__overlay{display:none}.IntroSequence-module__nB-78W__overlay[data-phase=leaving]{pointer-events:none}.IntroSequence-module__nB-78W__skip{opacity:0;animation:IntroSequence-module__nB-78W__word-in var(--intro-fade) cubic-bezier(.65, 0, .35, 1) var(--intro-lead-in) forwards;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:.5rem .875rem;font-size:.875rem;transition:color .15s,border-color .15s;position:absolute;top:1.5rem;right:1.5rem}.IntroSequence-module__nB-78W__skip:hover{color:var(--text-primary);border-color:var(--text-muted)}.IntroSequence-module__nB-78W__overlay[data-phase=leaving] .IntroSequence-module__nB-78W__skip{opacity:0;transition:opacity .2s ease-out}.IntroSequence-module__nB-78W__line{letter-spacing:-.02em;text-align:center;flex-wrap:wrap;justify-content:center;gap:.25em 0;max-width:100%;font-size:clamp(1.375rem,4.6vw,3.25rem);font-weight:500;line-height:1;display:flex;position:relative}.IntroSequence-module__nB-78W__group{flex-wrap:wrap;justify-content:center;gap:.25em .4em;padding-right:.4em;display:flex}.IntroSequence-module__nB-78W__word,.IntroSequence-module__nB-78W__payoff{opacity:0;animation:IntroSequence-module__nB-78W__word-in var(--intro-fade) cubic-bezier(.65, 0, .35, 1) var(--word-delay,0s) forwards}.IntroSequence-module__nB-78W__word{color:var(--text-secondary)}.IntroSequence-module__nB-78W__payoff{color:var(--emphasis);will-change:transform}@keyframes IntroSequence-module__nB-78W__word-in{to{opacity:1}}.IntroSequence-module__nB-78W__overlay[data-phase=leaving] .IntroSequence-module__nB-78W__payoff{opacity:1}.IntroSequence-module__nB-78W__overlay[data-phase=leaving] .IntroSequence-module__nB-78W__group{animation:IntroSequence-module__nB-78W__erase var(--intro-sweep) linear forwards}.IntroSequence-module__nB-78W__overlay[data-phase=leaving] .IntroSequence-module__nB-78W__payoff{transform-origin:0 0;animation:IntroSequence-module__nB-78W__design-sweep var(--intro-sweep) linear forwards, IntroSequence-module__nB-78W__design-to-hero var(--intro-flight) var(--intro-easing) var(--intro-flight-delay) forwards}@keyframes IntroSequence-module__nB-78W__erase{0%{clip-path:inset(0%);transform:none}to{transform:translateX(var(--converge,0));clip-path:inset(0% 100% 0% 0%)}}@keyframes IntroSequence-module__nB-78W__design-sweep{to{transform:translateX(var(--converge,0))}}@keyframes IntroSequence-module__nB-78W__design-to-hero{0%{transform:translateX(var(--converge,0))}to{transform:translate(var(--hero-dx,0), var(--hero-dy,0)) scale(var(--hero-scale,1))}}@media (prefers-reduced-motion:reduce){.IntroSequence-module__nB-78W__word,.IntroSequence-module__nB-78W__payoff,.IntroSequence-module__nB-78W__overlay[data-phase=leaving] .IntroSequence-module__nB-78W__group,.IntroSequence-module__nB-78W__overlay[data-phase=leaving] .IntroSequence-module__nB-78W__payoff{opacity:1;animation:none}.IntroSequence-module__nB-78W__overlay[data-phase=leaving]{transition:none}}
