@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;1,500&display=swap");
:root {
  --black: #050505;
  --ink: #182324;
  --charcoal: #344044;
  --mint: #83b99b;
  --paper: #f5f6f5;
  --white: #fff;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
}
img {
  max-width: 100%;
}
a {
  color: inherit;
}
.topbar {
  height: 100px;
  background: var(--black);
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 3vw;
  position: sticky;
  top: 0;
  z-index: 100;
}
.brand {
  width: 245px;
}
.brand img {
  width: 100%;
  display: block;
  filter: brightness(0) invert(1);
}
.links {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 31px;
}
.links a {
  text-decoration: none;
  font-size: 14px;
}
.links a:hover {
  color: var(--mint);
}
.nav-cta {
  background: var(--mint);
  color: #fff !important;
  padding: 15px 24px;
  border-radius: 5px;
  font-weight: 600;
}
.menu {
  display: none;
}
.hero {
  min-height: 760px;
  background: #edf0ef;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  padding: 95px 8vw 125px;
}
.hero:before {
  content: "";
  position: absolute;
  width: 520px;
  height: 240px;
  background: var(--mint);
  border-radius: 0 0 70% 0;
  left: -120px;
  top: 0;
}
.hero-copy {
  position: relative;
  z-index: 3;
  max-width: 720px;
}
.eyebrow,
.section-label {
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
}
.eyebrow {
  color: #5a7469;
}
.hero h1,
.facts h2,
.about h2,
.section-head h2,
.fit h2,
.books h2,
.reviews h2,
.roadmap h2,
.contact h2 {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.04;
  margin: 0;
}
.hero h1 {
  font-size: clamp(58px, 6.4vw, 102px);
}
.hero h1 em {
  color: #628d78;
}
.hero-copy > p:not(.eyebrow) {
  font-size: 20px;
  max-width: 650px;
  margin: 30px 0;
}
.button {
  display: inline-block;
  background: var(--mint);
  color: #fff;
  border: 0;
  border-radius: 4px;
  padding: 16px 24px;
  text-decoration: none;
  font: 600 14px var(--sans);
  cursor: pointer;
}
.hero-books {
  position: relative;
  height: 570px;
  perspective: 1200px;
}
.cover {
  position: absolute;
  width: 260px;
  aspect-ratio: 2/3;
  object-fit: cover;
  box-shadow: 0 28px 55px rgba(0, 0, 0, 0.3);
  animation: float 6s ease-in-out infinite;
}
.c1 {
  left: 13%;
  top: 18%;
  transform: rotate(-9deg);
}
.c2 {
  left: 42%;
  top: 3%;
  transform: rotate(4deg);
  animation-delay: -2s;
}
.c3 {
  left: 52%;
  top: 36%;
  transform: rotate(10deg);
  animation-delay: -4s;
}
@keyframes float {
  50% {
    translate: 0 -14px;
  }
}
.facts {
  text-align: center;
  padding: 95px 7vw 140px;
}
.facts h2 {
  font-size: 50px;
  margin: 13px 0 55px;
}
.fact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1100px;
  margin: auto;
}
.fact-grid div {
  padding: 20px 45px;
  border-right: 1px solid #d8dedd;
}
.fact-grid div:last-child {
  border: 0;
}
.fact-grid strong {
  display: block;
  color: var(--mint);
  font-size: 58px;
  line-height: 1;
}
.fact-grid span {
  display: block;
  margin-top: 15px;
}
.angle-light,
.angle-dark {
  position: relative;
  clip-path: polygon(0 4%, 100% 0, 100% 96%, 0 100%);
}
.about {
  background: var(--paper);
  padding: 170px 9vw;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9vw;
  align-items: center;
}
.image-field {
  height: 500px;
  background: var(--mint);
  position: relative;
  overflow: hidden;
}
.image-field:before,
.image-field:after {
  content: "";
  position: absolute;
  background: #fff;
  opacity: 0.4;
}
.image-field:before {
  width: 65%;
  height: 2px;
  top: 50%;
  left: 18%;
}
.image-field:after {
  height: 65%;
  width: 2px;
  left: 50%;
  top: 18%;
}
.image-field span {
  position: absolute;
  font: 500 260px/1 var(--serif);
  color: #fff;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -54%);
}
.about h2 {
  font-size: clamp(44px, 4.6vw, 72px);
  margin: 15px 0 30px;
}
.about p {
  font-size: 18px;
}
.text-link {
  font-weight: 600;
  text-underline-offset: 5px;
}
.services,
.process,
.team,
.reviews,
.books {
  padding: 130px 7vw;
}
.section-head {
  display: grid;
  grid-template-columns: 1.4fr 0.6fr;
  gap: 9vw;
  align-items: end;
  margin-bottom: 80px;
}
.section-head h2 {
  font-size: clamp(48px, 5vw, 78px);
}
.section-head > p {
  font-size: 18px;
}
.service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #d4dbd8;
}
.service-grid article {
  background: #fff;
  padding: 45px 38px;
  min-height: 430px;
}
.service-icon {
  display: inline-grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border: 2px solid var(--ink);
  font-weight: 600;
  color: var(--mint);
}
.service-grid h3 {
  font-family: var(--serif);
  font-size: 32px;
  font-weight: 500;
  margin: 28px 0 10px;
}
.service-grid ul {
  list-style: none;
  padding: 18px 0 0;
  margin: 0;
  border-top: 1px solid #d7dcda;
}
.service-grid li {
  padding: 4px 0;
  font-size: 14px;
}
.service-grid li:before {
  content: "—";
  color: var(--mint);
  margin-right: 8px;
}
.fit {
  background: var(--charcoal);
  color: white;
  padding: 170px 10vw;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10vw;
}
.fit h2 {
  font-size: clamp(50px, 5.2vw, 80px);
  margin: 15px 0 30px;
}
.fit > div > p:last-child {
  font-size: 18px;
}
.fit ul {
  margin: 65px 0 0;
  padding: 0;
  list-style: none;
}
.fit li {
  padding: 18px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.23);
  font-size: 18px;
}
.fit li:before {
  content: "+";
  color: var(--mint);
  font-size: 24px;
  margin-right: 15px;
}
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.steps article {
  border-top: 3px solid var(--mint);
  padding-top: 24px;
}
.steps strong {
  font-size: 13px;
  color: #698a7b;
}
.steps h3 {
  font: 500 27px var(--serif);
  margin: 25px 0 12px;
}
.books {
  background: #f4f5f5;
  overflow: hidden;
  text-align: center;
}
.books h2 {
  font-size: clamp(50px, 5vw, 78px);
  max-width: 950px;
  margin: 20px auto 75px;
}
.book-window {
  overflow: hidden;
  margin: 0 -7vw;
}
.book-track {
  display: flex;
  gap: 45px;
  width: max-content;
  padding: 10px 50px 50px;
  animation: booksMove 35s linear infinite;
}
.book-track:hover {
  animation-play-state: paused;
}
.book-track a {
  width: 245px;
  text-decoration: none;
  text-align: left;
}
.book-track img {
  width: 245px;
  height: 370px;
  object-fit: cover;
  box-shadow: 0 20px 35px rgba(0, 0, 0, 0.2);
}
.book-track span {
  display: block;
  margin-top: 16px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
}
@keyframes booksMove {
  to {
    transform: translateX(-40%);
  }
}
.book-disclaimer {
  font-size: 12px;
  color: #66706e;
  max-width: 780px;
  margin: 30px auto 0;
}
.team {
  background: #fff;
}
.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}
.person {
  border: 0;
  background: #f2f4f3;
  padding: 0;
  text-align: left;
  color: var(--ink);
  cursor: pointer;
  transition: transform 0.25s;
}
.person:hover {
  transform: translateY(-8px);
}
.person img,
.person i {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
}
.person i {
  display: grid;
  place-items: center;
  background: var(--charcoal);
  color: var(--mint);
  font: 500 68px var(--serif);
}
.person span {
  display: block;
  padding: 20px;
}
.person b,
.person small {
  display: block;
}
.person b {
  font: 500 22px var(--serif);
}
.person small {
  font-size: 13px;
  margin-top: 5px;
  color: #63706b;
}
.team-page .person p{margin:14px 0 18px;color:#53605b;font-size:15px;line-height:1.55}.team-page .person em{display:inline-block;font-style:normal;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:3px}.team-page .person:focus-visible{outline:3px solid #986744;outline-offset:4px}
.reviews {
  background: var(--charcoal);
  color: white;
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: 8vw;
}
.reviews h2 {
  font-size: clamp(46px, 5vw, 74px);
  margin-top: 20px;
}
.review-controls {
  display: flex;
  gap: 9px;
  margin-top: 40px;
}
.review-controls button {
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  background: transparent;
  color: white;
  font-size: 21px;
  cursor: pointer;
}
.review-track {
  display: flex;
  overflow-x: auto;
  gap: 24px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.review-track::-webkit-scrollbar {
  display: none;
}
.review-track article {
  flex: 0 0 min(560px, 80vw);
  min-height: 520px;
  background: white;
  color: var(--ink);
  padding: 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  scroll-snap-align: start;
}
.review-track blockquote {
  font: 500 clamp(22px, 2vw, 31px) / 1.45 var(--serif);
  margin: 0;
}
.review-track footer {
  background: none !important;
  color: var(--ink) !important;
  border-top: 1px solid #d4dad7;
  padding: 24px 0 0 !important;
  display: flex;
  justify-content: space-between;
  gap: 15px;
}
.review-track footer span {
  font-size: 12px;
  text-align: right;
}
.results-note {
  grid-column: 2;
  font-size: 11px;
  color: #c7cecb;
}
.roadmap {
  background: var(--mint);
  padding: 120px 9vw;
  display: grid;
  grid-template-columns: 1fr 0.75fr;
  gap: 9vw;
  align-items: center;
}
.roadmap h2 {
  font-size: clamp(50px, 5vw, 78px);
  color: white;
}
.roadmap > div:first-child > p:last-child {
  font-size: 18px;
}
.roadmap-card {
  background: white;
  padding: 45px;
  min-height: 360px;
  display: flex;
  flex-direction: column;
}
.roadmap-card > span {
  font-size: 11px;
  letter-spacing: 0.13em;
}
.roadmap-card > strong {
  font: 500 42px/1.1 var(--serif);
  margin: 45px 0 auto;
}
.dark-button {
  background: var(--black);
  width: max-content;
}
.roadmap-card small {
  margin-top: 14px;
}
.contact {
  background: var(--charcoal);
  color: white;
  padding: 170px 9vw 140px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10vw;
}
.contact h2 {
  font-size: clamp(52px, 5vw, 78px);
  margin: 15px 0 30px;
}
.contact > div > a {
  display: block;
  color: white;
  margin: 12px 0;
}
.contact form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.contact label {
  font-size: 13px;
}
.contact input,
.contact select,
.contact textarea {
  display: block;
  width: 100%;
  margin-top: 7px;
  padding: 15px;
  border: 1px solid #74807e;
  background: transparent;
  color: white;
  font: 16px var(--sans);
}
.contact select option {
  color: #111;
}
.contact label:nth-of-type(5),
.contact textarea,
.contact form .button {
  grid-column: 1/-1;
}
.contact textarea {
  resize: vertical;
}
.form-success {
  align-self: center;
  border: 1px solid #8f7b70;
  background: #f5f1eb;
  color: #211c19;
  padding: 36px;
  max-width: 620px;
}
.form-success h3 {
  font: 500 36px/1.1 var(--serif);
  margin: 0 0 18px;
}
.form-success p {
  font-size: 17px;
  line-height: 1.65;
}
.form-success a {
  color: #704a34 !important;
  font-weight: 700;
  text-decoration: underline;
}
.halcyon-email-form button:disabled {
  opacity: 0.65;
  cursor: wait;
}
footer {
  background: var(--black);
  color: white;
  padding: 70px 5vw 30px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px;
  align-items: start;
}
footer > img {
  width: 260px;
  filter: brightness(0) invert(1);
}
footer > p {
  margin: 0;
  color: #adb5b2;
}
footer > div {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
}
footer > div a {
  font-size: 13px;
  text-decoration: none;
}
footer > span {
  grid-column: 1/-1;
  padding-top: 25px;
  border-top: 1px solid #404747;
  font-size: 11px;
}
.footer-socials{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.footer-social{display:inline-flex;align-items:center;gap:10px;width:max-content;color:inherit;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.04em}.footer-social svg{width:30px;height:30px}.footer-youtube svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.footer-facebook svg{fill:currentColor}.footer-social:hover span{text-decoration:underline;text-underline-offset:4px}.footer-social:focus-visible{outline:2px solid currentColor;outline-offset:5px}
dialog {
  width: min(620px, calc(100% - 30px));
  border: 0;
  padding: 50px;
  box-shadow: 0 30px 100px rgba(0, 0, 0, 0.45);
  color: var(--ink);
}
dialog::backdrop {
  background: rgba(0, 0, 0, 0.72);
}
dialog h3 {
  font: 500 42px var(--serif);
  margin: 0 0 5px;
}
dialog > b {
  color: #628d78;
}
dialog p {
  font-size: 17px;
}
dialog .profile-kicker{margin:0 0 10px;color:#986744;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}dialog .profile-lead{font-family:var(--serif);font-size:21px;line-height:1.45;color:#2b211d}dialog h4{font:500 22px var(--serif);margin:28px 0 10px}dialog ul{margin:0;padding-left:20px;columns:2;column-gap:36px}dialog li{break-inside:avoid;margin:7px 0;font-size:15px}dialog[open]{max-height:min(86vh,820px);overflow:auto}
.close {
  position: absolute;
  right: 20px;
  top: 15px;
  border: 0;
  background: none;
  font-size: 30px;
  cursor: pointer;
}
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.75s ease,
    transform 0.75s ease;
}
[data-reveal].in {
  opacity: 1;
  transform: none;
}
@media (max-width: 980px) {
  .topbar {
    height: 78px;
    padding: 0 20px;
  }
  .brand {
    width: 215px;
  }
  .menu {
    display: block;
    margin-left: auto;
    background: none;
    color: white;
    border: 1px solid #777;
    padding: 9px 13px;
  }
  .links {
    display: none;
    position: absolute;
    top: 78px;
    left: 0;
    right: 0;
    background: #050505;
    padding: 25px;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
  .nav-open .links {
    display: flex;
  }
  .hero {
    grid-template-columns: 1fr;
    min-height: auto;
    padding: 100px 25px 80px;
  }
  .hero-books {
    height: 490px;
    margin-top: 35px;
  }
  .facts {
    padding: 80px 25px 110px;
  }
  .about,
  .fit,
  .roadmap,
  .contact,
  .reviews {
    grid-template-columns: 1fr;
    padding-left: 25px;
    padding-right: 25px;
  }
  .section-head {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .service-grid {
    grid-template-columns: 1fr 1fr;
  }
  .steps {
    grid-template-columns: 1fr 1fr;
  }
  .team-grid {
    grid-template-columns: 1fr 1fr;
  }
  .reviews {
    gap: 55px;
  }
  .results-note {
    grid-column: 1;
  }
  .contact form {
    margin-top: 20px;
  }
  footer {
    grid-template-columns: 1fr 1fr;
  }
  .angle-light,
  .angle-dark {
    clip-path: polygon(0 2%, 100% 0, 100% 98%, 0 100%);
  }
}
@media (max-width: 600px) {
  .hero h1 {
    font-size: 52px;
  }
  .hero-books {
    height: 350px;
  }
  .cover {
    width: 155px;
  }
  .c1 {
    left: 2%;
  }
  .c2 {
    left: 34%;
  }
  .c3 {
    left: 48%;
  }
  .fact-grid {
    grid-template-columns: 1fr;
  }
  .fact-grid div {
    border-right: 0;
    border-bottom: 1px solid #d8dedd;
  }
  .about {
    padding-top: 120px;
    padding-bottom: 120px;
  }
  .image-field {
    height: 330px;
  }
  .image-field span {
    font-size: 170px;
  }
  .services,
  .process,
  .team,
  .reviews,
  .books {
    padding: 100px 20px;
  }
  .service-grid,
  .steps {
    grid-template-columns: 1fr;
  }
  .service-grid article {
    min-height: 0;
  }
  .team-grid {
    gap: 12px;
  }
  .person span {
    padding: 14px;
  }
  .person b {
    font-size: 18px;
  }
  .person small {
    font-size: 12px;
  }
  .person i {
    font-size: 42px;
  }
  .review-track article {
    min-height: 590px;
    padding: 30px;
  }
  .roadmap-card {
    padding: 30px;
  }
  .roadmap-card > strong {
    font-size: 34px;
  }
  .contact form {
    grid-template-columns: 1fr;
  }
  .contact label,
  .contact label:nth-of-type(5),
  .contact form .button {
    grid-column: 1;
  }
  .contact {
    padding-top: 130px;
    padding-bottom: 120px;
  }
  footer {
    grid-template-columns: 1fr;
  }
  .book-track a,
  .book-track img {
    width: 190px;
  }
  .book-track img {
    height: 290px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .cover,
  .book-track {
    animation: none;
  }
  [data-reveal] {
    opacity: 1;
    transform: none;
  }
}
:root {
  --black: #15110f;
  --ink: #2b211d;
  --charcoal: #322a26;
  --mint: #986744;
  --paper: #f5f1eb;
}
.hero {
  background: #f1ede7;
}
.eyebrow {
  color: #7d573e;
}
.hero h1 em {
  color: #986744;
}
.image-field {
  background: #d9c8b9;
  box-shadow: 28px 28px 0 #c9b29f;
}
.image-field:before,
.image-field:after,
.image-field > span {
  display: none;
}
.image-field img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.service-grid {
  background: #dfd4cb;
}
.service-grid > a {
  display: block;
  background: #fff;
  padding: 45px 38px;
  min-height: 470px;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition:
    transform 0.3s ease,
    background 0.3s ease,
    color 0.3s ease;
}
.service-grid > a:after {
  content: "";
  position: absolute;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: #eee4dc;
  right: -55px;
  bottom: -65px;
  transition: transform 0.45s ease;
}
.service-grid > a:hover {
  transform: translateY(-10px);
  background: #322a26;
  color: white;
  z-index: 2;
}
.service-grid > a:hover:after {
  transform: scale(4);
}
.service-grid > a > * {
  position: relative;
  z-index: 1;
}
.service-grid > a:hover .service-icon {
  background: #986744;
  color: #fff;
  border-color: #986744;
  transform: rotate(-6deg) scale(1.08);
}
.service-grid > a > p {
  min-height: 78px;
}
.service-grid > a > b {
  display: block;
  margin-top: 22px;
  font-size: 12px;
  letter-spacing: 0.06em;
}
.service-icon {
  transition:
    transform 0.3s ease,
    background 0.3s ease,
    color 0.3s ease;
}
.books {
  background: #f3eee8;
}
.person {
  background: #f2ece6;
}
dialog > b {
  color: #986744;
}
@media (max-width: 600px) {
  .service-grid > a {
    min-height: 0;
  }
  .image-field {
    box-shadow: 15px 15px 0 #c9b29f;
  }
  dialog{padding:38px 25px}dialog h3{font-size:34px}dialog .profile-lead{font-size:19px}dialog ul{columns:1}
}
.steps strong,
.section-label {
  color: #7d573e;
}
.fact-grid div {
  border-color: #dfd4cb;
}
.fit,
.reviews,
.contact {
  background: #322a26;
}
.roadmap {
  background: #986744;
}
.topbar,
footer {
  background: #15110f;
}
.hero-books .cover {
  width: 205px;
}
.hero-books .c1 {
  left: 3%;
  top: 24%;
  transform: rotate(-12deg);
}
.hero-books .c2 {
  left: 25%;
  top: 4%;
  transform: rotate(-5deg);
}
.hero-books .c3 {
  left: 48%;
  top: 1%;
  transform: rotate(5deg);
}
.hero-books .c4 {
  left: 67%;
  top: 20%;
  transform: rotate(12deg);
  animation-delay: -1s;
}
.hero-books .c5 {
  left: 18%;
  top: 43%;
  transform: rotate(-5deg);
  animation-delay: -3s;
}
.hero-books .c6 {
  left: 49%;
  top: 42%;
  transform: rotate(7deg);
  animation-delay: -5s;
}
/* Inner pages */
.page-hero {
  min-height: 390px;
  background: #e7ddd3;
  position: relative;
  overflow: hidden;
  padding: 80px 7vw;
  display: flex;
  align-items: flex-end;
}
.page-hero:before {
  content: "";
  position: absolute;
  inset: -20% -5% 48% -5%;
  background: #986744;
  transform: rotate(-3deg);
}
.page-hero h1 {
  position: relative;
  color: white;
  font: 500 clamp(58px, 7vw, 104px) / 0.95 var(--serif);
  letter-spacing: -0.04em;
  margin: 0;
}
.page-hero p {
  position: absolute;
  right: 7vw;
  bottom: 75px;
  max-width: 430px;
  font-size: 18px;
}
.inner-intro {
  padding: 105px 8vw;
  text-align: center;
  max-width: 1050px;
  margin: auto;
}
.inner-intro h2,
.split-story h2,
.process-shell h2,
.catalog h2,
.story-list h2,
.team-page h2,
.contact-page h2 {
  font: 500 clamp(42px, 5vw, 72px) / 1.05 var(--serif);
  letter-spacing: -0.035em;
  margin: 0 0 25px;
}
.inner-intro p {
  font-size: 19px;
  max-width: 760px;
  margin: 15px auto;
}
.icon-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 15px 7vw 110px;
  gap: 1px;
}
.icon-links a {
  border: 1px solid #d8ccc2;
  padding: 38px;
  text-align: center;
  text-decoration: none;
  transition: 0.25s;
}
.icon-links a:hover {
  background: #322a26;
  color: white;
  transform: translateY(-7px);
}
.icon-links strong {
  display: block;
  font: 500 27px var(--serif);
  margin: 15px;
}
.split-story {
  padding: 120px 8vw;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9vw;
  align-items: center;
}
.split-story:nth-of-type(even) {
  background: #f5f1eb;
}
.split-story.reverse .story-visual {
  order: -1;
}
.story-visual {
  min-height: 460px;
  background: #d8c4b3;
  box-shadow: 26px 26px 0 #2f2824;
  padding: 45px;
  display: grid;
  align-content: center;
}
.story-visual strong {
  font: 500 clamp(48px, 6vw, 86px) / 0.95 var(--serif);
  color: white;
}
.deliverables {
  columns: 2;
  padding: 0;
  list-style: none;
}
.deliverables li {
  break-inside: avoid;
  padding: 10px 0;
  border-bottom: 1px solid #ded5ce;
}
.deliverables li:before {
  content: "+";
  color: #986744;
  margin-right: 10px;
}
.process-shell {
  padding: 115px 7vw;
  background: #f5f1eb;
  text-align: center;
}
.process-tabs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  max-width: 1100px;
  margin: 60px auto 0;
}
.process-tabs button {
  padding: 22px 12px;
  border: 1px solid #c9bbb0;
  background: #eee6df;
  font: 600 13px var(--sans);
  cursor: pointer;
}
.process-tabs button.active {
  background: white;
  color: #986744;
  border-bottom-color: white;
}
.process-panel {
  max-width: 1100px;
  margin: auto;
  border: 1px solid #c9bbb0;
  background: white;
  padding: 55px;
  text-align: left;
  display: grid;
  grid-template-columns: 0.35fr 1fr;
  gap: 45px;
}
.process-panel strong {
  font: 500 90px var(--serif);
  color: #cbb2a0;
}
.process-panel h3 {
  font: 500 40px var(--serif);
  margin: 0;
}
.catalog {
  padding: 110px 7vw;
}
.catalog-head {
  text-align: center;
  max-width: 850px;
  margin: 0 auto 70px;
}
.book-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 80px 55px;
}
.book-card {
  text-align: center;
}
.book-card img {
  height: 430px;
  width: 286px;
  object-fit: cover;
  box-shadow: 16px 18px 0 #d5c1b1;
  transition: 0.3s;
}
.book-card:hover img {
  transform: translateY(-10px) rotate(1deg);
}
.book-card h3 {
  font: 500 27px var(--serif);
  margin: 28px 0 3px;
}
.book-card p {
  margin: 0;
  color: #705f55;
}
.story-list {
  padding: 110px 8vw;
}
.story-list > h2 {
  text-align: center;
}
.story-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-top: 65px;
}
.story-card {
  background: #f5f1eb;
  padding: 42px;
  display: flex;
  flex-direction: column;
  min-height: 360px;
}
.story-card blockquote {
  font: 500 24px/1.45 var(--serif);
  margin: 0 0 30px;
}
.story-card footer {
  background: none !important;
  color: inherit !important;
  padding: 25px 0 0;
  border-top: 1px solid #d7ccc3;
  display: block;
  margin-top: auto;
}
.story-card footer b,
.story-card footer span {
  display: block;
}
.team-page,
.contact-page {
  padding: 110px 7vw;
}
.inner-cta {
  padding: 120px 7vw;
  background: #211c19;
  color: white;
  text-align: center;
}
.inner-cta h2 {
  font: 500 clamp(48px, 6vw, 82px) / 1 var(--serif);
  max-width: 900px;
  margin: 0 auto 35px;
}
.utility-main {
  padding: 110px 8vw;
  max-width: 1100px;
  margin: auto;
}
.utility-main h1 {
  font: 500 clamp(52px, 7vw, 88px) var(--serif);
}
@media (max-width: 980px) {
  .page-hero p {
    display: none;
  }
  .split-story {
    grid-template-columns: 1fr;
  }
  .split-story.reverse .story-visual {
    order: 0;
  }
  .book-grid {
    grid-template-columns: 1fr 1fr;
  }
  .story-cards {
    grid-template-columns: 1fr;
  }
  .process-tabs {
    grid-template-columns: 1fr;
  }
  .process-panel {
    grid-template-columns: 1fr;
  }
  .icon-links {
    grid-template-columns: 1fr;
  }
  .hero-books .cover {
    width: 170px;
  }
}
@media (max-width: 600px) {
  .hero-books .cover {
    width: 118px;
  }
  .hero-books .c1 {
    left: 0;
  }
  .hero-books .c2 {
    left: 25%;
  }
  .hero-books .c3 {
    left: 52%;
  }
  .hero-books .c4 {
    left: 68%;
    top: 28%;
  }
  .hero-books .c5 {
    left: 13%;
    top: 47%;
  }
  .hero-books .c6 {
    left: 47%;
    top: 48%;
  }
  .page-hero {
    min-height: 300px;
    padding: 55px 22px;
  }
  .inner-intro,
  .split-story,
  .process-shell,
  .catalog,
  .story-list,
  .team-page,
  .contact-page {
    padding-left: 22px;
    padding-right: 22px;
  }
  .book-grid {
    grid-template-columns: 1fr;
  }
  .book-card img {
    height: 390px;
    width: 260px;
  }
  .deliverables {
    columns: 1;
  }
  .process-panel {
    padding: 30px;
  }
  .story-card {
    padding: 28px;
  }
}
.book-card {
  display: grid;
  grid-template-rows: auto 1fr;
  text-align: left;
  text-decoration: none;
  background: #f5f1eb;
  border: 1px solid #e1d6cc;
  transition:
    transform 0.3s,
    box-shadow 0.3s;
}
.book-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 26px 55px rgba(47, 34, 27, 0.14);
}
.book-cover {
  display: grid;
  place-items: center;
  min-height: 470px;
  padding: 34px;
  background: #e9dfd6;
  position: relative;
  overflow: hidden;
}
.book-card .book-cover img {
  height: 405px;
  width: 270px;
  object-fit: cover;
  box-shadow: 14px 16px 0 #cbb4a2;
  transition: 0.35s;
}
.book-card:hover .book-cover img {
  transform: scale(1.025) rotate(1deg);
}
.book-cover i {
  position: absolute;
  inset: auto 24px 24px auto;
  background: #15110f;
  color: white;
  padding: 11px 15px;
  font: 600 12px var(--sans);
  font-style: normal;
  opacity: 0;
  transform: translateY(8px);
  transition: 0.25s;
}
.book-card:hover .book-cover i {
  opacity: 1;
  transform: none;
}
.book-card > div {
  padding: 28px;
}
.book-card small {
  color: #84634e;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.book-card h3 {
  font: 500 30px var(--serif);
  margin: 10px 0 3px;
}
.book-card p {
  margin: 0 0 22px;
  color: #705f55;
}
.book-card b {
  font-size: 12px;
  letter-spacing: 0.06em;
}
.book-detail {
  padding: 100px 8vw 125px;
  background: #f5f1eb;
}
.book-detail-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) 1.28fr;
  gap: 9vw;
  align-items: start;
  max-width: 1280px;
  margin: auto;
}
.detail-cover {
  position: sticky;
  top: 135px;
  padding: 38px;
  background: #ded0c4;
  box-shadow: 28px 28px 0 #2f2824;
}
.detail-cover img {
  width: 100%;
  max-height: 690px;
  object-fit: cover;
  display: block;
}
.book-kicker {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #855e45;
  font-weight: 600;
  font-size: 13px;
}
.book-copy h1 {
  font: 500 clamp(55px, 7vw, 96px) / 0.96 var(--serif);
  letter-spacing: -0.045em;
  margin: 15px 0 8px;
}
.book-author {
  font: 500 25px var(--serif);
  color: #6e5444;
}
.book-description {
  font-size: 19px;
  line-height: 1.75;
  margin: 45px 0;
}
.book-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 32px 0;
}
.store-link {
  display: flex;
  align-items: center;
  gap: 11px;
  background: #15110f;
  color: white;
  text-decoration: none;
  padding: 15px 20px;
  border: 1px solid #15110f;
  font-weight: 600;
}
.store-link.secondary {
  background: transparent;
  color: #2b211d;
}
.store-link svg {
  width: 23px;
  height: 23px;
}
.book-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid #d0c2b7;
  margin-top: 45px;
}
.book-meta div {
  padding: 20px 0;
  border-bottom: 1px solid #d0c2b7;
}
.book-meta small,
.book-meta strong {
  display: block;
}
.book-meta small {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #806b5d;
}
.back-catalog {
  display: inline-block;
  margin-bottom: 35px;
  font-weight: 600;
}
@media (max-width: 980px) {
  .book-detail-grid {
    grid-template-columns: 1fr;
  }
  .detail-cover {
    position: relative;
    top: auto;
    max-width: 520px;
    margin: auto;
  }
}
@media (max-width: 600px) {
  .book-card .book-cover img {
    height: 360px;
    width: 240px;
  }
  .book-cover {
    min-height: 420px;
  }
  .book-detail {
    padding: 70px 22px 100px;
  }
  .detail-cover {
    padding: 24px;
    box-shadow: 14px 14px 0 #2f2824;
  }
  .book-meta {
    grid-template-columns: 1fr;
  }
}
.lead-card {
  min-height: 610px;
}
.download-form {
  display: grid;
  gap: 13px;
  margin-top: 30px;
}
.download-form label {
  font: 600 13px var(--sans);
}
.download-form input {
  display: block;
  width: 100%;
  margin-top: 6px;
  border: 1px solid #c8b9ad;
  padding: 14px 15px;
  background: #fff;
  font: 16px var(--sans);
  color: var(--ink);
}
.download-form .button {
  width: 100%;
  margin-top: 3px;
}
.privacy-note {
  font-size: 12px;
  line-height: 1.45;
  color: #6d625b;
  margin: 0;
}
.download-success {
  border-top: 1px solid #d5c9bf;
  margin-top: 25px;
  padding-top: 20px;
}
.download-success b {
  font: 500 24px var(--serif);
}
.download-success p {
  margin-bottom: 0;
}
/* Contact details use clear, accessible icons without tying the phone line to one app. */
.contact-link{display:flex!important;align-items:center;gap:.7rem;width:max-content;max-width:100%;margin:.65rem 0;text-decoration:none}.contact-link svg{width:1.2rem;height:1.2rem;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.contact-link:hover{text-decoration:underline;text-underline-offset:.25rem}
.footer-instagram svg{fill:none;stroke:currentColor;stroke-width:1.7}.footer-instagram .instagram-dot{fill:currentColor;stroke:none}

/* Core team and project collaborators. */
.team-page .catalog-head > p:not(.section-label){max-width:720px;line-height:1.65;color:#53605b}
.team-page.collaborators{padding-top:65px;background:#f5f0eb;border-top:1px solid #e3d8ce}
.collaborator-heading{margin:70px 0 30px;border-top:1px solid #ded4ca;padding-top:40px}
.collaborator-heading h3{font:500 clamp(28px,4vw,44px)/1.15 var(--serif);margin:12px 0}
.collaborator-heading p:not(.section-label){max-width:640px;line-height:1.6}
.collaborator-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.collaborator-grid .person b{font-size:20px}
.team-note{margin-top:30px;line-height:1.6}
.person{min-width:0}
.person img{object-position:center 28%}
.person[data-profile="jennifer-lopez"] img{object-position:center 24%}
.person:focus-visible{outline:3px solid #986744;outline-offset:4px}
@media(max-width:1000px){.collaborator-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.collaborator-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collaborator-grid .person b{font-size:18px}.collaborator-heading{margin-top:45px}}
@media(max-width:380px){.team-grid{grid-template-columns:1fr}}
