/* ============================================================
   LINEAGE GIFTS FRONTEND CSS (Adapted to Theme Palette)
   ============================================================ */

/* Global Typography: h1, h2, h3 */
h1, h2, h3,
.lineage-reels-title,
.light-title,
.gate-modal h3,
.oracle-card h3,
.audio-card h3,
.wallpaper-card h3,
.lineage-title {
  font-family: "Playfair", "Playfair Display", Georgia, serif !important;
  font-weight: 500 !important;
  text-transform: capitalize !important;
  font-size: 34px !important;
}

/* Gate Modal */
.gate-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  padding: 20px;
}

.gate-modal {
  background: var(--bg, #000000);
  border: 1px solid var(--gold-dim, #6d5930);
  padding: 40px 30px;
  max-width: 400px;
  width: 100%;
  border-radius: 2px;
  text-align: center;
  box-shadow: 0 20px 40px rgba(0,0,0,0.9);
}

.gate-modal h3 {
  font-family: var(--serif, "Instrument Serif", serif);
  color: var(--gold, #c69d52);
  font-size: 32px;
  margin: 0 0 10px 0;
  font-weight: 400;
}

.gate-modal p {
  color: var(--ink-mute, #7c766a);
  font-size: 13px;
  margin: 0 0 25px 0;
  line-height: 1.4;
}

.gate-modal input {
  width: 100%;
  padding: 14px;
  margin-bottom: 15px;
  background: transparent;
  border: 1px solid var(--rule, #211e18);
  color: var(--ink, #efece5);
  font-size: 13px;
  box-sizing: border-box;
  font-family: inherit;
}

.gate-modal input:focus {
  border-color: var(--gold, #c69d52);
  outline: none;
}

.gate-btn {
  width: 100%;
  padding: 14px;
  background: var(--gold, #c69d52);
  color: var(--bg, #000000);
  font-weight: bold;
  border: none;
  cursor: pointer;
  letter-spacing: 0.1em;
  text-transform: none;
  font-size: 11px;
  transition: opacity 0.2s;
}

.gate-btn:hover { opacity: 0.9; }

/* Persistent Soft Signup Bar — translucent grey glass, fixed at the bottom. */
.lineage-soft-banner {
  --lg-soft-bg: rgba(79,82,81,.48);
  --lg-soft-blur: 24px;
  --lg-soft-saturation: 110%;
  --lg-soft-border: rgba(255,255,255,.22);
  --lg-soft-border-width: 1px;
  --lg-soft-radius: 24px;
  --lg-soft-max-width: 1280px;
  --lg-soft-bottom: 12px;
  --lg-soft-padding-x: 34px;
  --lg-soft-padding-y: 0px;
  --lg-soft-shadow: 0 16px 45px rgba(0,0,0,.32);
  --lg-soft-text: #fff;
  --lg-soft-muted: #e6e6e6;
  --lg-soft-button-bg: #fff;
  --lg-soft-button-text: #171717;
  --lg-soft-button-radius: 999px;
  --lg-soft-button-px: 27px;
  --lg-soft-button-py: 14px;
  --lg-soft-image-size: 150px;
  --lg-soft-image-radius: 28px;
  --lg-soft-image-opacity: .78;
  position: fixed;
  left: 0;
  right: 0;
  bottom: var(--lg-soft-bottom);
  z-index: 9998;
  padding: 0 12px;
  pointer-events: none;
  opacity: 0;
  transform: translateY(110%);
  transition: opacity .35s ease, transform .45s cubic-bezier(.2,.75,.25,1);
}
.lineage-soft-banner.is-visible { opacity: 1; transform: translateY(0); }
.lineage-soft-banner-inner {
  position: relative;
  width: min(var(--lg-soft-max-width), 100%);
  min-height: 132px;
  margin: 0 auto;
  padding: var(--lg-soft-padding-y) 250px var(--lg-soft-padding-y) 355px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 28px;
  color: var(--lg-soft-text);
  background: linear-gradient(90deg, var(--lg-soft-bg) 0%, rgba(38,40,39,.62) 100%);
  border: var(--lg-soft-border-width) solid var(--lg-soft-border);
  border-radius: var(--lg-soft-radius);
  box-shadow: var(--lg-soft-shadow);
  backdrop-filter: blur(var(--lg-soft-blur)) saturate(var(--lg-soft-saturation));
  -webkit-backdrop-filter: blur(var(--lg-soft-blur)) saturate(var(--lg-soft-saturation));
  overflow: visible;
  pointer-events: auto;
}
.lineage-soft-copy { min-width: 0; flex: 1 1 auto; max-width: none; padding: 18px 0; }
.lineage-soft-copy h3, .lineage-soft-copy p, .lineage-soft-eyebrow { overflow-wrap: normal; }
.lineage-soft-actions { position:absolute; right:30px; top:50%; transform:translateY(-50%); display:flex; align-items:center; gap:22px; flex:0 0 auto; padding-right:10px; z-index:4; }
.lineage-soft-actions .lineage-soft-no-thanks, .lineage-soft-actions .lineage-soft-signup { pointer-events:auto; }
.lineage-soft-eyebrow { margin: 0 0 5px; color: var(--lg-soft-muted); font-size: clamp(11px,1vw,14px); line-height: 1.1; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.lineage-soft-copy h3 { margin: 0 0 5px; color: var(--lg-soft-text); font-family: inherit; font-size: clamp(25px,2.25vw,32px); line-height: 1.08; font-weight: 500; letter-spacing: -.02em; white-space: nowrap; }
.lineage-soft-copy p { margin: 0; color: var(--lg-soft-muted); font-size: clamp(14px,1.25vw,18px); line-height: 1.35; }
.lineage-soft-visual { position: absolute; left: 34px; bottom: 0; width: 290px; height: 185px; pointer-events: none; z-index:3; }
.lineage-soft-img { position: absolute; display: block; width: var(--lg-soft-image-size); height: var(--lg-soft-image-size); background-repeat: no-repeat; background-size: cover; background-position: center; background-position: center; border-radius: var(--lg-soft-image-radius); box-shadow: 0 8px 24px rgba(0,0,0,.28); }
.lineage-soft-img-back { left: 0; bottom: 8px; transform: rotate(-10deg); opacity: var(--lg-soft-image-opacity); }
.lineage-soft-img-mid { left: 65px; bottom: 0; transform: rotate(8deg); opacity: calc(var(--lg-soft-image-opacity) + .12); }
.lineage-soft-img-front { left: 58px; bottom: 0; width: calc(var(--lg-soft-image-size) + 4px); height: calc(var(--lg-soft-image-size) + 20px); transform: rotate(0deg); border-radius: var(--lg-soft-image-radius); border: 2px solid rgba(255,255,255,.18); opacity: 1; }
.lineage-soft-img-empty { background: linear-gradient(145deg,#4b4b4b,#111) !important; }

.lineage-soft-no-thanks,.lineage-soft-signup { appearance:none; border:0; background:transparent; color:var(--lg-soft-muted); font:inherit; font-size:16px; cursor:pointer; white-space:nowrap; padding:12px 4px; }
.lineage-soft-signup { min-width: 170px; color:var(--lg-soft-button-text); background:var(--lg-soft-button-bg); border-radius:var(--lg-soft-button-radius); padding:var(--lg-soft-button-py) var(--lg-soft-button-px); font-weight:500; box-shadow:0 3px 10px rgba(0,0,0,.12); }
.lineage-soft-signup:hover { filter:brightness(.96); }
.lineage-soft-no-thanks:hover { color:var(--lg-soft-text); }
.lineage-soft-close { position:absolute; right:12px; top:8px; width:30px; height:30px; padding:0; border:0; background:transparent; color:var(--lg-soft-muted); font-size:24px; line-height:30px; cursor:pointer; }
.lineage-soft-form { display:none; grid-template-columns:minmax(130px,1fr) minmax(170px,1fr) minmax(140px,1fr) auto; gap:8px; margin-top:12px; }
.lineage-soft-form input { width:100%; min-height:42px; box-sizing:border-box; padding:10px 12px; border:1px solid rgba(255,255,255,.28); border-radius:8px; outline:none; background:rgba(255,255,255,.10); color:var(--lg-soft-text); font:inherit; }
.lineage-soft-form input::placeholder { color:rgba(255,255,255,.68); }
.lineage-soft-dob-wrap { position:relative; display:flex; align-items:center; gap:6px; min-width:0; }
.lineage-soft-dob-wrap .lineage-dob-calendar { position:relative; right:auto; top:auto; transform:none; flex:0 0 42px; width:42px; height:42px; }
.lineage-soft-dob-wrap input { flex:1; min-width:0; }
.lineage-soft-dob-wrap .lineage-dob-calendar { min-width:42px; border:1px solid rgba(255,255,255,.28); border-radius:8px; background:rgba(255,255,255,.10); color:#fff; cursor:pointer; }
.lineage-soft-submit { min-height:42px; padding:10px var(--lg-soft-button-px); border:0; border-radius:var(--lg-soft-button-radius); background:var(--lg-soft-button-bg); color:var(--lg-soft-button-text); cursor:pointer; font-weight:500; white-space:nowrap; }
.lineage-soft-submit:disabled { opacity:.65; cursor:wait; }
.lineage-soft-banner.is-expanded .lineage-soft-banner-inner { min-height:155px; }
.lineage-soft-banner.is-expanded .lineage-soft-copy p { display:none; }
.lineage-soft-banner.is-expanded .lineage-soft-actions { display:none; }

/* Oracle DOB-only state: keep the section subtitle visible and use a dedicated CTA. */
.lineage-soft-banner.is-oracle-dob .lineage-soft-copy p { display: block; }
.lineage-soft-banner.is-oracle-dob .lineage-soft-actions { display: none; }
.lineage-soft-banner.is-oracle-dob .lineage-soft-form { margin-top: 10px; grid-template-columns: minmax(190px, 300px) auto; align-items: center; }
.lineage-soft-banner.is-oracle-dob .lineage-soft-dob-wrap { min-width: 190px; }
.lineage-soft-banner.is-oracle-dob .lineage-soft-submit { min-width: 220px; }
.lineage-soft-banner.is-oracle-dob .lineage-soft-visual { opacity: 1; }
@media (max-width: 680px) {
  .lineage-soft-banner.is-oracle-dob .lineage-soft-form { grid-template-columns: 1fr; }
  .lineage-soft-banner.is-oracle-dob .lineage-soft-submit { width: 100%; }
}

@media (max-width: 900px) {
  .lineage-soft-banner-inner {
    padding: 20px 24px 20px 210px;
    min-height: 110px;
  }
  .lineage-soft-visual { left: 12px; width: 190px; height: 135px; }
  .lineage-soft-img { width: 112px; height: 112px; }
  .lineage-soft-img-front { width: 116px; height: 126px; left: 42px; }
  .lineage-soft-img-mid { left: 47px; }
  .lineage-soft-copy h3 { font-size: 26px; }
  .lineage-soft-copy p { font-size: 14px; }
  .lineage-soft-actions { right:16px; gap:10px; }
  .lineage-soft-no-thanks { font-size: 14px; }
  .lineage-soft-signup { font-size: 14px; padding: 12px 18px; }
}
@media (max-width: 680px) {
  .lineage-soft-banner { padding: 0 8px 8px; }
  .lineage-soft-banner-inner,
  .lineage-soft-banner.is-expanded .lineage-soft-banner-inner {
    display: grid;
    grid-template-columns: 92px minmax(0,1fr);
    gap: 14px;
    min-height: 0;
    padding: 14px 16px;
    border-radius: 18px;
  }
  .lineage-soft-visual { display: block; position: relative; left: auto; bottom: auto; width: 92px; height: 96px; align-self: center; }
  .lineage-soft-img { width: 68px; height: 78px; border-radius: 16px; }
  .lineage-soft-img-back { left: 0; bottom: 5px; transform: rotate(-10deg); }
  .lineage-soft-img-mid { left: 17px; bottom: 0; transform: rotate(8deg); }
  .lineage-soft-img-front { left: 13px; bottom: 0; width: 72px; height: 84px; }
  .lineage-soft-copy { padding: 0 24px 0 0; }
  .lineage-soft-copy h3 { white-space: normal; }
  .lineage-soft-copy h3 { font-size: 20px; line-height: 1.12; white-space: normal; }
  .lineage-soft-copy p { font-size: 13px; margin-top: 4px; }
  .lineage-soft-eyebrow { font-size: 9px; }
  .lineage-soft-actions { position:static; transform:none; grid-column:1 / -1; margin-top:2px; justify-content:flex-end; padding-right:0; gap:10px; }
  .lineage-soft-no-thanks { font-size: 13px; }
  .lineage-soft-signup { font-size: 13px; padding: 10px 15px; }
  .lineage-soft-form { grid-column: 1 / -1; grid-template-columns: 1fr; margin-top: 2px; }
  .lineage-soft-submit { width: 100%; }
  .lineage-soft-banner.is-expanded .lineage-soft-visual { display: none; }
  .lineage-soft-banner.is-expanded .lineage-soft-copy { grid-column: 1 / -1; }
}
@media (max-width: 390px) {
  .lineage-soft-banner-inner { grid-template-columns: 1fr; }
  .lineage-soft-visual { display: none; }
  .lineage-soft-copy { grid-column: 1 / -1; padding-right: 24px; }
}

/* Expansion Drawers */
.detail-drawer {
  display: none;
  scroll-margin-top: 90px;
  margin-top: 40px;
  padding: 40px;
  border-radius: 8px;
  animation: slideDown 0.4s ease forwards;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}




@keyframes slideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Oracle Spread Section */
.oracle-section {
  scroll-margin-top: 90px;
  background-color: transparent;
  padding: 6px 12px 28px;
  text-align: center;
  color: var(--ink, #efece5);
  overflow: visible;
}

.oracle-tag, .light-tag {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: none;
  font-weight: 700;
  color: var(--gold-dim, #6d5930);
  margin-bottom: 4px;
}

.oracle-title, .light-title {
  font-family: inherit;
  font-size: 34px;
  font-weight: 800;
  margin: 0 0 2px 0;
  color: var(--ink, #efece5);
  line-height: 1.1;
}

.oracle-desc {
  font-size: 15px;
  color: var(--ink-mute, #7c766a);
  margin: 0 0 0;
  line-height: 1.35;
}

.oracle-container {
  position: relative;
  width: 100%;
  height: 510px;
  max-width: 1100px;
  margin: 30px auto 0;
  display: block;
  overflow: visible;
}

.oracle-card {
  width: var(--oracle-card-width, 320px);
  height: var(--oracle-card-height, 480px);
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -160px;
  transform-origin: center bottom;
  border-radius: 14px;
  background-color: #000;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  box-shadow: none;
  cursor: pointer;
  transition: transform 0.42s cubic-bezier(0.22,1,0.36,1), box-shadow 0.25s ease; will-change: transform;
  border: 0 !important;
  outline: none !important;
}

.oracle-card:hover { filter: none !important; }


/* Result archetype image download control: reveal on hover; always visible on touch devices. */
.reveal-flip-back { position: relative; overflow: hidden; }
.reveal-flip-back .oracle-art-download { opacity: 0; transition: opacity .2s ease, transform .2s ease; transform: translateY(4px); }
.reveal-flip-back:hover .oracle-art-download { opacity: 1; transform: translateY(0); }
@media (hover: none), (max-width: 768px) {
  .reveal-flip-back .oracle-art-download { opacity: 1; transform: none; }
}

/* Audio cards: no visible border/outline in any state. */
.white-cards-grid .white-card,
.white-cards-grid .white-card:hover,
.white-cards-grid .white-card:focus,
.white-cards-grid .white-card:focus-visible,
.white-cards-grid .white-card:active {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: 0 4px 15px rgba(0,0,0,0.18) !important;
}

@media (max-width: 768px) {
  .oracle-section {
    padding: 4px 6px 20px;
  }
  .oracle-tag { margin-bottom: 5px; }
  .oracle-title {
    font-size: clamp(24px, 7vw, 30px);
    margin-bottom: 4px;
  }
  .oracle-desc {
    font-size: 13px;
    margin-bottom: 2px;
  }
  .oracle-container {
    margin: 20px auto 0 !important;
    max-width: 100%;
  }
  .oracle-card {
    max-width: 110px;
    border-radius: 10px;
  }
}

@media (max-width: 480px) {
  .oracle-section { padding-left: 3px; padding-right: 3px; }
  .oracle-container { max-width: 100%; margin-top: 16px !important; }
}

/* Light Grids (Adapted to dark theme) */
.light-section {
  background-color: transparent; 
  padding: 80px 20px;
  color: var(--ink, #efece5);
}

.light-header {
  text-align: center;
  max-width: 1100px;
  margin: 0 auto 30px auto;
  text-align: left;
}

.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  max-width: 1100px;
  margin: 0 auto;
}

.grid-card {
  background: var(--bg, #000);
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--rule, #211e18);
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.grid-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.8);
  border-color: var(--gold-dim, #6d5930);
}

.card-img-wrapper {
  position: relative;
  height: 340px;
  background-size: cover;
  background-position: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  padding: 25px 20px;
  text-align: center;
}

.card-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
}

.card-img-title {
  position: relative;
  color: var(--ink, #fff);
  font-family: var(--serif, "Instrument Serif", serif); 
  font-size: 26px;
  font-weight: 400;
  z-index: 2;
  margin: 0 0 8px 0;
  text-transform: none;
  letter-spacing: 0.05em;
}

.card-img-desc {
  position: relative;
  color: var(--ink-mute, #e0e0e0);
  font-size: 11px;
  font-style: italic;
  z-index: 2;
  margin: 0;
  line-height: 1.4;
}

.card-bottom {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: var(--bg, #000);
  border-top: 1px solid var(--rule, #211e18);
}

.card-bottom h4 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--ink, #fff);
  line-height: 1.3;
}

.card-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.pill-badge {
  background: var(--rule, #211e18); 
  color: var(--gold, #c69d52); 
  font-size: 9px;
  font-weight: 800;
  text-transform: none;
  letter-spacing: 0.05em;
  padding: 5px 10px;
  border-radius: 20px;
  border: 1px solid var(--gold-dim, #6d5930);
}

.pill-btn {
  background: var(--gold, #c69d52); 
  color: var(--bg, #000);
  font-size: 12px;
  font-weight: 700;
  padding: 8px 18px;
  border-radius: 20px;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
}


/* Netflix Style Cards */
.netflix-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 15px;
  max-width: 1100px;
  margin: 0 auto;
}

.netflix-card {
  position: relative;
  width: 100%;
  aspect-ratio: 2 / 3;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  border: 1px solid var(--rule, #211e18);
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.3s ease;
  box-shadow: 0 4px 15px rgba(0,0,0,0.5);
}

.netflix-card:hover {
  transform: scale(1.05);
  z-index: 10;
  box-shadow: 0 10px 25px rgba(0,0,0,0.8), 0 0 15px rgba(198, 157, 82, 0.3);
  border-color: var(--gold-dim, #6d5930);
}

.netflix-img {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-color: #c69d52;
  position: relative;
}

.netflix-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.2) 60%, transparent 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px 15px;
  opacity: 0.9;
  transition: opacity 0.3s ease;
}

.netflix-card:hover .netflix-overlay {
  opacity: 1;
}

.netflix-title {
  color: var(--ink, #fff);
  font-family: var(--serif, "Instrument Serif", serif);
  font-size: 22px;
  margin: 8px 0 0 0;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-transform: none;
  line-height: 1.1;
}

.play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  font-size: 40px;
  color: var(--gold, #c69d52);
  opacity: 0;
  transition: all 0.3s ease;
}

.netflix-card:hover .play-icon {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}


/* White UI Cards - Slidable / Horizontal Scroll */
.white-cards-grid {
  display: flex;
  overflow-x: auto;
  gap: 20px;
  padding-bottom: 25px;
  padding-top: 10px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #c69d52 transparent;
  margin: 0 auto;
  max-width: 100%;
}

.white-cards-grid::-webkit-scrollbar {
  height: 8px;
}
.white-cards-grid::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 10px;
}
.white-cards-grid::-webkit-scrollbar-thumb {
  background-color: #c69d52;
  border-radius: 10px;
}

.white-card {
  flex: 0 0 300px; /* Fixed width to allow sliding */
  scroll-snap-align: start;
  background: #000000;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
  border: 0 !important;
  outline: 0 !important;
}

@media (max-width: 768px) {
    .white-card {
        flex: 0 0 260px;
    }
}

.white-card:focus, .white-card:focus-visible, .white-card:active {
  border: 0 !important;
  outline: 0 !important;
}

.white-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}

.white-card-img {
  width: 100%;
  aspect-ratio: 2/3;
  background-size: cover;
  background-position: center;
  background-color: #c69d52;
  position: relative;
}

.white-card-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
}

.white-card-img-title {
  color: #fff;
  font-family: var(--serif, "Instrument Serif", serif);
  font-size: 24px;
  margin: 0;
  text-align: center;
  line-height: 1.1;
}

.white-card-img-desc {
  color: #aaaaaa;
  font-size: 13px;
  text-align: center;
  margin: 8px 0 0 0;
  font-style: italic;
  font-family: sans-serif;
}

.white-card-content {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.white-card-title {
  color: #c69d52;
  font-family: var(--serif, 'Instrument Serif', serif);
  font-size: 26px;
  font-weight: 400;
  font-weight: 700;
  margin: 0 0 20px 0;
  line-height: 1.3;
}

.white-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
}

.white-card-badge {
  background: #222222;
  color: #c69d52;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.5px;
}

.white-card-btn {
  background: #c69d52;
  color: #000;
  border: none;
  padding: 8px 20px;
  border-radius: 20px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
}

.white-card:hover .white-card-btn {
  background: #e5b962;
}






.drawer-light, .drawer-dark {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    color: #ffffff;
    margin-top: 30px;
}


/* Mobile Responsive Fixes */
@media (max-width: 768px) {
    .oracle-container { margin-bottom: 0 !important; }
    .drawer-light, .drawer-dark {
        padding: 20px !important;
    }
    .reveal-img-wrapper {
        margin-right: 0 !important;
        margin-bottom: 20px !important;
        width: 100% !important;
        text-align: center !important;
    }
    .reveal-text-wrapper { text-align: center !important; min-width: 100% !important; }
    .reveal-img-wrapper img { max-width: 160px !important;
        margin: 0 auto;
    }
}


/* Oracle spread layout: backend controls dimensions; JS writes the responsive values. */
.oracle-container { --oracle-card-width: 320px; --oracle-card-height: 480px; }
.oracle-section { scroll-margin-top: 80px; }
.oracle-card { border: 0 !important; outline: 0 !important; }


/* Configurable Mulank and Audio card sizes. Values come from Lineage Gifts > Settings. */
.mulank-feature-card {
  width: var(--mulank-card-width, 350px) !important;
  flex: 0 0 var(--mulank-card-width, 350px) !important;
  height: var(--mulank-card-height, 525px) !important;
  min-height: 0 !important;
}
.mulank-feature-card .white-card-img {
  flex: 0 0 68%;
  height: 68%;
  aspect-ratio: auto;
}
.mulank-feature-card .white-card-content {
  flex: 1 1 auto;
  min-height: 0;
}

.audio-cards-grid .audio-feature-card {
  width: var(--audio-card-width, 300px) !important;
  flex: 0 0 var(--audio-card-width, 300px) !important;
  height: var(--audio-card-height, 450px) !important;
  min-height: 0 !important;
}
.audio-cards-grid .audio-feature-card .white-card-img {
  flex: 0 0 68%;
  height: 68%;
  aspect-ratio: auto;
}
.audio-cards-grid .audio-feature-card .white-card-content {
  flex: 1 1 auto;
  min-height: 0;
}

@media (max-width: 768px) {
  .mulank-card-wrap .mulank-feature-card {
    width: min(var(--mulank-card-width, 350px), calc(100vw - 32px)) !important;
    flex-basis: min(var(--mulank-card-width, 350px), calc(100vw - 32px)) !important;
    height: auto !important;
    aspect-ratio: var(--mulank-card-width, 350) / var(--mulank-card-height, 525);
  }
  .audio-cards-grid .audio-feature-card {
    width: min(var(--audio-card-width, 300px), calc(100vw - 32px)) !important;
    flex-basis: min(var(--audio-card-width, 300px), calc(100vw - 32px)) !important;
    height: auto !important;
    aspect-ratio: var(--audio-card-width, 300) / var(--audio-card-height, 450);
  }
}

/* Independent mobile card sizes: Oracle, Mulank and Audio. */
@media (max-width: 768px) {
  .mulank-card-wrap .mulank-feature-card {
    width: min(var(--mulank-mobile-card-width, 180px), calc(100vw - 32px)) !important;
    flex-basis: min(var(--mulank-mobile-card-width, 180px), calc(100vw - 32px)) !important;
    height: min(var(--mulank-mobile-card-height, 270px), calc((100vw - 32px) * 1.55)) !important;
    aspect-ratio: var(--mulank-mobile-card-width, 180) / var(--mulank-mobile-card-height, 270) !important;
  }
  .audio-cards-grid .audio-feature-card {
    width: min(var(--audio-mobile-card-width, 170px), calc(100vw - 32px)) !important;
    flex-basis: min(var(--audio-mobile-card-width, 170px), calc(100vw - 32px)) !important;
    height: min(var(--audio-mobile-card-height, 255px), calc((100vw - 32px) * 1.55)) !important;
    aspect-ratio: var(--audio-mobile-card-width, 170) / var(--audio-mobile-card-height, 255) !important;
  }
}

/* ============================================================
   Premium Oracle Result Card
   ============================================================ */
.lineage-result-card {
  position: relative;
  max-width: 760px;
  margin: 0 auto;
  padding: 34px 28px 32px;
  text-align: center;
  background: transparent !important;
  color: var(--lg-result-secondary, #fff);
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}
.lineage-result-close {
  position:absolute; top:8px; right:10px; width:42px; height:42px;
  border:0; background:transparent; color:#c69d52; font-size:30px; line-height:1;
  cursor:pointer; z-index:12; border-radius:50%;
}
.lineage-result-close:hover { background:rgba(198,157,82,.10); }
.lineage-result-badge {
  display:inline-block; margin:0 0 20px; padding:7px 13px; border-radius:999px;
  font-weight:700; letter-spacing:.12em; text-transform:none;
}
.lineage-result-title { margin:0 0 14px; font-family:var(--serif,'Instrument Serif',serif); font-weight:400; line-height:1.08; }
.lineage-result-subtitle { margin:0 0 8px; font-weight:600; line-height:1.35; }
.lineage-result-subsubtitle { margin:0 0 18px; font-weight:400; line-height:1.45; }

.lineage-result-logo { margin:24px auto 0; text-align:center; }
.lineage-result-logo img { display:block; max-width:180px; max-height:70px; width:auto; height:auto; margin:0 auto 10px; object-fit:contain; border:0 !important; box-shadow:none !important; border-radius:0 !important; }
.lineage-result-domain { font-size:13px; letter-spacing:.22em; color:var(--lg-result-secondary,#fff); opacity:.72; }
.lineage-result-description { max-width:640px; margin:0 auto; font-family:var(--sans,'Inter',sans-serif); font-weight:300; line-height:1.72; }

.reveal-flip-front, .reveal-flip-back { border:0 !important; box-shadow:none !important; }
.oracle-result-actions { display:flex; justify-content:center; align-items:center; gap:10px; flex-wrap:wrap; margin-top:28px; }
.oracle-result-actions button, .oracle-result-actions a {
  min-height:44px; border:0; border-radius:999px; padding:12px 20px;
  font:600 14px/1.2 inherit; cursor:pointer; text-decoration:none; display:inline-flex;
  align-items:center; justify-content:center; transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.oracle-result-actions button:hover, .oracle-result-actions a:hover { transform:translateY(-1px); box-shadow:0 8px 24px rgba(0,0,0,.28); }
.oracle-share-btn { background:#c69d52; color:#0b0b0b; }
.oracle-download-result-card { background:#efece5; color:#0b0b0b; }
.oracle-whatsapp-btn { background:#25D366; color:#fff; }

@media (max-width:768px) {
  .lineage-result-card { padding:28px 16px 24px; border-radius:14px; border:var(--lg-result-border,0) !important; box-shadow:var(--lg-result-shadow,none) !important; }
  .lineage-result-description { line-height:1.65; }
  
.reveal-flip-front, .reveal-flip-back { border:0 !important; box-shadow:none !important; }
.oracle-result-actions { margin-top:22px; }
  .oracle-result-actions button, .oracle-result-actions a { width:100%; max-width:340px; }
}

/* FINAL ORACLE LIVE RESULT OVERRIDES: branding/border/shadow belong only to generated share/download cards. */
.oracle-container .oracle-card { border:0 !important; outline:0 !important; }
.detail-drawer.drawer-dark, .detail-drawer.drawer-light, .lineage-result-card { background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
.detail-drawer .lineage-result-logo, .detail-drawer .lineage-result-domain { display:none !important; }
.reveal-flip-front, .reveal-flip-back { border:0 !important; box-shadow:none !important; background-color:transparent !important; }


/* Final interaction corrections: hover lifts in place, never shifts to center. */
.oracle-card { transition: transform .28s cubic-bezier(.25,1,.5,1), box-shadow .2s ease, filter .2s ease !important; }
.oracle-card:hover { filter: none !important; }

/* Desktop audio deck: first card is physically centered, remaining cards fan outward with a gap. */
@media (min-width: 769px) {
  .audio-cards-grid {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: var(--audio-card-height, 450px) !important;
    min-height: var(--audio-card-height, 450px) !important;
    margin: 0 auto !important;
    overflow: visible !important;
    padding: 0 !important;
  }
  .audio-cards-grid .audio-feature-card {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    width: var(--audio-card-width, 300px) !important;
    flex: none !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
    z-index: 10 !important;
  }
  .audio-cards-grid .audio-feature-card:nth-child(1) { left: 50% !important; }
  .audio-cards-grid .audio-feature-card:nth-child(2) { left: calc(50% - (var(--audio-card-width, 300px) + 18px)) !important; }
  .audio-cards-grid .audio-feature-card:nth-child(3) { left: calc(50% + (var(--audio-card-width, 300px) + 18px)) !important; }
  .audio-cards-grid .audio-feature-card:nth-child(4) { left: calc(50% - 2 * (var(--audio-card-width, 300px) + 18px)) !important; }
  .audio-cards-grid .audio-feature-card:nth-child(5) { left: calc(50% + 2 * (var(--audio-card-width, 300px) + 18px)) !important; }
  .audio-cards-grid .audio-feature-card:nth-child(6) { left: calc(50% - 3 * (var(--audio-card-width, 300px) + 18px)) !important; }
}

/* Mobile DOB: clean DD-MM-YYYY field with a separate native calendar picker. */
.lineage-dob-wrap { position: relative; display: flex; align-items: center; width: 100%; }
.lineage-dob-wrap #gateDob { width: 100%; padding-right: 52px !important; }
.lineage-dob-calendar { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 20px; z-index: 3; }
.lineage-dob-picker { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
@media (max-width: 768px) { .lineage-dob-wrap #gateDob { min-height: 48px; font-size: 16px !important; } .lineage-dob-calendar { width: 42px; height: 42px; } }

/* Wallpaper gallery: compact, one-card-at-a-time presentation. */
.wallpaper-section {
  overflow: hidden !important;
  min-height: auto !important;
  height: auto !important;
  padding: 56px 20px 44px !important;
}
.wallpaper-header {
  text-align: center !important;
  max-width: 1100px;
  margin: 0 auto 28px !important;
}
.wallpaper-subtitle { text-align:center !important; margin: 0 auto !important; }
.wallpaper-stage {
  position: relative;
  width: min(var(--wallpaper-width, 430px), 88vw);
  height: min(var(--wallpaper-height, 620px), 78vh);
  margin: 0 auto;
  overflow: hidden;
  touch-action: pan-y;
  outline: none;
}
.wallpaper-face-card,
.wallpaper-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 16px;
  background: #000;
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
  user-select: none;
  -webkit-user-select: none;
  cursor: pointer;
}
.wallpaper-face-card {
  z-index: 20;
  opacity: 1;
  transform: translateX(0) scale(1);
  transition: opacity .35s ease, transform .45s cubic-bezier(.22,.8,.25,1);
}
.wallpaper-face-card.is-hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateX(-105%) scale(.96);
}
.wallpaper-face-card img,
.wallpaper-slide img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
}
.wallpaper-face-hint {
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  padding:9px 15px;
  border-radius:999px;
  background:rgba(0,0,0,.68);
  color:#f4f0e8;
  font:600 12px/1.2 var(--sans,"Helvetica Neue",Helvetica,Arial,sans-serif);
  letter-spacing:.08em;
  text-transform:none;
  white-space:nowrap;
}
.wallpaper-slides { position:absolute; inset:0; }
.wallpaper-slide {
  z-index: 1;
  opacity: 0;
  pointer-events: none;
  transform: translateX(105%);
  transition: opacity .38s ease, transform .48s cubic-bezier(.22,.8,.25,1);
}
.wallpaper-slide.is-active {
  z-index: 10;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}
.wallpaper-slide.wallpaper-slide-in { animation: wallpaperSlideIn .48s cubic-bezier(.22,.8,.25,1) both; }
@keyframes wallpaperSlideIn {
  from { opacity:0; transform:translateX(calc(var(--wallpaper-direction, 1) * 105%)); }
  to { opacity:1; transform:translateX(0); }
}
.wallpaper-slide-actions {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  justify-content:center;
  padding:42px 18px 18px;
  background:linear-gradient(to top, rgba(0,0,0,.82), transparent);
  pointer-events:none;
}
.wallpaper-download-btn {
  pointer-events:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:12px 24px;
  border-radius:999px;
  background:#c69d52;
  color:#0b0b0b !important;
  font:600 14px/1.2 var(--sans,"Helvetica Neue",Helvetica,Arial,sans-serif);
  text-decoration:none !important;
  letter-spacing:.02em;
}
.wallpaper-download-btn:hover { transform:translateY(-1px); }
.wallpaper-counter {
  margin: 14px auto 0;
  text-align:center;
  font:600 12px/1.2 var(--sans,"Helvetica Neue",Helvetica,Arial,sans-serif);
  color:#c69d52;
  letter-spacing:.14em;
  text-transform:none;
}
.wallpaper-count { opacity:.65; margin-left:4px; }
.wallpaper-empty { text-align:center; opacity:.7; margin:20px auto 0; }
@media (max-width: 768px) {
  .wallpaper-section { padding: 44px 14px 30px !important; }
  .wallpaper-header { margin-bottom:20px !important; }
  .wallpaper-stage { width:min(var(--wallpaper-mobile-width, 330px), 88vw); height:min(var(--wallpaper-mobile-height, 510px), 72vh); }
  .wallpaper-face-card, .wallpaper-slide { border-radius:14px; }
}


/* Oracle result refinement: match the Lineage Story serif hierarchy and keep
   backend-entered text exactly as entered. No forced uppercase/casing. */
.lineage-result-card {
  max-width: 900px;
  padding: 46px 28px 40px;
}
.lineage-result-title {
  margin: 0 0 18px;
  font-family: "Sharpe", "Instrument Serif", Georgia, "Times New Roman", serif !important;
  font-weight: 400 !important;
  font-size: clamp(36px, 4.4vw, 62px) !important;
  line-height: 1.02 !important;
  letter-spacing: .01em;
  text-transform: none !important;
}
.lineage-result-subtitle,
.lineage-result-subsubtitle,
.lineage-result-description,
.lineage-result-loshufragments {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  text-transform: none !important;
}
.lineage-result-subtitle {
  max-width: 780px;
  margin: 0 auto 22px !important;
  font-weight: 600;
  line-height: 1.45 !important;
}
.lineage-result-subsubtitle {
  max-width: 720px;
  margin: 0 auto 24px !important;
  line-height: 1.55 !important;
}
.lineage-result-loshufragments {
  max-width: 760px;
  margin: 8px auto 26px;
  padding: 0;
}
.lineage-result-loshufragments p {
  margin: 0 0 16px;
  color: var(--lg-result-secondary, #fff);
  font-size: 17px;
  line-height: 1.7;
  font-weight: 300;
  text-transform: none !important;
}
.lineage-result-description {
  max-width: 760px !important;
  margin: 0 auto !important;
  font-weight: 300 !important;
  line-height: 1.75 !important;
  text-transform: none !important;
}
.reveal-img-wrapper {
  margin-bottom: 44px !important;
}
.lineage-result-badge {
  text-transform: none !important;
  letter-spacing: .08em;
}
@media (max-width: 768px) {
  .lineage-result-card { padding: 36px 18px 32px; }
  .reveal-img-wrapper { margin-bottom: 36px !important; }
  .lineage-result-title { font-size: clamp(34px, 10vw, 48px) !important; }
  .lineage-result-subtitle { font-size: 16px !important; }
  .lineage-result-loshufragments p { font-size: 16px; line-height: 1.65; }
  .lineage-result-description { font-size: 17px !important; line-height: 1.7 !important; }
}

/* Audio detected/revealed result: player only, never the Oracle flip card. */
.lineage-audio-result-widget {
  width: min(720px, 100%);
  margin: 24px auto 0;
  padding: 24px;
  text-align: center;
  box-sizing: border-box;
}
.lineage-audio-result-title {
  margin: 0 0 16px;
  font-family: var(--serif, "Sharpe", "Instrument Serif", Georgia, "Times New Roman", serif);
  font-size: clamp(24px, 3vw, 38px);
  font-weight: 400;
  line-height: 1.15;
  color: var(--gold, #c69d52);
}
.lineage-audio-result-iframe { display:block; width:100%; border:0; border-radius:12px; }
.lineage-audio-result-player { display:block; width:100%; margin:0 auto; height:48px; }
.lineage-audio-result-video { position:relative; width:100%; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:12px; }
.lineage-audio-result-video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
@media (max-width: 600px) {
  .lineage-audio-result-widget { padding: 18px 10px; }
  .lineage-audio-result-title { font-size: 26px; }
}

/* Guide Cards overrides based on audio layout */
.guide-cards-grid .guide-feature-card {
  width: var(--audio-card-width, 300px) !important;
  flex: 0 0 var(--audio-card-width, 300px) !important;
  height: var(--audio-card-height, 450px) !important;
  min-height: 0 !important;
}
.guide-cards-grid .guide-feature-card .white-card-img {
  flex: 0 0 68%;
  height: 68%;
  aspect-ratio: auto;
}
.guide-cards-grid .guide-feature-card .white-card-content {
  flex: 1 1 auto;
  min-height: 0;
}
@media (max-width: 768px) {
  .guide-cards-grid .guide-feature-card {
    width: min(var(--audio-mobile-card-width, 170px), calc(100vw - 32px)) !important;
    flex-basis: min(var(--audio-mobile-card-width, 170px), calc(100vw - 32px)) !important;
    height: min(var(--audio-mobile-card-height, 255px), calc((100vw - 32px) * 1.55)) !important;
    aspect-ratio: var(--audio-mobile-card-width, 170) / var(--audio-mobile-card-height, 255) !important;
  }
}

/* Make the guide grid centered if few items, but slidable if many */
@media (min-width: 769px) {
  .guide-cards-grid {
    justify-content: center;
  }
}


/* Access-state hardening: normal gifts remain clickable after No, thanks/signup. */
.guide-feature-card { position: relative; z-index: 1; pointer-events: auto !important; cursor: pointer; }
.guide-feature-card .white-card-btn { position: relative; z-index: 2; pointer-events: auto !important; cursor: pointer; }
.lineage-soft-banner { z-index: 2147483000; pointer-events: none; }
.lineage-soft-banner.is-visible { pointer-events: auto; }
.lineage-soft-banner button, .lineage-soft-banner input { pointer-events: auto; }

/* Reading Room slider + persistent signup attention */
.guide-slider-wrap {
  position: relative;
  width: min(100%, 1440px);
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 54px;
  box-sizing: border-box;
  overflow: visible;
}
.guide-slider-wrap .guide-cards-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 12px 4px 30px !important;
  gap: 30px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-padding-left: 4px;
  scroll-snap-type: x mandatory;
  box-sizing: border-box;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}
.guide-slider-wrap .guide-cards-grid::-webkit-scrollbar { display:none; height:0; }
.guide-slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  min-width: 52px;
  padding: 0;
  border: 1px solid rgba(198,157,82,.55);
  border-radius: 50%;
  background: rgba(0,0,0,.78);
  color: #f3ead7;
  font-size: 34px;
  font-family: Georgia, serif;
  line-height: 48px;
  text-align: center;
  cursor: pointer;
  z-index: 20;
  box-shadow: 0 4px 18px rgba(0,0,0,.35);
  transition: background .2s ease, border-color .2s ease, transform .2s ease, opacity .2s ease;
}
.guide-slider-arrow:hover {
  background: rgba(198,157,82,.16);
  border-color: rgba(198,157,82,.85);
}
.guide-slider-arrow:active { transform: translateY(-50%) scale(.96); }
.guide-slider-prev { left: 0; }
.guide-slider-next { right: 0; }
.guide-feature-card { user-select:none; scroll-snap-align:start; scroll-snap-stop:always; }
@keyframes lineageSoftAttention { 0%,100% { transform:translate3d(0,0,0); } 20% { transform:translate3d(-6px,0,0); } 40% { transform:translate3d(6px,0,0); } 60% { transform:translate3d(-4px,0,0); } 80% { transform:translate3d(4px,0,0); } }
.lineage-soft-banner.lg-attention-shake { animation:lineageSoftAttention .7s ease both; }
@media (max-width: 1500px) and (min-width: 769px) {
  .guide-slider-wrap { width:100%; max-width:none; padding-left:50px; padding-right:50px; }
  .guide-slider-prev { left:4px; }
  .guide-slider-next { right:4px; }
}
@media (max-width:768px) {
  .guide-slider-wrap { width:100%; padding:0 42px; }
  .guide-slider-wrap .guide-cards-grid { gap:16px !important; padding:10px 2px 24px !important; }
  .guide-slider-arrow { width:38px; height:38px; min-width:38px; font-size:27px; line-height:34px; }
  .guide-slider-prev { left:0; }
  .guide-slider-next { right:0; }
}
.guide-cards-grid { scroll-behavior:smooth; }
.guide-feature-card, .guide-feature-card * { cursor:pointer; }
.guide-feature-card .white-card-btn { pointer-events:auto !important; }


/* v1.5.22 Reading Room requested dimensions */
.guide-slider-wrap .guide-slider-arrow {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  min-height: 50px !important;
  flex: 0 0 50px !important;
  box-sizing: border-box !important;
}
.guide-cards-grid .guide-feature-card .white-card-img {
  width: 100% !important;
  height: 68% !important;
  min-height: 0 !important;
  flex: 0 0 68% !important;
  aspect-ratio: auto !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* ============================================================
   UNGATED INSTAGRAM REELS MODULE
   Mobile Responsive & iOS / Safari Optimized
   ============================================================ */
.lineage-reels-section {
  background-color: transparent;
  padding: 80px 20px 60px;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

.lineage-reels-header {
  text-align: center;
  max-width: 900px;
  margin: 0 auto 36px auto;
}

.lineage-reels-tag {
  display: inline-block;
  color: var(--gold, #c69d52);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 12px;
  border: 1px solid rgba(198, 157, 82, 0.35);
  padding: 5px 16px;
  border-radius: 999px;
  background: rgba(198, 157, 82, 0.06);
}

.lineage-reels-title {
  font-family: var(--serif, "Sharpe", "Instrument Serif", Georgia, serif);
  color: var(--ink, #ffffff);
  font-size: clamp(28px, 4vw, 44px);
  margin: 0 0 14px 0;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.15;
}

.lineage-reels-subtitle {
  color: var(--ink-mute, #a8a29e);
  font-size: clamp(14px, 1.8vw, 16px);
  line-height: 1.6;
}

.lineage-reels-container {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  box-sizing: border-box;
}

.lineage-reels-grid {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: stretch;
  gap: 24px;
  flex-wrap: wrap;
  width: 100%;
}

.lineage-reel-card {
  flex: 1 1 320px;
  max-width: 360px;
  min-width: 260px;
  background: #0d0e12;
  border-radius: 18px;
  border: 1px solid rgba(198, 157, 82, 0.22);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.04);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, box-shadow 0.3s ease;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  touch-action: pan-y;
}

.lineage-reel-card:hover {
  transform: translateY(-4px);
  border-color: rgba(198, 157, 82, 0.5);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.7), 0 0 24px rgba(198, 157, 82, 0.18);
}

.lineage-reel-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: rgba(255, 255, 255, 0.03);
  border-bottom: 1px solid rgba(198, 157, 82, 0.15);
  box-sizing: border-box;
}

.lineage-reel-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold, #c69d52);
  font-weight: 600;
}

.lineage-reel-ig-icon {
  display: inline-block;
  flex-shrink: 0;
  fill: #c69d52;
}

.lineage-reel-link {
  color: rgba(255, 255, 255, 0.75);
  text-decoration: none;
  font-size: 11px;
  letter-spacing: 0.05em;
  transition: color 0.2s ease, transform 0.2s ease;
  display: inline-flex;
  align-items: center;
}

.lineage-reel-link:hover {
  color: #c69d52;
  text-decoration: none;
  transform: translateX(2px);
}

.lineage-reel-embed-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 9 / 16;
  overflow: hidden !important;
  background: #000;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}

/* HTML5 9:16 Video Player: Pure video, Zero Instagram UI */
.lineage-reel-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  background: #000;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* No Instagram iframe is rendered. The frontend uses the resolved media URL in a native HTML5 player. */
.lineage-reel-resolution-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 24px;
  text-align: center;
  background: #000;
  color: #fff;
  box-sizing: border-box;
}
.lineage-reel-fallback-title {
  font-weight: 600;
  font-size: 15px;
}
.lineage-reel-resolution-fallback a {
  color: #fff;
  text-decoration: underline;
}

/* Single custom Reel play button. The video itself supplies the poster; no second overlay layer. */
.lineage-reel-play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 76px;
  height: 76px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 6;
  cursor: pointer;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease, visibility 0.2s ease;
}

.lineage-reel-play-btn.is-playing {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.lineage-reel-play-btn:hover {
  transform: translate(-50%, -50%) scale(1.08);
}

.lineage-reel-play-icon {
  width: 100%;
  height: 100%;
  fill: rgba(255, 255, 255, 0.88);
  filter: drop-shadow(0 4px 18px rgba(0, 0, 0, 0.45));
  transition: fill 0.2s ease, transform 0.2s ease;
}

.lineage-reel-play-btn:hover .lineage-reel-play-icon {
  fill: rgba(255, 255, 255, 1);
  filter: drop-shadow(0 6px 24px rgba(0, 0, 0, 0.6));
}

/* v1.5.29 — the native video control UI is intentionally disabled; only the
   single custom play button above is allowed to appear over the Reel. */
.lineage-reel-video::-webkit-media-controls,
.lineage-reel-video::-webkit-media-controls-panel,
.lineage-reel-video::-webkit-media-controls-overlay-play-button,
.lineage-reel-video::-webkit-media-controls-start-playback-button {
  display: none !important;
  -webkit-appearance: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

.lineage-reel-video {
  appearance: none;
  -webkit-appearance: none;
}

/* Empty / Placeholder card state */
.lineage-reel-empty-card {
  min-height: 380px;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 40px 24px;
}

.lineage-reel-empty-inner {
  max-width: 280px;
  margin: auto;
  color: rgba(255, 255, 255, 0.6);
}

.lineage-reel-placeholder-icon {
  color: rgba(198, 157, 82, 0.4);
  margin-bottom: 16px;
}

.lineage-reel-empty-inner h4 {
  color: #c69d52;
  font-family: var(--serif, "Sharpe", "Instrument Serif", Georgia, serif);
  font-size: 22px;
  margin: 0 0 10px;
}

.lineage-reel-empty-inner p {
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
}

/* Mobile & Tablet Side-by-Side Responsive Adjustments */
@media (max-width: 820px) {
  .lineage-reels-section {
    padding: 50px 14px 36px;
  }
  .lineage-reels-grid {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center;
    align-items: stretch;
    gap: 12px;
  }
  .lineage-reel-card {
    flex: 1 1 50%;
    min-width: 0;
    max-width: 50%;
    border-radius: 14px;
  }
  .lineage-reel-bar {
    padding: 8px 10px;
  }
  .lineage-reel-badge {
    font-size: 10px;
  }
  .lineage-reel-link {
    font-size: 10px;
  }
  .lineage-reel-play-btn {
    width: 60px;
    height: 60px;
  }
}

@media (max-width: 480px) {
  .lineage-reels-section {
    padding: 38px 8px 24px;
  }
  .lineage-reels-header {
    margin-bottom: 18px;
  }
  .lineage-reels-grid {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 8px;
    width: 100%;
  }
  .lineage-reel-card {
    flex: 1 1 50%;
    min-width: 0;
    max-width: 50%;
    border-radius: 12px;
  }
  .lineage-reel-bar {
    padding: 6px 8px;
  }
  .lineage-reel-badge {
    font-size: 9px;
    gap: 4px;
  }
  .lineage-reel-ig-icon {
    width: 11px;
    height: 11px;
  }
  .lineage-reel-link {
    font-size: 9px;
  }
  .lineage-reel-play-btn {
    width: 46px;
    height: 46px;
  }
}



/* ========================================================================
   v1.5.27 — Unified Playfair heading system
   All frontend headings use Playfair with responsive sizing, weight and
   title-case presentation. These rules intentionally sit at the end so
   they override older section-specific typography rules.
   ======================================================================== */
.lineage-gifts-frontend,
.lineage-gifts-frontend h1,
.lineage-gifts-frontend h2,
.lineage-gifts-frontend h3,
.lineage-gifts-frontend h4,
.lineage-gifts-frontend h5,
.lineage-gifts-frontend h6,
.lineage-gs h1,
.lineage-gs h2,
.lineage-gs h3,
.lineage-gs h4,
.lineage-gs h5,
.lineage-gs h6,
.oracle-section h1,
.oracle-section h2,
.oracle-section h3,
.oracle-section h4,
.oracle-section h5,
.oracle-section h6,
.light-section h1,
.light-section h2,
.light-section h3,
.light-section h4,
.light-section h5,
.light-section h6,
.lineage-reels-section h1,
.lineage-reels-section h2,
.lineage-reels-section h3,
.lineage-reels-section h4,
.lineage-reels-section h5,
.lineage-reels-section h6 {
  font-family: "Playfair", "Playfair Display", Georgia, serif !important;
  text-transform: capitalize !important;
  letter-spacing: normal !important;
}

/* Responsive hierarchy — both size and visual weight scale by viewport. */
.lineage-gs h1, .lineage-reels-section h1 { font-size: clamp(2rem, 4.2vw, 3.5rem) !important; font-weight: 700 !important; line-height: 1.08 !important; }
.lineage-gs h2, .lineage-reels-section h2, .oracle-section h2, .light-section h2 { font-size: clamp(1.65rem, 3.1vw, 2.65rem) !important; font-weight: 650 !important; line-height: 1.12 !important; }
.lineage-gs h3, .lineage-reels-section h3, .oracle-section h3, .light-section h3 { font-size: clamp(1.3rem, 2.35vw, 2rem) !important; font-weight: 600 !important; line-height: 1.15 !important; }
.lineage-gs h4, .lineage-reels-section h4, .oracle-section h4, .light-section h4 { font-size: clamp(1.05rem, 1.75vw, 1.5rem) !important; font-weight: 600 !important; line-height: 1.18 !important; }
.lineage-gs h5, .lineage-reels-section h5, .oracle-section h5, .light-section h5 { font-size: clamp(.95rem, 1.35vw, 1.2rem) !important; font-weight: 600 !important; line-height: 1.2 !important; }
.lineage-gs h6, .lineage-reels-section h6, .oracle-section h6, .light-section h6 { font-size: clamp(.85rem, 1.1vw, 1rem) !important; font-weight: 600 !important; line-height: 1.25 !important; }

/* Known plugin title classes that are not always semantic h1-h6 elements. */
.lineage-gs .lineage-gs__section-title,
.lineage-gs .lineage-gs__card-title,
.lineage-gs .lineage-gs__single-quiz-title,
.light-section .light-title,
.oracle-section .oracle-title,
.lineage-reels-title,
.lineage-title,
.white-card-title,
.white-card-img-title,
.card-bottom h4 {
  font-family: "Playfair", "Playfair Display", Georgia, serif !important;
  text-transform: capitalize !important;
}

.lineage-gs .lineage-gs__section-title,
.light-section .light-title,
.oracle-section .oracle-title,
.lineage-reels-title,
.lineage-title {
  font-size: clamp(1.65rem, 3.1vw, 2.65rem) !important;
  font-weight: 650 !important;
  line-height: 1.12 !important;
}

.lineage-gs .lineage-gs__card-title,
.white-card-title,
.white-card-img-title,
.card-bottom h4 {
  font-size: clamp(1rem, 1.6vw, 1.45rem) !important;
  font-weight: 600 !important;
  line-height: 1.18 !important;
}

@media (max-width: 600px) {
  .lineage-gs .lineage-gs__section-title,
  .light-section .light-title,
  .oracle-section .oracle-title,
  .lineage-reels-title,
  .lineage-title {
    font-weight: 600 !important;
  }
}
