:root { --brand:#242f65; --brand-light:#3a4a8a; --ink:#1a1a2e; --muted:#5a6480; --gold:#c9a24d; --gold-bright:#f7b32b; --cream:#f7f5ef; --paper:#fbfaf6; --rule:rgba(36,47,101,0.14); --font-serif:'Cormorant Garamond',Georgia,serif; --font-sans:'Inter',system-ui,sans-serif; }
    * { margin:0; padding:0; box-sizing:border-box; }
    body { background:var(--cream); color:var(--ink); font-family:var(--font-sans); -webkit-font-smoothing:antialiased; line-height:1.6; }

    /* ---------- HERO ---------- */
    .post-hero { position:relative; min-height:78vh; overflow:hidden; display:flex; align-items:flex-end; padding:7rem 0 4.5rem; }
    .post-hero-img { position:absolute; inset:0; }
    .post-hero-img img { width:100%; height:100%; object-fit:cover; animation:hero-slow 32s ease-in-out infinite alternate; }
    @keyframes hero-slow { 0% { transform:scale(1); } 100% { transform:scale(1.08); } }
    .post-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,15,30,0.35) 0%, rgba(10,15,30,0.15) 35%, rgba(10,15,30,0.75) 85%, rgba(10,15,30,0.95) 100%); z-index:1; }
    .post-hero-inner { position:relative; z-index:2; max-width:1180px; margin:0 auto; padding:0 2rem; color:#fff; width:100%; }
    .post-hero .kicker { display:inline-flex; align-items:center; gap:0.85rem; font-size:0.72rem; letter-spacing:0.32em; text-transform:uppercase; font-weight:600; color:rgba(255,255,255,0.82); margin-bottom:1.75rem; }
    .post-hero .kicker .dot { width:6px; height:6px; background:var(--gold-bright); border-radius:50%; }
    .post-hero h1 { font-family:var(--font-serif); font-size:clamp(2.4rem, 5.6vw, 4.6rem); font-weight:600; color:#fff; line-height:1.02; letter-spacing:-0.022em; max-width:20ch; text-shadow:0 2px 20px rgba(10,15,30,0.35); }
    .post-hero .meta { margin-top:2rem; display:flex; align-items:center; gap:1rem; font-size:0.74rem; letter-spacing:0.22em; text-transform:uppercase; font-weight:500; color:rgba(255,255,255,0.72); }
    .post-hero .meta .sep { width:28px; height:1px; background:rgba(255,255,255,0.35); }
    .post-hero .back { position:absolute; top:2rem; left:2rem; z-index:3; font-size:0.72rem; letter-spacing:0.24em; text-transform:uppercase; font-weight:600; color:rgba(255,255,255,0.78); text-decoration:none; display:inline-flex; align-items:center; gap:0.5rem; padding-top:1.5rem; }
    .post-hero .back:hover { color:#fff; }

    /* ---------- ARTICLE SHELL ---------- */
    .article-wrap { background:var(--cream); padding:5.5rem 0 3rem; }
    .col { max-width:740px; margin:0 auto; padding:0 1.75rem; }

    /* Lead with drop cap */
    .lead { font-family:var(--font-serif); font-size:1.45rem; line-height:1.55; color:var(--brand); font-weight:500; letter-spacing:-0.005em; margin-bottom:1.75rem; }
    .lead::first-letter { font-family:var(--font-serif); font-weight:700; font-size:4rem; line-height:0.9; float:left; margin:0.3rem 0.5rem -0.1rem 0; color:var(--gold); }
    .intro p { font-size:1.06rem; line-height:1.8; color:#2a3556; margin-bottom:1.15rem; }

    /* No-line rule: section breaks are tonal, not drawn */
    :root { --paper-1:#f3f0e7; --paper-2:#ede9de; --paper-3:#e6e2d4; }

    /* ---------- CHAPTERS (architectural spread) ---------- */
    .chapter { position:relative; padding:5rem 0; background:var(--paper-1); }
    .chapter.flip { background:var(--paper-2); }
    .chapter-grid { max-width:1180px; margin:0 auto; padding:0 2rem; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:0; align-items:start; position:relative; }

    /* Architectural Spread: image bleeds, headline overlaps */
    .chapter .inline-fig { grid-column:2; grid-row:1 / span 3; width:100%; max-width:520px; justify-self:end; margin-right:-2rem; align-self:start; margin-top:0; }
    .chapter .inline-fig img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:0; display:block; box-shadow:0 20px 40px rgba(8,21,76,0.06); }
    .chapter .inline-fig figcaption { font-family:var(--font-serif); font-style:italic; font-size:0.85rem; color:var(--muted); margin-top:0.7rem; line-height:1.45; max-width:42ch; }
    /* AI-generated figure mark — subtle gold diamond in top right of the photo */
    .inline-fig.ai { position:relative; }
    .inline-fig.ai::after { content:''; position:absolute; top:12px; right:12px; width:9px; height:9px; transform:rotate(45deg); background:var(--gold); opacity:0.9; box-shadow:0 0 0 4px rgba(8,21,76,0.22); pointer-events:none; z-index:2; }

    .chapter .chapter-head { grid-column:1; grid-row:1; padding-right:3.5rem; z-index:2; margin-bottom:1.75rem; }
    .chapter .copy { grid-column:1; grid-row:2; padding-right:3.5rem; }
    .chapter .fix-panel { grid-column:1; grid-row:3; padding-right:3.5rem; margin-top:2rem; background:var(--paper-3); padding:1.75rem 2rem 1.85rem; box-shadow:0 20px 40px rgba(8,21,76,0.04); }

    /* Flip: image left, content right */
    .chapter.flip .inline-fig { grid-column:1; justify-self:start; margin-right:0; margin-left:-2rem; }
    .chapter.flip .chapter-head { grid-column:2; padding-right:0; padding-left:3.5rem; }
    .chapter.flip .copy { grid-column:2; padding-right:0; padding-left:3.5rem; }
    .chapter.flip .fix-panel { grid-column:2; padding:1.75rem 2rem 1.85rem; }

    .chapter-eyebrow { font-size:0.6875rem; letter-spacing:0.18em; text-transform:uppercase; font-weight:600; color:var(--gold); margin-bottom:1rem; display:flex; align-items:center; gap:0.7rem; }
    .chapter-eyebrow .num { font-family:var(--font-serif); font-weight:600; color:var(--brand); letter-spacing:0.08em; font-size:0.78rem; }
    .chapter-eyebrow .bar { width:24px; height:1px; background:var(--gold); }
    .chapter h2 { font-family:var(--font-serif); font-size:clamp(2rem, 3.2vw, 2.8rem); font-weight:600; color:var(--brand); line-height:1.05; letter-spacing:-0.022em; max-width:14ch; }

    .copy p { font-size:1.05rem; line-height:1.8; color:#2a3556; margin-bottom:1.15rem; }

    /* Fix panel — surface tonal lift, no borders */
    .fix-panel .label { font-size:0.68rem; letter-spacing:0.3em; text-transform:uppercase; font-weight:700; color:var(--gold); margin-bottom:0.6rem; }
    .fix-panel h3 { font-family:var(--font-serif); font-size:1.35rem; font-weight:600; color:var(--brand); letter-spacing:-0.012em; line-height:1.25; margin-bottom:0.6rem; }
    .fix-panel p { font-size:0.98rem; line-height:1.72; color:#2a3556; }

    @media (max-width:820px) {
      .chapter-grid, .chapter.flip .chapter-grid { grid-template-columns:1fr; column-gap:0; padding:0 1.5rem; }
      .chapter-grid > .chapter-head,
      .chapter-grid > .copy,
      .chapter-grid > .fix-panel,
      .chapter.flip .chapter-grid > .chapter-head,
      .chapter.flip .chapter-grid > .copy,
      .chapter.flip .chapter-grid > .fix-panel { grid-column:1; padding-left:0; padding-right:0; }
      .chapter-grid > .inline-fig,
      .chapter.flip .chapter-grid > .inline-fig { grid-column:1; grid-row:auto; position:static; max-width:100%; margin:1.5rem 0; justify-self:stretch; }
    }

    /* ---------- CHAPTER WITHOUT IMAGE: single editorial column ---------- */
    .chapter.solo .chapter-grid { grid-template-columns:minmax(0, 740px); justify-content:center; }
    .chapter.solo .chapter-head, .chapter.solo .copy, .chapter.solo .fix-panel { grid-column:1; padding-right:0; padding-left:0; }
    .chapter.solo .chapter-head h2 { max-width:none; }
    .chapter.solo .copy p { font-size:1.08rem; }

    /* ---------- WRAPPED FIGURE (single-image posts: prose flows around) ---------- */
    .wrap-fig { float:right; width:42%; max-width:380px; margin:0.4rem 0 1rem 2rem; shape-margin:1rem; }
    .wrap-fig.left { float:left; margin:0.4rem 2rem 1rem 0; }
    .wrap-fig img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; display:block; box-shadow:0 14px 32px rgba(8,21,76,0.06); }
    .wrap-fig figcaption { font-family:var(--font-serif); font-style:italic; font-size:0.84rem; color:var(--muted); margin-top:0.55rem; line-height:1.45; }
    @media (max-width:680px) { .wrap-fig, .wrap-fig.left { float:none; width:100%; max-width:none; margin:1.5rem 0; } }

    /* ---------- ESSAY MODE (no images, or one image with text wrap) ---------- */
    .essay { max-width:780px; margin:0 auto; padding:4rem 1.75rem 3rem; overflow:hidden; }
    .essay.has-fig { max-width:980px; }
    .essay.has-fig .wrap-fig { width:400px; max-width:400px; margin-top:0; }
    .essay h2, .essay h3 { font-family:var(--font-serif); color:var(--brand); letter-spacing:-0.018em; line-height:1.18; font-weight:600; margin:2rem 0 0.75rem; }
    .essay h2 { font-size:clamp(1.5rem, 2.2vw, 1.85rem); }
    .essay h3 { font-size:1.25rem; }
    .essay p { font-size:1.05rem; line-height:1.7; color:#2a3556; margin-bottom:0.85rem; }
    .essay ul, .essay ol { margin:0.4rem 0 1rem 1.25rem; font-size:1.02rem; line-height:1.6; color:#2a3556; }
    .essay li { margin-bottom:0.2rem; }
    .essay li p { margin:0; line-height:1.55; }
    .essay strong { color:var(--brand); font-weight:600; }
    .essay blockquote { border-left:2px solid var(--gold); padding:0.4rem 0 0.4rem 1.25rem; margin:1.5rem 0; font-family:var(--font-serif); font-style:italic; font-size:1.2rem; color:var(--brand); line-height:1.4; }
    .essay a { color:var(--brand); text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:4px; text-decoration-thickness:1px; }
    .essay a:hover { text-decoration-color:var(--brand); }

    /* ---------- PULL QUOTE ---------- */
    .pull { max-width:800px; margin:5rem auto; padding:0 2rem; text-align:center; }
    .pull blockquote { font-family:var(--font-serif); font-style:italic; font-size:clamp(1.55rem, 2.6vw, 2rem); line-height:1.35; color:var(--brand); font-weight:500; letter-spacing:-0.01em; }
    .pull blockquote::before { content:'\201C'; display:block; font-size:3.2rem; line-height:0.5; color:var(--gold); margin-bottom:1.2rem; }

    /* ---------- CLOSING ---------- */
    .closer { max-width:940px; margin:0 auto; padding:0 1.75rem 2rem; }
    .closer h3 { font-family:var(--font-serif); font-size:1.85rem; font-weight:600; color:var(--brand); letter-spacing:-0.015em; margin-bottom:1.1rem; }
    .closer p { font-size:1.08rem; line-height:1.82; color:#2a3556; margin-bottom:1.2rem; }

    /* ---------- IN-ARTICLE CTA ---------- */
    .post-cta { padding:5.5rem 2rem; background:linear-gradient(180deg, #1a2249 0%, #242f65 60%, #1a2249 100%); color:#fff; text-align:center; position:relative; }
    .post-cta::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:80px; height:2px; background:var(--gold-bright); }
    .post-cta .eyebrow { font-size:0.72rem; letter-spacing:0.3em; text-transform:uppercase; font-weight:600; color:var(--gold-bright); margin-bottom:1.2rem; }
    .post-cta h2 { font-family:var(--font-serif); font-size:clamp(1.9rem, 3.4vw, 2.7rem); font-weight:600; line-height:1.12; letter-spacing:-0.02em; margin-bottom:1.1rem; max-width:20ch; margin-left:auto; margin-right:auto; }
    .post-cta p { color:rgba(255,255,255,0.78); font-size:1.02rem; line-height:1.7; margin:0 auto 2.25rem; max-width:520px; }
    .post-cta-btn { display:inline-flex; align-items:center; gap:0.6rem; padding:1.1rem 2.6rem; border-radius:4px; font-size:0.85rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; text-decoration:none; background:var(--cream); color:var(--brand); transition:all 220ms ease; box-shadow:0 10px 28px rgba(0,0,0,0.28); }
    .post-cta-btn::after { content:'\2192'; transition:transform 220ms ease; }
    .post-cta-btn:hover { background:#fff; transform:translateY(-2px); }
    .post-cta-btn:hover::after { transform:translateX(4px); }

    /* ---------- AI DISCLAIMER (editorial colophon, navy CTA) ---------- */
    .post-cta .ai-disclaimer {
      margin:4rem auto 0;
      display:flex; align-items:center; justify-content:center; gap:1rem;
      font-family:var(--font-serif);
      font-style:italic; font-weight:300;
      font-size:0.78rem; letter-spacing:0.04em; line-height:1.4;
      color:rgba(255,255,255,0.6);
      text-align:center; max-width:760px;
    }
    .post-cta .ai-disclaimer::before,
    .post-cta .ai-disclaimer::after {
      content:''; flex-shrink:0;
      width:5px; height:5px; transform:rotate(45deg);
      background:var(--gold);
      opacity:0.8;
    }
    @media (max-width:600px) {
      .post-cta .ai-disclaimer { font-size:0.72rem; gap:0.7rem; padding:0 1rem; }
    }

    /* ---------- FOOT ---------- */
    .post-foot { background:var(--cream); padding:2.5rem 0 4rem; border-top:1px solid var(--rule); }
    .post-foot-inner { max-width:1100px; margin:0 auto; padding:0 1.75rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
    .post-foot .byline { font-family:var(--font-serif); font-style:italic; font-size:1rem; color:var(--muted); }
    .post-foot .byline strong { color:var(--brand); font-weight:600; font-style:normal; font-family:var(--font-sans); }
    .post-foot .share-back { display:inline-flex; align-items:center; gap:0.5rem; padding:0.85rem 1.4rem; border:1px solid var(--rule); border-radius:4px; font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:600; color:var(--brand); text-decoration:none; transition:all 200ms ease; }
    .post-foot .share-back:hover { background:var(--brand); color:#fff; border-color:var(--brand); }

    /* ---------- READING PROGRESS BAR ---------- */
    .read-progress { position:fixed; top:0; left:0; height:3px; width:0%; background:var(--gold); z-index:100; transition:width 80ms linear; box-shadow:0 0 8px rgba(247,179,43,0.5); }

    /* ---------- TABLE OF CONTENTS ---------- */
    .toc { max-width:740px; margin:3rem auto 4.5rem; padding:0 1.75rem; }
    .toc-inner { background:var(--paper); border:1px solid var(--rule); border-left:3px solid var(--gold); padding:1.5rem 1.75rem; }
    .toc-label { font-size:0.66rem; letter-spacing:0.3em; text-transform:uppercase; font-weight:700; color:var(--gold); margin-bottom:0.9rem; }
    .toc-list { list-style:none; counter-reset:toc; display:grid; gap:0.55rem; }
    .toc-list a { display:flex; align-items:baseline; gap:0.85rem; font-family:var(--font-serif); font-size:1.12rem; color:var(--brand); text-decoration:none; transition:color 180ms ease; padding:0.25rem 0; }
    .toc-list a::before { counter-increment:toc; content:counter(toc, decimal-leading-zero); font-family:var(--font-sans); font-size:0.7rem; font-weight:600; letter-spacing:0.18em; color:var(--gold); min-width:2ch; }
    .toc-list a:hover { color:var(--gold-bright); }
    .toc-list a:hover::after { transform:translateX(4px); }
    .toc-list a::after { content:'\2192'; margin-left:auto; opacity:0.4; transition:transform 180ms ease, opacity 180ms ease; }
    .toc-list a:hover::after { opacity:1; }

    /* ---------- CHAPTER TARGETS (offset for sticky nav) ---------- */
    .chapter { scroll-margin-top:5rem; }

    /* ---------- "Next" jump link at the end of fix-panel ---------- */
    .next-jump { display:inline-flex; align-items:center; gap:0.5rem; margin-top:1.4rem; font-size:0.7rem; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--brand); text-decoration:none; padding-bottom:0.25rem; border-bottom:1px solid var(--gold); transition:color 180ms ease; }
    .next-jump:hover { color:var(--gold-bright); }
    .next-jump::after { content:'\2193'; transition:transform 180ms ease; }
    .next-jump:hover::after { transform:translateY(2px); }

    @media (max-width:720px) {
      .lead { font-size:1.35rem; }
      .lead::first-letter { font-size:4rem; }
      .chapter { margin:3.5rem auto; }
    }

    @media (max-width:640px) {
      /* HERO */
      .post-hero { padding:6rem 0 3rem; min-height:0; }
      .post-hero h1 { font-size:2.2rem; line-height:1.05; margin-bottom:1rem; }
      .post-hero .meta, .post-hero .kicker { font-size:0.66rem; letter-spacing:0.22em; }
      .post-hero p, .post-hero .deck { font-size:1rem; line-height:1.55; }
      /* INTRO / LEAD */
      .lead { font-size:1.15rem !important; line-height:1.55; }
      .lead::first-letter { font-size:3.4rem !important; }
      /* TOC */
      .toc { margin:2rem auto 3rem; padding:0 1.25rem; }
      .toc-inner { padding:1.1rem 1.25rem; }
      .toc-list a { font-size:0.98rem; gap:0.6rem; }
      /* CHAPTERS / COPY */
      .chapter { padding:2.5rem 0 !important; }
      .chapter-grid { padding:0 1.25rem !important; }
      .chapter-head h2 { font-size:1.6rem !important; line-height:1.15; margin-bottom:0.85rem; max-width:none; }
      .copy p { font-size:1rem; line-height:1.65; margin-bottom:0.95rem; }
      .fix-panel { padding:1.25rem 1.25rem !important; }
      .fix-panel h3 { font-size:1.15rem; }
      .fix-panel p { font-size:0.95rem; line-height:1.6; }
      /* ESSAY MODE */
      .essay { padding:2.5rem 1.25rem 2rem; }
      /* CTA */
      .post-cta { padding:3rem 1.25rem 4rem; }
      .post-cta h2 { font-size:1.6rem !important; line-height:1.15; }
      .post-cta p { font-size:0.98rem; line-height:1.6; }
      .post-cta-btn, .cta-btn { width:100%; max-width:320px; justify-content:center; padding:0.95rem 1.5rem; font-size:0.85rem; }
      /* FOOT */
      .post-foot { padding:2rem 0 3rem; }
      .post-foot-inner { padding:0 1.25rem; gap:0.75rem; }
      .post-foot .byline { font-size:0.92rem; }
    }
    html { scroll-behavior:smooth; }
/* No-widow defaults — applied site-wide */
h1, h2, h3, h4, h5, h6 { text-wrap: balance; }
p, li, blockquote, dd { text-wrap: pretty; }
