/* Castanon Art: gate styles, copied verbatim from the static site (limited-access.html). */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --bg-deep:#1c1c1a; --bg-dark:#222220; --bg-main:#262624; --bg-tile:#2a2a28;
      --bg-footer:#161614;
      --white:#ffffff; --soft-white:#e0e0e0; --mid:#c8c8c8; --rule:#1e1e1e; --gold:#b8a583;
      --font-title: 'Newsreader', Georgia, serif;
      --font-body:'Libre Franklin',sans-serif;
    }
    html { scroll-behavior: smooth; }
    body { background:var(--bg-main); color:var(--white); font-family:var(--font-body); font-weight: 200; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }

    /* ── NAV (canonical) ── */
    nav { background:#1c1c1a; border-bottom:0.5px solid var(--rule); height:58px; display:flex; align-items:center; justify-content:space-between; padding:0 40px; position:sticky; top:0; z-index:100; }
    .nav-brand { font-family:var(--font-title); font-size: 21px; font-weight: 400; color:#fff; letter-spacing: 0.5px; text-transform: none; text-decoration:none; white-space:nowrap; }
    .nav-brand,
    .nav-brand:link,
    .nav-brand:visited,
    .nav-brand:hover,
    .nav-brand:active,
    .nav-brand:focus { text-decoration: none; }
    
    .nav-links { display:flex; gap:16px; font-family:var(--font-body); font-size:11px; font-weight: 200; letter-spacing:0.8px; text-transform:uppercase; margin-left:auto; margin-right:44px; }
    .nav-links a { color:rgba(255,255,255,0.90); text-decoration:none; transition:color 0.2s ease; }
    .nav-links a:hover { color:#ffffff; }
    .nav-links a.active { color:var(--gold); }
    .nav-right { flex-shrink:0; display:flex; align-items:center; }
    .nav-collect, a.nav-collect { font-family:var(--font-body); font-size:11px; font-weight: 200; letter-spacing:1.5px; text-transform:uppercase; text-decoration:none; color: var(--gold); transition:color 0.2s ease; }
    .nav-collect:hover, a.nav-collect:hover { color:#f0cc8a; }

    /* ── THRESHOLD (quiet hero) ── */
    .threshold {
      background: var(--bg-deep);
      border-bottom: 0.5px solid #2a2a2a;
      padding: 96px 40px 80px;
    }
    .threshold-inner {
      max-width: 720px;
      margin: 0 auto;
    }
    .threshold-eyebrow {
      font-family: var(--font-body);
      font-size: 10px; font-weight: 200;
      letter-spacing: 5px; text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 24px;
    }
    .threshold-title {
      font-family: var(--font-title);
      font-size: 47px; font-weight: 400;
      letter-spacing: 0.6px; text-transform: none;
      color: var(--white);
      line-height: 1.1;
      margin-bottom: 28px;
    }
    .threshold-rule {
      width: 40px; height: 0.5px;
      background: var(--gold); opacity: 0.55;
      margin-bottom: 28px;
    }
    .threshold-line {
      font-family: var(--font-body);
      font-size: 14px; font-weight: 200;
      color: var(--mid);
      line-height: 2;
      max-width: 480px;
    }

    /* ── ACCESS FORM (atmospheric, single-step) ── */
    .access {
      background: var(--bg-main);
      padding: 72px 40px 88px;
    }
    .access-inner {
      max-width: 720px;
      margin: 0 auto;
    }
    .access-line {
      font-family: var(--font-body);
      font-size: 13px; font-weight: 200;
      color: var(--soft-white);
      line-height: 1.9;
      max-width: 480px;
      margin-bottom: 36px;
    }
    .access-form {
      display: flex;
      flex-direction: column;
      gap: 14px;
      max-width: 420px;
    }
    .access-input {
      background: transparent;
      border: none;
      border-bottom: 0.5px solid #686868;
      padding: 14px 0;
      font-family: var(--font-body);
      font-size: 13px; font-weight: 200;
      color: var(--white);
      outline: none;
      transition: border-bottom-color 0.25s;
      letter-spacing: 0.5px;
      width: 100%;
    }
    .access-input::placeholder { color: #999999; }
    .access-input:focus { border-bottom-color: #888; }
    .access-submit {
      font-family: var(--font-body);
      font-size: 10px; font-weight: 200;
      letter-spacing: 3px; text-transform: uppercase;
      background: transparent;
      color: var(--gold);
      border: 0.5px solid var(--gold);
      padding: 14px 28px;
      cursor: pointer;
      transition: background 0.25s;
      margin-top: 6px;
      align-self: flex-start;
    }
    .access-submit:hover { background: rgba(184,165,131,0.08); }
    .access-privacy {
      font-family: var(--font-body);
      font-size: 10px; font-weight: 200;
      letter-spacing: 1.5px;
      color: var(--soft-white);
      margin-top: 26px;
      opacity: 0.85;
    }
    /* "You are in." — always visible.
       Uppercase, tracked, modest size — matches the small-label typography
       used elsewhere on the site. Subdued gray before entry; the page's gold
       accent after entry. No bullet, no border, no decorative element.
       The ENTER button is hidden after entry (via JS) so only one element is highlighted. */
    .access-ack {
      font-family: var(--font-body);
      font-size: 12px;
      font-weight: 400;
      letter-spacing: 4px;
      text-transform: uppercase;
      color: #b0b0b0;
      margin-top: 36px;
      margin-bottom: 28px;
      transition: color 0.25s ease;
    }
    .access-ack.is-visible { color: var(--gold); }

    /* =============================================================
       MODULAR ENTRIES
       -----------------------------------------------------------
       The page is intentionally sparse. The .entries section may
       hold zero, a few, or many .entry blocks — and adapts cleanly
       to any of those states.

       To add an entry, drop a new .entry block inside .entries-list.
       To return to silence, remove every .entry and leave (or restore)
       the .entries-quiet line.

       Building blocks (all optional, mix freely):
         .entry              — the wrapper
         .entry-meta         — small kicker (date · type · note)
         .entry-title        — short title
         .entry-body         — prose, fragment, caption
         .entry-image        — full-width image / scan slot
         .entry-audio        — <audio> wrapper
         .entry-rule         — thin gold rule (a quiet divider)
         .entry--quiet       — modifier for unfinished / temporary states

       Sparse layouts and silence are valid states.
       Do not force permanent content to simulate fullness.
    ============================================================= */
    .entries {
      background: var(--bg-main);
      padding: 0 40px 120px;
    }
    .entries-inner {
      max-width: 720px;
      margin: 0 auto;
      border-top: 0.5px solid #1e1e1e;
      padding-top: 56px;
    }
    .entries-kicker {
      font-family: var(--font-body);
      font-size: 10px; font-weight: 200;
      letter-spacing: 5px; text-transform: uppercase;
      color: var(--mid);
      margin-bottom: 40px;
    }
    .entries-list {
      display: flex;
      flex-direction: column;
    }
    .entries-quiet {
      font-family: var(--font-body);
      font-size: 11px; font-weight: 200;
      font-style: italic;
      color: #b8b8b8;
      letter-spacing: 0.5px;
      line-height: 1.9;
    }

    .entry {
      padding: 40px 0;
      border-bottom: 0.5px solid #1e1e1e;
    }
    .entry:last-child { border-bottom: none; }
    .entry-meta {
      font-family: var(--font-body);
      font-size: 10px; font-weight: 200;
      letter-spacing: 3px; text-transform: uppercase;
      color: var(--gold);
      opacity: 0.6;
      margin-bottom: 16px;
    }
    .entry-title {
      font-family: var(--font-title);
      font-size: 22px; font-weight: 400;
      color: var(--white);
      letter-spacing: 0.38px; text-transform: none;
      line-height: 1.4;
      margin-bottom: 16px;
    }
    .entry-body {
      font-family: var(--font-body);
      font-size: 13px; font-weight: 200;
      color: var(--soft-white);
      line-height: 1.95;
      max-width: 520px;
    }
    .entry-body p + p { margin-top: 14px; }
    .entry-image {
      width: 100%;
      aspect-ratio: 4 / 3;
      background: var(--bg-tile);
      margin: 8px 0 16px;
      overflow: hidden;
    }
    .entry-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .entry-audio { margin: 12px 0; }
    .entry-audio audio { width: 100%; max-width: 480px; display: block; }
    .entry-rule {
      width: 32px; height: 0.5px;
      background: var(--gold); opacity: 0.5;
      margin-top: 28px;
    }
    .entry--quiet .entry-title,
    .entry--quiet .entry-body { opacity: 0.6; }
    .entry--quiet .entry-meta { opacity: 0.4; }
    .entry-link { font-family:var(--font-body); font-size:10px; font-weight: 200; letter-spacing:2px; text-transform:uppercase; color:var(--gold); text-decoration:none; transition:color 0.2s; display:inline-block; margin-top:16px; }
    .entry-link:hover { color:#f0cc8a; }

    /* ── FOOTER (canonical) ── */
    footer { background:var(--bg-footer); border-top:0.5px solid #333; padding:0; display:block; }
    .footer-cols { padding:48px 40px; display:grid; grid-template-columns:1.5fr 1fr 1fr 1.5fr; gap:40px; border-bottom:0.5px solid #2a2a2a; }
    .footer-col-label { font-family:var(--font-body); font-size:10px; font-weight:200; letter-spacing:3px; text-transform:uppercase; color:#cccccc; margin-bottom:16px; }
    .footer-brand { font-family:var(--font-title); font-size: 18px; letter-spacing: 0.5px; text-transform: none; color:var(--soft-white); opacity:0.9; margin-bottom:16px; }
    .footer-tagline { font-family:var(--font-body); font-size:11px; font-weight:200; color:#cccccc; line-height:1.9; font-style:italic; }
    .footer-explore { display:flex; flex-direction:column; gap:10px; }
    .footer-explore a { font-family:var(--font-body); font-size:11px; font-weight:200; letter-spacing:1.5px; text-transform:uppercase; color:#cccccc; text-decoration:none; transition:color 0.2s; }
    .footer-explore a:hover { color:var(--white); }
    .footer-email { font-family:var(--font-body); font-size:12px; font-weight: 200; color:#cccccc; text-decoration:none; display:block; margin-bottom:14px; }
    .footer-email:hover { color:var(--white); }
    .footer-body-text { font-family:var(--font-body); font-size:11px; font-weight:200; color:#c8c8c8; line-height:1.8; }
    .footer-circle-text { font-family:var(--font-body); font-size:11px; font-weight:200; color:#cccccc; line-height:1.9; margin-bottom:20px; }
    .footer-circle-cta { font-family:var(--font-body); font-size:10px; font-weight:200; letter-spacing:2px; text-transform:uppercase; color:var(--gold); border:0.5px solid var(--gold); padding:11px 20px; text-decoration:none; display:inline-block; transition:background 0.2s; }
    .footer-circle-cta:hover { background:rgba(184,165,131,0.08); }
    .footer-strip { padding:16px 40px; display:flex; justify-content:space-between; align-items:center; }
    .footer-copy { font-family:var(--font-body); font-size:11px; font-weight:200; color:#cccccc; letter-spacing:0; }
    .footer-links { display:flex; gap:24px; }
    .footer-links a { font-family:var(--font-body); font-size:11px; font-weight:200; letter-spacing:1px; text-transform:uppercase; color:#cccccc; text-decoration:none; transition:color 0.2s; }
    .footer-links a:hover { color:var(--white); }

    @media (max-width: 980px) {
      nav { padding: 0 22px; }
      .nav-links { display:flex; gap:16px; font-family:var(--font-body); font-size:11px; font-weight: 200; letter-spacing:0.8px; text-transform:uppercase; margin-left:auto; margin-right:44px; }
      .threshold { padding: 64px 22px 56px; }
      .access { padding: 48px 22px 64px; }
      .entries { padding: 0 22px 88px; }
      .footer-cols { grid-template-columns: 1fr 1fr; gap: 32px; padding: 36px 22px; }
      .footer-strip { padding: 16px 22px; flex-direction: column; align-items: flex-start; gap: 14px; }
    }
      .nav-left { display: flex; align-items: center; gap: 18px; }
    .nav-logo-link { display: flex; align-items: center; text-decoration: none; }
    .nav-logo-crop { display: block; width: 11.69px; height: 13px; overflow: hidden; position: relative; transform: translateY(-1px); }
    .nav-logo-crop svg { position: absolute; width: 11.686px; height: 13.025px; left: 0.002px; top: 0.002px; fill: #ddba79; opacity: 0.68; }
