:root{--paper:#eef2f2;--ink:#152e3b;--muted:#526873;--line:#c9d4d8;--blue:#126885;--sky:#d7e7ee;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;--sans:'Avenir Next',Avenir,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}::selection{background:#b1d7e8}.wrap{width:min(1320px,calc(100% - 96px));margin:auto}.skip{position:absolute;left:15px;top:-100px;z-index:10;background:white;padding:12px}.skip:focus{top:10px}.header{position:sticky;top:0;z-index:5;background:rgba(238,242,242,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.bar{display:flex;align-items:center;gap:32px;min-height:88px}.brand{display:flex;align-items:center;gap:13px;font-weight:600;white-space:nowrap}.brand b{font-family:var(--mono);font-weight:400;font-size:25px;border-right:1px solid var(--line);padding-right:16px}.nav{display:flex;gap:25px;margin-left:auto;font-size:13px}.nav a:hover{color:var(--blue)}.languages{display:flex;border:1px solid #afc0c8;padding:4px;gap:3px;font:11px var(--mono)}.languages a{padding:9px}.languages [aria-current]{background:var(--ink);color:white}.eyebrow,.micro{font:11px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.13em}.eyebrow{color:var(--blue);margin:0 0 25px}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:75px;padding:85px 0 65px;align-items:center}.hero h1{font-size:clamp(54px,6.4vw,88px);line-height:1.04;letter-spacing:-.065em;font-weight:500;margin:0 0 30px}.hero h1 span{color:var(--blue)}.intro{max-width:500px;color:var(--muted);font-size:17px}.actions{display:flex;gap:26px;align-items:center;margin-top:33px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;gap:25px;padding:14px 21px;background:var(--ink);color:white;font-size:13px}.text-link{font-size:13px;border-bottom:1px solid #8fa6b2;padding-bottom:4px}.signal{position:relative;min-height:380px;background:var(--sky);overflow:hidden}.signal svg{width:100%;height:350px;display:block}.signal-label{position:absolute;left:24px;top:23px;color:#365568;font:10px var(--mono);letter-spacing:.08em}.signal-bottom{display:flex;justify-content:space-between;border-top:1px solid #aac4d1;margin:0 24px;padding:15px 0;font:10px var(--mono);color:#365568}.signal .dot{fill:#137b9d}.credentials{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:24px 0 28px;color:var(--muted);font:11px var(--mono);letter-spacing:.03em}.section{padding:90px 0;border-top:1px solid var(--line)}.section-top{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-bottom:45px;align-items:end}h2{font-size:clamp(34px,4.2vw,56px);font-weight:500;line-height:1.12;letter-spacing:-.045em;margin:0}h3{font-size:25px;font-weight:500;letter-spacing:-.035em;line-height:1.2;margin:0 0 14px}.section-top p:last-child{color:var(--muted);max-width:470px;margin:0}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.project{border-top:2px solid var(--ink);padding:22px 0}.project-number{display:flex;justify-content:space-between;color:var(--blue);margin-bottom:44px}.project p{font-size:14px;color:var(--muted)}.tags{font:10px var(--mono);letter-spacing:.04em;color:var(--blue);margin:22px 0}.project details{border-top:1px solid var(--line);margin-top:25px;padding-top:15px;font-size:13px}.project summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between}.project summary::after{content:'+';font-size:18px}.project details[open] summary::after{content:'−'}.project details p{font-size:13px;margin-top:15px}.photography{background:#142d3a;color:#f1f5f6}.photography .eyebrow{color:#9fcbdc}.photography .section-top p:last-child{color:#bed0d8}.gallery{display:grid;grid-template-columns:1.25fr .75fr;gap:30px}.photo{border:0;padding:0;color:inherit;background:none;text-align:left;width:100%}.photo figure{margin:0}.photo img{width:100%;height:390px;object-fit:cover;display:block;transition:filter .3s}.photo:hover img{filter:brightness(1.08)}.photo:nth-child(2){padding-top:85px}.photo:nth-child(2) img{height:305px}.photo:nth-child(3) img{height:290px}.photo:nth-child(4) img{height:375px}.photo:nth-child(4){margin-top:-85px}.photo figcaption{display:flex;justify-content:space-between;padding:13px 0 28px;font:11px var(--mono);color:#c6d8df}.media-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:85px}.podcast-art{padding:36px;background:#dce8eb;min-height:330px;display:flex;flex-direction:column;justify-content:space-between}.podcast-art h3{font-size:clamp(38px,4.5vw,62px);letter-spacing:-.06em}.waves{display:flex;align-items:center;gap:7px;height:80px;margin:25px 0}.waves i{width:5px;background:#377790;height:var(--h)}.podcast-art p{font-size:13px;color:var(--muted);max-width:300px}.episodes{list-style:none;padding:0;margin:0}.episodes li{border-top:1px solid var(--line)}.episodes a{display:grid;grid-template-columns:1fr auto;gap:18px;padding:24px 0}.episodes a:hover h3{color:var(--blue)}.episodes h3{font-size:21px;margin:8px 0}.episodes .micro{color:var(--muted);font-size:10px}.press{margin-top:30px;padding-top:22px;border-top:1px solid var(--line);font-size:13px}.about{display:grid;grid-template-columns:.6fr 1.4fr;gap:80px}.about p{font-size:22px;line-height:1.7;margin-top:0;max-width:850px}.contact{padding:65px 0;background:#dce8eb}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:30px}.contact h2{font-size:42px}.footer{display:flex;justify-content:space-between;gap:20px;padding:25px 0;font:10px var(--mono);color:var(--muted)}dialog{padding:20px;background:#142d3a;border:1px solid #67818c;color:white;max-width:94vw;max-height:94vh}dialog::backdrop{background:rgba(5,17,25,.92)}dialog img{display:block;max-width:85vw;max-height:75vh;object-fit:contain}dialog button{display:block;margin:0 0 15px auto;background:none;color:white;border:1px solid #8cabb8;padding:8px 16px}dialog p{font:12px var(--mono);margin-bottom:0}.hero{animation:appear .7s ease-out}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(min-width:1500px){.hero{padding-top:110px;padding-bottom:90px}}@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.bar{gap:18px}.nav{gap:15px}.brand span{display:none}.hero{gap:35px}.hero h1{font-size:60px}.signal{min-height:340px}.signal svg{height:300px}.media-layout{gap:35px}.about{gap:35px}}@media(max-width:700px){html{scroll-padding-top:135px}.wrap{width:calc(100% - 36px)}.bar{flex-wrap:wrap;gap:0;min-height:110px;padding:13px 0}.brand span{display:inline;font-size:13px}.brand b{font-size:21px}.languages{margin-left:auto}.nav{order:3;width:100%;justify-content:space-between;margin-top:13px;gap:8px;font-size:11px}.hero{grid-template-columns:1fr;padding:45px 0 30px;gap:35px}.hero h1{font-size:58px}.intro{font-size:16px}.signal{min-height:290px}.signal svg{height:255px}.credentials{flex-wrap:wrap;font-size:10px;gap:15px}.section{padding:55px 0}.section-top{grid-template-columns:1fr;gap:22px;margin-bottom:32px}.projects{grid-template-columns:1fr;gap:12px}.project-number{margin-bottom:24px}.gallery{gap:18px}.photo img,.photo:nth-child(2) img,.photo:nth-child(3) img,.photo:nth-child(4) img{height:220px}.photo:nth-child(2){padding-top:40px}.photo:nth-child(4){margin-top:-40px}.photo figcaption{font-size:9px;gap:5px}.media-layout,.about{grid-template-columns:1fr;gap:30px}.podcast-art{min-height:290px}.about p{font-size:19px}.contact-row{display:block}.contact-row .actions{margin-top:25px}.contact h2{font-size:36px}.footer{line-height:1.8;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.podcast-banner{display:block;width:100%;height:160px;object-fit:contain;margin-bottom:25px}.archive-intro{padding:65px 0}.archive-intro .eyebrow{margin-top:45px}.archive-intro h1{font-size:clamp(48px,7vw,90px);font-weight:500;letter-spacing:-.055em;line-height:1.05;margin:0 0 28px}.resource{display:grid;grid-template-columns:280px 1fr;gap:60px;border-top:1px solid var(--line);padding:40px 0;align-items:center;scroll-margin-top:110px}.resource img{width:100%;height:auto;display:block}.resource h2{font-size:35px}.resource p:not(.eyebrow){max-width:660px;color:var(--muted);font-size:16px}.resource-role{font-size:12px!important}.image-credit{font:10px var(--mono);color:var(--muted)}.press-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px}.press-card{padding:25px 0;border-top:2px solid var(--ink)}.press-card p:not(.eyebrow){color:var(--muted);font-size:15px}@media(max-width:700px){.resource{grid-template-columns:1fr;gap:25px}.resource img{max-width:300px}.resource h2{font-size:30px}.press-grid{grid-template-columns:1fr}.archive-intro{padding:40px 0}.podcast-banner{height:130px}}
.photo-collection{border-top:1px solid #47616f;margin-top:45px;padding-top:35px}.collection-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:30px}.collection-heading h3{margin:0}.selection-grid{columns:2;column-gap:30px}.from500{margin:0 0 32px;break-inside:avoid}.selection-grid .photo img{height:auto;width:100%;object-fit:contain}.photo-title{display:block;text-align:left;font-size:17px;margin-top:15px}.from500 figcaption{display:flex;justify-content:space-between;font:11px var(--mono);color:#c6d8df;padding-top:8px}.from500 figcaption a{border-bottom:1px solid #8aa7b4;padding-bottom:3px}.dialog-source{font:12px var(--mono);text-decoration:underline;display:inline-block;margin-top:12px}.dialog-source[hidden]{display:none}@media(max-width:700px){.collection-heading{display:block}.collection-heading h3{margin-bottom:18px}.selection-grid{columns:1}.from500{max-width:500px;margin:0 auto 35px}}

.photo-grid-unified{columns:3;column-gap:28px}.gallery-item{margin:0 0 30px;break-inside:avoid}.photo-grid-unified .photo{display:block;padding:0;margin:0}.photo-grid-unified .photo img{display:block;width:100%;height:auto;object-fit:contain}.photo-grid-unified .photo-title{font-size:13px;color:#c6d8df;margin-top:12px}.photo-more{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #47616f;padding-top:26px;margin-top:20px;color:#c6d8df;font:11px var(--mono)}@media(max-width:1000px){.photo-grid-unified{columns:2}}@media(max-width:600px){.photo-grid-unified{columns:1}.photo-more{align-items:flex-start;flex-direction:column}}

/* Email is provided by the server only after verification. */
.email-contact {max-width: 360px;}
.email-contact [hidden] {display: none !important;}
.email-contact .button {font: inherit; cursor: pointer;}
.email-contact p {font-size: .9rem; line-height: 1.5;}
.email-contact p:empty {display: none;}
.email-contact altcha-widget {display: block; margin: 1rem 0; color: #173f53;}

.cookie-banner[hidden]{display:none!important}.cookie-banner{position:fixed;z-index:1000;bottom:0;left:0;right:0;background:#f5f8f9;color:#183f52;border-top:1px solid #9fb7c2;box-shadow:0 -6px 28px #12334422;max-height:75vh;overflow:auto}.cookie-inner{max-width:1100px;margin:auto;padding:22px 28px}.cookie-banner h2{font-size:22px;margin:0 0 8px;letter-spacing:normal}.cookie-banner p{font-size:14px;line-height:1.5;max-width:950px;margin:8px 0 14px}.cookie-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}.cookie-actions button{background:#173f53;color:#fff;border:1px solid #173f53;padding:11px 18px;font:inherit;font-size:14px;cursor:pointer}.cookie-actions button:hover{background:#315a6d}.cookie-banner summary{font-size:13px;cursor:pointer}.cookie-banner a{text-decoration:underline;font-size:13px}.cookie-settings{border:0;background:none;color:inherit;text-decoration:underline;padding:0;font:inherit;cursor:pointer}.cookie-banner button:focus-visible,.cookie-settings:focus-visible{outline:3px solid #387c9c;outline-offset:3px}@media(max-width:600px){.cookie-inner{padding:18px}.cookie-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cookie-actions button{font-size:13px;padding:12px 8px}}

.personal-project{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:center;border-top:1px solid var(--line);background:transparent}.personal-cover{display:block;width:100%;height:260px;object-fit:cover}.personal-project .eyebrow{font-size:11px;margin:0 0 16px}.personal-project h3{margin-top:0}.personal-project .text-link{display:inline-block;margin-top:12px}@media(max-width:700px){.personal-project{grid-template-columns:1fr;gap:24px}.personal-cover{height:210px}}
