:root {
  --bg: #f3e2bd;
  --light: #f8edd3;
  --cream: #fff6e6;
  --card: #f7e7c6;
  --ink: #3d281d;
  --soft: #70513b;
  --brown: #7a4b2c;
  --rose: #a85d44;
  --gold: #b88a45;
  --orange: #ca7b31;
  --line: #cfae7a;
  --serif: "Cormorant Garamond", Georgia, serif;
  --body: "Crimson Text", Georgia, serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  color: var(--ink);
  font: 18px/1.45 var(--body);
  background-color: #efdab1;
  background-image:
    radial-gradient(ellipse at 15% 5%, #fff8e6a8 0 18%, transparent 42%),
    radial-gradient(ellipse at 86% 47%, #b7834624 0 13%, transparent 43%),
    linear-gradient(90deg, #fff9e755 1px, transparent 1px),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='220' viewBox='0 0 280 220'%3E%3Cg fill='none' stroke='%2397662d' stroke-opacity='.15' stroke-width='.8'%3E%3Cpath d='M-20 190C35 155 54 196 100 158s68-66 146-38'/%3E%3Cpath d='M15 172c8-23 21-34 38-40m-21 54c9-15 24-20 41-18m49-10c-5-23 5-43 22-60m-8 54c16-2 29-10 37-26m65 3c-4-23 6-37 27-48'/%3E%3Cellipse cx='52' cy='132' rx='9' ry='4' transform='rotate(-32 52 132)'/%3E%3Cellipse cx='72' cy='168' rx='10' ry='4' transform='rotate(10 72 168)'/%3E%3Cellipse cx='142' cy='98' rx='11' ry='4' transform='rotate(-50 142 98)'/%3E%3Cellipse cx='173' cy='126' rx='10' ry='4' transform='rotate(-21 173 126)'/%3E%3Cellipse cx='264' cy='82' rx='11' ry='4' transform='rotate(-34 264 82)'/%3E%3Cpath d='M205 174c9-13 25-13 31 1 6 14-10 23-20 14-11 9-27 0-20-15 2-4 6-6 9 0z'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(#8f632522 0.8px, transparent 1px);
  background-size:
    auto,
    auto,
    43px 43px,
    280px 220px,
    7px 7px;
}
/* The supplied antique paper is softened beneath warm washes so it reads as a continuous page. */
body {
  background-color: #d8bd8f;
  background-image:
    linear-gradient(#ead3a9b8, #e4c99ba8),
    radial-gradient(ellipse at 48% 35%, #fff4d78c 0 22%, transparent 67%),
    repeating-linear-gradient(7deg, #5f35130a 0 1px, transparent 1px 6px),
    url("../images/decor/antique-parchment-sheet.png");
  background-size: auto, auto, 96px 96px, cover;
  background-position: center, center, center, center top;
  background-repeat: no-repeat, no-repeat, repeat, no-repeat;
  background-attachment: fixed;
}
body::before {
  content: "";
  position: fixed;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at center, transparent 38%, #5c321f2e 115%),
    linear-gradient(90deg, #51301d22, transparent 9%, transparent 91%, #51301d22);
  box-shadow: inset 0 0 110px #53301d32, inset 0 0 14px #fff2cf6b;
  mix-blend-mode: multiply;
}
main,
footer {
  position: relative;
  z-index: 1;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  display: block;
}
.decorative-rose {
  display: block;
  max-width: 100%;
  height: auto;
  border: none;
  background: transparent;
  background-color: transparent;
  box-shadow: none;
  object-fit: contain;
  object-position: center;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1,
h2,
h3 {
  font-family: var(--serif);
  font-weight: 500;
  line-height: 1;
}
.site-header {
  min-height: 96px;
  display: flex;
  align-items: center;
  padding: 8px 3vw;
  border-bottom: 1px solid var(--line);
  background: #f4e4c5e8;
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(7px);
}
.brand {
  display: flex;
  align-items: center;
  width: 31%;
  font: 500 25px/1 var(--serif);
  text-align: center;
}
.brand img {
  width: 83px;
  height: 76px;
  object-fit: cover;
  object-position: center;
}
.brand span {
  display: flex;
  flex-direction: column;
}
.brand small,
.brand em {
  font-size: 11px;
  letter-spacing: 0.08em;
  font-style: normal;
  text-transform: uppercase;
}
.brand em {
  font-size: 9px;
  margin-top: 5px;
}
.site-header nav {
  display: flex;
  gap: clamp(12px, 1.8vw, 30px);
  align-items: center;
  justify-content: center;
  flex: 1;
}
.site-header nav a {
  font: 600 13px/1 var(--serif);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 12px 0;
  white-space: nowrap;
}
.site-header nav a:hover,
.site-header nav .active {
  color: var(--rose);
  border-bottom: 1px solid var(--rose);
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--brown);
  padding: 12px 24px;
  font: 600 13px/1 var(--serif);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 3px;
  transition: 0.2s;
}
.button:hover {
  color: var(--cream);
  background: var(--brown);
}
.header-buy {
  margin-left: 2vw;
}
.menu-toggle {
  display: none;
  background: none;
  border: 0;
}
.hero {
  display: grid;
  grid-template-columns: minmax(390px, 1.12fr) minmax(360px, 0.88fr);
  gap: clamp(22px, 3.2vw, 58px);
  padding: 38px 3vw 32px;
  min-height: 650px;
  border-bottom: 1px solid var(--line);
  position: relative;
  background:
    linear-gradient(90deg, #fff2d43d, transparent 44%, #b1763420),
    radial-gradient(ellipse at 50% 46%, #ffeecb9a, transparent 62%);
  box-shadow: inset 0 0 0 8px #f9eacb75, inset 0 0 38px #87592c18;
}
.book-stage {
  min-width: 0;
  position: relative;
  display: grid;
  place-items: center;
  background: radial-gradient(circle, #cb8a4566, transparent 60%);
}
.cover-crop {
  position: relative;
  width: min(100%, 560px);
  aspect-ratio: 2 / 3;
  overflow: visible;
  background: none;
  box-shadow: none;
  transform: scale(1.07) translateZ(0);
  transform-origin: center;
}
.cover-crop img {
  height: 100%;
  width: 100%;
  max-width: 100%;
  position: static;
  object-fit: contain;
  opacity: 1;
  mix-blend-mode: normal;
  filter:
    drop-shadow(-8px 12px 10px #41281738)
    drop-shadow(0 22px 20px #321e1248);
}
.book-stage:after {
  content: "";
  position: absolute;
  bottom: 3%;
  width: 80%;
  height: 8%;
  background: #4c281c55;
  filter: blur(16px);
  border-radius: 50%;
  z-index: -1;
}
.butterfly {
  position: absolute;
  width: clamp(64px, 9vw, 118px);
  height: auto;
  right: 0;
  bottom: 9%;
  transform: rotate(-25deg);
  filter: drop-shadow(4px 7px 5px #4d2b1c35);
  z-index: 2;
}
.butterfly-side {
  animation: butterfly-drift 7s ease-in-out infinite;
}
@keyframes butterfly-drift {
  50% { transform: translate(-6px, -10px) rotate(-17deg); }
}
.hero-copy {
  align-self: center;
  padding: 25px 0;
  max-width: 560px;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font: 600 12px/1.2 var(--serif);
  color: var(--brown);
  margin-bottom: 9px;
}
.hero h1 {
  font-size: clamp(45px, 4vw, 68px);
  margin: 0 0 22px;
}
.hero-copy > p:not(.eyebrow) {
  font-size: 20px;
  max-width: 480px;
}
.buy-list {
  display: grid;
  gap: 10px;
}
.buy-list a {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 10px 14px;
  border: 1px solid var(--brown);
  border-radius: 5px;
  background: #f9efd7;
  transition: 0.2s;
}
.buy-list a:not(.direct) {
  background: #302618;
  color: #fff8e8;
}
.buy-list a:hover {
  transform: translateX(4px);
  box-shadow: 0 5px 12px #51311c22;
}
.buy-list strong {
  font:
    700 20px Arial,
    sans-serif;
}
.buy-list span {
  font-size: 15px;
  text-align: right;
}
.buy-list .direct strong {
  display: flex;
  gap: 7px;
  font-family: var(--serif);
}
.buy-list a.preorder {
  background: #6f2f25;
  color: #fff7e6;
}
.buy-list .preorder strong {
  font: 700 17px var(--serif);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.buy-list small {
  font-size: 10px;
  text-transform: uppercase;
}
.home-wall {
  display: grid;
  grid-template-columns: minmax(240px, 0.65fr) minmax(520px, 1.35fr);
  gap: clamp(24px, 5vw, 76px);
  align-items: center;
  padding: clamp(42px, 6vw, 86px) 7vw;
  border-bottom: 1px solid var(--line);
  position: relative;
  background:
    radial-gradient(ellipse at 80% 52%, #b67d3521, transparent 48%),
    linear-gradient(90deg, #f7e9cc9c, #f2dfb78c);
  box-shadow: inset 0 0 0 8px #f9ebd080, inset 0 0 36px #885b2e18;
}
.wall-intro {
  text-align: center;
  max-width: 350px;
  justify-self: center;
}
.wall-intro h2 {
  font-size: clamp(38px, 4vw, 58px);
  margin: 5px 0 12px;
}
.wall-intro > p:not(.eyebrow) {
  font-size: 19px;
  font-style: italic;
  margin-bottom: 24px;
}
.wall-intro > small {
  display: block;
  margin-top: 12px;
  font-style: italic;
}
.wall-board {
  min-height: 410px;
  padding: 20px;
  border: 1px solid var(--line);
  background:
    radial-gradient(#a26d3020 0.8px, transparent 1px),
    linear-gradient(135deg, #f5e1b99b, #f9ebd1c4);
  background-size: 7px 7px, auto;
  box-shadow: inset 0 0 30px #8d5c291f, 0 9px 22px #68421c16;
}
.wall-board .notes {
  max-width: 650px;
  margin: auto;
}
.wall-preview {
  text-align: center;
  border: 1px solid var(--line);
  padding: 28px 18px 18px;
  background: #f7e5c5;
  box-shadow: inset 0 0 35px #a16c2d1c;
  align-self: stretch;
}
.wall-preview h2 {
  font-size: 36px;
  margin: 5px;
}
.wall-preview > p:not(.eyebrow) {
  font-style: italic;
  font-size: 16px;
}
.wall-preview > small {
  display: block;
  margin-top: 10px;
}
.notes {
  height: 430px;
  position: relative;
  margin: 8px auto;
  max-width: 680px;
}
.notes span {
  position: absolute;
  display: grid;
  place-items: center;
  width: 38%;
  min-height: 112px;
  padding: 28px 28px 20px;
  text-align: center;
  text-wrap: balance;
  background:
    radial-gradient(circle at 62% 30%, #fff0ce5e, transparent 38%),
    linear-gradient(135deg, #ebcd98e8, #dfbb7fe8),
    url("../images/decor/antique-parchment-sheet.png") center / cover;
  box-shadow: none;
  filter:
    drop-shadow(0 1px 0 #f9dfaf99)
    drop-shadow(2px 5px 6px #52351f50);
  font: italic 16px/1.25 var(--body);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.notes span:before {
  content: "";
  position: absolute;
  top: 10px;
  left: 50%;
  width: 9px;
  height: 9px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: #89592b;
  box-shadow: 1px 2px 2px #513;
}
.notes span:nth-child(1) {
  left: 3%;
  top: 12px;
  width: 37%;
  transform: rotate(-1.4deg);
  -webkit-mask-image: url("../images/decor/note-mask-1.svg");
  mask-image: url("../images/decor/note-mask-1.svg");
}
.notes span:nth-child(2) {
  right: 3%;
  top: 8px;
  width: 38%;
  transform: rotate(1.2deg);
  -webkit-mask-image: url("../images/decor/note-mask-2.svg");
  mask-image: url("../images/decor/note-mask-2.svg");
}
.notes span:nth-child(3) {
  left: 31%;
  top: 154px;
  width: 38%;
  transform: rotate(-0.6deg);
  -webkit-mask-image: url("../images/decor/note-mask-3.svg");
  mask-image: url("../images/decor/note-mask-3.svg");
}
.notes span:nth-child(4) {
  left: 4%;
  bottom: 8px;
  width: 38%;
  transform: rotate(0.9deg);
  -webkit-mask-image: url("../images/decor/note-mask-4.svg");
  mask-image: url("../images/decor/note-mask-4.svg");
}
.notes span:nth-child(5) {
  right: 3%;
  bottom: 5px;
  width: 39%;
  padding-inline: 24px;
  font-size: 15px;
  transform: rotate(-1deg);
  -webkit-mask-image: url("../images/decor/note-mask-5.svg");
  mask-image: url("../images/decor/note-mask-5.svg");
}
.home-editorial {
  padding: 34px 3vw;
  border-bottom: 1px solid var(--line);
  background: #f8e7c842;
  box-shadow: inset 0 0 0 8px #f9ebd080, inset 0 0 32px #885b2e15;
}
.home-events {
  background:
    radial-gradient(ellipse at 84% 18%, #b77a3120, transparent 38%),
    #f4e2be78;
}
.editorial {
  max-width: 1180px;
  padding: 18px 2vw 25px;
  margin: auto;
  min-width: 0;
}
.section-heading {
  text-align: center;
}
.section-heading h2 {
  font-size: 39px;
  margin: 4px;
}
.section-heading > a {
  font: 600 11px var(--serif);
  text-transform: uppercase;
  border-bottom: 1px solid var(--brown);
}
.card-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 22px;
}
.journal-card,
.event-card {
  border: 1px solid var(--line);
  background: #f7e6c6;
  padding: 10px;
  border-radius: 8px;
  min-width: 0;
}
.journal-card .art,
.event-card .art {
  height: 190px;
}
.art {
  display: grid;
  place-items: center;
  font-size: 65px;
  color: #eebd5c;
  text-shadow: 0 2px 8px #000;
  background:
    radial-gradient(circle at 50% 45%, #edb85a66, transparent 30%),
    linear-gradient(135deg, #152c27, #5b2b1a);
  border-radius: 5px;
  margin-bottom: 13px;
  overflow: hidden;
  isolation: isolate;
}
.art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  position: relative;
  z-index: 1;
  opacity: 0.9;
  transform: scale(1.08);
  mix-blend-mode: luminosity;
  filter: sepia(0.18) saturate(0.84) contrast(0.94);
  -webkit-mask-image: radial-gradient(ellipse 82% 84% at 50% 50%, #000 58%, transparent 100%);
  mask-image: radial-gradient(ellipse 82% 84% at 50% 50%, #000 58%, transparent 100%);
}
.art img.card-monarch {
  width: 112px;
  height: 112px;
  object-fit: contain;
  opacity: 1;
  transform: none;
  mix-blend-mode: normal;
  filter: drop-shadow(3px 5px 5px #28160b66);
  -webkit-mask-image: none;
  mask-image: none;
}
.art img.card-ornate-heart {
  width: 155px;
  height: 155px;
  object-fit: contain;
  object-position: center;
  opacity: 1;
  transform: none;
  mix-blend-mode: normal;
  filter: saturate(0.82) brightness(0.67) sepia(0.22) contrast(1.12) drop-shadow(3px 5px 6px #28160b66);
  -webkit-mask-image: radial-gradient(ellipse 70% 74% at center, #000 48%, transparent 76%);
  mask-image: radial-gradient(ellipse 70% 74% at center, #000 48%, transparent 76%);
}
.art::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse at center, transparent 42%, #56341f24 100%),
    linear-gradient(#f4dca60d, #6f442719);
  mix-blend-mode: soft-light;
}
.art-love {
  background:
    radial-gradient(circle, #ff9f6488, transparent 25%),
    linear-gradient(135deg, #2b1716, #714226);
}
.art-growth {
  background:
    radial-gradient(circle, #e8b55c55, transparent 20%),
    linear-gradient(135deg, #23352f, #7a4b2c);
}
.journal-card h3,
.event-card h3 {
  font-size: 23px;
  margin: 5px 0 8px;
}
.journal-card p,
.event-card p {
  font-size: 15px;
}
.journal-card a,
.event-card a {
  font-size: 14px;
}
.event-card .art {
  position: relative;
}
.art-mic {
  background:
    radial-gradient(circle, #c67a4466, transparent 30%),
    linear-gradient(135deg, #171712, #633e27);
}
.art-words {
  background:
    radial-gradient(circle, #e0a84955, transparent 30%),
    linear-gradient(135deg, #312e20, #76512e);
}
time {
  position: absolute;
  z-index: 3;
  top: 8px;
  left: 8px;
  border: 1px solid #d5a75d;
  padding: 7px;
  background: #2e2419;
  color: #f3cc80;
  font: 600 27px/1 var(--serif);
}
time small {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
}
.event-card > strong {
  font: 600 13px var(--serif);
  color: var(--brown);
}
.quote-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  padding: 22px;
  border-bottom: 1px solid var(--line);
  text-align: center;
  font: 600 19px/1.4 var(--serif);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  background:
    linear-gradient(90deg, #f7e8c8b8, #fff1d7a6 48%, #f2dfb8b8),
    radial-gradient(ellipse at 50% 100%, #b77c3224, transparent 55%);
  box-shadow: inset 0 0 0 8px #f7e8ca80;
}
.quote-strip span {
  font-size: 45px;
}
.quote-strip > img {
  width: clamp(58px, 9vw, 128px);
  height: auto;
  object-fit: contain;
  mix-blend-mode: multiply;
  filter: sepia(0.16) saturate(0.85);
  -webkit-mask-image: radial-gradient(ellipse 78% 82% at center, #000 60%, transparent 100%);
  mask-image: radial-gradient(ellipse 78% 82% at center, #000 60%, transparent 100%);
}
.quote-strip > img.quote-monarch {
  width: clamp(52px, 7vw, 92px);
  filter: drop-shadow(2px 4px 4px #4d2b1c35);
  -webkit-mask-image: none;
  mask-image: none;
}
.quote-strip > img.quote-rose {
  width: clamp(78px, 10vw, 148px);
  height: auto;
  object-fit: contain;
  mix-blend-mode: normal;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;
}
.quote-strip p {
  margin: 0;
}
.footer-ideas {
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.5fr;
  gap: 20px;
  padding: 35px 4vw;
  background:
    radial-gradient(ellipse at 80% 100%, #b27a3728, transparent 44%),
    linear-gradient(90deg, #f0ddb9, #f8e9cb 48%, #eddbb6);
  box-shadow: inset 0 1px 0 #b9905b, inset 0 0 0 8px #f7e7c880;
}
.footer-ideas > div {
  position: relative;
  min-height: 58px;
  padding-left: 68px;
}
.footer-ideas i {
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  line-height: 1;
}
.footer-ideas i img {
  display: block;
  width: 52px;
  height: 52px;
  object-fit: contain;
  object-position: center;
  mix-blend-mode: multiply;
  filter: sepia(0.14) saturate(0.86);
  -webkit-mask-image: radial-gradient(ellipse 80% 82% at center, #000 60%, transparent 100%);
  mask-image: radial-gradient(ellipse 80% 82% at center, #000 60%, transparent 100%);
}
.footer-ideas i img.footer-monarch {
  -webkit-mask-image: none;
  mask-image: none;
  filter: drop-shadow(2px 3px 3px #4d2b1c35);
}
.footer-ideas i img.decorative-rose {
  width: 54px;
  height: auto;
  object-fit: contain;
  mix-blend-mode: normal;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;
}
.footer-ideas i img.ornate-heart,
.theme i img.ornate-heart {
  width: 54px;
  height: 54px;
  object-fit: contain;
  object-position: center;
  mix-blend-mode: normal;
  filter: saturate(0.82) brightness(0.67) sepia(0.22) contrast(1.12) drop-shadow(1px 2px 2px #4d2b1c35);
  -webkit-mask-image: radial-gradient(ellipse 70% 74% at center, #000 48%, transparent 76%);
  mask-image: radial-gradient(ellipse 70% 74% at center, #000 48%, transparent 76%);
}
.theme i img.theme-heart {
  width: 62px;
  height: 62px;
}
.footer-ideas h3 {
  font-size: 18px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.footer-ideas p {
  font-size: 15px;
}
.footer-ideas blockquote {
  font: 500 22px/1.25 var(--serif);
  margin: 0;
  border-left: 1px solid var(--line);
  padding-left: 25px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 72px;
  gap: 14px;
  align-items: center;
}
.footer-ideas blockquote img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  grid-column: 2;
  grid-row: 1;
  mix-blend-mode: multiply;
  filter: sepia(0.14) saturate(0.86);
  -webkit-mask-image: radial-gradient(ellipse 78% 82% at center, #000 60%, transparent 100%);
  mask-image: radial-gradient(ellipse 78% 82% at center, #000 60%, transparent 100%);
}
.footer-ideas blockquote img.footer-monarch {
  -webkit-mask-image: none;
  mask-image: none;
  filter: drop-shadow(3px 4px 4px #4d2b1c35);
}
.footer-bottom {
  padding: 16px 4vw;
  background: #473326;
  color: #f7e7c6;
  display: flex;
  justify-content: space-between;
  font-size: 13px;
}
.footer-bottom div {
  display: flex;
  gap: 20px;
}
/* Inner pages */
.page-hero {
  min-height: 320px;
  text-align: center;
  display: grid;
  place-items: center;
  padding: 70px 20px;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle, #fff3d7aa, transparent 45%),
    linear-gradient(#f5e7cb99, #ead3a7cc);
}
.page-hero h1 {
  font-size: clamp(48px, 7vw, 82px);
  margin: 8px;
}
.page-hero p {
  font-size: 21px;
  font-style: italic;
}
.content-section {
  max-width: 1180px;
  margin: auto;
  padding: 70px 25px;
}
.content-section h2 {
  font-size: 44px;
}
.author-layout,
.book-layout,
.letter-layout {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 70px;
  align-items: center;
}
.portrait-frame {
  aspect-ratio: 4/5;
  border: 1px solid var(--line);
  padding: 16px;
  background: #edd6ad;
  position: relative;
  display: grid;
  place-items: center;
  font-size: 120px;
}
.prose p:first-of-type:first-letter {
  float: left;
  font: 70px/0.75 var(--serif);
  color: var(--rose);
  padding-right: 8px;
}
.timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 40px;
  border-top: 1px solid var(--line);
}
.timeline div {
  padding: 25px;
  border-right: 1px solid var(--line);
}
.themes,
.post-grid,
.events-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.theme,
.post,
.event-list-card {
  border: 1px solid var(--line);
  padding: 24px;
  background: #f8e8c9;
  box-shadow: inset 0 0 25px #b17c3820;
}
.theme i {
  font-size: 35px;
}
.theme i .theme-monarch {
  width: 42px;
  height: 42px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(2px 3px 3px #4d2b1c35);
}
.book-detail-cover {
  position: relative;
  width: min(100%, 550px);
  aspect-ratio: 2 / 3;
  overflow: visible;
  background: none;
  box-shadow: none;
  justify-self: center;
}
.book-detail-cover img {
  height: 100%;
  width: 100%;
  max-width: 100%;
  position: static;
  object-fit: contain;
  opacity: 1;
  filter:
    drop-shadow(-8px 12px 10px #41281738)
    drop-shadow(0 20px 18px #321e1242);
}

/* The Book page uses one continuous, content-driven sheet at every width. */
.book-page {
  max-width: 100%;
  overflow-x: clip;
}

.book-page main {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.book-page main > .torn-paper-section {
  width: auto;
  max-width: 1180px;
  height: auto;
  min-height: 0;
  margin-inline: auto;
  box-sizing: content-box;
}

.book-page .book-layout {
  width: 100%;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.05fr);
  gap: clamp(34px, 5vw, 70px);
}

.book-page .book-layout > * {
  min-width: 0;
}

.book-page .book-detail-cover {
  width: min(100%, 520px);
  height: auto;
  aspect-ratio: auto;
}

.book-page .book-detail-cover img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.book-page .buy-list,
.book-page .buy-list a {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.specs {
  border-collapse: collapse;
  width: 100%;
  margin-top: 25px;
}
.specs td {
  border-bottom: 1px solid var(--line);
  padding: 10px;
}
.filters {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 35px;
}
.filters button {
  border: 1px solid var(--line);
  background: transparent;
  padding: 8px 14px;
  color: var(--ink);
  font: 600 12px var(--serif);
  text-transform: uppercase;
}
.filters button.active,
.filters button:hover {
  background: var(--brown);
  color: var(--cream);
}
.post {
  padding: 10px;
}
.post .art {
  height: 220px;
}
.post.hidden {
  display: none;
}
.event-list-card {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 18px;
}
.event-list-card time {
  position: static;
  height: max-content;
  text-align: center;
}
.past {
  opacity: 0.72;
}
.letter {
  background: #fbefd5;
  padding: 40px;
  border: 1px solid var(--line);
  box-shadow: 5px 8px 20px #60431d22;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}
.field {
  margin-bottom: 17px;
}
.field label {
  display: block;
  font: 600 12px var(--serif);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 5px;
}
.field input,
.field select,
.field textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  padding: 10px 5px;
  font: 17px var(--body);
  color: var(--ink);
}
.field textarea {
  border: 1px solid var(--line);
  min-height: 150px;
  resize: vertical;
}
.field input:focus,
.field textarea:focus,
.field select:focus {
  outline: 1px solid var(--gold);
}
.contact-categories {
  display: grid;
  gap: 10px;
}
.contact-categories div {
  border-bottom: 1px solid var(--line);
  padding: 12px;
}
.form-status {
  min-height: 24px;
  color: #536a35;
}
.wall-page {
  max-width: 1000px;
}
.public-wall {
  min-height: 520px;
  background: #eddbb8;
  padding: clamp(36px, 5vw, 62px);
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  align-items: center;
  justify-items: center;
  gap: 34px 28px;
}
.public-note {
  display: grid;
  place-items: center;
  width: min(100%, 220px);
  min-height: 162px;
  padding: 38px 30px 24px;
  background:
    radial-gradient(circle at 64% 28%, #fff0ce55, transparent 39%),
    linear-gradient(135deg, #ebcd98ed, #dfba7fed),
    url("../images/decor/antique-parchment-sheet.png") center / cover;
  position: relative;
  text-align: center;
  text-wrap: balance;
  font: italic 18px/1.28 var(--body);
  transform: rotate(var(--r, 2deg));
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  filter:
    drop-shadow(0 1px 0 #f9dfaf99)
    drop-shadow(3px 7px 7px #48301f52);
}
.public-note-copy {
  align-self: end;
}
.public-note-recipient {
  align-self: start;
  display: block;
  margin-top: 10px;
  color: var(--brown);
  font: 600 11px/1.15 var(--serif);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.public-note:before {
  content: "";
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #815329;
  top: 13px;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 1px 2px 2px #5138;
}
.public-note-1 {
  -webkit-mask-image: url("../images/decor/note-mask-1.svg");
  mask-image: url("../images/decor/note-mask-1.svg");
}
.public-note-2 {
  -webkit-mask-image: url("../images/decor/note-mask-2.svg");
  mask-image: url("../images/decor/note-mask-2.svg");
}
.public-note-3 {
  -webkit-mask-image: url("../images/decor/note-mask-3.svg");
  mask-image: url("../images/decor/note-mask-3.svg");
}
.public-note-4 {
  -webkit-mask-image: url("../images/decor/note-mask-4.svg");
  mask-image: url("../images/decor/note-mask-4.svg");
}
.public-note-5 {
  -webkit-mask-image: url("../images/decor/note-mask-5.svg");
  mask-image: url("../images/decor/note-mask-5.svg");
}
.wall-form {
  max-width: 700px;
  margin: 50px auto 0;
}
.wall-pagination {
  display: flex;
  justify-content: center;
  padding-top: 25px;
}
.wall-loading,
.wall-empty {
  grid-column: 1 / -1;
  align-self: center;
  color: var(--soft);
  font-style: italic;
  text-align: center;
}
.form-status.success {
  padding: 12px 14px;
  border-left: 2px solid var(--gold);
  background: #f5dfb685;
}
.wall-form button:disabled,
.wall-pagination button:disabled {
  opacity: 0.58;
  cursor: wait;
}
.check {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 15px;
}
.char-count {
  text-align: right;
  font-size: 12px;
  color: var(--soft);
}

/* Reusable physical journal sheet: the SVG mask removes the area beyond the torn fibres. */
main {
  padding: clamp(16px, 2vw, 30px);
  background: transparent;
}

.torn-paper-section {
  --torn-mask: url("../images/decor/torn-mask-a.svg");
  position: relative;
  overflow: hidden;
  isolation: isolate;
  margin: 0 auto clamp(24px, 2.6vw, 40px);
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(ellipse at 12% 18%, #fff7dc96 0 7%, transparent 37%),
    radial-gradient(ellipse at 87% 82%, #8a55251b 0 8%, transparent 35%),
    repeating-linear-gradient(8deg, #5b35100a 0 1px, transparent 1px 7px),
    linear-gradient(#f8e9c9b6, #e9cda0a8),
    url("../images/decor/aged-paper-texture.jpg") center / 520px auto repeat,
    url("../images/decor/antique-parchment-sheet.png") center / cover;
  -webkit-mask-image: var(--torn-mask);
  mask-image: var(--torn-mask);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transform: none;
  filter:
    drop-shadow(0 2px 0 #fff0cfb3)
    drop-shadow(2px 8px 6px #40271766);
}

.torn-paper-a {
  --torn-mask: url("../images/decor/torn-mask-a.svg");
}

.torn-paper-b {
  --torn-mask: url("../images/decor/torn-mask-b.svg");
}

.torn-paper-c {
  --torn-mask: url("../images/decor/torn-mask-c.svg");
}

.torn-paper-section::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(118deg, #fff7df91 0 0.7%, transparent 2.4%),
    linear-gradient(298deg, #4e2c1849 0 0.8%, transparent 2.7%),
    radial-gradient(ellipse at center, #fff5d65e 12%, transparent 67%),
    linear-gradient(90deg, #fff0cd75, transparent 2.2%, transparent 96.5%, #4d2b184f),
    linear-gradient(#fff5d876, transparent 2%, transparent 95.5%, #4a291950);
  box-shadow:
    inset 2px 2px 2px #fff4d687,
    inset -3px -5px 7px #5b361d38,
    inset 0 0 34px #68401c20;
}

/* The Book and Uncharted Wall use the same layered manuscript paper as About. */
.book-page main > .torn-paper-section,
.wall-page.torn-paper-section {
  background:
    radial-gradient(ellipse at 8% 74%, #9d64351b, transparent 29%),
    radial-gradient(ellipse at 92% 16%, #fff5dc79, transparent 24%),
    repeating-linear-gradient(8deg, #5c35100a 0 1px, transparent 1px 7px),
    linear-gradient(105deg, #f9e9c9c9, #efd5a8b4),
    url("../images/decor/aged-paper-texture.jpg") center / 520px auto repeat,
    url("../images/decor/antique-parchment-sheet.png") center / cover;
}
.wall-page .public-wall,
.wall-page .letter {
  background:
    radial-gradient(ellipse at 10% 18%, #fff6dc81, transparent 31%),
    repeating-linear-gradient(8deg, #5c35100a 0 1px, transparent 1px 7px),
    linear-gradient(#f8e9c9c7, #e8c99bb0),
    url("../images/decor/aged-paper-texture.jpg") center / 430px auto repeat,
    url("../images/decor/antique-parchment-sheet.png") center / cover;
}

.torn-paper-section > * {
  position: relative;
  z-index: 1;
}

.hero,
.home-wall,
.home-editorial,
.quote-strip,
.page-hero {
  border-bottom-color: #9b704665;
}

.home-editorial {
  width: 100%;
}

.content-section {
  background:
    linear-gradient(#f8eccfa8, #e9cfa3a8),
    url("../images/decor/antique-parchment-sheet.png") center / cover;
}

.torn-paper-section.hero,
.torn-paper-section.home-wall,
.torn-paper-section.home-editorial,
.torn-paper-section.quote-strip,
.torn-paper-section.page-hero,
.torn-paper-section.content-section {
  padding-top: max(44px, 5.5%);
  padding-bottom: max(44px, 5.5%);
  padding-left: max(34px, 4%);
  padding-right: max(34px, 4%);
}

.wall-board,
.wall-preview,
.public-wall,
.letter,
.portrait-frame,
.theme,
.post,
.event-list-card,
.journal-card,
.event-card {
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(#f8eac9b5, #e8cca0b5),
    url("../images/decor/antique-parchment-sheet.png") center / cover;
  transform: perspective(900px) rotateX(0.18deg) rotateZ(-0.08deg);
  filter:
    drop-shadow(0 1px 0 #fff0d3c2)
    drop-shadow(1px 3px 1px #79523563)
    drop-shadow(3px 7px 5px #3d281c42);
}

.journal-card:nth-child(even),
.event-card:nth-child(even),
.theme:nth-child(even),
.post:nth-child(even),
.event-list-card:nth-child(even) {
  transform: perspective(900px) rotateX(0.15deg) rotateZ(0.09deg);
}

.buy-list a,
.button,
.filters button {
  border-radius: 5px 10px 6px 9px / 8px 5px 10px 6px;
}

.footer-ideas {
  width: calc(100% - clamp(16px, 2.4vw, 36px));
}

.art,
.timeline div,
.contact-categories div {
  border-radius: 0;
}

/* About author spread */
.author-intro,
.author-journey {
  width: min(1180px, calc(100% - clamp(30px, 7vw, 110px)));
  margin: clamp(28px, 5vw, 72px) auto;
  padding: clamp(38px, 6vw, 82px);
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(360px, 1.1fr);
  align-items: center;
  gap: clamp(42px, 7vw, 100px);
  background:
    radial-gradient(ellipse at 8% 78%, #af74321c, transparent 35%),
    linear-gradient(105deg, #f9e9c8d9, #f0d7aaad),
    url("../images/decor/antique-parchment-sheet.png") center / cover;
  border: 1px solid #80532975;
  box-shadow: inset 0 0 0 8px #fff1d055, inset 0 0 34px #88532925;
  position: relative;
}
.author-intro::before,
.author-journey::before {
  content: "";
  position: absolute;
  inset: 12px;
  pointer-events: none;
  border: 1px solid #9c673539;
}
.author-portrait-mount {
  min-height: 590px;
  position: relative;
  isolation: isolate;
  animation: author-reveal 800ms ease-out both;
}
.author-photo-sheet {
  position: absolute;
  z-index: -1;
  inset: 16px -13px -16px 13px;
  background:
    linear-gradient(#f9e6c3e6, #e4c28ce6),
    url("../images/decor/antique-parchment-sheet.png") center / cover;
  border: 1px solid #895d2e75;
  transform: rotate(2deg);
  box-shadow: 5px 10px 14px #3f261b36;
}
.author-photo {
  height: 100%;
  margin: 0;
  padding: 9px;
  background: #b98b4c;
  border: 1px solid #705028;
  box-shadow: 0 9px 18px #3c241b4d;
  transform: rotate(-1.2deg);
}
.author-photo img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 590px;
  object-fit: cover;
  object-position: 47% 38%;
  border: 1px solid #e7c785;
  box-shadow: inset 0 0 28px #4e2b1925;
}
.author-photo-butterfly {
  position: absolute;
  right: -22px;
  bottom: 19%;
  width: clamp(62px, 8vw, 104px);
  filter: drop-shadow(2px 4px 3px #4b2e1e55);
  transform: rotate(-15deg);
}
.author-intro-copy {
  max-width: 600px;
  animation: author-reveal 850ms 120ms ease-out both;
}
.author-intro-copy .eyebrow,
.journey-copy .eyebrow {
  margin-bottom: 7px;
}
.author-intro-copy .eyebrow::first-letter,
.journey-copy .eyebrow::first-letter {
  float: none;
  font: inherit;
  color: inherit;
  padding: 0;
}
.author-intro h1 {
  margin: 0;
  font-size: clamp(56px, 7vw, 94px);
  line-height: 0.78;
  letter-spacing: 0.015em;
  text-transform: uppercase;
}
.author-byline,
.journey-signoff {
  margin: 18px 0 10px;
  font: italic 23px var(--serif);
  color: #75402d;
}
.author-divider {
  margin: 12px 0 18px;
  color: var(--gold);
  font-size: 25px;
}
.author-bio p,
.journey-copy > p:not(.eyebrow):not(.journey-signoff) {
  max-width: 65ch;
  margin: 0 0 18px;
}
.author-bio h3 {
  margin: 18px 0 3px;
  font-size: 20px;
  color: #6a3828;
}
.author-milestones {
  width: min(1180px, calc(100% - clamp(30px, 7vw, 110px)));
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto clamp(28px, 5vw, 72px);
  border: 1px solid #80532975;
  background: #f4dfb9b5;
  box-shadow: inset 0 0 0 7px #fff0d052;
}
.author-milestones div {
  min-height: 156px;
  padding: 24px clamp(16px, 3vw, 40px);
  text-align: center;
  border-right: 1px solid #80532975;
  position: relative;
}
.author-milestones div:last-child { border-right: 0; }
.author-milestones strong {
  display: block;
  font: 600 clamp(32px, 4vw, 52px)/0.9 var(--serif);
  color: #6b3827;
}
.author-milestones span {
  display: block;
  margin-top: 8px;
  font: 600 13px var(--serif);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.author-milestones p {
  margin: 6px auto 0;
  max-width: 220px;
  font-size: 15px;
}
.author-journey {
  grid-template-columns: minmax(280px, 0.85fr) minmax(360px, 1.15fr);
}
.journey-book-art {
  min-height: 440px;
  position: relative;
  display: grid;
  place-items: center;
}
.journey-book-art > img:first-child {
  width: min(100%, 360px);
  max-height: 420px;
  object-fit: contain;
  filter: drop-shadow(8px 14px 9px #37211652);
  transform: rotate(-2deg);
}
.journey-rose {
  position: absolute;
  width: 128px;
  right: -5px;
  bottom: 3%;
  mix-blend-mode: normal;
  filter: none;
}
.journey-note {
  position: absolute;
  padding: 18px 16px;
  background: #e8c892;
  color: #5b3624;
  box-shadow: 2px 5px 7px #3b241b38;
  font: italic 17px/1.15 var(--serif);
  text-align: center;
  -webkit-mask: url("../images/decor/note-mask-1.svg") center / 100% 100% no-repeat;
  mask: url("../images/decor/note-mask-1.svg") center / 100% 100% no-repeat;
}
.note-one { top: 4%; left: -2%; transform: rotate(-8deg); }
.note-two { right: -3%; top: 38%; transform: rotate(7deg); }
@keyframes author-reveal {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.timeline div,
.contact-categories div {
  background:
    linear-gradient(#f8e9c7aa, #e8cda0aa),
    url("../images/decor/antique-parchment-sheet.png") center / cover;
  transform: perspective(800px) rotateX(0.16deg) rotateZ(-0.06deg);
  filter:
    drop-shadow(0 1px 0 #fff1d4ba)
    drop-shadow(2px 5px 4px #432b1c3d);
}

/* Smaller physical paper panels use the same alpha-cut construction. */
.wall-board,
.wall-preview,
.public-wall,
.letter,
.portrait-frame,
.theme,
.post,
.event-list-card,
.journal-card,
.event-card,
.timeline div,
.contact-categories div {
  clip-path: none;
  border-radius: 0;
  -webkit-mask-image: url("../images/decor/torn-mask-c.svg");
  mask-image: url("../images/decor/torn-mask-c.svg");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.journal-card:nth-child(even),
.event-card:nth-child(even),
.theme:nth-child(even),
.post:nth-child(even),
.event-list-card:nth-child(even) {
  clip-path: none;
  -webkit-mask-image: url("../images/decor/torn-mask-b.svg");
  mask-image: url("../images/decor/torn-mask-b.svg");
}

/* About page: a single open illustrated manuscript spread. */
.author-intro,
.author-journey {
  width: min(1510px, calc(100% - 28px));
  margin: 10px auto 0;
  padding: clamp(34px, 4.6vw, 70px) clamp(28px, 5vw, 82px);
  gap: clamp(38px, 6vw, 102px);
  grid-template-columns: minmax(420px, 0.94fr) minmax(450px, 1.06fr);
  background:
    radial-gradient(ellipse at 7% 52%, #9d64351c, transparent 24%),
    radial-gradient(ellipse at 94% 30%, #ba854522, transparent 29%),
    linear-gradient(#f9e9cbb9, #f2dcafa8),
    url("../images/decor/aged-paper-texture.jpg") center / cover;
  border-color: #7d4b2875;
  box-shadow: inset 0 0 0 7px #fff0d04d, inset 0 0 45px #8a55251c;
}
.author-intro {
  min-height: 490px;
  border-bottom: 0;
}
.author-intro::before,
.author-journey::before { inset: 9px; }
.author-portrait-mount {
  min-height: 390px;
  align-self: stretch;
  margin: 12px 0 4px;
}
.author-photo-sheet {
  inset: -18px -28px -17px 19px;
  transform: rotate(-3deg);
  background:
    linear-gradient(#efd7aaa8, #dcb98094),
    url("../images/decor/layered-torn-parchment.png") center / 100% 100%;
  border: 0;
  box-shadow: 9px 13px 16px #38221730;
}
.author-photo {
  height: 100%;
  padding: 7px;
  position: relative;
  isolation: isolate;
  transform: rotate(-0.7deg);
  background: #ead3a0;
  border: 1px solid #755127;
  box-shadow:
    0 9px 15px #2c19125c,
    inset 0 0 0 2px #b98a4e7d;
}
.author-photo::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 4px;
  pointer-events: none;
  border: 1px solid #8b642f9c;
  box-shadow:
    inset 0 0 0 2px #f5dfa89c,
    inset 0 0 0 4px #795128b0;
}
.author-photo::after {
  content: none;
  position: absolute;
  z-index: 3;
  right: -12px;
  bottom: -17px;
  width: 37px;
  height: 37px;
  display: grid;
  place-items: center;
  color: #3d2116;
  font: 31px/1 var(--serif);
  background: radial-gradient(circle, #b48658 0 33%, transparent 37%);
  filter: drop-shadow(1px 2px 1px #25130d8a);
}
.author-photo img {
  position: relative;
  z-index: 1;
  min-height: 0;
  height: 100%;
  object-position: 48% 36%;
  border: 1px solid #b78456;
  box-shadow: inset 0 0 22px #3e25192e;
}
.victorian-corner {
  position: absolute;
  z-index: 4;
  width: clamp(96px, 11vw, 158px);
  aspect-ratio: 1;
  background: url("../images/decor/victorian-corner-transparent.png") right bottom / contain no-repeat;
  opacity: 0.82;
  pointer-events: none;
}
.corner-top-left { top: -27px; left: -27px; transform: rotate(180deg); }
.corner-top-right { top: -27px; right: -27px; transform: scaleY(-1); }
.corner-bottom-left { bottom: -27px; left: -27px; transform: scaleX(-1); }
.corner-bottom-right { right: -27px; bottom: -27px; }
.author-photo-butterfly {
  z-index: 2;
  right: -15px;
  top: -18px;
  bottom: auto;
  width: clamp(70px, 7vw, 104px);
}
.author-photo-rose {
  position: absolute;
  z-index: 2;
  left: -42px;
  bottom: -42px;
  width: clamp(116px, 14vw, 190px);
  mix-blend-mode: normal;
  filter: none;
}
.author-intro-copy { max-width: 650px; }
.author-intro h1 {
  font-size: clamp(57px, 6.2vw, 101px);
  line-height: 0.79;
  letter-spacing: -0.02em;
}
.author-byline {
  font-size: clamp(21px, 2vw, 29px);
  color: #81512e;
}
.author-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 15px 0 20px;
  color: #8b5b2e;
}
.author-divider::before,
.author-divider::after {
  content: "";
  width: 92px;
  height: 1px;
  background: #91603591;
}
.author-bio p {
  max-width: 59ch;
  margin: 0 0 15px;
  font-size: 17px;
  line-height: 1.32;
}
.author-milestones {
  width: min(1425px, calc(100% - 76px));
  margin: 0 auto 26px;
  min-height: 104px;
  border-color: #8053299c;
  background:
    linear-gradient(#f9e9cbb8, #f0d7aaaf),
    url("../images/decor/aged-paper-texture.jpg") center / cover;
  box-shadow: inset 0 0 0 5px #fff0d05e;
}
.author-milestones div {
  min-height: 104px;
  padding: 13px clamp(16px, 3vw, 42px) 12px 74px;
  text-align: left;
}
.author-milestones div::before {
  content: "❀";
  position: absolute;
  left: 28px;
  top: 50%;
  transform: translateY(-50%);
  color: #9b6734;
  font: 38px var(--serif);
}
.author-milestones strong {
  display: inline-block;
  font-size: clamp(34px, 3.3vw, 48px);
}
.author-milestones span {
  display: inline-block;
  margin: 0 0 0 11px;
  font-size: 12px;
}
.author-milestones p {
  margin: 3px 0 0;
  max-width: none;
  font-size: 15px;
}
.author-journey {
  margin-top: 0;
  margin-bottom: 28px;
  padding-top: clamp(28px, 4vw, 52px);
  padding-bottom: clamp(28px, 4vw, 52px);
  grid-template-columns: minmax(370px, 0.9fr) minmax(420px, 1.1fr);
}
.journey-book-art { min-height: 410px; }
.journey-book-art > img:first-child {
  width: min(100%, 320px);
  max-height: 395px;
  transform: rotate(-3deg);
}
.journey-rose { width: 130px; bottom: -2%; right: 1%; }
.journey-note { font-size: 18px; }
.note-one { left: 3%; top: 22%; }
.note-two { right: -4%; top: 12%; }
.journey-copy { max-width: 630px; }
.journey-copy h2 { margin: 3px 0 12px; font-size: clamp(38px, 4vw, 57px); }
.journey-copy > p:not(.eyebrow):not(.journey-signoff) {
  max-width: 61ch;
  margin-bottom: 14px;
  font-size: 17px;
  line-height: 1.32;
}
.author-intro-copy.prose .author-intro-heading .eyebrow:first-of-type::first-letter,
.journey-copy.prose > .eyebrow:first-of-type::first-letter {
  float: none;
  padding-right: 0;
  color: inherit;
  font: inherit;
}

/* The author photograph remains whole; its parchment and frame grow around it. */
.author-portrait-mount {
  min-height: 0;
  height: auto;
}
.author-photo {
  height: auto;
}
.author-photo img {
  width: 100%;
  height: auto;
  min-height: 0;
  display: block;
  object-fit: contain;
  object-position: center;
}

/* Contact letter and enquiry panels carry the same manuscript-paper finish. */
.contact-page .torn-paper-section {
  background:
    radial-gradient(ellipse at 10% 72%, #9d64351a, transparent 28%),
    radial-gradient(ellipse at 90% 17%, #fff6dc82, transparent 25%),
    repeating-linear-gradient(8deg, #5c35100a 0 1px, transparent 1px 7px),
    linear-gradient(105deg, #f9e9c9ca, #efd5a8b4),
    url("../images/decor/aged-paper-texture.jpg") center / 520px auto repeat,
    url("../images/decor/antique-parchment-sheet.png") center / cover;
}
.contact-page .letter,
.contact-page .contact-categories div {
  background:
    radial-gradient(ellipse at 10% 18%, #fff6dc81, transparent 31%),
    repeating-linear-gradient(8deg, #5c35100a 0 1px, transparent 1px 7px),
    linear-gradient(#f8e9c9c7, #e8c99bb0),
    url("../images/decor/aged-paper-texture.jpg") center / 430px auto repeat,
    url("../images/decor/antique-parchment-sheet.png") center / cover;
}

/* Pre-order reservation modal */
body.modal-open { overflow: hidden; }
.preorder-modal {
  position: fixed;
  z-index: 60;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  visibility: hidden;
  opacity: 0;
  transition: opacity 180ms ease, visibility 180ms ease;
}
.preorder-modal.open { visibility: visible; opacity: 1; }
.preorder-backdrop {
  position: absolute;
  inset: 0;
  background: #25150ece;
  backdrop-filter: blur(4px);
}
.preorder-dialog {
  position: relative;
  z-index: 1;
  width: min(1080px, 100%);
  max-height: min(92vh, 1000px);
  overflow: auto;
  padding: clamp(28px, 4vw, 52px);
  color: var(--ink);
  background:
    radial-gradient(ellipse at 9% 15%, #fff7dc89, transparent 30%),
    repeating-linear-gradient(8deg, #5c35100a 0 1px, transparent 1px 7px),
    linear-gradient(#f9e9c9e8, #e9ca9be3),
    url("../images/decor/aged-paper-texture.jpg") center / 520px auto repeat;
  border: 1px solid #80532999;
  box-shadow: inset 0 0 0 7px #fff0d052, inset 0 0 45px #71451f29, 0 22px 65px #160c08ad;
}
.preorder-dialog::before {
  content: "";
  position: absolute;
  inset: 10px;
  pointer-events: none;
  border: 1px solid #8d5d3380;
}
.preorder-dialog > * { position: relative; z-index: 1; }
.preorder-close {
  position: absolute;
  top: 19px;
  right: 22px;
  width: 34px;
  height: 34px;
  border: 1px solid var(--brown);
  color: var(--brown);
  background: #f8e8c9;
  font: 30px/0.8 var(--serif);
  cursor: pointer;
}
.preorder-header { max-width: 720px; margin-bottom: 26px; }
.preorder-header h2 { margin-bottom: 9px; font-size: clamp(42px, 5vw, 65px); }
.preorder-header > p:not(.eyebrow) { margin-bottom: 0; font-size: 18px; }
.edition-picker { margin: 0; padding: 0; border: 0; }
.edition-picker legend { margin-bottom: 12px; font: 600 19px var(--serif); }
.edition-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.edition-card {
  min-height: 203px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 18px;
  border: 1px solid #8c6239;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  background:
    linear-gradient(#f9e9c9d4, #e8c99bd4),
    url("../images/decor/aged-paper-texture.jpg") center / 330px auto repeat;
  box-shadow: inset 0 0 18px #72471b16;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
.edition-card:hover,
.edition-card.selected {
  border-color: #63371f;
  transform: translateY(-3px);
  box-shadow: inset 0 0 0 2px #d4a85c8c, 0 7px 12px #44291e38;
}
.edition-card.selected::after {
  content: "Selected";
  align-self: flex-end;
  margin-top: auto;
  color: #fff6e1;
  background: #63371f;
  padding: 3px 8px;
  font: 600 10px var(--serif);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.edition-card .edition-name { font: 600 22px/1 var(--serif); }
.edition-card strong { margin: 9px 0; color: #6b3827; font: 600 31px/1 var(--serif); }
.edition-description { font-size: 16px; line-height: 1.15; }
.edition-card small { margin-top: 10px; font-size: 13px; line-height: 1.15; }
.premium-edition {
  position: relative;
  border: 2px solid #9a9b9a;
  box-shadow: inset 0 0 0 2px #e2e2dc, inset 0 0 18px #6d6d6d28;
}
.premium-edition::before {
  content: "";
  position: absolute;
  inset: 5px;
  pointer-events: none;
  border: 1px solid #aaa8a1;
}
.premium-edition > * { position: relative; z-index: 1; }
.limited-label { margin-bottom: 9px; color: #5a5550; font: 600 10px/1.2 var(--serif); letter-spacing: 0.09em; text-transform: uppercase; }
.edition-error,
.preorder-status { min-height: 22px; margin: 10px 0 0; color: #873d2e; }
.preorder-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, 0.65fr); gap: 30px; margin-top: 28px; }
.preorder-details { min-width: 0; }
.quantity-field input { width: 95px; }
.quantity-note { display: block; margin-top: 5px; color: #70452d; }
.digital-notice,
.premium-summary { padding: 12px 15px; background: #f3dfb995; border-left: 3px solid #815329; }
.physical-fields { margin-top: 18px; }
.fulfilment-choice { display: flex; gap: 18px; flex-wrap: wrap; margin: 0 0 16px; padding: 0; border: 0; }
.fulfilment-choice legend { width: 100%; margin-bottom: 7px; font: 600 13px var(--serif); letter-spacing: 0.06em; text-transform: uppercase; }
.check-option { display: block; margin: 14px 0; }
.order-summary { align-self: start; padding: 23px; border: 1px solid #88562e; background: #f8e8cbd9; box-shadow: inset 0 0 24px #74451e17; }
.order-summary dl { margin: 14px 0 0; }
.order-summary dl div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid #b7895a66; }
.order-summary dt { font-weight: 600; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.order-summary dd { margin: 0; text-align: right; }
.summary-total { color: #642f20; font-size: 20px; }
.preorder-submit { margin-top: 14px; color: #fff5df; background: #6d3528; }
.payment-note { margin: 10px 0 0; font-size: 14px; color: #70513b; }

/* Checkout and private order confirmation */
.preorder-submit:disabled, .edition-card:disabled { opacity: .55; cursor: not-allowed; }
.checkout-terms { margin: 18px 0; }
.checkout-terms summary { cursor: pointer; font-weight: 600; }
.checkout-terms p { white-space: pre-line; }
.order-result { max-width: 820px; margin: 60px auto; padding: 28px; }
.order-result h1 { font-size: clamp(40px, 7vw, 68px); }
.order-result dl { margin: 24px 0; }
.order-result dl > div { display: flex; flex-wrap: wrap; gap: 12px; padding: 12px 0; border-bottom: 1px solid #b7895a66; }
.order-result dt { min-width: 150px; font-weight: 600; }
.order-result dd { margin: 0; overflow-wrap: anywhere; }
.order-result .button { margin: 8px 8px 18px 0; }

[hidden] { display: none !important; }
