#shows { scroll-margin-top: 10rem; }
.show-artwork-link { display: block; }
.show-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.show-card img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border: 1px solid var(--rule); }
.show-card h4 { margin: 0 0 .6rem; font: 750 1.4rem/1.15 var(--display); letter-spacing: -.025em; }
.show-card p { font-size: 1rem; }
.show-card .show-schedule { margin: 1rem 0 .65rem; font: 600 .8rem/1.4 var(--display); color: var(--muted); }
.show-card .show-schedule.soon { display: inline-block; padding: .2rem .55rem; background: var(--yellow); color: #16181D; }
@media (max-width: 40rem) { .show-cards { grid-template-columns: 1fr; gap: 2rem; } }
:root{
  color-scheme:light;
  --paper:#F3F4F1; --ink:#16181D; --muted:#5A5F68; --rule:rgba(22,24,29,.16);
  --blue:#1F45D8; --red:#E0342B; --yellow:#F4C20D;
  --on-blue:#fff; --on-red:#fff; --on-yellow:#16181D;
  --blend:multiply;
  --display:"Bricolage Grotesque","Arial Narrow",Arial,sans-serif;
  --body:"Source Serif 4",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.65}
img{max-width:100%;height:auto;display:block;}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
button:disabled{cursor:not-allowed;opacity:0.6;}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.wrap{max-width:68rem;margin:0 auto;padding:0 1.25rem}
.measure{max-width:38rem}

/* header */
.top{position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--rule)}
.top .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;padding-top:.7rem;padding-bottom:.7rem}
.top .name.print{font-size:clamp(1.4rem,2.5vw,1.8rem);line-height:1.1;margin:0 auto 0 0;white-space:nowrap}
.nav{display:flex;flex-wrap:wrap;gap:.1rem .2rem}
.nav a{font-family:var(--display);font-size:.95rem;padding:.35rem .6rem;border-radius:2rem;text-decoration:none;}
.nav a[aria-current="page"]{background:var(--ink);color:var(--paper)}
@media(max-width:40rem){
  .nav{order:1;flex-basis:100%}
}

/* views */
.view{padding-bottom:4rem}
h1,h2,h3{font-family:var(--display);line-height:1.05;margin:0}
h2, h1.page-h2{font-size:clamp(2.2rem,8vw,4rem);font-weight:800;letter-spacing:-.02em}
h3{font-size:1.5rem;font-weight:700;letter-spacing:-.01em}
p{margin:0 0 1rem}
.lede{font-size:1.25rem;line-height:1.5}

/* hero: headline printed in three inks, slightly out of register */
.hero{padding:3.5rem 0 2.5rem;position:relative}
.hero-heading-row{display:grid;grid-template-columns:max-content 14rem;gap:4.5rem;align-items:center;margin-bottom:2rem}
.hero-heading-row .print{font-size:clamp(3.4rem,10.4vw,8.2rem);margin:0}
.hero-socials{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(5,44px);width:220px;min-width:0;padding:.9rem 0 0;border-top:0;background:linear-gradient(var(--blue),var(--blue)) left top / 100% 4px no-repeat}
.hero-socials::before,.hero-socials::after{content:"";position:absolute;top:0;left:0;width:100%;height:4px;pointer-events:none;mix-blend-mode:var(--blend)}
.hero-socials::before{background:var(--red);transform:translate(3px,2px)}
.hero-socials::after{background:var(--yellow);transform:translate(-3px,3px)}
.hero-social-caption{grid-column:1/-1;font:700 .65rem/1.4 var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0 0 .35rem}
.hero-socials a,.hero-social-pending{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;color:var(--ink);border-radius:50%;text-decoration:none}
.hero-socials a:hover{color:var(--red);background:var(--rule)}
.hero-socials a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.hero-social-icon{display:block;width:20px;height:20px;fill:currentColor}
.hero-social-pending{color:var(--muted);opacity:.48;cursor:not-allowed}
.hero-social-group{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,44px);border-top:1px solid var(--rule);padding-top:.6rem;margin-top:.4rem}
@media(max-width:40rem){
  .hero-socials{display:none}
}
@media(max-width:60rem){
  .hero-heading-row{grid-template-columns:1fr;gap:1.75rem}
  .hero-heading-row .print{font-size:clamp(3.4rem,15vw,9rem)}
  .hero-socials{margin-inline:0}
}
.print{position:relative;font-family:var(--display);font-weight:800;letter-spacing:-.035em;line-height:.92;font-size:clamp(3.4rem,15vw,9rem);margin:0 0 1.75rem;isolation:isolate}
.print span{display:block}
.print .plate{position:absolute;inset:0;mix-blend-mode:var(--blend);pointer-events:none}
.print .base{color:var(--blue);mix-blend-mode:var(--blend)}
.print .p2{color:var(--red);transform:translate(.035em,.025em)}
.print .p3{color:var(--yellow);transform:translate(-.03em,.045em)}
@media (prefers-reduced-motion: no-preference){
  .print .p2{animation:reg2 1.1s cubic-bezier(.2,.7,.2,1) both}
  .print .p3{animation:reg3 1.1s cubic-bezier(.2,.7,.2,1) both}
  @keyframes reg2{from{transform:translate(.35em,.18em)}to{transform:translate(.035em,.025em)}}
  @keyframes reg3{from{transform:translate(-.3em,.3em)}to{transform:translate(-.03em,.045em)}}
}
.regmark{position:absolute;right:0;top:1.25rem;width:26px;height:26px;color:var(--muted)}
.proof{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:.4rem 2rem;grid-template-columns:1fr;font-family:var(--display);font-size:1rem}
@media(min-width:40rem){.proof{grid-template-columns:1fr 1fr}}
.proof li{padding:.55rem 0;border-top:1px solid var(--rule)}

