/* ============================================================
   SFO Magazine — Fluid Section Layout (min 8.5" x 11")
   March 2026 — v15 Fluid Sections
   Each section card grows to fit its content (min 1056px).
   On screen: white section cards on a dark desk, scrollable.
   Print/PDF: sections flow across printed pages.
   ============================================================ */

/* --- CSS Variables --- */
:root {
    /* Desk = the dark surface pages sit on (screen only) */
    --mag-desk: #1a1a2e;
    /* Page = white/warm cream like real paper */
    --mag-page-bg: #fdfdfd;
    --mag-page-border: #e2e2e8;
    --mag-page-shadow: rgba(0, 0, 0, 0.35);
    /* Cards inside pages (audio player, SWOTT, seasonals) */
    --mag-card: #f4f4f8;
    --mag-card-border: #e0e0e8;
    /* Text on white pages */
    --mag-text: #1a1a2e;
    --mag-text-muted: #555570;
    --mag-text-dim: #8888a0;
    /* Accent colors */
    --mag-accent: #1a6fbf;
    --mag-accent-glow: rgba(26, 111, 191, 0.08);
    --mag-gold: #9a7b2c;
    --mag-gold-dim: rgba(154, 123, 44, 0.08);
    --mag-red: #c0392b;
    --mag-green: #1e8449;
    /* Cover text (stays light for dark cover) */
    --mag-cover-text: #e8eaf0;
    --mag-cover-text-muted: #8b8fa8;
    --mag-cover-text-dim: #5c6080;
    --mag-cover-accent: #4da6ff;
    /* Typography */
    --mag-serif: 'Georgia', 'Times New Roman', 'Palatino', serif;
    --mag-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --mag-mono: 'SF Mono', 'Fira Code', 'Consolas', monospace;
    /* Page dimensions — US Letter */
    --mag-page-width: 8.5in;
    --mag-page-height: 11in;
    --mag-page-margin: 0.5in 0.75in 0.25in 0.75in;
    /* Pixel equivalents for screen display (96dpi) */
    --mag-page-width-px: 816px;
    --mag-page-height-px: 1056px;
}

/* --- Base --- */
.magazine-issue {
    font-family: var(--mag-sans);
    color: var(--mag-text);
    background: var(--mag-desk);
    line-height: 1.75;
    font-size: 15px;
    margin: 0;
    padding: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.magazine-issue *,
.magazine-issue *::before,
.magazine-issue *::after {
    box-sizing: border-box;
}

/* ============================================================
   PAGE SYSTEM — Fixed 8.5x11 letter pages
   ============================================================ */

/* The wrapper creates the "desk" gap between pages on screen */
.mag-page-wrapper {
    width: var(--mag-page-width-px);
    margin: 0 auto;
    padding: 1.25rem 0;
}

/* The section card — minimum letter-size, grows to fit content */
.mag-page {
    position: relative;
    background: var(--mag-page-bg);
    border: 1px solid var(--mag-page-border);
    width: var(--mag-page-width-px);
    min-height: var(--mag-page-height-px);
    padding: var(--mag-page-margin);
    box-shadow:
        0 4px 24px var(--mag-page-shadow),
        0 1px 3px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
}

/* Page numbers removed in v15 — sections replace pages */

/* ============================================================
   COVER — Full-page, dramatic, dark background
   ============================================================ */
.mag-cover-wrapper {
    width: var(--mag-page-width-px);
    margin: 0 auto;
    padding: 1.25rem 0;
}

.mag-cover {
    position: relative;
    width: var(--mag-page-width-px);
    height: var(--mag-page-height-px);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
    padding: 0;
    background: var(--mag-desk) url('10-Cover/Gemini_Generated_Image_pa6k3ipa6k3ipa6k.webp') center center / cover no-repeat;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow:
        0 4px 24px var(--mag-page-shadow),
        0 1px 3px rgba(0, 0, 0, 0.3);
}

.mag-cover::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background:
        linear-gradient(to bottom, rgba(10, 12, 20, 0.55) 0%, rgba(10, 12, 20, 0.35) 30%, rgba(10, 12, 20, 0.25) 50%, rgba(10, 12, 20, 0.50) 80%, rgba(10, 12, 20, 0.70) 100%),
        radial-gradient(ellipse at 30% 40%, rgba(77, 166, 255, 0.07) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 60%, rgba(201, 168, 76, 0.04) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
}

.mag-cover-content {
    position: relative;
    z-index: 1;
    width: 100%;
}

/* Masthead: flush top, edge-to-edge */
.mag-cover-masthead {
    width: 100%;
    margin: 0 0 2.5rem;
}

.mag-cover-masthead img {
    width: 100%;
    height: auto;
    display: block;
}

/* Content below masthead gets horizontal padding */
.mag-cover-title,
.mag-cover-subtitle,
.mag-cover-date {
    padding-left: 0.75in;
    padding-right: 0.75in;
}

/* Features bar goes full-width for the dark banner effect */
.mag-cover-features {
    padding-left: 0.75in;
    padding-right: 0.75in;
}

.mag-cover-title {
    font-family: var(--mag-serif);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.1;
    color: #ffffff;
    margin: 0 0 0.75rem;
    letter-spacing: -0.02em;
    text-shadow:
        0 2px 8px rgba(0, 0, 0, 0.8),
        0 0 30px rgba(0, 0, 0, 0.5);
}

.mag-cover-subtitle {
    font-size: 1.05rem;
    color: #d0d4e8;
    font-weight: 400;
    line-height: 1.5;
    margin-bottom: 2rem;
    text-shadow:
        0 1px 6px rgba(0, 0, 0, 0.8),
        0 0 20px rgba(0, 0, 0, 0.4);
}

.mag-cover-features {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    padding: 0.6rem 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    z-index: 2;
}

.mag-cover-feature {
    font-size: 0.78rem;
    color: #e0e2f0;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.mag-cover-feature i {
    color: var(--mag-cover-accent);
    font-size: 0.85rem;
    filter: drop-shadow(0 0 3px rgba(77, 166, 255, 0.5));
}

.mag-cover-date {
    display: none; /* date removed — info lives in masthead */
}

/* ============================================================
   TABLE OF CONTENTS
   ============================================================ */
#toc {
    background: var(--mag-page-bg) url('30-Contents/Gemini_Generated_Image_3whsjx3whsjx3whs.webp') center center / cover no-repeat;
}

