@media print {
    /* strip site chrome, interactive widgets, and screen-only elements */
    nav, header.navbar, footer, .navbar-custom,
    .legacy-journey-map, .legacy-map-wrap, .legacy-period-indicator,
    .legacy-inquiry-button, .legacy-hero-initials .badge,
    .legacy-lightbox, .dossier-banner,
    .lc-hero-cta, .lc-socials, .lc-topbar, .lc-strip,
    .lc-rail, .lc-yearstrip, .lc-cta, .lc-ips-statement,
    .print-hide, iframe { display: none !important; }

    /* paper-safe surface */
    html, body, .legacy-center, .legacy-body, .legacy-dossier,
    .ips, .ips.legacy, .ips.legacy-center,
    article.legacy-center,
    .lc-hero, .lc-layers, .lc-pullquote,
    .chapter, .chapter.alt { background: #fff !important; color: #000 !important; box-shadow: none !important; }

    /* hero: compact, no dark background */
    .lc-hero { padding: 0.2in 0 !important; }
    .lc-hero-grid { grid-template-columns: 1fr 180px !important; gap: 24px !important; min-height: auto !important; }
    .lc-hero .lc-name, .lc-hero .lc-name .first, .lc-hero .lc-name .last { color: #000 !important; font-size: 36pt !important; }
    .lc-hero .lc-tagline { color: #333 !important; }
    .lc-hero .lc-meta .k { color: #666 !important; }
    .lc-hero .lc-meta .v { color: #000 !important; font-size: 14pt !important; }
    .lc-portrait { max-width: 180px !important; }
    .lc-portrait img { max-height: 2.2in !important; filter: grayscale(15%); }
    .lc-portrait .flag-badge { display: none !important; }
    .lc-portrait .status-bar { display: none !important; }
    .lc-portrait .corner-tl, .lc-portrait .corner-br, .lc-portrait .scrim { display: none !important; }

    /* chapters flow continuously — never force a new page per chapter */
    .chapter { padding: 16px 0 !important; page-break-inside: auto !important; }
    .chapter.alt { background: #fff !important; }

    /* chapter headers stay with their content */
    .chap-top { page-break-inside: avoid; break-inside: avoid; page-break-after: avoid; break-after: avoid; padding-bottom: 10px !important; }
    .chap-top .yearblock .year { font-size: 28pt !important; color: #000 !important; }
    .chap-top .chap-title { font-size: 16pt !important; color: #000 !important; }
    .chap-top .chap-title small { color: #555 !important; }

    /* chapter content: single column, compact */
    .chap-body { margin-top: 12px !important; }
    .chap-content { grid-template-columns: 160px 1fr !important; gap: 16px !important; }
    .chap-content.nophoto { grid-template-columns: 1fr !important; }
    .chap-content.flip { grid-template-columns: 1fr 160px !important; }
    .chap-photo img { max-height: 1.8in !important; page-break-inside: avoid; break-inside: avoid; }
    .chap-photo .stamp { display: none !important; }

    /* narrative text */
    .chap-copy .narrative { font-size: 10pt !important; line-height: 1.6 !important; }
    .chap-copy .narrative > p:first-child::first-letter { font-size: 28pt !important; }
    .chap-copy .narrative p { margin-bottom: 8px !important; }

    /* links: hide URLs, just show link text underlined */
    .narrative a, .layer-body a { color: #000 !important; text-decoration: underline !important; }
    .narrative a::after, .layer-body a::after { content: none !important; }
    .narrative a[target="_blank"]::after { content: none !important; }

    /* meta-strip: compact inline */
    .meta-strip { margin-top: 10px !important; padding-top: 8px !important; gap: 16px !important; }
    .meta-strip .k { font-size: 7pt !important; }
    .meta-strip .v { font-size: 11pt !important; color: #000 !important; }

    /* gallery: compact grid, small thumbnails */
    .legacy-gallery { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 6px !important; margin: 10px 0 !important; }
    .legacy-gallery-item { page-break-inside: avoid; break-inside: avoid; }
    .legacy-gallery-img { height: 1.2in !important; object-fit: cover !important; }
    .legacy-gallery-link { border-radius: 0 !important; box-shadow: none !important; background: transparent !important; }
    .legacy-gallery-caption { display: none !important; }

    /* pull quotes */
    .lc-pullquote { page-break-inside: avoid; break-inside: avoid; padding: 16px 0 !important; }
    .lc-pullquote blockquote { font-size: 16pt !important; color: #000 !important; }
    .lc-pullquote .qmark { color: #999 !important; }

    /* story layers: compact single column */
    .lc-layers { padding: 16px 0 !important; }
    .lc-layers .layers-head { margin-bottom: 16px !important; }
    .lc-layers .layers-head h2 { font-size: 24pt !important; color: #000 !important; }
    .lc-layers .layers-head h2 em { color: #000 !important; }
    .lc-layers .layers-head p { color: #333 !important; }
    .lc-layers .layer-grid { border: none !important; }
    .lc-layers .layer { padding: 12px 0 !important; border: none !important; border-bottom: 1px solid #ddd !important; page-break-inside: avoid; break-inside: avoid; min-height: 0 !important; }
    .lc-layers .layer .num { color: #000 !important; font-size: 18pt !important; }
    .lc-layers .layer h3 { color: #000 !important; font-size: 12pt !important; }
    .lc-layers .layer .lh .lbl { color: #666 !important; }
    .lc-layers .layer .layer-body { font-size: 10pt !important; color: #000 !important; line-height: 1.5 !important; }

    /* section headings stay with content below */
    h1, h2, h3, .chap-title, .layers-head h2 { page-break-after: avoid; break-after: avoid; }

    /* blockquotes don't split */
    blockquote { page-break-inside: avoid; break-inside: avoid; }

    /* orphan/widow protection */
    p, li { orphans: 3; widows: 3; }

    /* images never split */
    img { page-break-inside: avoid; break-inside: avoid; max-width: 100% !important; }

    /* journey section heading */
    .lc-sechead { padding: 16px 0 0 !important; }
    .lc-sechead h2 { font-size: 24pt !important; color: #000 !important; }
    .lc-sechead .kicker .num { color: #000 !important; }
    .lc-sechead .kicker { color: #666 !important; }
    .lc-sechead .span { color: #666 !important; }

    /* closing quote */
    .lc-closing-quote { background: #fff !important; }

    /* page setup */
    @page { margin: 0.5in; }

    /* footer branding */
    body::after {
        content: "International Player Services · internationalplayerservices.com";
        position: fixed; bottom: 0.15in; left: 0; right: 0;
        text-align: center; font-size: 8pt; color: #aaa;
    }
}
