:root{--bg:#0b0b0d;--panel:#111114;--line:#2a2a30;--text:#f2f0f5;--muted:#a7a5b0;--accent:#b98aff;--display:'Barlow Condensed','Arial Narrow',sans-serif;--body:'DM Sans',sans-serif;--mono:'IBM Plex Mono',monospace;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}a:hover{color:var(--accent)}::selection{color:#0b0b0d;background:var(--accent)}.mono{font-family:var(--mono);font-size:.75rem;font-weight:400;letter-spacing:.07em}.wrap{width:min(1216px,calc(100% - 112px));margin-inline:auto}.page{margin-left:88px}.rail{width:88px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;flex-direction:column;padding:25px 0;background:#09090b;z-index:10}.monogram{position:relative;font-size:22px;font-weight:700;letter-spacing:-2px;border:1px solid #4a4652;width:44px;height:44px;display:grid;place-items:center}.monogram span{width:8px;height:8px;background:var(--accent);position:absolute;top:-4px;right:-4px}.rail nav{display:flex;flex-direction:column;gap:32px}.rail nav a{writing-mode:vertical-rl;transform:rotate(180deg);text-transform:uppercase;letter-spacing:.09em;font-size:.875rem;color:#9b98a3}.rail nav a:hover,.rail nav a[aria-current]{color:var(--accent)}.rail-foot{writing-mode:vertical-rl;transform:rotate(180deg);color:#8a8793;font-size:.75rem}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font-size:.875rem;font-weight:700;letter-spacing:.045em}.wordmark span{color:#8e8999}.top-caption{color:#918c9b;font-size:.75rem}.contact-top{font-size:.875rem;display:flex;gap:28px;align-items:center}.plus{font-size:1.45rem;color:var(--accent);font-weight:400;line-height:1}.mobile-nav{display:none}.hero{padding-top:72px;display:grid;grid-template-columns:1.4fr .8fr;gap:0 9%;position:relative}.eyebrow{color:var(--accent);margin:0 0 30px}.hero h1{font-family:var(--display);font-weight:700;font-size:clamp(7rem,12.3vw,12rem);letter-spacing:-.035em;line-height:.86;margin:0 0 32px;text-transform:uppercase}.hero h1 span{color:transparent;-webkit-text-stroke:1px #c5becf}.hero-intro{font-size:clamp(1.1rem,1.8vw,1.45rem);line-height:1.5;letter-spacing:-.025em;margin:0 0 15px;font-weight:400;color:#d9d5e0}.hero-intro strong{font-weight:500}.hero-description{max-width:530px;line-height:1.75;color:var(--muted);margin-bottom:27px}.text-link{display:inline-flex;align-items:center;gap:35px;padding:0 0 12px;border-bottom:1px solid #62576f;font-size:.875rem;font-weight:600}.hero-side{align-self:end;border-top:1px solid var(--accent);padding-top:18px;margin-bottom:3px}.profile-label{display:flex;justify-content:space-between;gap:16px;color:#aaa1b4}.profile-label span{color:var(--accent)}.side-statement{font-family:var(--display);font-size:clamp(2.8rem,4vw,4.1rem);line-height:1.06;letter-spacing:-.015em;margin:36px 0}.side-statement em{font-style:normal;color:var(--accent)}.profile-details{margin:0}.profile-details div{padding:16px 0;border-top:1px solid var(--line)}.profile-details dt{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;color:#9e96aa;margin-bottom:7px}.profile-details dd{font-size:1rem;margin:0}.side-tags{display:flex;flex-wrap:wrap;gap:15px;color:#a79cae;padding-top:20px;border-top:1px solid var(--line)}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;color:#948d9f;border-top:1px solid var(--line);padding:23px 0;margin-top:62px}.hero-bottom span:last-child{display:flex;gap:20px}.section{display:grid;grid-template-columns:175px minmax(0,1fr);gap:45px;padding-block:94px;border-top:1px solid var(--line);scroll-margin-top:20px}.section-label{color:#a49cac;padding-top:10px;display:flex;flex-direction:column;gap:16px}.section-label>span{color:var(--accent);font-size:.875rem}h2{font-family:var(--display);font-size:clamp(3rem,5.4vw,5rem);font-weight:600;line-height:1;letter-spacing:-.02em;margin:0 0 40px}h2>span{color:#8f8899}h2 em{font-style:normal;color:var(--accent)}.bio-columns{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px}.lead{font-size:1.45rem;line-height:1.5;letter-spacing:-.025em;margin:0}.prose p{color:var(--muted);line-height:1.8;margin:0 0 19px}.prose a{color:var(--text);border-bottom:1px solid #70617e}.bio-footer{display:flex;flex-wrap:wrap;gap:18px 30px;color:#aea4bc;border-top:1px solid var(--line);padding-top:26px;margin-top:32px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:25px}.section-heading h2{margin-bottom:22px}.print-button{background:transparent;color:#d0c9d9;border:1px solid #48404f;padding:11px 16px;font-size:.875rem;white-space:nowrap;cursor:pointer;margin-top:6px}.print-button:hover{border-color:var(--accent);color:var(--accent)}.print-button span{margin-left:14px}.section-intro{color:var(--muted);line-height:1.7;max-width:580px;margin:0 0 40px}.experience{display:grid;grid-template-columns:145px 1fr;gap:25px;border-top:1px solid var(--line);padding:30px 0}.experience:last-child{padding-bottom:0}.exp-number{color:var(--accent);padding-top:6px;font-size:.75rem}.experience h3{font-size:1.5rem;font-weight:500;letter-spacing:-.035em;margin:0 0 8px}.experience p{color:var(--muted);line-height:1.75;margin:0 0 18px;max-width:640px}.experience .role{font-size:.875rem;color:#c0b5cc;margin-bottom:16px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags span{font-family:var(--mono);font-size:.75rem;border:1px solid #36303e;color:#b4a7c1;padding:6px 10px}.project{padding:30px 34px 28px;background:var(--panel);border:1px solid var(--line);position:relative;transition:border-color .2s}.project:hover{border-color:#77608d}.project+.project{margin-top:20px}.project-palen{border-left:3px solid var(--accent)}.project-jm{border-left:3px solid #9e9aa9}.project-top{display:flex;justify-content:space-between;color:#aea4ba}.project-top>span:last-child{color:#9b8ea7}.project h3{font-size:clamp(2.6rem,4vw,3.6rem);letter-spacing:-.055em;font-weight:500;line-height:1.1;margin:36px 0 18px}.project h3 span{color:var(--accent)}.project-jm h3{font-family:var(--display);font-size:3.8rem;letter-spacing:-.01em}.project-jm h3 span{color:#a8a0b5}.project p{color:var(--muted);line-height:1.75;max-width:600px;margin:0 0 30px}.project-bottom{border-top:1px solid #332b3b;padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.project-tags{color:#a397ae}.project-link{font-size:.875rem;display:flex;align-items:center;gap:25px;white-space:nowrap}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.focus-grid article{padding:28px 24px 0 0}.focus-grid article+article{padding-left:24px;border-left:1px solid var(--line)}.focus-grid .mono{color:var(--accent)}.focus-grid h3{font-size:1.25rem;line-height:1.35;font-weight:500;letter-spacing:-.02em;margin:30px 0 15px}.focus-grid p{color:var(--muted);line-height:1.75;margin:0}.contact-section{padding-bottom:86px}.contact-section h2{font-size:clamp(4rem,7vw,7rem);margin-bottom:35px}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:45px}.contact-grid>p{color:var(--muted);line-height:1.8;margin:0}.contact-links{border-top:1px solid var(--line)}.contact-links a{display:grid;grid-template-columns:1fr auto;gap:12px;padding:20px 0;border-bottom:1px solid var(--line)}.contact-links a>.mono{grid-column:1/-1;color:#aaa0b5}.contact-links a>span:nth-child(2){font-size:1rem}.contact-links .plus{justify-self:end}footer{padding:28px 0 35px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:#a099aa;font-size:.875rem}footer>.mono{font-size:.75rem}footer a{font-size:.875rem}.skip{position:fixed;top:-80px;left:110px;z-index:100;padding:15px;background:var(--accent);color:#111}.skip:focus{top:12px}.hero-main,.hero-side{animation:enter .7s ease-out both}.hero-side{animation-delay:.1s}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero{padding-top:90px}.hero h1{font-size:13rem}}
@media(max-width:1150px){.wrap{width:calc(100% - 64px)}.top-caption{display:none}.section{grid-template-columns:125px minmax(0,1fr);gap:30px}.bio-columns{gap:30px}.hero{column-gap:6%}.experience{grid-template-columns:110px 1fr}.contact-grid{grid-template-columns:1fr}.project-bottom{align-items:flex-start;flex-direction:column}.section-heading{display:block}.print-button{margin:0 0 24px}}
@media(max-width:800px){.rail{display:none}.page{margin:0}.wrap{width:calc(100% - 48px)}.topbar{height:74px}.mobile-nav{display:flex;justify-content:space-between;gap:12px;padding:18px 24px;border-bottom:1px solid var(--line);font-size:.875rem}.hero{padding-top:48px;grid-template-columns:1fr .75fr;gap:0 35px}.hero h1{font-size:clamp(6rem,15vw,9rem)}.hero-intro{font-size:1.15rem}.hero-side{margin-bottom:0}.side-statement{font-size:2.75rem}.hero-description{font-size:1rem}.profile-label{font-size:.75rem;flex-direction:column}.section{grid-template-columns:1fr;gap:28px;padding-block:62px}.section-label{flex-direction:row;gap:18px}.bio-columns{gap:35px}.contact-grid{grid-template-columns:1fr 1fr;gap:30px}.skip{left:20px}footer>.mono{display:none}}
@media(max-width:560px){.wrap{width:calc(100% - 40px)}.topbar{gap:14px}.wordmark{font-size:.75rem}.contact-top{gap:12px}.mobile-nav{padding-inline:20px}.hero{grid-template-columns:1fr}.hero h1{font-size:clamp(6rem,25vw,9rem)}.hero .eyebrow{font-size:.75rem;letter-spacing:.04em}.hero-description{max-width:none}.hero-side{margin-top:45px}.profile-label{flex-direction:row}.side-statement{font-size:2.3rem;margin:25px 0}.profile-details div{display:grid;grid-template-columns:85px 1fr;gap:10px;align-items:center}.profile-details dt{margin:0}.profile-details dd{font-size:.875rem}.side-tags{padding-top:15px}.hero-bottom{font-size:.75rem;line-height:1.7;margin-top:30px;gap:20px}.hero-bottom>span:last-child{text-align:right;display:block}.hero-bottom>span:last-child>span{margin-left:8px}h2{font-size:3.2rem;margin-bottom:28px}.bio-columns{grid-template-columns:1fr;gap:26px}.lead{font-size:1.3rem}.bio-footer{gap:14px;font-size:.75rem}.experience{grid-template-columns:1fr;gap:16px;padding:27px 0}.experience h3{font-size:1.4rem}.project{padding:24px}.project-top{font-size:.75rem;gap:16px}.project h3{font-size:3rem}.project-jm h3{font-size:3.4rem}.project-tags{font-size:.75rem;letter-spacing:.025em}.focus-grid{grid-template-columns:1fr}.focus-grid article,.focus-grid article+article{padding:26px 0;border-left:0;border-bottom:1px solid var(--line)}.focus-grid h3{margin:18px 0 12px}.contact-grid{grid-template-columns:1fr}.contact-section .eyebrow{font-size:.75rem;line-height:1.8}.contact-section h2{font-size:4.3rem}.contact-section{padding-bottom:55px}footer{font-size:.75rem}footer a{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:11pt}.rail,.topbar,.mobile-nav,.hero-bottom,.print-button,.text-link,.skip,.side-tags,footer,#enfoque{display:none}.page{margin:0}.wrap{width:100%}.hero{padding-top:0;grid-template-columns:1.2fr 1fr;gap:30px}.hero h1{font-size:65pt;line-height:.9}.hero h1 span{color:#222;-webkit-text-stroke:0}.hero-intro{font-size:14pt}.hero-description{font-size:11pt}.hero-side{align-self:center}.side-statement{font-size:26pt;margin:20px 0}.section{padding:24px 0;grid-template-columns:90px 1fr;gap:20px}h2,.contact-section h2{font-size:30pt;margin-bottom:20px}.bio-columns{gap:25px}.lead{font-size:14pt}.experience{padding:18px 0;break-inside:avoid}.project{background:white;break-inside:avoid;padding:18px}.project h3,.project-jm h3{font-size:28pt}.project p{margin-bottom:14px}.project-bottom{flex-direction:row}.contact-section .eyebrow{display:none}.contact-grid{grid-template-columns:1fr 1fr}.prose p,.experience p,.project p,.hero-description,.contact-grid>p,.hero-intro,.section-intro,h2>span,.profile-label,.project-top,.project-tags,.bio-footer,.tags span{color:#333}.section-label,.eyebrow,.exp-number,.role,.project h3 span,h2 em,.side-statement em,.profile-details dt{color:#56347b}.tags span{border-color:#aaa}.hero-main,.hero-side{animation:none}.project-link{color:#56347b}.project-link:after{content:' (' attr(href) ')';font-size:8pt;overflow-wrap:anywhere}.plus{display:none}}