.mag-toc {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.mag-toc-header {
    font-size: 0.65rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--mag-accent);
    margin-bottom: 0.75rem;
    font-weight: 600;
}

/* TOC Video */
.mag-toc-video {
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #e8e8f0;
}

.mag-toc-video-label {
    font-size: 0.65rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--mag-accent);
    font-weight: 600;
    margin-bottom: 0.4rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.mag-toc-video-label i { font-size: 0.8rem; }
.mag-toc-video .mag-video { margin: 0; }

.mag-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mag-toc-item {
    display: flex;
    align-items: baseline;
    padding: 0.35rem 0;
    border-bottom: 1px solid #e8e8f0;
}

.mag-toc-item:last-child { border-bottom: none; }

.mag-toc-number {
    font-family: var(--mag-mono);
    font-size: 0.65rem;
    color: var(--mag-text-dim);
    width: 2rem;
    flex-shrink: 0;
}

.mag-toc-title { flex: 1; }

.mag-toc-title a {
    color: var(--mag-text);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 400;
    transition: color 0.2s;
}

.mag-toc-title a:hover { color: var(--mag-accent); }

.mag-toc-author {
    font-size: 0.72rem;
    color: var(--mag-text-muted);
    margin-left: auto;
    padding-left: 1rem;
    white-space: nowrap;
}

.mag-toc-type {
    display: inline-block;
    font-size: 0.5rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--mag-gold);
    background: var(--mag-gold-dim);
    padding: 1px 5px;
    border-radius: 3px;
    margin-left: 0.5rem;
    font-weight: 600;
}

/* ============================================================
   ARTICLE HEADERS
   ============================================================ */
.mag-article-header {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--mag-page-border);
    flex-shrink: 0;
}

.mag-article-category {
    font-size: 0.65rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--mag-accent);
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.mag-article-title {
    font-family: var(--mag-serif);
    font-size: clamp(1.5rem, 3.5vw, 2.1rem);
    font-weight: 400;
    line-height: 1.2;
    color: var(--mag-text);
    margin: 0 0 0.5rem;
    letter-spacing: -0.01em;
}

.mag-article-subtitle {
    font-size: 0.95rem;
    color: var(--mag-text-muted);
    font-weight: 300;
    line-height: 1.4;
    margin: 0 0 0.85rem;
}

.mag-byline {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.mag-byline-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--mag-card);
    border: 1px solid var(--mag-card-border);
    overflow: hidden;
    flex-shrink: 0;
}

.mag-byline-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mag-byline-info {
    display: flex;
    flex-direction: column;
}

.mag-byline-name {
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--mag-text);
}

.mag-byline-role {
    font-size: 0.72rem;
    color: var(--mag-text-muted);
}

/* ============================================================
   AUDIO PLAYER
   ============================================================ */
.mag-audio-player {
    background: var(--mag-card);
    border: 1px solid var(--mag-card-border);
    border-radius: 6px;
    padding: 0.6rem 1rem;
    margin: 0.75rem 0 1rem;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-shrink: 0;
}

