/* ─────────────────────────────────────────────────────────────
   ylenialucisano.it — foglio di stile condiviso
   Le pagine dei singoli ridefiniscono le variabili accento su <html>.
   Palette di default: Terra Rossa (terracotta).
   ───────────────────────────────────────────────────────────── */
:root {
  --bg: #0a0301;            --bg-rgb: 10,3,1;
  --ink: #f4e8d8;           --ink-rgb: 244,232,216;
  --accent: #d94a1a;        --accent-rgb: 217,74,26;
  --accent-lt: #ffb88c;     --accent-lt-rgb: 255,184,140;
  --accent-glow-rgb: 255,90,30;
  --surf-rgb: 20,8,4;  --surf2-rgb: 30,12,6;  --surf3-rgb: 40,12,4;
  --accent-dk: #9a2410;  --accent-mid: #c42e10; --accent-br: #e85520;
  --accent-hot: #ff5a1f; --accent-hot2: #ff7a3a;
  --tint1: #ffcfaa; --tint2: #ffe8d6; --tint3: #fff8f3;
  --shade: #2a0a04;
  --cover: url('/assets/cover.jpg');
}

*, *::before, *::after { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }
    html { background: var(--bg); }
    body {
      font-family: 'Inter', system-ui, sans-serif;
      color: var(--ink);
      min-height: 100vh; min-height: 100dvh;
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
      background: var(--bg);
    }
    .page {
      position: relative;
      min-height: 100vh; min-height: 100dvh;
      max-width: 520px;
      margin: 0 auto;
      padding: 0 18px 60px;
      display: flex; flex-direction: column;
    }

    /* ── HERO ─────────────────────────────────────── */
    .hero {
      position: relative;
      margin: 0 -18px 8px;
      aspect-ratio: 1 / 1.05;
      overflow: hidden;
      background: radial-gradient(ellipse 70% 55% at 50% 55%, var(--shade) 0%, var(--bg) 70%);
      isolation: isolate;
      display: flex; align-items: center; justify-content: center;
    }
    .hero::before {
      content: ''; position: absolute; inset: 0; z-index: 1;
      background:
        radial-gradient(circle at 50% 52%, rgba(var(--accent-glow-rgb),0.55) 0%, rgba(var(--accent-rgb),0.25) 22%, transparent 55%),
        radial-gradient(ellipse 80% 50% at 50% 100%, rgba(var(--accent-rgb),0.18), transparent 70%);
      animation: glowPulse 6s ease-in-out infinite alternate;
      pointer-events: none;
    }
    @keyframes glowPulse {
      from { opacity: 0.85; transform: scale(0.96); }
      to   { opacity: 1;    transform: scale(1.06); }
    }
    .hero::after {
      content: ''; position: absolute; inset: 0; z-index: 4;
      background:
        repeating-linear-gradient(115deg, transparent 0 80px, rgba(var(--accent-lt-rgb),0.04) 80px 82px, transparent 82px 200px),
        radial-gradient(circle at 23% 17%, rgba(var(--accent-lt-rgb),0.07) 0.8px, transparent 1.2px),
        radial-gradient(circle at 67% 73%, rgba(var(--accent-lt-rgb),0.05) 0.6px, transparent 1px);
      background-size: auto, 5px 5px, 9px 9px;
      mix-blend-mode: screen;
      pointer-events: none;
    }
    .hero-cover {
      position: relative; z-index: 2;
      width: 78%; aspect-ratio: 1 / 1;
      border-radius: 6px;
      background-image: var(--cover);
      background-size: cover; background-position: center;
      box-shadow:
        0 30px 80px rgba(0,0,0,0.6),
        0 10px 30px rgba(var(--accent-rgb),0.35),
        0 0 0 1px rgba(var(--accent-lt-rgb),0.1) inset,
        0 0 80px rgba(var(--accent-glow-rgb),0.25);
      transform-origin: 50% 60%;
      animation: coverFloat 8s ease-in-out infinite alternate, fadeUp 1.2s .15s both cubic-bezier(.2,.7,.2,1);
    }
    @keyframes coverFloat {
      from { transform: translateY(0)    rotate(-1.2deg) scale(1); }
      to   { transform: translateY(-10px) rotate(1.2deg) scale(1.015); }
    }
    .hero-cover::before {
      content: ''; position: absolute; inset: 0; border-radius: 6px;
      background: linear-gradient(135deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0) 35%, rgba(255,255,255,0) 65%, rgba(var(--accent-lt-rgb),0.12) 100%);
      mix-blend-mode: overlay; pointer-events: none;
    }
    .hero-cover::after {
      content: ''; position: absolute; left: 0; right: 0; top: 100%;
      height: 38%;
      background-image: var(--cover);
      background-size: 100% 100%;
      transform: scaleY(-1);
      opacity: 0.35;
      filter: blur(2px);
      mask-image: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 90%);
      -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 90%);
      pointer-events: none;
    }
    .hero-fade {
      position: absolute; left: 0; right: 0; bottom: 0; height: 30%; z-index: 5;
      background: linear-gradient(180deg, transparent 0%, rgba(var(--bg-rgb),0.7) 60%, var(--bg) 100%);
      pointer-events: none;
    }
    .hero-mark {
      position: absolute; top: 22px; left: 50%; transform: translateX(-50%); z-index: 6;
      display: inline-flex; align-items: center; gap: 10px;
      padding: 8px 16px;
      border: 1px solid rgba(var(--accent-lt-rgb),0.35);
      border-radius: 999px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
      color: rgba(var(--accent-lt-rgb),0.95);
      backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
      background: rgba(var(--surf3-rgb),0.5);
      animation: fadeUp .9s .1s both cubic-bezier(.2,.7,.2,1);
      white-space: nowrap;
    }
    .hero-mark .dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--accent-hot); box-shadow: 0 0 14px var(--accent-hot), 0 0 4px var(--accent-lt);
      animation: pulse 2s ease-in-out infinite;
    }
    @keyframes pulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50%       { opacity: 0.55; transform: scale(0.8); }
    }
    .hero-caption {
      position: absolute; left: 0; right: 0; bottom: 22px; z-index: 6;
      text-align: center;
      animation: fadeUp 1s .5s both cubic-bezier(.2,.7,.2,1);
    }
    .hero-caption .out {
      display: inline-block;
      font-family: 'Fraunces', serif; font-style: italic; font-weight: 300;
      font-size: clamp(20px, 4.5vw, 26px); line-height: 1;
      color: var(--tint2);
      text-shadow: 0 2px 16px rgba(0,0,0,0.7), 0 0 30px rgba(var(--accent-glow-rgb),0.4);
    }
    .hero-caption .out .accent { color: var(--accent-hot2); }
    .hero-caption .date {
      margin-top: 8px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.6);
      text-shadow: 0 1px 4px rgba(0,0,0,0.7);
    }
    .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

    /* ── CTA PRINCIPALE ───────────────────────────── */
    .cta-wrap {
      width: 100%;
      margin-top: 24px;
      animation: fadeUp 1s .35s both cubic-bezier(.2,.7,.2,1);
    }
    .cta-main {
      width: 100%;
      padding: 22px 26px;
      background: linear-gradient(160deg, var(--accent-br) 0%, var(--accent-mid) 55%, var(--accent-dk) 100%);
      border: 1px solid rgba(var(--accent-lt-rgb),0.35);
      border-radius: 18px;
      color: var(--tint3);
      text-decoration: none;
      display: flex; align-items: center; justify-content: space-between; gap: 18px;
      box-shadow:
        0 16px 48px rgba(var(--accent-rgb),0.45),
        0 4px 16px rgba(0,0,0,0.3),
        inset 0 1px 0 rgba(var(--accent-lt-rgb),0.45),
        inset 0 -1px 0 rgba(0,0,0,0.25);
      transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s;
      cursor: pointer;
    }
    .cta-main:hover, .cta-main:focus-visible {
      transform: translateY(-3px) scale(1.01);
      box-shadow:
        0 22px 60px rgba(var(--accent-rgb),0.55),
        0 6px 20px rgba(0,0,0,0.35),
        inset 0 1px 0 rgba(var(--accent-lt-rgb),0.5),
        inset 0 -1px 0 rgba(0,0,0,0.25);
      outline: none;
    }
    .cta-main:active { transform: translateY(-1px) scale(1.005); }
    .cta-left { display: flex; align-items: center; gap: 16px; min-width: 0; }
    .cta-icon {
      width: 48px; height: 48px; border-radius: 50%;
      background: rgba(0,0,0,0.2);
      border: 1px solid rgba(255,255,255,0.15);
      display: grid; place-items: center; flex-shrink: 0;
      color: var(--tint2);
    }
    .cta-text { min-width: 0; }
    .cta-tag {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.24em; text-transform: uppercase;
      color: rgba(var(--accent-lt-rgb),0.75); margin-bottom: 4px;
    }
    .cta-label {
      font-family: 'Fraunces', serif; font-weight: 600;
      font-size: clamp(19px, 4vw, 22px); line-height: 1.1;
      color: var(--tint3);
      letter-spacing: -0.01em;
    }
    .cta-arrow {
      flex-shrink: 0; color: rgba(var(--accent-lt-rgb),0.8);
      transition: transform .25s;
    }
    .cta-main:hover .cta-arrow { transform: translateX(5px); }

    /* stato post-release */

    /* ── DIVIDER ──────────────────────────────────── */
    .divider {
      width: 100%; margin: 26px 0 14px;
      display: flex; align-items: center; gap: 14px;
    }
    .divider::before, .divider::after {
      content: ''; flex: 1; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(var(--ink-rgb),0.18), transparent);
    }
    .divider span {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.45);
    }

    /* ── SOCIAL LINKS ─────────────────────────────── */
    .links { width: 100%; display: flex; flex-direction: column; gap: 10px; }
    .link {
      position: relative;
      display: flex; align-items: center; gap: 16px;
      padding: 14px 18px;
      background: rgba(var(--surf-rgb),0.6);
      border: 1px solid rgba(var(--ink-rgb),0.12);
      border-radius: 14px; color: var(--ink); text-decoration: none;
      backdrop-filter: blur(10px) saturate(140%);
      -webkit-backdrop-filter: blur(10px) saturate(140%);
      transition: transform .25s cubic-bezier(.2,.7,.2,1), border-color .25s, background .25s;
      overflow: hidden;
      animation: fadeUp .8s both cubic-bezier(.2,.7,.2,1);
    }
    .link:nth-child(1) { animation-delay: .65s; }
    .link:nth-child(2) { animation-delay: .75s; }
    .link:nth-child(3) { animation-delay: .85s; }
    .link:nth-child(4) { animation-delay: .95s; }
    .link::before {
      content: ''; position: absolute; inset: 0;
      background: radial-gradient(ellipse 60% 100% at 0% 50%, rgba(var(--accent-rgb),0.2), transparent 70%);
      opacity: 0; transition: opacity .3s; pointer-events: none;
    }
    .link:hover, .link:focus-visible {
      transform: translateY(-2px);
      border-color: rgba(var(--accent-rgb),0.5);
      background: rgba(var(--surf2-rgb),0.75); outline: none;
    }
    .link:hover::before { opacity: 1; }
    .link-icon {
      width: 42px; height: 42px; border-radius: 10px;
      display: grid; place-items: center; flex-shrink: 0;
      background: rgba(var(--ink-rgb),0.06); border: 1px solid rgba(var(--ink-rgb),0.1);
      color: var(--ink); transition: background .25s, color .25s;
    }
    .link:hover .link-icon { background: rgba(var(--accent-rgb),0.18); color: var(--accent-lt); }
    .link-body { flex: 1; min-width: 0; }
    .link-platform {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.55); margin-bottom: 3px;
    }
    .link-handle { font-family: 'Fraunces', serif; font-weight: 400; font-size: 17px; line-height: 1.1; }
    .link-arrow { flex-shrink: 0; color: rgba(var(--ink-rgb),0.4); transition: color .25s, transform .25s; }
    .link:hover .link-arrow { color: var(--accent); transform: translate(2px, -2px); }

    /* ── PRESS KIT ────────────────────────────────── */
    .press-section { width: 100%; margin-top: 4px; }

    /* Bio */
    .press-bio {
      position: relative;
      padding: 20px 20px 18px;
      background: rgba(var(--surf-rgb),0.55);
      border: 1px solid rgba(var(--ink-rgb),0.1);
      border-radius: 16px; overflow: hidden;
      backdrop-filter: blur(10px) saturate(140%);
      -webkit-backdrop-filter: blur(10px) saturate(140%);
    }
    .press-bio::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
      background: linear-gradient(90deg, transparent, rgba(var(--accent-rgb),0.55), transparent);
    }
    .press-bio-header {
      display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px;
    }
    .press-bio-label {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.5);
    }
    .copy-btn {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 5px 11px;
      background: rgba(var(--accent-rgb),0.13); border: 1px solid rgba(var(--accent-rgb),0.3);
      border-radius: 6px; color: var(--accent-lt);
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase;
      cursor: pointer; transition: background .2s, border-color .2s, color .2s;
      flex-shrink: 0;
    }
    .copy-btn:hover { background: rgba(var(--accent-rgb),0.25); border-color: rgba(var(--accent-rgb),0.55); }
    .copy-btn.copied { background: rgba(30,140,60,0.18); border-color: rgba(60,200,100,0.35); color: #7fe8a0; }
    .press-bio-text {
      font-family: 'Fraunces', serif; font-style: italic; font-weight: 300;
      font-size: 15px; line-height: 1.7; color: rgba(var(--ink-rgb),0.82); margin: 0;
    }

    /* Comunicato stampa — accordion */
    .press-cs {
      margin-top: 10px;
      background: rgba(var(--surf-rgb),0.55);
      border: 1px solid rgba(var(--ink-rgb),0.1);
      border-radius: 16px; overflow: hidden;
      backdrop-filter: blur(10px) saturate(140%);
      -webkit-backdrop-filter: blur(10px) saturate(140%);
    }
    .press-cs-toggle {
      width: 100%; display: flex; align-items: center; justify-content: space-between;
      padding: 16px 20px; gap: 14px;
      background: none; border: none; cursor: pointer; color: inherit;
      text-align: left;
    }
    .press-cs-toggle:focus-visible { outline: 2px solid rgba(var(--accent-rgb),0.6); outline-offset: -2px; }
    .press-cs-toggle-left { display: flex; align-items: center; gap: 14px; min-width: 0; }
    .press-cs-icon-wrap {
      width: 38px; height: 38px; border-radius: 9px; flex-shrink: 0;
      display: grid; place-items: center;
      background: rgba(var(--ink-rgb),0.05); border: 1px solid rgba(var(--ink-rgb),0.09);
      color: rgba(var(--ink-rgb),0.65);
    }
    .press-cs-meta { min-width: 0; }
    .press-cs-type {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.45); margin-bottom: 3px;
    }
    .press-cs-title {
      font-family: 'Fraunces', serif; font-weight: 400;
      font-size: 16px; line-height: 1.15; color: var(--ink);
    }
    .press-cs-chevron {
      flex-shrink: 0; color: rgba(var(--ink-rgb),0.4);
      transition: transform .3s cubic-bezier(.2,.7,.2,1), color .2s;
    }
    .press-cs[open] .press-cs-chevron { transform: rotate(180deg); color: var(--accent); }
    .press-cs-body {
      padding: 0 20px 20px;
      border-top: 1px solid rgba(var(--ink-rgb),0.07);
    }
    .press-cs-body-inner {
      padding-top: 18px;
    }
    /* animazione apertura */
    details.press-cs summary { list-style: none; }
    details.press-cs summary::-webkit-details-marker { display: none; }

    .cs-headline {
      font-family: 'Fraunces', serif; font-style: italic; font-weight: 300;
      font-size: clamp(15px, 3.5vw, 17px); line-height: 1.45;
      color: rgba(var(--ink-rgb),0.95); margin: 0 0 16px;
    }
    .cs-date-place {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.4); margin-bottom: 16px;
    }
    .cs-body {
      font-family: 'Inter', sans-serif; font-size: 13.5px; line-height: 1.72;
      color: rgba(var(--ink-rgb),0.72);
    }
    .cs-body p { margin: 0 0 12px; }
    .cs-body p:last-child { margin-bottom: 0; }
    .cs-body strong { color: rgba(var(--ink-rgb),0.9); font-weight: 600; }
    .cs-body em { font-style: italic; color: rgba(var(--ink-rgb),0.85); }
    .cs-quote {
      margin: 18px 0;
      padding: 14px 16px;
      background: rgba(var(--accent-rgb),0.08);
      border-left: 2px solid var(--accent);
      border-radius: 0 8px 8px 0;
    }
    .cs-quote p {
      font-family: 'Fraunces', serif; font-style: italic; font-weight: 300;
      font-size: 14px; line-height: 1.6;
      color: rgba(var(--ink-rgb),0.88); margin: 0;
    }
    .cs-pdf-link {
      display: inline-flex; align-items: center; gap: 7px;
      margin-top: 18px;
      padding: 8px 14px;
      background: rgba(var(--accent-rgb),0.12); border: 1px solid rgba(var(--accent-rgb),0.3);
      border-radius: 8px; color: var(--accent-lt); text-decoration: none;
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase;
      transition: background .2s, border-color .2s;
    }
    .cs-pdf-link:hover { background: rgba(var(--accent-rgb),0.22); border-color: rgba(var(--accent-rgb),0.5); }

    /* Asset download */
    .press-assets { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
    .press-asset {
      position: relative;
      display: flex; align-items: center; gap: 16px;
      padding: 14px 18px;
      background: rgba(var(--surf-rgb),0.5); border: 1px solid rgba(var(--ink-rgb),0.1);
      border-radius: 14px; color: var(--ink); text-decoration: none;
      backdrop-filter: blur(10px) saturate(140%);
      -webkit-backdrop-filter: blur(10px) saturate(140%);
      transition: transform .25s cubic-bezier(.2,.7,.2,1), border-color .25s, background .25s;
      overflow: hidden;
    }
    .press-asset::before {
      content: ''; position: absolute; inset: 0;
      background: radial-gradient(ellipse 60% 100% at 0% 50%, rgba(var(--accent-rgb),0.14), transparent 70%);
      opacity: 0; transition: opacity .3s; pointer-events: none;
    }
    .press-asset:hover, .press-asset:focus-visible {
      transform: translateY(-2px);
      border-color: rgba(var(--accent-rgb),0.38);
      background: rgba(var(--surf2-rgb),0.7); outline: none;
    }
    .press-asset:hover::before { opacity: 1; }
    .press-asset-icon {
      width: 42px; height: 42px; border-radius: 10px;
      display: grid; place-items: center; flex-shrink: 0;
      background: rgba(var(--ink-rgb),0.05); border: 1px solid rgba(var(--ink-rgb),0.09);
      color: rgba(var(--ink-rgb),0.65); transition: background .25s, color .25s;
    }
    .press-asset:hover .press-asset-icon { background: rgba(var(--accent-rgb),0.16); color: var(--accent-lt); }
    .press-asset-body { flex: 1; min-width: 0; }
    .press-asset-type {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.45); margin-bottom: 3px;
    }
    .press-asset-name { font-family: 'Fraunces', serif; font-weight: 400; font-size: 16px; line-height: 1.15; }
    .press-asset-meta {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.1em;
      color: rgba(var(--ink-rgb),0.32); margin-top: 3px;
    }
    .press-asset-dl {
      flex-shrink: 0; color: rgba(var(--ink-rgb),0.3);
      transition: color .25s, transform .25s;
    }
    .press-asset:hover .press-asset-dl { color: var(--accent); transform: translateY(2px); }

    /* Contatto */
    .press-contact {
      display: flex; align-items: center; gap: 16px;
      padding: 16px 18px;
      background: rgba(var(--accent-rgb),0.07); border: 1px solid rgba(var(--accent-rgb),0.22);
      border-radius: 14px; margin-top: 10px;
      backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    }
    .press-contact-icon {
      width: 42px; height: 42px; border-radius: 10px;
      display: grid; place-items: center; flex-shrink: 0;
      background: rgba(var(--accent-rgb),0.14); border: 1px solid rgba(var(--accent-rgb),0.28);
      color: var(--accent-lt);
    }
    .press-contact-body { flex: 1; min-width: 0; }
    .press-contact-label {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.45); margin-bottom: 3px;
    }
    .press-contact-name {
      font-family: 'Fraunces', serif; font-weight: 400;
      font-size: 16px; line-height: 1.15; color: var(--ink);
    }
    .press-contact-email {
      display: block;
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px; letter-spacing: 0.05em;
      color: rgba(var(--accent-lt-rgb),0.75); text-decoration: none; margin-top: 3px;
      transition: color .2s;
    }
    .press-contact-email:hover { color: var(--accent-lt); }

    /* ── BOTTONE ZIP ──────────────────────────────── */
    .press-zip-btn {
      width: 100%;
      display: flex; align-items: center; justify-content: space-between; gap: 16px;
      padding: 16px 18px;
      background: linear-gradient(160deg, rgba(var(--accent-rgb),0.18) 0%, rgba(var(--accent-rgb),0.08) 100%);
      border: 1px solid rgba(var(--accent-rgb),0.4);
      border-radius: 14px; color: var(--ink);
      cursor: pointer; text-align: left;
      backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
      transition: transform .25s cubic-bezier(.2,.7,.2,1), border-color .25s, background .25s;
      margin-top: 10px;
    }
    .press-zip-btn:hover, .press-zip-btn:focus-visible {
      transform: translateY(-2px);
      border-color: rgba(var(--accent-rgb),0.7);
      background: linear-gradient(160deg, rgba(var(--accent-rgb),0.28) 0%, rgba(var(--accent-rgb),0.14) 100%);
      outline: none;
    }
    .press-zip-btn:disabled {
      opacity: 0.7; cursor: wait; transform: none;
    }
    .press-zip-left { display: flex; align-items: center; gap: 14px; min-width: 0; }
    .press-zip-icon {
      width: 42px; height: 42px; border-radius: 10px; flex-shrink: 0;
      display: grid; place-items: center;
      background: rgba(var(--accent-rgb),0.2); border: 1px solid rgba(var(--accent-rgb),0.35);
      color: var(--accent-lt);
    }
    .press-zip-text { min-width: 0; }
    .press-zip-type {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(var(--accent-lt-rgb),0.8); margin-bottom: 3px;
    }
    .press-zip-name {
      font-family: 'Fraunces', serif; font-weight: 500;
      font-size: 17px; line-height: 1.15; color: var(--tint1);
    }
    .press-zip-status {
      flex-shrink: 0; color: rgba(var(--accent-lt-rgb),0.6);
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px; letter-spacing: 0.1em;
      transition: color .2s;
    }
    .press-zip-btn:hover .press-zip-status { color: var(--accent-lt); }

    /* ── CONTATORE DOWNLOAD ───────────────────────── */
    .press-dl-count {
      margin: 8px 0 0;
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.35);
      text-align: center;
      min-height: 16px;
    }
    .press-dl-count span { color: rgba(var(--accent-lt-rgb),0.55); }

    /* ── FOOTER ───────────────────────────────────── */
    .foot {
      margin-top: 48px; width: 100%; text-align: center;
      animation: fadeUp 1s 1.1s both cubic-bezier(.2,.7,.2,1);
    }
    .foot-line {
      font-family: 'Fraunces', serif; font-style: italic; font-weight: 300;
      font-size: 14px; line-height: 1.4; color: rgba(var(--ink-rgb),0.55);
      max-width: 320px; margin: 0 auto 14px;
    }
    .foot-credit {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(var(--ink-rgb),0.3);
    }
    .foot-credit .red { color: var(--accent); }

    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(16px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { animation: none !important; transition: none !important; }
    }
    @media (min-width: 720px) {
      .page { max-width: 540px; padding-bottom: 72px; }
    }

