/* Plan 2 reference layout. Scoped to readers; no page-wide resets or text masks. */
.fatebook-reader {
    --book-accent:#9e2a2b;--book-hover:#781c1d;--book-ink:#2c2623;
    --book-muted:#70665e;--book-tint:#fdfaf5;--book-line:#e8e2d9;
    --book-gold:#c89d54;--book-paper:#f6f4f0;
    max-width:720px;margin:0 auto 24px;background:var(--book-paper);color:var(--book-ink);
    border:1px solid var(--book-line);border-radius:14px;line-height:1.75;
}
.fatebook-reader .fatebook-reader-heading {
    display:flex;justify-content:space-between;align-items:center;gap:12px;
    background:#fff;border:0;border-bottom:1px solid var(--book-line);
    border-radius:14px 14px 0 0;padding:16px 20px;
}
.fatebook-reader .fatebook-reader-state {color:var(--book-ink);font-size:18px}
.fatebook-trial-badge,.fatebook-checkout-badge {
    display:inline-block;background:#f3e8d3;color:#795518;font-weight:600;
    font-size:12px;padding:3px 9px;border-radius:4px;white-space:nowrap;
}
.fatebook-reader .fatebook-trial-notice {
    background:#2c2623;color:#f3e8d3;display:flex;align-items:center;
    justify-content:space-between;gap:12px;padding:12px 20px;font-size:13px;
}
.fatebook-reader .fatebook-trial-notice .paywall-order-btn {
    background:none;border:0;color:#ffd166;white-space:nowrap;padding:4px 0;font-size:13px;
}
.fatebook-reader .fatebook-toc {
    position:sticky;top:0;z-index:6;flex-wrap:nowrap;overflow-x:auto;
    margin:0;padding:10px 16px;gap:8px;background:#fffffff5;
    backdrop-filter:blur(8px);border-bottom:1px solid var(--book-line);
}
.fatebook-reader .fatebook-toc a {
    background:var(--book-paper);color:#5c544f;border-radius:20px;
    padding:6px 14px;font-size:14px;white-space:nowrap;
}
.fatebook-reader .fatebook-toc a[aria-current="location"],
.fatebook-reader .fatebook-toc a:hover,
.fatebook-reader .fatebook-toc a:focus-visible {background:var(--book-accent);color:#fff}
.fatebook-profile {
    margin:16px;background:linear-gradient(135deg,#fffdf9,#f9f3e8);
    border:1px solid #e2d5be;border-radius:12px;padding:16px 20px;
    box-shadow:0 2px 8px #2c26230d;
}
.fatebook-profile:empty {display:none}
.fatebook-profile .remote-birth-info {margin-bottom:0!important;color:#5c544f;font-size:14px}
.fatebook-profile .remote-birth-info > div {justify-content:flex-start!important}
.fatebook-reader-content .remote-birth-info {display:none}
.fatebook-reader .fatebook-reader-content {max-width:none;padding:0 16px;font-size:1rem}
.fatebook-reader-content .remote-fate-stream {gap:20px!important}
.fatebook-reader-content .remote-report-sections {gap:16px!important}
.fatebook-reader .remote-fate-report > header,
.fatebook-reader .remote-everything-header {padding:12px 6px!important;margin:0 0 12px!important;border-bottom:0!important}
.fatebook-reader .remote-fate-report :is(h1,h2,h3,h4,h5,h6):not(.text-danger),
.fatebook-reader .remote-everything-header > h1 {color:var(--book-ink)!important}
.fatebook-reader .remote-report-section,
.fatebook-reader .remote-everything-report > .vstack > section {
    background:#fff;border:1px solid var(--book-line);border-radius:14px;
    padding:24px 22px;box-shadow:0 2px 8px #2c26230d;scroll-margin-top:80px;
}
.fatebook-reader .remote-report-section > header {margin-bottom:16px!important}
.fatebook-reader .remote-report-section > header > h2 {
    display:flex;align-items:baseline;gap:10px;padding-bottom:12px!important;
    border-bottom:1px solid #f0ece4!important;font-size:20px;font-weight:700;
}
.fatebook-reader .remote-report-section > header > h2::before {
    content:"";flex:0 0 4px;height:20px;background:var(--book-accent);
    border-radius:2px;align-self:center;
}
.fatebook-reader .remote-section-blocks {gap:14px!important}
.fatebook-reader-content .markdown-content {line-height:1.8}
.fatebook-reader-content .markdown-content p {margin-bottom:14px}
.fatebook-reader-content [id] {scroll-margin-top:80px}
/* Clear preview paragraphs, followed by a decorative blurred locked-area panel.
   These lines contain no withheld report text and are ignored by screen readers. */
.fatebook-reader .paywall-preview {filter:none;opacity:1;mask-image:none;-webkit-mask-image:none;max-height:none;padding:0}
.fatebook-reader .paywall-preview-group {margin:8px 0 0}
.fatebook-reader .paywall-block {
    display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden;
    background:linear-gradient(180deg,#fdfaf566,#f7f0e4f2)!important;
    border:1px solid #e5d7be!important;border-radius:10px!important;
    margin:12px 0 0!important;padding:16px!important;box-shadow:none!important;
}
.fatebook-lock-visual {order:0;display:grid;gap:11px;padding:8px 0 14px;filter:blur(4px);opacity:.45;pointer-events:none;user-select:none}
.fatebook-lock-visual span {display:block;height:9px;border-radius:3px;background:repeating-linear-gradient(90deg,#807269 0 15px,transparent 15px 20px)}
.fatebook-lock-visual span:nth-child(2){width:93%}
.fatebook-lock-visual span:nth-child(3){width:72%}
.fatebook-lock-label {order:1;color:#7d5312;font-size:13px;font-weight:700;border-top:1px dashed #dccbb1;padding-top:12px}
.fatebook-reader .paywall-block > p:not(.fatebook-scope) {order:2;margin:0!important;color:var(--book-muted)!important;font-size:12px!important}
.fatebook-reader .paywall-block > div.mt-3 {order:3;margin-top:4px!important}
.fatebook-reader .paywall-block > .fatebook-scope {order:4;font-size:12px;font-weight:400;color:#5c544f;margin:0}
.fatebook-reader .paywall-block .paywall-order-btn {padding:8px 14px!important;border-radius:6px;font-size:13px}
.fatebook-reader .paywall-block > .text-danger {display:none}
.fatebook-reader .paywall-order-btn {background:var(--book-accent);border-color:var(--book-accent);border-radius:8px;color:#fff}
.fatebook-reader .paywall-order-btn:hover {background:var(--book-hover);border-color:var(--book-hover)}
.fatebook-reader .figure {border-radius:10px;overflow:hidden}
.fatebook-reader .figure-img {border-color:var(--book-line)!important;background:#fff!important}
.fatebook-reader .figure-caption {font-size:13px;padding:8px}
.fatebook-reader .fatebook-more {background:var(--book-tint);border-color:var(--book-line);border-radius:8px}
.fatebook-reader .fatebook-more summary {color:#5c544f;font-size:14px}
/* Checkout uses real server-rendered product details and payment actions. */
.fatebook-reader .fatebook-offer {margin:24px 16px 0;scroll-margin-top:80px}
.fatebook-checkout-card {background:linear-gradient(180deg,#fffdf9,#fff);border:2px solid var(--book-gold,#c89d54);border-radius:16px;padding:28px 24px;box-shadow:0 6px 20px #2c262314}
.fatebook-checkout-heading {text-align:left;margin-bottom:20px}
.fatebook-reader .fatebook-checkout-heading h2 {font-size:22px;color:var(--book-ink)!important;letter-spacing:0!important;line-height:1.5;margin:10px 0 8px!important}
.fatebook-checkout-heading .lead {font-size:14px!important;line-height:1.8;margin-bottom:0}
.fatebook-checkout-heading hr {display:none}
.fatebook-reader .fatebook-price-card {background:var(--book-tint)!important;border:1px solid #e5d7be!important;border-radius:12px}
.fatebook-reader .fatebook-price-card .text-danger {color:var(--book-accent)!important;font-size:30px}
.fatebook-reader .unlock-features {font-size:14px;line-height:1.8}
.fatebook-reader .unlock-features li {margin-bottom:10px}
.fatebook-reader .fatebook-checkout-card .btn {border-radius:10px;font-size:16px;box-shadow:none!important}
.fatebook-reader .fatebook-checkout-card .btn-warning {background:#ffc439;border-color:#ffc439}
.fatebook-reader .fatebook-support {margin:16px 0 24px;color:var(--book-muted);font-size:13px}
.fatebook-reader .fatebook-support .bg-light {background:none!important;padding:12px 0!important}
.fatebook-reader .fatebook-support .card {box-shadow:none!important;border:1px solid var(--book-line)!important;border-radius:12px}
.fatebook-reader .fatebook-support .card-body {padding:12px}
.fatebook-reader .fatebook-buybar {
    position:sticky;bottom:0;z-index:7;margin-top:20px;background:#fffffffA;
    border:0;border-top:1px solid #dcd4c8;border-radius:0 0 14px 14px;
    box-shadow:0 -4px 16px #00000014;padding:12px 16px;gap:12px;
}
.fatebook-reader .fatebook-offer-label {font-size:14px;color:var(--book-ink)}
.fatebook-reader .fatebook-offer-label small {font-size:12px;color:var(--book-muted)}
.fatebook-reader .fatebook-buybar .paywall-order-btn {padding:10px 16px;font-size:14px}
.fatebook-reader .fatebook-reader-error:not(:empty) {margin:16px}
.fatebook-reader :is(.paywall-block,.fatebook-trial-notice,.fatebook-buybar,.fatebook-offer,.fatebook-toc)[hidden] {display:none!important}
@media(max-width:767.98px){
    .fatebook-reader {border-radius:0;border-left:0;border-right:0}
    .fatebook-reader .fatebook-reader-heading {border-radius:0;padding:14px 16px}
    .fatebook-reader .fatebook-reader-state {font-size:16px}
    .fatebook-reader .fatebook-trial-notice {padding:10px 16px;font-size:12px}
    .fatebook-profile {margin:12px;padding:14px}
    .fatebook-reader .fatebook-reader-content {padding:0 12px}
    .fatebook-reader .remote-report-section {padding:20px 16px}
    .fatebook-reader .fatebook-offer {margin:20px 12px 0}
    .fatebook-checkout-card {padding:22px 16px}
    .fatebook-reader .fatebook-buybar {border-radius:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
    .fatebook-reader .fatebook-buybar .paywall-order-btn {max-width:52%;font-size:13px;padding:10px 12px}
    .fatebook-reader .fatebook-offer-label {font-size:12px}
    .fatebook-reader .fatebook-offer-label small {font-size:11px}
}
@media(prefers-reduced-motion:reduce){.fatebook-reader *{scroll-behavior:auto!important}}

/* Reference-style action row: one scope statement and one purchase button. */
.fatebook-reader .paywall-block {gap:0;padding:14px 16px!important}
.fatebook-reader .fatebook-unlock-bar {
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
    gap:10px;margin-top:12px;padding-top:10px;border-top:1px dashed #dccbb1;
}
.fatebook-reader .fatebook-unlock-bar > .fatebook-scope {
    flex:1 1 220px;margin:0;font-size:13px;font-weight:600;color:#7d5312;line-height:1.7;
}
.fatebook-reader .fatebook-unlock-bar > .paywall-order-btn {
    flex:0 1 auto;margin:0;padding:6px 14px!important;border-radius:6px;
    font-size:13px;font-weight:600;max-width:100%;
}
