@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--font-sans:"Manrope", "Segoe UI", sans-serif;--font-heading:"Fraunces", Georgia, serif;--ink:#f5f5f4;--muted-ink:#d6d3d1;--line-soft:#ffffff24;--line-emerald:#34d39973;--surface-main:#1c1917bd}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font-sans);color:var(--ink);background-color:#0f0f0f}.font-heading{font-family:var(--font-heading)}.nameplate-rigid{font-family:var(--font-sans);letter-spacing:.09em;text-transform:uppercase;font-weight:800}.glass-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#292524db,#1c1917cc)}.sleek-surface{border:1px solid var(--line-soft);background:linear-gradient(165deg,#292524e0,#1c1917d6);box-shadow:0 16px 34px #0006}.sleek-nav-link{color:var(--muted-ink);transition:color .18s;position:relative}.sleek-nav-link:after{content:"";transform-origin:0;background:linear-gradient(90deg,#10b981,#047857);border-radius:999px;width:100%;height:2px;transition:transform .18s;position:absolute;bottom:-.35rem;left:0;transform:scaleX(0)}.sleek-nav-link:hover,.sleek-nav-link.is-active{color:#f5f5f4}.sleek-nav-link.is-active:after,.sleek-nav-link:hover:after{transform:scaleX(1)}.sleek-cta{border:1px solid var(--line-emerald);color:#fff;background:linear-gradient(130deg,#10b981,#059669);box-shadow:0 10px 24px #0596693d}.sleek-outline{border:1px solid var(--line-soft);color:#e7e5e4;background:#1c19178f}.sleek-outline:hover{color:#a7f3d0;border-color:#34d3998c}.portfolio-panel{opacity:0;max-height:0;transition:max-height .42s,opacity .26s,transform .42s;overflow:hidden;transform:translate(-14px)}details[open]>.portfolio-panel{opacity:1;max-height:1800px;transform:translate(0)}.action-stack{flex-direction:column;gap:.7rem;width:100%;max-width:22rem;display:flex}.swipe-btn{text-align:center;background:#1c1917e0;border:1px solid #34d39961;border-radius:.6rem;width:100%;padding:.78rem 1rem;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s;display:block;position:relative;overflow:hidden}.swipe-btn:before{content:"";z-index:0;background:linear-gradient(90deg,#a7f3d0,#6ee7b7);transition:transform .38s cubic-bezier(.19,1,.22,1);position:absolute;inset:0;transform:translate(-102%)}.swipe-btn:hover,.swipe-btn:focus-visible{border-color:#a7f3d0e6;transform:translateY(-2px);box-shadow:0 12px 24px #00000059}.swipe-btn.is-active{border-color:#a7f3d0e6;box-shadow:0 12px 24px #00000059}.swipe-btn:hover:before,.swipe-btn:focus-visible:before,.swipe-btn.is-active:before{transform:translate(0)}.swipe-btn__label{z-index:1;color:#fff;letter-spacing:.01em;mix-blend-mode:difference;font-size:.9rem;font-weight:700;position:relative}.swipe-btn--primary{border-color:#34d399b3}.swipe-btn--secondary{border-color:#34d39973}.swipe-btn--tertiary{border-color:#ffffff3d}.swipe-btn--tab{text-align:left;padding:.72rem .9rem}.swipe-btn--tab .swipe-btn__label{letter-spacing:.03em;text-transform:uppercase;font-size:.82rem;display:block}.resume-split{text-align:center;justify-content:center;align-items:center;gap:.45rem;display:flex}.resume-split__label,.resume-split__divider,.resume-split__link{z-index:1;color:#fff;mix-blend-mode:difference;position:relative}.resume-split__label{letter-spacing:.01em;font-size:.9rem;font-weight:700}.resume-split__divider{opacity:.8}.resume-split__link{font-size:.9rem;font-weight:700;text-decoration:none}.resume-split__link:hover,.resume-split__link:focus-visible{text-underline-offset:3px;text-decoration:underline}.dot-pattern-bg{opacity:.7;will-change:transform;backface-visibility:hidden;background-image:radial-gradient(#34d39959 1px,#0000 1px);background-size:26px 26px;animation:8s linear infinite dotDrift;transform:translate(0,0);-webkit-mask-image:radial-gradient(circle at 50% 40%,#000 35%,#0000 95%);mask-image:radial-gradient(circle at 50% 40%,#000 35%,#0000 95%)}.animate-fade-in{animation:.7s ease-out fadeIn}.carousel-fade-in{animation:.7s ease-out simpleFade}.headline-reveal{opacity:0;animation:.8s cubic-bezier(.2,.8,.2,1) forwards headlineReveal;transform:translateY(18px)scale(.985)}.typing-caret{animation:.9s step-end infinite caretBlink}.logo-slider-panel{background:linear-gradient(90deg,#1c1917ed,#111827e0);align-items:center;display:flex;overflow:hidden}.logo-slider-fade{-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 12% 88%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 12% 88%,#0000 100%)}.logo-slider-track{align-items:center;gap:.55rem;width:max-content;animation:17s linear infinite logoSlide;display:flex}.logo-pill{white-space:nowrap;border-radius:9999px;justify-content:center;align-items:center;min-width:104px;height:48px;padding:.5rem 1rem;display:flex}.logo-pill__img{filter:grayscale()brightness(1.72)contrast(.8);opacity:.84;object-fit:contain;width:auto;max-width:96px;height:auto;max-height:40px}.logo-pill__button{border-radius:inherit;cursor:zoom-in;background:0 0;border:0;justify-content:center;align-items:center;width:100%;height:100%;padding:0;display:flex}.logo-pill__button:focus-visible{outline-offset:3px;outline:2px solid #a7f3d0f2}.media-lightbox{animation:.22s ease-out lightboxBackdropIn}.media-lightbox__panel{animation:.24s cubic-bezier(.2,.8,.2,1) lightboxPanelIn}@media (prefers-reduced-motion:reduce){.headline-reveal{opacity:1;animation:none;transform:none}.typing-caret{opacity:1;animation:none}.dot-pattern-bg,.logo-slider-track,.media-lightbox,.media-lightbox__panel{animation:none}.swipe-btn,.swipe-btn:before{transition:none}.swipe-btn:hover,.swipe-btn:focus-visible{transform:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes simpleFade{0%{opacity:0}to{opacity:1}}@keyframes headlineReveal{0%{opacity:0;filter:blur(2px);transform:translateY(18px)scale(.985)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes caretBlink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes dotDrift{0%{transform:translate(0,0)}to{transform:translate(26px,14px)}}@keyframes logoSlide{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes lightboxBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes lightboxPanelIn{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}