/* ═════════════════════════════════════════════════════════════
   Componenti aggiunti per il sito a più capitoli
   ═════════════════════════════════════════════════════════════ */

/* ── Mini menu ──────────────────────────────────────────────── */
.topnav {
  position: sticky; top: 0; z-index: 40;
  background: linear-gradient(180deg, var(--bg) 55%, rgba(var(--bg-rgb),0));
  padding: 10px 12px 14px;
}
.topnav ul {
  list-style: none; margin: 0 auto; padding: 0;
  max-width: 520px;
  display: flex; gap: 6px; justify-content: center; flex-wrap: wrap;
}
.tn-item {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 12px; border-radius: 999px;
  text-decoration: none;
  font-size: 11.5px; font-weight: 500; letter-spacing: 0.01em;
  color: rgba(var(--ink-rgb),0.5);
  border: 1px solid rgba(var(--ink-rgb),0.1);
  background: rgba(var(--surf-rgb),0.5);
  transition: color .2s, border-color .2s, background .2s;
}
.tn-item:hover { color: rgba(var(--ink-rgb),0.85); border-color: rgba(var(--ink-rgb),0.22); }
.tn-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .55; }
.tn-terra .tn-dot { background: #d94a1a; opacity: 1; }
.tn-rosa  .tn-dot { background: #e0466f; opacity: 1; }
.tn-notte .tn-dot { background: #7b4dff; opacity: 1; }
.tn-item.is-on {
  color: var(--tint2);
  border-color: rgba(var(--accent-rgb),0.55);
  background: rgba(var(--accent-rgb),0.14);
}
.tn-play { color: rgba(var(--ink-rgb),0.6); }
.tn-play.is-on { color: var(--tint2); }
@media (max-width: 400px) { .tn-txt { max-width: 92px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } }

/* ── Blocco "il brano" ──────────────────────────────────────── */
.rel { width: 100%; }
.rel-lead {
  font-family: 'Fraunces', serif; font-weight: 300; font-style: italic;
  font-size: 17px; line-height: 1.45; color: var(--accent-lt);
  margin: 0 0 16px;
}
.rel-body p {
  margin: 0 0 13px; font-size: 14.5px; line-height: 1.65;
  color: rgba(var(--ink-rgb),0.82);
}
.rel-body p:last-child { margin-bottom: 0; }
.rel-body em { color: var(--tint1); font-style: italic; }
.rel-body strong { color: var(--tint2); font-weight: 600; }

.rel-quote {
  margin: 20px 0 0; padding: 16px 18px;
  background: rgba(var(--accent-rgb),0.08);
  border-left: 2px solid var(--accent);
  border-radius: 0 10px 10px 0;
}
.rel-quote blockquote { margin: 0; }
.rel-quote p {
  margin: 0; font-family: 'Fraunces', serif; font-style: italic; font-weight: 300;
  font-size: 15px; line-height: 1.55; color: var(--tint2);
}
.rel-quote figcaption {
  margin-top: 10px;
  font-family: 'JetBrains Mono', monospace; font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(var(--accent-lt-rgb),0.75);
}

/* ── Crediti ────────────────────────────────────────────────── */
.credits {
  width: 100%; margin: 0;
  padding: 16px 18px;
  background: rgba(var(--surf-rgb),0.5);
  border: 1px solid rgba(var(--ink-rgb),0.1);
  border-radius: 16px;
}
.cr-row {
  display: grid; grid-template-columns: 1fr; gap: 2px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb),0.07);
}
.cr-row:first-child { padding-top: 0; }
.cr-row:last-child { border-bottom: 0; padding-bottom: 0; }
.credits dt {
  font-family: 'JetBrains Mono', monospace; font-size: 9.5px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(var(--ink-rgb),0.4);
}
.credits dd { margin: 0; font-size: 13.5px; line-height: 1.45; color: rgba(var(--ink-rgb),0.85); }
@media (min-width: 460px) {
  .cr-row { grid-template-columns: 128px 1fr; gap: 14px; align-items: baseline; }
}

/* ── Piattaforme ────────────────────────────────────────────── */
.platforms {
  list-style: none; margin: 14px 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 7px;
}
.platforms a {
  display: inline-block; padding: 7px 13px; border-radius: 999px;
  font-size: 12px; font-weight: 500; text-decoration: none;
  color: rgba(var(--ink-rgb),0.7);
  border: 1px solid rgba(var(--ink-rgb),0.14);
  transition: color .2s, border-color .2s, background .2s;
}
.platforms a:hover {
  color: var(--tint2);
  border-color: rgba(var(--accent-rgb),0.6);
  background: rgba(var(--accent-rgb),0.12);
}

/* ── Player ─────────────────────────────────────────────────── */
.player { width: 100%; margin: 0; }
.player iframe { display: block; width: 100%; border: 0; }
.player-note {
  margin: 14px 0 0; font-size: 11.5px; line-height: 1.55;
  color: rgba(var(--ink-rgb),0.38); text-align: center;
}

/* ── Pagina Ascolta ─────────────────────────────────────────── */
.listen-head { width: 100%; text-align: center; padding: 18px 0 4px; }
.listen-title {
  margin: 0 0 10px;
  font-family: 'Fraunces', serif; font-weight: 300;
  font-size: 40px; line-height: 1; letter-spacing: -0.02em;
  color: var(--tint3);
}
.listen-sub {
  margin: 0 auto; max-width: 380px;
  font-size: 13.5px; line-height: 1.6; color: rgba(var(--ink-rgb),0.55);
}
.pcard {
  width: 100%; margin: 20px 0 0; padding: 18px;
  background: rgba(var(--surf-rgb),0.5);
  border: 1px solid rgba(var(--ink-rgb),0.1);
  border-radius: 18px; overflow: hidden; position: relative;
}
.pcard::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
}
.pcard-head { display: flex; align-items: center; gap: 13px; margin-bottom: 14px; }
.pcard-art {
  width: 56px; height: 56px; border-radius: 8px; object-fit: cover; flex-shrink: 0;
  box-shadow: 0 6px 18px rgba(0,0,0,0.5), 0 0 0 1px rgba(var(--accent-rgb),0.3);
}
.pcard-meta { min-width: 0; }
.pcard-chapter {
  font-family: 'JetBrains Mono', monospace; font-size: 9.5px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(var(--accent-lt-rgb),0.8);
}
.pcard-title {
  margin: 3px 0 3px;
  font-family: 'Fraunces', serif; font-weight: 400;
  font-size: 20px; line-height: 1.15; color: var(--tint3);
}
.pcard-date { font-size: 11.5px; color: rgba(var(--ink-rgb),0.45); }
.pcard-more {
  display: inline-flex; align-items: center; gap: 7px;
  margin-top: 14px; text-decoration: none;
  font-size: 12.5px; font-weight: 500; color: var(--accent-lt);
}
.pcard-more:hover { color: var(--tint2); }

