:root{--paper: #fcfbf8;--paper-soft: #f5f3ec;--ink: #1c1b18;--muted: #6b675e;--line: #e5e2d8;--accent: #2f5d45;--accent-soft: rgba(47, 93, 69, .08);--serif: "Newsreader", georgia, serif;--sans: "Inter", system-ui, sans-serif;--container: 1100px;--ease: cubic-bezier(.25, .6, .3, 1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:1.125rem;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent);color:var(--paper)}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.container{max-width:var(--container);margin:0 auto;padding:0 clamp(1.5rem,5vw,3rem)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#fcfbf8eb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s ease}.nav.scrolled{border-bottom-color:var(--line)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:76px}.nav-logo{font-family:var(--serif);font-weight:600;font-size:1.3rem;letter-spacing:-.01em}.nav-links{display:flex;gap:2.4rem;list-style:none}.nav-links a{font-family:var(--sans);font-size:.85rem;font-weight:500;color:var(--muted);padding:.4rem 0;position:relative;transition:color .25s ease}.nav-links a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.nav-links a:hover,.nav-links a.active{color:var(--ink)}.nav-links a:hover:after,.nav-links a.active:after{transform:scaleX(1)}.nav-mobile-btn{display:none;flex-direction:column;gap:6px;padding:10px 4px}.nav-mobile-btn span{width:24px;height:1.5px;background:var(--ink);transition:transform .3s ease}.nav-mobile-btn.open span:nth-child(1){transform:translateY(3.75px) rotate(45deg)}.nav-mobile-btn.open span:nth-child(2){transform:translateY(-3.75px) rotate(-45deg)}.nav-mobile-menu{position:fixed;inset:76px 0 auto 0;z-index:99;display:flex;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--line);overflow:hidden;max-height:0;transition:max-height .4s var(--ease)}.nav-mobile-menu.open{max-height:440px}.nav-mobile-menu a{padding:1.05rem clamp(1.5rem,5vw,3rem);font-family:var(--sans);font-size:.9rem;font-weight:500;color:var(--muted);border-top:1px solid var(--line)}.nav-mobile-menu a:hover{color:var(--ink)}.section{padding:clamp(5.5rem,11vw,9rem) 0;border-top:1px solid var(--line)}.section-header{margin-bottom:clamp(3rem,6vw,4.5rem)}.section-kicker{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem}.section-title{font-family:var(--serif);font-weight:500;font-size:clamp(2.1rem,4.5vw,3.2rem);line-height:1.12;letter-spacing:-.015em;max-width:22ch}.subheading{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:clamp(4rem,8vw,6rem) 0 2.4rem;padding-top:2.4rem;border-top:1px solid var(--line)}.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--sans);font-size:.92rem;font-weight:500;background:var(--ink);color:var(--paper);padding:.95rem 2rem;border-radius:2px;transition:background .25s ease}.btn:hover{background:var(--accent)}.inline-link{border-bottom:1px solid var(--line);transition:color .25s ease,border-color .25s ease}.inline-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.text-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-size:.92rem;font-weight:500;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:2px;transition:color .25s ease,border-color .25s ease}.text-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.visible{opacity:1;transform:translateY(0)}.hero{min-height:88svh;display:flex;align-items:center;padding:150px 0 90px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(3rem,7vw,6rem);align-items:center;width:100%}.intro{opacity:0;transform:translateY(16px);animation:intro-rise .9s var(--ease) forwards}.intro-1{animation-delay:.1s}.intro-2{animation-delay:.25s}.intro-3{animation-delay:.45s}.intro-4{animation-delay:.6s}@keyframes intro-rise{to{opacity:1;transform:translateY(0)}}.hero-kicker{display:flex;align-items:center;gap:.7rem;font-family:var(--sans);font-size:.85rem;font-weight:500;color:var(--muted);margin-bottom:2.2rem}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.hero-headline{font-family:var(--serif);font-weight:500;font-size:clamp(2.9rem,6.5vw,4.8rem);line-height:1.06;letter-spacing:-.02em;margin-bottom:2rem}.hero-headline em{font-style:italic;color:var(--accent)}.hero-lede{font-size:clamp(1.15rem,1.8vw,1.3rem);line-height:1.7;color:var(--muted);max-width:34rem;margin-bottom:2.8rem}.hero-actions{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.hero-figure{justify-self:end;width:min(360px,100%)}.hero-photo{width:100%;border-radius:3px;filter:saturate(.95);transition:filter .4s ease,transform .4s var(--ease)}.hero-figure:hover .hero-photo{filter:saturate(1.05);transform:translateY(-4px)}.hero-caption{font-family:var(--sans);font-size:.78rem;color:var(--muted);margin-top:.9rem}.journey-track{position:relative;max-width:44rem;padding:.5rem 0 .5rem 3.2rem}.journey-line,.journey-ink{position:absolute;left:8px;top:0;width:1px}.journey-line{height:100%;background:var(--line)}.journey-ink{height:0;background:var(--accent)}.milestone{position:relative;padding-bottom:clamp(3rem,6vw,4.5rem)}.milestone:last-child{padding-bottom:0}.milestone-marker{position:absolute;left:calc(-3.2rem + 8px);top:8px;width:11px;height:11px;border-radius:50%;background:var(--paper);border:1.5px solid var(--line);transform:translate(-50%);transition:border-color .4s ease,background .4s ease,box-shadow .4s ease}.milestone.passed .milestone-marker{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.milestone-year{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;transition:color .4s ease}.milestone.passed .milestone-year{color:var(--accent)}.milestone-title{font-family:var(--serif);font-weight:500;font-size:clamp(1.4rem,2.5vw,1.8rem);letter-spacing:-.01em;margin-bottom:.6rem}.milestone-text{color:var(--muted);max-width:36rem}.milestone-year,.milestone-title,.milestone-text,.milestone-cta{opacity:.25;transform:translateY(10px);transition:opacity .55s var(--ease),transform .55s var(--ease),color .4s ease}.milestone.passed .milestone-year,.milestone.passed .milestone-title,.milestone.passed .milestone-text,.milestone.passed .milestone-cta{opacity:1;transform:translateY(0)}.milestone-cta{margin-top:1rem}.figures-row{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,2.5rem);margin-bottom:clamp(4rem,8vw,6rem)}.figure{display:flex;flex-direction:column;gap:.4rem;padding-left:1.4rem;border-left:1px solid var(--line);transition:border-color .3s ease,opacity .7s var(--ease),transform .7s var(--ease)}.figure:hover{border-left-color:var(--accent)}.figure:hover .figure-value{color:var(--accent)}.figure-value{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,3.5vw,2.8rem);line-height:1.15;letter-spacing:-.01em;transition:color .3s ease}.figure-label{font-family:var(--sans);font-size:.9rem;font-weight:500}.figure-note{font-family:var(--sans);font-size:.8rem;color:var(--muted)}.award-list{list-style:none;border-top:1px solid var(--line)}.award-row{display:grid;grid-template-columns:150px 1fr auto;align-items:baseline;gap:2rem;padding:1.7rem .6rem;border-bottom:1px solid var(--line);transition:background .3s ease,padding-left .3s var(--ease),opacity .7s var(--ease),transform .7s var(--ease)}.award-row:hover{background:var(--paper-soft);padding-left:1.3rem}.award-place{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--accent)}.award-body{display:flex;flex-direction:column;gap:.2rem}.award-title{font-size:1.2rem;font-weight:500}.award-detail{font-family:var(--sans);font-size:.88rem;color:var(--muted)}.award-year{font-family:var(--sans);font-size:.85rem;color:var(--muted)}.entry-list{display:flex;flex-direction:column}.entry{display:grid;grid-template-columns:210px 1fr;gap:2rem;padding:2.4rem 0;border-bottom:1px solid var(--line)}.entry:first-child{border-top:1px solid var(--line)}.entry-period{font-family:var(--sans);font-size:.85rem;font-weight:500;color:var(--muted);transition:color .3s ease}.entry:hover .entry-period{color:var(--accent)}.entry-role{font-family:var(--serif);font-weight:500;font-size:1.45rem;letter-spacing:-.01em;margin-bottom:.9rem}.entry-org{color:var(--muted);font-weight:400}.entry-points{list-style:none;display:flex;flex-direction:column;gap:.7rem;max-width:62ch}.entry-points li{font-size:1.02rem;line-height:1.7;color:var(--muted);padding-left:1.4rem;position:relative}.entry-points li:before{content:"·";position:absolute;left:.2rem;font-weight:700;color:var(--accent)}.featured-list{display:flex;flex-direction:column;gap:clamp(4.5rem,9vw,7rem)}.featured-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,4.5rem);align-items:center}.featured-row.flipped .featured-media{order:2}.featured-media{display:block;border:1px solid var(--line);border-radius:3px;overflow:hidden;transition:box-shadow .35s ease}.featured-media:hover{box-shadow:0 18px 45px #1c1b181f}.featured-media img{width:100%;aspect-ratio:16 / 10;object-fit:cover;transition:transform .6s var(--ease)}.featured-media:hover img{transform:scale(1.02)}.featured-badge{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--accent);margin-bottom:.8rem}.featured-title{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3vw,2.3rem);letter-spacing:-.015em;margin-bottom:1rem}.featured-desc{font-size:1.05rem;line-height:1.7;color:var(--muted);margin-bottom:1.2rem}.project-tools{font-family:var(--sans);font-size:.82rem;color:var(--muted);margin-bottom:1.5rem}.project-links{display:flex;gap:1.8rem}.more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,3rem)}.more-card{display:flex;flex-direction:column}.more-media{border:1px solid var(--line);border-radius:3px;overflow:hidden;margin-bottom:1.4rem;transition:box-shadow .35s ease}.more-media img{width:100%;aspect-ratio:16 / 10;object-fit:cover;transition:transform .6s var(--ease)}.more-card:hover .more-media img{transform:scale(1.03)}.more-card:hover .more-media{box-shadow:0 12px 30px #1c1b181a}.more-title{font-family:var(--serif);font-weight:500;font-size:1.35rem;letter-spacing:-.01em;margin-bottom:.6rem}.more-desc{font-size:.98rem;line-height:1.65;color:var(--muted);margin-bottom:1rem;flex:1}.skills-list{border-top:1px solid var(--line)}.skills-row{display:grid;grid-template-columns:280px 1fr;gap:2rem;padding:1.8rem .6rem;border-bottom:1px solid var(--line);transition:background .3s ease,padding-left .3s var(--ease),opacity .7s var(--ease),transform .7s var(--ease)}.skills-row:hover{background:var(--paper-soft);padding-left:1.3rem}.skills-row dt{font-family:var(--sans);font-size:.9rem;font-weight:600}.skills-row dd{font-size:1.05rem;color:var(--muted);max-width:58ch}.resume-cta{display:flex;justify-content:flex-start;margin-top:clamp(2.5rem,5vw,3.5rem)}.contact-content{text-align:center;max-width:640px}.contact .section-header{margin-bottom:2rem}.contact .section-title{max-width:none}.contact-text{color:var(--muted);margin:0 auto 2.8rem;max-width:30rem}.contact-email{font-family:var(--serif);font-size:clamp(1.5rem,3.5vw,2.3rem);font-weight:500;letter-spacing:-.01em;border-bottom:2px solid var(--line);padding-bottom:4px;transition:color .25s ease,border-color .25s ease}.contact-email:hover{color:var(--accent);border-bottom-color:var(--accent)}.copy-email{font-family:var(--sans);font-size:.85rem;font-weight:500;color:var(--muted);margin-top:1.2rem;border-bottom:1px solid var(--line);padding-bottom:2px;transition:color .25s ease,border-color .25s ease}.copy-email:hover{color:var(--accent);border-bottom-color:var(--accent)}.social-row{display:flex;justify-content:center;gap:2rem;margin-top:3rem}.footer{border-top:1px solid var(--line);padding:2.4rem 0}.footer-inner{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--sans);font-size:.85rem;color:var(--muted)}.back-to-top{transition:color .25s ease}.back-to-top:hover{color:var(--accent)}@media (max-width: 900px){.hero{padding-top:120px}.hero-grid{grid-template-columns:1fr}.hero-figure{justify-self:start;order:-1;width:min(260px,60vw)}.figures-row{grid-template-columns:repeat(2,1fr);row-gap:2.5rem}.entry,.skills-row{grid-template-columns:1fr;gap:.8rem}.featured-row,.featured-row.flipped{grid-template-columns:1fr}.featured-row.flipped .featured-media{order:0}.more-grid{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.nav-links{display:none}.nav-mobile-btn{display:flex}.figures-row,.more-grid{grid-template-columns:1fr}.award-row{grid-template-columns:1fr;gap:.4rem}.award-year{display:none}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.intro,.reveal,.milestone-year,.milestone-title,.milestone-text,.milestone-cta{opacity:1;transform:none}}