.mag-audio-player i {
    color: var(--mag-accent);
    font-size: 0.9rem;
    flex-shrink: 0;
}

.mag-audio-player audio {
    flex: 1;
    height: 32px;
    min-width: 0;
}

.mag-audio-label {
    font-size: 0.72rem;
    color: var(--mag-text-muted);
    white-space: nowrap;
    flex-shrink: 0;
}

.mag-audio-download {
    color: var(--mag-text-dim);
    font-size: 0.82rem;
    text-decoration: none;
    flex-shrink: 0;
    transition: color 0.2s;
}

.mag-audio-download:hover { color: var(--mag-accent); }

.mag-audio-placeholder {
    color: var(--mag-text-dim);
    font-size: 0.75rem;
    font-style: italic;
}

/* ============================================================
   ARTICLE BODY — Content flows naturally within section card
   ============================================================ */
.mag-body {
    font-size: 0.88rem;
    line-height: 1.65;
    color: var(--mag-text);
    flex: 1;
}

.mag-body p {
    margin: 0 0 1rem;
}

.mag-body h2 {
    font-family: var(--mag-serif);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--mag-text);
    margin: 1.75rem 0 0.75rem;
    letter-spacing: -0.01em;
}

.mag-body h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--mag-text);
    margin: 1.5rem 0 0.65rem;
}

.mag-body strong { font-weight: 600; color: var(--mag-text); }
.mag-body em { font-style: italic; color: var(--mag-text-muted); }

.mag-body a {
    color: var(--mag-accent);
    text-decoration: none;
    border-bottom: 1px solid rgba(77, 166, 255, 0.3);
    transition: border-color 0.2s;
}

.mag-body a:hover { border-color: var(--mag-accent); }

.mag-body ul, .mag-body ol {
    padding-left: 1.25rem;
    margin-bottom: 1rem;
}

.mag-body li { margin-bottom: 0.35rem; }

/* --- Pull Quotes --- */
.mag-pullquote {
    position: relative;
    margin: 1.5rem 0;
    padding: 1.25rem 1.5rem 1.25rem 1.75rem;
    border-left: 3px solid var(--mag-gold);
    background: var(--mag-gold-dim);
    border-radius: 0 6px 6px 0;
    font-family: var(--mag-serif);
    font-size: 1.05rem;
    line-height: 1.5;
    color: var(--mag-text);
    font-style: italic;
}

.mag-pullquote-attribution {
    display: block;
    margin-top: 0.5rem;
    font-size: 0.75rem;
    font-style: normal;
    color: var(--mag-text-muted);
    font-family: var(--mag-sans);
}

/* --- Figures --- */
.mag-figure {
    margin: 1.25rem 0;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid var(--mag-card-border);
}

.mag-figure img {
    width: 100%;
    height: auto;
    display: block;
}

.mag-figure figcaption {
    padding: 0.5rem 0.85rem;
    font-size: 0.72rem;
    color: var(--mag-text-muted);
    background: var(--mag-card);
    border-top: 1px solid var(--mag-card-border);
    line-height: 1.4;
}

/* --- Video --- */
.mag-video {
    margin: 1.25rem 0;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid var(--mag-card-border);
    background: #000;
}

.mag-video video { width: 100%; display: block; }

/* Continuation headers removed in v15 — articles are single cards */

/* ============================================================
   POEM
   ============================================================ */
#poem {
    background: var(--mag-page-bg) url('50-Crossword/Gemini_Generated_Image_m441ppm441ppm441.webp') center center / cover no-repeat;
}

.mag-poem {
    text-align: center;
    padding: 0.25rem 0 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 0;
}

.mag-poem-text {
    font-family: var(--mag-serif);
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--mag-text);
    font-style: italic;
    max-width: 460px;
    margin: 0 auto 0.25rem;
}

.mag-poem-text .stanza { margin-bottom: 0.35rem; }

.mag-poem-attribution {
    font-size: 0.75rem;
    color: var(--mag-text-muted);
    font-style: normal;
    letter-spacing: 0.05em;
    margin-top: 0.25rem;
}

/* ============================================================
   SWOTT REPORT
   ============================================================ */
.mag-swott-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    margin: 1.25rem 0;
}

.mag-swott-card {
    background: var(--mag-card);
    border: 1px solid var(--mag-card-border);
    border-radius: 4px;
    padding: 0.85rem;
}

.mag-swott-card.full-width { grid-column: 1 / -1; }

.mag-swott-card h4 {
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    margin: 0 0 0.5rem;
    font-weight: 600;
}

