.mast nav [aria-current=page]{color:var(--sage);text-decoration:underline;text-underline-offset:6px}
.interior h1{font-size:clamp(70px,7.9vw,130px);line-height:.93;margin:16px 0;letter-spacing:-.065em}
.interior h1 i{color:var(--olive);padding-right:.04em}
.interior h2{font-size:clamp(38px,3.9vw,66px);letter-spacing:-.045em;line-height:1.03}
.pagehead{padding-block:clamp(48px,6.2vw,92px) clamp(34px,4.8vw,74px);background:#e9ecdf}
.indexbar{border-block:1px solid var(--hair);background:#f1f2e8}
.jump-links{display:flex;align-items:center;gap:10px 30px;flex-wrap:wrap;padding-block:14px}
.jump-links a{font-size:13px;font-weight:600;padding-block:3px}
.jump-links a:hover,.credits td a:hover,.clip:hover h3{text-decoration:underline;text-underline-offset:4px}
.gallery-body,.resume-content{padding-block:clamp(37px,4vw,66px) clamp(58px,6vw,100px)}
.collection+.collection,.credits+.credits{margin-top:clamp(42px,5vw,78px)}
.collection h2,.credits h2{margin-bottom:22px}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(11px,1.5vw,25px)}
.gallery-grid.stills{grid-template-columns:repeat(3,minmax(0,1fr))}
.photo-link{display:block;background:#e4e6db;overflow:hidden;cursor:zoom-in}
.photo-link img{width:100%;height:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 24%;transition:transform .22s}
.stills img{aspect-ratio:4/3;object-position:center}.photo-link:hover img{transform:scale(1.018)}
#lightbox{width:fit-content;max-width:95vw;padding:12px 16px}
#large-photo{margin:auto;max-width:84vw;max-height:70dvh;object-fit:contain}
.lightbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:4px 8px;font-size:13px}
.lightbar:last-child{padding-block:10px 0}.lightbar button:not(.close){background:transparent;color:var(--paper);border:1px solid #879685;padding:7px 10px;cursor:pointer;font:inherit}
.lightbar button:disabled{opacity:.35;cursor:auto}
.clip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px clamp(14px,2.4vw,40px)}
.clip-photo{position:relative;aspect-ratio:16/9;background:var(--ink);overflow:hidden}
.clip-photo img{width:100%;height:100%;object-fit:cover}
.clip h3{font-size:clamp(25px,2.05vw,36px);line-height:1.07;margin:10px 0 3px;letter-spacing:-.04em}
.clip p{font-size:13px;color:#526051}
.resumehead{padding:0}.resumehead-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:30px}
.resumehead img{width:clamp(108px,13vw,190px);height:clamp(150px,15vw,222px);object-fit:cover;object-position:center 18%}
.res-actions{display:flex;gap:22px;margin-top:20px}
.credits table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left}
.credits th{padding:9px 12px 9px 0;border-bottom:1px solid #83917e;font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#4c604d}
.credits td{padding:12px 14px 12px 0;border-bottom:1px solid var(--hair);vertical-align:top;font-size:15px;overflow-wrap:anywhere}
.credits td:first-child{font-weight:600}.credits th:first-child{width:42%}.credits th:nth-child(2){width:29%}.credits small{color:var(--olive)}
.skills-list{padding-left:20px;columns:2;column-gap:45px;margin:0}
.skills-list li{break-inside:avoid;margin:0 0 10px}
.contact-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,7vw,116px);align-items:start;padding-block:clamp(42px,5.3vw,85px)}
.contact-intro .leadcopy{font-size:clamp(16px,1.45vw,22px);line-height:1.5;max-width:28em}
.contact-portrait{position:relative;width:min(100%,350px);margin-top:26px}
.contact-portrait img{width:100%;aspect-ratio:1.25;object-fit:cover;object-position:center 18%}
.contact-portrait span{display:block;margin-top:4px;font:italic 500 26px/1.2 var(--serif);color:var(--olive)}
.form-panel{background:#e9ecdf;padding:clamp(20px,3vw,46px);border:1px solid #d0d4c6}
.form-panel h2{margin:0 0 11px}.form-note{font-size:13px;line-height:1.5;color:#4b584b;margin-bottom:22px}
.form-note a{text-decoration:underline;text-underline-offset:3px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
#inquiry label{display:block;margin-bottom:18px;font-size:14px;font-weight:600}
#inquiry input,#inquiry select,#inquiry textarea{width:100%;background:var(--paper);border:1px solid #81907c;border-radius:2px;color:var(--ink);font:400 16px/1.5 var(--sans);padding:9px 12px;display:block;margin-top:6px}
#inquiry textarea{resize:vertical;min-height:114px}
#inquiry :is(input,select,textarea):focus-visible{outline:2px solid var(--olive);outline-offset:2px}
.ink-button{border:0;cursor:pointer;background:var(--forest);color:var(--paper);font-family:var(--sans)}.ink-button:hover{background:#41604a}
.review h3{font-size:36px;line-height:1.1;margin-bottom:10px}
.review dl{margin-block:0 20px;border-top:1px solid var(--hair);padding-top:12px}
.review dt{font-size:12px;font-weight:600;color:var(--olive)}
.review dd{margin:2px 0 13px;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:820px){
  .contact-layout{grid-template-columns:.78fr 1.22fr;gap:23px}
  .form-row{grid-template-columns:1fr;gap:0}
  .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .navrow{gap:12px}nav{gap:19px}
}
@media(max-width:640px){
  .navrow{min-height:60px;gap:8px}nav{gap:clamp(9px,2.6vw,16px);font-size:12px}.wordmark{display:none}
  .contact-layout{grid-template-columns:1fr;padding-block:32px 44px;gap:23px}
  .contact-intro{display:grid;grid-template-columns:minmax(0,1fr) 24%;gap:0 12px;align-items:center}
  .contact-intro .eyebrow,.contact-intro h1,.contact-intro .leadcopy{grid-column:1}
  .contact-intro h1{font-size:clamp(57px,11vw,76px)}
  .contact-intro .leadcopy{font-size:15px}
  .contact-portrait{grid-column:2;grid-row:1/4;align-self:start;margin:0}
  .contact-portrait img{aspect-ratio:2/3;object-position:center 30%}.contact-portrait span{display:none}
  .form-panel{padding:20px}
  .jump-links{gap:5px 17px;padding-block:9px}.jump-links a{font-size:12px}
  .gallery-grid,.gallery-grid.stills,.clip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .clip h3{font-size:24px}.clip p{font-size:12px}
  .resumehead-inner{gap:8px;padding-block:25px}.resumehead h1{font-size:clamp(52px,10vw,72px)}
  .resumehead img{width:25%;max-height:142px}
  .res-actions{gap:11px}.res-actions .line-link{font-size:12px;gap:5px}
  .credits th{letter-spacing:.04em;font-size:10px;overflow-wrap:anywhere}
  .credits td{font-size:13px;padding:9px 6px 9px 0}
  .skills-list{columns:1;font-size:14px}.credits h2,.collection h2{font-size:38px}
}
@media(max-width:375px){.navrow{padding-inline:15px}nav{gap:10px}.contact-portrait{display:none}.contact-intro{display:block}.form-panel{padding:16px}}
@media print{
  header.mast,footer,.indexbar,.res-actions,.resumehead img,.skip{display:none}
  .inner{padding:0}.resumehead-inner{padding:0}.resume-content{padding-top:20px}
  .resumehead,.interior{background:white;color:black}.credits+.credits{margin-top:18px}
  .credits h2{font-size:22pt;break-after:avoid}.credits table{font-size:9pt}.credits td{font-size:9pt;padding:3px}
  .credits tr{break-inside:avoid}.credits thead{display:table-header-group}
}
@media(max-width:375px){.credits th:first-child{width:40%}.credits th:nth-child(2){width:26%}.credits th{padding-right:4px}}
