:root { --ink:#24222f; --paper:#f5f3f8; --violet:#4b4770; --gold:#e3b25e; --periwinkle:#8c93c4; --sage:#8fa88c; --line:#dbd7e4; --serif:'Spectral', Georgia, serif; --sans:'Nunito Sans', system-ui, sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); font:400 1rem/1.6 var(--sans); } a { color:inherit; }
.skip-link { position:absolute; left:-999px; }.skip-link:focus { left:1rem; top:1rem; z-index:10; padding:.6rem 1rem; background:var(--ink); color:#fff; }
.site-header { width:min(1160px,calc(100% - 3rem)); min-height:92px; margin:auto; display:flex; justify-content:space-between; align-items:center; gap:2rem; }.brand { display:flex; gap:.65rem; align-items:center; text-decoration:none; font:600 1.25rem/1 var(--serif); letter-spacing:.01em; }.brand em { color:var(--violet); font-style:normal; }.brand small { display:block; margin-top:.25rem; color:var(--violet); font:700 .57rem/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; }.brand-mark { width:2.5rem; height:2.5rem; object-fit:contain; } nav { display:flex; align-items:center; gap:1.45rem; font-size:.92rem; font-weight:700; } nav a { text-decoration:none; } nav a:hover { color:var(--violet); }.nav-button { border:1px solid var(--violet); border-radius:99px; padding:.52rem 1rem; color:var(--violet); }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:var(--serif); line-height:1.1; letter-spacing:-.018em; } h1 { font-size:clamp(2.45rem,5vw,4.45rem); font-weight:500; max-width:800px; margin-bottom:1.2rem; } h2 { font-size:clamp(1.8rem,3vw,2.75rem); font-weight:600; margin-bottom:1rem; } h3 { font-size:1.35rem; font-weight:600; margin-bottom:.45rem; }.eyebrow { margin:0 0 .7rem; color:var(--violet); font-size:.7rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }.lede { max-width:670px; color:#4c495d; font-size:1.12rem; }.actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.2rem; margin-top:2rem; }.button { display:inline-block; text-decoration:none; font-weight:800; }.button-primary,.button-gold { border-radius:99px; padding:.8rem 1.25rem; }.button-primary { background:var(--violet); color:#fff; }.button-gold { background:var(--gold); color:var(--ink); }.button-text { color:var(--violet); padding:.8rem 0; }.button-text span,.buy-link span { margin-left:.35rem; }
.hero-bento { width:min(1160px,calc(100% - 3rem)); height:560px; margin:1rem auto 3.5rem; display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(2,minmax(160px,1fr)); grid-template-areas:'anchor anchor kids tweens' 'anchor anchor adults accent'; gap:1rem; }.bento-tile { position:relative; overflow:hidden; border-radius:1.25rem; background:var(--line); }.bento-tile img { display:block; width:100%; height:100%; object-fit:cover; }.bento-anchor { grid-area:anchor; }.bento-kids { grid-area:kids; }.bento-tweens { grid-area:tweens; }.bento-adults { grid-area:adults; }.bento-accent { grid-area:accent; display:grid; place-items:center; padding:1rem; background:var(--violet); }.bento-accent img { width:3rem; height:3rem; object-fit:contain; }.hero-bento-copy { width:min(900px,calc(100% - 3rem)); margin:0 auto 5.5rem; text-align:center; }.hero-bento-copy .lede { margin:0 auto; }.hero-bento-copy .actions { justify-content:center; }.page-hero { width:min(1160px,calc(100% - 3rem)); margin:3rem auto 5rem; }.explorer-hero { min-height:48vh; padding:5rem 0; background:linear-gradient(110deg,transparent 35%,rgba(140,147,196,.18)); }
.intro { width:min(760px,calc(100% - 3rem)); margin:0 auto 6rem; text-align:center; }.intro p:last-child { color:#4c495d; font-size:1.08rem; }.how-it-works,.collections,.updates { padding:5.5rem max(1.5rem,calc((100% - 1160px)/2)); }.how-it-works { background:#e7e6f0; display:grid; grid-template-columns:.75fr 1.25fr; gap:4rem; }.steps { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }.steps span { color:var(--violet); font-size:.85rem; font-weight:800; }.steps p,.section-heading>p,.book-card p,.blog-card p { color:#595566; }.collections { background:#faf9fc; }.section-heading { display:flex; justify-content:space-between; gap:3rem; align-items:end; margin-bottom:2.5rem; }.section-heading>p { max-width:360px; }.book-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; margin-bottom:2rem; }.book-card { display:grid; grid-template-columns:140px 1fr; gap:1.25rem; padding:1.25rem; border:1px solid var(--line); border-radius:1rem; background:var(--paper); }.book-card img { width:100%; height:180px; object-fit:cover; border-radius:.65rem; }.book-card .badge { display:inline-block; margin-bottom:.4rem; color:var(--violet); font-size:.68rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.book-card p { font-size:.94rem; margin-bottom:.85rem; }.buy-link,.status { display:inline-block; border:1px solid var(--violet); border-radius:99px; padding:.46rem .9rem; color:var(--violet); font-size:.86rem; font-weight:800; text-decoration:none; }.status { border-color:var(--line); color:#777283; }
.collection-grid,.blog-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }.collection-card,.blog-card { padding:1.5rem; border-radius:1.2rem; }.collection-card { min-height:300px; display:flex; flex-direction:column; }.collection-card .card-art { margin-bottom:auto; font:4.2rem var(--serif); }.collection-card span { font-size:.67rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.accent-coral { background:#eee1c9; }.accent-sky { background:#dde0f1; }.accent-leaf { background:#dfeadf; }.updates { background:var(--ink); color:#fff; display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }.updates .eyebrow { color:var(--gold); }.updates p { color:#d9d6e2; }.site-footer { display:flex; justify-content:space-between; gap:1rem; padding:2rem max(1.5rem,calc((100% - 1160px)/2)); border-top:1px solid rgba(255,255,255,.15); background:var(--ink); color:#d9d6e2; font-size:.85rem; }.site-footer p { margin:0; }.site-footer a { color:#f0cf91; font-weight:700; text-decoration:none; }
@media (max-width:760px) { .site-header { width:min(100% - 2rem,1160px); min-height:80px; } nav a:not(.nav-button):not(.nav-cart) { display:none; }.hero-bento { width:min(100% - 2rem,1160px); height:auto; grid-template-columns:1fr 1fr; grid-template-rows:220px 130px 130px; grid-template-areas:'anchor anchor' 'kids tweens' 'adults accent'; }.hero-bento-copy { width:min(100% - 2rem,900px); }.how-it-works,.updates { grid-template-columns:1fr; gap:2rem; padding-top:4rem; padding-bottom:4rem; }.steps,.collection-grid,.blog-grid,.book-grid { grid-template-columns:1fr; }.steps { gap:1.5rem; }.section-heading { display:block; }.book-card { grid-template-columns:1fr; }.book-card img { height:220px; }.site-footer { display:block; }.site-footer p+p { margin-top:.5rem; } }

.legal-hero { padding:4.5rem max(1.5rem,calc((100% - 1160px)/2)); background:#e7e6f0; }.legal-hero>div,.legal-page { width:min(760px,100%); }.legal-hero .lede { margin-bottom:0; font-size:1rem; }.legal-page { margin:4.5rem auto 6rem; }.legal-page>p { color:#4c495d; font-size:1.06rem; }.legal-page h2 { margin:2.6rem 0 .75rem; font-size:1.7rem; }.legal-page a { color:var(--violet); font-weight:700; }.legal-page p { margin-bottom:1.05rem; }
.free-page { background:#faf9fc; }.free-hero { width:min(1080px,calc(100% - 3rem)); margin:2rem auto 5rem; display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.45fr); gap:3rem; align-items:center; }.free-hero img { width:100%; max-height:min(48vh,420px); object-fit:contain; border:1px solid var(--line); border-radius:1.25rem; background:#fff; }.free-note { font-weight:700; }.download-actions { display:flex; flex-wrap:wrap; gap:1rem; margin:1.8rem 0 .9rem; }.fine-print { color:#595566; font-size:.85rem; }.fine-print a { color:var(--violet); }.free-email { padding:4rem max(1.5rem,calc((100% - 900px)/2)); display:flex; justify-content:space-between; gap:2rem; align-items:center; background:#e7e6f0; }.free-email>div { max-width:560px; }.free-email h2 { margin-bottom:.7rem; }.free-email p:last-child { margin-bottom:0; } @media (max-width:760px) { .free-hero { grid-template-columns:1fr; gap:2rem; margin-top:1.5rem; }.free-hero img { order:-1; max-height:42vh; }.free-email { display:block; }.free-email>p { margin-top:1rem; } }
.free-catalog-intro,.free-catalog { width:min(1160px,calc(100% - 3rem)); margin-inline:auto; }.free-catalog-intro { padding:3rem 0 2rem; max-width:760px; margin-left:max(1.5rem,calc((100% - 1160px)/2)); }.free-catalog { padding-bottom:5rem; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }.free-card { overflow:hidden; border:1px solid var(--line); border-radius:1rem; background:#fff; }.free-card a { display:block; height:100%; color:inherit; text-decoration:none; }.free-card img { width:100%; aspect-ratio:1/1; display:block; object-fit:contain; border-bottom:1px solid var(--line); }.free-card div { padding:1.15rem; }.free-card h2 { font-size:1.35rem; margin:.25rem 0 .7rem; }.free-card span { color:var(--violet); font-size:.9rem; font-weight:800; } @media (max-width:760px) { .free-catalog { grid-template-columns:1fr; }.free-catalog-intro { margin-left:1.5rem; } }
.access-page { min-height:calc(100vh - 180px); padding:4rem 1.5rem; display:grid; place-items:center; background:#faf9fc; }.access-card { width:min(100%,620px); padding:2.5rem; border:1px solid var(--line); border-radius:1.25rem; background:#fff; box-shadow:0 12px 35px rgba(35,30,50,.08); }.access-card form { display:grid; gap:1rem; margin-top:1.5rem; }.access-card input[type="email"] { width:100%; padding:.8rem 1rem; border:1px solid var(--line); border-radius:.55rem; font:inherit; }.access-card .check { display:flex; gap:.65rem; align-items:flex-start; font-size:.92rem; }.access-card .check input { margin-top:.22rem; }.honeypot { position:absolute; left:-9999px; }.form-error { padding:.8rem 1rem; border-radius:.55rem; background:#fbe6e5; color:#8d2720; font-weight:700; } @media (max-width:760px) { .access-card { padding:1.5rem; } }
.book-detail { width:min(100% - 3rem,960px); margin:3.5rem auto 5rem; display:grid; grid-template-columns:minmax(240px,.7fr) minmax(0,1fr); gap:3rem; align-items:center; }.book-detail>img { width:100%; max-height:620px; object-fit:contain; border:1px solid var(--line); border-radius:1rem; background:#fff; }.book-detail h1 { margin-bottom:1rem; }.book-detail .lede { margin-bottom:1.25rem; } .book-card h3 a { color:inherit; text-decoration:none; } @media (max-width:760px) { .book-detail { grid-template-columns:1fr; gap:2rem; margin-top:2rem; }.book-detail>img { max-height:460px; } }
.book-downloads { padding:3rem max(1.5rem,calc((100% - 960px)/2)) 4rem; background:#e7e6f0; }.book-downloads p:last-child { max-width:680px; margin-bottom:0; }
.analytics-consent { position:fixed; z-index:20; right:1rem; bottom:1rem; width:min(calc(100% - 2rem),440px); padding:1.1rem 1.2rem; border:1px solid var(--line); border-radius:1rem; background:#fff; box-shadow:0 12px 35px rgba(35,30,50,.18); }.analytics-consent p { margin:.1rem 0 .8rem; font-size:.9rem; }.analytics-consent div { display:flex; flex-wrap:wrap; gap:.65rem; }.analytics-consent .button { padding:.6rem .85rem; font-size:.85rem; }.analytics-consent p:last-child { margin:.75rem 0 0; font-size:.78rem; }
.preview-button { position:relative; padding:0; border:0; background:transparent; cursor:zoom-in; font:700 .78rem var(--sans); color:var(--violet); }.preview-button img { display:block; }.preview-button span { display:block; padding-top:.55rem; text-align:center; }.preview-dialog { width:min(650px,calc(100% - 2rem)); max-height:92vh; padding:1rem; border:0; border-radius:1rem; background:var(--paper); box-shadow:0 1rem 4rem rgba(36,34,47,.35); }.preview-dialog::backdrop { background:rgba(36,34,47,.65); }.preview-dialog img { display:block; width:auto; max-width:100%; max-height:78vh; margin:.75rem auto 0; }.preview-close { display:block; margin-left:auto; border:1px solid var(--violet); border-radius:99px; padding:.4rem .7rem; background:transparent; color:var(--violet); font:700 .8rem var(--sans); cursor:pointer; }


.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.color-options { padding:2.5rem max(1.5rem,calc((100% - 1100px)/2)) 1rem; }.color-options-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.2rem; }.color-options-grid article { padding:1.4rem; border:1px solid var(--line); border-radius:1rem; background:#fff; }.color-options-grid h3 { margin-bottom:.5rem; }.color-options-grid .status { display:inline-block; }.color-options-note { margin:1.2rem 0 0; color:#5e5a70; font-size:.92rem; }
.printable-pages,.printable-free,.printable-faq { padding:3rem max(1.5rem,calc((100% - 1100px)/2)); }.printable-free { background:#e7e6f0; }.printable-faq h3 { margin-top:1.6rem; font-size:1.15rem; }.printable-faq p { max-width:760px; }.printable-buy { display:flex; flex-wrap:wrap; align-items:center; gap:.9rem; margin:1.5rem 0; }.printable-buy span { color:#5e5a70; font-size:.9rem; }.printable-facts { margin:0 0 1.2rem; padding-left:1.1rem; }.printable-facts li { margin-bottom:.45rem; }.printable-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:1rem; margin:1.5rem 0; }.printable-grid-small { grid-template-columns:repeat(3,minmax(0,200px)); }.printable-thumb { padding:0; border:0; background:transparent; cursor:zoom-in; text-align:left; font:600 .8rem var(--sans); color:var(--ink); }.printable-thumb img { display:block; width:100%; height:auto; margin-bottom:.4rem; border:1px solid var(--line); border-radius:.4rem; background:#fff; }
@media (max-width:760px) { .printable-grid-small { grid-template-columns:repeat(3,1fr); } }

.home-blog { padding:5rem max(1.5rem,calc((100% - 1160px)/2)); display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:4rem; align-items:center; background:#e7e6f0; }.home-blog-intro p:not(.eyebrow) { max-width:430px; color:#595566; }.home-blog-feed { max-height:21rem; overflow-y:auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:1rem; background:#fff; box-shadow:0 12px 35px rgba(35,30,50,.06); }.home-blog-feed:focus-visible { outline:3px solid var(--violet); outline-offset:3px; }.home-blog-feed ul { list-style:none; margin:0; padding:.35rem 1.25rem; }.home-blog-feed li { padding:.9rem 0; border-bottom:1px solid var(--line); }.home-blog-feed li:last-child { border-bottom:0; }.home-blog-feed a { display:block; color:var(--ink); font-weight:800; line-height:1.35; text-decoration:none; }.home-blog-feed a:hover,.home-blog-feed a:focus-visible { color:var(--violet); text-decoration:underline; }.home-blog-feed span { display:block; margin-top:.25rem; color:#686376; font-size:.76rem; }
.blog-page-hero { margin-bottom:2rem; }.blog-list-section { padding:0 max(1.5rem,calc((100% - 1160px)/2)) 6rem; }.blog-post-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }.blog-post-card { overflow:hidden; border:1px solid var(--line); border-radius:1.1rem; background:#fff; }.blog-post-card img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }.blog-post-card-copy { padding:1.4rem; }.blog-post-card .eyebrow { margin-bottom:.45rem; }.blog-post-card h2 { margin-bottom:.75rem; font-size:1.55rem; }.blog-post-card h2 a { text-decoration:none; }.blog-post-card h2 a:hover { color:var(--violet); }.blog-post-card-copy>p:not(.eyebrow) { color:#595566; }.blog-post-card .button-text { padding:.3rem 0; }
.blog-article-page { background:#faf9fc; padding:3rem 1.5rem 6rem; }.blog-article-shell { width:min(100%,780px); margin:auto; }.blog-article-shell>.eyebrow { margin-bottom:1rem; }.blog-article { overflow-wrap:anywhere; }.blog-article h1 { font-size:clamp(2.2rem,4vw,3.65rem); }.blog-article h2 { margin:2.6rem 0 .85rem; font-size:clamp(1.55rem,2.8vw,2.15rem); }.blog-article h3 { margin:1.8rem 0 .6rem; }.blog-article p,.blog-article li { font-size:1.04rem; line-height:1.75; }.blog-article p { margin-bottom:1.2rem; }.blog-article ul,.blog-article ol { padding-left:1.5rem; margin:0 0 1.5rem; }.blog-article li { margin:.4rem 0; }.blog-article a { color:var(--violet); font-weight:700; }.blog-article img { display:block; max-width:100%; height:auto; margin:1.5rem auto; border-radius:1rem; }.blog-article h1+p { margin-bottom:.75rem; color:#5e5a70; font-size:.88rem; }.blog-article table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; margin:1.5rem 0 2rem; }.blog-article th,.blog-article td { padding:.7rem .8rem; border:1px solid var(--line); text-align:left; vertical-align:top; }.blog-article th { background:#e7e6f0; }.blog-article hr { margin:2.5rem 0; border:0; border-top:1px solid var(--line); }.blog-back { margin-top:3rem; }.blog-back a { color:var(--violet); font-weight:800; }
@media (max-width:760px) { .home-blog { grid-template-columns:1fr; gap:1.5rem; padding-top:4rem; padding-bottom:4rem; }.home-blog-feed { max-height:20rem; }.blog-post-grid { grid-template-columns:1fr; }.blog-article-page { padding-top:2rem; } }
.nav-cart { display:inline-flex; align-items:center; gap:.35rem; white-space:nowrap; }.nav-button { white-space:nowrap; } @media (max-width:760px) { .cart-word { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); } nav { gap:1rem; }.site-header { gap:1rem; } } @media (max-width:400px) { .nav-button { padding:.45rem .75rem; font-size:.85rem; }.brand-mark { width:2rem; height:2rem; } }.cart-count { min-width:1.35rem; padding:.05rem .4rem; border-radius:99px; background:var(--gold); color:var(--ink); font-size:.75rem; text-align:center; }.cart-count[hidden] { display:none; }.button-cart { border:1px solid var(--violet); border-radius:99px; padding:.75rem 1.2rem; background:transparent; color:var(--violet); font:800 1rem var(--sans); cursor:pointer; }.button-cart[aria-pressed="true"] { background:#e7e6f0; }.cart-dialog { width:min(440px,calc(100% - 2rem)); margin:0 0 0 auto; height:100%; max-height:none; padding:1.5rem; border:0; background:var(--paper); box-shadow:-1rem 0 3rem rgba(36,34,47,.25); }.cart-dialog::backdrop { background:rgba(36,34,47,.55); }.cart-head { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; }.cart-head h2 { margin:0; font-size:1.7rem; }.cart-head .preview-close { margin:0; }.cart-items { list-style:none; margin:0 0 1rem; padding:0; }.cart-items li { display:grid; grid-template-columns:1fr auto; gap:.2rem 1rem; padding:.9rem 0; border-bottom:1px solid var(--line); }.cart-remove { justify-self:start; padding:0; border:0; background:none; color:var(--violet); font:700 .82rem var(--sans); text-decoration:underline; cursor:pointer; }.cart-total { display:flex; justify-content:space-between; font-size:1.1rem; }.cart-empty a { color:var(--violet); font-weight:700; }