/* ── Credito fotografico ────────────────────────────────────── */
.photo-credit {
  margin: 12px 0 0; text-align: center;
  font-family: 'JetBrains Mono', monospace; font-size: 10px;
  letter-spacing: 0.08em; color: rgba(var(--ink-rgb),0.38);
}

/* ── Spaziature fra i blocchi della pagina capitolo ─────────── */
.rel, .credits, .player, .platforms, .press-cs { margin-bottom: 4px; }

@media (prefers-reduced-motion: reduce) {
  .tn-item, .platforms a, .pcard-more { transition: none; }
}

/* ── Correzioni hero per copertine con logo in basso ─────────
   La didascalia stava sopra l'artwork: si alza il blocco cover
   e si lascia una fascia libera sotto.                        */
.hero { aspect-ratio: 1 / 1.16; }
.hero-cover { width: 74%; margin-bottom: 54px; }

/* ── Menu sticky: fondo pieno, non gradiente ────────────────
   Con due righe di pillole il gradiente lasciava passare il
   testo sotto la seconda riga.                               */
.topnav {
  background: rgba(var(--bg-rgb),0.86);
  backdrop-filter: blur(14px) saturate(150%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  border-bottom: 1px solid rgba(var(--ink-rgb),0.07);
  padding: 10px 12px;
}

/* ── Pillola "Capitolo N": centraggio che non dipende dal transform ──
   Si centrava con translateX(-50%), ma l'animazione fadeUp termina con
   transform:translateY(0) e — essendo transform una proprietà sola —
   cancellava il centraggio, spostando la pillola a destra di metà della
   sua larghezza. Qui il centraggio passa a left/right + margin auto,
   lo stesso metodo già usato da .hero-caption, così nessuna animazione
   futura può romperlo.                                                */
.hero-mark {
  left: 0; right: 0;
  margin-inline: auto;
  width: fit-content;
  max-width: calc(100% - 36px);
  transform: none;
}