.mag-swott-card.strengths h4 { color: var(--mag-green); }
.mag-swott-card.weaknesses h4 { color: var(--mag-red); }
.mag-swott-card.opportunities h4 { color: var(--mag-accent); }
.mag-swott-card.threats h4 { color: #f59e0b; }
.mag-swott-card.technicals h4 { color: var(--mag-gold); }

.mag-swott-card ul { list-style: none; padding: 0; margin: 0; }

.mag-swott-card li {
    padding: 0.25rem 0;
    font-size: 0.8rem;
    color: var(--mag-text-muted);
    border-bottom: 1px solid #e8e8f0;
}

.mag-swott-card li:last-child { border-bottom: none; }

/* ============================================================
   SEASONAL TRADES
   ============================================================ */
.mag-seasonal-trades {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    margin: 1.25rem 0;
}

.mag-seasonal-trade {
    background: var(--mag-card);
    border: 1px solid var(--mag-card-border);
    border-radius: 4px;
    padding: 0.85rem 1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.mag-seasonal-symbol {
    font-family: var(--mag-mono);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--mag-accent);
    min-width: 50px;
}

.mag-seasonal-info { flex: 1; }

.mag-seasonal-name {
    font-size: 0.85rem;
    color: var(--mag-text);
    font-weight: 500;
    margin-bottom: 0.15rem;
}

.mag-seasonal-detail {
    font-size: 0.72rem;
    color: var(--mag-text-muted);
}

.mag-seasonal-stat { text-align: right; }

.mag-seasonal-winrate {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--mag-green);
}

.mag-seasonal-label {
    font-size: 0.6rem;
    color: var(--mag-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* Seasonal Trade Picks (chart page) */
.mag-seasonal-pick {
    margin-bottom: 0.6rem;
}
.mag-seasonal-pick h3 {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--mag-accent);
    margin: 0.4rem 0 0.15rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.mag-seasonal-pick h3 i {
    font-size: 0.7rem;
    color: var(--mag-gold);
}
.mag-seasonal-pick > p {
    font-size: 0.72rem;
    color: var(--mag-text-muted);
    margin-bottom: 0.2rem;
    line-height: 1.4;
}
.mag-seasonal-pick .mag-figure {
    margin: 0.2rem 0 0.25rem;
}
.mag-seasonal-pick .mag-figure img {
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    border: 1px solid var(--mag-card-border);
}
.mag-seasonal-pick .mag-figure figcaption {
    font-size: 0.6rem;
    margin-top: 0.15rem;
}
.mag-seasonal-featured h3 {
    color: var(--mag-gold);
    font-size: 0.88rem;
}
.mag-seasonal-featured h3 i {
    color: var(--mag-gold);
    font-size: 0.78rem;
}
.mag-seasonal-disclaimer {
    font-size: 0.62rem;
    color: var(--mag-text-dim);
    border-top: 1px solid var(--mag-card-border);
    padding-top: 0.3rem;
    margin-top: 0.3rem;
    line-height: 1.4;
}

/* Seasonal Chart Pages — one chart centered per page */
.mag-seasonal-chart-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.mag-seasonal-chart-page .mag-audio-player {
    width: 100%;
    margin-bottom: 0.5rem;
}
.mag-seasonal-chart-center {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
}
.mag-seasonal-chart-center img {
    max-width: 100%;
    max-height: 100%;
    height: auto;
    border: none;
}

/* ============================================================
   CROSSWORD / CLUES
   ============================================================ */
.mag-clues-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-top: 1.25rem;
}

.mag-clues h4 {
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--mag-accent);
    margin: 0 0 0.75rem;
    font-weight: 600;
}

.mag-clues ol { list-style: none; padding: 0; }

.mag-clues li {
    font-size: 0.8rem;
    color: var(--mag-text-muted);
    padding: 0.3rem 0;
    border-bottom: 1px solid #e8e8f0;
}

.mag-clues li strong {
    color: var(--mag-text);
    margin-right: 0.3rem;
}

/* ============================================================
   SPONSOR BLOCKS — Prominent ads between section cards
   ============================================================ */
.mag-sponsor-wrapper {
    width: var(--mag-page-width-px);
    margin: 0 auto;
    padding: 1rem 0;
}

.mag-sponsor {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 8px;
    padding: 3rem 2.5rem;
    text-align: center;
}

.mag-sponsor-label {
    font-size: 0.6rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: #7a7a98;
    margin-bottom: 1rem;
}

.mag-sponsor-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: #e8e8f0;
    margin-bottom: 0.5rem;
}

.mag-sponsor-text {
    font-size: 1rem;
    color: #a0a0bc;
    max-width: 540px;
    margin: 0 auto 1.25rem;
    line-height: 1.6;
}

.mag-sponsor-cta {
    display: inline-block;
    background: var(--mag-cover-accent);
    color: #fff;
    padding: 0.75rem 2rem;
    border-radius: 6px;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    transition: opacity 0.2s;
}

