/* FEAR ME! ebook: open editorial sections, original art, and a clear purchase path. */
.fm-page {
    --fm-red: #df2925;
    --fm-bg: #000;
    --fm-text: #f5f5f5;
    --fm-muted: #b8b8bf;
    --fm-border: #303033;
    position: relative;
    isolation: isolate;
    background: var(--fm-bg);
    color: var(--fm-text);
    font: 16px/1.6 "Overpass", Arial, sans-serif;
    padding: 36px 40px 0;
}
.fm-page::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 0 auto;
    height: 1100px;
    pointer-events: none;
    background-image:
        linear-gradient(180deg, transparent 25%, #000 100%),
        linear-gradient(90deg, #000 5%, rgba(0,0,0,.82) 40%, rgba(0,0,0,.64) 75%, rgba(0,0,0,.8)),
        url('../images/fear-me/fearme_cover.webp');
    background-size: 100% 100%, 100% 100%, 1200px auto;
    background-position: center, center, right top;
    background-repeat: no-repeat;
}
.fm-page *, .fm-page *::before, .fm-page *::after { box-sizing: border-box; }
.fm-page :where(h1,h2,h3,p,dl,dd) { margin: 0; }
.fm-page :where(h2,h3,h4,dt) { font-family: var(--font-eveleth, "Eveleth", sans-serif); font-weight: 400; letter-spacing: .01em; text-wrap: balance; }
.fm-page a { color: inherit; text-decoration: none; }
.fm-page button { font: inherit; cursor: pointer; }
.fm-page [hidden] { display: none !important; }
.fm-page :where(a,button,input,summary):focus-visible { outline: 2px solid #fff; outline-offset: 5px; }
.fm-page :where(button:disabled) { opacity: .65; cursor: default; }
.fm-container { width: min(1160px, 100%); margin-inline: auto; }
.fm-icon { width: 22px; height: 22px; flex: 0 0 auto; }
.fm-back { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; color: var(--fm-muted) !important; font-size: 13px; }
.fm-back .fm-icon { width: 16px; height: 16px; }
.fm-back:hover, .fm-creator > a:first-child:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 4px; }
.fm-overview { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(48px, 6vw, 104px); align-items: center; padding-block: 44px 72px; }
.fm-book-display { position: relative; isolation: isolate; padding: 16px 20px; }
.fm-book-display::before { content: ""; position: absolute; z-index: -1; inset: -40px -60px; background: radial-gradient(ellipse, #b51d203b, transparent 67%); pointer-events: none; }
.fm-cover { display: block; width: min(420px, 100%); margin-inline: auto; transition: transform 180ms ease; }
.fm-cover:hover { transform: translateY(-5px); }
.fm-cover img { display: block; width: 100%; height: auto; border-radius: 2px; box-shadow: 0 28px 70px #0009, 0 0 0 1px #fff1; }
.fm-cover-thumbnails { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; width: min(420px,100%); margin: 20px auto 0; }
.fm-cover-thumbnails a { display: block; flex: 0 0 60px; width: 60px; height: 60px; padding: 3px; border: 1px solid #48484c; border-radius: 4px; background: #141414; overflow: hidden; transition: border-color 150ms ease; }
.fm-cover-thumbnails a:hover { border-color: var(--fm-red); }
.fm-cover-thumbnails img { display: block; width: 100%; height: 100%; object-fit: contain; }
.fm-info { min-width: 0; scroll-margin-top: 140px; }
.fm-logo { width: min(490px, 100%); height: auto; aspect-ratio: 4.2; display: flex; align-items: center; overflow: hidden; margin-left: -5% !important; margin-bottom: 20px !important; }
.fm-logo img { display: block; width: 100%; max-width: none; height: auto; flex-shrink: 0; }
.fm-subtitle { font-size: clamp(1.125rem, 1.2vw, 1.375rem); line-height: 1.4; }
.fm-creator { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: var(--fm-muted); margin-top: 12px !important; font-size: 15px; }
.fm-creator a { display: inline-flex; align-items: center; min-height: 44px; }
.fm-creator img { display: block; width: 150px; height: auto; }
.fm-bestseller { display: flex; align-items: center; gap: 12px; width: min(100%, 420px); margin-top: 16px; padding: 10px 12px; border: 1px solid #ffffff2b; border-radius: 10px; box-shadow: 0 5px 16px #0005; transition: transform 160ms ease, box-shadow 160ms ease; }
.fm-bestseller:hover { transform: translateY(-2px); box-shadow: 0 8px 20px #0007; }
.fm-bestseller:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.fm-bestseller-icon { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; }
.fm-bestseller-icon img { display: block; width: 44px; height: 44px; object-fit: contain; filter: drop-shadow(0 4px 7px #0006); }
.fm-bestseller-copy { display: block; min-width: 0; }
.fm-bestseller-copy strong { display: block; font-family: var(--font-god-mode, var(--font-eveleth, sans-serif)); font-size: 13px; line-height: 1.25; text-transform: uppercase; }
.fm-bestseller-copy > span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.3; opacity: .9; }
.fm-creator .fm-bestseller { width: auto; max-width: 100%; flex: 0 1 auto; gap: 7px; margin-top: 0; padding: 5px 8px; }
.fm-creator .fm-bestseller-icon, .fm-creator .fm-bestseller-icon img { width: 34px; height: 34px; }
.fm-creator .fm-bestseller-icon { flex-basis: 34px; }
.fm-creator .fm-bestseller-copy strong { font-size: 11px; }
.fm-creator .fm-bestseller-copy > span { margin-top: 2px; font-size: 10px; }
.fm-page .fm-bestseller--cosmic { color: #fae8ff; }
.fm-page .fm-bestseller--ascendant { color: #fff; }
.fm-page .fm-bestseller--platinum { color: #f3f4f6; }
.fm-page .fm-bestseller--gold { color: #fef9c3; }
.fm-page .fm-bestseller--diamond { color: #f3e8ff; }
.fm-page .fm-bestseller--sapphire { color: #dbeafe; }
.fm-page .fm-bestseller--ruby { color: #fee2e2; }
.fm-page .fm-bestseller--emerald { color: #dcfce7; }
.fm-page .fm-bestseller--quartz { color: #fef3c7; }
.fm-summary { color: #d0d0d5; font-size: 1.125rem; line-height: 1.65; margin-top: 26px !important; max-width: 44ch; }
.fm-highlights { list-style: none; padding: 0; margin: 24px 0 30px; display: grid; gap: 12px; }
.fm-highlights li { display: flex; align-items: baseline; gap: 12px; font-size: 15px; line-height: 1.5; }
.fm-highlights .fm-icon { align-self: center; color: #ff5651; width: 20px; height: 20px; stroke-width: 2.5; }
.fm-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; }
.fm-price > div { display: flex; align-items: baseline; gap: 14px; }
.fm-price strong { font-size: 2.75rem; line-height: 1.2; font-weight: 700; letter-spacing: -.03em; }
.fm-price s { font-size: 16px; color: var(--fm-muted); }
.fm-price > span { color: var(--fm-muted); font-size: 13px; }
.fm-price .fm-sale { flex-basis: 100%; color: #ff8a86; }
.fm-actions { display: flex; gap: 12px; margin-top: 20px; max-width: 500px; }
.fm-button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; background: var(--fm-red); color: #fff !important; border: 1px solid var(--fm-red); border-radius: 5px; padding: 14px 24px; font-size: 1rem !important; font-weight: 700 !important; transition: background 150ms ease, border-color 150ms ease; }
.fm-button:hover { background: #bc201d; border-color: #bc201d; }
.fm-wishlist { display: inline-flex; align-items: center; justify-content: center; width: 56px; flex: 0 0 56px; border: 1px solid #66666c; border-radius: 5px; background: transparent; color: #fff; }
.fm-wishlist:hover { border-color: #fff; }
.fm-wishlist[aria-pressed="true"] .fm-icon { fill: var(--fm-red); stroke: var(--fm-red); }
.fm-status { color: #ccc; font-size: 13px; margin-top: 12px !important; }
.fm-status:empty { display: none; }
.fm-preview-links { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 20px; }
.fm-sample { display: inline-flex; align-items: center; gap: 10px; min-height: 32px; color: var(--fm-muted) !important; font-size: 14px; text-decoration: underline !important; text-underline-offset: 5px; }
.fm-sample:hover { color: #fff !important; }
.fm-sample .fm-icon { width: 19px; height: 19px; }
.fm-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-block: 1px solid var(--fm-border); padding-block: 28px; }
.fm-facts > div { padding-inline: 32px; }
.fm-facts > div:first-child { padding-left: 0; }
.fm-facts > div:last-child { padding-right: 0; }
.fm-facts > div + div { border-left: 1px solid var(--fm-border); }
.fm-facts dt { font-size: 1.0625rem; line-height: 1.4; margin-bottom: 8px; }
.fm-facts dd { color: var(--fm-muted); font-size: 14px; max-width: 30ch; line-height: 1.6; }
.fm-inside { padding-block: 100px 80px; scroll-margin-top: 120px; }
.fm-section-intro { max-width: 700px; }
.fm-section-intro h2, .fm-art-feature h2 { font-size: clamp(1.75rem, 2.5vw, 2.75rem); line-height: 1.3; letter-spacing: -.015em; }
.fm-section-intro h2 span, .fm-art-feature h2 span { color: #ff514b; }
.fm-section-intro > p { max-width: 58ch; margin-top: 24px; color: var(--fm-muted); font-size: 1.0625rem; }
.fm-benefits { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 40px; margin-top: 48px; }
.fm-benefits > div { border-top: 1px solid #823330; padding-top: 22px; }
.fm-benefits h3 { font-size: 1.125rem; line-height: 1.4; margin-bottom: 16px; }
.fm-benefits p { color: var(--fm-muted); font-size: 15px; line-height: 1.75; max-width: 36ch; }
.fm-art-feature { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 64px; padding-block: 12px 64px; }
.fm-art-feature p { color: var(--fm-muted); margin-top: 24px; font-size: 1.0625rem; max-width: 38ch; }
.fm-art { display: block; overflow: hidden; border-radius: 3px; }
.fm-art img { display: block; width: 100%; height: auto; aspect-ratio: 1.16; object-fit: cover; transition: transform 220ms ease; }
.fm-art:hover img { transform: scale(1.025); }
.fm-description, .fm-included-more { padding-block: 28px; }
.fm-included-more { padding-bottom: 64px; }
.fm-description > h2, .fm-extra > h2, .fm-included-more > h2, .fm-media > h2 { font-size: 1.5rem; line-height: 1.4; margin-bottom: 24px; }
.fm-included-explanations { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 48px; }
.fm-included-explanations h3 { font-size: 1rem; line-height: 1.5; margin-bottom: 12px; }
.fm-included-explanations p { color: var(--fm-muted); font-size: 15px; line-height: 1.75; max-width: 64ch; }
.fm-prose { max-width: 80ch; color: #ccc; font-size: 1rem; line-height: 1.8; }
.fm-prose :where(h2,h3,h4) { color: #fff; font-size: 1.25rem; line-height: 1.4; margin: 32px 0 16px; }
.fm-prose > :first-child { margin-top: 0; }
.fm-prose p + p { margin-top: 18px; }
.fm-prose :where(p,li,span,strong,em,a) { color: inherit !important; background: transparent !important; }
.fm-prose a { text-decoration: underline; text-underline-offset: 3px; }
.fm-prose :where(ul,ol) { list-style: revert; padding-left: 22px; margin-block: 18px; }
.fm-prose ol > li[data-list="bullet"] { list-style-type: disc; }
.fm-prose .ql-ui { display: none; }
.fm-prose li + li { margin-top: 8px; }
.fm-prose img { max-width: 100%; height: auto; }
.fm-prose p:has(> br:only-child) { display: none; }
.fm-hero-description { width: 100%; margin-inline: auto; padding-block: 64px 32px; scroll-margin-top: 120px; }
.fm-hero-description > h2 { font-size: clamp(1.75rem, 2.5vw, 2.5rem); margin-bottom: 32px; }
.fm-hero-description .fm-prose { max-width: none; font-size: 1.125rem; line-height: 1.85; }
.fm-description-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); align-items: start; gap: 56px; }
.fm-description-villain { position: sticky; top: 120px; margin: 0; }
.fm-character-art { display: block; background: radial-gradient(ellipse at 50% 45%, #4a1b655e, transparent 72%); }
.fm-character-art img { display: block; width: 100%; height: auto; max-height: 640px; object-fit: contain; filter: drop-shadow(0 18px 30px #0009); }
.fm-description-villain figcaption { color: var(--fm-muted); text-align: center; font-size: 14px; padding-top: 16px; }
.fm-spreads { padding-block: 20px 88px; scroll-margin-top: 120px; }
.fm-spread-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin-top: 132px; }
.fm-spread { --fm-spread-bg: #1e0b2c; --fm-spread-glow: #542267; --fm-spread-border: #653777; position: relative; isolation: isolate; background: var(--fm-spread-bg); border: 1px solid var(--fm-spread-border); border-radius: 6px; overflow: visible; }
.fm-spread--crimson { --fm-spread-bg: #29080c; --fm-spread-glow: #65121d; --fm-spread-border: #7d2634; }
.fm-spread-heading { position: relative; display: flex; align-items: center; min-height: 260px; padding: 32px 290px 32px 28px; border-radius: 5px 5px 0 0; background: radial-gradient(ellipse at 80% 65%, var(--fm-spread-glow), transparent 80%); }
.fm-spread-heading h3 { font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.4; }
.fm-spread-heading p { font-size: 14px; color: #d1c5d4; margin-top: 0px; }
.fm-spread-heading > img { position: absolute; z-index: 1; right: -12px; bottom: 0; display: block; width: 290px; max-width: none; height: 370px; object-fit: contain; object-position: center bottom; pointer-events: none; filter: drop-shadow(0 16px 22px #0009); transition: transform 180ms ease; }
.fm-spread:hover .fm-spread-heading > img { transform: translateY(-6px); }
.fm-spread-preview { position: relative; z-index: 2; display: block; overflow: hidden; border-radius: 0 0 5px 5px; }
.fm-spread-preview > img { display: block; width: 100%; height: auto; }
.fm-spread-preview > span { display: flex; align-items: center; justify-content: space-between; min-height: 60px; padding: 16px 24px; font-size: 14px; font-weight: 600; }
.fm-spread-preview:hover > span { background: #ffffff0a; }
.fm-spread-preview .fm-icon { transition: transform 150ms ease; }
.fm-spread-preview:hover .fm-icon { transform: translateX(4px); }
.fm-army { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); align-items: start; gap: 64px; padding-block: 88px; border-top: 1px solid var(--fm-border); scroll-margin-top: 120px; }
.fm-army-copy h2 { font-size: clamp(1.75rem, 2.5vw, 2.5rem); line-height: 1.35; margin-bottom: 32px; }
.fm-army-copy h2 span { color: #ff514b; }
.fm-army-copy .fm-prose { max-width: none; font-size: 1.125rem; line-height: 1.85; }
.fm-army-poster { position: sticky; top: 120px; margin: 0; }
.fm-army-poster a { display: block; }
.fm-army-poster img { display: block; width: 100%; height: auto; border-radius: 3px; box-shadow: 0 24px 60px #0008; }
.fm-media { padding-bottom: 64px; }
.fm-gallery { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.fm-gallery a { display: block; aspect-ratio: 4/3; background: #141414; border: 1px solid var(--fm-border); border-radius: 4px; overflow: hidden; }
.fm-gallery img { display: block; width: 100%; height: 100%; object-fit: contain; }
.fm-gallery a:hover { border-color: var(--fm-red); }
.fm-video { width: 100%; aspect-ratio: 16/9; margin-top: 24px; }
.fm-video iframe { display: block; width: 100%; height: 100%; border: 0; border-radius: 4px; }
.fm-description-villain .fm-video { margin-top: 0; }
.fm-pwyw { margin-top: 20px; }
.fm-pwyw label { display: block; font-size: 14px; margin-bottom: 8px; }
.fm-pwyw > div { display: flex; gap: 8px; }
.fm-pwyw input { background: #171717; color: #fff; border: 1px solid #555; width: 120px; border-radius: 4px; padding: 10px 12px; font: inherit; }
.fm-secondary { min-height: 44px; background: transparent; color: #fff; border: 1px solid #555; border-radius: 4px; padding: 10px 16px; font-size: 14px !important; }
.fm-secondary:hover { border-color: #fff; }
.fm-extra { border-top: 1px solid var(--fm-border); padding-block: 32px; }
.fm-reviews { scroll-margin-top: 120px; }
.fm-review-summary { display: flex; align-items: center; gap: 9px; margin: -8px 0 24px; color: var(--fm-muted); font-size: 14px; }
.fm-review-summary strong { color: var(--fm-text); font-size: 16px; }
.fm-review-summary-stars, .fm-review-rating { color: #f6c453; }
.fm-review-summary-stars { font-size: 20px; line-height: 1; }
.fm-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fm-review { min-width: 0; margin: 0; padding: 0; border: 0; }
.fm-review-card { display: flex; flex-direction: column; gap: 8px; width: 100%; padding: 16px; border: 1px solid #343438; border-radius: 8px; background: linear-gradient(145deg, #181719, #0d0d0f); color: var(--fm-text); text-align: left; transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease; }
.fm-review-card:hover { transform: translateY(-2px); border-color: #7d3c3c; background-color: #171011; }
.fm-review-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.fm-review-author { overflow: hidden; color: #fff; font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.fm-review-card-heading time, .fm-review-dialog-meta time { flex: 0 0 auto; color: var(--fm-muted); font-size: 12px; }
.fm-review-rating { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; }
.fm-review-comment { color: #d0cdd2; font-size: 13px; line-height: 1.55; }
.fm-review-clamp { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; }
.fm-review-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 0; color: #ff8a86; font-size: 12px; font-weight: 700; }
.fm-review-card-footer > span { font-size: 16px; transition: transform 160ms ease; }
.fm-review-card:hover .fm-review-card-footer > span { transform: translateX(3px); }
.fm-review-dialog { width: min(640px, calc(100% - 32px)); max-height: min(82svh, 760px); margin: auto; padding: 0; overflow: auto; border: 1px solid #45454a; border-radius: 10px; background: #101012; color: var(--fm-text); box-shadow: 0 24px 80px #000b; }
.fm-review-dialog::backdrop { background: #000d; backdrop-filter: blur(3px); }
.fm-review-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px; border-bottom: 1px solid var(--fm-border); }
.fm-review-dialog-eyebrow { margin: 0 0 6px; color: #ff8a86; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.fm-review-dialog-header h2 { color: #fff; font-size: 1.25rem; line-height: 1.4; }
.fm-review-dialog-meta { display: flex; align-items: center; gap: 12px; margin-top: 8px !important; }
.fm-review-dialog-close { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; flex: 0 0 42px; border: 1px solid #45454a; border-radius: 5px; background: #19191c; color: #fff; }
.fm-review-dialog-close:hover { border-color: #888; background: #232326; }
.fm-review-dialog-close svg { width: 20px; height: 20px; }
.fm-review-dialog-body { padding: 24px; }
.fm-review-dialog-body p { color: #e0dde2; font-size: 16px; line-height: 1.85; white-space: pre-wrap; overflow-wrap: anywhere; }
.fm-community { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 14px; padding: 10px 12px; border: 1px solid #166534; border-radius: 6px; background: #052e1b; color: #dcfce7; }
.fm-community-copy-info { display: flex; align-items: center; gap: 9px; min-width: 0; }
.fm-community-copy-info > svg { width: 20px; height: 20px; flex: 0 0 auto; color: #86efac; }
.fm-community-copy-info p { margin-top: 3px; color: #bbf7d0; font-size: 12px; line-height: 1.4; }
.fm-community-copy-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.fm-community-copy-heading strong { font-size: 14px; }
.fm-community-count { padding: 2px 7px; border-radius: 999px; background: #064e3b; color: #d1fae5; font-size: 11px; font-weight: 700; white-space: nowrap; }
.fm-community-claim { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 7px 11px; border: 1px solid #15803d; border-radius: 4px; background: #15803d; color: #fff; font-size: 13px; font-weight: 700; white-space: nowrap; }
.fm-community-claim:hover { background: #166534; border-color: #166534; }
.fm-community-claim:disabled { opacity: .65; cursor: default; }
.fm-community-claim[hidden] { display: none; }
.fm-extra > div { font-size: 15px; color: var(--fm-muted); }
.fm-extra a { text-decoration: underline; }
.fm-disclosure { font-size: 13px; color: var(--fm-muted); padding-bottom: 32px; }
.fm-final-cta { margin-inline: -40px; text-align: center; border-top: 1px solid #442120; padding: 80px 40px; background: radial-gradient(ellipse at 50% 100%, #571415, transparent 75%), #160b0c; }
.fm-final-cta h2 { font-size: clamp(1.75rem, 2.5vw, 2.5rem); line-height: 1.4; }
.fm-final-cta h2 span { color: #ff514b; }
.fm-final-cta p { margin-top: 16px; color: var(--fm-muted); font-size: 16px; }
.fm-final-cta .fm-button { width: min(340px, 100%); margin-top: 28px; }
.fm-final-cta .fm-cta-price { font-size: 13px; margin-top: 12px; }
.fm-dialog { background: #111; color: #fff; border: 1px solid #444; border-radius: 6px; width: min(1160px, calc(100% - 32px)); max-height: calc(100svh - 32px); padding: 16px; margin: auto; overflow: auto; }
.fm-dialog::backdrop { background: #000e; }
.fm-dialog-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 14px; margin-bottom: 12px; }
.fm-dialog button { display: inline-flex; align-items: center; justify-content: center; background: #111; color: #fff; border: 1px solid #555; border-radius: 4px; min-width: 44px; min-height: 44px; padding: 8px 12px; font-size: 13px; }
.fm-dialog button:hover { border-color: #fff; }
.fm-dialog-image { max-height: 70svh; overflow: auto; }
.fm-dialog-image img { display: block; height: auto; width: auto; max-height: 70svh; max-width: 100%; margin: auto; object-fit: contain; }
.fm-dialog-image.is-zoomed img { width: var(--fm-image-width); max-width: none; max-height: none; }
.fm-dialog-controls { display: flex; align-items: center; justify-content: center; gap: 12px; font-size: 13px; margin-top: 14px; }
.fm-dialog-controls button:last-child { margin-left: 8px; }
.fm-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 1000px) {
    .fm-army { gap: 36px; }
    .fm-description-layout { gap: 32px; }
    .fm-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fm-spread-grid { gap: 24px; margin-top: 104px; }
    .fm-spread-heading { min-height: 230px; padding: 28px 170px 28px 20px; }
    .fm-spread-heading h3 { font-size: 1.125rem; }
    .fm-spread-heading > img { width: 200px; height: 285px; }
    .fm-page { padding-inline: 32px; }
    .fm-overview { gap: 40px; }
    .fm-book-display { padding-inline: 0; }
    .fm-logo { margin-bottom: 14px !important; }
    .fm-subtitle { font-size: 1.0625rem; }
    .fm-summary { font-size: 1rem; margin-top: 20px !important; }
    .fm-highlights { gap: 10px; margin-block: 20px 24px; }
    .fm-highlights li { font-size: 14px; }
    .fm-facts > div { padding-inline: 24px; }
    .fm-facts dt { font-size: .9375rem; }
    .fm-benefits { gap: 28px; }
    .fm-benefits h3 { font-size: 1rem; }
    .fm-art-feature { gap: 40px; }
    .fm-final-cta { margin-inline: -32px; padding-inline: 32px; }
}
@media (max-width: 900px) {
    .fm-community { grid-template-columns: 1fr; gap: 8px; }
    .fm-community-claim { width: 100%; }
}
@media (max-width: 700px) {
    .fm-page { padding: 20px 24px 0; }
    .fm-page::before {
        height: 950px;
        background-image:
            linear-gradient(180deg, transparent 15%, #000 100%),
            linear-gradient(90deg, rgba(0,0,0,.83), rgba(0,0,0,.73), rgba(0,0,0,.85)),
            url('../images/fear-me/fearme_cover.webp');
        background-size: 100% 100%, 100% 100%, 740px auto;
        background-position: center, center, 60% top;
    }
    .fm-overview { grid-template-columns: 1fr; gap: 24px; padding-block: 24px 44px; }
    .fm-book-display { padding-block: 8px 0; }
    .fm-book-display::before { inset: -20px; }
    .fm-cover { width: min(170px, 54%); }
    .fm-cover-thumbnails { margin-top: 16px; }
    .fm-cover-thumbnails a { flex-basis: 44px; width: 44px; height: 44px; padding: 2px; }
    .fm-info { scroll-margin-top: 96px; }
    .fm-logo { width: min(290px, 100%); margin-bottom: 16px !important; }
    .fm-subtitle { font-size: 1.125rem; }
    .fm-creator { font-size: 14px; }
    .fm-creator img { width: 128px; }
    .fm-summary { max-width: none; font-size: 1rem; }
    /* The facts and benefits below carry these details on small screens. */
    .fm-highlights { display: none; }
    .fm-price { margin-top: 24px; }
    .fm-price strong { font-size: 2.375rem; }
    .fm-actions { max-width: none; }
    .fm-button { min-height: 54px; }
    .fm-wishlist { width: 54px; flex-basis: 54px; }
    .fm-facts { grid-template-columns: 1fr; padding-block: 8px; }
    .fm-facts > div { padding: 18px 0; display: grid; grid-template-columns: 1fr 1.15fr; align-items: baseline; gap: 16px; }
    .fm-facts > div + div { border-left: 0; border-top: 1px solid var(--fm-border); }
    .fm-facts dt { font-size: .9375rem; margin: 0; }
    .fm-facts dd { font-size: 13px; }
    .fm-inside { padding-block: 64px 40px; scroll-margin-top: 100px; }
    .fm-section-intro h2, .fm-art-feature h2 { font-size: 1.75rem; }
    .fm-section-intro > p, .fm-art-feature p { font-size: 1rem; margin-top: 20px; }
    .fm-benefits { grid-template-columns: 1fr; margin-top: 32px; gap: 28px; }
    .fm-benefits > div { padding-top: 20px; }
    .fm-benefits h3 { font-size: 1.125rem; margin-bottom: 12px; }
    .fm-benefits p { max-width: none; }
    .fm-art-feature { grid-template-columns: 1fr; gap: 28px; padding-block: 16px 40px; }
    .fm-art img { aspect-ratio: 1.16; }
    .fm-included-explanations { grid-template-columns: 1fr; gap: 28px; }
    .fm-description > h2, .fm-included-more > h2, .fm-extra > h2, .fm-media > h2 { font-size: 1.25rem; }
    .fm-prose { font-size: 15px; }
    .fm-hero-description { padding-block: 44px 16px; scroll-margin-top: 100px; }
    .fm-hero-description > h2 { font-size: 1.75rem; margin-bottom: 24px; }
    .fm-hero-description .fm-prose { font-size: 1rem; }
    .fm-description-layout { grid-template-columns: 1fr; gap: 32px; }
    .fm-description-villain { position: static; }
    .fm-character-art img { max-height: 430px; }
    .fm-spreads { padding-block: 48px 56px; }
    .fm-reviews { scroll-margin-top: 100px; }
    .fm-review-grid { grid-template-columns: 1fr; }
    .fm-review-card { padding: 14px; }
    .fm-review-dialog-header, .fm-review-dialog-body { padding: 18px; }
    .fm-spread-grid { grid-template-columns: 1fr; margin-top: 32px; gap: 24px; }
    .fm-spread-heading { min-height: 0; padding: 24px 20px; }
    .fm-spread-heading h3 { font-size: 1.25rem; }
    .fm-spread-heading > img { display: none; }
    .fm-army { grid-template-columns: 1fr; gap: 32px; padding-block: 48px; scroll-margin-top: 100px; }
    .fm-army-copy h2 { font-size: 1.75rem; margin-bottom: 24px; }
    .fm-army-copy .fm-prose { font-size: 1rem; }
    .fm-army-poster { position: static; width: min(360px,100%); margin-inline: auto; }
    .fm-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
    .fm-final-cta { margin-inline: -24px; padding: 56px 24px; }
    .fm-final-cta h2 { font-size: 1.75rem; }
    .fm-dialog { padding: 12px; }
    .fm-dialog-bar > span { max-width: 75%; }
    .fm-dialog-controls { gap: 8px; }
}
@media (max-width: 360px) {
    .fm-spread-heading { padding-inline: 16px; }
    .fm-spread-heading h3 { font-size: 1.125rem; }
    .fm-page { padding-inline: 20px; }
    .fm-price > span { font-size: 12px; }
    .fm-facts > div { grid-template-columns: 1fr; gap: 6px; }
    .fm-final-cta { margin-inline: -20px; padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) { .fm-page *, .fm-page *::before, .fm-page *::after { transition: none !important; animation: none !important; } }
