
:root{--bg:#141615;--surface:#20231f;--paper:#f1f2e9;--ink:#151712;--lime:#d6f86f;--muted:#a7aba1;--line:#373c32;--sans:'DM Sans',Arial,sans-serif;--display:'Manrope',Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--sans);font-size:1rem;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--lime);outline-offset:6px}::selection{background:var(--lime);color:var(--ink)}.shell{width:min(1320px,calc(100% - 96px));margin-inline:auto}p,h1,h2,h3{margin-top:0}h1,h2,h3{font-family:var(--display)}.eyebrow{font-size:.75rem;line-height:1.7;font-weight:500;letter-spacing:.11em;margin:0}.lime{color:var(--lime)}.skip-link{position:fixed;z-index:100;left:20px;top:10px;padding:14px 22px;background:var(--lime);color:var(--ink);transform:translateY(-160%)}.skip-link:focus{transform:none}.header{min-height:110px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:15px;line-height:1.32;font-size:.875rem;font-weight:550}.monogram{position:relative;font-family:var(--display);font-size:2.5rem;letter-spacing:-.17em;line-height:1;font-weight:800;padding-right:12px;color:var(--lime)}.monogram i{position:absolute;width:5px;height:5px;right:0;bottom:5px;border-radius:50%;background:var(--lime)}.header nav{display:flex;gap:30px;font-size:.875rem;color:#c5c8bf}.header nav a{position:relative}.header nav a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .25s}.header nav a:hover:after{transform:scaleX(1)}.nav-contact{border:1px solid #656c59;border-radius:100px;padding:10px 18px;font-size:.875rem;display:flex;gap:23px;align-items:center}.nav-contact:hover{background:var(--lime);color:var(--ink);border-color:var(--lime)}.hero{padding-top:43px}.hero-eyebrow{display:flex;justify-content:space-between;gap:30px;color:var(--muted)}.edition{text-align:right}.hero-title-wrap{position:relative;margin-top:43px}h1{font-size:clamp(4rem,8.5vw,8.6rem);font-weight:500;letter-spacing:-.073em;line-height:1.08;margin:0}.line{display:block;overflow:hidden;padding-bottom:.07em}.line>span{display:block}.hero-asterisk{position:absolute;right:1%;top:8%;font-size:clamp(4rem,7.5vw,7rem);line-height:1;color:var(--lime);transform-origin:center}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-top:35px}.hero-bottom>p{max-width:430px;font-size:1.0625rem;line-height:1.75;color:#c2c7bc;margin:0}.round-link{display:flex;align-items:center;gap:26px;font-size:.875rem;line-height:1.5}.circle-arrow{display:grid;place-items:center;width:66px;height:66px;border:1px solid #676f58;border-radius:50%;font-size:1.9rem;transition:background .25s,color .25s}.round-link:hover .circle-arrow{background:var(--lime);color:var(--ink)}.hero-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:53px;padding:21px 0;border-top:1px solid var(--line);font-size:.75rem;letter-spacing:.08em;color:#9da592}.motion-toggle{background:none;color:#c4cbbb;border:0;border-bottom:1px solid #757c6b;padding:3px 0;font-size:.75rem}.affiliations{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#1a1d18}.affiliation-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-block:30px}.affiliation-inner>span:not(.eyebrow){font-family:var(--display);font-size:1.25rem;font-weight:600;letter-spacing:-.04em;color:#ced2c6}.affiliation-inner .eyebrow{max-width:100px;color:#8f9785}.intro-section{padding-block:107px 115px}.section-kicker{color:var(--lime)}.intro-heading{font-size:clamp(1.8rem,3.45vw,3.35rem);line-height:1.32;font-weight:500;letter-spacing:-.055em;margin:24px 0 28px}.intro-heading span{color:#9ea693}.intro-copy{max-width:540px;margin:0 0 0 auto;color:#c1c7b6;font-size:1.0625rem;line-height:1.85}.story{background:var(--paper);color:var(--ink)}.story-stage{position:relative;overflow:hidden}.story-top,.story-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px}.story-top{padding-block:30px;border-bottom:1px solid #cbd0bf}.skip-story{font-size:.875rem;display:flex;gap:20px}.skip-story:hover{text-decoration:underline}.story a:focus-visible{outline-color:#466909}.chapter{display:grid;grid-template-columns:1.07fr 1fr;align-items:center;gap:80px;min-height:640px;padding-block:58px}.chapter+.chapter{border-top:1px solid #cbd0bf}.chapter-label{color:#525f43}.chapter-label span{display:block;font-size:.75rem;margin-top:3px}.chapter h2{font-size:clamp(2.6rem,4.7vw,4.8rem);line-height:1.12;letter-spacing:-.06em;font-weight:500;margin:24px 0}.chapter h2 em{font-family:Georgia,serif;font-weight:400}.chapter-body{color:#53604a;line-height:1.8;font-size:1rem;max-width:475px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips>span{font-size:.8125rem;border:1px solid currentColor;border-color:#aab39b;padding:5px 12px;border-radius:100px;white-space:normal}.chapter .chips{margin-top:27px;color:#48553d}.chapter-visual{aspect-ratio:1.02;min-height:360px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;background:#d6f86f;border-radius:2px;box-shadow:14px 14px 0 #e0e3d5;transform-origin:50% 50%}.visual-business{background:#d6c6fb}.visual-strategy{background:#c5ddcd}.visual-top{display:flex;justify-content:space-between;gap:24px;align-items:center}.visual-top .eyebrow{font-size:.75rem;max-width:220px}.visual-cross{font-size:1.75rem;font-weight:400;line-height:1}.data-flow{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;border-block:1px solid #98b347;padding:12px 0;margin-top:20px;gap:9px}.data-flow b{font-size:1.25rem;font-weight:400}.metric{padding:25px 0 22px}.metric strong{display:block;font-family:var(--display);font-size:clamp(4rem,7vw,7.8rem);letter-spacing:-.07em;line-height:1;font-weight:500}.metric>span{display:block;font-size:1rem;margin-top:9px}.visual-bottom{display:flex;justify-content:space-between;gap:30px;padding-top:16px;border-top:1px solid #738445}.visual-bottom>span:first-child{max-width:220px;font-size:.8125rem;line-height:1.5}.visual-business .visual-bottom{border-color:#a594c1}.visual-strategy .visual-bottom{border-color:#86a38f}.story-bottom{border-top:1px solid #cbd0bf;padding-block:24px;font-size:.75rem;letter-spacing:.1em}.chapter-progress{display:flex;gap:7px}.chapter-progress>span{width:55px;height:3px;background:#ccd1c0;position:relative;overflow:hidden}.chapter-progress i{display:block;height:100%;background:#4f691b;transform:scaleX(0);transform-origin:left}.chapter-count{min-width:70px;text-align:right}.story-enhanced .story-stage{height:100svh;min-height:630px;display:flex;flex-direction:column}.story-enhanced .chapters{position:relative;flex:1;min-height:0}.story-enhanced .chapter{position:absolute;inset:0;min-height:0;border:0;padding-block:35px}.story-enhanced .chapter-visual{max-height:calc(100svh - 230px);min-height:0;max-width:510px;width:100%;aspect-ratio:1.05;justify-self:end}.story-enhanced .chapter h2{font-size:clamp(2.6rem,4.6vw,4.65rem);margin-block:20px}.story-enhanced .chapter-body{font-size:1rem;margin-bottom:16px}.resume-section{padding-block:112px 88px;outline:none}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:58px}.section-heading h2{font-size:clamp(2.5rem,4.6vw,4.5rem);font-weight:500;letter-spacing:-.06em;line-height:1.13;margin:24px 0 0}.section-heading h2>span{color:#a7b098}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid #7d876d;border-radius:100px;padding:13px 21px;font-size:.875rem;white-space:nowrap}.button:hover{background:var(--lime);color:var(--ink);border-color:var(--lime)}.experience-row{display:grid;grid-template-columns:45px 1fr 1.45fr;gap:35px;padding-block:37px;border-top:1px solid var(--line)}.row-number{font-size:.75rem;color:var(--lime);padding-top:3px}.role-info .eyebrow{color:#a0ab92;font-size:.75rem}.role-info h3{font-size:1.375rem;font-weight:500;letter-spacing:-.035em;line-height:1.45;margin:13px 0 7px}.role-info>p:not(.eyebrow){margin-bottom:5px;color:#d1d6c8;font-size:.9375rem}.location{font-size:.875rem;color:#9aa58d}.role-summary{font-size:.875rem;color:#d9decf;margin-bottom:15px}.role-detail ul{padding:0 0 0 16px;margin:0;color:#acb6a0;font-size:1rem;line-height:1.8}.role-detail li+li{margin-top:13px}.role-detail li::marker{color:#879674}.project-section{background:var(--lime);color:var(--ink);padding-block:82px 90px}.project-section .section-heading{margin-bottom:45px}.project-section .section-heading h2{font-size:clamp(2.5rem,4.3vw,4.1rem)}.project-counter{text-align:right}.project-feature{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.planner-visual{background:#1e261a;color:var(--lime);padding:29px 32px 25px;min-height:410px;display:flex;flex-direction:column;justify-content:space-between}.planner-label{display:flex;justify-content:space-between;gap:25px}.planner-label .eyebrow{font-size:.75rem}.planner-words{padding:27px 0;display:flex;flex-direction:column;font-family:var(--display);font-size:3.5rem;line-height:1.08;letter-spacing:-.055em}.planner-words>span:nth-child(2){padding-left:20%;color:#b1c295}.planner-words>span:nth-child(3){padding-left:40%;color:#eef4e6}.planner-flow{display:flex;justify-content:space-between;border-top:1px solid #536446;padding-top:17px;font-size:.75rem;gap:8px;letter-spacing:.025em}.project-description h3{font-size:2rem;font-weight:500;letter-spacing:-.04em;line-height:1.3;margin:14px 0 20px}.project-description p{color:#455529;line-height:1.8}.project-description .chips>span{border-color:#869e47}.project-description .chips{margin-top:24px}.text-link{display:inline-flex;gap:30px;align-items:center;border-bottom:1px solid currentColor;font-size:.9375rem;padding-bottom:8px;margin-top:29px}.project-section a:focus-visible,.contact a:focus-visible{outline-color:#344d0a}.foundations{padding-block:104px}.foundation-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:31px;border-top:1px solid var(--line)}.education-block .eyebrow{color:#a9b396}.education-block h3{font-weight:500;font-size:1.6rem;letter-spacing:-.035em;margin:20px 0 7px;line-height:1.35}.education-block>p:not(.eyebrow){color:#d7ddcc;margin-bottom:5px}.education-block>span,.volunteer>div>span{color:#a3ae94;font-size:.875rem}.skills-block>div+div{margin-top:29px}.skills-block h3{font-size:1rem;font-weight:500;margin-bottom:14px}.skills-block .chips{color:#bcc7ac}.skills-block .chips>span{border-color:#46543b}.volunteer{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--line);margin-top:52px;padding-top:35px}.volunteer h3{font-weight:500;font-size:1.4rem;letter-spacing:-.025em;margin:15px 0 8px}.volunteer .eyebrow{color:#a9b396}.volunteer>div>p:not(.eyebrow){font-size:.9375rem;margin-bottom:5px;color:#d7ddcc}.volunteer>p{color:#b0bba2;line-height:1.85;margin:0}.contact{background:#d9cffa;color:var(--ink);padding-block:40px 57px}.contact-top{display:flex;align-items:center;justify-content:space-between;gap:25px}.contact-title{display:flex;align-items:center;justify-content:space-between;gap:25px;font-family:var(--display);font-size:clamp(3.5rem,8.5vw,8.5rem);letter-spacing:-.07em;line-height:1.2;padding-block:34px 43px;border-bottom:1px solid #afa4c8}.contact-title>span{font-size:.75em;transition:transform .3s}.contact-title:hover>span{transform:translate(7px,-7px)}.contact-bottom{display:flex;justify-content:space-between;gap:40px;padding-top:31px}.contact-bottom p{font-size:1.125rem;line-height:1.65;margin-bottom:20px}.email-link{font-size:1.0625rem;border-bottom:1px solid #696074;padding-bottom:4px;overflow-wrap:anywhere}.contact-links{display:flex;flex-direction:column;gap:12px;align-items:start;font-size:.9375rem}.contact-links a{display:flex;justify-content:space-between;gap:40px;width:100%}.contact-links a:hover{text-decoration:underline}.footer{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-block:35px;font-size:.8125rem;color:#aab69a}.footer>.brand{font-size:.8125rem;color:#d7e0cc}.footer>.brand .monogram{font-size:2rem}.footer>span{font-size:.75rem;letter-spacing:.07em}
@media(min-width:1500px){.hero-title-wrap{margin-top:52px}.hero{padding-top:49px}.hero-bottom{margin-top:43px}.hero-foot{margin-top:63px}}
@media(max-width:1100px){.shell{width:calc(100% - 64px)}.chapter{gap:40px}.experience-row{grid-template-columns:30px 1fr 1.3fr;gap:25px}.project-feature{gap:40px}.hero-asterisk{right:0;font-size:5rem}.affiliation-inner{gap:20px}.affiliation-inner>span:not(.eyebrow){font-size:1.1rem}.affiliation-inner .eyebrow{font-size:.75rem}.foundation-grid,.volunteer{gap:40px}.story-enhanced .chapter-visual{padding:24px}.footer>span{display:none}.chapter h2{font-size:3.5rem}.story-enhanced .chapter h2{font-size:3.2rem}}
@media(max-width:760px){.shell{width:calc(100% - 40px)}.header{min-height:88px;gap:20px;flex-wrap:wrap;padding-block:20px}.brand{font-size:.8125rem;gap:13px}.monogram{font-size:2.1rem}.header nav{order:3;width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;font-size:.8125rem}.nav-contact{font-size:.8125rem;padding:8px 14px;gap:17px}.hero{padding-top:32px}.hero-eyebrow .eyebrow{font-size:.75rem}.edition{max-width:120px}.hero-title-wrap{margin-top:38px}h1{font-size:clamp(2.5rem,9.2vw,4.7rem);letter-spacing:-.065em;line-height:1.12}.hero-asterisk{display:none}.hero-bottom{display:block;margin-top:24px}.hero-bottom>p{font-size:1rem;max-width:430px}.round-link{justify-content:space-between;width:100%;margin-top:28px;font-size:.875rem}.round-link>span:first-child br{display:none}.circle-arrow{width:48px;height:48px;font-size:1.5rem}.hero-foot{margin-top:30px;padding-block:18px;gap:18px;font-size:.75rem;letter-spacing:.035em}.hero-foot>span:first-child{max-width:160px}.scroll-label{display:none}.motion-toggle{font-size:.75rem;white-space:nowrap}.affiliation-inner{flex-wrap:wrap;justify-content:start;gap:18px 26px;padding-block:25px}.affiliation-inner .eyebrow{max-width:none;width:100%;font-size:.75rem}.affiliation-inner>span:not(.eyebrow){font-size:.9375rem}.intro-section{padding-block:60px}.intro-heading{font-size:clamp(1.7rem,6vw,2.6rem);margin:20px 0 22px;line-height:1.35}.intro-copy{font-size:1rem}.story-top{padding-block:25px}.story-top .eyebrow{font-size:.75rem;max-width:165px}.skip-story{font-size:.8125rem;gap:10px}.chapter{grid-template-columns:1fr;gap:30px;min-height:0;padding-block:40px 48px}.chapter h2{font-size:clamp(2.7rem,10vw,4.3rem);margin-block:20px}.chapter-label span{display:inline;font-size:inherit}.chapter-label{font-size:.75rem}.chapter-body{font-size:1rem;margin-bottom:20px;max-width:none}.chapter .chips{margin-top:20px}.chips>span{font-size:.8125rem;padding:5px 11px}.chapter-visual{min-height:290px;aspect-ratio:auto;padding:25px;box-shadow:8px 8px 0 #e0e3d5}.metric strong{font-size:5rem}.metric{padding-block:20px}.data-flow{margin-top:18px;font-size:.75rem}.visual-top .eyebrow{font-size:.75rem}.story-bottom{display:none}.resume-section{padding-block:61px 50px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{font-size:2.6rem;margin-top:18px}.section-heading .button{margin-top:25px}.experience-row{grid-template-columns:24px 1fr;gap:10px 13px;padding-block:30px}.role-detail{grid-column:2}.role-info h3{font-size:1.3rem;margin-top:8px}.role-summary{margin-top:15px;margin-bottom:14px;font-size:.875rem}.role-detail ul{font-size:1rem;padding-left:15px}.project-section{padding-block:50px}.project-section .section-heading h2{font-size:2.5rem}.project-counter{display:block;text-align:left;margin-top:20px}.project-feature{grid-template-columns:1fr;gap:34px}.planner-visual{min-height:370px;padding:25px}.planner-words{font-size:3.3rem}.project-description h3{font-size:1.75rem}.foundations{padding-block:60px}.foundation-grid{grid-template-columns:1fr;gap:35px}.skills-block{border-top:1px solid var(--line);padding-top:28px}.volunteer{grid-template-columns:1fr;gap:23px;margin-top:35px;padding-top:28px}.contact{padding-block:29px 39px}.contact-top .eyebrow{font-size:.75rem}.contact-top>span{max-width:130px;text-align:right}.contact-title{font-size:clamp(2.4rem,9.5vw,4.5rem);padding-block:29px 33px;gap:16px}.contact-title>span{flex-shrink:0}.contact-bottom{display:block;padding-top:25px}.contact-bottom p{font-size:1rem}.email-link{font-size:1rem}.contact-links{margin-top:32px;max-width:220px}.footer{padding-block:25px;gap:20px}.footer>.brand{max-width:225px}.footer>a:last-child{font-size:.75rem;white-space:nowrap}.section-kicker,.eyebrow{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{body{background:white;color:#111;font-size:10pt}html{scroll-behavior:auto}.shell{width:100%}.header nav,.nav-contact,.hero-asterisk,.hero-foot,.affiliations,.round-link,.story,.motion-toggle,.planner-visual,.contact-top,.contact-title,.footer,.button,.text-link{display:none!important}.header{min-height:0;padding:0 0 16px;border-color:#aaa}.monogram{color:#111}.hero{padding:20px 0}.hero-eyebrow{display:none}h1{font-size:30pt;line-height:1.1}.lime{color:#111}.hero-title-wrap{margin:0}.hero-bottom{margin-top:15px}.hero-bottom>p{font-size:10pt;max-width:none;color:#333}.intro-section{padding:18px 0}.intro-heading{font-size:18pt;margin:10px 0}.intro-copy{color:#333;font-size:10pt;max-width:none}.section-kicker,.eyebrow{color:#555!important;font-size:8pt}.resume-section,.foundations,.project-section{padding:22px 0;background:none;color:#111}.section-heading{margin-bottom:20px}.section-heading h2{font-size:22pt;margin-top:10px}.section-heading h2>span,.intro-heading span{color:#555}.experience-row{grid-template-columns:20px 1fr 1.6fr;gap:15px;padding-block:18px;border-color:#aaa;break-inside:avoid}.row-number,.role-detail ul,.role-summary,.role-info>p:not(.eyebrow),.location{color:#333}.role-info h3{font-size:12pt}.role-detail ul{font-size:9pt}.project-feature{display:block}.project-description h3{font-size:15pt}.project-description p{font-size:10pt;color:#333}.chips>span{font-size:8pt!important;border-color:#999!important;color:#333!important}.education-block h3{font-size:14pt}.education-block>p:not(.eyebrow),.volunteer>div>p:not(.eyebrow),.volunteer>p{color:#333}.education-block>span,.volunteer>div>span{color:#555}.foundation-grid,.volunteer{gap:25px;break-inside:avoid;border-color:#aaa}.volunteer{margin-top:25px;padding-top:20px}.volunteer h3{font-size:13pt}.contact{background:none;color:#111;padding:20px 0;border-top:1px solid #aaa}.contact-bottom{padding:0}.contact-bottom p{font-size:10pt}.email-link{font-size:10pt}.contact-links{font-size:9pt}.header .brand{color:#111}.line>span{transform:none!important;opacity:1!important}}


/* Printed resumes include every achievement, even before its scroll reveal. */
@media print{.experience-row .row-number,.experience-row .role-info,.experience-row .role-detail,.experience-row .role-summary,.experience-row li{opacity:1!important;visibility:visible!important;transform:none!important}}

/* Portfolio structure: a persistent index, liquid introduction, and reading timeline. */
html{scroll-padding-top:115px}
.header.shell{position:sticky;top:0;z-index:40;width:100%;padding-inline:max(48px,calc((100% - 1320px)/2));min-height:88px;background:rgba(20,22,21,.97);backdrop-filter:blur(12px)}
.header nav a[aria-current="location"]{color:var(--lime)}.header nav a[aria-current="location"]:after{transform:scaleX(1)}
.opening-stage{position:relative}.liquid-canvas{display:none;position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}
.about-panel{background:var(--lime);color:var(--ink);padding-block:78px;position:relative;z-index:3}
.about-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:45px 75px;align-items:center}
.about-heading h2{font-size:clamp(2.5rem,3.7vw,3.8rem);font-weight:500;line-height:1.16;letter-spacing:-.055em;margin:26px 0 0}.about-heading em{font-family:Georgia,serif;font-weight:400}
.about-body{color:#374823;font-size:1rem;line-height:1.85}.about-body .about-lead{font-size:1.4rem;color:var(--ink);font-weight:500;letter-spacing:-.03em;margin-bottom:15px}.about-body p:last-of-type{margin-bottom:0}.about-body .text-link{margin-top:23px}
.about-facts{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px;border-top:1px solid #a2bd55;padding-top:25px;margin-top:25px}
.about-facts>div{display:flex;flex-direction:column;gap:6px}.about-facts strong{font-weight:500;font-size:1rem}.about-facts>div>span:last-child{font-size:.875rem;color:#45582b}
.about-panel a:focus-visible{outline-color:#314c09}.opening-enhanced .opening-stage{height:calc(100svh - 88px);min-height:620px;overflow:hidden}
.opening-enhanced .liquid-canvas{display:block}.opening-enhanced .hero{position:relative;z-index:1;height:100%;padding-top:30px;display:flex;flex-direction:column}
.opening-enhanced .hero-title-wrap{margin-top:37px}.opening-enhanced h1{font-size:clamp(4rem,8vw,8rem)}.opening-enhanced .hero-bottom{margin-top:auto;padding-top:25px}.opening-enhanced .hero-foot{margin-top:30px}
.opening-enhanced .about-panel{position:absolute;inset:0;background:var(--lime);display:flex;align-items:center;padding-block:35px}.opening-enhanced .about-inner{gap:30px 65px}
.experience-list{position:relative}.timeline-track{position:absolute;top:54px;bottom:52px;left:15px;width:1px;background:#465039}.timeline-track i{display:block;height:100%;background:var(--lime);transform:scaleY(0);transform-origin:top}
.experience-row{border-top:0;position:relative;gap:35px;grid-template-columns:45px 1fr 1.5fr;padding-block:30px 40px}
.row-number{position:relative;z-index:1;padding:0;display:flex;justify-content:start;align-items:start}
.row-number>span{display:grid;place-items:center;width:31px;height:31px;border:1px solid #5e6b4c;border-radius:50%;background:var(--bg);font-size:.75rem;transition:color .2s,background .2s}
.row-active .row-number>span{color:var(--ink);background:var(--lime);border-color:var(--lime)}
.role-detail{padding:25px 29px;border:1px solid #3e4933;background:#1a2016;border-radius:4px}.role-info{padding-top:5px}.role-detail ul{font-size:1rem}.role-summary{font-size:.875rem}.chips>span{font-size:.875rem}
@media(max-width:1100px){.header.shell{padding-inline:32px}.opening-enhanced .about-inner{gap:30px 38px}.about-heading h2{font-size:2.8rem}.about-inner{gap:38px}.about-body{font-size:1rem}.experience-row{grid-template-columns:31px 1fr 1.35fr;gap:25px}.role-detail{padding:23px}.timeline-track{left:15px}.about-facts{gap:20px}.about-facts strong{font-size:.9375rem}}
@media(max-width:760px){html{scroll-padding-top:150px}.header.shell{padding-inline:20px;min-height:0}.header nav{font-size:.875rem;gap:16px}.hero{padding-bottom:0}.round-link>span:first-child br{display:initial}.about-panel{padding-block:50px}.about-inner{grid-template-columns:1fr;gap:30px}.about-heading h2{font-size:2.5rem;margin-top:20px}.about-body{font-size:1rem}.about-facts{grid-template-columns:1fr;gap:22px;margin-top:0;padding-top:25px}.about-facts>div{gap:3px}.about-facts strong{font-size:1rem}.about-body .text-link{font-size:1rem}.experience-row{grid-template-columns:31px 1fr;gap:12px 15px;padding-block:20px 28px}.role-detail{grid-column:2;padding:20px 18px}.role-info{padding-top:0}.role-summary{margin-top:0}.role-detail ul{font-size:1rem;padding-left:14px}.timeline-track{top:36px;bottom:60px}.role-detail li+li{margin-top:16px}.hero-foot>span:first-child{max-width:170px;font-size:.75rem}}
@media(max-width:370px){.header nav{gap:12px}.hero-title-wrap{margin-top:30px}h1{font-size:2.3rem}.hero-eyebrow{gap:15px}.role-detail{padding:17px 13px}.planner-flow{flex-wrap:wrap}.footer>.brand{font-size:.75rem}.contact-title{font-size:2.2rem}}
@media print{.header.shell{position:static;background:white;padding:0;min-height:0;backdrop-filter:none}.liquid-canvas,.timeline-track{display:none!important}.opening-stage{height:auto!important;min-height:0!important;overflow:visible!important;position:static!important;transform:none!important}.opening-enhanced .hero{display:block;height:auto;visibility:visible!important;opacity:1!important;transform:none!important}.about-panel,.opening-enhanced .about-panel{position:static!important;display:block;background:white;padding:20px 0;visibility:visible!important;opacity:1!important;transform:none!important}.about-inner{display:block}.about-heading h2{font-size:20pt;margin:10px 0}.about-body{color:#333;font-size:10pt}.about-facts{display:none}.pin-spacer{height:auto!important;padding:0!important}.experience-row{grid-template-columns:20px 1fr 1.6fr;gap:15px;padding-block:15px}.row-number>span{width:auto;height:auto;border:0;background:transparent;color:#333}.role-detail{background:transparent;padding:10px;border-color:#aaa}.role-detail ul{font-size:9pt}}

@media(min-width:761px) and (max-height:749px){.opening-enhanced .opening-stage{min-height:0}.opening-enhanced .hero{padding-top:20px}.opening-enhanced .hero-title-wrap{margin-top:18px}.opening-enhanced h1{font-size:clamp(3.3rem,6.8vw,6.5rem)}.opening-enhanced .hero-bottom{padding-top:12px}.opening-enhanced .hero-foot{margin-top:12px;padding-block:16px}.opening-enhanced .about-facts{display:none}.opening-enhanced .about-panel{padding-block:30px}.opening-enhanced .about-heading h2{font-size:2.25rem}.opening-enhanced .about-body{font-size:1rem}.opening-enhanced .about-body .about-lead{font-size:1.25rem}}

/* A compact education milestone shares the timeline and scroll reveal. */
.education-milestone{padding-block:18px 28px}
.education-milestone .role-info h3{font-size:1.0625rem;letter-spacing:0;font-weight:500;margin:8px 0 0;color:#bdc6b2}
.education-milestone .role-detail{align-self:start;background:transparent;padding:21px 24px;border-color:#49563b}
.education-milestone .role-summary{margin:0;font-size:1rem;line-height:1.7;color:var(--paper)}
.education-milestone .row-number svg{display:block}
@media(max-width:760px){.education-milestone .role-detail{padding:18px}.education-milestone{padding-block:16px 26px}}
@media print{.education-milestone .role-info h3,.education-milestone .role-summary{color:#333}.education-milestone .role-detail{padding:10px;border-color:#aaa}}

/* Project covers use the original game sprites alongside the finance planner. */
.project-feature + .project-feature{margin-top:64px;padding-top:64px;border-top:1px solid #9bb950}
.game-visual{margin:0;background:#1e261a;color:var(--lime);padding:28px 30px 24px;min-width:0}
.forest-preview{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));aspect-ratio:1;background:#83d595;border:6px solid #c6a9ee;margin:23px auto 18px;max-width:400px}
.forest-preview > span{display:block;min-width:0;aspect-ratio:1;line-height:0}
.forest-preview img{display:block;width:100%;height:100%;image-rendering:pixelated}
.forest-bridge{background:#656565}
.game-visual figcaption{color:#c3d0b4;font-size:.8125rem;text-align:center;line-height:1.5}
.project-description .project-credit{font-size:.875rem;border-left:2px solid #829f3d;padding-left:16px;margin-top:22px}
@media(max-width:760px){
  .project-feature + .project-feature{margin-top:42px;padding-top:42px}
  .game-visual{padding:20px 18px}
  .game-visual .planner-label{gap:12px}
  .game-visual .eyebrow{font-size:.6875rem}
  .forest-preview{border-width:4px;margin-top:20px}
}
@media print{.game-visual{display:none!important}.project-feature + .project-feature{margin-top:20px;padding-top:20px;border-color:#aaa}.project-feature{break-inside:avoid}}

/* Idle droplets complement the liquid scroll transition without needing a scroll. */
.hero{position:relative}
.hero > :not(.hero-dots){position:relative;z-index:1}
.hero-dots{position:absolute;inset:0 0 auto;height:112px;overflow:hidden;pointer-events:none;z-index:0}
.hero-dots span{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:var(--lime);box-shadow:0 0 2px #d6f86f66;animation:hero-dot-drift var(--duration) ease-in-out var(--delay) infinite}
.hero-dots span:nth-child(1){--x:3%;--y:6px;--size:14px;--duration:8s;--delay:-2s}
.hero-dots span:nth-child(2){--x:26%;--y:68px;--size:12px;--duration:9.5s;--delay:-6s}
.hero-dots span:nth-child(3){--x:49%;--y:15px;--size:17px;--duration:7s;--delay:-4s}
.hero-dots span:nth-child(4){--x:72%;--y:64px;--size:20px;--duration:10s;--delay:-1s}
.hero-dots span:nth-child(5){--x:95%;--y:8px;--size:10px;--duration:8.5s;--delay:-5s}
@keyframes hero-dot-drift{
  0%,100%{transform:translate3d(-6px,0,0)}
  35%{transform:translate3d(7px,-6px,0)}
  70%{transform:translate3d(12px,4px,0)}
}
.hero.motion-reduced .hero-dots{display:none}
.hero[inert] .hero-dots span{animation-play-state:paused}
.header.shell{backdrop-filter:none}
.opening-enhanced .opening-stage{position:sticky;top:88px}
@media(max-width:760px){
  .hero-dots{height:36px}
  .hero-dots span:nth-child(1){--x:7%;--y:12px;--size:12px}
  .hero-dots span:nth-child(3){--x:48%;--y:13px;--size:14px}
  .hero-dots span:nth-child(5){--x:88%;--y:12px;--size:10px}
  .hero-dots span:nth-child(2),.hero-dots span:nth-child(4){display:none}
}
@media(prefers-reduced-motion:reduce){.hero-dots{display:none}}
@media print{.hero-dots{display:none!important}}
