:root{--ink:#1e2435;--paper:#fbf6ed;--dark:#10182d;--copper:#efb58e;--bronze:#824523;--line:#e4d6c5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,sans-serif}a{color:inherit;text-underline-offset:.25em}a:hover{color:var(--bronze)}:focus-visible{outline:3px solid #b26943;outline-offset:4px}.skip{position:absolute;left:1rem;top:-5rem;background:white;padding:.5rem;z-index:5}.skip:focus{top:1rem}.wrap{width:min(1100px,calc(100% - 3rem));margin:auto}header,.hero,footer{background:var(--dark);color:#fff6eb}nav,footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:76px}.brand,.navlinks a{text-decoration:none}.brand{font-weight:700;white-space:nowrap}.brand b{display:inline-grid;place-items:center;background:var(--copper);color:var(--ink);border-radius:8px;width:35px;height:35px;margin-right:.45rem}.navlinks,.actions{display:flex;flex-wrap:wrap;gap:.6rem 1.25rem}.navlinks a:hover,footer a:hover{color:var(--copper)}header{border-bottom:1px solid #394159}.eyebrow,.milestones article>span{font-size:.73rem;font-weight:750;letter-spacing:.16em;color:var(--bronze)}.hero .eyebrow{color:var(--copper)}h1,h2,h3,p{margin-top:0}h1,h2,.featured h3{font-family:Georgia,serif;font-weight:400;letter-spacing:-.05em;line-height:1.02}h1{font-size:clamp(4rem,10vw,8.25rem);margin-bottom:1.5rem}h1 span{color:var(--copper)}h2{font-size:clamp(2.35rem,5vw,4rem);margin-bottom:1.6rem}h3{line-height:1.22;margin-bottom:.45rem;font-size:1.45rem}.lead{max-width:31rem;color:#dddce7;font-size:1.2rem}.button,button{display:inline-block;padding:.65rem 1rem;border:1px solid transparent;border-radius:.35rem;font:inherit;font-weight:650;text-decoration:none;background:var(--copper);color:var(--ink);cursor:pointer}.outline{background:transparent;color:inherit;border-color:currentColor}.hero .outline:hover{color:var(--copper)}.section{padding-block:clamp(3rem,7vw,6rem)}.intro,.featured{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(1rem,6vw,5rem);align-items:start}.intro p:not(.eyebrow){font-size:1.13rem}.shelf{background:#f1e7d9}.featured{align-items:center;background:#fffaf3;padding:clamp(1.25rem,5vw,3.5rem);border:1px solid var(--line);border-radius:.6rem}.featured h3{font-size:clamp(2rem,4vw,3.1rem)}.book-cover{display:block;width:min(100%,285px);margin:auto}.book-cover img{display:block;width:100%;height:auto;border-radius:.2rem;box-shadow:10px 12px 0 #e2cfbb}.subtitle{color:var(--bronze);font-weight:650}.posts{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-block:1.25rem}.posts article{background:#fffaf3;padding:1.5rem;border:1px solid var(--line);border-radius:.6rem}.milestones article{display:grid;grid-template-columns:minmax(9rem,1fr) 3fr;gap:1rem;border-top:1px solid var(--line);padding:1.5rem 0}.milestones p{margin-bottom:.4rem}.embed iframe{width:100%;height:420px;border:0;margin-top:1rem}.posts button{margin-right:.4rem}.section a:not(.button){color:var(--bronze);font-weight:650}footer{padding-block:.8rem}@media(max-width:720px){.intro,.featured,.posts{grid-template-columns:1fr}nav{align-items:flex-start;flex-direction:column;padding-block:1rem}.navlinks{font-size:.9rem}.milestones article{grid-template-columns:1fr;gap:.35rem}}@media(max-width:370px){.wrap{width:calc(100% - 2rem)}footer .wrap{flex-wrap:wrap}}

.hero-inner{padding-block:clamp(3.5rem,9vw,8rem)}.hero h1{font-size:clamp(3.25rem,10vw,8.25rem)}.hero .lead{max-width:36rem}

.back-top{margin:1.5rem 0 0;text-align:right}
.hero-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);align-items:center;gap:clamp(1.5rem,5vw,4rem)}
.hero h1{font-size:clamp(3.25rem,8vw,7rem)}
.hero-portrait{display:block;width:100%;height:auto;border:1px solid #6b5263;border-radius:.65rem}
@media(max-width:740px){.hero-inner{grid-template-columns:1fr}.hero-portrait{max-width:310px}}
.blog-article{max-width:760px}
.blog-article h1{font-size:clamp(2.65rem,7vw,5rem)}
.blog-article h2{font-size:clamp(1.75rem,4vw,2.5rem);margin-top:2rem}
#blog article{border-top:1px solid var(--line);padding:1.5rem 0}

.writing-title{font-size:clamp(3rem,8vw,6rem)}

.portrait-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(130px,17vw,195px);grid-template-areas:"copy portrait";gap:clamp(1.25rem,4vw,3rem);align-items:start}
.page-copy{grid-area:copy;min-width:0}
.page-copy .wrap{width:100%}
.page-portrait{grid-area:portrait;margin-top:clamp(3rem,7vw,6rem)}
.page-portrait img{display:block;width:100%;height:auto;border-radius:.65rem}
@media(max-width:740px){.portrait-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"portrait" "copy";gap:0}.page-portrait{width:min(38%,140px);margin-top:2rem}}
.book-feature{background:transparent;border:0;border-radius:0;padding:0}

.speaking-session{margin-top:1.25rem}
.session-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem}
.session-gallery a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:.5rem;background:var(--dark)}
.session-gallery img{display:block;width:100%;height:100%;object-fit:contain}

.session-gallery .cool-stage-light{filter:saturate(.35) sepia(.18) brightness(1.12)}

#reviews { margin-block-start: clamp(2.5rem, 6vw, 4rem); }

.photo-overlay {
  grid-template-columns: repeat(10, minmax(0, 1fr));
  align-items: center;
  gap: 0;
}
.photo-overlay a {
  grid-row: 1;
  aspect-ratio: auto;
  border-radius: 0;
  background: none;
}
.photo-overlay a:first-child { grid-column: 1 / 4; }
.photo-overlay a:nth-child(2) { grid-column: 3 / 9; z-index: 1; }
.photo-overlay a:last-child { grid-column: 8 / 11; }
.photo-overlay a:focus-visible { z-index: 2; }
.photo-overlay img { height: auto; }

#financial-district-title,
#celebration-title {
  font-size: clamp(1.25rem, 2.5vw, 1.65rem);
}
#doom-has-arrived { font-size: 1.15rem; }

#launch-photos .session-gallery a {
  background: transparent;
  border: 0;
  border-radius: 0;
}

#launch-photos .session-gallery img {
  object-fit: cover;
}

.book-presentation {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  align-items: start;
  gap: 1rem;
}
.book-presentation img {
  display: block;
  width: 100%;
  max-width: 260px;
  height: auto;
}

#books .writing-title + .book-feature { margin-block-start: clamp(3rem, 6vw, 5rem); }

.halloween-photos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  max-width: 47rem;
}
@media (max-width: 600px) {
  .halloween-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 23rem;
  }
}
.halloween-photos img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  object-fit: cover;
}
