/* fonts: self-hosted (SIL Open Font License), latin first */
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400 700; font-display: swap; src: url('fonts/playfair-display-italic-latin-ext.woff2?v=202610211620') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400 700; font-display: swap; src: url('fonts/playfair-display-italic-latin.woff2?v=202610211620') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('fonts/playfair-display-latin-ext.woff2?v=202610211620') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('fonts/playfair-display-latin.woff2?v=202610211620') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('fonts/plus-jakarta-sans-latin-ext.woff2?v=202610211620') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('fonts/plus-jakarta-sans-latin.woff2?v=202610211620') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* ─────────────────────────────────────────────────────────────
   Little Hatchling Storybook — enchanted book styles
   Palette: sage #6b8e74 · amber gold #dda74a · lavender #a294b8
            parchment #fdfbf7 · ink #2c2825 · forest leather #1d3b31
   ───────────────────────────────────────────────────────────── */

:root {
  --ink: #2c2825;
  --ink-soft: #5b534b;
  --parch: #fdfbf7;
  --parch-2: #f4ecdc;
  --sage: #6b8e74;
  --sage-d: #42634c;
  --gold: #dda74a;
  --gold-d: #a8791f;
  --gold-l: #f6dc8f;
  --lav: #a294b8;
  --leather: #1d3b31;
  --leather-d: #102620;
  --flip: 1.15s;

  /* page size: 5:7 portrait, two pages side by side */
  --ratio: 0.714;
  --pw: min(calc((100vw - 72px) / 2), calc((100dvh - 150px) * var(--ratio)), 540px);
  --ph: calc(var(--pw) / var(--ratio));

  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --paper-tex: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .42  0 0 0 0 .33  0 0 0 0 .18  0 0 0 .11 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  --paper-grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .38  0 0 0 0 .29  0 0 0 0 .16  0 0 0 .2 0'/></filter><rect width='100%25' height='100%25' filter='url(%23g)'/></svg>");
  --leather-tex: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='l'><feTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='4' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 -.12'/></filter><rect width='100%25' height='100%25' filter='url(%23l)'/></svg>");
}

@media (max-width: 860px) {
  :root {
    --ratio: 0.62;
    --pw: min(calc(100vw - 28px), calc((100dvh - 132px) * var(--ratio)));
  }
}

