/* Print presentation: keeps editorial content readable when saved or printed. */
@page {
    size: A4;
    margin: 15mm 14mm 17mm;
}

:root {
    --print-ink: #111;
    --print-soft: #555;
    --print-line: #bbb;
    --print-paper: #fff;
}

* {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
}

html,
body {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: var(--print-paper) !important;
    color: var(--print-ink) !important;
    font-family: "Microsoft YaHei", "PingFang SC", sans-serif !important;
    font-size: 10.5pt !important;
    line-height: 1.55 !important;
}

body::before {
    content: "麻花影视 · " attr(class);
    display: block;
    margin: 0 0 8mm;
    padding: 0 0 3mm;
    border-bottom: 1px solid var(--print-line);
    color: var(--print-soft);
    font-size: 8.5pt;
    letter-spacing: .04em;
}

.skip-link,
.site-header,
.site-footer,
.menu-button,
.header-search,
.hero-actions,
.official-actions,
.next-route,
.desktop-links,
.search-form,
.search-suggestions,
.result-action,
.section-cta,
.button,
.text-link,
[aria-hidden="true"] {
    display: none !important;
}

main,
.hero-cinema,
.page-mast,
.official-lead,
.app-hero,
.desktop-hero,
.content-band,
.catalog-section,
.split-feature,
.route-section,
.watch-index,
.episode-board,
.anime-track,
.guide-section,
.path-section,
.official-notes,
.mobile-steps,
.device-section,
.app-choice,
.desktop-flow,
.keyboard-section,
.search-results,
.search-empty,
.not-found {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 0 8mm !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--print-ink) !important;
    overflow: visible !important;
}

.hero-cinema,
.page-mast,
.official-lead,
.app-hero,
.desktop-hero,
.split-feature,
.route-section,
.anime-track,
.device-section,
.keyboard-section {
    display: block !important;
}

.hero-copy,
.page-mast > div,
.official-copy,
.app-hero > div,
.desktop-copy,
.feature-copy,
.route-copy,
.anime-copy,
.device-copy,
.keyboard-copy {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--print-ink) !important;
}

.hero-copy h1,
.page-mast h1,
.official-copy h1,
.app-hero h1,
.desktop-copy h1,
.search-hero h1,
.not-found h1 {
    margin: 0 0 4mm !important;
    color: var(--print-ink) !important;
    font-size: 24pt !important;
    line-height: 1.18 !important;
    letter-spacing: 0 !important;
}

.section-heading,
.compact-heading {
    display: block !important;
    margin: 0 0 4mm !important;
}

.section-heading h2,
.route-copy h2,
.anime-copy h2,
.device-copy h2,
.keyboard-copy h2,
.official-notes h2,
.app-choice h2,
.board-head h2,
.next-route h2 {
    margin: 0 0 2mm !important;
    color: var(--print-ink) !important;
    font-size: 16.5pt !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
}

.section-heading > p,
.route-copy > p,
.anime-copy > p,
.device-copy > p,
.keyboard-copy > p,
.hero-lead,
.page-mast > div > p:last-child,
.official-copy > p:not(.eyebrow),
.app-hero > div > p:not(.eyebrow),
.desktop-copy > p:not(.eyebrow) {
    margin: 0 0 3mm !important;
    color: var(--print-soft) !important;
    font-size: 9.5pt !important;
}

.eyebrow,
.meta-line {
    margin: 0 0 1.5mm !important;
    color: var(--print-soft) !important;
    font-size: 7.5pt !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
}

.hero-art,
.feature-visual,
.official-panel,
.app-hero figure,
.desktop-screen,
.device-image,
.keyboard-section > img,
.page-mast > img {
    display: none !important;
}

.hero-facts,
.decision-grid,
.poster-grid,
.story-grid,
.short-grid,
.watch-modes,
.guide-grid,
.path-grid,
.note-columns,
.choice-grid,
.flow-grid,
.route-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4mm !important;
    margin: 4mm 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

.hero-facts {
    list-style: none !important;
}

.hero-facts li,
.decision-card,
.poster-card,
.story-card,
.short-grid article,
.watch-modes article,
.guide-grid article,
.path-grid a,
.note-columns article,
.choice-grid article,
.flow-grid article,
.route-links a {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 3mm !important;
    border: 1px solid var(--print-line) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--print-ink) !important;
    break-inside: avoid;
    page-break-inside: avoid;
}

.hero-facts li {
    display: block !important;
}

.hero-facts strong,
.hero-facts span,
.decision-card span,
.decision-card strong,
.decision-card p,
.route-links strong,
.route-links span {
    display: block !important;
    margin: 0 0 1mm !important;
    color: var(--print-ink) !important;
}

.decision-card p,
.route-links span,
.short-grid p,
.watch-modes p,
.guide-grid p,
.path-grid p,
.note-columns p,
.choice-grid p,
.flow-grid p {
    color: var(--print-soft) !important;
    font-size: 8.6pt !important;
}

.poster-card > img,
.story-card > img {
    display: none !important;
}

.poster-body,
.story-card > div {
    padding: 0 !important;
}

.poster-body h3,
.story-card h3,
.rail-card h3,
.mini-list h3,
.episode-list h3,
.anime-stack h3,
.result-list h3,
.watch-modes h3,
.guide-grid h3,
.path-grid strong,
.note-columns h3,
.choice-grid h3,
.flow-grid h3 {
    margin: 0 0 1.5mm !important;
    color: var(--print-ink) !important;
    font-size: 11.5pt !important;
    line-height: 1.3 !important;
}