.mag-sponsor-cta:hover { opacity: 0.85; }

/* Rich Sponsor Block (between-section with image — centered, stacked) */
.mag-sponsor-rich {
    text-align: center;
}

.mag-sponsor-rich-layout {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
}

.mag-sponsor-rich-img {
    width: 140px;
    height: auto;
    border-radius: 8px;
    flex-shrink: 0;
    object-fit: cover;
}

.mag-sponsor-round {
    border-radius: 50%;
    width: 120px;
    height: 120px;
    object-fit: cover;
}

.mag-sponsor-rich-content {
    flex: 1;
    text-align: center;
}

.mag-sponsor-rich-content .mag-sponsor-title {
    margin-bottom: 0.5rem;
}

.mag-sponsor-rich-content .mag-sponsor-text {
    margin: 0 auto 1rem;
    max-width: 540px;
}

/* ============================================================
   FOOTER PAGE
   ============================================================ */
.mag-footer-page {
    justify-content: center;
    align-items: center;
}

.mag-footer-content {
    text-align: center;
}

.mag-footer-logo {
    font-family: var(--mag-serif);
    font-size: 1.4rem;
    color: var(--mag-text);
    margin-bottom: 0.3rem;
}

.mag-footer-tagline {
    font-size: 0.8rem;
    color: var(--mag-text-muted);
    margin-bottom: 1.75rem;
}

.mag-footer-staff {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25rem 2.5rem;
    margin: 0 0 1.75rem;
    font-size: 0.75rem;
}

.mag-footer-staff dt {
    color: var(--mag-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.58rem;
}

.mag-footer-staff dd {
    color: var(--mag-text);
    margin: 0;
}

.mag-disclaimer {
    font-size: 0.65rem;
    color: var(--mag-text-dim);
    line-height: 1.6;
    max-width: 550px;
    margin: 0 auto;
    padding-top: 1rem;
    border-top: 1px solid #e0e0e8;
}

.mag-disclaimer a {
    color: var(--mag-accent);
    text-decoration: none;
}

/* ============================================================
   FUNNY PAPERS / CARTOON
   ============================================================ */
.mag-funny-papers {
    text-align: center;
    justify-content: flex-start;
}

.mag-cartoon {
    margin: 1rem auto 0;
    max-width: 580px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.mag-cartoon img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
    border: 1px solid var(--mag-card-border);
}

.mag-cartoon figcaption {
    margin-top: 1rem;
    font-family: var(--mag-serif);
    font-size: 1rem;
    color: var(--mag-text-muted);
    line-height: 1.4;
}

/* ============================================================
   BACK TO TOP
   ============================================================ */
.mag-back-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 40px;
    height: 40px;
    background: #2a2a45;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b0b0c8;
    text-decoration: none;
    font-size: 0.85rem;
    transition: all 0.2s;
    opacity: 0;
    pointer-events: none;
    z-index: 50;
}

.mag-back-top.visible { opacity: 1; pointer-events: auto; }
.mag-back-top:hover { border-color: var(--mag-cover-accent); color: var(--mag-cover-accent); }

/* ============================================================
   RESPONSIVE — Smaller screens scale the page down
   ============================================================ */
@media (max-width: 880px) {
    .mag-page-wrapper,
    .mag-cover-wrapper,
    .mag-sponsor-wrapper {
        width: 100%;
        padding: 0.75rem;
    }

    .mag-page,
    .mag-cover {
        width: 100%;
        height: auto;
        min-height: auto;
        padding: 1.5rem 1.25rem;
    }

    .mag-toc-item { flex-wrap: wrap; gap: 0.2rem; }
    .mag-toc-author { margin-left: 2.25rem; }
    .mag-swott-grid { grid-template-columns: 1fr; }
    .mag-clues-container { grid-template-columns: 1fr; }
    .mag-audio-player { flex-wrap: wrap; }
    .mag-audio-player audio { width: 100%; order: 3; }
    .mag-seasonal-trade { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
    .mag-seasonal-stat { text-align: left; }
    .mag-pullquote { padding: 1rem; font-size: 0.95rem; }
    .mag-cover-features { gap: 0.85rem; }
    .mag-footer-staff { flex-direction: column; gap: 0.65rem; }
}

/* ============================================================
   PRINT / PDF — Sections flow across printed pages
   ============================================================ */
@page {
    size: 8.5in 11in;
    margin: 0;
}

@media print {
    .mag-back-top,
    .mag-sponsor-wrapper { display: none !important; }

    .magazine-issue {
        background: white;
        color: black;
    }

    .mag-page-wrapper,
    .mag-cover-wrapper {
        width: 8.5in;
        padding: 0;
        margin: 0;
    }

    /* Sections flow naturally across printed pages */
    .mag-page {
        width: 8.5in;
        min-height: auto;
        height: auto;
        border: none;
        box-shadow: none;
        page-break-after: always;
        page-break-inside: auto;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Cover stays fixed size in print */
    .mag-cover {
        width: 8.5in;
        height: 11in;
        border: none;
        box-shadow: none;
        background: var(--mag-desk) url('10-Cover/Gemini_Generated_Image_pa6k3ipa6k3ipa6k.webp') center center / cover no-repeat !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        page-break-after: always;
    }

    .mag-audio-player { display: none !important; }

    .mag-body p { orphans: 3; widows: 3; }
    .mag-body h2, .mag-body h3 { page-break-after: avoid; }
    .mag-figure { page-break-inside: avoid; }
    .mag-pullquote { page-break-inside: avoid; }
}

/* ============================================================
   AUTHOR BIOS
   ============================================================ */
.mag-author-bio {
    margin-top: 1.25rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--mag-page-border);
    font-size: 0.82rem;
    color: var(--mag-text-muted);
}

/* Inline bio: image left, text right, block centered */
.mag-bio-inline {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
}

.mag-bio-inline .mag-bio-avatar {
    flex-shrink: 0;
}

.mag-bio-inline .mag-bio-avatar img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
}