/* YouTube Identity Badge */
.hero-lede-lockup { display:flex; flex-wrap:wrap; align-items:center; gap:2rem; width:100%; }
.hero-intro-copy { flex:1 1 16rem; min-width:0; }
.hero-intro-opening { font-family:var(--display); font-weight:600; font-size:2rem; line-height:1.2; max-width:44rem; margin:0 0 1.25rem; }
.hero-intro-support { font-family:var(--body); font-size:1.2rem; line-height:1.6; max-width:44rem; margin:0; }
.hero-lede-lockup .yt-identity { margin:.5rem; width:200px; height:200px; }
.hero-lede-lockup .yt-art > div { width:100%; }
.youtube-link,.youtube-artwork{display:block;flex-shrink:0}
.youtube-link{color:inherit;text-decoration:none}
@media(max-width:40rem){
  .hero-lede-lockup { gap:1.25rem; }
  .hero-lede-lockup .yt-identity { width:120px; height:120px; }
  .hero-intro-opening { font-size:1.4rem; }
}

.yt-identity {
  position:relative; width:160px; height:160px; flex-shrink:0;
  margin:0.5rem 1rem 1.5rem 0.5rem;
}
.yt-layer-1, .yt-layer-2 { position:absolute; border:1px solid var(--rule); }
.yt-layer-1 {
  inset:-6px -4px -8px -6px; transform:rotate(-4deg);
  background:#D95C27; border:none; box-shadow:2px 4px 12px rgba(0,0,0,0.15);
}
.yt-layer-2 {
  inset:-2px -10px -4px -2px; transform:rotate(2deg);
  background:var(--paper); background-image:repeating-linear-gradient(135deg,transparent 0 9px,var(--rule) 9px 10px);
  box-shadow:1px 2px 8px rgba(0,0,0,0.1);
}
.yt-art {
  position:relative; z-index:2; width:100%; height:100%; background:var(--ink);
  border:3px solid var(--paper); box-shadow:0 4px 15px rgba(0,0,0,0.1); transform:rotate(-1.5deg);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.yt-art img { width:100%; height:100%; object-fit:cover; display:block; }

.about-opening { display:grid; gap:2rem; align-items:center; padding-bottom:3rem; border-bottom:1px solid var(--rule); }
.about-opening-copy { margin:0; font-size:clamp(1.5rem,2.5vw,2.1rem); line-height:1.45; }
.about-portrait-wrap { padding:0; }
.about-bio { max-width:68ch; margin:3rem auto 0; }
.about-bio > p { margin:0 0 1.5rem; }
.about-bio .btnrow { margin-top:2rem; }
@media(min-width:52rem){
  .about-opening { grid-template-columns:5fr 7fr; gap:3.5rem; }
  .about-portrait-wrap { grid-column:1; grid-row:1; }
  .about-opening-copy { grid-column:2; grid-row:1; }
}

/* lanes */
.lanes{display:grid;gap:1rem;margin-top:1rem}
@media(min-width:52rem){.lanes{grid-template-columns:1.25fr 1fr 1fr;align-items:stretch}}
.lane{display:flex;flex-direction:column;text-align:left;padding:1.4rem 1.4rem 1.6rem;min-height:15rem;width:100%;text-decoration:none;border:none;}
.lane .big{font-family:var(--display);font-weight:800;font-size:clamp(2.6rem,9vw,4rem);letter-spacing:-.03em;line-height:1}
.lane .what{font-family:var(--display);font-weight:600;margin:.4rem 0 auto}
.lane .desc{margin:1.5rem 0 0;font-size:1rem;line-height:1.5}
.lane.build{background:var(--blue);color:var(--on-blue)}
.lane.make{background:var(--red);color:var(--on-red)}
.lane.think{background:var(--yellow);color:var(--on-yellow)}
.lane:hover .big,.lane:focus-visible .big{text-decoration:underline;text-decoration-thickness:.06em;text-underline-offset:.12em}

.teaser{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--rule)}
.textlink{display:inline-block;font-family:var(--display);font-weight:600;text-decoration:underline;text-underline-offset:4px;padding:0;cursor:pointer;}
a.textlink{text-decoration:underline;}

