@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/montserrat-latin.woff2') format('woff2')}
@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/montserrat-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{font-family:Montserrat,Arial,sans-serif;color-scheme:dark;--bg:#1e1e1f;--text:#e5e5e8;--muted:#b5b5bd;--accent:#88c7ec;--line:#444448;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1rem}body{margin:0;font-size:1rem;line-height:1.75}a{color:inherit;text-underline-offset:.3em}a:hover{color:var(--accent)}button{font:inherit;color:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:2px}main:focus{outline:none}::selection{background:var(--accent);color:var(--bg)}[hidden]{display:none!important}
.skip-link{position:fixed;left:1rem;top:-8rem;z-index:10;padding:.7rem 1.2rem;background:var(--text);color:var(--bg)}.skip-link:focus{top:1rem;color:var(--bg)}
.site-header,.site-footer{width:min(76%,1120px);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;position:relative;z-index:1}.site-header{height:64px;font-size:.82rem;justify-content:flex-end}.site-header a{text-decoration:none}.wordmark{font-weight:600;letter-spacing:.015em}.header-cv{display:flex;gap:.6rem;align-items:center;min-height:44px;color:var(--muted)}
main{position:relative;z-index:1;width:min(70%,1040px);margin-inline:auto}section{padding-block:3rem;scroll-margin-top:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.16;font-weight:600;letter-spacing:-.04em}h1{font-size:clamp(3.5rem,6.2vw,6rem);margin-bottom:1.25rem;letter-spacing:-.055em}h2{font-size:clamp(2.5rem,4.1vw,4rem);margin-bottom:3rem}h3{font-size:1.55rem;line-height:1.3;letter-spacing:-.025em}p{margin-bottom:1.35rem}.muted{color:var(--muted)}.section-index{font-size:.75rem;color:var(--accent);letter-spacing:.12em;margin-bottom:1.2rem;font-weight:500}
.hero{min-height:min(760px,calc(85svh - 64px));display:flex;align-items:center;position:relative;padding-block:3rem 5rem}.eyebrow{font-size:.8rem;letter-spacing:.1em;color:var(--muted);margin-bottom:2rem}.hero-role{font-size:clamp(1.3rem,2.4vw,2rem);font-weight:400;line-height:1.45}.hero-support{font-size:clamp(1.1rem,1.65vw,1.4rem);max-width:700px;color:var(--muted);font-weight:300;line-height:1.7;margin-top:1.5rem}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.8rem;margin-top:2.5rem;font-size:.85rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.65rem 1.3rem;border:1px solid #77777d;border-radius:3px;text-decoration:none;font-weight:500}.button:hover{border-color:var(--accent)}.button.primary{color:#18232a;background:var(--accent);border-color:var(--accent)}.button.primary:hover{background:#b7dff6}.text-link{padding-block:.7rem}.scroll-cue{position:absolute;bottom:2rem;left:0;width:44px;min-height:44px;display:grid;place-items:center;text-decoration:none;font-size:1.5rem;color:var(--muted)}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) 36%;gap:4rem;align-items:start}.profile-copy{font-size:1.15rem;font-weight:300;line-height:1.8}.profile-copy p:first-child{color:var(--text);font-weight:400}.portrait-wrap{padding-top:.4rem}.portrait{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:50%;border:1.5px solid #d0d0d5;background:var(--bg);object-fit:cover}.portrait-wrap picture{display:block;max-width:360px}
.experience-entry{display:grid;grid-template-columns:24% minmax(0,1fr);gap:2rem;border-top:1px solid var(--line);padding-block:2.5rem}.experience-entry:last-child{padding-bottom:0}.experience-meta{font-size:.78rem;color:var(--muted);padding-top:.3rem}.experience-meta p{margin-bottom:.3rem}.experience-body h3{margin-bottom:.65rem}.role{color:var(--accent);font-size:.96rem;font-weight:500;margin-bottom:1.5rem}.experience-body ul{margin:0;padding-left:1.15rem;color:#d0d0d5;font-size:.95rem}.experience-body li{padding-left:.3rem;margin-bottom:.6rem}.experience-body li::marker{color:#888890;font-size:.7em}.experience-body>p:last-child{color:#d0d0d5;margin-bottom:0}.skill-list{margin:0}.skill-list>div{display:grid;grid-template-columns:36% minmax(0,1fr);gap:2rem;padding-block:1.8rem;border-top:1px solid var(--line)}dt{font-weight:500}.skill-list dt{font-size:1.08rem}.skill-list dd{margin:0;color:#d0d0d5;line-height:1.9}.education-entry{padding-block:1.75rem;border-top:1px solid var(--line)}.education-entry h3{font-size:1.25rem;letter-spacing:-.015em;max-width:760px;margin-bottom:.8rem}.education-entry p{margin-bottom:.45rem}.qualification{color:var(--accent);font-size:.97rem}.education-entry .muted{font-size:.84rem}.languages-heading{font-size:1.7rem;margin-top:3rem;margin-bottom:1.75rem}.language-list{display:flex;gap:2rem 5rem;flex-wrap:wrap}.language-list dd{margin:0;color:var(--muted);font-size:.9rem}.project{padding-block:2rem;border-top:1px solid var(--line)}
.contact{display:flex;flex-direction:column;padding-block:3rem 5rem}.contact h2{margin-bottom:2rem}.contact-copy{max-width:620px;font-size:1.2rem;color:var(--muted);font-weight:300}.email{font-size:clamp(1.7rem,3.5vw,3.2rem);letter-spacing:-.025em;text-decoration:none;overflow-wrap:anywhere;align-self:start}.site-footer{padding-block:2rem;border-top:1px solid var(--line);font-size:.72rem;color:var(--muted)}.motion-toggle{border:0;background:none;text-decoration:underline;text-underline-offset:.3em;cursor:pointer;min-height:44px;padding:.3rem}
.section-nav{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:3}.section-nav ul{list-style:none;margin:0;padding:0}.section-nav a{display:flex;align-items:center;justify-content:end;gap:12px;min-height:44px;min-width:44px;text-decoration:none;font-size:.7rem}.section-nav i{display:block;flex-shrink:0;width:13px;height:13px;border:1.5px solid #c6c6cb;border-radius:3px}.section-nav span{opacity:0;background:var(--bg);padding-inline:5px}.section-nav a:hover span,.section-nav a:focus-visible span{opacity:1}.section-nav a[aria-current] i{background:var(--accent);border-color:var(--accent)}
.dust{position:fixed;inset:-110px;pointer-events:none;z-index:0;background:url('/assets/dust.svg') repeat;opacity:.8;animation:drift 24s linear infinite alternate;animation-play-state:paused}html[data-motion="on"] .dust{animation-play-state:running}@keyframes drift{to{transform:translate3d(72px,-96px,0)}}
@media(min-width:1800px){.section-nav{right:4vw}}
@media(max-width:1000px){main{width:78%}.site-header,.site-footer{width:84%}.about-grid{gap:2rem}.experience-entry{grid-template-columns:25% minmax(0,1fr)}.section-nav{right:12px}.skill-list>div{grid-template-columns:40% minmax(0,1fr);gap:1.5rem}}
@media(max-width:700px){html{scroll-padding-top:1rem}.site-header{height:64px;width:calc(100% - 40px)}main{width:calc(100% - 40px)}section{padding-block:2.25rem;scroll-margin-top:0}.section-nav{display:none}.section-nav ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.section-nav a{font-size:.75rem;padding:0 7px;min-height:44px;justify-content:center;gap:0}.section-nav span{opacity:1;padding:0}.section-nav i{display:none}.section-nav a[aria-current]{color:var(--accent);text-decoration:underline;text-underline-offset:.5em}.hero{min-height:0;padding-block:3rem 5rem}.eyebrow{font-size:.7rem;margin-bottom:1.5rem}h1{font-size:clamp(2.8rem,10.2vw,4.4rem);line-height:1.1;max-width:100%}h2{font-size:2.65rem;margin-bottom:2rem}.hero-role{font-size:1.3rem}.hero-support{font-size:1.07rem;font-weight:400}.actions{gap:.85rem 1.1rem;margin-top:2rem;font-size:.8rem}.button{padding:.6rem 1rem}.scroll-cue{bottom:1rem}.about-grid{grid-template-columns:1fr;gap:2rem}.profile-copy{font-size:1.04rem;font-weight:400}.portrait-wrap picture{width:240px;margin-inline:auto}.experience-entry{grid-template-columns:1fr;gap:.8rem;padding-block:1.8rem}.experience-meta{display:flex;gap:.35rem 1rem;flex-wrap:wrap;font-size:.73rem}.experience-body h3{font-size:1.35rem}.experience-body ul{font-size:.91rem}.role{font-size:.88rem;line-height:1.65}.skill-list>div{grid-template-columns:1fr;gap:.5rem;padding-block:1.5rem}.skill-list dt{font-size:1.04rem}.skill-list dd{font-size:.94rem}.education-entry h3{font-size:1.14rem}.language-list{gap:1rem 3rem}.contact{padding-block:2.25rem 4rem}.contact-copy{font-size:1.08rem;font-weight:400}.site-footer{width:calc(100% - 40px);flex-wrap:wrap;gap:.5rem 1.5rem}.site-footer>span{flex-basis:100%}.dust{opacity:.65}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dust,html[data-motion="on"] .dust{animation:none}.motion-toggle{display:none}}
@media print{.dust,.section-nav,.mobile-nav,.site-header,.site-footer,.actions,.scroll-cue{display:none}html,body{background:white;color:black}main{width:100%}section{padding:1rem 0;min-height:0}.hero{min-height:0}.experience-entry{break-inside:avoid}a{color:inherit}.hero-role,.hero-support,.role,.muted,.experience-body ul,.experience-meta,.skill-list dd{color:inherit}}


/* Mobile navigation is an on-demand native disclosure, not a permanent bar. */
.mobile-nav { display: none; }
@media (max-width: 700px) {
  .mobile-nav { display: block; position: fixed; right: 20px; bottom: 16px; z-index: 5; }
  .mobile-nav summary { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 8px 16px; border: 1px solid #77777d; border-radius: 3px; background: var(--bg); font-size: .82rem; cursor: pointer; list-style: none; }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav summary::after { content: '+'; color: var(--accent); font-size: 1.2rem; line-height: 1; }
  .mobile-nav[open] summary::after { content: '−'; }
  .mobile-nav nav { position: absolute; bottom: calc(100% + 8px); right: 0; width: 210px; max-height: calc(100svh - 100px); overflow-y: auto; padding: 8px; background: var(--bg); border: 1px solid var(--line); border-radius: 3px; }
  .mobile-nav ul { margin: 0; padding: 0; list-style: none; }
  .mobile-nav a { display: flex; align-items: center; min-height: 44px; padding: 8px 12px; font-size: .85rem; text-decoration: none; }
  .mobile-nav a:hover { background: #2b2b2e; }
  .site-footer { padding-bottom: 5rem; }
}
@media print { .mobile-nav { display: none; } }

/* Desktop sections fill a screen but can grow to fit all their content. */
@media screen and (min-width: 701px) {
  html { scroll-padding-top: 0; }
  .site-header { position: absolute; top: 0; left: 0; right: 0; z-index: 2; }
  .site-page main > section { min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; }
  .site-page main > .hero { align-items: stretch; }
}

@media screen and (max-width: 700px) {
  .site-page main > section { min-height: 100svh; }
  /* The non-sticky 64px header belongs to the first screen on mobile. */
  .site-page main > .hero { min-height: calc(100svh - 64px); }
}