.poster-body > p:not(.meta-line),
.story-card p,
.rail-card p,
.mini-list p,
.episode-list p,
.anime-stack p,
.result-list p {
    margin: 0 0 2mm !important;
    color: var(--print-soft) !important;
    font-size: 8.8pt !important;
}

.tag-list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1.5mm !important;
    margin: 2mm 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.tag-list li {
    padding: 1mm 1.7mm !important;
    border: 1px solid var(--print-line) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--print-soft) !important;
    font-size: 7pt !important;
}

.dark-section {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 8mm !important;
    padding: 0 !important;
    background: transparent !important;
    color: var(--print-ink) !important;
}

.rail-list,
.mini-list,
.episode-list,
.anime-stack,
.result-list,
.step-list,
.key-list {
    margin: 3mm 0 0 !important;
    border-top: 1px solid var(--print-line) !important;
}

.rail-card {
    display: grid !important;
    grid-template-columns: 12mm 1fr !important;
    gap: 3mm !important;
    padding: 3mm 0 !important;
    border-bottom: 1px solid var(--print-line) !important;
    break-inside: avoid;
    page-break-inside: avoid;
}

.rail-index,
.mini-list article span,
.anime-stack span,
.short-grid span,
.flow-grid article > span,
.watch-modes article > span {
    color: var(--print-soft) !important;
    font-size: 7.5pt !important;
}

.focus-line,
.focus-line strong {
    color: var(--print-soft) !important;
    font-size: 8pt !important;
}

.mini-list article,
.anime-stack article {
    padding: 3mm 0 !important;
    border-bottom: 1px solid var(--print-line) !important;
    break-inside: avoid;
    page-break-inside: avoid;
}

.episode-list article {
    display: grid !important;
    grid-template-columns: 1fr .45fr !important;
    gap: 5mm !important;
    padding: 3mm 0 !important;
    border-bottom: 1px solid var(--print-line) !important;
    break-inside: avoid;
    page-break-inside: avoid;
}

.episode-marker {
    display: none !important;
}

.episode-focus {
    display: block !important;
    color: var(--print-soft) !important;
    font-size: 8pt !important;
}

.episode-focus > span,
.episode-focus > strong {
    display: block !important;
    margin-bottom: 1mm !important;
    color: var(--print-soft) !important;
}

.board-head {
    display: block !important;
    margin-bottom: 3mm !important;
}

.board-head > a {
    display: none !important;
}

.step-list {
    list-style: none !important;
    padding: 0 !important;
}

.step-list li {
    display: grid !important;
    grid-template-columns: 10mm 1fr !important;
    gap: 3mm !important;
    padding: 3mm 0 !important;
    border-bottom: 1px solid var(--print-line) !important;
    break-inside: avoid;
}

.step-list li > span {
    width: auto !important;
    height: auto !important;
    display: block !important;
    background: transparent !important;
    color: var(--print-soft) !important;
    border-radius: 0 !important;
}

.step-list h3 {
    margin: 0 0 1mm !important;
    font-size: 11pt !important;
}

.step-list p,
.check-list li,
.key-list span {
    color: var(--print-soft) !important;
    font-size: 8.8pt !important;
}

.check-list {
    margin: 3mm 0 0 !important;
    padding: 0 0 0 5mm !important;
}

.check-list li {
    padding: 1.5mm 0 !important;
    border-bottom: 1px dotted var(--print-line) !important;
}

.check-list li::before {
    display: none !important;
}

.key-list {
    list-style: none !important;
    padding: 0 !important;
}

.key-list li {
    display: grid !important;
    grid-template-columns: 38mm 1fr !important;
    gap: 3mm !important;
    padding: 2.5mm 0 !important;
    border-bottom: 1px solid var(--print-line) !important;
}

kbd {
    padding: .6mm 1.5mm !important;
    border: 1px solid var(--print-line) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--print-ink) !important;
    font-size: 7.5pt !important;
}

.search-hero {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 8mm !important;
    text-align: left !important;
}

.result-list article {
    display: block !important;
    padding: 3mm 0 !important;
    border-bottom: 1px solid var(--print-line) !important;
    break-inside: avoid;
}

.not-found {
    text-align: left !important;
}

a[href^="http"]::after,
a[href^="/"]::after {
    content: " (" attr(href) ")";
    color: var(--print-soft);
    font-size: 7pt;
    font-weight: 400;
    word-break: break-all;
}

.poster-card a::after,
.path-grid a::after,
.route-links a::after {
    content: none !important;
}

h1,
h2,
h3 {
    break-after: avoid;
    page-break-after: avoid;
}

p,
li {
    orphans: 3;
    widows: 3;
}

article,
section {
    break-inside: auto;
    page-break-inside: auto;
}

.poster-card,
.story-card,
.rail-card,
.episode-list article,
.mini-list article,
.anime-stack article,
.result-list article,
.step-list li {
    break-inside: avoid;
    page-break-inside: avoid;
}

@media print and (orientation: landscape) {
    .hero-facts,
    .decision-grid,
    .poster-grid,
    .story-grid,
    .short-grid,
    .watch-modes,
    .guide-grid,
    .path-grid,
    .note-columns,
    .choice-grid,
    .flow-grid,
    .route-links {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
