@font-face{font-family: "DM Sans";src: url("fonts/dm-sans-latin-wght-normal.woff2") format("woff2-variations");font-weight: 100 1000;font-style: normal;font-display: swap}:root{--bg: #fbfaf7;--bg-alt: #f2f5f4;--surface: #ffffff;--text: #15201e;--text2: #4b5855;--line: #dfe5e2;--accent: #1f7a70;--accent-strong: #2a9d8f;--accent2: #e76f51;--accent2-text: #b2462b;--focus: #15201e;--accent-soft: #e3f1ee;--accent-ink: #17675e;--on-accent: #ffffff;--overlay: rgba(12,31,29,0.85);--shadow: 0 1px 2px rgba(21,32,30,0.04),0 8px 24px rgba(21,32,30,0.06);--ink: #0c1f1d;--ink-line: #25403c;--on-ink: #eef5f3;--on-ink-2: #a9c2bd;--on-ink-nav: #cfe3df;--ink-accent: #5ccbbb;--ink-accent2: #f0896f;--ink-focus: #f4a28c;--radius: 14px;--font: "DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--wrap: 72rem;--header-h: 4rem}*,*::before,*::after{box-sizing: border-box}*{margin: 0;padding: 0}html{scroll-behavior: smooth;scroll-padding-top: 1rem;-webkit-text-size-adjust: 100%}body{font-family: var(--font);font-size: 1.0625rem;line-height: 1.65;color: var(--text);background: var(--bg);-webkit-font-smoothing: antialiased;text-rendering: optimizeLegibility}img{display: block;max-width: 100%;height: auto}ul,ol{list-style: none}a{color: var(--accent);text-underline-offset: 0.2em;text-decoration-thickness: 1px}a:hover{text-decoration-thickness: 2px}:focus-visible{outline: 3px solid var(--focus);outline-offset: 3px;border-radius: 4px}h1,h2,h3{line-height: 1.15;letter-spacing: -0.02em;font-weight: 700}.sr-only{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap;border: 0}.skip-link{position: absolute;left: 1rem;top: -4rem;z-index: 100;background: var(--accent);color: var(--on-accent);padding: 0.6rem 1rem;border-radius: 8px}.skip-link:focus{top: 1rem}.icon{flex: none;width: 1.15em;height: 1.15em}.eyebrow{font-size: 0.8rem;font-weight: 700;letter-spacing: 0.12em;text-transform: uppercase;color: var(--accent)}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto}*,*::before,*::after{transition-duration: 0.01ms !important}}.wrap{width: 100%;max-width: var(--wrap);margin-inline: auto;padding-inline: clamp(1rem,4vw,2rem)}.site-header{--focus: var(--ink-focus);position: absolute;top: 0;left: 0;right: 0;z-index: 50}.header-bar{height: var(--header-h);display: flex;align-items: center;justify-content: flex-end;gap: 1rem}.site-nav{display: flex;align-items: center;gap: 1.5rem}.site-nav ul{display: flex;gap: 1.25rem}.site-nav ul a{color: var(--on-ink-nav);text-decoration: none;font-weight: 500;font-size: 0.95rem;padding: 0.4rem 0;border-bottom: 2px solid transparent}.site-nav ul a:hover,.site-nav ul a[aria-current]{color: #fff;border-bottom-color: var(--ink-accent)}.site-nav .btn-primary{background: var(--accent-strong);color: var(--ink)}.nav-toggle{--fab-right: max(1rem,calc((100vw - var(--wrap)) / 2 + 1rem));display: none;position: fixed;top: 0.9rem;right: var(--fab-right);z-index: 60;width: 48px;height: 48px;border-radius: 50%;border: 1px solid var(--ink-line);background: var(--ink);color: var(--on-ink);box-shadow: 0 6px 18px rgba(12,31,29,0.28);cursor: pointer;align-items: center;justify-content: center}.nav-toggle .icon-close{display: none}.nav-open .nav-toggle .icon-open{display: none}.nav-open .nav-toggle .icon-close{display: block}@media (max-width: 860px){.js .nav-toggle{display: inline-flex}.js .site-nav{position: fixed;top: 4.5rem;right: max(1rem,calc((100vw - var(--wrap)) / 2 + 1rem));width: min(280px,calc(100vw - 2rem));flex-direction: column;align-items: stretch;gap: 1rem;padding: 0.75rem 1.25rem 1.25rem;background: var(--ink);border: 1px solid var(--ink-line);border-radius: 18px;box-shadow: 0 16px 32px rgba(12,31,29,0.3);opacity: 0;transform: translateY(-8px);visibility: hidden;transition: opacity 0.2s ease,transform 0.2s ease,visibility 0.2s}.js.nav-open .site-nav{opacity: 1;transform: none;visibility: visible}.js .site-nav ul{flex-direction: column;gap: 0}.js .site-nav ul a{display: block;padding: 0.7rem 0;border-bottom: 1px solid var(--ink-line);font-size: 1.05rem}.js .header-bar{height: 0}.no-js .site-nav ul{flex-wrap: wrap;gap: 0.5rem 1rem}.no-js .header-bar{height: auto;padding-block: 0.75rem;flex-wrap: wrap}}@media (min-width: 861px){.js.scrolled .nav-toggle{display: inline-flex}.js.scrolled .site-nav{position: fixed;top: 4.5rem;right: max(1rem,calc((100vw - var(--wrap)) / 2 + 1rem));width: 280px;flex-direction: column;align-items: stretch;gap: 1rem;padding: 0.75rem 1.25rem 1.25rem;background: var(--ink);border: 1px solid var(--ink-line);border-radius: 18px;box-shadow: 0 16px 32px rgba(12,31,29,0.3);opacity: 0;transform: translateY(-8px);visibility: hidden}.js.scrolled.nav-open .site-nav{opacity: 1;transform: none;visibility: visible;transition: opacity 0.2s ease,transform 0.2s ease}.js.scrolled .site-nav ul{flex-direction: column;gap: 0}.js.scrolled .site-nav ul a{display: block;padding: 0.7rem 0;border-bottom: 1px solid var(--ink-line);font-size: 1.05rem}}.btn{display: inline-flex;align-items: center;gap: 0.5rem;min-height: 48px;padding: 0.75rem 1.25rem;border-radius: 999px;font-weight: 600;font-size: 1rem;text-decoration: none;border: 1.5px solid transparent;transition: transform 0.15s ease,box-shadow 0.15s ease,background-color 0.15s ease}.btn:hover{transform: translateY(-1px);box-shadow: var(--shadow)}.btn-primary{background: var(--accent);color: var(--on-accent)}.btn-ghost{color: var(--text);border-color: var(--line);background: var(--surface)}.btn-ghost:hover{border-color: var(--accent)}.btn-small{min-height: 40px;padding: 0.45rem 0.95rem;font-size: 0.9rem}.section{padding-block: clamp(4rem,9vw,7rem)}.section-alt{background: var(--bg-alt)}.section-head{margin-bottom: clamp(2rem,4vw,3rem)}.section-head h2,.section-contact h2{font-size: clamp(2rem,4.5vw,3rem);display: flex;align-items: center;gap: 0.9rem}.section-head h2::before,.section-contact h2::before{content: "";width: 2.5rem;height: 4px;border-radius: 2px;background: var(--accent2);flex: none}.site-footer{border-top: 1px solid var(--line);padding-block: 2.5rem;color: var(--text2);font-size: 0.9rem}.footer-bar{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0.5rem 1.5rem}@media (prefers-reduced-motion: no-preference){.reveal-ready .reveal:not(.is-visible){opacity: 0;transform: translateY(16px)}.reveal-ready .reveal{transition: opacity 0.6s ease,transform 0.6s ease}}.not-found{min-height: 70vh;display: grid;align-content: center;gap: 1rem}.not-found h1{font-size: clamp(2.5rem,7vw,4.5rem)}.hero{--focus: var(--ink-focus);padding-block: calc(var(--header-h) + clamp(1.5rem,5vw,3.5rem)) clamp(2.5rem,5vw,3.5rem);position: relative;overflow: hidden;isolation: isolate;background: var(--ink);color: var(--on-ink)}.hero .eyebrow{color: var(--ink-accent2)}.hero::before{content: "";position: absolute;top: 0;right: -10%;width: 60vw;height: 60vw;max-width: 760px;max-height: 760px;background: radial-gradient(circle at 50% 50%,rgba(42,157,143,0.35) 0%,transparent 55%);z-index: -1;pointer-events: none}.hero-grid{display: grid;grid-template-columns: minmax(0,1.5fr) minmax(0,1fr);gap: clamp(2rem,5vw,4rem);align-items: center}.hero h1{font-size: clamp(2.75rem,8vw,5.5rem);letter-spacing: -0.045em;line-height: 1;margin: 0.75rem 0 0.75rem}.hero-role{font-size: clamp(1.2rem,2.6vw,1.6rem);font-weight: 600;color: var(--ink-accent);margin-bottom: 1.25rem}.hero-lead{font-size: clamp(1.15rem,2.2vw,1.4rem);line-height: 1.45;max-width: 40ch;margin-bottom: 2rem}.hero-actions{display: flex;flex-wrap: wrap;gap: 0.75rem}.hero-portrait{justify-self: center}.avatar{display: block;padding: 0;border: 0;background: none;cursor: default;border-radius: 50%;-webkit-tap-highlight-color: transparent;user-select: none;width: clamp(200px,30vw,360px);aspect-ratio: 1;position: relative}.avatar::after{content: "";position: absolute;inset: -10px;border-radius: 50%;border: 2px solid var(--accent-strong);border-right-color: var(--accent2);border-bottom-color: var(--accent2);transition: transform 0.6s ease}.avatar img{width: 100%;height: 100%;object-fit: cover;border-radius: 50%}.facts{margin-top: clamp(2.5rem,6vw,4rem);display: grid;grid-template-columns: repeat(4,minmax(0,1fr));border-top: 1px solid var(--ink-line)}.facts li{padding: 1.25rem 1.25rem 1.25rem 0;display: flex;flex-direction: column;gap: 0.25rem}.facts li + li{padding-left: 1.25rem;border-left: 1px solid var(--ink-line)}.fact-value{font-size: clamp(1.75rem,4vw,2.75rem);font-weight: 700;letter-spacing: -0.03em;line-height: 1;color: #fff}.fact-label{color: var(--on-ink-2);font-size: 0.95rem;line-height: 1.4}@media (max-width: 760px){.js .hero{padding-top: 4.5rem}.hero::before{display: none}.hero-grid{grid-template-columns: 1fr}.hero-portrait{order: -1;justify-self: start}.avatar{width: 128px}.avatar::after{inset: -6px}.facts{grid-template-columns: repeat(2,minmax(0,1fr))}.facts li{padding: 1rem 1rem 1rem 0}.facts li + li{padding-left: 0;border-left: 0}.facts li:nth-child(even){padding-left: 1rem;border-left: 1px solid var(--ink-line)}.facts li:nth-child(n + 3){border-top: 1px solid var(--ink-line)}}.hero .btn-primary{background: var(--accent-strong);color: var(--ink)}.hero .btn-ghost{background: transparent;color: var(--on-ink);border-color: var(--ink-line)}.hero .btn-ghost:hover{border-color: var(--ink-accent)}.about-copy{max-width: 46rem;display: grid;gap: 1.1rem;font-size: 1.125rem}.about-copy p:first-child{font-size: clamp(1.2rem,2vw,1.35rem);line-height: 1.45;color: var(--text);font-weight: 500}.about-copy p{color: var(--text2)}.strengths{margin-top: clamp(2.5rem,5vw,3.5rem);display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 1.25rem}.strength{background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);padding: 1.5rem}.strength-index{display: block;font-size: 0.85rem;font-weight: 700;color: var(--accent2-text);margin-bottom: 0.75rem;letter-spacing: 0.08em}.strength h3{font-size: 1.2rem;margin-bottom: 0.5rem}.strength ul{display: grid;gap: 0.35rem}.strength li{color: var(--text2);font-size: 1rem;padding-left: 1rem;position: relative}.strength li::before{content: "";position: absolute;left: 0;top: 0.65em;width: 6px;height: 2px;background: var(--accent-strong)}@media (max-width: 860px){.strengths{grid-template-columns: 1fr}}.timeline{display: grid;gap: 0}.job{display: grid;grid-template-columns: 12rem minmax(0,1fr);gap: 2rem;padding-block: 2rem;border-top: 1px solid var(--line)}.job:last-child{border-bottom: 1px solid var(--line)}.job-dates{font-weight: 600;color: var(--text2);font-variant-numeric: tabular-nums;padding-top: 0.2rem}.job h3{font-size: clamp(1.3rem,2.4vw,1.6rem)}.job-company{font-weight: 500;color: var(--text2);margin: 0.25rem 0 0.75rem}.job-note{font-size: 1.05rem;color: var(--text);border-left: 3px solid var(--accent2);padding-left: 0.9rem;margin-bottom: 1rem}.job ul{display: grid;gap: 0.6rem;max-width: 48rem}.job li{position: relative;padding-left: 1.25rem;color: var(--text2)}.job li::before{content: "";position: absolute;left: 0;top: 0.7em;width: 6px;height: 6px;border-radius: 50%;background: var(--accent-strong)}@media (max-width: 760px){.job{grid-template-columns: 1fr;gap: 0.5rem}}.stack{font-size: 0.9rem;font-weight: 600;color: var(--accent) !important}.cards{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 1.25rem;align-items: stretch}.card{background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);padding: 1.5rem;display: grid;align-content: start;gap: 0.6rem}.card h3{font-size: 1.2rem}.card p:not(.stack){color: var(--text2);font-size: 1rem}@media (max-width: 960px){.cards{grid-template-columns: 1fr}}.skill-groups{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 2rem}.skill-group h3{font-size: 1.05rem;margin-bottom: 1rem;padding-bottom: 0.6rem;border-bottom: 2px solid var(--accent-strong)}.chips{display: flex;flex-wrap: wrap;gap: 0.5rem}.chips li{background: var(--surface);border: 1px solid var(--line);border-radius: 999px;padding: 0.35rem 0.85rem;font-size: 0.95rem;font-weight: 500}@media (max-width: 860px){.skill-groups{grid-template-columns: 1fr}}.edu-list{display: grid;gap: 0.75rem;max-width: 46rem}.edu-list li{display: flex;align-items: center;gap: 0.85rem;background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);padding: 1rem 1.25rem;font-weight: 500}.edu-list .icon{color: var(--accent);width: 1.4em;height: 1.4em}.edu-label{margin: 2rem 0 0.75rem;font-size: 0.8rem;font-weight: 700;letter-spacing: 0.12em;text-transform: uppercase;color: var(--text2)}.section-contact{background: var(--bg-alt)}.contact-grid{display: grid;grid-template-columns: minmax(0,1.3fr) minmax(0,1fr);gap: clamp(2rem,6vw,5rem);align-items: center}.section-contact h2{margin-bottom: 1.5rem}.contact-intro{font-size: clamp(1.15rem,2.2vw,1.35rem);line-height: 1.5;max-width: 36rem}.contact-foot{color: var(--text2);margin-top: 1rem}.contact-list{display: grid;gap: 0.75rem}.contact-list li{display: flex;align-items: center;gap: 0.9rem;background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);padding: 1rem 1.25rem;font-weight: 500;min-height: 56px;overflow-wrap: anywhere}.contact-list .icon{color: var(--accent);width: 1.35em;height: 1.35em}.contact-list .contact-meta{background: none;border-color: transparent;padding-block: 0.4rem;min-height: 0;color: var(--text2)}@media (max-width: 760px){.contact-grid{grid-template-columns: 1fr}}#easter-egg{position: fixed;inset: 0;z-index: 9999;display: flex;align-items: center;justify-content: center;padding: 1.25rem;opacity: 0;visibility: hidden;pointer-events: none;transition: opacity 0.45s ease,visibility 0.45s ease}#easter-egg.visible{opacity: 1;visibility: visible;pointer-events: auto}.egg-backdrop{position: absolute;inset: 0;background: var(--overlay);backdrop-filter: blur(6px);border: none;cursor: pointer}.egg-stage.logo{position: relative;z-index: 1;width: min(360px,100%);padding: 2.75rem 1.75rem 2rem;display: flex;align-items: center;justify-content: center;background: var(--surface);border-radius: 16px;box-shadow: 0 24px 64px rgba(42,157,143,0.14),0 8px 24px rgba(0,0,0,0.06);overflow: visible}.egg-stage .frame{position: absolute;inset: 12px;box-sizing: border-box;pointer-events: none}.egg-stage .line{position: absolute;background-color: var(--accent);transform-origin: left center}.egg-stage .h-line{height: 3px;width: 0}.egg-stage .v-line{width: 3px;height: 0}.egg-stage .top{top: 0;left: 0}.egg-stage .right{top: 0;right: 0;transform-origin: right center}.egg-stage .bottom{bottom: 0;left: 0}.egg-stage .left{top: 0;left: 0}.egg-stage .square{position: absolute;width: 14px;height: 14px;transform: scale(0)}.egg-stage .top-left{background-color: var(--accent);top: 6px;left: 6px}.egg-stage .bottom-right{background-color: var(--accent2);bottom: 6px;right: 6px}.egg-core{position: relative;z-index: 1;text-align: center;max-width: 280px}.egg-stage .letters{display: inline-flex;align-items: center;justify-content: center;gap: 0.15em;margin-bottom: 0.65rem;font-family: "DM Sans","Roboto",sans-serif;font-size: 3.25rem;font-weight: 700;line-height: 1;letter-spacing: -0.04em;opacity: 0;transform: translateY(12px) scale(0.92)}.egg-stage .letter-f{color: var(--accent);transform: translateX(8px)}.egg-stage .letter-s{color: var(--accent2);transform: translateX(-8px)}#easter-egg.visible .egg-stage .letters{animation: egg-letters-in 0.75s cubic-bezier(0.22,1,0.36,1) 1.9s forwards}#easter-egg.visible .egg-stage .letter-f,#easter-egg.visible .egg-stage .letter-s{animation: egg-letter-merge 0.55s ease 2.35s forwards}.egg-tagline,.egg-hint{margin: 0;opacity: 0;transform: translateY(8px)}.egg-tagline{font-size: 1.05rem;font-weight: 600;color: var(--text)}.egg-hint{margin-top: 0.5rem;font-size: 0.88rem;color: var(--text2);line-height: 1.45}.egg-cta{display: inline-block;margin-top: 1rem;padding: 0.55rem 1rem;border-radius: 6px;background: var(--accent);color: var(--on-accent);font-size: 0.9rem;font-weight: 600;opacity: 0;transform: translateY(8px)}.egg-cta:hover{color: var(--on-accent);transform: translateY(-1px);box-shadow: 0 6px 16px rgba(42,157,143,0.25)}#easter-egg.visible .egg-tagline{animation: egg-caption-in 0.55s ease 2.65s forwards}#easter-egg.visible .egg-hint{animation: egg-caption-in 0.55s ease 2.95s forwards}#easter-egg.visible .egg-cta{animation: egg-caption-in 0.55s ease 3.25s forwards}.noselect{-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none}@keyframes draw-h{to{width: 100%}}@keyframes draw-v{to{height: 100%}}@keyframes draw-h-reverse{from{width: 100%}to{width: 0}}@keyframes draw-v-reverse{from{height: 100%}to{height: 0}}@keyframes pop{to{transform: scale(1)}}@keyframes pop-reverse{from{transform: scale(1)}to{transform: scale(0)}}@keyframes egg-letters-in{to{opacity: 1;transform: translateY(0) scale(1)}}@keyframes egg-letter-merge{to{transform: translateX(0)}}@keyframes egg-caption-in{to{opacity: 1;transform: translateY(0)}}@keyframes egg-caption-out{from{opacity: 1;transform: translateY(0)}to{opacity: 0;transform: translateY(6px)}}@media (prefers-reduced-motion: reduce){#easter-egg.visible .egg-stage .letters,#easter-egg.visible .egg-stage .letter-f,#easter-egg.visible .egg-stage .letter-s,#easter-egg.visible .egg-tagline,#easter-egg.visible .egg-hint,#easter-egg.visible .egg-cta{animation: none !important;opacity: 1;transform: none}}.egg-stage:focus{outline: none}@media print{.site-header,.site-footer,.hero-actions,.hero::before,#easter-egg,.skip-link{display: none !important}body{background: #fff;color: #000;font-size: 11pt}.hero{background: none;color: #000}.hero .fact-value,.hero .fact-label{color: #000}.section,.hero{padding-block: 1.25rem}.section-alt,.section-contact{background: none}.reveal{opacity: 1 !important;transform: none !important}.job,.card,.strength{break-inside: avoid;box-shadow: none}a[href^="http"]::after{content: " (" attr(href) ")";font-size: 0.85em;color: #555}}