/* The Old Oak Tree: an illustrated woodland storybook, brought carefully into the browser.
   Motion is owned by GSAP (assets/js/main.js); CSS handles only small state transitions. */

@font-face{font-family:Playfair;src:url('../fonts/playfair-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Playfair;src:url('../fonts/playfair-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:DM;src:url('../fonts/dm-sans.ttf?v=2') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}

:root{
  /* Paper and ink */
  --paper:#faf7ef;
  --cream:#f3efe3;
  --linen:#f5efe3;
  --sage:#ebede0;
  --green:#314b39;
  --dark:#22362a;
  --olive:#6c7546;      /* display italics, large text */
  --olive-ink:#545d36;  /* small text on paper (>= 6:1) */
  --gold:#a87d3e;
  --ink:#2a382e;
  --body:#4c5447;
  --muted:#5a6251;
  --line:#dcdccb;
  --error:#963a29;
  --grain:url('../images/paper-grain.webp');

  /* Type */
  --serif:Playfair,Georgia,'Times New Roman',serif;
  --sans:DM,'Segoe UI',Arial,sans-serif;
  --fs-body:clamp(16px,.94rem + .18vw,17.5px);
  --fs-small:15px;
  --fs-label:12px;

  /* Space and shape */
  --gutter:clamp(20px,4.4vw,56px);
  --section:clamp(72px,9vw,124px);
  --radius:6px;
  --shadow-paper:0 1px 0 #ffffff80 inset,0 22px 40px -28px #2b3a2459,0 2px 6px -2px #2b3a241f;

  /* Motion (CSS-side micro feedback only) */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --fast:160ms;
  --base:260ms;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:var(--scroll-offset,104px);scrollbar-gutter:stable;-webkit-text-size-adjust:100%}
@media (max-width:700px){html{scroll-padding-top:var(--scroll-offset,88px)}}
/* Native smooth scrolling only when Lenis is not running, so scrolling is never double-smoothed. */
html:not(.lenis){scroll-behavior:smooth}
body{margin:0;background:var(--paper) var(--grain);font-family:var(--sans);color:var(--ink);font-size:var(--fs-body);line-height:1.72;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
body:has(dialog[open]){overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:progress}
img{max-width:100%;height:auto;display:block}
figure{margin:0}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.035em;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(50px,6.6vw,104px)}
h2{font-size:clamp(38px,4.3vw,62px)}
h3{font-size:clamp(22px,1.7vw,26px);letter-spacing:-.02em;line-height:1.2}
h1 em,h2 em{color:var(--olive);font-weight:400}
p{color:var(--body);text-wrap:pretty}
p+p{margin-top:1em}
ul{margin:0;padding:0}
.container{width:min(1280px,calc(100% - var(--gutter) * 2));margin-inline:auto}
.section{padding-block:var(--section)}
.icon{flex-shrink:0;vertical-align:middle}

/* Labels and supporting type */
.eyebrow{display:block;font-family:var(--sans);font-size:var(--fs-label);line-height:1.5;font-weight:600;letter-spacing:.16em;color:var(--olive-ink);text-transform:uppercase}
.lead{font-family:var(--serif);font-size:clamp(20px,1.6vw,24px);line-height:1.5;letter-spacing:-.01em;color:var(--green)}
.caption{font-size:14px;line-height:1.6;color:var(--muted)}
.centered{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.honeypot{position:absolute;left:-10000px;opacity:0;pointer-events:none}
.skip-link{position:fixed;top:-100px;left:16px;background:var(--green);color:#fff;padding:12px 20px;border-radius:var(--radius);z-index:100}
.skip-link:focus{top:12px}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:2px}
main:focus{outline:none}

/* Buttons: one consistent family */
.button,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:15px;font-weight:500;line-height:1.3;letter-spacing:.005em}
.button{position:relative;min-height:52px;background:var(--green);color:var(--paper);padding:14px 24px;border:1px solid var(--green);border-radius:var(--radius);box-shadow:0 1px 0 #ffffff1f inset,0 10px 20px -14px #1d2e2299;transition:background var(--base) var(--ease-out),transform var(--fast) var(--ease-out),box-shadow var(--base) var(--ease-out)}
.button .icon{width:20px;height:20px;transition:transform var(--base) var(--ease-out)}
.button:hover{background:var(--dark);box-shadow:0 1px 0 #ffffff1f inset,0 14px 26px -14px #1d2e22b3}
.button:hover .icon,.text-link:hover .icon{transform:translateX(3px)}
.button:active{transform:translateY(1px) scale(.985)}
.button-small{min-height:44px;padding:10px 18px;font-size:14px}
.button-outline{background:transparent;color:var(--green);border-color:#a9b398;box-shadow:none}
.button-outline:hover{background:#e7eadc;color:var(--green);box-shadow:none}
.button-cream{background:var(--paper);color:var(--green);border-color:var(--paper)}
.button-cream:hover{background:#ece9da;color:var(--green)}
.button[aria-busy="true"] .icon{animation:oak-pulse 1s ease-in-out infinite}
.button-group{display:flex;gap:12px 28px;align-items:center;flex-wrap:wrap}
.text-link{min-height:44px;border:0;background:transparent;padding:8px 0;color:var(--green);gap:10px}
.text-link .icon{width:21px;height:21px;transition:transform var(--base) var(--ease-out)}
.text-link:not(.underlined){background:linear-gradient(currentColor,currentColor) left calc(100% - 6px)/0 1px no-repeat;transition:background-size var(--base) var(--ease-out)}
.text-link:not(.underlined):hover{background-size:100% 1px}
.underlined{border-bottom:1px solid currentColor;padding-bottom:6px}
@keyframes oak-pulse{50%{opacity:.35}}

/* Announcement and header */
.announcement{background:var(--green);color:#eeeedd;font-size:13px;letter-spacing:.02em}
.announcement .container{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px}
.announcement span{display:flex;align-items:center;gap:9px}
.announcement .icon{height:16px;width:16px;color:#cdd4ad}
.announcement a{display:flex;gap:10px;align-items:center;padding:6px 0;text-underline-offset:4px}
.announcement a:hover{text-decoration:underline}
.site-header{position:sticky;top:0;z-index:30;background:#faf7eff2;-webkit-backdrop-filter:saturate(1.2) blur(10px);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid transparent;transition:border-color var(--base),box-shadow var(--base)}
.site-header.is-scrolled{border-bottom-color:#dcdccb99;box-shadow:0 10px 24px -22px #23382a80}
.header-inner{height:84px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}
.brand img{object-fit:contain;width:50px;height:50px;transition:transform .5s var(--ease-out)}
.brand:hover img{transform:rotate(-6deg)}
.brand-type{font-family:var(--serif);font-size:23px;line-height:1.2;letter-spacing:-.04em;color:var(--ink)}
.brand-type small{display:block;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.1em;line-height:1.6;margin-top:3px;color:var(--olive-ink)}
.primary-nav{display:flex;align-items:center;gap:clamp(14px,1.7vw,26px)}
.primary-nav>a:not(.button){font-size:15px;white-space:nowrap;position:relative;padding:10px 0;color:var(--ink);transition:color var(--fast)}
.primary-nav>a:not(.button)::after{content:'';height:1px;position:absolute;bottom:5px;left:0;right:0;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--base) var(--ease-out)}
.primary-nav>a:not(.button):hover::after,.primary-nav>a[aria-current]:not(.button)::after{transform:scaleX(1);transform-origin:left}
.primary-nav>a[aria-current]:not(.button){color:var(--olive-ink)}
.primary-nav .button{margin-left:6px}
.menu-toggle{display:none!important}
.icon-button{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--green);transition:background var(--fast),border-color var(--fast),transform var(--fast) var(--ease-out)}
.icon-button:hover{background:#efefe2;border-color:#c4cbb2}
.icon-button:active{transform:scale(.94)}
.menu-lines{position:relative;width:18px;height:12px}
.menu-lines span{position:absolute;left:0;right:0;height:1.5px;background:currentColor;border-radius:2px;transition:transform var(--base) var(--ease-out),opacity var(--fast)}
.menu-lines span:nth-child(1){top:0}
.menu-lines span:nth-child(2){top:5px}
.menu-lines span:nth-child(3){top:10px}
.menu-toggle[aria-expanded="true"] .menu-lines span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-lines span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .menu-lines span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.flash{background:#e3eadb;padding:16px 22px;margin-block:16px;font-size:15px;border-radius:var(--radius);border-left:3px solid var(--olive)}

/* Hero: the opening spread */
.hero{position:relative;isolation:isolate;overflow:hidden;background:#f5f1e6 var(--grain);min-height:clamp(620px,calc(100svh - 122px),860px);-webkit-mask:linear-gradient(#000,#000) top/100% calc(100% - 17px) no-repeat,url('../images/deckle-bottom.svg') bottom/1200px 18px repeat-x;mask:linear-gradient(#000,#000) top/100% calc(100% - 17px) no-repeat,url('../images/deckle-bottom.svg') bottom/1200px 18px repeat-x}
.hero-art{position:absolute;inset:0 0 0 37%;z-index:-1;overflow:hidden;--fade-x:linear-gradient(90deg,#0000 0%,#0006 9%,#000 34%);--fade-y:linear-gradient(0deg,#0000 0%,#000 15%);-webkit-mask:var(--fade-x),var(--fade-y);-webkit-mask-composite:source-in;mask:var(--fade-x),var(--fade-y);mask-composite:intersect}
.hero-art img{width:100%;height:100%;object-fit:cover;object-position:62% 52%;transform-origin:60% 40%}
.hero-inner{position:relative;min-height:inherit;display:flex;align-items:center}
.hero-copy{padding:64px 0 96px;width:50%;max-width:600px}
.hero .eyebrow{display:flex;align-items:center;gap:12px}
.little-line{width:30px;height:1px;background:var(--gold);display:inline-block}
.hero-title{margin:22px 0 24px;font-size:clamp(58px,7.3vw,108px);line-height:.98;letter-spacing:-.055em}
.hero-title .line{display:block;overflow:hidden;padding:0 .12em .1em 0;margin-right:-.12em}
.hero-title .line>*{display:inline-block}
.hero-title em{color:#64703f}
.hero-subtitle{font-family:var(--serif);font-size:clamp(21px,1.8vw,26px);color:#3f4b39;line-height:1.42;letter-spacing:-.015em}
.hero-description{font-size:17px;max-width:400px;margin-top:16px;line-height:1.7}
.hero .button-group{margin-top:32px}
.hero-author{display:flex;gap:12px;margin-top:36px;align-items:center;font-size:15px;color:#3f4b39;line-height:1.4}
.hero-author img{width:46px;height:46px;object-fit:cover;object-position:50% 25%;border-radius:50%;border:3px solid #fffcf3;box-shadow:0 4px 10px -4px #2b3a2466}
.hero-author span{display:block;font-size:14px;color:var(--muted);margin-top:2px}
.hero-book-note{position:absolute;right:0;bottom:64px;background:#fbf8f0;border:1px solid #e7e2d1;box-shadow:var(--shadow-paper);display:flex;align-items:center;gap:16px;padding:14px 20px 14px 14px;border-radius:4px;transition:transform var(--base) var(--ease-out),box-shadow var(--base)}
.hero-book-note:hover{transform:translateY(-3px);box-shadow:0 1px 0 #fff inset,0 28px 44px -26px #2b3a2473}
.hero-book-note>img{width:60px;height:61px;object-fit:cover;box-shadow:2px 3px 6px #0003,-3px 0 0 #3d2c1c;transform:rotate(-4deg);border-radius:1px 2px 2px 1px}
.hero-book-note span{font-family:var(--serif);font-size:22px;line-height:1.3;letter-spacing:-.03em;color:var(--ink)}
.hero-book-note small{font-family:var(--sans);display:block;font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--olive-ink);margin-bottom:3px}
.hero-book-note em{display:block;font-family:var(--sans);font-size:13px;letter-spacing:0;font-style:normal;color:var(--muted);margin-top:2px}
.hero-book-note>.icon{margin-left:6px;width:20px;color:var(--green);transition:transform var(--base) var(--ease-out)}
.hero-book-note:hover>.icon{transform:translateX(3px)}
.hero-scroll{position:absolute;bottom:30px;left:max(var(--gutter),calc((100% - 1280px) / 2));display:flex;align-items:center;gap:12px;min-height:44px;padding:0 6px;color:#46533f}
.hero-scroll span:first-child{font-size:12px;font-weight:600;letter-spacing:.16em}
.hero-scroll-mark{font-size:18px}
/* Hero entrance is hidden only until GSAP takes over; a fail-safe reveals it if scripts never run. */
.motion-ok:not(.hero-ready) [data-hero-item],.motion-ok:not(.hero-ready) [data-hero-line],.motion-ok:not(.hero-ready) .page-intro>*,.motion-ok:not(.hero-ready) .collection-intro-copy>*{opacity:0;animation:oak-failsafe 0s 2.6s forwards}
@keyframes oak-failsafe{to{opacity:1}}

/* Themes line: a quiet colophon instead of feature badges */
.themes-line{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:12px clamp(24px,4vw,64px);padding:34px var(--gutter) 6px;margin-top:-6px}
.themes-line li{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-style:italic;font-size:19px;color:#45523f;letter-spacing:-.01em}
.themes-line .icon{width:20px;height:20px;color:var(--olive)}

/* Featured book */
.book-section{position:relative}
.book-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(48px,7vw,112px);align-items:center}
.book-stage,.book-scene{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;border-radius:48% 48% 8px 8px / 34% 34% 8px 8px;background:radial-gradient(120% 70% at 50% 18%,#f6f6ec 0%,#e8ecdf 58%,#dde3d2 100%);box-shadow:inset 0 0 0 1px #c9d0bb66}
.book-stage::before,.book-scene::before{content:'';position:absolute;inset:16px;border:1px solid #bfc8ad80;border-radius:inherit;z-index:-1;pointer-events:none}
.book-stage::after,.book-scene::after{content:'';position:absolute;left:0;right:0;bottom:0;height:24%;border-radius:0 0 8px 8px;background:linear-gradient(180deg,#d6dcc800,#d3d9c3b3 40%,#cfd6bf);z-index:-1;pointer-events:none}
.book-stage{aspect-ratio:5/6;max-height:720px;width:100%;padding:56px 32px 36px}
.scene-label{font-size:var(--fs-label);font-weight:600;letter-spacing:.16em;color:var(--olive-ink);text-align:center}
.book-mount{position:relative;flex:1;width:100%;display:flex;align-items:center;justify-content:center;margin:18px 0 12px;min-height:0}
.book-canvas{position:absolute;inset:-6% -8% -4%;width:116%!important;height:110%!important;opacity:0;transition:opacity .9s var(--ease-out);touch-action:pan-y}
.book-stage.is-3d .book-canvas{opacity:1}
.book-stage.is-3d .book-object{opacity:0}
.book-caption{font-family:var(--serif);font-style:italic;font-size:18px;color:#4f5a46;text-align:center;text-wrap:balance}
.book-sticker{position:absolute;right:clamp(-18px,-1.4vw,-6px);top:15%;display:flex;flex-direction:column;justify-content:center;background:#f4ecd2 var(--grain);padding:18px 22px 18px 30px;font-family:var(--serif);line-height:1.35;font-size:18px;color:var(--ink);transform:rotate(5deg);box-shadow:var(--shadow-paper);border-radius:2px}
.book-sticker::before{content:'';position:absolute;left:11px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#e4dcc0;box-shadow:inset 0 1px 2px #6b5a3366}
.book-sticker em{color:var(--olive);font-size:16px}

/* CSS-only book: static fallback on the home stage and the book page */
.book-css3d{perspective:1500px;width:min(64%,360px);--rx:3deg;--ry:-24deg}
.book-object{position:relative;width:min(62%,330px);transform-style:preserve-3d;transition:opacity .6s var(--ease-out)}
.book-css3d .book-object{width:100%;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s var(--ease-out)}
.book-object img{position:relative;width:100%;aspect-ratio:1092/1102;background:#5b452c url('../images/book-cover-640.webp') center/cover;border-radius:2px 4px 4px 2px;box-shadow:inset 4px 0 6px #0000001a;transform:translateZ(11px)}
.book-object::before{content:'';position:absolute;top:1.6%;bottom:1.6%;right:0;width:22px;transform-origin:right center;transform:translateZ(11px) rotateY(90deg);background:repeating-linear-gradient(90deg,#f1e8d2 0 1.5px,#dccfb1 1.5px 2.5px);box-shadow:inset 0 0 6px #6b5a3333}
.book-object::after{content:'';position:absolute;inset:0;background:#e9e4d2;border-radius:2px 4px 4px 2px;transform:translateZ(-11px);box-shadow:18px 26px 34px -8px #2b3a2459,6px 8px 10px -4px #2b3a2440}
.book-stage:not(.is-3d) .book-object{transform:perspective(1500px) rotateX(3deg) rotateY(-20deg)}
.book-section .section-copy>.button-group{margin-top:32px}

/* Section copy */
.section-copy .eyebrow{margin-bottom:20px}
.section-copy h2{margin-bottom:24px}
.section-copy .lead{margin-bottom:22px}
.section-copy>p{font-size:var(--fs-body);max-width:560px}
.section-copy>.button{margin-top:32px}
.dedication{display:flex;gap:10px;align-items:center;font-size:15px;color:var(--muted);margin-top:28px}
.dedication .icon{width:17px;height:17px;color:var(--olive)}

/* Quote band */
.quote-band{background:#efeee2 var(--grain);position:relative;text-align:center;border-block:1px solid #e3e2d3}
.quote-band .container{padding-block:clamp(56px,7vw,92px)}
.quote-band img{width:52px;height:52px;object-fit:contain;margin:0 auto 22px}
.quote-band p{font-family:var(--serif);font-size:clamp(27px,3vw,42px);line-height:1.4;color:#3e4f36;letter-spacing:-.025em;max-width:960px;margin-inline:auto}
.quote-band em{color:var(--olive)}
.quote-band span{display:block;font-size:var(--fs-label);font-weight:600;letter-spacing:.2em;color:var(--olive-ink);margin-top:24px}

/* Author */
.author-section{background:var(--linen) var(--grain);overflow:hidden}
.author-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(48px,8vw,128px);align-items:center}
.author-photo-wrap{position:relative;max-width:460px;width:100%;padding:12px 18px 28px;justify-self:center}
.photo-border{position:relative;padding:12px 12px 14px;background:#fffcf4;transform:rotate(-3deg);box-shadow:0 2px 4px #463e2814,0 24px 40px -24px #463e2873}
.photo-border::before{content:'';position:absolute;top:-14px;left:50%;width:120px;height:30px;margin-left:-60px;background:#eae3cbcc;transform:rotate(2deg);box-shadow:0 1px 2px #6b5a331f;z-index:1}
.photo-border img{width:100%;aspect-ratio:6/7;height:auto;object-fit:cover;object-position:50% 32%;filter:saturate(.86) sepia(.06)}
.photo-note{font-family:var(--serif);font-size:21px;font-style:italic;color:#59633f;display:block;text-align:center;margin-top:24px;transform:rotate(-3deg)}
.photo-botanical{position:absolute;width:132px;height:132px;object-fit:contain;right:-40px;bottom:-4px;transform:rotate(18deg);pointer-events:none}
.author-section .section-copy{padding-block:12px}
.author-section .underlined{margin-top:28px}

/* BSL edition */
.bsl-section{background:var(--green) var(--grain);color:#f5f4e8;padding-block:calc(var(--section) + 8px) var(--section);overflow:hidden;position:relative;-webkit-mask:linear-gradient(#000,#000) bottom/100% calc(100% - 17px) no-repeat,url('../images/deckle-top.svg') top/1200px 18px repeat-x;mask:linear-gradient(#000,#000) bottom/100% calc(100% - 17px) no-repeat,url('../images/deckle-top.svg') top/1200px 18px repeat-x}
.bsl-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(48px,7vw,112px);align-items:center}
.bsl-section h2{color:#f7f5e9}
.bsl-section .eyebrow{color:#cfd5b2}
.bsl-section h2 em{color:#c9cfa6}
.bsl-section p{color:#dfe3d4}
.bsl-section .lead{color:#eceedf;font-size:clamp(21px,1.8vw,25px)}
.bsl-section .prose a:not(.button){color:#fff}
.status-pill{display:inline-flex;gap:10px;align-items:center;font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;padding:8px 14px;border:1px solid #c7cfa966;border-radius:999px;color:#e6e9d3;margin:0 0 26px}
.status-pill>span,.status-dot{width:8px;height:8px;border-radius:50%;background:#d6dc9f;box-shadow:0 0 0 4px #d6dc9f26;flex-shrink:0;display:inline-block}
.status-pill.light{color:var(--green);margin:28px 0 0;border-color:#b9c2a6;background:#eef0e3}
.status-pill.light>span{background:#8f9a55;box-shadow:0 0 0 4px #8f9a5526}
.bsl-points{list-style:none;display:grid;gap:12px;margin:6px 0 26px}
.bsl-points li{display:flex;align-items:center;gap:16px;font-family:var(--serif);font-size:clamp(20px,1.6vw,23px);line-height:1.3;color:#f7f5e9;letter-spacing:-.01em}
.bsl-points .icon{width:44px;height:44px;padding:10px;border:1px solid #c7cfa966;border-radius:50%;color:#dfe4c0;stroke-width:1.5}
.bsl-section .section-copy>.button{margin-top:30px}
.development-note{display:flex;align-items:center;gap:12px;font-size:15px;color:#eef0e2!important;margin-top:22px}
.bsl-visual{position:relative;padding:24px 0 40px}
.bsl-frame{position:relative;transform:rotate(2.5deg);background:#ece6cf;padding:10px;box-shadow:0 30px 50px -26px #0b1a1299,0 3px 8px #0b1a1233;border-radius:2px}
.bsl-frame img{width:100%;max-height:480px;object-fit:cover}
.bsl-caption{display:flex;align-items:center;gap:16px;position:absolute;left:-28px;bottom:6px;background:#f2ecd9 var(--grain);color:var(--green);padding:18px 26px;box-shadow:0 14px 26px -12px #0b1a1280;transform:rotate(-2deg);font-size:16px;line-height:1.5;border-radius:2px}
.bsl-caption strong{font-weight:600}
.bsl-caption .icon{width:32px;height:32px;color:var(--olive)}
.bsl-visual>.caption{font-size:14px;color:#dfe4d3;margin-top:56px;text-align:center}

/* Shared section heading */
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:48px}
.section-heading .eyebrow{margin-bottom:18px}
.section-heading>p{font-size:16px;line-height:1.75;max-width:380px;padding-bottom:6px}

/* Reading corner */
.reading-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.6vw,36px)}
.reading-card{display:block;padding-bottom:12px;border-radius:var(--radius)}
.reading-card-art{height:210px;position:relative;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 1px #00000008;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.reading-card-art>.icon{width:74px;height:74px;stroke-width:.8;transition:transform .7s var(--ease-out)}
.reading-card-art::before,.reading-card-art::after{content:'';position:absolute;border:1px solid #ffffff8c;border-radius:50%;height:250px;width:250px;top:30px;left:calc(50% - 125px)}
.reading-card-art::after{height:206px;width:206px;top:52px;left:calc(50% - 103px)}
.reading-card-art span{position:absolute;bottom:16px;font-size:12px;font-weight:600;letter-spacing:.14em}
.nature-art{background:#e3e8d4 var(--grain);color:#5d6f47}
.heart-art{background:#efe0d1 var(--grain);color:#8a6a4e}
.sprout-art{background:#eae6cf var(--grain);color:#6e7342}
.card-category{display:block;font-size:var(--fs-label);font-weight:600;letter-spacing:.15em;color:var(--olive-ink);margin:24px 0 10px}
.reading-card h3{font-size:clamp(23px,1.8vw,27px)}
.reading-card p{font-size:16px;margin-top:12px;max-width:340px;line-height:1.7}
.reading-card .text-link{margin-top:10px;font-size:15px;justify-content:flex-start}

/* Newsletter */
.newsletter-section{background:#eeeedf var(--grain);border-top:1px solid #e1e2d1;overflow:hidden}
.newsletter-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(48px,6vw,80px)}
.newsletter-art{position:relative}
.newsletter-art img{mix-blend-mode:multiply;-webkit-mask-image:radial-gradient(ellipse at center,#000 46%,transparent 72%);mask-image:radial-gradient(ellipse at center,#000 46%,transparent 72%);width:100%;transform:scale(1.08)}
.newsletter-copy .eyebrow{margin-bottom:18px}
.newsletter-copy h2{font-size:clamp(40px,4vw,54px)}
.newsletter-copy>p{font-size:17px;max-width:460px;margin-top:20px}
.newsletter-form{margin-top:26px;max-width:540px;position:relative}
.email-row{display:flex;border:1px solid #b6bea1;border-radius:var(--radius);padding:5px;background:#fbf9f2;transition:border-color var(--fast),box-shadow var(--base)}
.email-row:focus-within{border-color:var(--olive);box-shadow:0 0 0 4px #6c754626}
.email-row input{width:100%;min-width:0;border:0;background:transparent;padding:10px 14px;font-size:16px;outline:none}
.email-row .button{min-height:46px;padding:10px 18px;gap:10px;font-size:15px;white-space:nowrap}
.consent{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:var(--muted);line-height:1.6;margin:16px 0 0;cursor:pointer}
.consent input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--green);flex-shrink:0;cursor:pointer}
.consent a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}
.form-status{display:flex;align-items:flex-start;gap:10px;font-size:15px!important;color:var(--green);margin-top:16px;padding:12px 14px;border-radius:var(--radius);background:#e5ebdb;line-height:1.5}
.form-status::before{content:'';flex-shrink:0;width:18px;height:18px;margin-top:2px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/contain no-repeat}
.form-status.is-pending{background:transparent;color:var(--muted);padding-inline:0}
.form-status.is-pending::before{display:none}
.form-status:empty{display:none}
.form-status.error{color:var(--error);background:#f4e4dc}
.form-status.error::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6m0 4h.01'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6m0 4h.01'/%3E%3C/svg%3E")}

/* Footer */
.site-footer{background:#f8f5ec var(--grain);padding:64px 0 0;border-top:1px solid #e6e4d6}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr .8fr;gap:48px;padding-bottom:44px}
.footer-intro .brand-type{font-size:24px}
.footer-intro .brand img{width:50px;height:50px}
.footer-intro p{font-size:15px;margin-top:20px;line-height:1.75}
.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding-top:6px}
.footer-links .eyebrow{margin-bottom:10px}
.footer-links a{font-size:15px;color:#455040;padding:10px 0;background:linear-gradient(currentColor,currentColor) left calc(100% - 6px)/0 1px no-repeat;transition:background-size var(--base) var(--ease-out)}
.footer-links a:hover{background-size:100% 1px}
.publisher{padding-top:6px;display:flex;flex-direction:column;align-items:center;gap:6px}
.publisher img{width:132px;height:132px;object-fit:contain}
.footer-bottom{border-top:1px solid #dddfd0;display:flex;gap:24px;justify-content:space-between;align-items:center;font-size:14px;color:var(--muted);padding:20px 64px 20px 0}
.footer-bottom a{padding:8px 0;text-decoration:underline;text-underline-offset:3px}
.footer-note{display:flex;gap:8px;align-items:center;font-family:var(--serif);font-style:italic;font-size:16px}
.footer-note .icon{width:18px;height:18px;color:var(--olive)}
.back-top{position:fixed;right:22px;bottom:22px;z-index:20;width:50px;height:50px;box-shadow:0 8px 22px -8px #243e2459;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity var(--base),transform var(--base) var(--ease-out),background var(--fast)}
.back-top.visible{opacity:1;pointer-events:auto;transform:none}
.back-top-icon{transform:rotate(-90deg);width:20px;height:20px}

/* Inner pages: title-page introductions */
.page-intro{text-align:center;padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(56px,6vw,84px)}
.intro-ornament{width:52px;height:52px;margin:0 auto 18px;object-fit:contain}
.page-intro>.eyebrow{margin-bottom:20px}
.page-intro h1{font-size:clamp(48px,6vw,86px);line-height:1.08}
.page-intro>p{font-size:clamp(17px,1.4vw,19px);line-height:1.7;margin:24px auto 0;max-width:680px}
.page-intro>.button{margin-top:28px}

/* Book page */
.book-detail{padding-top:12px}
.book-scene{min-height:600px;gap:44px;justify-content:center;padding:64px 32px 44px}
.book-detail .section-copy h2{font-size:clamp(36px,3.4vw,48px)}
.prose p{font-size:var(--fs-body);line-height:1.8}
.prose a:not(.button){text-decoration:underline;text-underline-offset:3px}
.prose h2{font-size:clamp(28px,2.6vw,36px);margin:44px 0 18px}
.prose h2:first-child{margin-top:0}
.section-copy.prose h2{margin-top:0}
.pale-section{background:#efeee3 var(--grain)}
.split-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,104px);align-items:center}

/* An open book: two real pages with a gutter, page stack and gentle curvature */
.page-spread{position:relative;display:grid;grid-template-columns:1fr 1fr;max-width:1000px;margin:0 auto;perspective:2200px;padding-bottom:8px}
.page-spread::before{content:'';position:absolute;inset:6px -8px 0;background:#e9e1cb;border-radius:3px;box-shadow:0 1px 0 #d4c9aa,0 3px 0 #efe8d4,0 4px 0 #cfc3a3,0 34px 50px -30px #283d2a73;z-index:-1}
.spread-page{position:relative;background:#fbf7ec}
.spread-page img{width:100%}
.spread-left{transform-origin:right center;box-shadow:inset -1px 0 0 #00000014}
.spread-right{transform-origin:left center}
.spread-page::after{content:'';position:absolute;inset:0;pointer-events:none}
.spread-left::after{background:linear-gradient(90deg,#0000 70%,#5a4a2a14 90%,#3a2c1433 100%)}
.spread-right::after{background:linear-gradient(270deg,#0000 72%,#5a4a2a12 90%,#3a2c142e 100%)}
.page-spread+.caption{margin-top:28px}

.narrow{max-width:840px}
.narrow>.eyebrow{margin-bottom:20px}
.faq-list{margin-top:40px;border-top:1px solid #d6dbca}
details{border-bottom:1px solid #d6dbca}
summary{list-style:none;display:flex;justify-content:space-between;gap:24px;align-items:center;min-height:64px;padding:16px 0;font-size:18px;font-weight:500;cursor:pointer;color:var(--ink);transition:color var(--fast)}
summary:hover{color:var(--olive-ink)}
summary::-webkit-details-marker{display:none}
summary>span{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;font-size:22px;font-weight:400;line-height:1;color:var(--olive-ink);transition:transform var(--base) var(--ease-out),background var(--fast);flex-shrink:0}
summary:hover>span{background:#eef0e3}
details[open] summary>span{transform:rotate(45deg)}
.details-body{overflow:hidden}
details p{padding-bottom:22px;font-size:16px;line-height:1.8;max-width:700px}
details a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}
.closing-cta{padding-block:clamp(56px,6vw,84px) clamp(72px,8vw,108px);text-align:center}
.closing-cta h2{margin:20px 0 28px;font-size:clamp(36px,3.6vw,50px)}
.closing-cta>p{max-width:600px;margin:0 auto 28px;font-size:17px}
.story-continuation{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,104px)}
.story-continuation h2{margin:20px 0 22px}
.story-continuation>div>p{font-size:var(--fs-body);max-width:460px}
.story-continuation .text-link{margin-top:20px}

.feature-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,56px)}
.feature-columns>div{border-top:1px solid #c9cfba;padding-top:30px}
.feature-columns .icon{height:40px;width:40px;color:var(--olive);margin-bottom:22px}
.feature-columns h3{margin-bottom:14px}
.feature-columns p{font-size:16px}

/* Reading corner page */
.activity-nav{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:28px}
.activity-nav a{display:flex;align-items:center;gap:10px;font-size:15px;min-height:46px;padding:10px 20px;border:1px solid var(--line);border-radius:999px;background:#fbf9f2;transition:background var(--fast),border-color var(--fast)}
.activity-nav a:hover{background:#eef0e3;border-color:#c4cbb2}
.activity-nav .icon{width:19px;height:19px;color:var(--olive)}
.activity-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:clamp(40px,7vw,96px);align-items:center}
.activity-illustration img{border-radius:240px 240px 6px 6px;box-shadow:var(--shadow-paper)}
.activity-section h2{margin:20px 0 22px;font-size:clamp(38px,3.6vw,50px)}
.activity-steps{padding-left:26px;margin:26px 0;color:var(--body);font-size:var(--fs-body)}
.activity-steps li{padding-left:10px;margin-bottom:20px}
.activity-steps li::marker{color:var(--olive);font-family:var(--serif);font-size:22px}
.activity-steps strong{display:block;font-weight:600;color:var(--green)}
.activity-prompt{border-left:2px solid #a6b086;padding:14px 22px;background:#efefe2;font-size:15px;color:var(--muted);border-radius:0 var(--radius) var(--radius) 0}
.activity-prompt em{display:block;font-family:var(--serif);font-size:21px;color:var(--green);margin-top:6px}
.conversation-prompts details:first-child{border-top:1px solid #d6dbca}
.conversation-prompts summary{font-size:19px}
.large-icon{width:66px;height:66px;color:var(--olive);margin-top:26px}

/* Contact */
.contact-section{padding-top:0}
.contact-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,7vw,100px);max-width:1140px}
.contact-aside{padding:28px 0}
.contact-aside>img{width:84px;height:84px;margin-bottom:22px;object-fit:contain}
.contact-aside h2{font-size:clamp(36px,3.4vw,46px);margin-bottom:24px}
.contact-aside>p{font-size:16px;max-width:360px}
.contact-topics{display:flex;flex-direction:column;gap:14px;margin:30px 0}
.contact-topics span{display:flex;align-items:center;gap:12px;font-size:16px;color:#45523f}
.contact-topics .icon{width:22px;height:22px;color:var(--olive)}
.contact-aside .caption{font-size:15px}
.contact-aside a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}
.contact-form{background:#efeee3 var(--grain);border:1px solid #e1e3d3;padding:clamp(24px,3.4vw,44px);border-radius:var(--radius);position:relative;box-shadow:var(--shadow-paper)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{margin-bottom:22px}
.field label{font-size:15px;display:block;font-weight:500;margin-bottom:8px;color:var(--ink)}
.field label span{color:#8a6326}
.field input,.field select,.field textarea{width:100%;border:1px solid #c9cfba;border-radius:var(--radius);background:#fbfaf3;padding:13px 14px;color:var(--ink);font-size:16px;transition:border-color var(--fast),box-shadow var(--base),background var(--fast)}
.field select{appearance:none;background:#fbfaf3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23314b39' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center/18px no-repeat;padding-right:44px;cursor:pointer}
.field input::placeholder,.field textarea::placeholder{color:#7c8170}
.field textarea{resize:vertical;min-height:170px}
.field input:hover,.field textarea:hover,.field select:hover{border-color:#aab394}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--olive);box-shadow:0 0 0 4px #6c754626;background:#fff}
.field input:user-invalid,.field textarea:user-invalid{border-color:var(--error);box-shadow:0 0 0 3px #963a291a}
.contact-form>.button{margin-top:26px}
.contact-form .consent{font-size:14px}

/* Book preview dialog */
.preview-dialog{border:0;border-radius:10px;width:min(900px,94vw);max-height:94dvh;padding:28px;background:var(--paper) var(--grain);color:var(--green);box-shadow:0 30px 100px #12221866;overflow:auto;overscroll-behavior:contain}
.preview-dialog::backdrop{background:#17281dd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.preview-top{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:22px}
.preview-top h2{font-size:clamp(23px,2.4vw,30px);letter-spacing:-.03em;margin-top:6px}
.preview-top .icon-button{flex-shrink:0}
.preview-stage{position:relative;background:#ece8d9;display:flex;justify-content:center;border-radius:4px;perspective:1800px;overflow:hidden;padding:16px;box-shadow:inset 0 0 0 1px #00000008}
.preview-page{position:relative;transform-origin:left center;box-shadow:0 18px 30px -18px #2b3a2480,0 2px 4px #2b3a241a;background:#fbf7ec}
.preview-page::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#3a2c1424 0%,#0000 9%);pointer-events:none}
.preview-stage img{max-height:min(64vh,640px);width:auto;max-width:100%;object-fit:contain}
.preview-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}
.preview-counter{font-size:15px;color:var(--muted)}
.preview-button{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:10px 18px;border:1px solid #c4cbb2;border-radius:999px;background:transparent;font-size:15px;color:var(--green);transition:background var(--fast),transform var(--fast) var(--ease-out)}
.preview-button:hover{background:#eceee1}
.preview-button:active{transform:scale(.97)}

/* Responsive */
@media (min-width:1600px){
  .hero-art{left:40%}
  .hero-book-note{right:-24px}
}

@media (max-width:1240px){
  .primary-nav>a:not(.button){font-size:14px}
  .brand-type{font-size:21px}
  .hero-copy{width:53%}
  .book-sticker{font-size:16px;padding:14px 18px 14px 26px}
}

@media (max-width:1140px){
  .themes-line{display:grid;grid-template-columns:repeat(2,max-content);justify-content:center;column-gap:56px}
  .header-inner{height:78px}
  .menu-toggle{display:inline-flex!important}
  .primary-nav{position:absolute;top:100%;left:0;right:0;background:var(--paper) var(--grain);padding:12px var(--gutter) 28px;border-bottom:1px solid var(--line);box-shadow:0 24px 30px -24px #243b2859;display:none;align-items:stretch;gap:0;max-height:calc(100dvh - 78px);overflow:auto}
  .primary-nav.is-open{display:flex;flex-direction:column}
  .primary-nav>a:not(.button){font-family:var(--serif);font-size:24px;letter-spacing:-.02em;padding:12px 2px;border-bottom:1px solid #e3e3d4;min-height:56px;display:flex;align-items:center}
  .primary-nav>a:not(.button)::after{display:none}
  .primary-nav>a[aria-current]:not(.button){color:var(--olive)}
  .primary-nav .button{margin:20px 0 0;align-self:flex-start}
  .hero-copy{padding:56px 0 92px}
  .hero-description{max-width:360px}
  .hero-art{left:34%;--fade-x:linear-gradient(90deg,#0000 0%,#0005 16%,#000 46%)}
  .hero-art img{object-position:66% 50%}
  .split-layout,.author-layout,.bsl-layout,.book-layout{gap:52px}
  .footer-top{grid-template-columns:1.3fr 1fr 1fr;gap:36px}
  .publisher{grid-column:1/-1;flex-direction:row;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px}
  .publisher img{width:96px;height:96px}
}

@media (max-width:900px){
  .hero-copy{width:58%}
  .hero-title{font-size:clamp(54px,8.4vw,80px)}
  .hero .button-group{flex-direction:column;align-items:flex-start;gap:6px}
  .hero-book-note{bottom:56px;padding:12px;gap:12px}
  .hero-book-note span{font-size:19px}
  .hero-book-note>img{width:48px;height:49px}
  .hero-book-note>.icon{display:none}
  .book-layout,.split-layout,.author-layout,.bsl-layout,.story-continuation,.contact-layout,.activity-layout,.newsletter-layout{grid-template-columns:1fr}
  .book-stage{max-width:560px;margin-inline:auto;max-height:none}
  .book-scene{max-width:560px;width:100%;margin-inline:auto;min-height:520px}
  .author-photo-wrap{max-width:400px}
  .bsl-visual{max-width:520px;margin:0 auto;width:92%}
  .newsletter-art{max-width:440px;margin:auto}
  .newsletter-art img{max-height:300px;object-fit:cover}
  .reading-grid{grid-template-columns:1fr;gap:28px}
  .reading-card{display:grid;grid-template-columns:minmax(150px,34%) 1fr;gap:0 24px;align-items:start;padding-bottom:28px;border-bottom:1px solid var(--line)}
  .reading-card-art{grid-column:1;grid-row:1/5;height:100%;min-height:180px}
  .card-category{margin-top:4px}
  .feature-columns{grid-template-columns:1fr;gap:8px}
  .section-heading{display:block;margin-bottom:34px}
  .section-heading>p{margin-top:18px}
  .section-heading>.text-link{margin-top:14px}
  .activity-illustration{max-width:480px;margin:auto}
}

@media (max-width:700px){
  :root{--fs-label:12px}
  .announcement .container{justify-content:center;min-height:36px}
  .announcement a{display:none}
  .header-inner{height:70px}
  .brand img{width:42px;height:42px}
  .brand-type{font-size:20px}
  .brand-type small{font-size:12px;letter-spacing:.06em}
  .primary-nav{max-height:calc(100dvh - 70px)}
  .hero{min-height:0;display:flex;flex-direction:column}
  .hero-inner{display:block;padding-top:36px;padding-bottom:0;position:static;order:0}
  .hero-copy{padding:0;width:100%;max-width:none}
  .hero-title{font-size:clamp(52px,15vw,68px);margin:18px 0 18px}
  .hero-subtitle{font-size:22px}
  .hero-description{font-size:16px;max-width:none}
  .hero .button-group{flex-direction:row;align-items:center;gap:8px 22px;margin-top:26px}
  .hero-author{margin-top:24px;font-size:14px}
  .hero-author span{font-size:13px}
  .hero-art{position:relative;inset:auto;order:1;height:clamp(300px,92vw,440px);margin-top:20px}
  .hero-art img{object-position:52% 58%}
  .hero-art{--fade-x:linear-gradient(180deg,#0000 0%,#000 24%);--fade-y:linear-gradient(0deg,#0000 0%,#000 14%)}
  .hero-book-note{right:var(--gutter);bottom:84px;max-width:calc(100% - var(--gutter) * 2);z-index:1}
  .hero-scroll{position:relative;order:2;left:auto;transform:none;justify-content:center;bottom:auto;margin:14px auto 22px;width:fit-content}
  .themes-line{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;padding-top:26px}
  .themes-line li{font-size:16px;gap:8px}
  .themes-line .icon{width:17px;height:17px}
  .book-stage{aspect-ratio:auto;min-height:540px;padding:44px 14px 28px}
  .book-sticker{position:relative;right:auto;top:auto;bottom:auto;align-self:flex-end;margin:16px -4px 0 0;font-size:15px;padding:10px 14px 10px 24px;transform:rotate(-2deg)}
  .book-sticker em{font-size:14px}
  .section-copy .lead{font-size:20px}
  .author-photo-wrap{width:88%}
  .photo-botanical{width:96px;height:96px;right:-24px;bottom:-14px}
  .bsl-section{padding-block:76px 64px}
  .bsl-caption{left:-12px;padding:14px 18px;font-size:15px}
  .bsl-caption .icon{width:26px;height:26px}
  .bsl-points li{font-size:19px;gap:14px}
  .reading-card{display:block;padding-bottom:28px}
  .reading-card .card-category{margin-top:20px}
  .feature-columns{gap:36px}
  .feature-columns>div{padding-top:28px}
  .reading-card-art{height:160px;min-height:0}
  .reading-card-art>.icon{width:56px;height:56px}
  .reading-card-art::before{width:200px;height:200px;top:24px;left:calc(50% - 100px)}
  .reading-card-art::after{width:164px;height:164px;top:42px;left:calc(50% - 82px)}
  .reading-card p{font-size:15px}
  .email-row{flex-direction:column;padding:6px;gap:6px}
  .email-row input{padding:12px}
  .email-row .button{width:100%}
  .site-footer{padding-top:44px}
  .footer-top{grid-template-columns:1fr 1fr;gap:32px 24px;padding-bottom:28px}
  .footer-intro{grid-column:1/-1}
  .footer-bottom{flex-wrap:wrap;gap:6px 18px}
  .footer-bottom>span:first-child{width:100%}
  .footer-note{margin-left:auto}
  .back-top{right:14px;bottom:14px;width:46px;height:46px}
  .page-intro{padding-top:44px}
  .book-scene{min-height:440px;gap:36px;padding:48px 18px 32px}
  .page-spread{grid-template-columns:1fr}
  .spread-left{box-shadow:none}
  .spread-page::after{display:none}
  .page-spread::before{inset:6px -4px 0}
  .field-row{grid-template-columns:1fr;gap:0}
  .preview-dialog{padding:18px;width:96vw}
  .preview-stage{padding:8px}
  .preview-stage img{max-height:58vh}
  .preview-button{padding:10px 14px}
  .activity-nav{justify-content:flex-start;gap:8px}
  .activity-nav a{padding:8px 14px;font-size:14px}
  summary{font-size:17px}
}

@media (max-width:560px){
  .themes-line{grid-template-columns:max-content;justify-content:center;gap:10px}
  .themes-line li{font-size:17px}
}

@media (max-width:380px){
  .hero-title{font-size:50px}
  .hero .button{padding-inline:18px}
  .themes-line{grid-template-columns:max-content;justify-content:center}

  .preview-counter{font-size:14px}
}

@media (prefers-reduced-motion:reduce){
  html:not(.lenis){scroll-behavior:auto}
  *,*::before,*::after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}
}

/* ---------------------------------------------------------------------------
   Curtain: the first-visit preloader and the page-to-page transition.
   Shown only with JavaScript and motion; a fail-safe lifts it if scripts never run. */
.curtain{display:none}
.motion-ok .curtain{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--dark) var(--grain);color:#f3efe1;visibility:hidden;clip-path:inset(0 0 100% 0)}
.motion-ok.is-curtained .curtain{visibility:visible;clip-path:inset(0 0 0 0);animation:curtain-failsafe .01s 4s forwards}
.motion-ok .curtain.is-live{animation:none}
.is-curtained,.is-curtained body{overflow:hidden}
@keyframes curtain-failsafe{to{visibility:hidden;clip-path:inset(0 0 100% 0)}}
.curtain-inner{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:24px}
.curtain-seal{position:relative;width:118px;height:118px;border-radius:50%;background:#f6f1e3;display:grid;place-items:center;box-shadow:0 24px 48px -24px #000c}
.curtain-seal img{width:76px;height:76px;object-fit:contain;animation:seal-sway 2.4s ease-in-out infinite alternate}
.curtain-ring{position:absolute;left:-12px;top:-12px;width:142px;height:142px;transform:rotate(-90deg);overflow:visible}
.curtain-ring circle{fill:none;stroke:#c9a65f;stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:1;animation:ring-draw 1.4s var(--ease-out) .1s forwards}
.curtain-title{font-family:var(--serif);font-size:clamp(30px,4vw,42px);letter-spacing:-.03em;margin-top:18px;line-height:1.1}
.curtain-byline{font-size:12px;font-weight:500;letter-spacing:.2em;color:#cfd5b2}
.curtain-line{width:168px;height:1px;background:#ffffff26;margin-top:14px;overflow:hidden}
.curtain-line span{display:block;height:100%;background:#c9a65f;transform:scaleX(var(--progress,.12));transform-origin:left;transition:transform .5s var(--ease-out)}
html:not(.is-first-visit) .curtain-title,html:not(.is-first-visit) .curtain-byline,html:not(.is-first-visit) .curtain-line{display:none}
@keyframes seal-sway{from{transform:rotate(-6deg)}to{transform:rotate(6deg)}}
@keyframes ring-draw{to{stroke-dashoffset:0}}

/* Deckled paper edges on dark sections */
.deckled{-webkit-mask:url('../images/deckle-top.svg') top/1200px 18px repeat-x,linear-gradient(#000,#000) center/100% calc(100% - 34px) no-repeat,url('../images/deckle-bottom.svg') bottom/1200px 18px repeat-x;mask:url('../images/deckle-top.svg') top/1200px 18px repeat-x,linear-gradient(#000,#000) center/100% calc(100% - 34px) no-repeat,url('../images/deckle-bottom.svg') bottom/1200px 18px repeat-x}
.deckle-top{-webkit-mask:linear-gradient(#000,#000) bottom/100% calc(100% - 17px) no-repeat,url('../images/deckle-top.svg') top/1200px 18px repeat-x;mask:linear-gradient(#000,#000) bottom/100% calc(100% - 17px) no-repeat,url('../images/deckle-top.svg') top/1200px 18px repeat-x}
.on-dark h2{color:#f7f5e9}
.on-dark h2 em{color:#c9cfa6}
.on-dark .eyebrow{color:#cfd5b2}
.on-dark>p{color:#dfe3d4}

/* Falling oak leaves: a handful, slow, behind content */
.falling-leaves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;--fall:1200px}
.hero-leaves{z-index:0;--fall:820px}
.leaf{position:absolute;top:-48px;width:22px;color:#b7c18a;opacity:0;animation:leaf-fall 22s linear infinite}
.leaf svg{display:block;width:100%;animation:leaf-sway 3.6s ease-in-out infinite alternate}
.leaf-1{left:8%;animation-delay:-2s;width:20px}
.leaf-2{left:24%;animation-duration:27s;animation-delay:-14s;color:#c9a65f;width:16px}
.leaf-3{left:46%;animation-duration:24s;animation-delay:-7s;width:24px}
.leaf-4{left:63%;animation-duration:30s;animation-delay:-20s;color:#d9c48a;width:15px}
.leaf-5{left:78%;animation-duration:25s;animation-delay:-4s;width:21px}
.leaf-6{left:90%;animation-duration:28s;animation-delay:-17s;color:#c9a65f;width:18px}
.leaf-7{left:36%;animation-duration:33s;animation-delay:-26s;width:14px}
.hero-leaves .leaf{color:#8f9b5c}
.hero-leaves .leaf-1{left:58%}
.hero-leaves .leaf-2{left:74%}
.hero-leaves .leaf-3{left:90%}
.leaf-2 svg,.leaf-5 svg{animation-duration:4.4s}
.leaf-3 svg,.leaf-6 svg{animation-duration:3.1s;animation-direction:alternate-reverse}
@keyframes leaf-fall{0%{transform:translate3d(0,0,0) rotate(0);opacity:0}8%{opacity:.7}88%{opacity:.55}100%{transform:translate3d(70px,var(--fall),0) rotate(220deg);opacity:0}}
@keyframes leaf-sway{from{transform:translateX(-14px) rotate(-22deg)}to{transform:translateX(14px) rotate(24deg)}}

/* The story, page by page (dark) */
.story-path{position:relative;isolation:isolate;background:var(--green) var(--grain);color:#f3f1e4;padding-block:calc(var(--section) + 16px);overflow:hidden;margin-top:-4px}
.story-path .container{position:relative;z-index:1}
.path-track{position:relative;margin-top:12px}
.path-branch{position:absolute;left:-2%;width:104%;top:clamp(70px,9vw,130px);height:150px;overflow:visible;z-index:0;pointer-events:none}
.path-branch path{fill:none;stroke:#c9a65f;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;vector-effect:non-scaling-stroke;opacity:.85}
.path-list{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,44px);position:relative;z-index:1}
.path-step{position:relative}
.path-step:nth-child(even){margin-top:64px}
.path-figure{aspect-ratio:1;background:#ece6cf;padding:8px;box-shadow:0 28px 44px -26px #0b1a12d9,0 2px 6px #0b1a1240;transform:rotate(var(--tilt,0));border-radius:2px}
.path-step:nth-child(1){--tilt:-2.4deg}
.path-step:nth-child(2){--tilt:1.8deg}
.path-step:nth-child(3){--tilt:-1.3deg}
.path-step:nth-child(4){--tilt:2.2deg}
.path-figure img{width:100%;height:100%;object-fit:cover}
.path-num{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;margin:28px 0 14px;border:1px solid #c9a65fa6;border-radius:50%;font-family:var(--serif);font-size:17px;color:#ecdcae;background:var(--green)}
.path-step h3{color:#f7f5e9;font-size:clamp(22px,1.7vw,26px)}
.path-step p{color:#dfe3d4;font-size:16px;margin-top:10px;line-height:1.65}
.path-actions{display:flex;gap:14px 32px;align-items:center;flex-wrap:wrap;justify-content:center;margin-top:clamp(48px,6vw,72px)}
.on-dark-link{color:#f3efe1}
.story-path .button-cream .icon{width:20px;height:20px}

/* Collection teaser link */
.collection-more{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:clamp(44px,5vw,72px)}
.collection-more>span{width:64px;height:1px;background:#bfc6ac}
.collection-more .button{white-space:nowrap}
@media (max-width:560px){.collection-more>span{width:24px;flex-shrink:1}}

/* Immersive quote over the illustration */
.quote-scene{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(440px,64vh,640px);display:flex;align-items:center;color:#fff}
.quote-scene-art{position:absolute;inset:-14% 0;z-index:-2}
.quote-scene-art img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}
.quote-scene::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 70% 60% at center,#1b2d22c7 0%,#1b2d2280 60%,#1b2d2259 100%),linear-gradient(0deg,#1b2d22b3,#1b2d2200 45%)}
.quote-scene-inner{text-align:center;padding-block:88px}
.quote-scene-inner img{width:52px;height:52px;padding:10px;box-sizing:content-box;margin:0 auto 24px;background:#f6f1e3;border-radius:50%;object-fit:contain}
.quote-scene p{font-family:var(--serif);font-size:clamp(30px,3.7vw,54px);line-height:1.28;color:#fbf8ee;letter-spacing:-.025em;max-width:1000px;margin-inline:auto;text-shadow:0 2px 28px #0b1a1280}
.quote-scene em{color:#ead9a6}
.quote-scene span{display:block;margin-top:26px;font-size:12px;letter-spacing:.22em;font-weight:600;color:#eceedf}

/* Newsletter in the dark woodland */
.newsletter-section.is-dark{background:var(--dark) var(--grain);border:0;padding-top:12px;margin-top:-2px}
.is-dark .newsletter-copy h2{color:#f7f5e9}
.is-dark .newsletter-copy h2 em{color:#c9cfa6}
.is-dark .eyebrow{color:#cfd5b2}
.is-dark .newsletter-copy>p,.is-dark .consent{color:#dfe3d4}
.is-dark .consent a{color:#fff}
.is-dark .consent input{accent-color:#c9a65f}
.is-dark .email-row{border-color:#ffffff40;background:#fbf9f2}
.is-dark .email-row:focus-within{box-shadow:0 0 0 4px #c9a65f40;border-color:#c9a65f}
.is-dark .newsletter-art{display:flex;justify-content:center}
.newsletter-window{width:min(100%,400px);aspect-ratio:4/5;border-radius:220px 220px 6px 6px;overflow:hidden;border:10px solid #ece6cf;box-shadow:0 34px 60px -30px #000c}
.is-dark .newsletter-art img{mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none;transform:none;width:100%;height:110%;margin-top:-5%;object-fit:cover;object-position:28% 50%}
.is-dark .form-status.error{background:#f4e4dc}

/* The reading corner, alive: each little illustration keeps a gentle loop */
.motion-ok .is-alive .nature-art>.icon{transform-origin:22% 92%;animation:leaf-breeze 3.6s ease-in-out infinite alternate}
.motion-ok .is-alive .heart-art>.icon{animation:heart-beat 2.6s ease-in-out infinite}
.motion-ok .is-alive .sprout-art>.icon{transform-origin:50% 100%;animation:sprout-grow 3.2s ease-in-out infinite alternate}
.motion-ok .is-alive .reading-card-art::before{animation:ring-breathe 6s ease-in-out infinite}
.motion-ok .is-alive .reading-card-art::after{animation:ring-breathe 6s ease-in-out -3s infinite}
.motion-ok .is-alive .reading-card:nth-child(2) .reading-card-art::before{animation-delay:-1.5s}
.motion-ok .is-alive .reading-card:nth-child(3) .reading-card-art::before{animation-delay:-4s}
@keyframes leaf-breeze{from{transform:rotate(-8deg)}to{transform:rotate(7deg) translateY(-3px)}}
@keyframes heart-beat{0%,46%,100%{transform:scale(1)}12%{transform:scale(1.1)}24%{transform:scale(1.02)}34%{transform:scale(1.08)}}
@keyframes sprout-grow{from{transform:scaleY(.88) rotate(-3deg)}to{transform:scaleY(1.04) rotate(3deg)}}
@keyframes ring-breathe{0%,100%{transform:scale(.93);opacity:.45}50%{transform:scale(1.07);opacity:1}}

@media (max-width:900px){
  .path-list{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
  .path-branch{display:none}
}
@media (max-width:560px){
  .path-list{grid-template-columns:1fr;row-gap:44px}
  .path-step:nth-child(even){margin-top:0}
  .path-figure{width:78%}
  .path-step:nth-child(even) .path-figure{margin-left:auto}
  .quote-scene{min-height:440px}
  .newsletter-window{width:min(78%,320px)}
}
@media (prefers-reduced-motion:reduce){
  .falling-leaves{display:none}
}
html:not(.motion-ok) .falling-leaves{display:none}

@media print{
  .curtain,.falling-leaves,.announcement,.site-header,.site-footer,.page-intro>.button,.activity-nav,.back-top,.closing-cta,dialog,.intro-ornament{display:none!important}
  body{background:white;color:#111;font-size:11pt}
  .container{width:100%;max-width:none}
  .section,.page-intro{padding:20px 0}
  .page-intro h1{font-size:34pt}
  .activity-layout,.story-continuation{display:block}
  .activity-illustration{display:none}
  .activity-section{break-inside:avoid}
  .activity-section h2{font-size:25pt}
  .activity-steps{font-size:11pt}
  .activity-prompt{border:1px solid #ccc;background:white}
  .conversation-prompts details p{display:block}
  .conversation-prompts details{border:0}
  .conversation-prompts summary>span{display:none}
  .details-body{height:auto!important;opacity:1!important}
  .reveal,[data-hero-item],[data-hero-line]{opacity:1!important;visibility:visible!important;transform:none!important}
}