/* Intro actions shared by Home and Make */
.support-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1rem 1.25rem;margin-top:1.5rem}
.support-action{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;max-width:100%}
.support-actions .subscriber-count{font-family:var(--display);font-size:.9rem;line-height:1.4;margin:0}
.subscriber-count small{display:block;font-size:.75rem;color:var(--muted);margin-top:.15rem}
.support-status{font-family:var(--display);font-size:.85rem;color:var(--muted)}
.support-action .btn{max-width:100%;text-align:center}

/* page heads */
.pagehead{padding:2.5rem 0 2rem}
.pagehead .bar{display:inline-block;padding:.1em .3em .15em;margin-left:-.1em}
.bar.build{background:var(--blue);color:var(--on-blue)}
.bar.make{background:var(--red);color:var(--on-red)}
.bar.think{background:var(--yellow);color:var(--on-yellow)}
.pagehead p{margin-top:1.25rem}

/* case studies */
.case{display:grid;gap:1.25rem;padding:2rem 0;border-top:1px solid var(--rule)}
@media(min-width:52rem){.case{grid-template-columns:5fr 7fr;gap:2.5rem}}
.case .kind{font-family:var(--display);color:var(--muted);margin:.3rem 0 1rem}
.case dl{margin:0}
.case dt{font-family:var(--display);font-weight:700;font-size:.95rem;margin-top:1rem}
.case dt:first-child{margin-top:0}
.case dd{margin:.15rem 0 0}
.ph{display:flex;align-items:flex-end;min-height:11rem;padding:.8rem;font-family:var(--display);font-size:.85rem;color:var(--muted);border:1px solid var(--rule);
  background:repeating-linear-gradient(135deg,transparent 0 9px,var(--rule) 9px 10px)}
.ph span{background:var(--paper);padding:.15rem .4rem}

