:root{--bg:#ffffff;--panel:#e9e5db;--ink:#202b27;--muted:#59635d;--accent:#8b3f28;--line:#c9c9bd;--dark:#233b31;--light:#f4f1e7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:22px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;background:var(--ink);color:var(--bg);padding:14px;z-index:10}.skip:focus{top:12px}.preview{background:var(--dark);color:var(--light);padding:11px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;letter-spacing:.09em}.preview button{background:none;border:0;color:inherit;font-size:11px}.preview button span{margin-left:10px}header{display:flex;justify-content:space-between;align-items:center;margin:0 5%;padding:28px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:16px;font-family:Georgia,serif;font-size:32px;letter-spacing:-3px}.brand span{font-family:Arial,sans-serif;font-size:10px;letter-spacing:.17em;font-weight:bold}nav{display:flex;gap:35px;align-items:center;font-size:12px}nav a:hover,.text-link:hover{color:var(--accent)}.nav-contact{border-left:1px solid var(--line);padding-left:30px}.hero{display:grid;grid-template-columns:1.05fr 1fr;margin:0 5%;padding:35px 0 48px;gap:40px;min-height:710px}.hero-copy{padding:24px 0 0}.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:bold;color:var(--accent);line-height:1.6}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(76px,8.8vw,138px);font-weight:normal;letter-spacing:-.065em;line-height:.94;margin:35px 0 28px}em{font-weight:normal}h1 em,h2 em{color:var(--accent)}.roles{font-size:15px;letter-spacing:.03em}.intro{font-family:Georgia,serif;font-size:24px;line-height:1.4;color:var(--muted);margin:24px 0 28px}.actions{display:flex;align-items:center;gap:28px}.button{display:inline-flex;align-items:center;gap:45px;background:var(--dark);color:var(--light);padding:19px 23px;font-size:12px}.button:hover{background:var(--accent);color:var(--bg)}.text-link{font-size:12px;border:0;background:none;padding:0;border-bottom:1px solid var(--line);padding-bottom:6px}.hero-foot{margin-top:50px;display:flex;gap:17px;align-items:center;font-size:8px;letter-spacing:.13em;line-height:1.8}.rule{width:40px;height:1px;background:var(--accent)}figure{margin:0}.hero-image{position:relative;max-height:675px;overflow:hidden;background:var(--panel)}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block;filter:saturate(.68)}.hero-image figcaption{position:absolute;bottom:0;left:0;right:0;padding:13px 20px;background:#13221ed9;color:#fff;font-size:9px;letter-spacing:.04em}.ticker{background:var(--dark);color:var(--light);display:flex;justify-content:space-evenly;gap:20px;padding:24px 5%;font-size:10px;letter-spacing:.18em}.ticker span:nth-child(even){color:#c8916f}.section{padding:90px 5%}h2{font-family:Georgia,serif;font-size:clamp(38px,4.4vw,68px);font-weight:normal;letter-spacing:-.045em;line-height:1.07;margin-bottom:32px}.about{display:grid;grid-template-columns:1fr 1fr;gap:11%}.portrait{max-width:260px;margin-top:35px}.portrait img{width:100%;height:240px;object-fit:cover;filter:grayscale(1)}figcaption{font-size:9px;color:var(--muted);padding-top:9px}.bio{padding-top:35px}.bio p{color:var(--muted);font-size:14px;line-height:1.85}.bio .lead{font-family:Georgia,serif;font-size:25px;color:var(--ink);line-height:1.45}.teaching{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}.teaching h3{font-family:Georgia,serif;font-size:30px;font-weight:normal;margin:15px 0}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:24px}.section-head p:not(.eyebrow){font-size:12px;line-height:1.7;color:var(--muted);padding-bottom:22px}.music{background:var(--panel)}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.video-poster{position:relative;aspect-ratio:16/10;background:var(--dark);overflow:hidden}.video-poster img{width:100%;height:100%;object-fit:cover;filter:brightness(.7) saturate(.6);transition:transform .3s}.video-card:hover img{transform:scale(1.03)}.video-poster button{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:13px;background:transparent;color:white;border:0;font-size:11px}.video-poster button span{border:1px solid #fffb;border-radius:50%;width:62px;height:62px;display:grid;place-items:center;font-size:18px;padding-left:3px}.video-label{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.video-label h3{font-family:Georgia,serif;font-size:22px;font-weight:normal;margin:0}.video-label>span{font-size:9px;letter-spacing:.1em;align-self:center}.playlist{display:flex;justify-content:space-between;padding:25px 0;font-size:13px}.playlist a{text-decoration:underline;text-underline-offset:5px}.media-note{font-size:10px;color:var(--muted);line-height:1.6;margin-bottom:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.gallery-grid button{padding:0;border:0;background:var(--panel);text-align:left}.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:saturate(.7)}.gallery-grid span{display:block;padding:14px;font-size:10px}.contact{background:var(--dark);color:var(--light);display:grid;grid-template-columns:1fr 1fr;gap:20px 8%}.contact>.eyebrow{grid-column:1/-1;color:#d9ab88}.contact h2{font-size:clamp(54px,7vw,100px);margin:10px 0}.contact h2 em{color:#d9ab88}.contact>div{align-self:center}.contact p{font-size:13px;color:#c4cec5}.email{display:block;font-family:Georgia,serif;font-size:clamp(24px,3vw,42px);margin:22px 0}.contact button{color:#e1dfd1}.contact #copy-status{display:block;font-size:11px;min-height:24px;margin-top:12px}footer{padding:35px 5%;display:flex;justify-content:space-between;align-items:center;gap:22px;font-size:10px;color:var(--muted)}footer p{margin:0}footer>.brand{color:var(--ink)}dialog{border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:20px;width:min(1000px,94vw);max-height:92vh}dialog::backdrop{background:#08110de8}#close-viewer{display:block;margin:0 0 18px auto;border:1px solid var(--line);padding:10px 16px;background:none}#viewer-content img{display:block;max-width:100%;max-height:70vh;margin:auto}#viewer-content iframe{display:block;width:100%;aspect-ratio:16/9;border:0}#viewer-note{font-size:12px;margin:15px 0 0}#viewer-note a{text-decoration:underline}
@media(max-width:850px){header{padding:24px 0}nav{gap:20px}.brand span{display:none}.hero{min-height:0;gap:25px}.hero-image{max-height:620px}h1{font-size:84px}.hero-foot{margin-top:35px}.actions{align-items:start;flex-direction:column;gap:20px}.section{padding:65px 5%}.about{gap:7%}.bio{padding-top:15px}.section-head{align-items:start}footer p{display:none}}
@media(max-width:580px){.preview{flex-wrap:wrap;gap:8px}.preview>span:nth-child(2){display:none}header{margin:0 6%;padding:19px 0}nav{gap:17px;font-size:11px}.nav-contact{padding-left:0;border:0}.hero{margin:0 6%;display:flex;flex-direction:column;padding:25px 0 30px;gap:30px}.hero-copy{padding:0}h1{font-size:90px;margin:25px 0}.intro{font-size:22px}.actions{flex-direction:row;align-items:center}.button{gap:24px;padding:17px 19px}.hero-foot{margin-top:30px}.hero-image{height:470px;width:100%}.hero-image img{object-position:center 36%}.ticker{flex-wrap:wrap;gap:16px 25px;padding:22px 6%;font-size:9px}.ticker span:last-child{display:none}.section{padding:55px 6%}.about{display:block}.portrait{display:none}.bio{padding-top:0}.bio .lead{font-size:23px}.section-head{display:block}.section-head p:not(.eyebrow){padding:0}.video-grid{grid-template-columns:1fr}.video-label h3{font-size:21px}.gallery-grid{grid-template-columns:1fr}.gallery-grid img{aspect-ratio:3/2}.contact{display:block}.contact h2{margin:20px 0 30px}.contact>div p{line-height:1.6}.email{font-size:31px}footer{flex-wrap:wrap;gap:20px}footer>.brand span{display:inline}footer>span{order:3;width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Viewport-aware hero. The comparison iframe already excludes its toolbar. */
:root{--hero-height:calc(100svh - 72px);--hero-gutter:clamp(22px,3vw,64px);--paper:255 255 255}

.site-header{height:72px;margin:0;padding:0 var(--hero-gutter);position:relative;z-index:5;border-bottom:1px solid var(--line);gap:20px;background:var(--bg)}
.site-header .brand{flex-shrink:0}
.site-header nav{margin-left:auto;gap:clamp(16px,2.6vw,35px)}
.header-tools{display:flex;align-items:center;gap:8px}
.header-tools button{background:transparent;border:1px solid var(--line);height:42px;min-width:42px;padding:8px;color:var(--ink);font-size:20px;border-radius:50%}
.header-tools .menu-toggle{display:none;border-radius:3px;font-size:12px;padding-inline:12px}
.hero{display:block;position:relative;isolation:isolate;height:var(--hero-height);min-height:320px;margin:0;padding:0;container-type:size}
.hero-copy{position:absolute;left:var(--hero-gutter);top:50%;transform:translateY(-50%);width:54%;padding:16px 0;z-index:2}
.hero .eyebrow{font-size:clamp(8px,1vw,11px);margin:0 0 14px;line-height:1.5}
.hero h1{font-size:clamp(64px,min(10.4vw,23cqh),176px);margin:0 0 18px;line-height:.92}
.hero .roles{font-size:clamp(12px,1.3vw,17px);line-height:1.45;margin:0 0 12px}
.hero .intro{font-size:clamp(18px,min(2.2vw,4.6cqh),30px);line-height:1.35;margin:0 0 22px}
.hero .actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:20px}
.hero .button{min-height:44px;padding:14px 20px;gap:22px}
.hero .text-link{display:inline-flex;align-items:center;min-height:44px;padding:10px 0}
.hero-foot{margin-top:24px;line-height:1.6}
.hero-image{position:absolute;top:12px;right:0;bottom:0;width:52%;height:auto;max-height:none;padding:0;background:transparent;overflow:visible;display:grid;grid-template-rows:minmax(0,1fr) 26px;z-index:1}
.hero-portrait{display:block;width:100%;height:100%;min-height:0;max-height:none;opacity:1}
.hero-image figcaption{position:static;background:transparent;color:var(--muted);text-align:right;padding:7px 12px 6px;font-size:8px;line-height:13px;white-space:nowrap}
@media(max-height:620px) and (min-width:851px){.hero .intro{margin-bottom:14px}.hero-foot{display:none}.hero h1{margin-bottom:14px}.hero .eyebrow{margin-bottom:10px}.hero-copy{padding-block:12px}}
@media(max-height:460px) and (min-width:851px){.hero .intro{display:none}.site-header{height:58px}.hero h1{font-size:clamp(48px,20cqh,86px)}}
@media(max-width:850px){
 :root{--hero-gutter:18px}
 .site-header{height:56px;gap:10px}
 .site-header .brand{font-size:27px;gap:9px}
 .site-header .brand span{display:inline;font-size:8px;letter-spacing:.12em}
 .header-tools{margin-left:auto;gap:6px}
 .header-tools .menu-toggle{display:block}
 .header-tools button{height:40px;min-width:40px}
 .site-header nav{display:none;position:absolute;left:0;right:0;top:100%;margin:0;padding:8px 18px 14px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 12px 20px #0000000d}
 .site-header.nav-open nav{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .site-header nav a{min-height:44px;display:flex;align-items:center;padding:12px 4px;font-size:14px}
 .site-header .nav-contact{border-left:0}
 .hero{height:min(var(--hero-height),calc(145vw + 16px))}
 .hero-copy{top:18px;bottom:18px;left:var(--hero-gutter);transform:none;width:calc(100% - 36px);padding:0;display:flex;flex-direction:column;align-items:flex-start}
 .hero .eyebrow{font-size:8px;letter-spacing:.13em;max-width:80%;margin-bottom:14px}
 .hero h1{position:relative;isolation:isolate;font-size:clamp(38px,12vw,56px);max-width:80%;margin:0;line-height:.94}
 .hero h1::before{content:"";position:absolute;z-index:-1;inset:-5px -14px -7px -10px;background:linear-gradient(90deg,rgb(var(--paper)/.92),rgb(var(--paper)/.78) 78%,rgb(var(--paper)/0));border-radius:4px}
 .hero-detail{position:relative;top:auto;left:0;isolation:isolate;margin:12px 0 0;width:clamp(130px,34vw,160px);max-width:100%;padding:4px 4px 4px 0;background:transparent}
 .hero-detail::before{content:"";position:absolute;z-index:-1;inset:-16px 0 42px -12px;background:linear-gradient(90deg,rgb(var(--paper)/.88),rgb(var(--paper)/.78) 70%,rgb(var(--paper)/0));mask-image:linear-gradient(180deg,transparent,#000 16px,#000 calc(100% - 36px),transparent);pointer-events:none}
 .hero .roles{font-size:12px;line-height:1.45;margin-bottom:8px;max-width:150px}
 .hero .intro{display:none}
 .hero .actions{flex-direction:column;align-items:flex-start;gap:2px}
 .hero .button{font-size:11px;line-height:1.3;min-height:36px;padding:7px 10px;gap:8px;justify-content:center;background:rgb(var(--paper)/.76);color:var(--ink);border:1px solid var(--line);border-radius:2px}
 .hero .button:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}
 .hero .text-link{font-size:11px;align-self:flex-start;min-height:36px;padding:8px 0;border-bottom-color:transparent}
 .hero .text-link:hover{border-bottom-color:var(--accent)}
 .hero-foot{display:none}
 .hero-image{top:70px;bottom:26px;right:0;width:92%;height:auto;margin:0;grid-template-rows:minmax(0,1fr) 24px}
 .hero-image figcaption{font-size:7px;line-height:12px;padding:6px 8px;white-space:normal}
}
@media(max-width:580px) and (max-height:620px){.hero{height:min(calc(var(--hero-height) - 60px),calc(145vw + 16px))}.hero-image{top:50px}.hero .eyebrow{margin-bottom:10px}.hero h1{font-size:clamp(36px,11.5vw,52px)}.hero .roles{font-size:11px}.hero-copy{top:18px;bottom:14px}}
@media(max-width:350px){.site-header .brand span{display:none}.hero-image{top:20px}}
@media(min-width:431px) and (max-width:580px) and (min-height:621px){.hero-image{top:78px}}
@media(min-width:581px) and (max-width:850px) and (min-height:461px){
 .hero-copy{top:clamp(28px,6cqh,60px)}
 .hero h1{font-size:clamp(64px,11vw,84px)}
 .hero-detail{position:relative;top:auto;margin-top:14px;width:min(300px,45vw);max-width:300px}
 .hero .actions{flex-direction:row;align-items:center;gap:22px}
 .hero .roles{max-width:none}
 .hero .intro{display:block;font-size:22px;line-height:1.35;margin:0 0 20px}
 .hero-image{bottom:26px}
}
/* A wide, short phone uses a compact horizontal action row. */
@media(min-width:581px) and (max-width:850px) and (max-height:460px){
 .hero{min-height:240px;height:var(--hero-height)}
 .hero-copy{top:12px;bottom:12px}
 .hero h1{font-size:clamp(42px,15cqh,60px)}
 .hero-detail{position:relative;top:auto;margin-top:12px;width:55%;max-width:360px}
 .hero .roles{max-width:none}
 .hero .actions{flex-direction:row;align-items:center;gap:18px}
 .hero-image{top:0;bottom:0;width:46%;height:100%}
}

@media(max-width:580px) and (max-height:620px){.hero-detail{position:relative;top:auto;margin-top:10px;width:clamp(130px,34vw,160px)}}
@media(max-width:350px){.hero-detail{position:relative;top:auto;margin-top:10px;width:130px}.hero-detail::before{bottom:44px}}

@media(max-width:580px){.hero .button span{display:none}}

/* Full original media collection: retain portrait and landscape framing. */
.gallery-grid img{object-fit:contain;background:rgba(0,0,0,.04)}