* { box-sizing: border-box; }
html { height: 100%; overflow: hidden; overscroll-behavior: none; }
body { margin: 0; position: fixed; inset: 0; width: 100%; height: 100%; overflow: hidden; overscroll-behavior: none; }
body {
  background: #0b1714;
  color: var(--ink);
  font-family: var(--sans);
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
.sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ── Enchanted night backdrop ─────────────────────────────── */
.backdrop {
  position: fixed; inset: 0;
  /* blurred once, ahead of time, into a tiny image: no live blur on a full-screen layer */
  background:
    radial-gradient(70% 55% at 50% 45%, rgba(107,142,116,.22), transparent 70%),
    linear-gradient(180deg, rgba(8,18,16,.55), rgba(8,18,16,.82)),
    url("data:image/webp;base64,UklGRnIDAABXRUJQVlA4IGYDAABwJgCdASp4AKAAPoE4lUelKSIhM/LvcSAQCWUAxYS4j5SP/wnILNfLksOSgzmMX6Jjs7+EzYFHV9PryW2ZW3nFOI6e/wNboS5ogv94a+ymVTJc7MJHSy3r73ZnenMI1zR75NHWFEzhcWNVOGNPKCk/0Va3394q4c1PPpwZh//W+1qktsXummRookLxw9lkrIdZg1zVgTDeX56mKlXSLjUIRcy5IA5GM0I/SLwcJyg4C01B4t2AzhKogTdP0hHKlgmEL42ttbCiUM8IVgkMyiKfqasSlU4vtBDsv9+k/MSWtmohUdWvfMbOI4c2DrtpSu4Kay+jM9R7Gvsnh1CqlFT+OHaB7+Ct9w0JiAsdxrV6Tvz+bkI3b4nennstqjiyQMKGFYeombcPfhXDr4JrLVFBV6p89gX5KhYtJsgAAP79uz6GsP3HN8jWKyxCcK4b7Pq3Fj6BdzbdIkAaWPzpwtSgdPblV1H/t8h2n4tjAFGcqhoPl89YvBHlg/34Y0/MzFoAfyP3gSoMnCVsr+RXvrTvDio9yrBLZqnR7s7188kneVZ8IXxy3HloE6eJcLqVWa42mg5M6O/6BepXStIvQM7wQR1iLIrI8HqO5UCX+gct2wZxEfXEIvs1YV02D+wXJ9t0XefJgguD6i00dFW3gPI3K7h3cjOAnSMpk8IB4BrO/cCUPjnECUwXIM9SywD0YIJFogVBxiSoaJZ8lWTqJn5jsacQSfxlYxU9kPeNJCgZ2Ri/4SKLLMB2DVVriOPHZnu/7UJv2QcCW7ydX0CvEcdBuKuN7/wRNSS18x5bokp5mBK2oI0K6Dl22cJopyeGEx4tYojlawtb9zRT0ECU0ccfNTIMQXKQcmwiN3hM/iS2w5cDUclG9vg8gGK82036P4fhrHdaK35ivPRxSlap9UlIiqKK9hL8rwShOXjTuGqvXeyFOg0Hwa/ToCOMPa1ddaMOG5VUF7ApJiblCqm0Ni6tsOETUgsLF/ai665QLJy/JOxpiQMPkcxJaFK6j+Rw80fEQCpabP2JSV+It70igoKFMGKE/7MtTpGEyj3IF3U+xxq+4Wnd3qWN214QKNRYUtE6dHNtKcsMpdYqjcCQhBPGAuLSaYBQ1Se/eVLQBlsyIMR+1i1JCXRqAOSs5uyV4FGvc4AAAAA=") center / cover no-repeat;
  z-index: 0;
}
#fireflies { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }

/* ── Stage ────────────────────────────────────────────────── */
.stage {
  position: relative; z-index: 2;
  height: 100dvh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 14px 14px 78px;
  touch-action: pan-y;
  user-select: none; -webkit-user-select: none;
}
.book-wrap { position: relative; width: calc(var(--pw) * 2); }
.book { width: 100%; transition: transform .9s cubic-bezier(.45,.05,.25,1); }
/* a closed book (front or back cover alone) sits in the middle, not on one half */
.book-wrap.at-cover .book { transform: translateX(-25%); }
.book-wrap.at-back .book { transform: translateX(25%); }

/* StPageFlip base styles (from the library's stPageFlip.css, MIT) */
.stf__parent { position: relative; display: block; box-sizing: border-box; transform: translateZ(0); touch-action: pan-y; }
.stf__wrapper { position: relative; width: 100%; box-sizing: border-box; }
.stf__parent canvas { position: absolute; width: 100%; height: 100%; left: 0; top: 0; }
.stf__block { position: absolute; width: 100%; height: 100%; box-sizing: border-box; perspective: 2000px; }
.stf__item { display: none; position: absolute; transform-style: preserve-3d; }
.stf__outerShadow, .stf__innerShadow, .stf__hardShadow, .stf__hardInnerShadow { position: absolute; left: 0; top: 0; }

/* ── Paper pages ──────────────────────────────────────────── */
.pf-page {
  overflow: hidden;
  background: #f6eedb url("art/paper.webp?v=202610211620") center / cover no-repeat;   /* real cotton-paper scan */
  box-shadow: inset 0 0 0 1px rgba(120,85,35,.12), 0 14px 30px -8px rgba(0,0,0,.55);
}
.pf-page.--right { border-radius: 0 5px 5px 0; }
.pf-page.--left  { border-radius: 5px 0 0 5px; }
.pf-page::after { /* gutter shading at the spine + soft outer edge */
  content: ""; position: absolute; inset: 0; z-index: 6; pointer-events: none;
}
.pf-page.--right::after { background:
  linear-gradient(90deg, rgba(70,45,10,.30), rgba(70,45,10,.08) 5%, transparent 15%),
  linear-gradient(270deg, rgba(70,45,10,.10), transparent 3%); }
.pf-page.--left::after { background:
  linear-gradient(270deg, rgba(70,45,10,.30), rgba(70,45,10,.08) 5%, transparent 15%),
  linear-gradient(90deg, rgba(70,45,10,.10), transparent 3%); }

/* inside of the back cover */
.page.endpaper { display: grid; place-items: center; }
.endpaper-mark { width: 52cqw; opacity: .32; }
.endpaper-mark .emblem { width: 100%; height: auto; }

.hint {
  margin: 22px 0 0; color: rgba(253,251,247,.72);
  font: italic 500 15px/1.2 var(--serif); letter-spacing: .02em;
  text-shadow: 0 1px 8px rgba(0,0,0,.6);
  animation: hint-pulse 2.8s ease-in-out infinite;
  transition: opacity .6s;
}
.hint.is-hidden { opacity: 0; animation: none; }
@keyframes hint-pulse { 0%,100% { opacity: .55; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }

/* ── Page content (scales with the page via container units) ─ */
.page { position: absolute; inset: 0; container-type: inline-size; }
.inner {
  position: absolute; inset: 0;
  padding: 9cqw 9cqw 11cqw;
  display: flex; flex-direction: column; align-items: center; text-align: center;
  overflow: hidden;
}
.inner::before, .inner::after { content: ""; flex: 1 1 0; min-height: 0; }
.page--rsvp .inner { overflow-y: auto; scrollbar-width: none; }
.page--rsvp .inner::-webkit-scrollbar { display: none; }
.page--art .inner { padding-inline: 5.2cqw; }

.chap {
  margin: 0 0 2.6cqw; color: var(--sage-d);
  font: 700 2.9cqw/1.2 var(--sans); letter-spacing: .26em; text-transform: uppercase;
}
.h2 {
  margin: 0; font: 700 8.2cqw/1.08 var(--serif); letter-spacing: -.005em; color: var(--ink);
  text-wrap: balance;
}
.orn { display: block; width: 46cqw; height: 5cqw; margin: 4cqw auto; color: var(--gold); flex: none; }
.p {
  margin: 0 0 3.4cqw; font: 400 4.35cqw/1.62 var(--sans); color: var(--ink-soft); text-wrap: pretty;
}
.p--story { font: 500 5.1cqw/1.6 var(--serif); color: #3a332c; text-align: left; hyphens: auto; }
.p--story.first::first-letter {
  float: left; font: 700 17cqw/.82 var(--serif); color: var(--gold-d);
  padding: 1.2cqw 2cqw 0 0; text-shadow: 0 1px 0 rgba(255,255,255,.6);
}
.sub { margin: 2.2cqw 0 0; font: italic 500 4.5cqw/1.45 var(--serif); color: var(--ink-soft); }
.cap { margin: 5cqw 0 0; font: 700 6.2cqw/1.15 var(--serif); color: var(--ink); text-wrap: balance; }
.folio {
  position: absolute; bottom: 5cqw; left: 0; right: 0; text-align: center;
  font: italic 500 3.4cqw/1 var(--serif); color: rgba(91,83,75,.7); letter-spacing: .1em; z-index: 3;
}
.folio::before, .folio::after { content: "·"; margin: 0 2cqw; color: var(--gold); }

/* faint corner flourishes on parchment pages */
.page::after {
  content: ""; position: absolute; inset: 4.2cqw; pointer-events: none;
  border: .35cqw solid rgba(221,167,74,.38); border-radius: 1.6cqw;
  box-shadow: inset 0 0 0 .9cqw rgba(253,251,247,.0), inset 0 0 0 1.1cqw rgba(221,167,74,.0);
}

/* the cover carries its own gilded frame */
.cover-wrap::after { display: none; }

/* ── Illustrations: painted straight onto the parchment (no frame) ─ */
.plate { position: relative; margin: 0 auto; width: min(100%, 80cqw); flex: none; }
@media (max-width: 860px) { .plate { width: 100%; } }
.plate-in { position: relative; }
.art img { display: block; width: 100%; height: auto; opacity: 0; transition: opacity .6s ease; }   /* soft edges are baked into the WebP */
.art img.loaded { opacity: 1; }
.page.is-visible .art img { animation: glow-in 1.6s ease-out both; }
@keyframes glow-in { from { filter: brightness(1.22) saturate(1.35); } to { filter: none; } }
@keyframes breathe { from { transform: scale(1); } to { transform: scale(1.035); } }

/* light sweep across the painting once it appears */
.art .plate-in::before {
  content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 45%; z-index: 2; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255,236,170,.55), transparent);
  transform: skewX(-18deg); opacity: 0;
}
.page.is-visible .art .plate-in::before { animation: sweep 1.6s ease-out 1.0s both; }
@keyframes sweep { 0% { left: -60%; opacity: 0; } 20% { opacity: 1; } 100% { left: 130%; opacity: 0; } }

/* gold sparkle burst (spawned by JS) */
.sparkle {
  position: absolute; left: 50%; top: 56%; width: var(--s); height: var(--s); margin: calc(var(--s) / -2);
  color: var(--gold-l); pointer-events: none; z-index: 4; opacity: 0;
  filter: drop-shadow(0 0 4px rgba(255,214,120,.9));
  animation: spark 1.5s cubic-bezier(.15,.7,.25,1) var(--delay) forwards;
}
.sparkle svg { width: 100%; height: 100%; display: block; }
@keyframes spark {
  0%   { opacity: 0; transform: translate(0,0) scale(.2) rotate(0); }
  15%  { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(1) rotate(160deg); }
}


/* ── Cover ────────────────────────────────────────────────── */
.pf-page.pf-cover {
  background: var(--leather-tex), radial-gradient(90% 70% at 40% 30%, #2d5a49, var(--leather) 55%, var(--leather-d));
  box-shadow: inset 0 0 0 1px rgba(246,220,143,.22), inset 0 0 40px rgba(0,0,0,.5), 0 20px 50px -12px rgba(0,0,0,.7);
  cursor: pointer;
}
.pf-page.pf-cover.--right { border-radius: 3px 10px 10px 3px; }
.pf-page.pf-cover.--left { border-radius: 10px 3px 3px 10px; }
.pf-page.pf-cover.--right::after { /* hinge groove */
  background: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.0) 3%, rgba(255,255,255,.07) 4.2%, rgba(0,0,0,.28) 5.4%, transparent 9%);
}
.pf-page.pf-cover.--left::after { background: linear-gradient(270deg, rgba(0,0,0,.55), rgba(0,0,0,0) 3%, rgba(255,255,255,.07) 4.2%, rgba(0,0,0,.28) 5.4%, transparent 9%); }
.cover-in.cover-in--back { justify-content: center; gap: 6cqw; }
.cover-in--back .emblem { width: 48cqw; height: auto; }
.cover-frame {
  position: absolute; inset: 5.5cqw 5.5cqw 5.5cqw 8.5cqw; color: var(--gold);
  border: .5cqw solid rgba(221,167,74,.85); border-radius: 2cqw;
  box-shadow: inset 0 0 0 1.3cqw rgba(0,0,0,0), inset 0 0 0 1.5cqw rgba(221,167,74,.0), 0 0 0 1.2cqw rgba(0,0,0,0);
}
.cover-frame::before { content: ""; position: absolute; inset: 1.6cqw; border: .25cqw solid rgba(221,167,74,.5); border-radius: 1.2cqw; }
.cover-frame svg { position: absolute; width: 14cqw; height: 14cqw; color: var(--gold); filter: drop-shadow(0 1px 0 rgba(0,0,0,.5)); }
.cover-frame .c1 { top: -1cqw; left: -1cqw; }
.cover-frame .c2 { top: -1cqw; right: -1cqw; transform: scaleX(-1); }
.cover-frame .c3 { bottom: -1cqw; left: -1cqw; transform: scaleY(-1); }
.cover-frame .c4 { bottom: -1cqw; right: -1cqw; transform: scale(-1); }
.cover-in {
  position: absolute; inset: 11cqw 11cqw 11cqw 14cqw;
  display: flex; flex-direction: column; align-items: center; justify-content: space-between; text-align: center;
}
.gold {
  background: linear-gradient(100deg, #a8791f 0%, #f6dc8f 22%, #c9972c 44%, #fbeeb8 58%, #b9862a 78%, #f1d27a 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: foil 20s linear infinite;   /* drifts 7 s, rests 13 s */
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.55));
}
@keyframes foil { 0% { background-position: 0% 0; } 35%, 100% { background-position: -220% 0; } }
.cover-kicker { margin: 0; font: 700 2.9cqw/1.2 var(--sans); letter-spacing: .3em; text-transform: uppercase; }
.medal { position: relative; width: 60cqw; height: 60cqw; flex: none; }   /* its shadow is part of the emblem art */
/* cover emblem: separate layers, so animating it only moves layers (nothing is repainted) */
.emblem { position: relative; display: block; width: 100%; aspect-ratio: 1; }
.em-layer { position: absolute; inset: 0; width: 100%; height: 100%; display: block; overflow: visible; }
.em-static { will-change: transform; }
/* the glint: a light bar sliding inside a dragon-shaped mask (moves on the graphics chip, nothing repainted) */
.em-glint { overflow: hidden; will-change: transform;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M49.94 31.79C49.89 31.82 49.73 31.96 49.57 32.12C48.99 32.66 48.77 32.73 47.60 32.73C46.71 32.73 46.30 32.79 45.91 32.98L45.73 33.08L46.15 33.13C47.00 33.24 48.02 33.56 48.80 33.96L49.19 34.16L49.37 34.04C49.81 33.73 50.19 33.14 50.32 32.56C50.39 32.19 50.37 31.98 50.23 31.84C50.11 31.73 50.06 31.72 49.94 31.79ZM54.70 33.15C53.84 34.04 53.34 34.22 51.95 34.12C51.46 34.09 51.17 34.09 50.86 34.12C49.80 34.24 48.81 34.64 48.01 35.27C47.82 35.42 47.72 35.49 47.74 35.43C47.83 35.28 48.37 34.73 48.62 34.54L48.86 34.37L48.44 34.16C47.56 33.74 46.60 33.50 45.49 33.42C44.22 33.33 43.05 33.51 41.87 33.98C40.94 34.35 40.26 34.80 39.60 35.45C38.65 36.41 38.17 37.38 37.84 39.02C37.66 39.93 37.60 40.16 37.47 40.36C37.36 40.53 37.13 40.72 36.85 40.86C36.26 41.16 35.97 41.57 35.89 42.24C35.78 43.23 36.19 44.42 36.76 44.74C36.87 44.81 37.05 44.96 37.15 45.10C37.90 46.02 39.34 46.66 41.47 47.02C42.02 47.11 42.04 47.12 42.04 47.18C42.04 47.30 41.75 48.16 41.43 48.99C41.25 49.44 41.03 50.05 40.94 50.34C40.51 51.67 40.39 53.03 40.59 54.24C40.63 54.53 40.64 54.78 40.61 55.49C40.57 56.42 40.61 57.77 40.69 58.49C40.72 58.71 40.73 58.94 40.71 59.00C40.70 59.06 40.60 59.16 40.44 59.26C40.10 59.49 39.92 59.69 39.78 59.98C39.59 60.39 39.63 60.79 39.89 60.96C40.02 61.05 40.07 61.02 40.07 60.87C40.07 60.60 40.28 60.24 40.50 60.12C40.56 60.08 40.55 60.11 40.46 60.26C40.33 60.49 40.28 60.88 40.36 61.06C40.41 61.20 40.59 61.27 40.83 61.27C41.08 61.27 41.12 61.24 41.13 61.03C41.14 60.79 41.18 60.67 41.33 60.50C41.47 60.33 41.52 60.33 41.44 60.51C41.37 60.71 41.37 61.17 41.45 61.23C41.53 61.30 42.14 61.26 42.44 61.17C42.64 61.11 42.65 61.11 42.71 60.87C42.80 60.54 43.07 60.16 43.40 59.90C43.67 59.67 43.68 59.66 43.81 59.29L43.93 58.92L43.70 58.71C43.45 58.50 42.77 57.82 42.79 57.80C42.80 57.80 42.91 57.82 43.05 57.85C43.37 57.93 43.58 57.93 43.93 57.84C44.18 57.79 44.21 57.77 44.24 57.67C44.25 57.61 44.27 57.53 44.28 57.50C44.30 57.44 44.26 57.45 44.02 57.52C43.56 57.68 43.05 57.64 42.58 57.40C42.34 57.28 42.14 56.98 41.78 56.23C41.53 55.70 41.50 55.60 41.54 55.62C41.56 55.63 41.67 55.69 41.78 55.75C42.44 56.09 43.40 56.06 44.13 55.67C44.49 55.49 44.63 55.35 44.63 55.20L44.63 55.08L44.44 55.20C44.00 55.51 43.32 55.74 42.87 55.74C42.42 55.73 41.86 55.52 41.54 55.24C41.36 55.08 41.33 55.03 41.26 54.75C41.17 54.38 41.06 53.64 41.06 53.35L41.06 53.14L41.21 53.28C41.29 53.35 41.49 53.47 41.65 53.55C42.40 53.91 43.47 53.79 44.33 53.26L44.50 53.15L44.61 53.51L44.73 53.87L44.76 53.64C44.85 53.09 44.96 52.56 45.02 52.44C45.07 52.34 45.07 52.34 45.06 52.41C45.04 52.47 45.02 53.11 45.00 53.83C44.98 54.55 44.94 55.33 44.91 55.57C44.77 56.90 44.53 58.08 44.15 59.30C43.99 59.81 44.02 59.78 43.43 60.31C43.15 60.56 43.02 60.84 42.99 61.18C42.97 61.49 43.04 61.66 43.20 61.75C43.37 61.84 43.44 61.82 43.44 61.70C43.44 61.48 43.54 61.25 43.72 61.06C43.97 60.81 44.04 60.81 43.89 61.06C43.65 61.43 43.63 61.92 43.85 62.03C43.97 62.09 44.28 62.11 44.50 62.07C44.61 62.05 44.62 62.02 44.65 61.85C44.68 61.60 44.76 61.42 44.89 61.29C45.05 61.14 45.08 61.17 44.99 61.40C44.91 61.62 44.89 61.93 44.96 62.06C45.05 62.23 45.93 62.10 46.44 61.85C46.78 61.67 47.01 61.44 47.34 60.95C48.07 59.84 48.69 58.31 48.99 56.86C49.17 55.97 49.20 55.68 49.20 54.62C49.20 53.71 49.21 53.62 49.25 53.78C49.37 54.16 49.43 54.55 49.45 55.13L49.48 55.74L49.58 55.60C50.00 55.02 50.68 54.57 51.35 54.41C51.69 54.33 52.37 54.33 52.70 54.40C52.96 54.46 53.58 54.71 53.56 54.74C53.55 54.74 53.42 54.71 53.28 54.66C53.06 54.59 52.92 54.57 52.38 54.57C51.77 54.57 51.73 54.57 51.39 54.69C50.41 55.05 49.70 55.79 49.42 56.79C49.34 57.06 49.32 57.20 49.33 57.68C49.34 58.33 49.41 58.71 49.63 59.12C49.81 59.49 49.82 59.50 50.25 59.65C50.62 59.77 50.90 59.91 51.09 60.06C51.15 60.11 51.12 60.11 50.96 60.05C50.46 59.86 49.82 59.79 49.38 59.88C49.02 59.96 48.57 60.19 48.33 60.44C48.04 60.72 47.91 61.01 47.91 61.34C47.91 61.57 47.92 61.60 48.04 61.70C48.20 61.84 48.27 61.84 48.30 61.65C48.34 61.40 48.48 61.16 48.66 61.01C48.90 60.80 48.95 60.83 48.79 61.07C48.63 61.31 48.56 61.50 48.56 61.78C48.56 61.95 48.58 61.98 48.70 62.05C48.79 62.11 48.90 62.13 49.06 62.13L49.29 62.13L49.32 61.96C49.38 61.65 49.52 61.40 49.73 61.27C49.81 61.23 49.88 61.19 49.89 61.19C49.90 61.19 49.85 61.29 49.77 61.42C49.68 61.57 49.63 61.73 49.61 61.88C49.58 62.09 49.59 62.11 49.67 62.18C49.79 62.28 50.17 62.28 50.80 62.20C51.05 62.17 51.67 62.10 52.17 62.05C53.34 61.94 53.69 61.88 53.97 61.74C54.23 61.61 54.38 61.43 54.41 61.18C54.44 61.05 54.48 61.00 54.69 60.84C55.36 60.36 55.75 59.86 56.10 59.06C56.25 58.71 56.27 58.78 56.15 59.25C56.00 59.84 55.69 60.38 55.25 60.82C55.01 61.06 55.01 61.06 55.12 61.09C55.18 61.10 55.67 61.13 56.21 61.14C57.35 61.16 57.97 61.11 58.75 60.90C59.86 60.62 60.71 60.14 61.40 59.40C61.98 58.80 62.33 58.14 62.54 57.30C62.63 56.92 62.65 56.78 62.65 56.21C62.65 55.60 62.62 55.32 62.49 54.90C62.47 54.82 62.50 54.80 62.70 54.73C63.81 54.35 64.39 53.15 64.00 52.01C63.89 51.67 63.67 51.29 63.60 51.29C63.58 51.29 63.54 51.38 63.51 51.49C63.47 51.72 63.36 51.91 63.24 51.97C63.17 52.00 63.17 51.98 63.17 51.65C63.17 51.03 62.97 50.52 62.58 50.08C62.26 49.75 61.67 49.38 61.44 49.38C61.34 49.38 61.34 49.38 61.44 49.70C61.49 49.84 61.53 50.05 61.53 50.16C61.53 50.44 61.39 50.85 61.21 51.08C61.05 51.29 60.83 51.70 60.83 51.78C60.83 51.82 60.81 51.84 60.79 51.84C60.73 51.84 60.61 51.39 60.64 51.24C60.65 51.16 60.64 51.09 60.62 51.08C60.55 51.04 60.20 51.43 60.06 51.70C59.71 52.36 59.71 53.24 60.06 53.81C60.32 54.23 60.82 54.62 61.29 54.76C61.55 54.84 61.57 54.85 61.57 54.97C61.57 55.03 61.52 55.23 61.46 55.40C61.17 56.27 60.52 56.90 59.70 57.11C59.20 57.24 58.49 57.18 57.98 56.96C57.68 56.84 57.15 56.47 56.93 56.24C56.75 56.06 56.73 56.02 56.67 55.66C56.50 54.74 56.17 53.83 55.73 53.09C55.11 52.07 54.38 51.34 53.04 50.39C52.60 50.08 52.49 50.06 52.11 50.20C52.00 50.24 51.87 50.28 51.83 50.30C51.67 50.36 52.03 50.07 52.26 49.95C53.13 49.51 54.19 49.83 54.80 50.72C54.88 50.83 54.95 50.90 55.00 50.89C55.03 50.88 55.16 50.73 55.27 50.56C55.65 49.98 56.12 49.59 56.69 49.39C57.09 49.25 57.80 49.21 58.20 49.32C58.50 49.40 58.91 49.59 59.21 49.81C59.52 50.03 59.61 50.00 59.66 49.65C59.73 49.12 59.90 48.60 60.13 48.24C60.33 47.92 60.74 47.54 61.05 47.39C61.71 47.06 62.30 47.06 63.11 47.37C63.57 47.55 63.67 47.55 63.69 47.38C63.72 47.20 63.21 46.34 62.69 45.71C61.47 44.20 59.66 43.01 57.90 42.55C55.90 42.03 54.20 42.22 53.40 43.05C52.95 43.51 52.83 43.78 52.62 44.78C52.47 45.49 52.38 45.77 52.19 46.16C51.89 46.76 51.33 47.28 50.68 47.57C50.43 47.69 49.99 47.82 49.86 47.82C49.77 47.82 49.53 47.37 49.42 47.00C49.35 46.77 49.33 46.59 49.33 46.27L49.32 45.84L49.57 45.63C50.02 45.25 50.60 44.63 50.83 44.28C51.21 43.71 51.52 43.02 51.68 42.38L51.72 42.21L52.02 42.18C52.68 42.12 53.38 41.80 53.55 41.46C53.66 41.24 53.59 41.16 53.18 41.06C52.78 40.96 52.48 40.83 52.12 40.62C51.89 40.47 51.88 40.46 51.89 40.32L51.91 40.17L52.32 40.14C53.44 40.07 54.42 39.40 54.88 38.41C55.10 37.94 55.16 37.67 55.08 37.53C55.00 37.37 54.80 37.37 54.35 37.52C53.80 37.71 53.39 37.74 52.69 37.66C51.76 37.56 51.09 37.64 50.56 37.90C50.24 38.06 50.36 37.94 50.96 37.48C51.05 37.41 51.24 37.27 51.37 37.15C51.68 36.89 52.10 36.69 52.88 36.42C53.64 36.16 53.87 36.06 54.18 35.85C54.73 35.47 55.18 34.87 55.43 34.17C55.54 33.85 55.55 33.76 55.55 33.35C55.56 32.89 55.56 32.88 55.44 32.78C55.38 32.73 55.29 32.69 55.24 32.69C55.18 32.69 55.00 32.85 54.70 33.15ZM44.58 38.24C45.31 38.42 45.93 38.99 46.19 39.75C46.33 40.14 46.33 40.80 46.18 41.20C45.91 41.94 45.28 42.50 44.52 42.68C44.09 42.78 43.30 42.74 42.94 42.60C42.58 42.47 42.26 42.27 41.97 42.01L41.74 41.81L41.73 41.42C41.71 41.10 41.72 41.05 41.76 41.13C41.97 41.60 42.04 41.71 42.24 41.91C42.60 42.27 43.13 42.46 43.59 42.37C44.44 42.23 45.04 41.48 45.04 40.59C45.04 40.31 44.97 39.95 44.89 39.80C44.85 39.74 44.84 39.75 44.82 39.86C44.78 40.04 44.57 40.27 44.38 40.32C44.25 40.36 44.19 40.36 44.03 40.30C43.80 40.21 43.68 40.04 43.65 39.79C43.63 39.44 43.84 39.17 44.19 39.14L44.38 39.11L44.25 39.02C43.87 38.74 43.27 38.66 42.81 38.84C42.67 38.89 42.47 39.01 42.34 39.11C42.07 39.34 42.12 39.22 42.45 38.86C42.98 38.30 43.81 38.06 44.58 38.24ZM42.82 41.30C42.93 41.41 42.92 41.57 42.80 41.69C42.68 41.81 42.52 41.82 42.41 41.71C42.24 41.53 42.37 41.22 42.62 41.22C42.69 41.22 42.78 41.25 42.82 41.30ZM38.43 42.21C38.56 42.34 38.43 42.53 38.21 42.53C38.14 42.53 38.04 42.59 37.92 42.69C37.72 42.88 37.70 42.89 37.70 42.77C37.70 42.62 37.86 42.32 38.00 42.24C38.14 42.15 38.35 42.14 38.43 42.21ZM57.08 43.35C58.37 43.56 59.63 44.11 60.80 44.98C61.14 45.23 61.29 45.37 61.05 45.21C59.98 44.51 58.89 44.02 57.83 43.77C57.13 43.60 56.75 43.55 56.17 43.54C55.71 43.54 55.13 43.61 55.13 43.67C55.13 43.69 55.20 43.74 55.28 43.78C55.52 43.91 56.14 44.36 56.52 44.68C57.56 45.57 58.48 46.93 58.96 48.31C59.04 48.54 59.11 48.74 59.11 48.76C59.11 48.77 58.99 48.55 58.85 48.27C58.29 47.17 57.76 46.43 56.96 45.63C56.21 44.89 55.70 44.50 54.92 44.10C54.60 43.94 54.56 43.94 54.43 44.04L54.33 44.12L54.52 44.69C54.98 46.07 55.18 47.54 55.08 48.90C55.06 49.26 55.03 49.57 55.02 49.58C55.00 49.60 54.97 49.26 54.95 48.74C54.91 47.94 54.77 47.01 54.57 46.20C54.46 45.77 54.17 44.87 54.09 44.73C54.05 44.65 54.05 44.65 53.99 44.75C53.97 44.81 53.87 45.13 53.78 45.47C53.60 46.13 53.48 46.49 53.30 46.84C52.89 47.65 52.11 48.38 51.30 48.72C50.82 48.91 50.78 48.90 51.18 48.69C52.05 48.23 52.67 47.59 53.08 46.73C53.26 46.34 53.39 45.94 53.58 45.17C53.81 44.31 54.06 43.87 54.49 43.62C55.07 43.28 56.03 43.18 57.08 43.35ZM44.13 47.23C44.48 47.22 44.82 47.19 44.87 47.18C44.97 47.15 44.97 47.16 44.94 47.37C44.93 47.50 44.89 47.73 44.85 47.90L44.78 48.20L44.52 48.32C44.13 48.50 43.59 48.58 43.18 48.53C42.84 48.48 42.49 48.32 42.39 48.17C42.34 48.10 42.35 48.03 42.45 47.68C42.52 47.46 42.58 47.26 42.59 47.23C42.60 47.19 42.72 47.19 43.05 47.22C43.30 47.24 43.79 47.24 44.13 47.23ZM42.71 48.69C43.15 48.86 43.91 48.82 44.46 48.60C44.57 48.55 44.68 48.52 44.69 48.53C44.70 48.54 44.68 48.66 44.65 48.79C44.56 49.15 44.38 50.15 44.38 50.31C44.38 50.45 44.37 50.46 44.12 50.57C43.33 50.93 42.41 50.92 41.87 50.54C41.79 50.49 41.69 50.39 41.65 50.33C41.56 50.20 41.58 50.11 41.95 49.13L42.22 48.40L42.35 48.51C42.43 48.56 42.59 48.64 42.71 48.69ZM41.91 50.89C42.50 51.19 43.36 51.16 44.09 50.83C44.21 50.78 44.31 50.73 44.32 50.73C44.32 50.73 44.32 51.06 44.33 51.46C44.33 51.86 44.36 52.35 44.39 52.55L44.45 52.92L44.26 53.03C44.16 53.10 43.94 53.21 43.77 53.27C42.75 53.66 41.70 53.48 41.17 52.82L41.05 52.67L41.10 52.23C41.15 51.75 41.32 50.93 41.41 50.70L41.47 50.56L41.60 50.68C41.67 50.75 41.81 50.84 41.91 50.89ZM62.08 52.13C62.33 52.41 62.44 52.71 62.44 53.06C62.44 53.22 62.45 53.36 62.47 53.36C62.51 53.36 62.70 53.14 62.72 53.07C62.75 52.98 62.83 53.06 62.88 53.25C62.99 53.67 62.85 54.11 62.51 54.33C62.33 54.45 62.32 54.45 62.24 54.29C62.15 54.11 61.89 53.85 61.81 53.85C61.71 53.85 61.69 53.89 61.66 54.17C61.65 54.31 61.63 54.42 61.62 54.42C61.61 54.42 61.54 54.39 61.46 54.34C61.27 54.22 61.12 53.89 61.12 53.60C61.12 53.30 61.21 53.10 61.51 52.72C61.76 52.41 61.85 52.23 61.85 52.07C61.85 51.92 61.90 51.94 62.08 52.13ZM48.96 58.32C48.95 58.35 48.89 58.52 48.83 58.69C48.77 58.86 48.62 59.22 48.50 59.50C48.38 59.77 48.28 60.01 48.28 60.02C48.28 60.03 48.38 59.98 48.49 59.91C48.77 59.74 49.08 59.60 49.29 59.57L49.46 59.54L49.29 59.19C49.20 59.00 49.09 58.71 49.05 58.55C49.02 58.39 48.97 58.29 48.96 58.32Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M49.94 31.79C49.89 31.82 49.73 31.96 49.57 32.12C48.99 32.66 48.77 32.73 47.60 32.73C46.71 32.73 46.30 32.79 45.91 32.98L45.73 33.08L46.15 33.13C47.00 33.24 48.02 33.56 48.80 33.96L49.19 34.16L49.37 34.04C49.81 33.73 50.19 33.14 50.32 32.56C50.39 32.19 50.37 31.98 50.23 31.84C50.11 31.73 50.06 31.72 49.94 31.79ZM54.70 33.15C53.84 34.04 53.34 34.22 51.95 34.12C51.46 34.09 51.17 34.09 50.86 34.12C49.80 34.24 48.81 34.64 48.01 35.27C47.82 35.42 47.72 35.49 47.74 35.43C47.83 35.28 48.37 34.73 48.62 34.54L48.86 34.37L48.44 34.16C47.56 33.74 46.60 33.50 45.49 33.42C44.22 33.33 43.05 33.51 41.87 33.98C40.94 34.35 40.26 34.80 39.60 35.45C38.65 36.41 38.17 37.38 37.84 39.02C37.66 39.93 37.60 40.16 37.47 40.36C37.36 40.53 37.13 40.72 36.85 40.86C36.26 41.16 35.97 41.57 35.89 42.24C35.78 43.23 36.19 44.42 36.76 44.74C36.87 44.81 37.05 44.96 37.15 45.10C37.90 46.02 39.34 46.66 41.47 47.02C42.02 47.11 42.04 47.12 42.04 47.18C42.04 47.30 41.75 48.16 41.43 48.99C41.25 49.44 41.03 50.05 40.94 50.34C40.51 51.67 40.39 53.03 40.59 54.24C40.63 54.53 40.64 54.78 40.61 55.49C40.57 56.42 40.61 57.77 40.69 58.49C40.72 58.71 40.73 58.94 40.71 59.00C40.70 59.06 40.60 59.16 40.44 59.26C40.10 59.49 39.92 59.69 39.78 59.98C39.59 60.39 39.63 60.79 39.89 60.96C40.02 61.05 40.07 61.02 40.07 60.87C40.07 60.60 40.28 60.24 40.50 60.12C40.56 60.08 40.55 60.11 40.46 60.26C40.33 60.49 40.28 60.88 40.36 61.06C40.41 61.20 40.59 61.27 40.83 61.27C41.08 61.27 41.12 61.24 41.13 61.03C41.14 60.79 41.18 60.67 41.33 60.50C41.47 60.33 41.52 60.33 41.44 60.51C41.37 60.71 41.37 61.17 41.45 61.23C41.53 61.30 42.14 61.26 42.44 61.17C42.64 61.11 42.65 61.11 42.71 60.87C42.80 60.54 43.07 60.16 43.40 59.90C43.67 59.67 43.68 59.66 43.81 59.29L43.93 58.92L43.70 58.71C43.45 58.50 42.77 57.82 42.79 57.80C42.80 57.80 42.91 57.82 43.05 57.85C43.37 57.93 43.58 57.93 43.93 57.84C44.18 57.79 44.21 57.77 44.24 57.67C44.25 57.61 44.27 57.53 44.28 57.50C44.30 57.44 44.26 57.45 44.02 57.52C43.56 57.68 43.05 57.64 42.58 57.40C42.34 57.28 42.14 56.98 41.78 56.23C41.53 55.70 41.50 55.60 41.54 55.62C41.56 55.63 41.67 55.69 41.78 55.75C42.44 56.09 43.40 56.06 44.13 55.67C44.49 55.49 44.63 55.35 44.63 55.20L44.63 55.08L44.44 55.20C44.00 55.51 43.32 55.74 42.87 55.74C42.42 55.73 41.86 55.52 41.54 55.24C41.36 55.08 41.33 55.03 41.26 54.75C41.17 54.38 41.06 53.64 41.06 53.35L41.06 53.14L41.21 53.28C41.29 53.35 41.49 53.47 41.65 53.55C42.40 53.91 43.47 53.79 44.33 53.26L44.50 53.15L44.61 53.51L44.73 53.87L44.76 53.64C44.85 53.09 44.96 52.56 45.02 52.44C45.07 52.34 45.07 52.34 45.06 52.41C45.04 52.47 45.02 53.11 45.00 53.83C44.98 54.55 44.94 55.33 44.91 55.57C44.77 56.90 44.53 58.08 44.15 59.30C43.99 59.81 44.02 59.78 43.43 60.31C43.15 60.56 43.02 60.84 42.99 61.18C42.97 61.49 43.04 61.66 43.20 61.75C43.37 61.84 43.44 61.82 43.44 61.70C43.44 61.48 43.54 61.25 43.72 61.06C43.97 60.81 44.04 60.81 43.89 61.06C43.65 61.43 43.63 61.92 43.85 62.03C43.97 62.09 44.28 62.11 44.50 62.07C44.61 62.05 44.62 62.02 44.65 61.85C44.68 61.60 44.76 61.42 44.89 61.29C45.05 61.14 45.08 61.17 44.99 61.40C44.91 61.62 44.89 61.93 44.96 62.06C45.05 62.23 45.93 62.10 46.44 61.85C46.78 61.67 47.01 61.44 47.34 60.95C48.07 59.84 48.69 58.31 48.99 56.86C49.17 55.97 49.20 55.68 49.20 54.62C49.20 53.71 49.21 53.62 49.25 53.78C49.37 54.16 49.43 54.55 49.45 55.13L49.48 55.74L49.58 55.60C50.00 55.02 50.68 54.57 51.35 54.41C51.69 54.33 52.37 54.33 52.70 54.40C52.96 54.46 53.58 54.71 53.56 54.74C53.55 54.74 53.42 54.71 53.28 54.66C53.06 54.59 52.92 54.57 52.38 54.57C51.77 54.57 51.73 54.57 51.39 54.69C50.41 55.05 49.70 55.79 49.42 56.79C49.34 57.06 49.32 57.20 49.33 57.68C49.34 58.33 49.41 58.71 49.63 59.12C49.81 59.49 49.82 59.50 50.25 59.65C50.62 59.77 50.90 59.91 51.09 60.06C51.15 60.11 51.12 60.11 50.96 60.05C50.46 59.86 49.82 59.79 49.38 59.88C49.02 59.96 48.57 60.19 48.33 60.44C48.04 60.72 47.91 61.01 47.91 61.34C47.91 61.57 47.92 61.60 48.04 61.70C48.20 61.84 48.27 61.84 48.30 61.65C48.34 61.40 48.48 61.16 48.66 61.01C48.90 60.80 48.95 60.83 48.79 61.07C48.63 61.31 48.56 61.50 48.56 61.78C48.56 61.95 48.58 61.98 48.70 62.05C48.79 62.11 48.90 62.13 49.06 62.13L49.29 62.13L49.32 61.96C49.38 61.65 49.52 61.40 49.73 61.27C49.81 61.23 49.88 61.19 49.89 61.19C49.90 61.19 49.85 61.29 49.77 61.42C49.68 61.57 49.63 61.73 49.61 61.88C49.58 62.09 49.59 62.11 49.67 62.18C49.79 62.28 50.17 62.28 50.80 62.20C51.05 62.17 51.67 62.10 52.17 62.05C53.34 61.94 53.69 61.88 53.97 61.74C54.23 61.61 54.38 61.43 54.41 61.18C54.44 61.05 54.48 61.00 54.69 60.84C55.36 60.36 55.75 59.86 56.10 59.06C56.25 58.71 56.27 58.78 56.15 59.25C56.00 59.84 55.69 60.38 55.25 60.82C55.01 61.06 55.01 61.06 55.12 61.09C55.18 61.10 55.67 61.13 56.21 61.14C57.35 61.16 57.97 61.11 58.75 60.90C59.86 60.62 60.71 60.14 61.40 59.40C61.98 58.80 62.33 58.14 62.54 57.30C62.63 56.92 62.65 56.78 62.65 56.21C62.65 55.60 62.62 55.32 62.49 54.90C62.47 54.82 62.50 54.80 62.70 54.73C63.81 54.35 64.39 53.15 64.00 52.01C63.89 51.67 63.67 51.29 63.60 51.29C63.58 51.29 63.54 51.38 63.51 51.49C63.47 51.72 63.36 51.91 63.24 51.97C63.17 52.00 63.17 51.98 63.17 51.65C63.17 51.03 62.97 50.52 62.58 50.08C62.26 49.75 61.67 49.38 61.44 49.38C61.34 49.38 61.34 49.38 61.44 49.70C61.49 49.84 61.53 50.05 61.53 50.16C61.53 50.44 61.39 50.85 61.21 51.08C61.05 51.29 60.83 51.70 60.83 51.78C60.83 51.82 60.81 51.84 60.79 51.84C60.73 51.84 60.61 51.39 60.64 51.24C60.65 51.16 60.64 51.09 60.62 51.08C60.55 51.04 60.20 51.43 60.06 51.70C59.71 52.36 59.71 53.24 60.06 53.81C60.32 54.23 60.82 54.62 61.29 54.76C61.55 54.84 61.57 54.85 61.57 54.97C61.57 55.03 61.52 55.23 61.46 55.40C61.17 56.27 60.52 56.90 59.70 57.11C59.20 57.24 58.49 57.18 57.98 56.96C57.68 56.84 57.15 56.47 56.93 56.24C56.75 56.06 56.73 56.02 56.67 55.66C56.50 54.74 56.17 53.83 55.73 53.09C55.11 52.07 54.38 51.34 53.04 50.39C52.60 50.08 52.49 50.06 52.11 50.20C52.00 50.24 51.87 50.28 51.83 50.30C51.67 50.36 52.03 50.07 52.26 49.95C53.13 49.51 54.19 49.83 54.80 50.72C54.88 50.83 54.95 50.90 55.00 50.89C55.03 50.88 55.16 50.73 55.27 50.56C55.65 49.98 56.12 49.59 56.69 49.39C57.09 49.25 57.80 49.21 58.20 49.32C58.50 49.40 58.91 49.59 59.21 49.81C59.52 50.03 59.61 50.00 59.66 49.65C59.73 49.12 59.90 48.60 60.13 48.24C60.33 47.92 60.74 47.54 61.05 47.39C61.71 47.06 62.30 47.06 63.11 47.37C63.57 47.55 63.67 47.55 63.69 47.38C63.72 47.20 63.21 46.34 62.69 45.71C61.47 44.20 59.66 43.01 57.90 42.55C55.90 42.03 54.20 42.22 53.40 43.05C52.95 43.51 52.83 43.78 52.62 44.78C52.47 45.49 52.38 45.77 52.19 46.16C51.89 46.76 51.33 47.28 50.68 47.57C50.43 47.69 49.99 47.82 49.86 47.82C49.77 47.82 49.53 47.37 49.42 47.00C49.35 46.77 49.33 46.59 49.33 46.27L49.32 45.84L49.57 45.63C50.02 45.25 50.60 44.63 50.83 44.28C51.21 43.71 51.52 43.02 51.68 42.38L51.72 42.21L52.02 42.18C52.68 42.12 53.38 41.80 53.55 41.46C53.66 41.24 53.59 41.16 53.18 41.06C52.78 40.96 52.48 40.83 52.12 40.62C51.89 40.47 51.88 40.46 51.89 40.32L51.91 40.17L52.32 40.14C53.44 40.07 54.42 39.40 54.88 38.41C55.10 37.94 55.16 37.67 55.08 37.53C55.00 37.37 54.80 37.37 54.35 37.52C53.80 37.71 53.39 37.74 52.69 37.66C51.76 37.56 51.09 37.64 50.56 37.90C50.24 38.06 50.36 37.94 50.96 37.48C51.05 37.41 51.24 37.27 51.37 37.15C51.68 36.89 52.10 36.69 52.88 36.42C53.64 36.16 53.87 36.06 54.18 35.85C54.73 35.47 55.18 34.87 55.43 34.17C55.54 33.85 55.55 33.76 55.55 33.35C55.56 32.89 55.56 32.88 55.44 32.78C55.38 32.73 55.29 32.69 55.24 32.69C55.18 32.69 55.00 32.85 54.70 33.15ZM44.58 38.24C45.31 38.42 45.93 38.99 46.19 39.75C46.33 40.14 46.33 40.80 46.18 41.20C45.91 41.94 45.28 42.50 44.52 42.68C44.09 42.78 43.30 42.74 42.94 42.60C42.58 42.47 42.26 42.27 41.97 42.01L41.74 41.81L41.73 41.42C41.71 41.10 41.72 41.05 41.76 41.13C41.97 41.60 42.04 41.71 42.24 41.91C42.60 42.27 43.13 42.46 43.59 42.37C44.44 42.23 45.04 41.48 45.04 40.59C45.04 40.31 44.97 39.95 44.89 39.80C44.85 39.74 44.84 39.75 44.82 39.86C44.78 40.04 44.57 40.27 44.38 40.32C44.25 40.36 44.19 40.36 44.03 40.30C43.80 40.21 43.68 40.04 43.65 39.79C43.63 39.44 43.84 39.17 44.19 39.14L44.38 39.11L44.25 39.02C43.87 38.74 43.27 38.66 42.81 38.84C42.67 38.89 42.47 39.01 42.34 39.11C42.07 39.34 42.12 39.22 42.45 38.86C42.98 38.30 43.81 38.06 44.58 38.24ZM42.82 41.30C42.93 41.41 42.92 41.57 42.80 41.69C42.68 41.81 42.52 41.82 42.41 41.71C42.24 41.53 42.37 41.22 42.62 41.22C42.69 41.22 42.78 41.25 42.82 41.30ZM38.43 42.21C38.56 42.34 38.43 42.53 38.21 42.53C38.14 42.53 38.04 42.59 37.92 42.69C37.72 42.88 37.70 42.89 37.70 42.77C37.70 42.62 37.86 42.32 38.00 42.24C38.14 42.15 38.35 42.14 38.43 42.21ZM57.08 43.35C58.37 43.56 59.63 44.11 60.80 44.98C61.14 45.23 61.29 45.37 61.05 45.21C59.98 44.51 58.89 44.02 57.83 43.77C57.13 43.60 56.75 43.55 56.17 43.54C55.71 43.54 55.13 43.61 55.13 43.67C55.13 43.69 55.20 43.74 55.28 43.78C55.52 43.91 56.14 44.36 56.52 44.68C57.56 45.57 58.48 46.93 58.96 48.31C59.04 48.54 59.11 48.74 59.11 48.76C59.11 48.77 58.99 48.55 58.85 48.27C58.29 47.17 57.76 46.43 56.96 45.63C56.21 44.89 55.70 44.50 54.92 44.10C54.60 43.94 54.56 43.94 54.43 44.04L54.33 44.12L54.52 44.69C54.98 46.07 55.18 47.54 55.08 48.90C55.06 49.26 55.03 49.57 55.02 49.58C55.00 49.60 54.97 49.26 54.95 48.74C54.91 47.94 54.77 47.01 54.57 46.20C54.46 45.77 54.17 44.87 54.09 44.73C54.05 44.65 54.05 44.65 53.99 44.75C53.97 44.81 53.87 45.13 53.78 45.47C53.60 46.13 53.48 46.49 53.30 46.84C52.89 47.65 52.11 48.38 51.30 48.72C50.82 48.91 50.78 48.90 51.18 48.69C52.05 48.23 52.67 47.59 53.08 46.73C53.26 46.34 53.39 45.94 53.58 45.17C53.81 44.31 54.06 43.87 54.49 43.62C55.07 43.28 56.03 43.18 57.08 43.35ZM44.13 47.23C44.48 47.22 44.82 47.19 44.87 47.18C44.97 47.15 44.97 47.16 44.94 47.37C44.93 47.50 44.89 47.73 44.85 47.90L44.78 48.20L44.52 48.32C44.13 48.50 43.59 48.58 43.18 48.53C42.84 48.48 42.49 48.32 42.39 48.17C42.34 48.10 42.35 48.03 42.45 47.68C42.52 47.46 42.58 47.26 42.59 47.23C42.60 47.19 42.72 47.19 43.05 47.22C43.30 47.24 43.79 47.24 44.13 47.23ZM42.71 48.69C43.15 48.86 43.91 48.82 44.46 48.60C44.57 48.55 44.68 48.52 44.69 48.53C44.70 48.54 44.68 48.66 44.65 48.79C44.56 49.15 44.38 50.15 44.38 50.31C44.38 50.45 44.37 50.46 44.12 50.57C43.33 50.93 42.41 50.92 41.87 50.54C41.79 50.49 41.69 50.39 41.65 50.33C41.56 50.20 41.58 50.11 41.95 49.13L42.22 48.40L42.35 48.51C42.43 48.56 42.59 48.64 42.71 48.69ZM41.91 50.89C42.50 51.19 43.36 51.16 44.09 50.83C44.21 50.78 44.31 50.73 44.32 50.73C44.32 50.73 44.32 51.06 44.33 51.46C44.33 51.86 44.36 52.35 44.39 52.55L44.45 52.92L44.26 53.03C44.16 53.10 43.94 53.21 43.77 53.27C42.75 53.66 41.70 53.48 41.17 52.82L41.05 52.67L41.10 52.23C41.15 51.75 41.32 50.93 41.41 50.70L41.47 50.56L41.60 50.68C41.67 50.75 41.81 50.84 41.91 50.89ZM62.08 52.13C62.33 52.41 62.44 52.71 62.44 53.06C62.44 53.22 62.45 53.36 62.47 53.36C62.51 53.36 62.70 53.14 62.72 53.07C62.75 52.98 62.83 53.06 62.88 53.25C62.99 53.67 62.85 54.11 62.51 54.33C62.33 54.45 62.32 54.45 62.24 54.29C62.15 54.11 61.89 53.85 61.81 53.85C61.71 53.85 61.69 53.89 61.66 54.17C61.65 54.31 61.63 54.42 61.62 54.42C61.61 54.42 61.54 54.39 61.46 54.34C61.27 54.22 61.12 53.89 61.12 53.60C61.12 53.30 61.21 53.10 61.51 52.72C61.76 52.41 61.85 52.23 61.85 52.07C61.85 51.92 61.90 51.94 62.08 52.13ZM48.96 58.32C48.95 58.35 48.89 58.52 48.83 58.69C48.77 58.86 48.62 59.22 48.50 59.50C48.38 59.77 48.28 60.01 48.28 60.02C48.28 60.03 48.38 59.98 48.49 59.91C48.77 59.74 49.08 59.60 49.29 59.57L49.46 59.54L49.29 59.19C49.20 59.00 49.09 58.71 49.05 58.55C49.02 58.39 48.97 58.29 48.96 58.32Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat; }
.glint-bar { position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; will-change: transform;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,251,230,.85), rgba(255,255,255,0));
  transform: skewX(-18deg); transform-origin: 0 0; animation: foil-glint 6s ease-in-out 1.2s infinite; }   /* skew from the top-left, like the old SVG bar */
