/* Lunea book pages: the same layout as the original natal chart book (book/index.html), shared by the app preview and the PDF. */
.bk-sheet { --page: #f7f2e8; --ink-book: #2b392f; --ink-soft-book: #66726a; --rule: rgba(43,57,47,0.16); --accent: #be4d13; }
.bk-sheet { background: var(--page); overflow: hidden; box-sizing: border-box; }
.bk-sheet > * { width: 100%; height: 100%; }
.bk-sheet .lu-bookcover, .bk-sheet .lu-opener { width: 100% !important; height: 100%; box-shadow: none !important; border-radius: 0 !important; }
.bk-paper { position: relative; box-sizing: border-box; padding: 2.4em 2.05em 3.2em; display: flex; flex-direction: column; background: var(--page); }
.bk-paper::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.2; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.3 0 0 0 0 0.25 0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"); }
.t-text:nth-child(even) .bk-paper, .bk-sheet:nth-child(even) .bk-paper { box-shadow: inset -18px 0 24px -22px rgba(43,36,33,0.35); }
.bk-sheet:nth-child(odd) .bk-paper { box-shadow: inset 18px 0 24px -22px rgba(43,36,33,0.35); }
.bk-head { display: flex; justify-content: space-between; font-family: var(--font-data); font-size: 0.72em; letter-spacing: 0.12em; padding-bottom: 0.6em; border-bottom: 1px solid var(--rule); margin-bottom: 1.2em; }
.bk-folio { position: absolute; left: 2.05em; right: 2.05em; bottom: 1.15em; display: flex; justify-content: space-between; font-family: var(--font-data); font-size: 0.68em; letter-spacing: 0.12em; color: var(--ink-soft-book); }
.bk-eyebrow { font-family: var(--font-data); font-size: 0.74em; letter-spacing: 0.12em; color: var(--ink-soft-book); margin-bottom: 0.4em; }
.bk-h2 { font-family: var(--font-display); font-weight: 600; font-size: 1.28em; line-height: 1.12; letter-spacing: -0.01em; margin: 0 0 0.45em; }
.bk-lead { font-family: var(--font-data); letter-spacing: 0.02em; font-weight: 400 !important; font-size: calc(var(--fs, 0.7em) * 1.45); line-height: 1.25 !important; line-height: 1.45; font-weight: 500; margin: 0 0 0.8em; }
.bk-p { font-size: var(--fs, 0.7em); line-height: 1.64; margin: 0 0 0.85em; color: #3a4a3f; text-wrap: wrap; hyphens: manual; }
.bk-quote { margin: 0.4em 0 0; padding: 0.8em 0 0; border-top: 1px solid var(--rule); font-family: var(--font-data); font-weight: 400; font-size: 0.92em; letter-spacing: 0.03em; line-height: 1.25; color: var(--accent); }
.bk-notes { margin-top: 1.1em; padding-bottom: 1.2em; display: flex; flex-wrap: wrap; gap: 0.4em; }
.bk-quote + .bk-notes { margin-top: 0.8em; }
.bk-chip { display: inline-flex; align-items: center; height: 2.1em; box-sizing: border-box; padding: 0.12em 0.75em 0; line-height: 1; font-family: var(--font-data); font-size: 0.66em; letter-spacing: 0.1em; border: 1px solid var(--rule); border-radius: 999px; }
.bk-ded, .bk-pause { justify-content: center; align-items: center; text-align: center; }
/* the dedication: who it is for, then a few words that run as one small paragraph, centred */
.bk-ded-to { font-family: var(--font-display); font-weight: 600; font-size: 1.5em; line-height: 1.2; color: var(--ink-book); margin-bottom: 0.7em; }
.bk-ded-txt { margin: 0; max-width: 78%; font-family: var(--font-text); font-weight: 400; font-size: 0.78em; line-height: 1.6; color: var(--ink-soft-book); text-wrap: balance; }
.bk-ded-star { margin-top: 1.6em; color: var(--accent); font-size: 0.9em; }
.bk-bigquote { margin: 0 1.2em; font-family: var(--font-display); font-weight: 600; font-size: 1.45em; line-height: 1.22; color: var(--ink-book); }
.bk-pause-in { display: flex; flex-direction: column; align-items: center; gap: 1.1em; padding: 0 3.4em; margin-top: -2em; }
.bk-pause-ill { position: relative; width: 12em; aspect-ratio: 1; margin: -3em 0 -2.2em; }
.bk-pause-ill .lu-illus { position: absolute; inset: 0; width: 100%; height: 100%; box-shadow: none; border-radius: 0; }
.bk-pause-data { font-family: var(--font-data); font-size: 0.66em; letter-spacing: 0.16em; color: var(--ink-soft-book); }
.bk-pause-data::before { content: "✦  "; color: var(--accent); }
.bk-bigquote { margin: 0; font-size: 1.3em; text-wrap: balance; }
.bk-endpaper, .bk-back { position: relative; overflow: hidden; }
.bk-endpaper img, .bk-back > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bk-endpaper img { filter: blur(18px) saturate(1.05); transform: scale(1.2); opacity: .9; }
.bk-back-txt { position: absolute; left: 0; right: 0; bottom: 8%; display: flex; flex-direction: column; align-items: center; gap: 0.8em; font-family: var(--font-data); font-size: 0.66em; letter-spacing: 0.16em; color: #fff; }
.bk-wheel { flex: 1; display: flex; align-items: center; justify-content: center; margin: 0 -1em; }
.bk-wheel { min-height: 0; }
.bk-wheel .lu-wheel { width: auto !important; height: auto; max-width: 100%; max-height: 100%; aspect-ratio: 1 / 1; }
.bk-sky { padding-top: 3em; }
.bk-sky .bk-wheel { flex: 1 1 auto; align-items: center; margin: 1.5em -1.4em 1.2em; }
.bk-sky-txt { text-align: center; font-family: var(--font-data); color: var(--ink-book); padding-bottom: 0.4em; }
.bk-sky-txt .n { font-size: 1.25em; letter-spacing: 0.06em; }
.bk-sky-txt .t { font-size: 1.5em; letter-spacing: 0.04em; margin-top: 0.1em; }
.bk-sky-txt .s { font-size: 0.98em; letter-spacing: 0.04em; opacity: .75; margin-top: 0.25em; }
.bk-sky-txt .d { font-size: 0.7em; letter-spacing: 0.12em; color: var(--ink-soft-book); margin-top: 1.2em; }
.bk-data { font-family: var(--font-data); font-size: 0.7em; letter-spacing: 0.12em; text-align: center; color: var(--ink-soft-book); line-height: 1.6; margin-bottom: 0.6em; }
.bk-table { width: 100%; border-collapse: collapse; font-family: var(--font-data); font-size: 0.78em; letter-spacing: 0.08em; }
.bk-table td { padding: 0.36em 0.2em; border-bottom: 1px solid var(--rule); }
.bk-table td.g { font-family: var(--font-glyph); width: 1.8em; text-align: center; font-size: 0.95em; }
.bk-table td.n { text-align: right; white-space: nowrap; }
.bk-note { font-family: var(--font-data); font-size: 0.7em; letter-spacing: 0.1em; color: var(--ink-soft-book); margin-top: 1.2em; text-transform: uppercase; }
.bk-three { display: flex; flex-direction: column; gap: 0.9em; margin: 0.4em 0 1.2em; }
.bk-three-row, .bk-aspect { display: grid; grid-template-columns: 2.4em 1fr; gap: 0.8em; align-items: start; padding-bottom: 0.9em; border-bottom: 1px solid var(--rule); }
.bk-three-row { grid-template-columns: 3.2em 1fr !important; align-items: center !important; }
.bk-three-ill { width: 3.2em; display: flex; justify-content: center; }
.bk-h2.has-icon { display: flex; align-items: center; gap: 0.3em; margin-left: -0.2em; }
.bk-table td.g { width: 2em; }
.bk-sheet canvas.lu-picon, .bk-sheet canvas.lu-wheel { display: block; position: static !important; top: auto !important; left: auto !important; }
.bk-three-ill .lu-illus { position: absolute; width: 125% !important; height: auto !important; max-width: none; left: -12.5%; top: -21%; box-shadow: none; border-radius: 0; }
.bk-three-g { font-family: var(--font-glyph); font-size: 1.6em; line-height: 1; text-align: center; color: var(--accent); }
.bk-three-row .bk-p, .bk-aspect .bk-p { margin: 0; }
.bk-bars { display: flex; flex-direction: column; gap: 0.5em; margin: 0.2em 0 1.4em; }
.bk-bar { display: grid; grid-template-columns: 5.6em auto 1fr; gap: 0.6em; align-items: center; min-height: 1.5em; font-family: var(--font-data); font-size: 0.78em; letter-spacing: 0.1em; }
.bk-bar .track { display: flex; gap: 0.35em; }
.bk-bar .track i { width: 0.8em; height: 0.8em; border-radius: 50%; border: 1px solid var(--ink-soft-book); box-sizing: border-box; }
.bk-bar .track i.on { border-color: #e8641a; background: #e8641a; }
.bk-bar .v { font-family: var(--font-glyph); text-align: right; white-space: nowrap; letter-spacing: 0.04em; }
.bk-aspects { display: flex; flex-direction: column; gap: 0.65em; }
.bk-aspects .bk-aspect { padding-bottom: 0.65em; }
.bk-aspect { grid-template-columns: 3.4em 1fr; }
.bk-aspect.is-cut { border-bottom: 0; padding-bottom: 0; }
.bk-aspect-g { font-family: var(--font-glyph); font-size: 0.9em; line-height: 1.5; white-space: nowrap; color: var(--accent); }
.bk-list { list-style: none; margin: 0.4em 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.2em; }
.bk-list li { display: grid; grid-template-columns: 2.2em 1fr; gap: 0.6em; padding: 0.5em 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.bk-list .bk-p { margin: 0; font-family: var(--font-data); font-size: 1.12em; line-height: 1.3; letter-spacing: 0.02em; color: #33473b; }
.bk-list-n { font-family: var(--font-data); font-size: 0.74em; color: var(--accent); letter-spacing: 0.1em; }
.bk-colophon { justify-content: flex-end; }
.bk-claim { margin: auto 0; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.7em; padding: 0 2em; }
.bk-claim-qr { width: 7.2em; height: 7.2em; padding: 0.7em; background: #fdfaf2; border-radius: 0.9em; box-shadow: inset 0 0 0 1px rgba(51, 71, 59, .14); }
.bk-claim-qr svg { width: 100%; height: 100%; display: block; }
.bk-claim-qr svg path, .bk-claim-qr svg rect[fill="black"], .bk-claim-qr svg rect:not([fill="white"]) { fill: #1b2742; }
.bk-claim-h { font-family: var(--font-display); font-weight: 600; font-size: 1.25em; line-height: 1.2; color: var(--ink-book); margin-top: 0.4em; }
.bk-claim-p { font-size: 0.82em; line-height: 1.5; color: var(--ink-soft-book); max-width: 22em; margin: 0; }
.bk-colo { font-family: var(--font-data); font-size: 0.7em; letter-spacing: 0.12em; line-height: 1.7; color: var(--ink-soft-book); text-align: center; margin-bottom: 2.4em; display: flex; flex-direction: column; align-items: center; }
.is-darkpaper .bk-back-q, .is-darkpaper .bk-back-p { color: #f6efe2; }
.is-darkpaper .bk-back-d, .is-darkpaper .bk-back-foot { color: rgba(246,239,226,.75); }
.bk-backc { width: 100% !important; height: 100%; box-shadow: none !important; border-radius: 0 !important; color: var(--ink-book); }
.bk-back-in { position: absolute; inset: 11% 15% 22%; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.bk-back-ill { position: relative; width: 52%; aspect-ratio: 1; margin-bottom: 0.4em; }
.bk-back-ill .lu-illus { position: absolute; inset: 0; width: 100%; height: 100%; box-shadow: none; border-radius: 0; }
.bk-back-q { font-family: var(--font-display); font-weight: 600; font-size: 1.15em; line-height: 1.15; margin-bottom: 0.8em; }
.bk-back-p { font-size: 0.66em; line-height: 1.6; color: #3a4a3f; margin: 0; text-wrap: balance; }
.bk-back-rule { width: 1.6em; height: 1px; background: rgba(43,57,47,.5); margin: 1.3em auto 1.1em; }
.bk-back-d { font-family: var(--font-data); font-size: 0.62em; letter-spacing: 0.18em; line-height: 1.7; color: var(--ink-soft-book); }
.bk-back-foot { position: absolute; left: 0; right: 0; bottom: 9%; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 0.7em; font-family: var(--font-data); font-size: 0.6em; letter-spacing: 0.2em; color: var(--ink-soft-book); }
.bk-backp { justify-content: flex-end; align-items: center; gap: 0.9em; padding-bottom: 3.2em; font-family: var(--font-data); font-size: 0.7em; letter-spacing: 0.16em; color: var(--ink-soft-book); }
.bk-plate { position: relative; overflow: hidden; }
.bk-plate > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bk-plate::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(to top, rgba(20,14,10,0.18), transparent); }
.bk-plate-ill { position: absolute; inset: 0; }
.bk-plate-ill .lu-illus { position: absolute; inset: 0; width: 100%; height: 100%; box-shadow: none; border-radius: 0; }
.bk-plate-txt { position: absolute; left: 0; right: 0; bottom: 6%; z-index: 2; text-align: center; color: #fff; font-family: var(--font-data); text-shadow: 0 1px 10px rgba(20,14,10,.2); }
.bk-plate-txt .n { font-size: 1.25em; letter-spacing: 0.06em; }
.bk-plate-txt .t { font-size: 1.5em; letter-spacing: 0.04em; text-transform: uppercase; margin-top: 0.1em; }
.bk-plate-txt .s { font-size: 0.95em; letter-spacing: 0.04em; opacity: .85; margin-top: 0.25em; }
.bk-sheet .lu-opener { background: var(--page); }
.bk-sheet .lu-opener-fade { background: linear-gradient(to top, rgba(247,242,232,0.95), rgba(247,242,232,0.86) 60%, rgba(247,242,232,0)); }
.bk-sheet { position: relative; font-family: var(--font-text); color: var(--ink-book); -webkit-font-smoothing: antialiased; flex: none; }
.bk-sheet .bk-paper { width: 100%; height: 100%; }
.bk-flat .bk-paper::after { display: none; }
.bk-flat .bk-paper, .bk-flat .bk-sheet { box-shadow: none !important; }
/* the lead line is printed in the same ember red as the app */
.bk-lead { color: var(--accent); text-wrap: pretty; }

/* the preview of a closed book: a few pages under a veil, then the page that says the book goes on */
.bk-sheet.is-veiled > :not(.bk-veil) { filter: blur(3.2px) saturate(.85); opacity: .75; }
.bk-veil { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.bk-veil span { width: 2.6em; height: 2.6em; border-radius: 50%; display: grid; place-items: center; background: rgba(253, 253, 251, .92); color: #c2500f; font-size: 1em; box-shadow: 0 2px 12px rgba(43, 57, 47, .18); }
.bk-more { display: flex; align-items: center; justify-content: center; text-align: center; }
.bk-more-in { display: flex; flex-direction: column; align-items: center; gap: .9em; padding: 0 2.2em; }
.bk-more-t { font-family: var(--font-display, Georgia, serif); font-weight: 600; font-size: 1.6em; line-height: 1.15; color: #33473b; text-wrap: balance; }
.bk-more-p { margin: 0; font-size: .92em; line-height: 1.5; color: #5e6b60; text-wrap: pretty; }
.bk-more-c { font-family: var(--font-data, monospace); font-size: .95em; letter-spacing: .08em; text-transform: uppercase; color: #c2500f; }

/* colour covers */
.lu-gcover { position: relative; overflow: hidden; color: #fdfaf2; font-family: var(--font-data, 'VT323', monospace); background: #c86a3a; box-sizing: border-box; }
.lu-gcover .gc-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lu-gcover .gc-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30,22,20,.1) 0%, rgba(30,22,20,0) 30%, rgba(30,22,20,0) 52%, rgba(30,22,20,.42) 100%); }
.lu-gcover .gc-grain { position: absolute; inset: 0; background-size: 9em 9em; mix-blend-mode: overlay; opacity: .9; }
.lu-gcover .gc-wm { position: absolute; top: 2.3em; left: 50%; width: 3.2em; transform: translateX(-50%); }
.lu-gcover .gc-title { position: absolute; left: 1.2em; right: 1.2em; top: 35.5%; display: flex; flex-direction: column; align-items: center; text-align: center; font-family: var(--font-display, 'Fraunces', serif); line-height: .98; text-shadow: 0 .1em .7em rgba(30,20,15,.28); }
.lu-gcover .gc-t1 { font-weight: 600; font-size: 3.4em; letter-spacing: -.01em; }
.lu-gcover .gc-t2 { font-weight: 600; font-size: 3.4em; letter-spacing: -.01em; }
.lu-gcover .gc-t1, .lu-gcover .gc-t2 { white-space: nowrap; }
.lu-gcover .gc-data { position: absolute; left: 1.9em; right: 1.9em; bottom: 2em; display: flex; flex-direction: column; gap: .3em; font-size: .78em; letter-spacing: .1em; text-shadow: 0 0 .6em rgba(30,20,15,.25); }
.lu-gcover .gc-row { display: flex; justify-content: space-between; gap: 1em; white-space: nowrap; }
.lu-gcover .gc-dash { border-top: 1px dashed rgba(253,250,242,.7); margin: .25em 0 .35em; }
.lu-gcover .gc-chips { display: flex; flex-wrap: nowrap; gap: .4em; margin-top: .4em; overflow: hidden; padding: .08em; }
.lu-gcover .gc-chip { display: inline-flex; align-items: center; justify-content: center; gap: .22em; height: 2.1em; padding: 0 .62em; border: max(1px, .11em) solid rgba(253,250,242,.9); border-radius: 999px; font-size: .86em; line-height: 1; letter-spacing: .08em; white-space: nowrap; box-sizing: border-box; }
.lu-gcover .gc-chip i { font-style: normal; font-family: 'Noto Sans Symbols 2', var(--font-data); font-size: .9em; line-height: 1; display: inline-flex; align-items: center; height: 1em; transform: translateY(.205em); }
.lu-gcover .gc-chip span { line-height: 1; display: inline-block; transform: translateY(-.025em); }
/* AC is letters, not a symbol: same type and size as the sign beside it */
.lu-gcover .gc-chip i.is-txt { font-family: var(--font-data); font-size: 1em; letter-spacing: .06em; height: auto; transform: translateY(-.025em); }
/* a soft darker veil behind the title so white type always reads; stronger on the light backgrounds */
.lu-gcover .gc-shade::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 85% 32% at 50% 40%, rgba(30, 20, 15, .22), rgba(30, 20, 15, 0) 70%); }
.lu-gcover.gc-macro-petal-glow .gc-shade { background: linear-gradient(180deg, rgba(30,22,20,.22) 0%, rgba(30,22,20,.14) 35%, rgba(30,22,20,.16) 55%, rgba(30,22,20,.5) 100%); }
.lu-gcover.gc-macro-petal-glow .gc-shade::after { background: radial-gradient(ellipse 90% 34% at 50% 40%, rgba(40, 18, 10, .36), rgba(40, 18, 10, 0) 72%); }
.lu-gcover.gc-celestial-dawn .gc-shade::after, .lu-gcover.gc-macro-dune-dusk .gc-shade::after { background: radial-gradient(ellipse 90% 34% at 50% 40%, rgba(40, 18, 10, .32), rgba(40, 18, 10, 0) 72%); }
.lu-gcover.gc-macro-dune-dusk .gc-shade, .lu-gcover.gc-earthlight-flow .gc-shade { background: linear-gradient(180deg, rgba(30,22,20,.2) 0%, rgba(30,22,20,.12) 35%, rgba(30,22,20,.16) 55%, rgba(30,22,20,.5) 100%); }
.lu-gcover.gc-macro-dune-dusk .gc-shade::after, .lu-gcover.gc-earthlight-flow .gc-shade::after { background: radial-gradient(ellipse 90% 34% at 50% 40%, rgba(40, 18, 10, .36), rgba(40, 18, 10, 0) 72%); }
.lu-gcover .gc-foot { display: flex; align-items: center; justify-content: space-between; gap: .6em; margin-top: .4em; }
.lu-gcover .gc-foot .gc-chips { margin-top: 0; min-width: 0; }
.lu-gcover .gc-site { flex: none; font-size: .86em; letter-spacing: .14em; opacity: .9; }

/* a second section that starts halfway down a page */
.bk-sub { margin-top: 1.4em; }

/* the openers painted in full colour: the scene behind, the drawing on top */
.bk-scene { width: 100%; height: 100%; background-size: cover; background-position: center; }
.bk-sheet .bk-scene .lu-opener { background: transparent; }
.bk-scene .lu-opener-fade { display: none; }

/* the title of a painted opener sits on the coloured ground: in white */
.bk-scene-paper .lu-opener .lu-overlay-text, .bk-scene-paper .lu-opener .lu-overlay-text * { color: #fdfaf2 !important; text-shadow: 0 0 .6em rgba(40, 30, 20, .28); }

/* the contents: a drawing on the left page, the list on the right. Parts in display type, their chapters as a short column
   under each, the page numbers in red at the margin; the twelve houses in two columns so the whole book fits one page */
.bk-tocart { width: 100%; height: 100%; }
.bk-tocart .lu-overlay-text { display: none; }
.bk-toc { justify-content: flex-start; }
.bk-toc .bk-h2 { margin-bottom: 0.4em; font-size: 1.05em; }
.bk-toc-list { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 0.45em; padding: 0.3em 0 1.2em; min-height: 0; }
.bk-toc-part { margin: 0; }
.bk-toc-row { display: flex; align-items: baseline; gap: 0.4em; color: var(--ink-book); line-height: 1.35; }
.bk-toc-row .t { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bk-toc-row .d { flex: 1; border-bottom: 1px dotted var(--rule); min-width: 0.6em; transform: translateY(-0.3em); }
.bk-toc-row .n { font-family: var(--font-data); letter-spacing: 0.06em; color: var(--accent); min-width: 1.6em; text-align: right; }
.bk-toc-row.is-part { font-family: var(--font-display); font-weight: 600; font-size: 0.68em; line-height: 1.2; }
.bk-toc-row.is-item { font-size: 0.54em; color: var(--ink-soft-book); line-height: 1.45; padding-left: 0.6em; }
.bk-toc-row.is-item .n { font-size: 1em; }
.bk-toc-items { display: flex; flex-direction: column; margin-top: 0.3em; }
.bk-toc-items.is-two { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.2em; }

/* the cover fills its whole sheet, with no hairline of paper showing under it */
.bk-sheet.t-cover { overflow: hidden; }
/* the cover fills its page to the last pixel, so no strip of paper shows at the bottom */
.bk-sheet.t-cover > .lu-gcover-mini { height: calc(100% + 2px) !important; width: calc(100% + 1px) !important; }
.bk-sheet.t-cover > .lu-gcover { height: calc(100% + 2px) !important; margin-bottom: -2px; }

.bk-list.is-one .bk-p { white-space: nowrap; overflow: hidden; display: block; min-width: 0; }
.bk-list.is-one li { grid-template-columns: 2.2em minmax(0, 1fr); }
.bk-h2 + .bk-lead { margin-top: -0.2em; } /* the red line sits close under its title */
/* the cards of the shape and the day: a small drawing, what it is, the figure, its text */
.bk-facts { display: flex; flex-direction: column; gap: 0.55em; margin-top: 0.3em; }
.bk-fact { display: grid; grid-template-columns: 3.1em 1fr; gap: 0.8em; align-items: start; padding-bottom: 0.55em; border-bottom: 1px solid var(--rule); }
.bk-fact.is-cut { border-bottom: 0; padding-bottom: 0; }
.bk-fact-ill svg { width: 100%; height: auto; display: block; }
.bk-fact-t { font-family: var(--font-display); font-weight: 600; font-size: 1.02em; line-height: 1.2; color: #2b392f; margin-bottom: 0.15em; }
.bk-fact .bk-eyebrow { color: var(--accent); margin-bottom: 0.3em; }
.bk-fact .bk-p { margin: 0; }
.bk-fact-ill img { width: 100%; height: auto; display: block; }
.bk-facts.air1 { gap: 1em; margin-top: .6em; } .bk-facts.air1 .bk-fact { padding-bottom: .9em; }
.bk-facts.air2 { gap: 1.45em; margin-top: .9em; } .bk-facts.air2 .bk-fact { padding-bottom: 1.25em; } .bk-facts.air2 .bk-fact .bk-eyebrow { margin-bottom: .45em; }
.bk-facts.air3 { gap: 1.9em; margin-top: 1.2em; } .bk-facts.air3 .bk-fact { padding-bottom: 1.6em; } .bk-facts.air3 .bk-fact .bk-eyebrow { margin-bottom: .5em; } .bk-facts.air3 .bk-fact-t { margin-bottom: .25em; }
/* the painted sky of that morning, as a plate facing the big three */
.bk-plate { position: relative; overflow: hidden; }
.bk-plate-art { width: 100%; height: 100%; }
.bk-plate-cap { position: absolute; left: 0; right: 0; bottom: 13%; text-align: center; font-family: var(--font-data); font-size: .74em; letter-spacing: .14em; color: var(--ink-soft-book); }
/* the closing line after the cards or the aspects: the last card's rule already closes the list, so the line has no second rule */
.bk-facts + .bk-quote, .bk-aspects + .bk-quote { border-top: 0; padding-top: 0.35em; }
.bk-facts-intro { margin: 0 0 0.9em; }
/* your sky: the wheel drawn in white on a starry night, like the sky card in the app */
.bk-sky.is-night { position: relative; background: #111a2b; overflow: hidden; }
.bk-sky.is-night > .bk-night { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.bk-sky.is-night > * { position: relative; z-index: 1; }
.bk-sky.is-night > .bk-night { position: absolute; }
.bk-sky.is-night .bk-sky-txt, .bk-sky.is-night .bk-sky-txt .d { color: #fdfaf2; }
.bk-sky.is-night .bk-sky-txt .d { opacity: .7; }
.lu-gcover .gc-wheel { position: absolute; left: 50%; top: 44%; width: 84%; aspect-ratio: 1; transform: translate(-50%, -50%); }
.lu-gcover .gc-wheel canvas { width: 100%; height: 100%; display: block; }
.lu-gcover .gc-name { font-family: var(--font-display, 'Fraunces', serif); font-weight: 600; font-size: 1.75em; letter-spacing: 0; line-height: 1; text-transform: none; }

/* a gift's own words keep their line breaks */
.bk-ded.is-own .bk-ded-txt { white-space: pre-line; }

/* the big three fill their page: the three lights share the room above the paragraph, whatever the length of the words */
.bk-paper.is-three .bk-three { flex: 1 1 auto; justify-content: space-evenly; gap: 0; margin-bottom: 1em; }
.bk-paper.is-three .bk-three-row { padding: 1em 0; }
.bk-paper.is-three .bk-three-row:first-child { border-top: 1px solid var(--rule); }
.bk-paper.is-three .bk-quote { margin-top: auto; }
