:root {
    /* — Dark-glam palette (change these to re-theme everything) — */
    --bg:        #0d0a0c;
    --surface:   #17121a;
    --surface-2: #1e1822;
    --gold:      #e4c08d;
    --gold-deep: #b8965f;
    --rose:      #e79db2;

    --ink:   #f3ece2;
    --muted: #a1958c;
    --line:  #2a222c;

    --radius: 16px;
    --font-display: "Didot", "Bodoni MT", "Playfair Display", "Hoefler Text", Georgia, serif;
    --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  }

  * { box-sizing: border-box; }

  body {
    margin: 0;
    min-height: 100vh;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    display: flex;
    justify-content: center;
    background-image:
      radial-gradient(1200px 520px at 50% -10%, rgba(228,192,141,.16), transparent 60%),
      radial-gradient(800px 500px at 90% 110%, rgba(231,157,178,.08), transparent 60%);
    background-attachment: fixed;
  }

  .wrap {
    width: 100%;
    max-width: 440px;
    padding: 0 0 40px;
    display: flex;
    flex-direction: column;
  }
  .fill { width: 100%; height: 100%; object-fit: cover; display: block; }

  /* ── Main hero photo (full-width, top) ── */
  .hero {
    position: relative; width: 100%; height: 460px; overflow: hidden;
    /* placeholder look until you drop in your photo */
    background:
      radial-gradient(120% 80% at 60% 25%, #3a2f3b, transparent 60%),
      linear-gradient(165deg, #2a2130 0%, #100c13 100%);
  }
  .hero .fill { position: absolute; inset: 0; }
  .hero::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, transparent 55%, rgba(13,10,12,.6) 80%, var(--bg) 100%);
  }
  .hero-hint {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    color: rgba(243,236,226,.35); font-size: 13px; letter-spacing: .16em; text-transform: uppercase;
  }
  .live {
    position: absolute; top: 16px; left: 16px; z-index: 2;
    display: flex; align-items: center; gap: 7px;
    padding: 7px 13px 7px 11px; border-radius: 999px;
    background: rgba(13,10,12,.55); backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,.14);
    font-size: 12px; font-weight: 600; color: #fff; letter-spacing: .01em;
  }
  .live::before {
    content: ""; width: 8px; height: 8px; border-radius: 50%;
    background: #35d07f; box-shadow: 0 0 0 0 rgba(53,208,127,.6);
    animation: pulse 2s infinite;
  }
  @keyframes pulse {
    0% { box-shadow: 0 0 0 0 rgba(53,208,127,.55); }
    70% { box-shadow: 0 0 0 7px rgba(53,208,127,0); }
    100% { box-shadow: 0 0 0 0 rgba(53,208,127,0); }
  }

  /* ── Body (everything under the photo) ── */
  .body {
    padding: 20px 22px 0;
    display: flex; flex-direction: column; align-items: center; gap: 24px;
  }
  .head { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }

  .name {
    font-family: var(--font-display); font-weight: 500;
    font-size: 34px; line-height: 1.05; margin: 0; text-wrap: balance;
    background: linear-gradient(180deg, #fff 10%, var(--gold) 160%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
  .handle { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin: 0; }
  .bio { color: var(--muted); font-size: 14.5px; line-height: 1.55; max-width: 32ch; margin: 4px 0 0; }

  /* ── Social icon row (like the reference) ── */
  .socials { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
  .social {
    width: 54px; height: 54px; border-radius: 50%; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    background: var(--surface); border: 1px solid var(--line);
    color: var(--ink); text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .social:hover { transform: translateY(-3px); border-color: rgba(228,192,141,.55); box-shadow: 0 12px 26px -12px rgba(228,192,141,.6); }
  .social:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
  .social svg { width: 26px; height: 26px; }
  /* Instagram fills the whole badge with its gradient app-icon */
  .social.ig { border: none; }
  .social.ig svg { width: 100%; height: 100%; }
  /* Threads glyph forced to cream on the dark badge */
  .social.threads svg path { fill: var(--ink); }

  /* ── Featured photo card ── */
  .feature {
    position: relative; width: 100%; height: 232px;
    border-radius: 20px; overflow: hidden; display: block;
    text-decoration: none; color: var(--ink);
    border: 1px solid var(--line);
    /* placeholder look until you drop in a photo */
    background:
      radial-gradient(120% 90% at 70% 10%, #322833, transparent 60%),
      linear-gradient(160deg, #241c26 0%, #120d14 100%);
    transition: transform .2s ease, box-shadow .2s ease;
  }
  .feature:hover { transform: translateY(-2px); box-shadow: 0 22px 50px -22px rgba(228,192,141,.55); }
  .feature:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
  .feature .fill { position: absolute; inset: 0; }
  .feature::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 42%, rgba(8,6,9,.55) 70%, rgba(8,6,9,.92) 100%);
  }
  .feature-cap {
    position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 2;
    display: flex; flex-direction: column; gap: 4px;
  }
  .feature-cap strong { font-size: 19px; font-weight: 700; letter-spacing: .01em; }
  .feature-cap span { font-size: 12.5px; color: rgba(243,236,226,.72); letter-spacing: .02em; }

  /* ── Big CTA button ── */
  .cta {
    width: 100%; display: flex; align-items: center; gap: 14px;
    padding: 20px 22px; border-radius: 18px; text-decoration: none; color: var(--ink);
    background: linear-gradient(180deg, rgba(228,192,141,.10), var(--surface));
    border: 1px solid rgba(228,192,141,.28);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
  }
  .cta:hover { transform: translateY(-2px); border-color: var(--gold); box-shadow: 0 18px 40px -20px rgba(228,192,141,.7); }
  .cta:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
  .cta-txt { display: flex; flex-direction: column; gap: 3px; }
  .cta-txt strong { font-family: var(--font-body); font-size: 23px; font-weight: 700; letter-spacing: -.01em; line-height: 1.05; }
  .cta-txt small { color: var(--muted); font-size: 12.5px; letter-spacing: .02em; }
  .cta-arw { margin-left: auto; color: var(--gold); font-size: 20px; transition: transform .18s ease; }
  .cta:hover .cta-arw { transform: translateX(4px); }

  /* ── Support section (labelled buttons) ── */
  .group { width: 100%; display: flex; flex-direction: column; gap: 12px; }
  .eyebrow {
    display: flex; align-items: center; gap: 12px;
    font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
    color: var(--muted); margin: 6px 2px 0;
  }
  .eyebrow::before, .eyebrow::after {
    content: ""; flex: 1; height: 1px;
    background: linear-gradient(90deg, transparent, var(--line), transparent);
  }

  .link {
    display: flex; align-items: center; gap: 16px;
    padding: 15px 18px;
    background: linear-gradient(180deg, rgba(228,192,141,.06), var(--surface));
    border: 1px solid var(--line); border-radius: var(--radius);
    color: var(--ink); text-decoration: none; font-size: 15.5px; font-weight: 500;
    transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
  }
  .link:hover {
    background: var(--surface-2); border-color: rgba(228,192,141,.55);
    transform: translateY(-2px); box-shadow: 0 14px 34px -18px rgba(228,192,141,.65);
  }
  .link:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
  .link .ico {
    width: 38px; height: 38px; flex: 0 0 38px; overflow: hidden;
    display: flex; align-items: center; justify-content: center; border-radius: 11px;
    background: radial-gradient(120% 120% at 30% 20%, #241c26, #120d14);
    color: var(--rose); border: 1px solid var(--line);
  }
  .link .ico svg { width: 20px; height: 20px; }
  .link .txt { display: flex; flex-direction: column; gap: 2px; line-height: 1.2; }
  .link .txt small { color: var(--muted); font-weight: 400; font-size: 12.5px; }
  .link .arw { margin-left: auto; color: var(--muted); transition: transform .18s ease, color .18s ease; }
  .link:hover .arw { transform: translateX(3px); color: var(--gold); }

  footer { margin-top: 8px; text-align: center; color: var(--muted); font-size: 11.5px; letter-spacing: .04em; line-height: 1.6; }
  footer .dot { color: var(--gold-deep); }

  @keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  .body > * { animation: rise .55s cubic-bezier(.2,.7,.2,1) both; }
  .body > *:nth-child(2) { animation-delay: .06s; }
  .body > *:nth-child(3) { animation-delay: .12s; }
  .body > *:nth-child(4) { animation-delay: .18s; }
  .body > *:nth-child(5) { animation-delay: .24s; }
  @media (prefers-reduced-motion: reduce) { .body > * { animation: none; } }
  .social.fanvue { border: none; background: #4fe07a; }
  .link .ico.fv { padding: 0; background: #0f0b12; }
  .cta-logo { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 11px; overflow: hidden; }
  .feature-badge { position: absolute; top: 14px; right: 14px; z-index: 3; width: 36px; height: 36px; border-radius: 9px; overflow: hidden; box-shadow: 0 6px 16px rgba(0,0,0,.45); }
  .ppv { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; }
  .ppv-box { position: relative; aspect-ratio: 3/4; border-radius: 16px; overflow: hidden; display: block; text-decoration: none; border: 1px solid var(--line); background: linear-gradient(160deg,#241c26,#120d14); transition: transform .18s ease, box-shadow .18s ease; }
  .ppv-box:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -18px rgba(228,192,141,.6); }
  .ppv-box::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(8,6,9,.88) 100%); }
  .ppv-title { position: absolute; left: 13px; bottom: 12px; z-index: 2; font-weight: 600; font-size: 15px; color: #fff; }
  .ppv-lock { position: absolute; top: 10px; right: 10px; z-index: 2; width: 27px; height: 27px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; background: rgba(13,10,12,.5); backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,.16); }
  .ppv-hint { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(243,236,226,.32); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; z-index: 1; }
/* ── OnlyFans logo: azul sobre blanco, centrado con aire (solo visual) ── */
.social.fanvue { background: #ffffff; border: none; }
.social.fanvue img.fill { object-fit: contain; padding: 12px; }
.link .ico.fv { background: #ffffff; padding: 0; border-color: rgba(0,0,0,.08); }
.link .ico.fv img.fill { object-fit: contain; padding: 7px; }
.cta-logo { background: #ffffff; }
.cta-logo img.fill { object-fit: contain; padding: 8px; }
.feature-badge { background: #ffffff; }
.feature-badge img.fill { object-fit: contain; padding: 6px; }