.sub{padding:2rem 0;border-top:1px solid var(--rule)}
.sub h3{margin-bottom:.9rem}
.substack-heading{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}
.substack-heading h3{margin-bottom:0}
.substack-refresh{display:inline-flex;align-items:center;gap:.4rem;min-height:2.25rem;padding:.3rem .7rem;border:1px solid var(--rule);border-radius:2rem;font:650 .85rem/1 var(--display)}
.substack-refresh:hover:not(:disabled){background:var(--rule)}
.substack-refresh svg{display:block}
.credits{list-style:none;padding:0;margin:0 0 1rem}
.credits li{padding:.55rem 0;border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:.1rem .75rem;justify-content:space-between}
.credits i{font-style:italic}
.credits .role{font-family:var(--display);font-size:.9rem;color:var(--muted)}
.credits small{display:block;color:var(--muted);font-size:.95rem}
.grid3{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}
@media(min-width:40rem){.grid3{grid-template-columns:repeat(3,1fr)}}
.grid3 .ph{min-height:9rem}
.photography-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1.5rem 2rem;margin-bottom:1.5rem}
.film-credits{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1.25rem 2rem;margin-top:1.35rem}
.film-credits-link{flex:0 0 auto;display:flex;align-items:center;min-height:3rem}
.photography-actions>.btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.6rem 1.2rem}
.client-logos{flex:1 1 31rem;min-width:0}
.client-logos h4{margin:0 0 .55rem;font:650 .75rem/1.3 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.client-logos ul{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}
.client-logo-card{display:flex;align-items:center;justify-content:center;width:4.75rem;height:3rem;padding:.45rem .55rem;background:#fff;border:1px solid rgba(22,24,29,.12)}
.client-logo-card img{display:block;width:auto;height:auto;max-width:100%;max-height:1.85rem;object-fit:contain}
.client-logo-card img.client-logo-square{max-width:2rem;max-height:2rem}
.client-logo-card img.client-logo-natgeo{filter:invert(80%) sepia(98%) saturate(1421%) hue-rotate(355deg) brightness(101%) contrast(92%)}
.client-logo-card.client-logo-dark{background:#17191d;border-color:#2c2f35}
@media(max-width:40rem){
  .photography-actions{gap:1.25rem}
  .client-logos{flex-basis:100%}
}
.essays{list-style:none;padding:0;margin:0}
.essays li{padding:.9rem 0;border-bottom:1px solid var(--rule)}
.essays b{font-family:var(--display);font-size:1.15rem;display:block;line-height:1.25}
.essays small{color:var(--muted);font-size:.95rem}
.substack-feed-status{margin:.2rem 0 1rem;color:var(--muted);font-family:var(--display);font-size:.9rem}
.substack-feed .essay-date{display:block;margin:.3rem 0 .2rem;color:var(--muted);font-family:var(--display);font-size:.76rem;font-style:normal;letter-spacing:.04em;text-transform:uppercase}
.substack-feed .essay-excerpt{display:block;line-height:1.55}
.substack-feed .essay-with-image{display:grid;grid-template-columns:minmax(7.5rem,10.5rem) minmax(0,1fr);gap:1.15rem;align-items:start}
.substack-feed .essay-copy{min-width:0}
.substack-feed .essay-thumbnail{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--rule)}
.substack-feed .essay-thumbnail img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s ease}
.substack-feed .essay-thumbnail:hover img{transform:scale(1.025)}
@media(max-width:34rem){
  .substack-feed .essay-with-image{grid-template-columns:1fr;gap:.75rem}
  .substack-feed .essay-thumbnail{aspect-ratio:16/9}
}

.btn{display:inline-block;font-family:var(--display);font-weight:700;padding:.75rem 1.2rem;background:var(--ink);color:var(--paper);text-decoration:none}
.btn.yellow{background:var(--yellow);color:var(--on-yellow)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btnrow{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0}
.reasons{list-style:none;padding:0;margin:0}
.reasons li{padding:1.4rem 0;border-top:1px solid var(--rule);display:grid;gap:.4rem}
@media(min-width:52rem){.reasons li{grid-template-columns:4fr 8fr;gap:2.5rem}}
.reasons h3{font-size:1.35rem}
.reasons p{margin:0 0 .4rem}

/* Form Styles */
.field-group{margin:.5rem 0;}
.field{display:block;border:1px solid var(--rule);padding:.7rem .8rem;font-family:var(--display);font-size:.9rem;background:transparent;color:inherit;width:100%;box-sizing:border-box;}
.field::placeholder{color:var(--muted);}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.honeypot{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
#form-status{margin-top:1rem;font-family:var(--display);font-size:.95rem;}
#form-status:empty{display:none;}

footer{border-top:1px solid var(--rule);padding:2rem 0 3rem;font-family:var(--display);font-size:.95rem;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between}
.shared-social-links{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;list-style:none;padding:0;margin:0;font-family:var(--display);font-size:.9rem}
.shared-social-links li{display:flex;align-items:center}
.shared-social-links a,.shared-social-links .social-link-unavailable{display:grid;place-items:center;width:44px;height:44px;color:var(--ink);border-radius:50%}
.shared-social-links svg{display:block;width:22px;height:22px;fill:currentColor}
.shared-social-links a:hover{color:var(--red);background:var(--rule)}
.shared-social-links a:focus-visible{color:var(--red);outline:2px solid currentColor;outline-offset:2px}
.shared-social-links .social-link-unavailable{color:var(--muted);opacity:.48;cursor:not-allowed}
.shared-social-links .social-link-group{gap:.1rem;margin-left:.55rem;padding-left:.9rem;border-left:1px solid var(--rule)}
.shared-social-links .social-link-group-label{margin-right:.35rem;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.footer-socials{order:3;flex-basis:100%;border-top:1px solid var(--rule);padding-top:1.25rem;margin-top:1rem}
.contact-socials{border-left:3px solid var(--red);padding:.25rem 0 .5rem 1.25rem;margin:0 0 2rem}
.contact-socials h3{margin:0 0 1rem}
.selected-reading-empty{max-width:38rem;padding:1rem 1.25rem;border-left:3px solid var(--yellow);background:var(--rule);font-family:var(--display);font-size:.95rem;color:var(--muted)}
.home-social-row{margin-top:1.5rem}
.home-social-row .shared-social-links{justify-content:center}
/* resume page */
.resume-page { padding-bottom: 6rem; }
.resume-header { padding: 2.5rem 0 1rem; }
.resume-actions { display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:2rem; }
.resume-doc { max-width: 70ch; margin: 0 auto 0 0; line-height: 1.5; }
.resume-top { margin-bottom: 2.5rem; }
.resume-name { font-family: var(--display); font-weight: 800; font-size: 2rem; line-height: 1; margin: 0 0 0.25rem 0; letter-spacing: -0.02em; }
.resume-title { font-size: 1.125rem; font-weight: 600; color: var(--muted); margin-bottom: 0.25rem; }
.resume-contact { font-size: 0.95rem; color: var(--muted); }
.resume-contact a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.resume-section { margin-bottom: 2.5rem; }
.resume-sec-title { font-family: var(--display); font-weight: 700; font-size: 1.05rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--rule); padding-bottom: 0.25rem; margin-bottom: 1rem; }
.resume-summary p { margin-bottom: 0.75rem; }
.resume-job { margin-bottom: 2rem; }
.resume-job-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; margin-bottom: 0.25rem; }
.resume-job-title { font-size: 1.125rem; font-weight: 700; margin: 0; }
.resume-job-company { font-weight: 400; color: var(--muted); }
.resume-job-date { font-size: 0.95rem; font-weight: 600; color: var(--muted); white-space: nowrap; }
.resume-job-context { font-size: 0.95rem; color: var(--muted); margin-bottom: 0.75rem; font-style: italic; }
.resume-bullets { padding-left: 1.25rem; margin: 0.5rem 0; }
.resume-bullets li { margin-bottom: 0.4rem; padding-left: 0.25rem; }
.resume-bullets li::marker { color: var(--muted); }
.resume-sub-roles { margin-top: 1.25rem; }
.resume-sub-role { margin-bottom: 1.25rem; }
.resume-sub-role-title { font-weight: 600; font-size: 1rem; margin: 0 0 0.5rem 0; }
.resume-earlier { list-style: none; padding: 0; margin: 0; }
.resume-earlier li { margin-bottom: 0.5rem; padding-left: 1rem; position: relative; }
.resume-earlier li::before { content: "•"; position: absolute; left: 0; color: var(--muted); }
.resume-recognized-list { list-style: none; padding: 0; margin: 0; }
.resume-recognized-list li { margin-bottom: 0.5rem; padding-left: 1rem; position: relative; }
.resume-recognized-list li::before { content: "•"; position: absolute; left: 0; color: var(--muted); }
.resume-comma-list { line-height: 1.6; }

@media print {
  @page { margin: 16mm; }
  body, html, :root {
    --paper: #ffffff !important;
    --ink: #000000 !important;
    --muted: #444444 !important;
    --rule: #cccccc !important;
    --blue: #000000 !important;
    background: #ffffff !important;
    color: #000000 !important;
  }
  .top, footer, .resume-actions, .pagehead { display: none !important; }
  .view.resume-page { padding: 0 !important; }
  .resume-doc { max-width: none !important; font-size: 11pt !important; line-height: 1.35 !important; }
  .resume-name { font-size: 18pt !important; }
  .resume-title { font-size: 11pt !important; }
  .resume-contact { font-size: 10pt !important; }
  .resume-sec-title { font-size: 10pt !important; margin-bottom: 0.5rem !important; padding-bottom: 0.15rem !important; }
  .resume-section { margin-bottom: 1.25rem !important; }
  .resume-job { margin-bottom: 1rem !important; }
  .resume-job-title { font-size: 11pt !important; }
  .resume-job-date, .resume-job-context { font-size: 10pt !important; }
  .resume-summary p { margin-bottom: 0.5rem !important; }
  .resume-bullets li { margin-bottom: 0.2rem !important; }
  .resume-bullets { margin: 0.25rem 0 !important; }
  .resume-sub-roles { margin-top: 0.5rem !important; }
  .resume-sub-role { margin-bottom: 0.75rem !important; }
  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; break-after: avoid; }
  .resume-job-header, .resume-sub-role-title { page-break-after: avoid; break-after: avoid; }
  .resume-bullets li, .resume-earlier li, .resume-recognized-list li { page-break-inside: avoid; break-inside: avoid; }
  .resume-job { page-break-inside: auto; break-inside: auto; }
}

/* Photography Gallery */
.gallery-controls {
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--rule);
  padding-bottom: 1rem;
}
.gallery-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  border: none;
  padding: 0;
  margin: 0;
}
.gallery-filter-option {
  position: relative;
  display: block;
  cursor: pointer;
}
.gallery-filter-option input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
}
.gallery-filter-option span {
  display: inline-block;
  font-family: var(--display);
  font-size: 0.95rem;
  padding: 0.35rem 1rem;
  border-radius: 2rem;
  border: 1px solid var(--rule);
  background: transparent;
  color: var(--ink);
}
.gallery-filter-option:hover span {
  background: var(--rule);
}
.gallery-filter-option input:checked + span {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.gallery-filter-option input:focus-visible + span {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: no-preference) {
  .gallery-filter-option span {
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
  }
}

.gallery-grid {
  column-count: 1;
  column-gap: 1rem;
}
@media (min-width: 40rem) {
  .gallery-grid { column-count: 2; }
}
@media (min-width: 52rem) {
  .gallery-grid { column-count: 3; }
}
.gallery-item {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 1rem;
  border: none;
  background: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  break-inside: avoid;
}
.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  background: var(--rule);
}
.gallery-item:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: no-preference) {
  .gallery-item img {
    transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
  }
  .gallery-item:hover img {
    transform: scale(1.03);
  }
}

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: var(--paper);
  display: flex;
  flex-direction: column;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
