:root{--paper:#f7f5ef;--paper-deep:#ebe6dc;--ink:#1f2523;--muted:#69716d;--rule:#c7c0b3;--panel:#ded8cc;--panel-dark:#aab4ad;--accent:#496558;--accent-deep:#263a32;--white:#fffdf8;--shadow:0 28px 70px #1f25231f;--ease:cubic-bezier(.22, 1, .36, 1);--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background-color:var(--paper)}body{color:var(--ink);background-color:var(--paper);background-image:linear-gradient(90deg, #1f25230b 1px, transparent 1px) 50% 0 / min(18vw, 240px) 100%, radial-gradient(circle at 82% 34%, #49655812, transparent 27rem);font-family:var(--sans);text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{color:var(--white);background:var(--accent)}.site-shell{width:min(1180px,100% - 40px);margin:0 auto}.site-header{z-index:10;isolation:isolate;background:0 0;justify-content:space-between;align-items:center;padding:22px 0 18px;display:flex;position:sticky;top:0}.site-header:before{z-index:-1;content:"";background:var(--paper);border-bottom:1px solid #1f252321;width:100vw;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.brand,.nav-links{z-index:1;position:relative}.brand{border:1px solid var(--ink);width:48px;height:48px;font-family:var(--serif);letter-spacing:0;transition:background-color .24s var(--ease), color .24s var(--ease);flex:0 0 48px;place-items:center;font-size:.9rem;display:grid}.brand:hover{color:var(--white);background:var(--ink)}.nav-links{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;gap:clamp(18px,3vw,42px);font-size:.78rem;font-weight:650;display:flex}.nav-links a{transition:color .22s var(--ease);padding:10px 0;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:100%;height:1px;transition:transform .26s var(--ease);position:absolute;bottom:4px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after{transform-origin:0;transform:scaleX(1)}.nav-links .nav-contact{border:1px solid var(--accent-deep);min-height:34px;color:var(--white);background:var(--accent-deep);transition:background-color .22s var(--ease), color .22s var(--ease);align-items:center;padding:7px 13px;display:inline-flex}.nav-links .nav-contact:after{display:none}.nav-links .nav-contact:hover{color:var(--white);background:var(--ink)}.hero{grid-template-columns:minmax(0,1.05fr) minmax(300px,.72fr);align-items:start;gap:clamp(28px,4.2vw,64px);min-height:calc(100svh - 90px);padding:clamp(22px,3.4vw,50px) 0 clamp(58px,7vw,98px);display:grid}.hero-copy{max-width:710px}.eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 22px;font-size:.76rem;font-weight:750}h1,h2,h3,p{margin-top:0}h1{max-width:780px;font-family:var(--serif);margin-bottom:28px;font-size:clamp(4.2rem,8.4vw,8.1rem);font-weight:500;line-height:.94}.hero-lede{color:#3f4743;max-width:650px;margin-bottom:34px;font-size:clamp(1.08rem,1.8vw,1.42rem);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.button{border:1px solid var(--accent-deep);letter-spacing:.08em;text-transform:uppercase;min-height:48px;transition:background-color .24s var(--ease), color .24s var(--ease), border-color .24s var(--ease);justify-content:center;align-items:center;padding:13px 19px;font-size:.82rem;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.button:after{content:"";opacity:0;transform-origin:50%;height:1px;transition:opacity .22s var(--ease), transform .22s var(--ease);background:currentColor;position:absolute;bottom:9px;left:12px;right:12px;transform:scaleX(.72)}.button:hover:after{opacity:.45;transform:scaleX(1)}.button-primary{color:var(--white);background:var(--accent-deep)}.button-primary:hover{background:#2f463d}.button-secondary{color:var(--accent-deep);background:#fffdf894}.button-secondary:hover{border-color:var(--accent);background:#fffdf8d1}.portrait-stage{isolation:isolate;min-height:clamp(420px,48vw,630px);position:relative}.portrait-panel{transition:transform .8s var(--ease);border:1px solid #1f252321;position:absolute}.portrait-panel-back{aspect-ratio:1;background:var(--panel);width:72%;top:3%;right:9%}.portrait-panel-mid{aspect-ratio:.86;background:var(--panel-dark);width:70%;bottom:2%;right:0}.portrait-frame{background:linear-gradient(135deg, transparent 49.5%, #1f252314 50%, transparent 50.5%), var(--white);box-shadow:var(--shadow);border:1px solid #1f252333;display:grid;position:absolute;inset:10% 13% 8% 3%;overflow:hidden}.portrait-image{object-fit:cover;object-position:center top;filter:saturate(.96)contrast(1.02);width:100%;height:100%}.signal-strip{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(3,1fr);margin-bottom:clamp(72px,10vw,136px);display:grid}.signal{border-right:1px solid var(--rule);padding:clamp(22px,3vw,34px)}.signal:last-child{border-right:0}.signal p,.timeline-label{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:13px;font-size:.72rem;font-weight:750}.signal-title{font-family:var(--serif);align-items:center;gap:16px;margin-bottom:6px;font-size:clamp(1.8rem,3vw,2.65rem);font-weight:500;line-height:1;display:flex}.signal-title-with-logo{justify-content:flex-start}.signal-logo{object-fit:contain;flex:none;width:clamp(42px,4.5vw,62px);height:clamp(42px,4.5vw,62px)}.signal span{color:var(--muted)}.profile-grid,.timeline,.focus,.contact{border-top:1px solid var(--rule);grid-template-columns:.62fr 1fr;gap:clamp(36px,8vw,110px);padding:clamp(72px,10vw,128px) 0;display:grid}.section-heading{max-width:430px}.section-heading h2{font-family:var(--serif);margin-bottom:0;font-size:clamp(2.25rem,4.7vw,5.1rem);font-weight:500;line-height:.98}.section-body{color:#3f4743;align-content:start;gap:22px;font-size:clamp(1.04rem,1.35vw,1.25rem);display:grid}.section-body p{margin-bottom:0}.timeline-list{border-top:1px solid var(--rule);gap:0;display:grid}.timeline-item{border-bottom:1px solid var(--rule);grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:clamp(24px,4vw,58px);padding:clamp(26px,4vw,42px) 0;display:grid}.timeline-content{max-width:680px}.timeline-item h3{font-family:var(--serif);margin-bottom:8px;font-size:clamp(2rem,4.2vw,4rem);font-weight:500;line-height:1.04}.timeline-content p{max-width:560px;color:var(--muted);margin-bottom:0}.focus-panel{border:1px solid var(--rule);background:#fffdf87a;align-content:start;gap:32px;padding:clamp(28px,4vw,46px);display:grid}.contact-card{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);align-content:center;gap:20px;padding:clamp(28px,4vw,46px);display:grid;position:relative}.contact-intro{color:#3f4743;max-width:620px;margin-bottom:0;font-size:clamp(1.08rem,1.45vw,1.34rem)}.email-copy{border:1px solid var(--accent-deep);width:fit-content;max-width:100%;min-height:48px;color:var(--accent-deep);font:inherit;text-align:center;cursor:pointer;transition:background-color .22s var(--ease), border-color .22s var(--ease), color .22s var(--ease);background:#fffdf885;align-items:center;padding:12px 16px;display:inline-grid;position:relative}.email-copy:hover{border-color:var(--accent);background:var(--white)}.email-copy:focus-visible{outline:1px solid var(--accent);outline-offset:4px}.email-copy-state{opacity:0;transition:opacity .18s var(--ease), transform .18s var(--ease);grid-area:1/1;justify-content:center;align-items:center;gap:10px;display:inline-flex;transform:translateY(5px)rotateX(-18deg)}.email-copy-sizer{color:#0000;pointer-events:none;-webkit-user-select:none;user-select:none;visibility:hidden;grid-area:1/1;padding-right:26px;font-size:clamp(.95rem,1.15vw,1.08rem);line-height:1.2}.email-copy-state-active{opacity:1;transform:translateY(0)rotateX(0)}.email-copy-state-idle{min-width:0}.email-copy-state-feedback{color:var(--accent-deep);letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;font-weight:780}.email-copy-text{overflow-wrap:anywhere;color:#3f4743;min-width:0;font-size:clamp(.95rem,1.15vw,1.08rem);line-height:1.2}.email-copy-icon{width:16px;height:16px;color:var(--accent);flex:0 0 16px;position:relative}.email-copy-icon-back,.email-copy-icon-front{background:var(--paper);border:1.5px solid;width:10px;height:12px;position:absolute}.email-copy-icon-back{opacity:.55;top:1px;left:1px}.email-copy-icon-front{bottom:1px;right:1px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.focus-panel p{max-width:640px;font-family:var(--serif);margin-bottom:0;font-size:clamp(1.75rem,3.2vw,3.2rem);line-height:1.08}.focus-panel ul{border-top:1px solid var(--rule);gap:0;margin:0;padding:0;list-style:none;display:grid}.focus-panel li{border-bottom:1px solid var(--rule);color:#3f4743;grid-template-columns:32px minmax(0,1fr);align-items:start;padding:17px 0;font-weight:650;display:grid}.focus-panel li:before{color:var(--accent);content:"-";display:block}.site-footer{border-top:1px solid var(--rule);color:var(--muted);justify-content:space-between;align-items:center;gap:24px;padding:34px 0 44px;font-size:.9rem;display:flex}.footer-tags{flex-wrap:nowrap;justify-content:flex-end;gap:8px;min-width:0;display:flex}.footer-tags span{min-height:30px;color:var(--muted);letter-spacing:clamp(.03em,.7vw,.08em);white-space:nowrap;text-transform:uppercase;background:#fffdf861;border:1px solid #1f252321;flex:0 auto;align-items:center;padding:5px clamp(6px,1vw,10px);font-size:clamp(.56rem,1.2vw,.72rem);font-weight:700;display:inline-flex}.site-footer p{color:var(--ink);font-family:var(--serif);margin-bottom:0;font-size:1.25rem}.section-reveal{animation:reveal-up .76s var(--ease) both}.signal-strip{animation-delay:.12s}.profile-grid{animation-delay:.18s}.timeline{animation-delay:.24s}.focus{animation-delay:.3s}.contact{animation-delay:.36s}@keyframes reveal-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@media (hover:hover){.portrait-stage:hover .portrait-panel-back{transform:translate(-8px,8px)}.portrait-stage:hover .portrait-panel-mid{transform:translate(8px,-8px)}}@media (max-width:760px){.site-shell{width:min(100% - 28px,680px)}.site-header{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:14px;padding:16px 0 18px;display:flex;position:relative}.nav-links{justify-content:flex-end;gap:clamp(12px,3.4vw,24px);width:auto;font-size:.68rem}.nav-links .nav-contact{min-height:32px;padding:6px 10px}.hero{grid-template-columns:1fr;gap:18px;min-height:auto;padding-top:32px}.hero-copy{max-width:100%;display:contents}.hero .eyebrow{order:1;margin-bottom:2px}.hero-title{order:3;margin-bottom:10px}.hero-lede{order:4;margin-bottom:14px}.hero-actions{order:5;grid-template-columns:1fr;display:grid}.button{width:100%}.portrait-stage{aspect-ratio:.76;order:2;justify-self:center;width:min(82vw,430px);min-height:auto;margin-block:6px 12px;margin-inline:auto}.portrait-frame{inset:7% 6%}.portrait-panel-back{width:80%;top:0;right:8%}.portrait-panel-mid{width:76%;bottom:0;right:3%}.signal-strip,.profile-grid,.timeline,.focus,.contact{grid-template-columns:1fr}.signal-strip{margin-bottom:56px}.signal{border-right:0;border-bottom:1px solid var(--rule)}.signal:last-child{border-bottom:0}.timeline-item{grid-template-columns:1fr;gap:8px}.site-footer{flex-direction:column;align-items:flex-start}.footer-tags{justify-content:flex-start;width:100%}}@media (max-width:560px){body{background:linear-gradient(90deg, #1f25230a 1px, transparent 1px) 50% 0 / 50% 100%, var(--paper)}h1{font-size:clamp(3rem,12.8vw,4.25rem)}.hero-lede{font-size:1.08rem;line-height:1.5}.portrait-stage{width:min(88vw,360px)}.focus-panel{padding:24px 20px}.focus-panel li{grid-template-columns:24px minmax(0,1fr);padding:16px 0}.footer-tags{gap:5px}.footer-tags span{letter-spacing:.02em;min-height:28px;padding:4px 5px;font-size:clamp(.45rem,1.9vw,.56rem)}}@media (max-width:360px){.site-header{gap:8px}.nav-links{letter-spacing:.08em;gap:8px;font-size:.62rem}.nav-links .nav-contact{padding:6px 7px}.footer-tags{gap:4px}.footer-tags span{padding-inline:4px;font-size:.43rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
