@font-face { font-family: Assistant; src: url('assets/assistant.woff2') format('woff2'); font-weight: 200 800; font-display: swap; }
@font-face { font-family: Cormorant; src: url('assets/cormorant-600.woff2') format('woff2'); font-weight: 600; font-display: swap; }
:root { --bg:#160e22; --surface:#24162f; --pink:#efa0c4; --white:#faf3ee; --muted:#c7bacd; --line:rgba(239,160,196,.22); --ease:cubic-bezier(.22,1,.36,1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; background:var(--bg); color:var(--white); font-family:Assistant,Arial,sans-serif; font-size:18px; line-height:1.5; }
main { overflow:clip; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; border:0; }
button,a { -webkit-tap-highlight-color:transparent; }
img { max-width:100%; height:auto; display:block; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { line-height:1.08; font-weight:650; letter-spacing:-.035em; }
h2 { font-size:clamp(36px,4vw,56px); }
h2 em,h3 em { color:var(--pink); font-family:Cormorant,Georgia,serif; font-style:normal; font-weight:600; }
:focus-visible { outline:2px solid var(--pink); outline-offset:5px; }
::selection { background:var(--pink); color:var(--bg); }
.section-shell,.header-wrap { width:calc(100% - 96px); max-width:1240px; margin-inline:auto; }
.eyebrow { font-size:11px; font-weight:650; letter-spacing:.18em; text-transform:uppercase; color:var(--pink); }
.skip-link { position:fixed; top:10px; left:16px; z-index:100; transform:translateY(-160%); padding:10px; background:var(--white); color:var(--bg); }
.skip-link:focus { transform:none; }
.scroll-progress { position:fixed; top:0; left:0; width:100%; height:2px; background:var(--pink); transform:scaleX(0); transform-origin:left; z-index:100; pointer-events:none; }
.header-wrap { position:sticky; top:20px; z-index:40; margin-top:26px; }
.header-wrap:before { content:''; position:absolute; inset:-26px auto -18px 50%; width:100vw; transform:translateX(-50%); z-index:-1; background:linear-gradient(var(--bg) 80%,transparent); pointer-events:none; }
.nav { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:12px 20px; border:1px solid #d38bab66; border-radius:60px; background:#25162cd9; backdrop-filter:blur(20px); }
.brand { display:flex; align-items:center; gap:10px; flex-shrink:0; font-family:Cormorant,Georgia,serif; font-size:24px; line-height:1.05; letter-spacing:-.025em; }
.brand i { color:var(--pink); font-style:normal; }
.brand small { display:block; font-family:Assistant,Arial,sans-serif; font-size:8px; letter-spacing:.2em; font-weight:500; margin-top:7px; color:var(--muted); }
.brand-mark { display:grid; place-items:center; width:42px; height:42px; border:1px solid #e9acc764; border-radius:50%; color:var(--pink); }
.brand-mark svg { width:26px; height:26px; }
.nav-links { display:flex; gap:28px; font-size:15px; }
.nav-links a:hover,.text-button:hover,.nav-links a[aria-current='true'] { color:var(--pink); }
.nav-cta { display:flex; align-items:center; gap:20px; padding:10px 17px; border:1px solid var(--line); border-radius:30px; font-size:14px; }
.nav-cta:hover { background:#efa0c415; }
.nav-cta span { font-size:21px; }
.menu-toggle { display:none; width:44px; height:44px; padding:10px; background:none; }
.menu-toggle span { display:block; height:1px; background:var(--white); margin:7px 0; transition:transform .25s; }
.hero { position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:58px; padding:64px 0 78px; }
.hero-grid { position:absolute; inset:-110px -48px 0; z-index:-1; background:radial-gradient(ellipse at 80% 40%,#65365842,transparent 68%),linear-gradient(90deg,#a7739b0c 1px,transparent 1px),linear-gradient(#a7739b0c 1px,transparent 1px); background-size:auto,56px 56px,56px 56px; }
.hero-grid { mask-image:radial-gradient(ellipse at 65% 40%,#000 35%,transparent 83%); }
.hero-copy { position:relative; z-index:2; }
.little-star { font-size:19px; margin-right:6px; vertical-align:-2px; }
.hero h1 { font-size:clamp(64px,6.8vw,94px); line-height:1.01; letter-spacing:-.05em; margin-top:22px; font-weight:700; }
.pink-word { color:var(--pink); position:relative; }
.pink-word svg { position:absolute; bottom:-12px; left:0; width:100%; height:18px; fill:none; stroke:var(--pink); stroke-width:1.2; opacity:.6; }
.hero-description { color:var(--muted); max-width:380px; margin-top:30px; font-size:18px; line-height:1.55; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:28px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; border-radius:40px; min-height:55px; padding:8px 9px 8px 22px; font-size:15px; font-weight:650; white-space:nowrap; transition:background .25s,transform .25s; }
.primary { background:var(--pink); color:#27132d; }
.primary:hover { background:#ffd0e6; transform:translateY(-2px); }
.button-arrow { display:grid; place-items:center; width:37px; height:37px; border-radius:50%; background:#25112c; color:var(--white); font-size:23px; font-weight:400; }
.text-button { display:inline-flex; align-items:center; gap:10px; background:none; padding:0 0 3px; border-bottom:1px solid #eaa5c050; font-size:15px; }
.text-button span { font-size:20px; }
.launch-note { display:flex; align-items:center; gap:9px; font-size:12px; color:var(--muted); margin-top:19px; }
.status-dot { display:inline-block; width:5px; height:5px; background:var(--pink); border-radius:50%; }
.launch-note a { color:var(--white); border-bottom:1px solid var(--line); padding-bottom:1px; }
.launch-note a:hover { color:var(--pink); }
.launch-sep { opacity:.5; }
.hero-art { position:relative; max-width:480px; width:100%; justify-self:center; padding:14px 20px 0; }
.hero-covers { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 27px; z-index:2; }
.hero-cover { padding:0; width:100%; border-radius:5px 10px 10px 5px; background:none; aspect-ratio:2550/3300; box-shadow:0 15px 32px #08031088,-3px 0 0 #5c4a56,2px 0 0 #e9ddd07a; transition:transform .5s var(--ease); }
.hero-cover img { width:100%; height:100%; object-fit:contain; border-radius:inherit; }
.hero-cover:nth-child(odd) { transform:rotate(-3deg); }
.hero-cover:nth-child(even) { transform:rotate(3deg); }
.hero-cover:hover { transform:translateY(-7px); }
.hero-orbit { position:absolute; width:100%; height:80%; top:10%; left:0; border:1px solid #b47baa39; border-radius:50%; transform:rotate(-24deg); }
.art-glow { position:absolute; inset:0 -25px; background:radial-gradient(ellipse,#be6b9a2b,transparent 68%); pointer-events:none; }
.art-caption { text-align:center; color:#c5a9c4; font-size:9px; letter-spacing:.22em; margin-top:29px; position:relative; }
.scroll-cue { position:absolute; bottom:21px; left:0; display:flex; align-items:center; gap:10px; color:var(--muted); font-size:11px; }
.scroll-cue span { display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--line); border-radius:50%; font-size:17px; }
.facts-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:28px 0; border-block:1px solid var(--line); }
.facts-strip>div { display:flex; align-items:center; gap:13px; padding-inline:25px; border-right:1px solid var(--line); }
.facts-strip>div:first-child { padding-left:0; }
.facts-strip>div:last-child { padding-right:0; border:0; }
.facts-strip strong { font-size:25px; font-weight:600; letter-spacing:-.03em; white-space:nowrap; }
.facts-strip span { color:var(--muted); font-size:13px; line-height:1.3; }
.section-heading { text-align:center; }
.section-heading h2 { margin-top:17px; }
.section-heading>p:last-child:not(.eyebrow) { color:var(--muted); font-size:17px; margin-top:18px; }
.collection-section { padding-top:84px; overflow:hidden; }
.carousel { position:relative; max-width:1340px; margin:28px auto 0; touch-action:pan-y; overflow:hidden; padding-top:18px; }
.book-stage { height:420px; position:relative; max-width:960px; margin:auto; perspective:1300px; }
.carousel-book { position:absolute; left:50%; top:16px; width:245px; aspect-ratio:2550/3300; padding:0; border-radius:6px 10px 10px 6px; background:none; box-shadow:0 24px 38px #09021288,-3px 0 0 #514457,2px 0 0 #d9cbd87f; transition:transform .75s var(--ease),opacity .55s,filter .55s; }
.carousel-book img { width:100%; height:100%; object-fit:contain; border-radius:inherit; pointer-events:none; }
.carousel-book[data-position='0'] { transform:translateX(-50%) scale(1.04); z-index:3; opacity:1; }
.carousel-book[data-position='-1'] { transform:translateX(calc(-50% - 280px)) translateY(46px) rotate(-11deg) scale(.84); z-index:2; filter:brightness(.8); opacity:.85; }
.carousel-book[data-position='1'] { transform:translateX(calc(-50% + 280px)) translateY(46px) rotate(11deg) scale(.84); z-index:2; filter:brightness(.8); opacity:.85; }
.carousel-book[data-position='2'],.carousel-book[data-position='-2'] { transform:translateX(-50%) translateY(75px) scale(.65); opacity:0; z-index:0; pointer-events:none; }
.carousel-arc,.carousel-orbit { position:absolute; width:1060px; height:800px; left:50%; top:120px; transform:translateX(-50%); border:1px solid #c18ab05b; border-radius:50%; pointer-events:none; }
.carousel-arc { background:radial-gradient(ellipse at 50% 5%,#c37aa533,transparent 63%); }
.carousel-orbit { width:1160px; height:850px; top:94px; border-color:#7f85d23b; }
.carousel-controls { position:relative; z-index:4; display:flex; align-items:center; justify-content:center; gap:26px; margin-top:-28px; }
.round-button { display:grid; place-items:center; width:44px; height:44px; background:#33213c; border:1px solid #d890b252; border-radius:50%; font-size:23px; line-height:1; transition:background .2s; }
.round-button:hover { background:#654465; }
.carousel-dots { display:flex; gap:5px; }
.carousel-dot { display:grid; place-items:center; padding:7px; min-width:28px; min-height:32px; background:transparent; border-radius:20px; }
.carousel-dot:before { content:''; width:6px; height:6px; background:#9c749b; border-radius:50%; transition:width .25s; }
.carousel-dot[aria-current='true']:before { width:23px; border-radius:10px; background:var(--pink); }
.carousel-hint { position:relative; text-align:center; font-size:9px; letter-spacing:.18em; color:#c3aac4; padding:14px 0 21px; }
.carousel-hint span { margin-left:7px; font-size:16px; vertical-align:-1px; }
.active-book { display:grid; grid-template-columns:1fr 1fr; gap:50px; padding:31px 24px 36px; border-bottom:1px solid var(--line); }
.active-book h3 { font-family:Cormorant,Georgia,serif; font-weight:600; font-size:46px; margin-top:13px; }
.active-book-copy>p { color:var(--muted); font-size:17px; max-width:490px; }
.active-book-actions { display:flex; align-items:center; gap:20px; margin-top:22px; }
.availability { color:#c4a9c4; font-size:12px; max-width:105px; }
.availability a { color:var(--pink); border-bottom:1px solid var(--line); padding-bottom:3px; }
.book-chooser { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; padding-top:24px; }
.chooser-item { display:flex; text-align:left; align-items:center; gap:12px; min-width:0; padding:14px; background:#22152b66; border:1px solid #8b65864a; border-radius:15px; transition:background .2s,border-color .2s; }
.chooser-item[aria-pressed='true'],.chooser-item:hover { background:#4b2f4e55; border-color:#efabd080; }
.chooser-item>img { width:40px; height:auto; border-radius:3px; flex-shrink:0; }
.chooser-item strong { display:block; font-size:16px; font-weight:600; line-height:1.2; letter-spacing:-.015em; }
.chooser-item small { display:block; font-size:9px; color:var(--muted); margin-top:6px; line-height:1.2; }
.chooser-number { margin-left:auto; align-self:flex-start; font-size:10px; color:var(--pink); }
.inside-section { padding-block:85px 88px; }
.split-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; }
.split-heading h2 { margin-top:15px; }
.split-heading>p { color:var(--muted); max-width:320px; font-size:16px; }
.sample-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:34px; }
.sample-card { display:grid; grid-template-columns:1fr 1fr; align-items:center; min-width:0; text-align:left; padding:20px; gap:23px; background:#24172e; border:1px solid #94618744; border-radius:22px; transition:background .3s,border-color .3s; }
.sample-card:hover { background:#35203d; border-color:#c789ad77; }
.sample-frame { background:#fafafa; border-radius:8px; overflow:hidden; aspect-ratio:850/1100; }
.sample-paper { width:100%; height:auto; object-fit:contain; }
.sample-caption { display:flex; flex-direction:column; align-items:start; gap:14px; }
.sample-caption .eyebrow { font-size:9px; line-height:1.5; letter-spacing:.12em; }
.sample-caption strong { font-family:Cormorant,Georgia,serif; font-size:31px; font-weight:600; line-height:1.08; }
.sample-blurb { color:var(--muted); font-size:14px; line-height:1.45; }
.sample-caption small { color:var(--pink); font-size:13px; margin-top:8px; border-bottom:1px solid var(--line); padding-bottom:4px; }
.sample-caption small span { font-size:19px; margin-left:7px; }
.ritual-section { border-block:1px solid var(--line); background:linear-gradient(110deg,#321c3944,#24172d); }
.ritual-inner { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:70px; padding-block:55px; }
.ritual-art { display:grid; place-items:center; position:relative; width:100%; max-width:440px; justify-self:center; aspect-ratio:1; }
.ritual-ring { position:absolute; inset:8%; border:1px solid #d699b64d; border-radius:50%; background:radial-gradient(ellipse,#ac548222,transparent 68%); }
.ritual-flower { position:relative; width:100%; height:auto; aspect-ratio:1; object-fit:contain; opacity:1; }
.ritual-copy h2 { margin-top:16px; }
.ritual-copy>p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.6; margin-top:21px; max-width:450px; }
.ritual-copy .text-button { margin-top:24px; }
.faq-section { display:grid; grid-template-columns:1fr 1.25fr; gap:70px; padding-block:80px; }
.faq-section h2 { margin-top:17px; }
.faq-section>div>p:not(.eyebrow) { color:var(--muted); font-size:16px; margin-top:22px; }
.faq-list details { padding-bottom:18px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.faq-list summary { display:flex; justify-content:space-between; align-items:center; gap:24px; font-size:17px; cursor:pointer; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color:var(--pink); font-size:25px; font-weight:300; transition:transform .2s; }
.faq-list details[open] summary span { transform:rotate(45deg); }
.faq-list details p { color:var(--muted); font-size:15px; line-height:1.65; margin:15px 25px 2px 0; }
.final-section { text-align:center; position:relative; overflow:hidden; border:1px solid #b478a04d; border-radius:30px; background:radial-gradient(ellipse at 50% 100%,#ab5a8933,transparent 75%),#26172f; padding:54px 25px; }
.final-section h2 { position:relative; font-size:clamp(49px,5.3vw,70px); margin:17px 0; }
.final-section>p:not(.eyebrow) { position:relative; color:var(--muted); font-size:16px; }
.final-actions { position:relative; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:16px 30px; margin-top:25px; }
.final-status { justify-content:center; font-size:11px!important; margin-top:16px; }
.final-orbit { position:absolute; width:920px; height:580px; left:50%; top:70px; transform:translateX(-50%); border:1px solid #e99ac136; border-radius:50%; pointer-events:none; }
.final-star { position:absolute; top:60px; left:18%; color:var(--pink); font-size:46px; }
.footer { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-block:38px 32px; }
.footer p { color:#af9ab4; font-size:11px; line-height:1.6; text-align:center; }
.back-top { display:flex; align-items:center; gap:13px; font-size:12px; }
.back-top span { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--line); border-radius:50%; font-size:17px; }
/* Book finder */
.finder-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; align-items:center; padding-block:92px 8px; }
.finder-intro h2 { margin-top:17px; }
.finder-intro>p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.6; margin-top:20px; max-width:390px; }
.finder-card { position:relative; min-height:430px; padding:30px 32px; background:radial-gradient(ellipse at 100% 0%,#ab5a8926,transparent 60%),#24172e; border:1px solid #94618744; border-radius:24px; }
.finder-progress { display:flex; gap:6px; }
.finder-progress i { flex:1; height:3px; border-radius:3px; background:#4a3352; transition:background .3s; }
.finder-progress i.done { background:var(--pink); }
.finder-step { margin-top:22px; font-size:12px; letter-spacing:.08em; color:var(--muted); }
.finder-card h3 { font-family:Cormorant,Georgia,serif; font-weight:600; font-size:38px; margin-top:6px; outline:none; }
.finder-options { display:grid; gap:10px; margin-top:22px; }
.finder-option { text-align:left; padding:16px 18px; background:#2d1d37; border:1px solid #8b65864a; border-radius:14px; font-size:16px; line-height:1.35; transition:background .2s,border-color .2s,transform .25s var(--ease); }
.finder-option:hover { background:#3b2645; border-color:#efabd080; }
.finder-options.visual { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.finder-page { padding:6px; background:#fafafa; border:2px solid transparent; border-radius:10px; }
.finder-page:hover { background:#fff; border-color:var(--pink); transform:translateY(-4px); }
.finder-page img { width:100%; border-radius:4px; }
.finder-back,.finder-restart { margin-top:18px; padding:4px 0; background:none; color:var(--muted); font-size:14px; }
.finder-back:hover,.finder-restart:hover { color:var(--pink); }
.finder-restart { text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--line); }
.finder-result { display:grid; grid-template-columns:180px 1fr; gap:34px; align-items:center; min-height:368px; }
.finder-cover { width:100%; border-radius:5px 9px 9px 5px; box-shadow:0 20px 36px #09021288,-3px 0 0 #514457; transform:rotate(-3deg); }
.finder-result h3 { font-size:46px; margin-top:12px; }
.finder-result p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.6; margin-top:12px; max-width:420px; }
.finder-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:24px; }
.motion-enabled .finder-card>* { animation:gentle-entrance .45s var(--ease) both; }
/* Free sampler */
.sampler-card { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; margin-top:28px; padding:36px 44px; background:radial-gradient(ellipse at 22% 55%,#ab5a8930,transparent 70%),#2a1a33; border:1px solid #c789ad55; border-radius:26px; }
.sampler-pages { position:relative; height:270px; }
.sampler-pages img { position:absolute; top:12px; left:50%; width:152px; background:#fafafa; border-radius:6px; box-shadow:0 18px 32px #0008; transition:transform .6s var(--ease); }
.sampler-pages img:nth-child(1) { transform:translateX(-152%) translateY(24px) rotate(-10deg); }
.sampler-pages img:nth-child(2) { transform:translateX(-86%) rotate(-3deg); }
.sampler-pages img:nth-child(3) { transform:translateX(-14%) rotate(3deg); }
.sampler-pages img:nth-child(4) { transform:translateX(52%) translateY(24px) rotate(10deg); }
.sampler-card:hover .sampler-pages img:nth-child(1) { transform:translateX(-160%) translateY(18px) rotate(-13deg); }
.sampler-card:hover .sampler-pages img:nth-child(4) { transform:translateX(60%) translateY(18px) rotate(13deg); }
.sampler-copy h3 { font-size:clamp(30px,3vw,40px); margin-top:14px; }
.sampler-copy>p:not(.eyebrow):not(.download-note) { color:var(--muted); font-size:16px; line-height:1.6; margin-top:14px; max-width:430px; }
.sampler-copy .button { margin-top:22px; }
.sampler-copy .download-note { color:var(--muted); font-size:12px; margin-top:11px; }
/* Why you'll love them */
.why-section { padding-block:20px 92px; }
.why-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:38px; }
.why-card { padding:26px 22px 28px; background:#1f1428; border:1px solid var(--line); border-radius:20px; }
.why-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:#efa0c41a; color:var(--pink); }
.why-icon svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.why-card h3 { font-size:20px; letter-spacing:-.02em; margin-top:18px; }
.why-card p { color:var(--muted); font-size:15px; line-height:1.55; margin-top:10px; }
.gift-band { display:grid; grid-template-columns:1fr auto; align-items:center; gap:14px 40px; margin-top:22px; padding:30px 36px; background:linear-gradient(100deg,#3a2142,#2a1a33); border:1px solid #c789ad44; border-radius:22px; }
.gift-band h3 { font-family:Cormorant,Georgia,serif; font-weight:600; font-size:34px; margin-top:10px; }
.gift-band p:not(.eyebrow):not(.share-status) { color:var(--muted); font-size:15.5px; line-height:1.55; margin-top:8px; max-width:560px; }
.share-button { background:transparent; border:1px solid #efa0c480; color:var(--white); }
.share-button:hover { background:#efa0c41f; transform:translateY(-2px); }
.share-button .button-arrow { background:var(--pink); color:#27132d; }
.share-status { grid-column:1/-1; font-size:13px; color:var(--pink); }
.share-status:empty { display:none; }
/* Launch list (only visible once configured in books.js) */
.launch-form { position:relative; max-width:480px; margin:30px auto 0; }
.launch-form label { display:block; font-size:14px; }
.launch-row { display:flex; gap:10px; margin-top:12px; padding:6px; background:#1c1124; border:1px solid #c789ad66; border-radius:40px; }
.launch-row:focus-within { outline:2px solid var(--pink); outline-offset:3px; }
.launch-row input { flex:1; min-width:0; padding:0 16px; background:none; border:0; color:var(--white); font:inherit; font-size:15px; outline:none; }
.launch-row input::placeholder { color:#a892ad; }
.launch-row .button { min-height:46px; }
.launch-fine { font-size:11.5px; color:var(--muted); margin-top:10px; }
/* Every product image keeps its natural aspect ratio, including the botanical ornament. */
dialog { width:min(1050px,calc(100% - 44px)); max-height:calc(100dvh - 44px); overflow:auto; border:1px solid #b478a063; border-radius:23px; background:#201429; color:var(--white); padding:20px 27px 28px; box-shadow:0 40px 150px #000b; }
dialog::backdrop { background:#0b071ad6; backdrop-filter:blur(10px); }
body.dialog-open { overflow:hidden; }
.dialog-head { display:flex; align-items:center; justify-content:space-between; gap:15px; position:sticky; top:-20px; z-index:5; background:#201429; padding:6px 0; margin-bottom:18px; }
.dialog-close { font-size:28px; }
.dialog-content { display:grid; grid-template-columns:1fr 1fr; gap:37px; }
.preview-paper { max-width:385px; margin:auto; border-radius:10px; overflow:hidden; background:white; }
.preview-paper img { width:100%; height:auto; }
.preview-controls { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:15px; }
.preview-controls .round-button { width:36px; height:36px; font-size:20px; }
#page-count { color:var(--muted); font-size:12px; min-width:190px; text-align:center; }
.preview-thumbs { display:flex; justify-content:center; gap:12px; margin-top:13px; }
.page-thumb { width:44px; padding:4px; border:1px solid transparent; border-radius:5px; background:#382440; }
.page-thumb[aria-pressed='true'] { border-color:var(--pink); }
.page-thumb img { width:100%; height:auto; border-radius:2px; }
.preview-info { padding-top:14px; }
.preview-info h2 { font-family:Cormorant,Georgia,serif; font-size:46px; margin-top:13px; }
.preview-info>p:not(.eyebrow) { color:var(--muted); font-size:16px; margin-top:20px; }
.preview-facts { display:grid; grid-template-columns:1fr 1fr; gap:12px; font-size:13px; color:#decedf; border-bottom:1px solid var(--line); padding-block:24px; margin-top:5px; }
.preview-facts span:before { content:'✓'; color:var(--pink); margin-right:7px; }
.download-button { width:100%; margin-top:24px; font-size:14px; }
.preview-info .download-note { text-align:center; font-size:11px!important; margin-top:9px!important; }
.preview-info .download-note a { color:var(--pink); border-bottom:1px solid var(--line); }
.design-list { margin-top:20px; padding:13px 17px; border:1px solid var(--line); border-radius:14px; }
.design-list summary { display:flex; justify-content:space-between; align-items:center; cursor:pointer; list-style:none; font-size:14px; font-weight:600; }
.design-list summary::-webkit-details-marker { display:none; }
.design-list summary span { color:var(--pink); font-size:21px; font-weight:300; line-height:1; transition:transform .2s; }
.design-list[open] summary span { transform:rotate(45deg); }
.design-list ol { columns:2; column-gap:26px; margin:13px 0 2px; padding-left:24px; font-size:13px; line-height:1.8; color:#decedf; }
.design-list li { break-inside:avoid; }
.design-list li::marker { color:#9c749b; font-size:11px; }
.design-list li.sampled { color:var(--pink); }
.design-list li.on-screen { font-weight:700; }
.purchase-box { padding:19px; border:1px solid var(--line); border-radius:14px; margin-top:23px; }
.purchase-box strong { font-size:16px; font-weight:600; }
.purchase-box p { color:var(--muted); font-size:13px; line-height:1.5; margin-top:8px; }
.purchase-box .button { width:100%; margin-top:15px; font-size:13px; }
.preview-info .preview-disclosure { font-size:11px!important; line-height:1.5; margin-top:18px!important; }
.noscript-message { padding:20px; background:#382440; text-align:center; }
.noscript-message a { text-decoration:underline; }
.motion-enabled .revealed { animation:gentle-entrance .45s var(--ease) both; }
@keyframes gentle-entrance { from { opacity:.7; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media(max-width:1100px) {
  .section-shell,.header-wrap { width:calc(100% - 64px); }
  .nav-links { gap:20px; } .brand { font-size:22px; } .nav-cta { font-size:13px; gap:12px; }
  .hero { gap:35px; } .hero h1 { font-size:76px; } .hero-covers { gap:22px; } .hero-art { padding-inline:12px; }
  .facts-strip>div { padding-inline:17px; gap:9px; } .facts-strip strong { font-size:22px; } .facts-strip span { font-size:12px; }
  .chooser-item { gap:8px; padding:11px; } .chooser-item>img { width:33px; } .chooser-item strong { font-size:14px; } .chooser-number { display:none; }
  .sample-card { gap:18px; padding:17px; } .sample-caption strong { font-size:28px; } .sample-blurb { font-size:13px; }
  .ritual-inner { gap:45px; } .faq-section { gap:45px; }
  .finder-section { gap:40px; } .finder-card { padding:26px; } .finder-result { grid-template-columns:150px 1fr; gap:26px; }
  .why-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .sampler-card { padding:32px; gap:24px; }
}
@media(max-width:800px) {
  .section-shell,.header-wrap { width:calc(100% - 40px); }
  .header-wrap { top:12px; margin-top:16px; } .nav { padding:10px 13px; gap:12px; }
  .brand { font-size:21px; } .brand-mark { width:36px; height:36px; } .brand-mark svg { width:22px; height:22px; } .brand small { font-size:7px; }
  .menu-toggle { display:block; flex-shrink:0; } .nav-cta { margin-left:auto; padding:8px 12px; font-size:12px; }
  .nav-links { display:none; position:absolute; top:74px; left:0; width:100%; background:#26172ff5; border:1px solid var(--line); border-radius:22px; padding:16px; flex-direction:column; gap:0; }
  .nav-links a { padding:12px 14px; border-bottom:1px solid #a8689125; } .nav-links a:last-child { border:0; }
  .nav.nav-open .nav-links { display:flex; }
  .nav.nav-open .menu-toggle span:first-child { transform:translateY(4px) rotate(45deg); }
  .nav.nav-open .menu-toggle span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .hero { gap:24px; padding-top:47px; padding-bottom:64px; } .hero h1 { font-size:65px; } .hero .eyebrow { font-size:9px; }
  .hero-description { font-size:16px; } .hero-art { padding-inline:9px; } .hero-covers { gap:20px; } .art-caption { font-size:7px; letter-spacing:.15em; }
  .hero-actions { gap:16px; margin-top:23px; } .button { font-size:14px; gap:18px; min-height:51px; padding-left:18px; } .button-arrow { width:34px; height:34px; }
  .facts-strip>div { flex-direction:column; align-items:start; padding-inline:17px; gap:6px; } .facts-strip span { font-size:12px; }
  .book-chooser { grid-template-columns:repeat(2,minmax(0,1fr)); } .chooser-item>img { width:39px; } .chooser-item strong { font-size:17px; } .chooser-number { display:block; }
  .book-stage { height:382px; } .carousel-book { width:225px; }
  .carousel-book[data-position='-1'] { transform:translateX(calc(-50% - 235px)) translateY(48px) rotate(-12deg) scale(.79); }
  .carousel-book[data-position='1'] { transform:translateX(calc(-50% + 235px)) translateY(48px) rotate(12deg) scale(.79); }
  .active-book { grid-template-columns:1fr; text-align:center; gap:18px; padding-inline:12px; } .active-book h3 { font-size:43px; }
  .active-book-copy>p { margin:auto; font-size:16px; } .active-book-actions { justify-content:center; }
  .sample-card { grid-template-columns:1fr; gap:20px; padding:20px; } .sample-frame { max-width:260px; width:100%; margin:auto; }
  .sample-caption { gap:10px; } .sample-caption strong { font-size:31px; } .sample-blurb { font-size:14px; }
  .split-heading>p { max-width:245px; font-size:15px; }
  .ritual-inner { gap:25px; padding-block:44px; } .ritual-copy>p:not(.eyebrow) { font-size:15px; }
  .faq-section { gap:35px; } .faq-list summary { font-size:16px; }
  .footer .brand { font-size:18px; } .footer p { font-size:10px; } .back-top { font-size:11px; }
  .dialog-content { gap:25px; } .preview-info h2 { font-size:39px; } .preview-facts { font-size:11px; }
  .finder-section { grid-template-columns:1fr; gap:28px; padding-top:72px; } .finder-intro { text-align:center; } .finder-intro>p:not(.eyebrow) { margin-inline:auto; }
  .sampler-card { grid-template-columns:1fr; gap:6px; padding:30px 24px 34px; text-align:center; } .sampler-copy>p:not(.eyebrow):not(.download-note) { margin-inline:auto; }
  .gift-band { grid-template-columns:1fr; text-align:center; } .gift-band p:not(.eyebrow):not(.share-status) { margin-inline:auto; } .share-button { justify-self:center; }
}
@media(max-width:600px) {
  html { scroll-padding-top:95px; }
  .section-shell,.header-wrap { width:calc(100% - 36px); }
  .nav { padding:10px 14px; } .nav-cta { display:none; } .brand { font-size:22px; }
  .hero { grid-template-columns:1fr; padding-top:39px; gap:30px; padding-bottom:56px; }
  .hero h1 { font-size:clamp(59px,15.8vw,76px); margin-top:18px; } .hero .eyebrow { font-size:9px; letter-spacing:.14em; }
  .hero-description { max-width:340px; margin-top:26px; font-size:17px; }
  .hero-actions { gap:17px; } .hero-actions .button { font-size:13px; gap:12px; padding-left:15px; } .hero-actions .text-button { font-size:12px; gap:7px; }
  .hero .launch-note { margin-top:16px; } .hero-art { max-width:355px; padding:4px 18px 0; } .hero-covers { gap:22px 23px; }
  .art-caption { font-size:8px; margin-top:22px; letter-spacing:.15em; } .hero-orbit { height:84%; top:2%; }
  .scroll-cue { bottom:12px; font-size:10px; } .hero-grid { inset:-95px -18px 0; }
  .facts-strip { grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px 10px; padding:25px 4px; }
  .facts-strip>div,.facts-strip>div:first-child,.facts-strip>div:last-child { border:0; padding:0; flex-direction:row; align-items:center; gap:10px; }
  .facts-strip strong { font-size:23px; } .facts-strip span { font-size:12px; max-width:83px; }
  .facts-strip>div:nth-child(3) strong { font-size:20px; } .facts-strip>div:nth-child(4) strong { font-size:19px; }
  .eyebrow { font-size:10px; letter-spacing:.15em; }
  .collection-section { padding-top:57px; } .section-heading h2 { font-size:39px; max-width:320px; margin-inline:auto; } .section-heading>p:last-child:not(.eyebrow) { font-size:15px; max-width:290px; margin-inline:auto; }
  .carousel { margin-top:24px; } .book-stage { height:331px; } .carousel-book { width:200px; }
  .carousel-book[data-position='0'] { transform:translateX(-50%) scale(1.01); }
  .carousel-book[data-position='-1'] { transform:translateX(calc(-50% - 184px)) translateY(46px) rotate(-12deg) scale(.73); opacity:.72; }
  .carousel-book[data-position='1'] { transform:translateX(calc(-50% + 184px)) translateY(46px) rotate(12deg) scale(.73); opacity:.72; }
  .carousel-arc { width:650px; height:600px; top:108px; } .carousel-orbit { width:710px; height:650px; top:86px; }
  .carousel-controls { gap:20px; margin-top:-18px; } .carousel-hint { font-size:8px; padding-block:13px 15px; }
  .active-book { padding:24px 3px 29px; } .active-book h3 { font-size:40px; } .active-book-actions { flex-direction:column; gap:12px; }
  .availability { max-width:none; font-size:11px; }
  .book-chooser { gap:10px; padding-top:19px; } .chooser-item { gap:9px; padding:11px; border-radius:13px; } .chooser-item>img { width:30px; }
  .chooser-item strong { font-size:15px; } .chooser-item small { font-size:9px; } .chooser-number { display:none; }
  .inside-section { padding-block:62px; } .split-heading { display:block; } .split-heading h2 { font-size:39px; } .split-heading>p { max-width:325px; margin-top:18px; font-size:16px; }
  .sample-grid { gap:16px; margin-top:27px; } .sample-card { padding:13px; gap:14px; border-radius:16px; }
  .sample-caption { gap:8px; } .sample-caption .eyebrow { font-size:8px; letter-spacing:.06em; } .sample-caption strong { font-size:25px; }
  .sample-blurb { display:none; } .sample-caption small { font-size:11px; margin-top:4px; } .sample-caption small span { font-size:16px; }
  .ritual-inner { grid-template-columns:1fr; gap:28px; padding-block:34px 43px; } .ritual-art { width:290px; max-width:100%; }
  .ritual-copy { padding-inline:4px; } .ritual-copy h2 { font-size:42px; } .ritual-copy>p:not(.eyebrow) { font-size:16px; }
  .faq-section { grid-template-columns:1fr; gap:30px; padding-block:58px 36px; } .faq-section h2 { font-size:40px; } .faq-list summary { font-size:17px; gap:17px; }
  .final-section { padding:43px 16px 39px; border-radius:25px; } .final-section h2 { font-size:50px; } .final-section>p:not(.eyebrow) { font-size:15px; }
  .final-star { top:62px; left:8%; font-size:24px; } .final-orbit { width:630px; height:460px; }
  .footer { flex-wrap:wrap; gap:23px; padding-block:30px 26px; } .footer .brand { font-size:20px; } .footer p { order:3; width:100%; text-align:left; border-top:1px solid var(--line); padding-top:17px; }
  .back-top { font-size:0; } .back-top span { font-size:17px; width:36px; height:36px; }
  dialog { width:calc(100% - 22px); max-height:calc(100dvh - 22px); padding:16px; border-radius:18px; }
  .dialog-head { top:-16px; } .dialog-head .eyebrow { font-size:9px; letter-spacing:.09em; }
  .dialog-close { width:36px; height:36px; } .dialog-content { grid-template-columns:1fr; gap:20px; } .preview-paper { max-width:290px; }
  .preview-info { padding-top:5px; } .preview-info h2 { font-size:40px; } .preview-info>p:not(.eyebrow) { font-size:16px; }
  .preview-facts { font-size:13px; gap:14px; } .download-button { font-size:14px; margin-top:22px; }
  #page-count { min-width:0; max-width:170px; line-height:1.35; } .design-list ol { columns:1; }
  .finder-section { padding-top:58px; } .finder-card { min-height:0; padding:22px 18px 24px; border-radius:20px; } .finder-card h3 { font-size:31px; }
  .finder-option { padding:14px 16px; font-size:15px; } .finder-options.visual { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .finder-result { grid-template-columns:1fr; gap:18px; min-height:0; text-align:center; } .finder-cover { width:140px; margin:6px auto 0; } .finder-result h3 { font-size:38px; }
  .finder-result p:not(.eyebrow) { margin-inline:auto; } .finder-actions { flex-direction:column; gap:16px; }
  .sampler-card { padding:24px 16px 28px; border-radius:20px; } .sampler-pages { height:190px; } .sampler-pages img { width:106px; }
  .why-section { padding-bottom:62px; } .why-grid { grid-template-columns:1fr; gap:12px; margin-top:28px; }
  .why-card { display:grid; grid-template-columns:52px 1fr; column-gap:16px; padding:20px 18px; } .why-icon { grid-row:span 2; } .why-card h3 { margin-top:3px; font-size:19px; } .why-card p { margin-top:6px; }
  .gift-band { padding:26px 18px; border-radius:20px; } .gift-band h3 { font-size:30px; }
  .launch-row { flex-direction:column; border-radius:20px; } .launch-row input { padding:12px 14px; } .launch-row .button { justify-content:center; gap:14px; }
}
@media(max-width:360px) {
  .section-shell,.header-wrap { width:calc(100% - 28px); } .hero-grid { inset-inline:-14px; }
  .hero h1 { font-size:57px; } .hero-actions { gap:12px; } .hero-actions .button { font-size:12px; } .hero-actions .text-button { font-size:11px; }
  .facts-strip span { font-size:11px; } .facts-strip>div { gap:7px; }
  .chooser-item { padding:9px; gap:8px; } .chooser-item>img { width:26px; } .chooser-item strong { font-size:13px; }
  .sample-card { padding:11px; } .sample-caption strong { font-size:22px; } .sample-caption small { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; } *,*:before,*:after { transition:none!important; animation:none!important; }
  .motion-enabled .reveal:not(.revealed) { opacity:1; transform:none; }
}

/* Reading and interaction support, including high contrast and forced colors. */
:where(a, button, input, summary, [tabindex]):focus-visible { outline:3px solid #faf3ee; outline-offset:4px; box-shadow:0 0 0 6px #160e22; }
:where(a, button, input, summary, [tabindex]) { scroll-margin-block:120px 28px; }
.carousel-dot { min-width:44px; min-height:44px; }
.dialog-close { min-width:44px; min-height:44px; }
.finder-back,.finder-restart,.text-button,.launch-note a,.back-top { min-height:44px; display:inline-flex; align-items:center; }
.footer-links { width:100%; display:flex; justify-content:center; flex-wrap:wrap; gap:12px 25px; border-top:1px solid var(--line); padding-top:15px; }
.footer-links a,.footer-links button { font-size:14px; min-height:44px; display:inline-flex; align-items:center; background:none; padding:4px 0; text-decoration:underline; text-underline-offset:4px; }
#accessibility-dialog { max-width:620px; }
#accessibility-dialog h2 { font-size:30px; max-width:450px; }
#accessibility-dialog .dialog-head { align-items:start; }
#accessibility-dialog p { color:var(--muted); font-size:16px; line-height:1.6; }
#accessibility-settings { margin-block:22px; }
#accessibility-settings fieldset { border:1px solid #9c749b; border-radius:12px; padding:14px 18px; margin:0 0 16px; }
#accessibility-settings legend { padding-inline:7px; }
#accessibility-settings label { display:flex; align-items:center; gap:12px; min-height:48px; cursor:pointer; }
#accessibility-settings input { width:22px; height:22px; accent-color:var(--pink); flex-shrink:0; }
#accessibility-reset { background:#382442; border:1px solid #9c749b; margin:18px 0 12px; }
#accessibility-status { min-height:26px; }
#accessibility-dialog .settings-note { margin-bottom:16px; font-size:14px; }
html[data-reading='large'] { font-size:20px; }
html[data-reading='large'] :is(p:not(.eyebrow),.finder-option,.faq-list summary,.preview-facts,.sample-blurb,.launch-note,.chooser-item small,.download-note) { font-size:1.05rem!important; line-height:1.65; }
html[data-reading='large'] :is(.button,.text-button,.nav-links a,.footer-links a,.footer-links button) { font-size:1rem!important; white-space:normal; }
html[data-reading='large'] .nav { flex-wrap:wrap; }
html[data-reading='large'] .nav-links { gap:16px; }
html[data-reading='large'] .launch-note { flex-wrap:wrap; }
html[data-contrast='high'] { --bg:#0b0810; --surface:#0b0810; --muted:#faf3ee; --line:#c7bacd; }
html[data-contrast='high'] :is(.nav,.nav-links,.sample-card,.finder-card,.finder-option,.why-card,.gift-band,.sampler-card,.final-section,dialog,.dialog-head,.chooser-item,.round-button) { background:#0b0810; border-color:#c7bacd; }
html[data-contrast='high'] :is(.availability,.art-caption,.carousel-hint,.footer p,.design-list li::marker) { color:#faf3ee; }
html[data-motion='reduce'] { scroll-behavior:auto; }
html[data-motion='reduce'] *,html[data-motion='reduce'] *::before,html[data-motion='reduce'] *::after { animation:none!important; transition:none!important; }
html[data-motion='reduce'] .motion-enabled .reveal { opacity:1; transform:none; }
.legal-page main { max-width:850px; padding-block:65px 80px; overflow:visible; }
.legal-page h1 { font-size:clamp(38px,7vw,64px); margin-bottom:24px; }
.legal-page h2 { font-size:28px; margin:35px 0 15px; }
.legal-page p,.legal-page li { color:var(--muted); font-size:18px; line-height:1.7; }
.legal-page p+p { margin-top:16px; }
.legal-page a:not(.brand) { text-decoration:underline; text-underline-offset:4px; }
.legal-page .header-wrap { position:static; }
.legal-page .nav { flex-wrap:wrap; }
.legal-page .updated { font-size:14px; }
@media(max-width:600px) {
  .footer-links { justify-content:flex-start; gap:6px 18px; }
  .back-top span { width:44px; height:44px; }
  html[data-reading='large'] .sample-grid { grid-template-columns:1fr; }
  html[data-reading='large'] .sample-card { grid-template-columns:1fr 1fr; }
  html[data-reading='large'] .facts-strip { grid-template-columns:1fr; }
  html[data-reading='large'] .hero-actions { align-items:stretch; }
  html[data-reading='large'] .hero-actions>* { white-space:normal; }
  #accessibility-dialog h2 { font-size:25px; }
}
@media(forced-colors:active) {
  a,button,input,summary { forced-color-adjust:auto; }
  .button,.round-button,.chooser-item,.carousel-dot,.finder-option,.page-thumb { border:1px solid ButtonText; }
  :focus-visible { outline:3px solid Highlight; box-shadow:none; }
  .carousel-dot::before { background:ButtonText; }
  .carousel-dot[aria-current='true']::before { background:Highlight; }
}
/* Keep the navigation and its decorative background within the reading width. */
.nav { flex-wrap:wrap; }
.header-wrap::before { left:-48px; right:-48px; width:auto; transform:none; }
.facts-strip>div { flex-wrap:wrap; }
@media(max-width:800px) { .header-wrap::before { left:-20px; right:-20px; } }
@media(max-width:600px) { .header-wrap::before { left:-18px; right:-18px; } }
@media(max-width:360px) { .header-wrap::before { left:-14px; right:-14px; } }

/* The accessibility controls stay available throughout the page. */
#accessibility-open { position:fixed; right:20px; bottom:20px; z-index:45; min-height:44px; padding:10px 18px; border-radius:30px; border:1px solid var(--pink); background:#24162f; color:var(--white); box-shadow:0 4px 20px #0005; text-decoration:none; }
body { padding-bottom:70px; }
:where(a,button,input,summary,[tabindex]) { scroll-margin-bottom:90px; }
@media(max-width:600px) { #accessibility-open { right:14px; bottom:14px; font-size:13px; padding:9px 14px; } }

/* Approved Stillbloom publisher identity; collection names remain on books. */
.publisher-brand { display:flex; flex-direction:column; align-items:flex-start; gap:5px; width:225px; min-width:0; flex-shrink:1; }
.publisher-brand .publisher-logo { width:225px; height:auto; aspect-ratio:auto; }
.collection-label { font-family:Assistant,Arial,sans-serif; font-size:8px; line-height:1.3; letter-spacing:.16em; font-weight:600; color:var(--muted); padding-left:57px; white-space:nowrap; }
.footer .publisher-brand { width:225px; min-width:200px; flex-shrink:0; }
.legal-page .publisher-brand { text-decoration:none; }
.legal-page .header-wrap::before { display:none; }
@media(max-width:1100px) { .publisher-brand, .publisher-brand .publisher-logo { width:205px; } .collection-label { padding-left:52px; font-size:7.2px; } }
@media(max-width:600px) { .publisher-brand, .publisher-brand .publisher-logo { width:200px; } .collection-label { padding-left:50px; font-size:7px; } .nav { column-gap:10px; } .nav-links { top:88px; } }
@media(max-width:800px) { .footer { flex-wrap:wrap; } }