.mag-bio-inline .mag-bio-text {
    text-align: left;
    line-height: 1.5;
}

/* Mobile: stack vertically, center image */
@media (max-width: 480px) {
    .mag-bio-inline {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .mag-bio-inline .mag-bio-text {
        text-align: center;
    }
}

/* ============================================================
   FIGURE PAIRS — Side-by-side images
   ============================================================ */
.mag-figure-pair .mag-figure-row {
    display: flex;
    gap: 0.5rem;
}

.mag-figure-pair .mag-figure-row img {
    flex: 1;
    width: 50%;
    height: auto;
    display: block;
    border-radius: 4px;
    border: 1px solid var(--mag-card-border);
}

/* ============================================================
   DISCLOSURE / RISK PAGES
   ============================================================ */
.mag-disclosure-page {
    justify-content: flex-start;
}

.mag-disclosure-body {
    font-size: 0.78rem;
    line-height: 1.6;
}

.mag-disclosure-body h3 {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--mag-text);
    margin: 1.25rem 0 0.4rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--mag-page-border);
}

.mag-disclosure-body h3:first-child {
    margin-top: 0;
}

.mag-disclosure-body p {
    margin: 0 0 0.65rem;
    color: var(--mag-text-muted);
}

.mag-disclosure-body ul {
    padding-left: 1rem;
    margin: 0 0 0.65rem;
}

.mag-disclosure-body li {
    margin-bottom: 0.3rem;
    color: var(--mag-text-muted);
    font-size: 0.78rem;
}

.mag-disclosure-body a {
    color: var(--mag-accent);
    text-decoration: none;
}

.mag-masthead-staff {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem 1.5rem;
    margin: 0.5rem 0 0.75rem;
    font-size: 0.78rem;
}

.mag-masthead-staff div {
    display: flex;
    gap: 0.5rem;
}

.mag-masthead-staff dt {
    color: var(--mag-text-dim);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    min-width: 110px;
    flex-shrink: 0;
}

.mag-masthead-staff dd {
    color: var(--mag-text);
    margin: 0;
}

/* ============================================================
   CROSSWORD PAGE & BANNER
   ============================================================ */
#crossword {
    background: var(--mag-page-bg) url('50-Crossword/Gemini_Generated_Image_7kp2j67kp2j67kp2.webp') center center / cover no-repeat;
}

#crossword-answers {
    background: var(--mag-page-bg) url('50-Crossword/Gemini_Generated_Image_k9jsa5k9jsa5k9js.webp') center center / cover no-repeat;
}

.mag-crossword-banner {
    text-align: center;
    border: none;
    background: transparent;
    padding: 1.5rem 0;
    border-radius: 0;
    margin-bottom: 1.5rem;
}

.mag-crossword-banner img {
    max-width: 460px;
    height: auto;
    margin: 0 auto;
    display: block;
    border: none;
}

.mag-crossword-poem {
    margin-top: 4rem;
    text-align: center;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.95rem;
    line-height: 1.8;
    font-style: italic;
    color: var(--mag-text);
}

/* ============================================================
   AD PAGES — Shared Styles
   ============================================================ */
.mag-ad-page {
    justify-content: flex-start;
}

.mag-ad-label {
    font-size: 0.55rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--mag-text-dim);
    margin-bottom: 1rem;
    flex-shrink: 0;
}

.mag-ad-label i {
    margin-right: 0.3rem;
    font-size: 0.5rem;
}

