/* lora-cyrillic-ext-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-cyrillic-ext-wght-normal.YcVxMP-u.woff2) format('woff2-variations');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* lora-cyrillic-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-cyrillic-wght-normal.UWPuZLjM.woff2) format('woff2-variations');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* lora-math-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-math-wght-normal.sOy7rEfW.woff2) format('woff2-variations');
  unicode-range: U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;
}

/* lora-symbols-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-symbols-wght-normal.DQ5VrUkH.woff2) format('woff2-variations');
  unicode-range: U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;
}

/* lora-vietnamese-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-vietnamese-wght-normal.CfJ7gtf3.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* lora-latin-ext-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-latin-ext-wght-normal.C2Wlntb9.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* lora-latin-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-latin-wght-normal.BiLcIKcI.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* Route announcer */
	.astro-route-announcer {
		position: absolute;
		left: 0;
		top: 0;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		overflow: hidden;
		white-space: nowrap;
		width: 1px;
		height: 1px;
	}.consent-banner[data-astro-cid-u6s5b3h2] {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  width: min(90vw, 500px);
  background: var(--bg);
  border: .5px solid var(--border);
  border-radius: 2px;
  padding: 1rem 1.25rem;
  z-index: 8000;
  font-size: .8rem;
  box-shadow: 0 4px 24px #00000026;
}

.consent-banner[data-astro-cid-u6s5b3h2][hidden] {
  display: none;
}

.consent-msg[data-astro-cid-u6s5b3h2] {
  margin-bottom: .75rem;
  line-height: 1.5;
  opacity: .9;
}

.consent-actions[data-astro-cid-u6s5b3h2] {
  display: flex;
  gap: .75rem;
  align-items: center;
  flex-wrap: wrap;
}

.consent-btn[data-astro-cid-u6s5b3h2] {
  font-family: var(--font-sans);
  font-size: .65rem;
  font-weight: 300;
  letter-spacing: .08em;
  padding: .3rem .75rem;
  border: .5px solid;
  border-radius: 1px;
  cursor: pointer;
  transition: opacity .15s;
  color: inherit;
  background: none;
}

.consent-btn[data-astro-cid-u6s5b3h2]:hover {
  opacity: .7;
}

.consent-accept[data-astro-cid-u6s5b3h2] {
  color: var(--carmesi);
  border-color: var(--carmesi);
}