.em-dragon { will-change: transform; transform-origin: 50% 68%; animation: dragon-breathe 4.2s ease-in-out infinite; }
.em-flame { will-change: transform; transform-origin: 62.02% 55.04%; animation: dragon-tail 2.4s ease-in-out infinite; }
.medal-ring {
  position: absolute; inset: 0; border-radius: 50%;
  padding: 1.4cqw;
  background: linear-gradient(140deg, #f6dc8f, #a8791f 45%, #f1d27a);
  box-shadow: 0 2.2cqw 5cqw rgba(0,0,0,.55), 0 0 7cqw rgba(246,220,143,.28);
}
.cover-title { margin: 0; font-family: var(--serif); line-height: 1; }
.cover-title .t1 { display: block; font-size: 5cqw; font-weight: 500; font-style: italic; letter-spacing: .02em; }
.cover-title .t2 { display: block; margin-top: 1.4cqw; font-size: 17cqw; font-weight: 700; letter-spacing: -.01em; }
.cover-divider { width: 40cqw; height: 4.6cqw; color: var(--gold); filter: drop-shadow(0 1px 0 rgba(0,0,0,.5)); }
.cover-open {
  margin: 0; font: italic 500 4cqw/1 var(--serif); color: var(--gold-l);
  animation: hint-pulse 2.8s ease-in-out infinite;
}

/* ── Details (when / where) ───────────────────────────────── */
.facts { list-style: none; margin: 0; padding: 0; width: 100%; display: grid; gap: 2.4cqw; }
.facts li {
  display: grid; grid-template-columns: 9.5cqw 1fr; gap: 3cqw; align-items: center; text-align: left;
  padding: 2.4cqw 3.2cqw; border-radius: 2.4cqw;
  background: linear-gradient(180deg, rgba(221,167,74,.14), rgba(221,167,74,.06));
  border: .3cqw solid rgba(221,167,74,.5);
  box-shadow: inset 0 .4cqw 1.4cqw rgba(44,40,37,.05);
}
.facts .ico { width: 9cqw; height: 9cqw; border-radius: 50%; display: grid; place-items: center; background: rgba(107,142,116,.18); color: var(--sage-d); font-size: 5.4cqw; }
.facts .dt { display: block; font: 700 2.7cqw/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--sage-d); margin: 0 0 .8cqw; }
.facts .dd { display: block; margin: 0; font: 600 4.2cqw/1.3 var(--serif); color: var(--ink); }
.facts .tbc { font-weight: 500; font-style: italic; color: var(--ink-soft); }
.note { margin: 3.4cqw 0 0; font: italic 500 3.9cqw/1.45 var(--serif); color: var(--ink-soft); }
.tag {
  display: inline-block; margin-top: 2.4cqw; padding: 1.1cqw 3cqw; border-radius: 99px;
  background: rgba(162,148,184,.18); border: .3cqw solid rgba(162,148,184,.55); color: #5b4d73;
  font: 600 3.1cqw/1.2 var(--sans);
}