.mag-ad-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.mag-ad-banner {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto 1.5rem;
}

/* ============================================================
   AD: FIBONACCI EFFECTS BOOK
   ============================================================ */
.mag-ad-fib {
    text-align: center;
    align-items: center;
}

.mag-ad-fib-layout {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    margin: 1.5rem 0;
    text-align: left;
}

.mag-ad-fib-book {
    flex-shrink: 0;
    width: 220px;
}

.mag-ad-fib-book img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

.mag-ad-fib-details {
    flex: 1;
}

.mag-ad-fib-details h3 {
    font-family: var(--mag-serif);
    font-size: 1.3rem;
    color: var(--mag-text);
    margin: 0 0 0.5rem;
    font-weight: 400;
}

.mag-ad-fib-tagline {
    font-size: 0.95rem;
    color: var(--mag-accent);
    font-weight: 500;
    margin-bottom: 0.5rem;
}

.mag-ad-fib-details p {
    font-size: 0.82rem;
    color: var(--mag-text-muted);
    line-height: 1.5;
}

.mag-ad-fib-features {
    list-style: none;
    padding: 0;
    margin: 0.6rem 0 0;
}

.mag-ad-fib-features li {
    font-size: 0.75rem;
    color: var(--mag-text-muted);
    padding: 0.2rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.mag-ad-fib-features li i {
    color: var(--mag-green);
    font-size: 0.65rem;
    flex-shrink: 0;
}

.mag-ad-fib-avail {
    font-size: 0.72rem;
    color: var(--mag-text-muted);
    margin: 0 0 0.4rem !important;
    letter-spacing: 0.05em;
}

.mag-ad-fib-search {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.95rem;
    color: var(--mag-text);
}

.mag-ad-fib-author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--mag-card-border);
}

.mag-ad-fib-photo {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--mag-card-border);
}

.mag-ad-fib-author span {
    font-size: 0.85rem;
    color: var(--mag-text-muted);
}

.mag-ad-fib-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-top: auto;
    padding: 1.25rem;
    background: var(--mag-card);
    border: 1px solid var(--mag-card-border);
    border-radius: 8px;
}

.mag-ad-fib-qr img {
    width: 100px;
    height: auto;
    display: block;
}

.mag-ad-fib-action {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.95rem;
    color: var(--mag-text);
}

.mag-ad-arrow {
    width: 36px;
    height: auto;
    transform: scaleX(-1);
}

.mag-ad-amazon-logo {
    height: 22px;
    width: auto;
    margin-left: 0.25rem;
}

/* ============================================================
   AD: MEET LAN TURNER
   ============================================================ */
.mag-ad-lan {
    gap: 0.75rem;
}

.mag-ad-lan-intro {
    text-align: center;
    margin-bottom: 0.5rem;
}

.mag-ad-lan-lead {
    font-family: var(--mag-serif);
    font-size: 1.3rem;
    color: var(--mag-text);
    font-weight: 400;
    margin-bottom: 0.35rem;
}

.mag-ad-lan-intro p {
    font-size: 0.85rem;
    color: var(--mag-text-muted);
    line-height: 1.5;
}

.mag-ad-lan-photo-block {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    padding: 1rem;
    background: var(--mag-card);
    border: 1px solid var(--mag-card-border);
    border-radius: 8px;
}

.mag-ad-lan-photo {
    width: 140px;
    height: auto;
    border-radius: 6px;
    flex-shrink: 0;
    border: 2px solid var(--mag-card-border);
}

.mag-ad-lan-quote p {
    font-family: var(--mag-serif);
    font-size: 0.78rem;
    font-style: italic;
    color: var(--mag-text-muted);
    line-height: 1.5;
    margin: 0 0 0.5rem;
}

.mag-ad-lan-hold-beer {
    font-size: 0.85rem !important;
    color: var(--mag-text) !important;
    font-style: normal !important;
}

.mag-ad-lan-sig {
    font-style: normal !important;
    font-family: var(--mag-sans) !important;
    font-size: 0.72rem !important;
    color: var(--mag-text-dim) !important;
    letter-spacing: 0.05em;
}

.mag-ad-lan-bio h3 {
    font-family: var(--mag-serif);
    font-size: 1.1rem;
    color: var(--mag-text);
    margin: 0 0 0.35rem;
    font-weight: 400;
}

.mag-ad-lan-bio p {
    font-size: 0.8rem;
    color: var(--mag-text-muted);
    line-height: 1.5;
    margin: 0 0 0.35rem;
}

.mag-ad-lan-bio ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mag-ad-lan-bio li {
    font-size: 0.78rem;
    color: var(--mag-text-muted);
    padding: 0.2rem 0;
    padding-left: 1.2rem;
    position: relative;
}