.consent-privacy[data-astro-cid-u6s5b3h2] {
  font-size: .7rem;
  opacity: .5;
  margin-left: auto;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.theme-toggle[data-astro-cid-l6lhmie6] {
  font-size: .85rem;
  color: var(--text-3);
  padding: .2rem .4rem;
  border-radius: 2px;
  transition: color .15s;
  font-family: var(--font-sans);
}

.theme-toggle[data-astro-cid-l6lhmie6]:hover {
  color: var(--accent-mid);
}
.lang-switcher[data-astro-cid-3s4v7zxg] {
  display: flex;
  gap: .2rem;
  flex-wrap: wrap;
}

.lang-opt[data-astro-cid-3s4v7zxg] {
  font-family: var(--font-sans);
  font-size: .6rem;
  font-weight: 300;
  letter-spacing: .08em;
  padding: .15rem .35rem;
  text-decoration: none;
  color: var(--text-3);
  border: .5px solid #0000;
  border-radius: 1px;
  transition: color .15s, border-color .15s;
}

.lang-opt[data-astro-cid-3s4v7zxg]:hover {
  color: var(--accent-mid);
}

.lang-opt[data-astro-cid-3s4v7zxg].active {
  color: var(--accent);
  border-color: var(--border);
}
/* ── Fuentes ── */
  :root {
    --font-serif: 'Lora Variable', Georgia, 'Times New Roman', serif;
    --font-sans: 'Helvetica Neue', Helvetica, Arial, sans-serif;

    /* Paleta editorial */
    --burdeos: #5c1f30;
    --carmesi: #8b3a52;
    --rosa-empolvado: #c29aaa;
    --rosa-antiguo: #a87880;
    --crema: #f0e8d6;
    --pergamino: #d4c0a8;
    --rubi: #9e4d5f;
    --vino: #7a3040;
    --cuerpo: #4a2030;

    /* Aliases semánticos */
    --bg: var(--crema);
    --text: var(--cuerpo);
    --text-2: var(--vino);
    --text-3: var(--rosa-antiguo);
    --accent: var(--burdeos);
    --accent-mid: var(--carmesi);
    --accent-soft: var(--rosa-empolvado);
    --border: var(--pergamino);

    /* Espaciado */
    --sp-1: 8px;
    --sp-2: 16px;
    --sp-3: 24px;
    --sp-5: 40px;
    --sp-8: 64px;
    --sp-12: 96px;
  }

  /* ── Tema claro (default) ── */
  [data-theme='light'],
  :root {
    color-scheme: light;
    background-color: var(--bg);
    color: var(--text);
  }

  /* ── Tema oscuro ── */
  [data-theme='dark'] {
    --bg: #1c0a12;
    --text: #e8d6c0;
    --text-2: #c29aaa;
    --text-3: #8b5a6a;
    --accent: #c29aaa;
    --accent-mid: #8b3a52;
    --accent-soft: #5c1f30;
    --border: #3a1828;
    color-scheme: dark;
    background-color: var(--bg);
    color: var(--text);
  }

  /* ── Reset ── */
  *,
  *::before,
  *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  html {
    scroll-behavior: smooth;
  }
  body {
    font-family: var(--font-serif);
    font-size: 24px;
    line-height: 1.85;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
  }
  img,
  svg {
    display: block;
    max-width: 100%;
  }
  a {
    color: inherit;
  }
  button {
    cursor: pointer;
    font: inherit;
    background: none;
    border: none;
  }

  /* ── Layout ── */
  .site-header,
  main,
  .site-footer {
    width: 100%;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--sp-3);
    padding-right: var(--sp-3);
  }

  main {
    flex: 1;
    padding-top: var(--sp-8);
    padding-bottom: var(--sp-12);
  }

  /* ── Header ── */
  .site-header {
    padding-top: var(--sp-5);
  }

  .header-inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--sp-2);
    margin-bottom: var(--sp-2);
  }

  .site-logo {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 1px;
  }

  .logo-title {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent);
  }

  .logo-subtitle {
    font-family: var(--font-sans);
    font-size: 0.6rem;
    font-weight: 300;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--accent-soft);
  }

  .header-nav {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
  }

  .header-rule {
    height: 0.5px;
    background: var(--accent-mid);
    opacity: 0.35;
    margin-top: var(--sp-2);
  }

  /* ── Footer ── */
  .site-footer {
    padding-top: var(--sp-5);
    padding-bottom: var(--sp-5);
    border-top: 0.5px solid var(--border);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sp-1);
  }

  .footer-ornament {
    font-family: var(--font-serif);
    font-size: 11px;
    color: var(--accent-mid);
    opacity: 0.35;
    margin-bottom: var(--sp-1);
  }

  .footer-nav {
    display: flex;
    gap: var(--sp-1);
    align-items: center;
    font-family: var(--font-sans);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-3);
  }

  .footer-nav a {
    text-decoration: none;
    opacity: 0.7;
    transition: opacity 0.15s;
  }
  .footer-nav a:hover {
    opacity: 1;
  }

  .footer-credit {
    font-family: var(--font-sans);
    font-size: 0.6rem;
    color: var(--text-3);
    opacity: 0.55;
  }

  .footer-credit a {
    opacity: 0.8;
  }

  /* ── Accesibilidad ── */
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .skip-link:focus {
    position: fixed;
    top: var(--sp-2);
    left: var(--sp-2);
    padding: 0.4rem 1rem;
    background: var(--accent);
    color: var(--crema);
    z-index: 9999;
    clip: auto;
    width: auto;
    height: auto;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    border-radius: 2px;
  }

  :focus-visible {
    outline: 1.5px solid var(--accent-mid);
    outline-offset: 3px;
    border-radius: 1px;
  }

  /* ── Scrollbar ── */
  ::-webkit-scrollbar {
    width: 5px;
  }
  ::-webkit-scrollbar-track {
    background: var(--bg);
  }
  ::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 3px;
  }

  /* ── Selection ── */
  ::selection {
    background: var(--rosa-empolvado);
    color: var(--burdeos);
  }

  /* ── Filetes ornamentales ── */
  .filete {
    height: 0.5px;
    background: var(--carmesi);
    opacity: 0.3;
    margin: var(--sp-5) 0;
  }

  .filete--short {
    width: 64px;
    margin-left: auto;
    margin-right: auto;
  }

  /* ── Ornamento ── */
  .ornamento {
    font-family: var(--font-serif);
    font-size: 12px;
    color: var(--carmesi);
    opacity: 0.32;
    text-align: center;
    display: block;
    margin: var(--sp-3) 0;
  }

  /* ── Tipografía editorial ── */
  .display-title {
    font-family: var(--font-serif);
    font-weight: 400;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent);
    line-height: 1.1;
  }

  .display-subtitle {
    font-family: var(--font-sans);
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--accent-soft);
    font-size: 0.7rem;
  }

  /* ── Prosa ── */
  .prose {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 24px;
    line-height: 1.85;
    color: var(--text);
    max-width: 66ch;
  }

  .prose p {
    margin-bottom: 1.4em;
  }
  .prose p + p {
    text-indent: 1.5em;
    margin-top: -1.4em;
  }
  .prose p:first-of-type {
    text-indent: 0;
  }

  .prose h2 {
    font-family: var(--font-serif);
    font-weight: 400;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--accent);
    font-size: 0.85rem;
    margin: 2.5em 0 1em;
  }

  .prose blockquote {
    border-left: 1px solid var(--carmesi);
    padding-left: 1.5em;
    margin: 1.5em 0;
    color: var(--text-2);
    opacity: 0.85;
  }

  .prose hr {
    display: none;
  }

  .prose strong {
    font-weight: 700;
    font-style: normal;
    color: var(--vino);
  }

  .prose em {
    font-style: normal;
  } /* ya todo es italic */

  /* ── Responsive móvil ── */
  @media (max-width: 600px) {
    body {
      font-size: 20px;
    }

    .site-header,
    main,
    .site-footer {
      padding-left: var(--sp-2);
      padding-right: var(--sp-2);
    }

    .site-header {
      padding-top: var(--sp-3);
    }

    main {
      padding-top: var(--sp-5);
      padding-bottom: var(--sp-8);
    }

    .header-inner {
      flex-wrap: wrap;
      align-items: flex-start;
      gap: var(--sp-1);
    }

    .header-nav {
      gap: var(--sp-1);
    }

    /* Espaciados más compactos en móvil */
    --sp-8: 48px;
    --sp-5: 32px;
  }

  /* ── Print ── */
  @media print {
    .site-header,
    .site-footer,
    .header-rule {
      display: none;
    }
    main {
      padding: 0;
    }
    body {
      font-size: 12pt;
    }
  }