/* ── RSVP form: “The Royal Guest Book” ────────────────────── */
.rsvp { width: 100%; text-align: left; display: grid; gap: 3cqw; margin-top: .5cqw; }
.field > label, .legend { display: block; margin: 0 0 1.2cqw; font: 700 2.8cqw/1.2 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--sage-d); }
.rsvp input[type=text], .rsvp input[type=tel], .rsvp select, .rsvp textarea {
  width: 100%; font: 500 4.2cqw/1.3 var(--sans); color: var(--ink);
  padding: 2.6cqw 3.2cqw; border-radius: 1.8cqw; border: .3cqw solid #dacfbe;
  background: #fffdf8; box-shadow: inset 0 .5cqw 1.2cqw rgba(44,40,37,.07);
  transition: border-color .2s, box-shadow .2s;
  appearance: none; -webkit-appearance: none;
}
.rsvp textarea { resize: none; min-height: 14cqw; }
.rsvp select {
  background-image: linear-gradient(45deg, transparent 50%, var(--sage-d) 50%), linear-gradient(135deg, var(--sage-d) 50%, transparent 50%);
  background-position: calc(100% - 5cqw) 55%, calc(100% - 3.6cqw) 55%; background-size: 1.6cqw 1.6cqw; background-repeat: no-repeat;
  padding-right: 9cqw;
}
.rsvp input:focus-visible, .rsvp input[type=tel]:focus, .rsvp select:focus-visible, .rsvp textarea:focus-visible { outline: none; border-color: var(--sage); box-shadow: 0 0 0 .8cqw rgba(221,167,74,.28), inset 0 .5cqw 1.2cqw rgba(44,40,37,.05); }
.choices { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4cqw; border: 0; margin: 0; padding: 0; }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.choice span {
  display: flex; align-items: center; gap: 2.4cqw; padding: 2.6cqw 3cqw; border-radius: 1.8cqw;
  border: .3cqw solid #dacfbe; background: #fffdf8; font: 600 3.7cqw/1.15 var(--sans); color: var(--ink);
  transition: border-color .2s, background .2s, transform .2s, box-shadow .2s;
}
.choice span::before { /* dragon-egg radio */
  content: ""; flex: none; width: 5.6cqw; height: 7.2cqw; border-radius: 50% 50% 50% 50% / 62% 62% 38% 38%;
  border: .4cqw solid var(--sage); background: #fffdf8; transition: background .25s, box-shadow .25s;
}
.choice input:checked + span {
  border-color: var(--gold); background: linear-gradient(180deg, #fff6df, #fbecc8);
  box-shadow: 0 1cqw 3cqw -1cqw rgba(168,121,31,.45); transform: translateY(-.4cqw);
}
.choice input:checked + span::before {
  border-color: var(--gold-d);
  background:
    radial-gradient(circle at 30% 35%, #8a5d0f 0 .5cqw, transparent .6cqw),
    radial-gradient(circle at 65% 55%, #8a5d0f 0 .45cqw, transparent .55cqw),
    radial-gradient(circle at 45% 75%, #8a5d0f 0 .4cqw, transparent .5cqw),
    linear-gradient(160deg, #ffe39a, #e0aa43);
  box-shadow: 0 0 2.4cqw rgba(246,220,143,.8);
}
.choice input:focus-visible + span { box-shadow: 0 0 0 .8cqw rgba(221,167,74,.35); }
.row2 { display: grid; grid-template-columns: 1fr; gap: 3cqw; }
.btn {
  position: relative; display: inline-flex; justify-content: center; align-items: center; gap: 2cqw;
  padding: 3.4cqw 5cqw; border: 0; border-radius: 2cqw; cursor: pointer;
  font: 700 4.1cqw/1 var(--serif); color: var(--parch); letter-spacing: .02em;
  background: linear-gradient(180deg, #7ba384, var(--sage-d));
  box-shadow: 0 0 0 .35cqw rgba(246,220,143,.7) inset, 0 1.6cqw 3.4cqw -1cqw rgba(30,60,40,.7);
  transition: transform .2s, box-shadow .2s;
}
.btn:hover { transform: translateY(-.5cqw); box-shadow: 0 0 0 .35cqw rgba(246,220,143,.9) inset, 0 2.6cqw 5cqw -1.4cqw rgba(221,167,74,.75); }
.btn:active { transform: translateY(0); }
.btn:focus-visible { outline: .6cqw solid var(--gold); outline-offset: .6cqw; }
.btn--ghost { background: transparent; color: var(--sage-d); box-shadow: inset 0 0 0 .35cqw var(--gold); }
.err { min-height: 1em; margin: 0; font: 600 3.2cqw/1.3 var(--sans); color: #a02b22; }

.thanks { display: flex; flex-direction: column; align-items: center; gap: 2.4cqw; margin-top: 2cqw; }
.seal { width: 30cqw; height: 30cqw; color: #1f4a39; filter: drop-shadow(0 1.4cqw 1.6cqw rgba(0,0,0,.35)); animation: stamp .9s cubic-bezier(.2,1.3,.3,1) both; }
@keyframes stamp { 0% { transform: scale(2.4) rotate(-18deg); opacity: 0; } 55% { opacity: 1; } 100% { transform: scale(1) rotate(-6deg); opacity: 1; } }
.thanks .h2 { font-size: 7cqw; }

/* ── Fin page ─────────────────────────────────────────────── */
.fin-medal { width: 40cqw; height: 40cqw; border-radius: 50%; padding: 1.1cqw; margin: 2cqw 0 1cqw; background: linear-gradient(140deg,#f6dc8f,#a8791f 45%,#f1d27a); box-shadow: 0 1.6cqw 3.6cqw rgba(60,35,5,.45); flex: none; }

/* ── Controls ─────────────────────────────────────────────── */
.controls {
  position: fixed; z-index: 5; left: 50%; bottom: max(14px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: max-content; max-width: calc(100vw - 16px);
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 7px 10px; border-radius: 99px;
  background: rgba(10,22,19,.86);
  border: 1px solid rgba(246,220,143,.28);
  box-shadow: 0 8px 24px rgba(0,0,0,.45);
}
.ctl {
  appearance: none; border: 1px solid rgba(246,220,143,.5); background: rgba(246,220,143,.08); color: var(--gold-l);
  width: 40px; height: 40px; border-radius: 50%; font: 500 26px/1 var(--serif); cursor: pointer; display: grid; place-items: center;
  padding: 0 0 3px; transition: background .2s, transform .2s, opacity .2s;
}
.ctl:hover:not(:disabled) { background: rgba(246,220,143,.2); transform: scale(1.06); }
.ctl:focus-visible { outline: 2px solid var(--gold-l); outline-offset: 2px; }
.ctl:disabled { opacity: .3; cursor: default; }
.ctl--lang { font: 700 12px/1 var(--sans); letter-spacing: .08em; padding: 0; width: 42px; }
.dots { display: flex; gap: 8px; align-items: center; padding: 0 4px; }
.count { display: none; min-width: 52px; text-align: center; font: 600 13px/1 var(--sans); letter-spacing: .08em; color: var(--gold-l); }
.dot {
  appearance: none; border: 0; padding: 0; width: 9px; height: 9px; border-radius: 50%; cursor: pointer;
  background: rgba(246,220,143,.3); transition: background .3s, transform .3s, width .3s;
  position: relative;
}
.dot::before { content: ""; position: absolute; inset: -9px; } /* bigger tap target */
.dot[aria-current="true"] { background: var(--gold-l); width: 22px; border-radius: 99px; box-shadow: 0 0 8px rgba(246,220,143,.7); }
.dot:focus-visible { outline: 2px solid var(--gold-l); outline-offset: 3px; }

@media (max-width: 860px) {
  .book-wrap { width: calc(var(--pw) * 2); }
  .stage { padding: 10px 14px 76px; }
  .dots { display: none; }
  .count { display: block; }
  .controls { gap: 8px; padding: 6px 8px; }
  .hint { margin-top: 14px; font-size: 14px; }
}

/* ── Reduced motion ───────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  :root { --flip: .01s; }
  .emblem .glow, .emblem .tw { animation: none; }
  .page.is-visible .art img, .page.is-visible .art .plate-in::before, .gold, .hint, .cover-open, .seal { animation: none; }
  .sparkle { display: none; }
}

/* ── RSVP page: compact so the whole form fits on a page ───── */
.page--rsvp .chap { margin-bottom: 1.4cqw; }
.page--rsvp .h2 { font-size: 6.4cqw; }
.page--rsvp .orn { width: 36cqw; height: 4cqw; margin: 2.2cqw auto; }
.page--rsvp .rsvp { gap: 2.2cqw; }
.page--rsvp .field > label, .page--rsvp .legend { margin-bottom: .8cqw; font-size: 2.6cqw; }
.page--rsvp .rsvp input[type=text], .page--rsvp .rsvp input[type=tel], .page--rsvp .rsvp select, .page--rsvp .rsvp textarea { padding: 2cqw 3cqw; font-size: 3.9cqw; }
.page--rsvp .rsvp textarea { min-height: 12cqw; }
.page--rsvp .choice span { padding: 2cqw 2.6cqw; font-size: 3.5cqw; }
.page--rsvp .choice span::before { width: 5cqw; height: 6.5cqw; }
.page--rsvp .btn { padding: 2.9cqw 4cqw; font-size: 3.9cqw; }
.err:empty { display: none; }

/* ── Music button + hidden YouTube player ─────────────────── */
.ctl--music { font-size: 20px; padding: 0 0 2px; position: relative; }
.ctl--music.is-off { color: rgba(246,220,143,.55); }
.ctl--music.is-off::after {
  content: ""; position: absolute; left: 9px; right: 9px; top: 50%; height: 2px;
  background: var(--gold-l); transform: rotate(-42deg); border-radius: 2px;
}
.ctl--music.is-on { background: rgba(246,220,143,.18); box-shadow: 0 0 14px rgba(246,220,143,.35); }
.ctl--music.is-on span { animation: bob 1.6s ease-in-out infinite; }
@keyframes bob { 0%,100% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-2px) rotate(6deg); } }
.yt-host { position: fixed; left: -9999px; top: 0; width: 220px; height: 220px; overflow: hidden; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .ctl--music.is-on span { animation: none; } }

/* round medallion portraits (cropped on the baby's face) */
.medal-img {
  width: 100%; height: 100%; border-radius: 50%;
  background: #efe6cf url("art/dragon-baby.webp?v=202610211620") 50% 36% / 150% auto no-repeat;
  box-shadow: inset 0 0 0 .5cqw #5a3f0d;
}

/* ── Page-turn flourish ───────────────────────────────────── */


/* phones: the open spread is twice the screen wide; glide the view to the page being read */
.book-wrap { transition: transform .8s cubic-bezier(.45,.05,.25,1); }
.book-wrap.focus-left  { transform: translateX(calc(var(--pw) / 2)); }
.book-wrap.focus-right { transform: translateX(calc(var(--pw) / -2)); }
.stage { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .book-wrap { transition: none; } }

/* the cover dragon: gentle breathing, a wagging tail flame and a gold-foil glint */
@keyframes dragon-breathe { 0%,100% { transform: translateY(0) scale(1, 1); } 50% { transform: translateY(-.5%) scale(1.012, 1.03); } }
@keyframes dragon-tail { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(8deg); } }
@keyframes foil-glint { 0% { transform: translateX(0) skewX(-18deg); } 28%, 100% { transform: translateX(500%) skewX(-18deg); } }
@media (prefers-reduced-motion: reduce) { .em-dragon, .em-flame, .glint-bar { animation: none; } }

/* RSVP: phone step + greeting */
.page--rsvp .hello { margin: 0; text-align: center; font: italic 600 5cqw/1.3 var(--serif); color: var(--sage-d); }
.not-you { display: block; margin: .8cqw auto 0; padding: 0; border: 0; background: none; cursor: pointer;
  font: 500 3cqw/1.2 var(--sans); color: var(--ink-soft); text-decoration: underline; text-underline-offset: .5cqw; }
.rsvp-phone .note { margin: -1cqw 0 0; text-align: left; font-size: 3.3cqw; }

/* ── Content v2 (Kathleen's text) ─────────────────────────── */
.cover-title .t3 { display: block; margin-top: 1.6cqw; font-size: 6.4cqw; font-style: italic; font-weight: 500; letter-spacing: .02em; }
.parents { margin: 0; font: italic 600 5cqw/1.45 var(--serif); color: var(--sage-d); text-wrap: balance; }
.parents .amp { font-style: normal; color: var(--gold-d); }
.when { margin: 1.6cqw 0 0; font: 600 4.6cqw/1.3 var(--sans); color: var(--ink-soft); letter-spacing: .02em; }

.countdown { width: 100%; margin: 0 0 4cqw; }
.count-label { margin: 0 0 2cqw; font: 700 2.8cqw/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--sage-d); }
.count-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.2cqw; }
.count-grid div { padding: 2.6cqw 0 2cqw; border-radius: 2.4cqw; background: linear-gradient(180deg, rgba(221,167,74,.16), rgba(221,167,74,.06)); border: .3cqw solid rgba(221,167,74,.45); }
.count-grid b { display: block; font: 700 8cqw/1 var(--serif); color: var(--ink); font-variant-numeric: tabular-nums; }
.count-grid span { display: block; margin-top: 1cqw; font: 600 2.6cqw/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); }
.count-note { margin: 2.6cqw 0 0; font: italic 500 3.8cqw/1.3 var(--serif); color: var(--gold-d); }

.page .btn { text-decoration: none; }

.facts .room { display: block; margin-top: .6cqw; font: 600 3.8cqw/1.3 var(--sans); color: var(--sage-d); }
.facts .addr { display: block; margin-top: .8cqw; font: 400 3.3cqw/1.4 var(--sans); color: var(--ink-soft); }
.actions-row { display: grid; grid-template-columns: 1fr 1fr; gap: 3cqw; width: 100%; margin-top: 1cqw; }
.actions-row + .chap, .facts + .chap { margin-top: 4cqw; }
.actions-row .btn { width: 100%; }
.page .link { font: 600 3.6cqw/1.2 var(--sans); color: var(--sage-d); text-decoration: underline; text-underline-offset: .6cqw; }

.page--gifts .h2 { font-size: 7.2cqw; }
.page--gifts .orn { margin: 2.4cqw auto; }
.page--gifts .chap { margin: 3cqw 0 1.6cqw; }
.gifts-intro { margin: 0 !important; font-size: 3.9cqw !important; line-height: 1.5 !important; }
.gift-card { width: 100%; margin: 0 0 2cqw; padding: 2.4cqw 3.6cqw; border-radius: 2.4cqw; text-align: left;
  background: linear-gradient(180deg, rgba(221,167,74,.14), rgba(221,167,74,.05)); border: .3cqw solid rgba(221,167,74,.45); }
.gift-store { margin: 0; font: 700 4.4cqw/1.2 var(--serif); color: var(--ink); }
.gift-detail { margin: .6cqw 0 1cqw; font: 400 3.4cqw/1.35 var(--sans); color: var(--ink-soft); }
.gift-card .link { font-size: 3.3cqw; }
.copy-code { margin-left: 1.4cqw; padding: .2cqw 1.8cqw; border: .25cqw solid rgba(107,142,116,.5); border-radius: 1.2cqw; background: #fffdf8;
  font: 600 3.2cqw/1.4 var(--sans); color: var(--sage-d); cursor: pointer; }
.gifts-cash { margin: 0 !important; font-size: 3.7cqw !important; line-height: 1.45 !important; }

.rsvp-sub { margin: 0 0 2.4cqw; font: 400 3.5cqw/1.45 var(--sans); color: var(--ink-soft); text-wrap: pretty; }
.rsvp-sub b { display: block; margin-top: .8cqw; font-weight: 700; color: var(--gold-d); }
.passes { margin: 0; text-align: center; font: 600 3.7cqw/1.35 var(--sans); color: var(--ink); }

/* every button and link inside the book shares one typeface (titles and story text stay in the serif) */
/* buttons inside the book: the page's own body font, styled like the info cards so they sit softly on the paper */
.page .btn, .page .link, .page .copy-code, .page .not-you {
  font-family: var(--sans); font-style: normal; font-weight: 600; letter-spacing: .01em;
}
.page .btn {
  font-size: 3.7cqw; padding: 2.8cqw 5.5cqw; color: var(--sage-d);
  background: linear-gradient(180deg, rgba(255,253,248,.85), rgba(244,236,220,.85));
  border: .3cqw solid rgba(221,167,74,.6); border-radius: 2.4cqw;
  box-shadow: 0 .5cqw 1.6cqw -.8cqw rgba(60,40,10,.25);
  transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.page .btn:hover { transform: translateY(-.3cqw); border-color: var(--gold); background: linear-gradient(180deg, #fffdf8, #f6ecd6);
  box-shadow: 0 1.2cqw 2.6cqw -1.2cqw rgba(168,121,31,.45); }
.page .btn:active { transform: none; }
.page .btn:disabled { opacity: .6; cursor: default; transform: none; }
.page .link, .page .copy-code { font-size: 3.4cqw; }

/* ── Typography system: 3 roles, same everywhere ─────────────
   1. titles  → serif bold
   2. reading → serif regular (no sans for sentences)
   3. labels, buttons, form controls → sans, one size/weight
   Italic is used only for the captions under the paintings. */
.page .p, .page .p--story, .gifts-intro, .gifts-cash, .rsvp-sub, .passes,
.facts .addr, .gift-detail, .note, .when, .count-note, .parents, .hello, .folio {
  font-family: var(--serif); font-style: normal; font-weight: 400;
}
.page .p, .gifts-intro, .gifts-cash, .rsvp-sub, .facts .addr, .gift-detail, .note {
  font-size: 3.9cqw !important; line-height: 1.55 !important; color: var(--ink-soft);
}
.rsvp-sub b { font-family: var(--serif); font-weight: 600; }
.when { font-size: 4.6cqw; color: var(--ink-soft); }
.count-note { font-size: 3.9cqw; color: var(--gold-d); }
.parents { font-size: 4.8cqw; font-weight: 600; color: var(--sage-d); }
.hello { font-size: 5cqw; font-weight: 600; color: var(--sage-d); }
.passes { font-size: 3.9cqw; font-weight: 600; color: var(--ink); }
.facts .dd, .gift-store, .facts .room { font-family: var(--serif); font-weight: 700; font-style: normal; color: var(--ink); }
.facts .room { font-size: 3.9cqw; font-weight: 600; color: var(--sage-d); }

/* labels: one style */
.chap, .facts .dt, .count-label, .count-grid span, .field > label, .legend, .page--rsvp .field > label, .page--rsvp .legend {
  font-family: var(--sans) !important; font-style: normal; font-weight: 700 !important;
  font-size: 2.7cqw !important; letter-spacing: .2em !important; text-transform: uppercase; color: var(--sage-d);
}
/* buttons and form controls: one style */
.page .btn, .page .link, .page .copy-code, .choice span, .not-you,
.rsvp input[type=tel], .rsvp select {
  font-family: var(--sans) !important; font-style: normal !important; font-weight: 600;
}
.page .btn, .choice span { font-size: 3.6cqw !important; }
.page .link, .page .copy-code, .not-you { font-size: 3.3cqw !important; }
/* detail lines and hints a touch smaller than reading text, so dense pages fit */
.facts .addr, .gift-detail, .rsvp-phone .note { font-size: 3.5cqw !important; line-height: 1.45 !important; }
.page--gifts .gifts-intro, .page--gifts .gifts-cash { font-size: 3.6cqw !important; line-height: 1.45 !important; }
.page--gifts .gift-card { margin-bottom: 1.6cqw; padding: 2cqw 3.4cqw; }
.page--gifts .chap { margin: 2.4cqw 0 1.4cqw; }

/* ── Feedback round 2 ── */
.cover-in { padding-top: 3cqw; }                       /* "BABY SHOWER" no longer pressed against the gold frame */
.page--art .sub { margin-bottom: 4cqw; }               /* more room under the caption before the page edge */
.date-intro, .maps-p { margin: 0 0 1.6cqw; font: 400 3.9cqw/1.5 var(--serif); color: var(--ink-soft); }
.maps-p { margin: 0 0 2.4cqw; }
.venue-p { margin: 0 0 3cqw !important; text-align: left; }
.venue-p b { font-weight: 700; color: var(--ink); }
.count-label { font-family: var(--serif) !important; font-weight: 400 !important; font-size: 3.9cqw !important;
  letter-spacing: 0 !important; text-transform: none !important; color: var(--gold-d) !important; margin-bottom: 2.4cqw; }
.rsvp-sub b { display: inline; color: var(--gold-d); }
.rsvp-phone .field > label { font-family: var(--serif) !important; font-weight: 400 !important; font-size: 3.9cqw !important;
  letter-spacing: 0 !important; text-transform: none !important; color: var(--ink-soft) !important; line-height: 1.45; }
/* longer captions: slightly smaller paintings so caption + page number fit */
.page--art .plate { width: min(100%, 70cqw); }
.page--art .cap { margin-top: 3.4cqw; font-size: 5.8cqw; }
.page--art .sub { font-size: 4cqw; line-height: 1.4; margin-bottom: 6cqw; text-wrap: balance; }
.count-label { line-height: 1.4 !important; }
@media (max-width: 860px) { .page--art .plate { width: 100%; } }

/* iPhone zooms into any field with text under 16px and stays zoomed: keep fields at 16px on touch screens */
@media (pointer: coarse) { input, select, textarea { font-size: max(16px, 1em) !important; } }
