:root{--cream:#f4f0e7;--paper:#fbf9f3;--ink:#203b32;--muted:#6f7c70;--green:#2f5b4c;--sage:#9bad91;--line:#d8ded2;--accent:#c58c62;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace;--ease:cubic-bezier(.23,1,.32,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55}.grain{position:fixed;inset:0;pointer-events:none;opacity:.07;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}.is-hidden{display:none!important}.entrance{min-height:100vh;padding:32px 5vw 28px;display:grid;grid-template-columns:1fr 1.2fr;grid-template-rows:auto 1fr auto;gap:20px;position:relative;overflow:hidden}.entrance:before{content:'';position:absolute;width:70vw;height:70vw;border-radius:50%;background:#e4e9dd;right:-35vw;top:12%;z-index:-1}.entrance__topline,.entrance__bottom,.page-kicker,.fact-label,.section-label,.eyebrow,.year{font:500 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}.entrance__topline{grid-column:1/-1;display:flex;justify-content:space-between;color:var(--muted);padding-bottom:18px;border-bottom:1px solid #d6d7cc}.door-wrap{grid-column:2;grid-row:2;display:grid;place-items:center}.door-shadow{position:absolute;width:min(28vw,350px);height:min(45vw,540px);background:#c1c9b8;transform:translate(28px,24px) rotate(3deg);opacity:.55}.door{width:min(28vw,350px);height:min(45vw,540px);border:0;background:var(--green);color:var(--cream);position:relative;cursor:pointer;box-shadow:0 24px 50px rgba(32,59,50,.16);transition:transform .5s var(--ease),box-shadow .4s var(--ease);text-align:left;padding:28px;text-decoration:none;display:block}.door:hover{transform:translate(-8px,-10px) rotate(-1deg);box-shadow:0 34px 65px rgba(32,59,50,.24)}.door:active{transform:scale(.97)}.door__number{font:500 11px var(--mono);position:absolute;top:28px;left:28px;color:#b8c8b1}.door__label{font:600 clamp(22px,3vw,40px)/.95 var(--sans);position:absolute;bottom:36px;left:28px}.door__label em{font-family:var(--serif);font-weight:600;color:#d2ddc8}.door__handle{position:absolute;right:28px;top:50%;width:12px;height:12px;border:2px solid #c5d2bd;border-radius:50%}.door__arrow{position:absolute;right:26px;bottom:26px;font-size:22px;color:#c5d2bd}.entrance__copy{grid-column:1;grid-row:2;align-self:center;max-width:430px;padding-left:2vw}.eyebrow{color:var(--accent);margin:0 0 18px}.entrance h1{font:700 clamp(62px,9vw,128px)/.82 var(--serif);letter-spacing:-.07em;margin:0 0 28px;color:var(--ink)}h1 i,h2 i{font-weight:600;color:var(--green)}.entrance__desc{max-width:320px;color:var(--muted);font-size:15px}.text-button{border:0;background:none;padding:25px 0 0;color:var(--green);font:600 12px var(--mono);letter-spacing:.08em;cursor:pointer;text-decoration:none;display:inline-block}.text-button span{font-size:19px;margin-left:12px;transition:margin .25s}.text-button:hover span{margin-left:20px}.entrance__bottom{grid-column:1/-1;display:flex;align-items:center;gap:15px;color:var(--muted)}.scroll-line{width:100px;height:1px;background:var(--sage)}.cv-shell{min-height:100vh;position:relative;background:var(--paper)}.cv-nav{height:84px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{font:700 21px var(--serif);color:var(--green);border:0;background:none;cursor:pointer;text-decoration:none}.brand span{color:var(--accent)}.cv-nav__title{text-align:center;font:500 10px var(--mono);letter-spacing:.13em}.cv-nav__title small{display:block;color:var(--muted);font-size:8px;margin-top:7px}.cv-nav__actions{display:flex;gap:20px;align-items:center}.icon-button,.menu-button,.page-controls button,.page-menu button{border:0;background:none;font:500 10px var(--mono);letter-spacing:.12em;color:var(--green);cursor:pointer}.icon-button span{font-size:18px;margin-left:4px}.menu-button span{font-size:20px;margin-left:5px}.page-menu{position:absolute;right:5vw;top:72px;background:var(--green);color:var(--cream);padding:26px 30px;width:260px;z-index:4;box-shadow:0 15px 40px rgba(32,59,50,.2);animation:drop .3s var(--ease)}.page-menu .eyebrow{color:#b8c8b1}.page-menu button{display:block;color:var(--cream);padding:11px 0;text-align:left;width:100%;border-bottom:1px solid rgba(255,255,255,.15)}.page-progress{height:3px;background:#e8ece4}.page-progress span{display:block;height:100%;background:var(--accent);width:25%;transition:width .45s var(--ease)}.page-counter{position:absolute;right:5vw;top:116px;color:var(--muted);font:500 11px var(--mono);z-index:2}.page-counter span:first-child{font-size:20px;color:var(--green)}.page-stage{max-width:1220px;margin:0 auto;padding:62px 5vw 72px;min-height:calc(100vh - 160px)}.cv-page{display:none;animation:pageIn .55s var(--ease)}.cv-page.active{display:block}.page-kicker{display:flex;justify-content:space-between;color:var(--muted);padding-bottom:16px;border-bottom:1px solid var(--line)}.profile-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:12vw;align-items:center;padding:7vh 0 8vh}.profile-intro h2,.split-heading h2,.contact-main h2{font:600 clamp(48px,6.5vw,84px)/.95 var(--serif);letter-spacing:-.06em;margin:0 0 28px}.lead{max-width:430px;color:var(--muted);font-size:15px}.signature{font:italic 17px var(--serif);margin-top:35px}.signature span{color:var(--accent);padding:0 10px}.portrait-card{max-width:330px;justify-self:end}.photo-placeholder{height:420px;background:#dbe3d6;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--green);position:relative;overflow:hidden}.photo-placeholder:after{content:'';position:absolute;width:130%;height:1px;background:#abc0a7;transform:rotate(-45deg)}.placeholder-icon{font-size:28px;margin-bottom:12px}.photo-placeholder strong{font:600 24px/.9 var(--serif);text-align:center}.photo-placeholder small{font:10px var(--mono);margin-top:14px;color:var(--muted)}.portrait-caption{font:500 10px var(--mono);display:flex;justify-content:space-between;color:var(--muted);padding-top:12px}.quick-facts{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding-top:18px}.quick-facts strong,.contact-block strong{display:block;font-size:13px;font-weight:500;margin-top:8px}.split-heading{display:grid;grid-template-columns:1fr 1.1fr .8fr;gap:20px;align-items:end;padding:7vh 0 5vh}.split-heading h2{font-size:clamp(50px,6vw,78px);margin:0}.side-note{font-size:13px;color:var(--muted);max-width:230px;margin:0 0 8px}.skills-layout{display:grid;grid-template-columns:1fr 1fr;gap:10vw;padding:55px 0}.quote{text-align:center;font:italic 23px var(--serif);color:var(--green);padding:15px}.contact-main{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:end;padding:13vh 0 17vh}.contact-footer{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding-top:20px}.closing-line{display:flex;gap:20px;color:var(--muted);font:500 10px var(--mono);padding-top:75px}.page-controls{position:absolute;bottom:29px;left:5vw;right:5vw;display:flex;justify-content:space-between;align-items:center}.page-controls button{padding:8px 0}.page-controls button:disabled{opacity:.25;cursor:not-allowed}.page-controls button span{font-size:10px}.page-dots{display:flex;gap:10px}.dot{width:7px;height:7px;background:var(--line)!important;border-radius:50%;padding:0!important}.dot.active{background:var(--accent)!important;transform:scale(1.45)}.interest-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding:20px 0 46px}.interest-card{grid-column:span 2;border:1px solid var(--line);padding:22px 18px;min-height:190px;position:relative;transition:transform .25s var(--ease),background .25s}.interest-card:nth-child(4){grid-column:2 / span 2}.interest-card:hover{transform:translateY(-6px);background:#f1f4eb}.interest-card>span{font:10px var(--mono);color:var(--accent);position:absolute;right:16px;top:18px}.interest-card>b{font-size:27px;display:block;margin-bottom:24px}.interest-card h3{font-size:15px;margin:0 0 8px}.interest-card p{font-size:12px;color:var(--muted);margin:0;line-height:1.45}.journey-timeline{max-width:800px;margin:10px auto 38px}.journey-step{display:grid;grid-template-columns:70px 1fr;gap:25px;border-left:1px solid var(--sage);padding:0 0 24px 28px;position:relative}.journey-number{font:500 12px var(--mono);color:var(--accent);position:absolute;left:-35px;top:0}.journey-step h3{font:26px var(--serif);margin:10px 0 4px}.journey-step p{color:var(--muted);margin:0}.journey-arrow{font:22px var(--accent);padding:0 0 16px 27px}.journey-next{padding-bottom:0}.journey-next h3{font-size:48px;color:var(--green);line-height:.9}.goal-list{padding-bottom:10px}.goal-list>div{display:flex;gap:15px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line);font:10px var(--mono);color:var(--accent)}.goal-list strong{font:500 14px var(--sans);color:var(--ink)}.closing-quote{font:italic clamp(22px,3vw,34px)/1.2 var(--serif);max-width:850px;color:var(--green);padding:25px 0 65px}.page-contact .contact-main{padding-bottom:7vh}.page-profile .quote{margin-top:35px}@keyframes pageIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes drop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media print{.entrance,.cv-nav,.page-controls,.page-progress,.page-counter,.page-menu{display:none!important}.cv-shell{display:block!important}.page-stage{padding:0}.cv-page{display:block!important;min-height:95vh;page-break-after:always;padding:25px}.grain{display:none}}@media(max-width:720px){.entrance{padding:24px 7vw;grid-template-columns:1fr;grid-template-rows:auto auto auto auto}.entrance:before{width:110vw;height:110vw;right:-50vw;top:38%}.door-wrap{grid-column:1;grid-row:2;order:1;padding:20px 0}.door,.door-shadow{width:min(52vw,260px);height:min(78vw,390px)}.entrance__copy{grid-column:1;grid-row:3;order:2;padding:8px 0 18px}.entrance h1{font-size:68px}.entrance__bottom{grid-row:4}.cv-nav{padding:0 7vw}.cv-nav__title{display:none}.cv-nav__actions{gap:12px}.page-stage{padding:44px 7vw 82px}.page-kicker{font-size:8px}.page-counter{right:7vw}.profile-grid,.split-heading,.contact-main{grid-template-columns:1fr;gap:35px;padding:55px 0}.portrait-card{justify-self:start;max-width:250px}.photo-placeholder{height:320px}.split-heading h2,.contact-main h2{font-size:58px}.side-note{max-width:300px}.skills-layout{grid-template-columns:1fr;gap:38px;padding:40px 0}.contact-footer{grid-template-columns:1fr;gap:18px}.closing-line{padding-top:45px}.page-menu{right:7vw}.page-controls{left:7vw;right:7vw}.entrance__topline{font-size:8px}.interest-grid{grid-template-columns:1fr 1fr;gap:8px;padding-bottom:30px}.interest-card,.interest-card:nth-child(4){grid-column:span 1;min-height:170px;padding:17px 13px}.interest-card>b{margin-bottom:16px}.interest-card h3{font-size:13px}.interest-card p{font-size:11px}.journey-step{grid-template-columns:1fr;padding-left:25px}.journey-number{left:-30px}.journey-step h3{font-size:23px}.journey-arrow{padding-left:23px}.goal-list>div{gap:10px}.goal-list strong{font-size:12px}.closing-quote{padding-bottom:40px}}

.achievement-list{display:grid;gap:13px;max-width:980px;margin:0 auto;padding:5px 0 35px}.achievement-item{display:grid;grid-template-columns:145px 1fr;gap:25px;align-items:center;border-top:1px solid var(--line);padding:16px 0}.achievement-photo{cursor:pointer}.achievement-photo input{display:none}.achievement-photo .photo-placeholder{height:112px}.achievement-photo .photo-placeholder b{font-size:24px}.achievement-item h3{font:600 20px/1.12 var(--serif);margin:8px 0 5px}.achievement-item p{color:var(--muted);font-size:12px;margin:0;max-width:650px}.achievement-item .year{font-size:9px}@media(max-width:720px){.achievement-item{grid-template-columns:92px 1fr;gap:14px;padding:13px 0}.achievement-photo .photo-placeholder{height:92px}.achievement-item h3{font-size:15px}.achievement-item p{font-size:10px;line-height:1.4}.achievement-item .year{font-size:8px}}
.achievement-photo .photo-placeholder img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.achievement-photo .photo-placeholder img+ b,.achievement-photo .photo-placeholder img+ b+ small{position:relative;z-index:0}
.portrait-placeholder img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.portrait-placeholder .placeholder-icon,.portrait-placeholder strong,.portrait-placeholder small{position:relative;z-index:0}