.lightbox[aria-hidden="false"] {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}
@media (prefers-reduced-motion: no-preference) {
  .lightbox {
    transition: opacity 0.3s ease, visibility 0.3s;
  }
}
.lightbox-close {
  position: absolute;
  top: 1rem;
  right: 1.25rem;
  z-index: 101;
  font-size: 2rem;
  line-height: 1;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  background: var(--paper);
  border-radius: 50%;
  border: 1px solid var(--rule);
}
.lightbox-close:hover {
  background: var(--rule);
}
.lightbox-content {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  height: 100%;
  padding: 2rem 1rem 4rem;
}
@media (min-width: 52rem) {
  .lightbox-content {
    padding: 2rem 4rem;
  }
}
.lightbox-figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 100%;
  max-height: 100%;
  width: auto;
}
.lightbox-image-container {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  width: 100%;
}
.lightbox-image-container img {
  max-height: calc(100vh - 8rem);
  max-width: 100%;
  object-fit: contain;
  box-shadow: 0 4px 24px rgba(0,0,0,0.1);
}
#lightbox-caption {
  margin-top: 1rem;
  font-family: var(--display);
  font-size: 0.95rem;
  color: var(--muted);
  text-align: center;
  min-height: 1.5rem;
}
.lightbox-prev, .lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 101;
  font-size: 1.5rem;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  background: var(--paper);
  border-radius: 50%;
  border: 1px solid var(--rule);
}
.lightbox-prev { left: 1rem; }
.lightbox-next { right: 1rem; }
@media (max-width: 52rem) {
  .lightbox-prev { left: 0.5rem; top: auto; bottom: 1rem; transform: none; }
  .lightbox-next { right: 0.5rem; top: auto; bottom: 1rem; transform: none; }
}
.lightbox-prev:hover, .lightbox-next:hover {
  background: var(--rule);
}
.lightbox-prev:focus-visible, .lightbox-next:focus-visible, .lightbox-close:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}
