:root{--brand:#225C73;--accent:#287EA0;--ink:#111111;--text:#2E2E2E;--g1:#8A8D91;--g2:#E6E7E8}
*{box-sizing:border-box;margin:0}body{font-family:Inter,sans-serif;color:var(--text);line-height:1.7;background:#fff}
h1,h2,h3{font-family:'Playfair Display',serif;font-weight:600;line-height:1.15;color:var(--ink)}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px}
nav{position:absolute;top:0;left:0;right:0;z-index:5;padding:28px 0}nav .wrap{display:flex;justify-content:space-between;align-items:center}
nav .logo{font-family:'Playfair Display';color:#fff;font-size:22px;letter-spacing:.04em}nav ul{display:flex;gap:28px;list-style:none;padding:0}
nav a{color:var(--g2);text-decoration:none;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.hero{background:var(--ink);color:#fff;min-height:760px;display:grid;grid-template-columns:1.1fr 1fr;overflow:hidden}
.hero .txt{padding:180px 48px 80px max(32px,calc((100vw - 1180px)/2 + 32px));display:flex;flex-direction:column;justify-content:center}
.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:600;margin-bottom:18px}
.hero h1{color:#fff;font-size:clamp(44px,6vw,84px)}.hero p{color:var(--g2);max-width:480px;margin:24px 0 36px;font-size:18px}
.hero .img{background:url(img/1-hero-arms-crossed_retouched.jpg) center top/cover;position:relative}
.credit{position:absolute;right:14px;bottom:14px;z-index:2;font-size:13px;font-weight:600;letter-spacing:.04em;color:#fff;background:rgba(0,0,0,.55);padding:5px 12px;border-radius:2px;text-shadow:none}
.btn{display:inline-block;padding:15px 34px;border-radius:2px;text-decoration:none;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:13px;margin-right:12px}
.btn.p{background:var(--brand);color:#fff}.btn.o{border:1px solid #fff;color:#fff}.btn.d{background:var(--brand);color:#fff}
section{padding:110px 0}section h2{font-size:clamp(32px,4vw,50px);margin-bottom:22px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.split img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top}
.ph{display:inline-block;background:#FFF4CC;color:#7A5B00;font-size:11px;font-weight:600;padding:2px 8px;margin-bottom:12px;letter-spacing:.08em}
.tint{background:#F4F6F7}.band{background:var(--brand);color:#fff}.band h2,.band h3{color:#fff}.band .eyebrow{color:#BFE3F0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}.card{background:#fff;padding:36px;border-top:3px solid var(--brand)}
.card h3{font-size:22px;margin-bottom:10px}.band .card{background:rgba(255,255,255,.08);border-top-color:#fff}
.press{display:flex;flex-wrap:wrap;gap:20px;margin-top:30px}.press div{flex:1 1 200px;border:1px dashed var(--g1);padding:30px;text-align:center;color:var(--g1);font-size:13px}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}form .full{grid-column:1/-1}
input,select,textarea{width:100%;padding:14px;border:1px solid var(--g2);font:inherit;background:#fff}textarea{min-height:140px}
button{background:var(--brand);color:#fff;border:0;padding:16px 38px;font:600 13px Inter;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
footer{background:var(--ink);color:var(--g1);padding:50px 0;font-size:13px}footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer .logo{font-family:'Playfair Display';color:#fff;font-size:20px}
@media(max-width:860px){.hero{grid-template-columns:1fr}.hero .img{height:520px;order:-1}.hero .txt{padding:48px 24px 64px}
nav .logo{font-size:18px}.split,.cards,form{grid-template-columns:1fr;gap:32px}section{padding:72px 0}.wrap{padding:0 24px}.btn{margin-bottom:10px}}
.tc{display:inline-block;background:#F5A623;color:#111;font:700 10px Inter;letter-spacing:.1em;padding:2px 7px;border-radius:2px;vertical-align:middle;margin-left:6px}
.awards{list-style:none;padding:0;margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.awards li{background:#fff;padding:22px 26px;border-left:3px solid var(--brand);font-size:15px}
.seen{margin-top:30px;color:var(--g1);font-size:14px;letter-spacing:.04em}.seen b{color:var(--text)}
.cta{color:var(--brand);font-weight:600;text-decoration:none;letter-spacing:.06em}.band .cta{color:#fff}
.book{background:rgba(255,255,255,.08);padding:34px;border-top:3px solid #fff}.book h3{font-size:26px;margin-bottom:10px}.book p{font-size:15px}
.lead{font-size:19px;color:var(--ink);font-family:'Playfair Display';font-style:italic;margin-bottom:16px}
@media(max-width:860px){.awards{grid-template-columns:1fr}}
@media(max-width:860px){.cards{grid-template-columns:1fr !important}.hero h1{font-size:40px}}
.hero h1{white-space:normal;font-size:clamp(34px,4.2vw,60px);line-height:1.08}
@media(max-width:860px){.hero h1{white-space:normal;font-size:34px}}
.presslist{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}
.presslist a{color:inherit;text-decoration:none;font-size:15px;border-left:3px solid #287EA0;padding-left:10px;display:block}
.presslist a:hover{color:#287EA0}
.socials a{color:#225C73;font-weight:600}
@media(max-width:700px){.presslist{grid-template-columns:1fr}}
.hero h1{white-space:normal;font-size:clamp(38px,4.6vw,68px);line-height:1.08}
@media(max-width:860px){.hero h1{font-size:34px}}



.pic{position:relative;display:block}.pic img{display:block;width:100%;height:auto}.pic .credit{position:absolute;right:10px;bottom:8px;font-size:11px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55);background:rgba(0,0,0,.35);padding:2px 8px;border-radius:2px}

/* Long Shot HP interview - landscape int_1, contain (no cover clip on right) */
#longshot > .wrap.split{
  align-items:center;
  gap:56px;
  grid-template-columns:1fr 1fr;
}
#longshot .ls-photo{
  overflow:visible;
  position:relative;
  align-self:center;
  width:100%;
  max-width:560px;
}
#longshot .ls-photo img{
  width:100% !important;
  height:auto !important;
  aspect-ratio:1480 / 976 !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block;
  background:transparent;
}
#longshot .cards{margin-top:28px}
@media(max-width:860px){
  #longshot > .wrap.split{grid-template-columns:1fr;gap:32px}
  #longshot .ls-photo{max-width:420px;margin:0 auto}
}
@media(max-width:700px){#longshot .cards{grid-template-columns:1fr !important}}

/* Keep today's book cover assets readable in yesterday layout */


/* Lisa review: actual paragraph spacing, readable book-cover proportions. */
/* r30: visible break between consecutive body paragraphs site-wide */
section p + p{margin-top:1.25em}
#longshot p + p,
#about p + p,
#onnj p + p,
#show p + p,
#speaking p + p,
#contact p + p,
#books .book p + p,
#press p + p{margin-top:1.25em}
/* don't force huge gaps on CTA-only trailing paragraphs that follow content - still ok */
.speak-sub > p + p{margin-top:1.25em}
.speak-photo + .speak-sub{margin-top:28px}

.hero-cta{margin-top:2.75rem;}

/* r15 hero title */
.hero h1{white-space:normal;font-size:clamp(30px,3.6vw,50px);line-height:1.18;max-width:100%;overflow:visible;}

.hero .cred{color:var(--g2);font-size:15px;letter-spacing:.04em;margin-top:18px;font-weight:500}
.hero-cta{margin-top:2.75rem}
.book img{width:100%;max-width:240px;height:360px;object-fit:contain;object-position:center;display:block;margin:0 auto 18px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.15)}
#longshot .card p{font-size:14px;margin-top:10px;line-height:1.55;color:var(--text)}
.award-group{margin-top:28px}
.award-group h3{font-size:22px;margin:0 0 12px;color:var(--brand)}
.award-group + .award-group{margin-top:36px}
.speak-sub{margin-top:28px}
.speak-sub h3{font-size:22px;margin:6px 0 10px}

/* r20 mobile overflow */
html{overflow-x:hidden}
body{overflow-x:hidden;max-width:100vw}
img,video,.mcard,.book,.card{max-width:100%}
.hero .txt{min-width:0}
.hero h1{overflow-wrap:anywhere;word-break:break-word}
#media .mgrid.m4,.mgrid{max-width:100%}
ul.emcee{max-width:100%}
@media(max-width:860px){
  .hero{min-height:0}
  .book img{max-width:200px;height:300px}
}
@media(max-width:420px){
  ul.emcee{grid-template-columns:1fr !important}
  nav .wrap{padding:0 16px}
  .wrap{padding:0 16px}
  .btn{display:inline-block;margin:0 8px 10px 0}
  .hero-cta{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
  .hero-cta .btn{margin:0}
}


/* r20 layout polish */
ul.emcee{grid-template-columns:1fr 1fr}
@media(max-width:700px){ul.emcee{grid-template-columns:1fr !important}}

/* Clearer separation between award categories */
.award-group{margin-top:28px}
.award-group + .award-group{margin-top:64px;padding-top:28px;border-top:1px solid rgba(0,0,0,.08)}
.award-group h3{margin:0 0 16px}

/* Slightly tighten contact → footer gap */
#contact{padding-bottom:72px}
#contact .socials{margin-top:14px !important;margin-bottom:0}
footer{padding-top:36px;padding-bottom:44px}


/* r33 ONNJ DeVito - 4:3 baked crop; contain so cover never trims heads */
#onnj .pic-action{
  align-self:center;
  overflow:visible;
}
#onnj .pic-action img{
  aspect-ratio:860 / 512 !important;
  object-fit:contain !important;
  object-position:center center !important;
  width:100% !important;
  height:auto !important;
  display:block;
  background:transparent;
}
#onnj > .wrap.split{align-items:center}

.speak-photo{
  margin:28px 0 8px;
  max-width:920px;
  position:relative;
}
.speak-photo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
}
.speak-photo-wide img{
  aspect-ratio:16/10;
  object-position:center 22%;
}
.credit-inline{
  display:inline-block;
  margin-top:8px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--g1);
  opacity:.85;
}
@media(max-width:860px){
  .speak-photo{margin:22px 0 6px}
  .speak-photo-wide img{aspect-ratio:16/11;object-position:center 20%}
}

/* r35: thank-you only after FormSubmit redirect to #thank-you */
#thank-you{display:none;margin-top:20px;font-size:15px;color:var(--brand);font-weight:600}
#thank-you:target{display:block}

/* r36: linked headings look like headings, not browser links */
h2 a, h3 a,
.book h3 a {
  color: inherit;
  text-decoration: none;
  font: inherit;
  letter-spacing: inherit;
  transition: color .15s ease, opacity .15s ease;
}
h2 a:hover, h3 a:hover,
.book h3 a:hover {
  color: var(--brand);
  text-decoration: none;
  opacity: .92;
}
/* band (books) headings stay light on dark */
.band h2 a, .band h3 a, .band .book h3 a { color: inherit; }
.band h2 a:hover, .band h3 a:hover, .band .book h3 a:hover { color: #fff; opacity: .85; }

/* print/PDF: never force link blue/underline on headings */
@media print {
  h2 a, h3 a, .book h3 a {
    color: inherit !important;
    text-decoration: none !important;
  }
  a[href]::after { content: none !important; } /* avoid URL dumps if any */
}

/* r36: Past Engagements spacing + columns */
.past-engagements {
  margin-top: 48px !important;
  margin-bottom: 12px !important;
}
ul.emcee {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 700px) {
  ul.emcee { grid-template-columns: 1fr !important; }
  .past-engagements { margin-top: 36px !important; }
}

/* r36: avoid crowded/wrapping nav at tablet widths (768–1023) */
@media (max-width: 1023px) {
  nav ul { display: none; }
}
@media (min-width: 1024px) and (max-width: 1100px) {
  nav ul { gap: 14px; }
  nav a { font-size: 11px; letter-spacing: .08em; }
  nav .wrap { padding: 0 20px; }
  nav .logo { font-size: 18px; }
}

/* r36: beat UA :link/:visited blue on heading anchors */
h2 a:link, h2 a:visited,
h3 a:link, h3 a:visited,
.book h3 a:link, .book h3 a:visited {
  color: inherit;
  text-decoration: none;
}
@media print {
  h2 a:link, h2 a:visited,
  h3 a:link, h3 a:visited,
  .book h3 a:link, .book h3 a:visited,
  .band h2 a, .band h3 a, .band .book h3 a {
    color: inherit !important;
    text-decoration: none !important;
    -webkit-text-fill-color: currentColor !important;
  }
  .band h2 a:link, .band h3 a:link, .band .book h3 a:link,
  .band h2 a:visited, .band h3 a:visited, .band .book h3 a:visited {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }
}

/* r37: Telly year groups + medal labels */
.award-intro{max-width:820px;margin:0 0 18px;font-size:15px;line-height:1.6}
.award-year{font-weight:700;font-size:15px;letter-spacing:.06em;color:var(--brand);margin:22px 0 8px}
.award-group .award-year:first-of-type{margin-top:8px}
ul.awards-telly{grid-template-columns:1fr}
ul.awards-telly li{align-items:flex-start}
ul.awards-telly .medal{font-weight:700;min-width:64px;opacity:.75}
@media(min-width:701px){
  ul.awards-telly{grid-template-columns:1fr 1fr;gap:10px 32px}
}

/* r38 */
.selected-appearances{margin-top:36px;max-width:780px}
.selected-appearances .eyebrow{margin-bottom:10px}
ul.appear-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
ul.appear-list li{padding:10px 14px;background:#fff;border-left:3px solid var(--brand);font-weight:600;font-size:14px}
.speak-cta-near-photo{margin:18px 0 8px}
@media(max-width:700px){
  ul.appear-list{grid-template-columns:1fr}
}
/* r39 */
.hero h1{font-size:clamp(36px,4.5vw,64px)}
ul.awards .yr:empty{display:none}
ul.awards li:has(.yr:empty){padding-left:14px}



/* ===== Round 44 ===== */
nav .logo{white-space:nowrap;flex-shrink:0}
nav ul{flex-wrap:nowrap;gap:18px;align-items:center;margin:0}
nav ul li{flex-shrink:0}
nav a{white-space:nowrap;font-size:12px;letter-spacing:.1em}
.nav-toggle{display:none;background:transparent;border:0;cursor:pointer;padding:10px 6px;margin-left:12px;z-index:6}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;margin:5px 0;transition:.2s}
nav .wrap{gap:16px}

@media(max-width:1100px){
  .nav-toggle{display:block}
  nav ul{
    display:none;
    position:absolute;top:100%;right:16px;left:auto;
    background:rgba(20,28,36,.97);
    flex-direction:column;align-items:flex-start;
    gap:0;padding:12px 0;min-width:220px;
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 12px 32px rgba(0,0,0,.35);
  }
  nav.is-open ul{display:flex}
  nav ul li{width:100%}
  nav ul a{display:block;padding:12px 18px;letter-spacing:.1em;font-size:13px}
  /* override older hide-only rules */
  nav ul{ /* keep display:none unless open - handled above */ }
}
@media(min-width:1101px){
  nav ul{display:flex !important}
  .nav-toggle{display:none !important}
}

/* Books: contained, equal-height, original cover aspect, PDF keep together */
#books.band{overflow:hidden}
#books .books-wrap{max-width:1180px}
#books h2{margin-bottom:28px}
#books .books-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:stretch;
}
#books .book{
  display:flex;flex-direction:column;background:#fff;
  border:1px solid rgba(0,0,0,.08);padding:28px 28px 24px;

}
#books .book-cover{
  display:block;text-align:center;
  margin-bottom:18px;background:transparent;
}
#books .book-cover img{
  width:240px;max-width:100%;height:auto;max-height:none;margin:0 auto;
  object-fit:contain;display:block;
  /* no crop */
}
#books .book-body{display:flex;flex-direction:column;flex:1}
#books .book-body h3{margin:0 0 12px;min-height:1.4em}
#books .book-body p{margin:0 0 12px}
#books .book-meta{font-size:13px;opacity:.75;margin:0 0 8px !important}
#books .book-cta{margin-top:auto !important;padding-top:16px}
#books .book-cta .cta{display:inline-block}
@media(max-width:700px){
  #books .books-grid{grid-template-columns:1fr !important}
}
@media print{
  #books, #books .books-wrap, #books .books-grid, #books .book{
    break-inside:avoid;page-break-inside:avoid;
  }
  #books h2{page-break-after:avoid;break-after:avoid}
}

/* Media: center last single card (Mom Crush) so ON3 sits in complete row */
#media .mgrid.m4 .mcard:last-child:nth-child(8){
  grid-column:2 / 4;
}
@media(max-width:900px){
  #media .mgrid.m4 .mcard:last-child:nth-child(8){grid-column:auto}
}

/* YNJ still uses cover in pic slot */
#show .pic-ynj{aspect-ratio:16/9;overflow:hidden}
#show .pic-ynj img{width:100%;height:100%;object-fit:cover;object-position:center}

.hero h1{white-space:nowrap}
@media(max-width:480px){.hero h1{white-space:normal}}

/* r45: archive/static nav positioning for dropdown */
nav{position:relative}
nav[style*="background"]{z-index:20;padding:18px 0}
nav[style*="background"] .nav-toggle span{background:#fff}
nav[style*="background"] ul{top:100%}

/* r47: balanced media rows and robust print image sizing */
#media .mgrid.m4{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
#media .mgrid.m4 .mcard:last-child:nth-child(8){grid-column:auto}
#media .mgrid.m4 .feat{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;align-items:center}
.mcard .th{flex-shrink:0;aspect-ratio:16/9;position:relative}
.mcard .th img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
#media .mgrid.m4 .feat h3{font-size:20px}
@media(min-width:601px) and (max-width:900px){
 #media .mgrid.m4{grid-template-columns:repeat(2,minmax(0,1fr))}
 #media .mgrid.m4 .mcard:last-child:nth-child(8){grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;align-items:center}
}
@media(max-width:600px){
 #media .mgrid.m4{grid-template-columns:1fr}
 #media .mgrid.m4 .feat{grid-column:auto;display:flex}
}
@media print{
 .mcard{break-inside:avoid;page-break-inside:avoid}
 .mcard .th img{display:block;height:auto;aspect-ratio:16/9}
}

/* Keep the Mom Crush portrait face visible inside the shared thumbnail ratio. */
.mcard .th img[src$="r47_7.jpg"]{object-position:center 16%}
nav:not([style]){background:#fff;padding:18px 0;border-bottom:1px solid #E6E7E8}nav:not([style]) .nav-toggle span{background:#111}nav:not([style]) .logo{color:var(--brand)}nav:not([style]) a{color:#2E2E2E}
@media(max-width:1100px){nav:not([style]) ul a{color:var(--g2)}}

/* Post-launch: Safari-safe, explicit contrast for white Books cards. */
#books .book{color:#2e2e2e;height:auto;min-height:0}
#books .book h3,#books .book h3 a,#books .book h3 a:visited{color:#111}
#books .book p,#books .book-meta{color:#2e2e2e}
#books .book a.cta,#books .book a.cta:visited{color:#225c73}
#books .book a:hover{color:#287ea0}
#books .book-body{display:block;flex:none}
#books .book-body h3{min-height:0}
#books .book-cover img{aspect-ratio:auto;border:0;background:transparent}
/* Preserve the published white header and readable mobile dropdown. */
nav,nav[style*="background"]{background:#fff!important}
nav .logo{color:var(--brand)}
nav a{color:var(--ink)}
.nav-toggle span,nav[style*="background"] .nav-toggle span{background:var(--brand)}
@media(max-width:1100px){nav ul a{color:#e6e7e8}nav ul a:hover{color:#fff}}
/* Credits use the existing podium-caption treatment, outside the photograph. */
.pic .credit-inline,.hero-portrait .credit-inline{position:static;display:block;margin-top:8px;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--g1);opacity:.85;background:none;padding:0;text-shadow:none;text-align:left}
.hero-portrait{display:grid;grid-template-rows:1fr auto;background:#fff;min-width:0}
.hero-portrait .credit-inline{padding:0}
#show .pic-ynj{aspect-ratio:auto;overflow:visible}
#show .pic-ynj img{height:auto;aspect-ratio:16/9}
@media(max-width:860px){.hero-portrait{order:-1}.hero .hero-portrait .img{height:520px;order:initial}}
a:not(.btn):hover,nav:not([style]) a:hover{color:var(--brand)}
.band a:not(.btn):hover,footer a:hover{color:#BFE3F0}
@media(max-width:1100px){nav:not([style]) ul a:hover{color:#7FC3DC}}
#books .books-grid{display:grid;grid-template-columns:1fr 1fr !important;gap:32px;align-items:stretch}
#books .book{display:flex;flex-direction:column;height:100%}
#books .book-cover{display:flex;align-items:center;justify-content:center;height:320px;margin-bottom:18px}
#books .book-cover img{height:300px;width:auto;max-width:100%;margin:0 auto}
#books .book-body{display:flex;flex-direction:column;flex:1}
#books .book-body h3{min-height:0}
#books .book-cta{margin-top:auto !important}
@media(max-width:760px){#books .books-grid{grid-template-columns:1fr !important}#books .book{height:auto}}
#media .mgrid.m4 .feat{align-items:stretch}#media .mgrid.m4 .feat .th{aspect-ratio:auto;height:100%;min-height:300px}#media .mgrid.m4 .feat .th img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 0%}#media .mgrid.m4 .feat .mb{align-self:center}@media(max-width:1100px){#media .mgrid.m4 .feat .th{height:auto;aspect-ratio:16/9;min-height:0}}
