
:root {
  --cream: #fdfef7;
  --paper: #fffef9;
  --burgundy: #96021b;
  --burgundy-ink: #850018;
  --ink: #22221e;
  --muted: #6d675f;
  --hairline: rgba(150,2,27,.42);
  --line: rgba(150,2,27,.20);
  --shadow: 0 20px 60px rgba(47,27,25,.085);
  --bookman: 'Bookman Old Style', 'URW Bookman', 'Bookman', Georgia, serif;
  --hand: 'Segoe Print', 'Bradley Hand', 'Comic Sans MS', cursive;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); font-family:var(--bookman); color:var(--ink); }
button, input, textarea { font:inherit; }
button { cursor:pointer; }
a { color:inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline:3px solid #bd5c68; outline-offset:4px; }
#site { display:none; opacity:0; }
body.entered #site { display:block; opacity:1; animation:softAppear 900ms ease both; }
body.entered #entry-gate { animation:gateOut 720ms cubic-bezier(.35,0,.25,1) both; pointer-events:none; }
body.entered #entry-gate .heart-start img { animation:heartOpen 660ms ease-in both; }
#entry-gate { position:fixed; inset:0; z-index:25; background:var(--cream); display:grid; place-items:center; overflow:hidden; }
.rail { position:absolute; top:0; bottom:0; width:1px; background:var(--hairline); pointer-events:none; }
.rail.left { left:11.5%; }
.rail.right { right:11.5%; }
.gate-center { display:flex; flex-direction:column; align-items:center; transform:translateY(1.3rem); gap:10px; }
.heart-start { border:0; background:none; display:block; padding:12px; border-radius:28px; transition:transform .35s ease,filter .3s ease; }
.heart-start:hover { transform:scale(1.055); filter:drop-shadow(0 10px 13px rgba(150,2,27,.09)); }
.heart-start img { display:block; width:min(365px,60vw); max-height:40vh; object-fit:contain; }
.gate-caption { margin:0; color:var(--burgundy); font:italic 15px var(--hand); letter-spacing:-.02em; }
.site-header { position:sticky; top:0; z-index:10; background:var(--cream); border-bottom:1px solid var(--line); opacity:0; transform:translateY(-18px); transition:opacity .8s ease, transform .8s ease; }
body.nav-ready .site-header { opacity:1; transform:translateY(0); }
.header-inner { max-width:1170px; margin:auto; min-height:88px; padding:12px 27px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.mini-brand { display:flex; align-items:center; text-decoration:none; gap:10px; min-width:max-content; }
.mini-brand img { width:64px; height:56px; object-fit:contain; }
.mini-brand span { display:block; font-size:12px; color:var(--burgundy); letter-spacing:.075em; line-height:1.4; font-weight:700; }
.desktop-nav { display:flex; align-items:center; justify-content:flex-end; gap:clamp(15px,2.2vw,36px); }
.desktop-nav a { font-size:12px; color:var(--burgundy-ink); font-weight:700; letter-spacing:.07em; text-decoration:none; padding:9px 0; border-bottom:1px solid transparent; transition:border-color .25s; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { border-color:var(--burgundy); }
.nav-store { opacity:.53; font-size:12px; letter-spacing:.07em; color:var(--burgundy-ink); display:flex; flex-direction:column; gap:2px; line-height:1.1; }
.nav-store small { font-size:8px; letter-spacing:.085em; text-align:center; }
.menu-button { display:none; border:1px solid var(--line); background:transparent; border-radius:4px; color:var(--burgundy); padding:11px; }
.mobile-nav { display:none; padding:10px 25px 24px; border-top:1px solid var(--line); }
.mobile-nav a, .mobile-nav span { display:block; padding:13px 4px; color:var(--burgundy); text-decoration:none; font-size:13px; border-bottom:1px solid var(--line); }
.mobile-nav span { opacity:.58; }
.mobile-nav.is-open { display:block; }
main { overflow:clip; }
.section { max-width:1100px; margin:0 auto; padding:105px 28px; scroll-margin-top:88px; }
.section + .section { border-top:1px solid var(--line); }
.eyebrow { text-transform:uppercase; color:var(--burgundy); font-size:11px; font-weight:700; letter-spacing:.2em; margin:0 0 24px; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--bookman); font-weight:700; }
h1 { font-size:clamp(42px,6.4vw,92px); line-height:1.08; letter-spacing:-.045em; }
h2 { font-size:clamp(30px,3.5vw,52px); line-height:1.16; letter-spacing:-.035em; }
h3 { font-size:21px; line-height:1.3; }
p { font-size:15px; line-height:1.85; }
.lede { color:var(--muted); font-size:clamp(17px,2vw,22px); line-height:1.65; }
.reveal-section { min-height:calc(100vh - 88px); padding:10vh 28px 13vh; position:relative; display:grid; place-items:center; text-align:center; }
.reveal-section:before, .reveal-section:after { position:absolute; top:5%; bottom:4%; width:1px; background:var(--hairline); content:''; }
.reveal-section:before { left:11.5%; }.reveal-section:after { right:11.5%; }
.reveal-inner { max-width:800px; padding:40px 20px; animation:revealRise 1200ms cubic-bezier(.18,.72,.18,1) both; }
.reveal-inner .line { height:1px; max-width:110px; background:var(--burgundy); margin:32px auto; }
.reveal-inner .eyebrow { font-size:13px; font-family:var(--hand); font-style:italic; text-transform:none; font-weight:400; letter-spacing:0; }
.reveal-inner h1 { color:var(--burgundy); margin-bottom:18px; }
.reveal-inner .book-title { font-style:italic; color:#1f1a19; font-size:clamp(20px,2.7vw,34px); }
.reveal-inner p { max-width:550px; margin:26px auto; }
.pill-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; gap:8px; border-bottom:1px solid var(--burgundy); padding:8px 1px 11px; color:var(--burgundy); font-size:12px; font-weight:700; letter-spacing:.08em; }
.pill-link:hover { border-bottom-width:2px; }
.section-heading { max-width:750px; margin-bottom:45px; }
.section-heading h2 { color:var(--burgundy); }
.feature { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0,1.1fr); align-items:center; gap:clamp(45px,8vw,110px); }
.cover-frame { background:#fffefa; padding:14px; box-shadow:var(--shadow); border:1px solid #e8e0d7; max-width:440px; transform:rotate(-1.2deg); }
.cover-frame img { display:block; width:100%; }
.feature-copy h2 { color:var(--burgundy); }
.burgundy-button { appearance:none; display:inline-flex; align-items:center; justify-content:center; background:var(--burgundy); color:white; padding:16px 22px; border:1px solid var(--burgundy); border-radius:3px; min-height:48px; font-weight:700; letter-spacing:.025em; text-decoration:none; font-size:13px; transition:background .25s,transform .25s; }
.burgundy-button:hover { background:#730013; transform:translateY(-2px); }
.outline-button { display:inline-flex; align-items:center; justify-content:center; padding:15px 20px; border:1px solid var(--burgundy); background:transparent; color:var(--burgundy); text-decoration:none; min-height:48px; font-size:13px; font-weight:700; border-radius:3px; }
.outline-button:hover { background:rgba(150,2,27,.05); }
.button-row { display:flex; gap:16px; flex-wrap:wrap; margin-top:31px; }
.food-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:95px; }
.food-card { margin:0; }
.food-card img { width:100%; aspect-ratio:1.3; object-fit:cover; display:block; }
.food-card figcaption { font-family:var(--hand); font-size:12px; font-style:italic; color:var(--burgundy); margin-top:12px; text-align:center; }
.about-copy { max-width:790px; }
.about-copy .intro-quote { font-size:clamp(21px,3vw,32px); line-height:1.52; color:var(--burgundy); margin:0 0 30px; }
.about-copy p { max-width:740px; }
.about-sign { font:italic 22px var(--hand); color:var(--burgundy); margin-top:26px; }
.download-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:42px; }
.download-card { border:1px solid var(--line); padding:33px 26px 28px; background:var(--paper); display:flex; flex-direction:column; align-items:flex-start; min-height:328px; }
.download-card .num { font-size:12px; color:var(--burgundy); margin:0 0 36px; }
.download-card h3 { color:var(--burgundy); }
.download-card p { color:var(--muted); font-size:13px; line-height:1.8; flex:1; }
.text-button { background:transparent; padding:0 0 6px; border:0; border-bottom:1px solid var(--burgundy); font-size:13px; font-weight:700; color:var(--burgundy); }
.divider-art { display:flex; align-items:center; gap:18px; margin:65px auto 0; max-width:280px; justify-content:center; }
.divider-art:before,.divider-art:after { content:''; height:1px; width:65px; background:var(--burgundy); }
.divider-art img { width:54px; height:50px; object-fit:contain; }
.contact-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:8vw; }
.preview-form { border:1px solid var(--line); padding:31px; background:var(--paper); }
.preview-form h3 { color:var(--burgundy); }
.field { display:block; font-size:12px; font-weight:700; color:#4d4541; margin:20px 0 7px; }
.preview-form input[type=email], .preview-form input[type=text], .preview-form textarea, .preview-form select { display:block; width:100%; border:1px solid #cdbeba; padding:12px; border-radius:2px; background:#fff; color:#222; font-size:14px; }
.preview-form textarea { min-height:115px; resize:vertical; }
.preview-form .burgundy-button { margin-top:23px; }
.subtle { color:var(--muted); font-size:12px; line-height:1.7; }
.newsletter { background:#f8f6ee; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:68px 28px; }
.newsletter-inner { max-width:1050px; margin:0 auto; display:flex; justify-content:space-between; gap:50px; align-items:center; }
.newsletter h2 { color:var(--burgundy); font-size:clamp(25px,3.1vw,40px); }
.newsletter .signup { width:min(430px,100%); }
.signup-line { display:flex; gap:9px; }
.signup-line input { flex:1; min-width:0; padding:13px 12px; border:1px solid #cdbeba; background:white; }
.signup-line button { flex:none; }
.consent { display:flex; align-items:flex-start; gap:10px; font-size:11px; color:var(--muted); line-height:1.6; margin-top:12px; }
.consent input { flex:none; margin-top:3px; accent-color:var(--burgundy); }
.footer { padding:52px 28px 34px; max-width:1100px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:25px; border-top:1px solid var(--line); }
.footer .brand { display:flex; gap:12px; align-items:center; color:var(--burgundy); font-size:12px; font-weight:700; letter-spacing:.07em; }
.footer img { width:65px; }
.footer .small { color:var(--muted); font-size:11px; line-height:1.7; text-align:right; }
.reset { background:none; color:var(--burgundy); border:0; padding:0; border-bottom:1px solid currentColor; font-size:11px; }
.preview-flag { position:fixed; bottom:17px; right:18px; z-index:15; padding:9px 14px; font-size:10px; color:#6d675f; background:rgba(253,254,247,.95); border:1px solid var(--line); box-shadow:0 6px 20px #00000010; border-radius:30px; opacity:0; pointer-events:none; transition:opacity .5s; }
body.entered .preview-flag { opacity:1; }
.toast { position:fixed; bottom:66px; right:22px; z-index:30; background:var(--ink); color:white; border-radius:5px; padding:14px 19px; box-shadow:0 14px 48px #0003; font-size:12px; max-width:330px; line-height:1.5; opacity:0; transform:translateY(12px); pointer-events:none; transition:opacity .3s,transform .3s; }
.toast.show { opacity:1; transform:translateY(0); }
@keyframes gateOut { 0% { opacity:1; visibility:visible; } 100% { opacity:0; visibility:hidden; } }
@keyframes heartOpen { 0% { transform:scale(1); opacity:1; } 75% { transform:scale(1.24); opacity:.72; } 100% { transform:scale(1.5); opacity:0; } }
@keyframes revealRise { from { transform:translateY(38px); opacity:0; } to { transform:translateY(0); opacity:1; } }
@keyframes softAppear { from { opacity:0; } to { opacity:1; } }
@media (max-width:900px) {
  .desktop-nav { gap:17px; }
  .mini-brand span { display:none; }
  .feature { gap:40px; }
  .download-grid { gap:12px; }
  .download-card { padding:25px 19px; }
}
@media (max-width:700px) {
  .header-inner { min-height:76px; padding:8px 20px; }
  .desktop-nav { display:none; }
  .menu-button { display:block; }
  .reveal-section { min-height:calc(100vh - 76px); }
  .section { padding:70px 24px; scroll-margin-top:76px; }
  .feature { grid-template-columns:1fr; }
  .cover-frame { max-width:390px; margin:auto; }
  .feature-copy { order:-1; }
  .food-strip { gap:10px; margin-top:45px; }
  .food-card figcaption { font-size:10px; }
  .download-grid { grid-template-columns:1fr; }
  .download-card { min-height:230px; }
  .download-card .num { margin-bottom:18px; }
  .contact-layout { grid-template-columns:1fr; }
  .newsletter-inner { flex-direction:column; align-items:stretch; gap:18px; }
  .footer { flex-direction:column; text-align:center; }
  .footer .small { text-align:center; }
  .rail.left,.reveal-section:before { left:8%; }
  .rail.right,.reveal-section:after { right:8%; }
  .heart-start img { width:min(350px,73vw); }
  .signup-line { flex-direction:column; }
  .preview-flag { left:16px; right:auto; bottom:12px; font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* Multipage preview changes */
html { scroll-behavior:auto; }
body { background:#fdfef7; }
#site { display:block; opacity:1; }
body.entered #site { display:block; opacity:1; }
body:not(.home-page) #site { display:block; opacity:1; }
body:not(.home-page) .site-header { opacity:1; transform:none; }
body:not(.home-page) .preview-flag { opacity:1; }
body.home-page:not(.entered) .site-header { visibility:hidden; }
.site-header a[aria-current=page] { border-color:var(--burgundy); }
.site-header { transition:opacity .65s ease,transform .65s ease; }
.mini-brand span { font-family:var(--bookman); }
.logo-text { font-family:var(--bookman); }
.page-hero { min-height:330px; padding:98px 28px 55px; max-width:1100px; margin:auto; border-bottom:1px solid var(--line); }
.page-hero .eyebrow { margin-bottom:12px; }
.page-hero .lede { max-width:760px; }
.page-hero h1 { margin:0 0 30px; }
.title-img { display:block; max-width:100%; height:auto; object-fit:contain; object-position:left center; }
.title-img.taste { width: min(100%, 655px); }
.title-img.about { width: min(100%, 740px); }
.title-img.page-title { width: min(100%, 490px); }
.title-img.food { width: min(100%, 490px); }
.title-img.newsletter-title { width:min(100%,460px); }
.title-img.card-title { width:min(100%, 230px); }
.title-img.contact-title { width:min(100%, 520px); }
.title-img.msg-title { width:min(100%, 250px); }
.title-img.reveal-coming { width:min(100%, 450px); margin:0 auto 6px; }
.coming-year { color:var(--burgundy); font-weight:600; font-size:clamp(38px,5.5vw,82px); line-height:1.05; margin:0 auto 20px; letter-spacing:-.055em; }
.reveal-inner .reveal-line { height:1px; max-width:110px; margin:28px auto; background:var(--burgundy); }
.reveal-inner h1 { margin-bottom:0; }
.reveal-inner .book-title-vector { width:min(100%,480px); margin:20px auto 0; }
.reveal-inner { max-width:900px; }
.feature-copy h2 { margin-bottom:25px; }
.feature-copy h2 img { max-height:125px; }
.card-heading { margin:0 0 22px; }
.section-heading .title-img { margin-bottom:21px; }
.about-layout { display:grid; grid-template-columns: minmax(0,1fr) 260px; gap:65px; align-items:start; }
.about-aside { border-left:1px solid var(--line); padding-left:25px; font-size:14px; color:var(--muted); }
.about-aside img { max-width:190px; width:100%; display:block; margin:0 auto 18px; }
.contact-layout { gap:5vw; }
.download-card .title-img { height:38px; width:auto; max-width:100%; }
.download-card { min-height:305px; }
.home-page .home-intro { padding-top:100px; }
.home-page #entry-gate { z-index:25; }
.footer a { color:var(--burgundy); text-underline-offset:4px; }
.footer { max-width:1100px; }
.back-home-link { color:var(--burgundy); text-decoration:none; border-bottom:1px solid var(--burgundy); padding-bottom:4px; }
.newsletter .newsletter-title { margin:0 0 14px; }
.inline-rules { height:1px; background:var(--line); max-width:900px; margin:auto; }
.preview-notice { max-width:850px; margin:0 auto 28px; text-align:center; color:var(--muted); font-size:12px; }
#site[aria-hidden=true] { display:none; }
@media(max-width:700px){
 .page-hero { padding:70px 24px 35px; min-height:260px; }
 .about-layout { grid-template-columns:1fr; gap:30px; }
 .about-aside { display:none; }
 .title-img.reveal-coming { width:min(100%,370px); }
 .reveal-inner .book-title-vector { width:min(100%,420px); }
 .download-card .title-img { height:34px; }
 .section { padding:72px 24px; }
 .feature-copy h2 img { max-height:100px; }
}

/* V3: approved mixed-case SWM letterforms are SVG outlines; all prose and controls use Bookman. */
button, input, textarea, select, .desktop-nav a, .mobile-nav a, .nav-store, .eyebrow,
.download-card, .field, .pill-link, .footer,
.food-card figcaption, .about-sign { font-family:var(--bookman); }
.mini-brand .mini-wordmark { width:145px; max-height:48px; height:auto; display:block; object-fit:contain; }
.footer .brand .mini-wordmark { width:175px; max-height:55px; height:auto; display:block; object-fit:contain; }
/* The cover is shown only after the existing heart entrance. */
.reveal-section { padding:42px 28px 62px; min-height:calc(100dvh - 88px); }
.book-reveal { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:16px; padding:10px 12px 12px; animation:revealRise 1s ease both; width:100%; }
.book-reveal .eyebrow { margin:0 0 2px; letter-spacing:.18em; }
.reveal-book-frame { width:min(36vw,400px,calc((100dvh - 250px) * .7142857)); max-width:90vw; height:auto; max-height:min(66dvh,650px);
  aspect-ratio:5 / 7; filter:drop-shadow(0 12px 22px rgba(53,27,29,.15)); display:flex; justify-content:center; }
.reveal-book-frame img { display:block; width:100%; height:100%; max-height:min(66dvh,650px); aspect-ratio:5/7; object-fit:contain; }
.book-reveal-caption { margin:3px 0 0; font-size:15px; line-height:1.4; color:var(--muted); }
.book-reveal .pill-link { margin:0; }
.downloads-main { padding-top:84px; }
.download-book-title { margin:0 0 24px; }
.downloads-main .feature { align-items:center; }
.download-card .card-heading { height:60px; flex:none; display:flex; align-items:center; margin-bottom:10px; }
.download-card .title-img.card-title { height:43px; width:auto; }
.download-card:nth-child(2) .title-img.card-title { height:60px; }
@media (max-width:900px){.mini-brand .mini-wordmark{width:110px;}}
@media (max-width:700px){
  .mini-brand .mini-wordmark{width:125px;max-height:41px;}
  .reveal-section { min-height:calc(100dvh - 76px); padding:23px 14px 40px; }
  .reveal-book-frame { width:min(82vw,380px,calc((100dvh - 215px)*.7142857)); }
  .reveal-book-frame,.reveal-book-frame img { max-height:min(62dvh,550px); }
  .downloads-main { padding-top:65px; }
  .downloads-main .feature > div:nth-child(2) { order:-1; }
  .book-reveal { gap:13px; }
  .book-reveal-caption { font-size:13px; }
}

/* V4: use actual supplied cover artwork and spine-derived title images. */
.mini-brand .mini-wordmark{width:280px;max-height:44px;object-fit:contain;}
.footer .brand .mini-wordmark{width:330px;max-height:50px;object-fit:contain;}
.title-img.taste{display:block;width:min(100%,570px);height:auto;}
.download-book-title .title-img.taste{width:min(100%,570px);}
.reveal-book-frame{width:min(42vw,520px,calc((100dvh - 240px) * .7142857));max-height:min(72dvh,760px);}
.reveal-book-frame img{max-height:min(72dvh,760px);}
@media (max-width:900px){.mini-brand .mini-wordmark{width:215px;max-height:36px;}.footer .brand .mini-wordmark{width:260px;max-height:42px;}}
@media (max-width:700px){.mini-brand .mini-wordmark{width:195px;max-height:34px;}.footer .brand .mini-wordmark{width:220px;max-height:38px;}.title-img.taste{width:min(100%,510px);} .reveal-book-frame{width:min(86vw,420px,calc((100dvh - 205px) * .7142857));max-height:min(65dvh,620px);} .reveal-book-frame img{max-height:min(65dvh,620px);}}

/* V6 — restrained title size; same lettering from approved page 1. */
.home-intro .title-img.taste { width:min(100%,340px); height:auto; max-height:none; }
.download-book-title .title-img.taste { width:min(100%,375px); height:auto; max-height:none; }
@media (max-width:700px) {
  .home-intro .title-img.taste { width:min(100%,300px); }
  .download-book-title .title-img.taste { width:min(100%,320px); }
}