.mag-ad-lan-bio li::before {
    content: '\2713';
    position: absolute;
    left: 0;
    color: var(--mag-green);
    font-weight: 700;
}

.mag-ad-lan-cta {
    background: var(--mag-accent-glow);
    border: 1px solid rgba(26, 111, 191, 0.2);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    text-align: center;
    margin-top: auto;
}

.mag-ad-lan-cta h4 {
    font-family: var(--mag-serif);
    font-size: 0.95rem;
    color: var(--mag-text);
    margin: 0 0 0.35rem;
    font-weight: 400;
}

.mag-ad-lan-cta > p {
    font-size: 0.78rem;
    color: var(--mag-text-muted);
    margin: 0 0 0.75rem;
}

.mag-ad-lan-booking {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.mag-ad-lan-qr {
    width: 80px;
    height: auto;
    display: block;
    border-radius: 4px;
}

.mag-ad-lan-url {
    font-family: var(--mag-mono);
    font-size: 0.95rem;
    color: var(--mag-accent);
    font-weight: 600;
    margin: 0 0 0.2rem !important;
}

.mag-ad-lan-limited {
    font-size: 0.7rem;
    color: var(--mag-text-dim);
    margin: 0 !important;
}

/* ============================================================
   AD: TRADEMINER
   ============================================================ */
.mag-ad-tm {
    text-align: center;
    gap: 0.75rem;
}

.mag-ad-tm-hero {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-bottom: 0.5rem;
}

.mag-ad-tm-laptop {
    width: 200px;
    height: auto;
}

.mag-ad-tm-headline h3 {
    font-family: var(--mag-serif);
    font-size: 2rem;
    color: var(--mag-text);
    margin: 0;
    font-weight: 400;
}

.mag-ad-tm-sub {
    font-size: 0.85rem;
    color: var(--mag-accent);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin: 0;
}

.mag-ad-tm-tagline {
    font-family: var(--mag-serif);
    font-size: 1.1rem;
    color: var(--mag-text);
    font-style: italic;
}

.mag-ad-tm-features {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0.75rem auto;
    max-width: 450px;
}

.mag-ad-tm-feat {
    font-size: 0.82rem;
    color: var(--mag-text-muted);
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0.85rem;
    background: var(--mag-card);
    border: 1px solid var(--mag-card-border);
    border-radius: 4px;
}

.mag-ad-tm-feat i {
    color: var(--mag-accent);
    font-size: 0.9rem;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}

.mag-ad-tm-desc {
    font-size: 0.88rem;
    color: var(--mag-text-muted);
    line-height: 1.6;
    max-width: 480px;
    margin: 0 auto 0.5rem;
    text-align: center;
}

.mag-ad-tm-url {
    font-family: var(--mag-mono);
    font-size: 1.1rem;
    color: var(--mag-accent);
    font-weight: 600;
    margin-top: auto;
    letter-spacing: 0.05em;
}

/* ============================================================
   AD: TRACK 'N TRADE
   ============================================================ */
.mag-ad-tnt {
    text-align: center;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
}

.mag-ad-tnt-hero {
    margin-bottom: 1rem;
}

.mag-ad-tnt-box {
    max-width: 320px;
    height: auto;
    display: block;
    margin: 0 auto;
    border-radius: 8px;
}

.mag-ad-tnt-copy {
    margin-bottom: 1rem;
}

.mag-ad-tnt-ferrari {
    font-family: var(--mag-serif);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--mag-accent);
    letter-spacing: 0.02em;
    margin: 0 0 0.25rem;
    text-transform: uppercase;
}

.mag-ad-tnt-tagline {
    font-family: var(--mag-serif);
    font-size: 1.4rem;
    color: var(--mag-text);
    font-style: italic;
    margin: 0 0 0.35rem;
}

.mag-ad-tnt-copy p {
    font-size: 0.95rem;
    color: var(--mag-text-muted);
}

.mag-ad-tnt-features {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0.75rem auto;
    max-width: 460px;
}

.mag-ad-tnt-feat {
    font-size: 0.82rem;
    color: var(--mag-text-muted);
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0.85rem;
    background: var(--mag-card);
    border: 1px solid var(--mag-card-border);
    border-radius: 4px;
}

.mag-ad-tnt-feat i {
    font-size: 0.9rem;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}

.mag-ad-tnt-badges {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin-bottom: 1rem;
}

.mag-ad-tnt-badge {
    width: 110px;
    height: auto;
}

.mag-ad-tnt-url {
    font-family: var(--mag-mono);
    font-size: 1.1rem;
    color: var(--mag-accent);
    font-weight: 600;
    letter-spacing: 0.05em;
    margin-top: auto;
}
