/* =============================================================
   LavenderStar — partner page theme (views/creators/lavenderstar.php)

   "A cozy blanket fort full of starlight", in her words. Light and soft:
     lavender   #948BEA · #A195DD (her site) · lilac #D4CCEC · mist #F6F2FE
     indigo ink #3A3470 (from her night sky #403E81)
     starlight  #ECDB9A · cream #FCEDBB
     pink       #ECA8FE · blush #F9DBFE      sky #ACCBE6 · #D9E8F6
   Fonts (self-hosted, SIL Open Font License) — the ones her own site uses:
     Delius Unicase for headings, Delius for her own words.
   Motion is gentle: twinkling stars, a shooting star, a slow drifting
   banner, bobbing emote stickers. All of it stops for reduced motion.
   ============================================================= */

@font-face { font-family: 'Delius Unicase'; src: url('/assets/fonts/delius-unicase-400-latin.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Delius Unicase'; src: url('/assets/fonts/delius-unicase-700-latin.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Delius'; src: url('/assets/fonts/delius-400-latin.woff2') format('woff2'); font-weight: 400; font-display: swap; }

body.cp-theme-lavenderstar { background: #F6F2FE; }

.lv {
  --l-mist: #F6F2FE; --l-mist2: #EEE8FC; --l-card: #FFFFFF;
  --l-ink: #3A3470; --l-ink2: #5E588F; --l-muted: #8B85B5;
  --l-lav: #948BEA; --l-lav-deep: #7A70D8; --l-site: #A195DD; --l-lilac: #D4CCEC; --l-line: #E4DDF7;
  --l-gold: #ECDB9A; --l-cream: #FCEDBB;
  --l-pink: #ECA8FE; --l-blush: #F9DBFE;
  --l-sky: #ACCBE6; --l-sky2: #D9E8F6;
  --l-display: 'Delius Unicase', 'Nunito', system-ui, sans-serif;
  --l-voice: 'Delius', 'Nunito', system-ui, sans-serif;
  --l-ease: cubic-bezier(.22, 1, .36, 1);
  --l-shadow: 0 22px 46px -28px rgba(122, 112, 216, .55);
  /* creator.css tokens, pointed at her palette for the shared join block */
  --pink: var(--l-pink); --purple: var(--l-lav-deep); --ink: var(--l-ink); --ink2: var(--l-ink2); --ink3: var(--l-muted);
  padding-top: 100px;
  color: var(--l-ink);
  font-family: 'Nunito', system-ui, sans-serif;
  background:
    radial-gradient(900px 520px at 90% 4%, rgba(236, 168, 254, .30), transparent 62%),
    radial-gradient(900px 560px at 4% 30%, rgba(172, 203, 230, .38), transparent 62%),
    radial-gradient(800px 520px at 60% 70%, rgba(252, 237, 187, .40), transparent 62%),
    radial-gradient(900px 620px at 10% 100%, rgba(148, 139, 234, .22), transparent 62%),
    var(--l-mist);
}
.lv ::selection { background: var(--l-lav); color: #fff; }

/* ---------------- shared bits ---------------- */
.lv-kick { font-family: var(--l-voice); font-size: 18px; color: var(--l-lav-deep); }
.lv-title { margin-top: 4px; font-family: var(--l-display); font-weight: 700; font-size: clamp(32px, 4.2vw, 50px); line-height: 1.05; color: var(--l-ink); text-transform: none; letter-spacing: 0; }
.lv-title span { background: linear-gradient(120deg, var(--l-lav-deep), #C07BE8 55%, #E08BC9); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lv-card { position: relative; border-radius: 28px; background: var(--l-card); border: 2px solid #fff; box-shadow: var(--l-shadow), inset 0 0 0 1px var(--l-line); }
.lv-sec { padding-top: 80px; }
.lv-sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px 24px; flex-wrap: wrap; margin-bottom: 30px; }
.lv-sec-links { display: flex; gap: 10px; flex-wrap: wrap; }
.lv-link { padding: 9px 18px; border-radius: 40px; background: #fff; border: 2px solid var(--l-line); font-family: var(--l-display); font-size: 15px; color: var(--l-lav-deep) !important; white-space: nowrap; transition: background-color .25s, color .25s, border-color .25s, transform .25s var(--l-ease); }
.lv-link:hover { background: var(--l-lav); border-color: var(--l-lav); color: #fff !important; transform: translateY(-2px); }
.lv-note { font-family: var(--l-voice); font-size: 16px; color: var(--l-ink2); }
.lv-empty { padding: 28px; border-radius: 22px; border: 2px dashed var(--l-lilac); text-align: center; color: var(--l-ink2); background: rgba(255, 255, 255, .6); }

.lv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.lv-btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; border-radius: 40px; border: 0; background: linear-gradient(135deg, var(--l-lav) 0%, #B895F0 55%, var(--l-pink) 100%); color: #fff !important; font-family: var(--l-display); font-weight: 700; font-size: 15px; white-space: nowrap; box-shadow: 0 12px 26px -12px rgba(122, 112, 216, .75), inset 0 1px 0 rgba(255, 255, 255, .45); transition: transform .25s var(--l-ease), box-shadow .25s var(--l-ease), filter .25s; }
.lv-btn:hover { transform: translateY(-3px); box-shadow: 0 18px 32px -12px rgba(122, 112, 216, .85), inset 0 1px 0 rgba(255, 255, 255, .45); filter: saturate(1.1); }
.lv-btn:active { transform: translateY(0); }
.lv-btn svg { width: 17px; height: 17px; fill: currentColor; }
.lv-btn--soft { background: #fff; color: var(--l-lav-deep) !important; box-shadow: 0 10px 22px -14px rgba(122, 112, 216, .6), inset 0 0 0 2px var(--l-lilac); }
.lv-btn--soft:hover { box-shadow: 0 16px 28px -14px rgba(122, 112, 216, .7), inset 0 0 0 2px var(--l-lav); }
.lv-btn--white { background: #fff; color: var(--l-lav-deep) !important; }
.lv-btn--glass { background: rgba(255, 255, 255, .22); color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .6); }
.lv-btn--glass:hover { background: rgba(255, 255, 255, .34); }
.lv-btn:focus-visible, .lv-link:focus-visible, .lv-soc:focus-visible, .lv-share button:focus-visible, .lv-thumb:focus-visible { outline: 3px solid var(--l-gold); outline-offset: 3px; }
.lv-share { display: flex; gap: 8px; }
.lv-share button { width: 46px; height: 46px; border-radius: 50%; border: 0; background: #fff; color: var(--l-lav-deep); font-size: 17px; cursor: pointer; box-shadow: inset 0 0 0 2px var(--l-line); transition: transform .25s var(--l-ease), background-color .25s, color .25s; }
.lv-share button:hover { background: var(--l-lav); color: #fff; transform: translateY(-2px) rotate(-8deg); }

/* Scroll reveals (creator-media.js). */
.cp-js .lv [data-reveal]:not(.is-in) { opacity: 0; transform: translateY(26px); }
.lv [data-reveal] { transition: opacity .9s var(--l-ease), transform .9s var(--l-ease); }

/* Emote stickers: a white die-cut edge, bobbing gently, a wiggle on hover. */
.lv-sticker { position: absolute; z-index: 3; height: auto; filter: drop-shadow(0 0 0 #fff) drop-shadow(0 10px 16px rgba(58, 52, 112, .28)); animation: lv-bob 5s var(--l-ease) infinite; transition: transform .3s var(--l-ease); }
.lv-sticker:hover { animation: lv-wiggle .7s var(--l-ease); }
@keyframes lv-bob { 0%, 100% { translate: 0 0; rotate: -6deg; } 50% { translate: 0 -10px; rotate: 3deg; } }
@keyframes lv-wiggle { 0%, 100% { rotate: 0; } 25% { rotate: -12deg; scale: 1.08; } 60% { rotate: 9deg; scale: 1.08; } }

/* ---------------- hero ---------------- */
.lv-hero { padding-top: 22px; }
.lv-banner { position: relative; isolation: isolate; overflow: hidden; min-height: 460px; aspect-ratio: 16 / 7.2; border-radius: 34px; border: 4px solid #fff; background: linear-gradient(135deg, var(--l-sky2), var(--l-blush)); box-shadow: 0 34px 70px -40px rgba(122, 112, 216, .85); }
.lv-banner-img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; transform-origin: 70% 60%; animation: lv-drift 26s ease-in-out infinite alternate; }
@keyframes lv-drift { from { transform: scale(1.02) translate(0, 0); } to { transform: scale(1.1) translate(-1.5%, -1%); } }
.lv-banner-glow { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(246, 242, 254, .86) 0%, rgba(246, 242, 254, .55) 34%, rgba(246, 242, 254, 0) 62%), linear-gradient(0deg, rgba(58, 52, 112, .18), transparent 40%); }
/* Twinkling stars and a shooting star. */
.lv-sky { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.lv-sky i { position: absolute; left: var(--x); top: var(--y); font-style: normal; font-size: var(--s); line-height: 1; color: #fff; text-shadow: 0 0 10px rgba(252, 237, 187, .95), 0 0 22px rgba(236, 219, 154, .7); animation: lv-twinkle 3.4s ease-in-out var(--d) infinite; }
@keyframes lv-twinkle { 0%, 100% { opacity: .15; transform: scale(.6) rotate(0deg); } 50% { opacity: 1; transform: scale(1.1) rotate(20deg); } }
.lv-shoot { position: absolute; top: 12%; left: 62%; width: 150px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, rgba(255, 255, 255, 0), #fff 70%, var(--l-cream)); box-shadow: 0 0 12px #fff; opacity: 0; transform: rotate(-24deg); animation: lv-shoot 9s ease-in 2s infinite; }
@keyframes lv-shoot { 0%, 88% { opacity: 0; translate: 0 0; } 90% { opacity: 1; } 100% { opacity: 0; translate: -340px 150px; } }

.lv-banner-copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; height: 100%; min-height: inherit; max-width: 52%; padding: 34px 40px; }
.lv-kicker { font-family: var(--l-voice); font-size: 20px; color: var(--l-lav-deep); }
.lv-logo { margin: 6px 0 0; line-height: 0; font-family: var(--l-display); font-size: 58px; }
.lv-logo img { width: min(460px, 100%); height: auto; filter: drop-shadow(0 14px 22px rgba(58, 52, 112, .28)); animation: lv-float 6s var(--l-ease) infinite; }
@keyframes lv-float { 0%, 100% { transform: translateY(0) rotate(-1.5deg); } 50% { transform: translateY(-9px) rotate(1deg); } }
.lv-tagline { display: inline-block; align-self: flex-start; margin-top: 12px; padding: 8px 16px; border-radius: 40px; background: rgba(255, 255, 255, .78); font-family: var(--l-display); font-weight: 700; font-size: clamp(15px, 1.6vw, 18px); color: var(--l-ink); box-shadow: 0 8px 18px -12px rgba(122, 112, 216, .7); }
/* Her waving emote, under the tags. */
.lv-wave { display: block; width: 116px; height: auto; margin-top: 16px; filter: drop-shadow(0 10px 16px rgba(58, 52, 112, .28)); animation: lv-bob 5s var(--l-ease) infinite; }
.lv-wave:hover { animation: lv-wiggle .7s var(--l-ease); }

.lv-intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: 26px 36px; align-items: start; margin-top: 26px; }
.lv-lede { font-family: var(--l-voice); font-size: clamp(19px, 2vw, 23px); line-height: 1.55; color: var(--l-ink); max-width: 36ch; }
.lv-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.lv-tag { padding: 7px 14px; border-radius: 40px; background: #fff; font-family: var(--l-display); font-size: 13.5px; color: var(--l-ink2); box-shadow: inset 0 0 0 2px var(--l-line); }
.lv-tag:nth-child(3n+1) { background: var(--l-blush); box-shadow: none; color: #8C4EA6; }
.lv-tag:nth-child(3n+2) { background: var(--l-sky2); box-shadow: none; color: #3F6C94; }
.lv-tag:nth-child(3n) { background: #FBF3D4; box-shadow: none; color: #8A6D1F; }
.lv-intro-side { display: grid; gap: 18px; justify-items: start; }
.lv-stats { display: flex; flex-wrap: wrap; gap: 10px; }
.lv-stat { min-width: 118px; padding: 12px 16px; border-radius: 20px; background: #fff; box-shadow: var(--l-shadow), inset 0 0 0 1px var(--l-line); }
.lv-stat b { display: block; font-family: var(--l-display); font-weight: 700; font-size: 26px; line-height: 1; color: var(--l-lav-deep); }
.lv-stat span { display: block; margin-top: 6px; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--l-muted); }
.lv-stat.gold b { color: #B8962A; }
.lv-stat.sky b { color: #4C82B4; }

/* Soft marquee band. */
.lv-band { position: relative; margin-top: 44px; overflow: hidden; background: linear-gradient(90deg, var(--l-lav), #B895F0, var(--l-pink), #B895F0, var(--l-lav)); box-shadow: 0 16px 36px -22px rgba(122, 112, 216, .8); }
.lv-band-track { display: flex; width: max-content; animation: lv-marquee 34s linear infinite; }
.lv-band span { padding: 12px 14px; font-family: var(--l-display); font-weight: 700; font-size: 18px; letter-spacing: .02em; color: #fff; white-space: nowrap; }
.lv-band span.star { padding: 12px 4px; color: var(--l-cream); text-shadow: 0 0 10px rgba(252, 237, 187, .9); }
@keyframes lv-marquee { to { transform: translateX(-50%); } }

/* ---------------- about ---------------- */
.lv-about { display: grid; grid-template-columns: .8fr 1.25fr .95fr; gap: 26px; align-items: start; }
.lv-polaroid { position: relative; margin: 10px 0 0; padding: 14px 14px 18px; border-radius: 10px; background: #fff; box-shadow: 0 26px 50px -30px rgba(58, 52, 112, .6); transform: rotate(-3deg); transition: transform .6s var(--l-ease); }
.lv-polaroid:hover { transform: rotate(0deg) scale(1.02); }
.lv-polaroid img:not(.lv-sticker) { display: block; width: 100%; height: auto; aspect-ratio: 800 / 1000; object-fit: cover; object-position: 50% 20%; border-radius: 4px; }
.lv-polaroid figcaption { position: relative; z-index: 4; margin-top: 12px; text-align: center; font-family: var(--l-voice); font-size: 15.5px; line-height: 1.35; white-space: nowrap; color: var(--l-ink2); }
.lv-tape { position: absolute; z-index: 2; top: -12px; left: 50%; width: 110px; height: 30px; margin-left: -55px; background: rgba(212, 204, 236, .78); transform: rotate(4deg); box-shadow: 0 2px 6px rgba(58, 52, 112, .12); }
/* Clear of the caption. It used to sit across the first half of the words —
   "Lavender & her" was behind her own emote — so it moves out past the
   frame's left edge and drops below the line the caption sits on. */
.lv-sticker--hug { left: -62px; bottom: -108px; width: 108px; }
.lv-about-copy { padding: 34px 32px; }
.lv-about-copy .lv-title { margin-bottom: 18px; }
.lv-about-copy p:not(.lv-kick) { font-size: 16.5px; line-height: 1.8; color: var(--l-ink2); }
.lv-about-copy p.lv-first { font-family: var(--l-voice); font-size: 19px; line-height: 1.6; color: var(--l-ink); }
.lv-about-copy p + p { margin-top: 12px; }
.lv-socials { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 26px; }
.lv-soc { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 18px; background: var(--l-mist); font-family: var(--l-display); font-size: 14px; color: var(--l-ink) !important; transition: transform .25s var(--l-ease), background-color .25s, box-shadow .25s; }
.lv-soc:hover { transform: translateY(-3px); background: #fff; box-shadow: 0 12px 22px -14px rgba(122, 112, 216, .7), inset 0 0 0 2px var(--l-lilac); }
.lv-soc .i { width: 30px; height: 30px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--l-lav-deep); font-size: 14px; box-shadow: inset 0 0 0 1.5px var(--l-line); }
.lv-soc .i svg { width: 15px; height: 15px; fill: currentColor; }
.lv-soc.twitch .i { color: #8A5CF0; }
.lv-soc.youtube .i { color: #E4507A; }
.lv-soc.tiktok .i { color: #2B8FA3; }
.lv-soc.instagram .i { color: #C2479A; }
.lv-soc.discord .i { color: #5865F2; }
.lv-soc.link .i { color: #B8962A; }

.lv-side { display: grid; gap: 22px; }
.lv-facts { margin: 0; padding: 18px 22px; }
.lv-fact { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1.5px dashed var(--l-line); }
.lv-fact:last-child { border-bottom: 0; }
.lv-fact dt { font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--l-muted); }
.lv-fact dd { margin: 0; font-family: var(--l-voice); font-size: 15.5px; color: var(--l-ink); text-align: right; }
.lv-story { padding: 22px 24px; }
.lv-story h3 { font-family: var(--l-display); font-weight: 700; font-size: 20px; color: var(--l-ink); text-transform: none; margin-bottom: 14px; }
/* A dotted path with a star at each stop; the stars pop in one after another. */
.lv-timeline { position: relative; margin: 0; padding: 0 0 0 28px; list-style: none; }
.lv-timeline::before { content: ''; position: absolute; left: 9px; top: 8px; bottom: 8px; width: 2px; background: repeating-linear-gradient(180deg, var(--l-lilac) 0 6px, transparent 6px 11px); }
.lv-timeline li { position: relative; padding: 4px 0 14px; }
.lv-timeline li:last-child { padding-bottom: 0; }
.lv-timeline li::before { content: '✦'; position: absolute; left: -28px; top: 2px; width: 20px; text-align: center; font-size: 17px; line-height: 1.3; color: var(--l-gold); text-shadow: 0 0 10px rgba(236, 219, 154, .9); transform: scale(0); transition: transform .6s var(--l-ease) calc(.25s + var(--i) * .18s); }
.is-in .lv-timeline li::before { transform: scale(1); }
.lv-when { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--l-lav-deep); }
.lv-what { display: block; font-family: var(--l-voice); font-size: 15.5px; color: var(--l-ink); }

/* ---------------- videos ---------------- */
.lv-videos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.lv-media { display: flex; flex-direction: column; overflow: hidden; border-radius: 24px; background: #fff; box-shadow: var(--l-shadow), inset 0 0 0 1px var(--l-line); transition: transform .35s var(--l-ease), box-shadow .35s var(--l-ease); }
.lv-media:hover { transform: translateY(-6px) rotate(-.4deg); box-shadow: 0 30px 50px -28px rgba(122, 112, 216, .75), inset 0 0 0 2px var(--l-lilac); }
.lv-player { position: relative; aspect-ratio: 16 / 9; background: var(--l-mist2); }
.lv-media--tall .lv-player { aspect-ratio: 9 / 16; }
.lv-thumb { position: absolute; inset: 0; display: block; overflow: hidden; }
.lv-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--l-ease); }
.lv-media:hover .lv-thumb img { transform: scale(1.05); }
.lv-thumb::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(58, 52, 112, .38)); }
.lv-play { position: absolute; z-index: 1; left: 50%; top: 50%; width: 58px; height: 58px; margin: -29px 0 0 -29px; display: grid; place-items: center; padding-left: 3px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--l-lav-deep); font-size: 19px; box-shadow: 0 0 0 6px rgba(255, 255, 255, .35), 0 12px 26px -10px rgba(58, 52, 112, .6); transition: transform .3s var(--l-ease), background-color .3s, color .3s; }
.lv-media:hover .lv-play { transform: scale(1.12); background: var(--l-lav); color: #fff; }
.lv-len { position: absolute; z-index: 1; right: 10px; bottom: 10px; padding: 3px 9px; border-radius: 20px; background: rgba(255, 255, 255, .92); font-size: 12px; font-weight: 800; color: var(--l-ink); }
.lv-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lv-thumb-fallback { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(135deg, var(--l-sky2), var(--l-blush)); }
.lv-thumb-fallback img { width: 42%; height: auto; object-fit: contain; }
.lv-media-meta { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; }
.lv-chip { align-self: flex-start; padding: 3px 11px; border-radius: 40px; font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; background: var(--l-mist2); color: var(--l-lav-deep); }
.lv-chip.yt { background: #FFE3EC; color: #B83A62; }
.lv-chip.clip { background: #EDE6FF; color: #6E4FD0; }
.lv-chip.short { background: var(--l-sky2); color: #3F6C94; }
.lv-media-title { font-family: var(--l-display); font-size: 16px; line-height: 1.35; color: var(--l-ink); text-transform: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lv-media-sub { font-size: 13px; font-weight: 700; color: var(--l-muted); }
.lv-sub { display: flex; align-items: center; gap: 10px; margin: 50px 0 18px; font-family: var(--l-display); font-weight: 700; font-size: 26px; color: var(--l-ink); text-transform: none; }
.lv-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(270px, 1fr); gap: 20px; overflow-x: auto; margin: 0 -10px; padding: 6px 10px 26px; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--l-lilac) transparent; }
.lv-row > * { scroll-snap-align: start; }
.lv-row--tall { grid-auto-columns: 220px; }

/* ---------------- shop: light frosted version of the glass cards ---------------- */
.lv .gal-glass::before { background: radial-gradient(38% 30% at 18% 22%, rgba(236, 168, 254, .35), transparent 70%), radial-gradient(34% 28% at 82% 48%, rgba(172, 203, 230, .4), transparent 70%), radial-gradient(40% 30% at 42% 88%, rgba(252, 237, 187, .45), transparent 70%); }
.lv .gl-card { background: linear-gradient(160deg, rgba(255, 255, 255, .82), rgba(255, 255, 255, .6)); border-color: rgba(148, 139, 234, .28); box-shadow: inset 0 1px 0 #fff, 0 24px 48px -30px rgba(94, 88, 143, .55); }
.lv .gl-card::before { background: linear-gradient(140deg, var(--l-lav), var(--l-gold) 40%, var(--l-pink) 75%, var(--l-sky)); }
.lv .gl-card:hover { box-shadow: inset 0 1px 0 #fff, 0 34px 60px -30px rgba(94, 88, 143, .7), 0 0 44px -18px rgba(148, 139, 234, .55); }
.lv .gal-glass .gl-media { background: #fff; }
.lv .gl-body { background: linear-gradient(180deg, rgba(255, 255, 255, .72), rgba(255, 255, 255, .9)); border-color: rgba(148, 139, 234, .25); box-shadow: inset 0 1px 0 #fff, 0 14px 28px -18px rgba(94, 88, 143, .55); }
.lv .gl-name { font-family: var(--l-display); font-weight: 700; font-size: 1.1rem; letter-spacing: 0; }
.lv .gl-name a, .lv .gl-price { color: var(--l-ink); }
.lv .gl-price { font-family: var(--l-display); font-weight: 700; }
.lv .gl-price s { color: var(--l-muted); }
.lv .gal-glass .gl-by { color: var(--l-lav-deep); }
.lv .gal-glass .gl-buy { background: linear-gradient(135deg, var(--l-lav), #B895F0 55%, var(--l-pink)); color: #fff; font-family: var(--l-display); letter-spacing: .04em; }
.lv .gal-glass .gl-buy:hover { background: linear-gradient(135deg, var(--l-gold), #F5C977); color: var(--l-ink); box-shadow: 0 8px 22px -8px rgba(236, 219, 154, .9); }
.lv .gl-chip { color: var(--l-ink); background: rgba(255, 255, 255, .8); border-color: rgba(148, 139, 234, .35); }
.lv .gl-chip i { background: var(--l-lav); color: #fff; }

/* ---------------- Starlings ---------------- */
.lv-starlings { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: stretch; }
.lv-community { position: relative; overflow: hidden; padding: 40px 36px 30px; border-radius: 34px; background: linear-gradient(140deg, #8C82E6 0%, #B28EEB 45%, #E3A6F2 80%, #F1C3E8 100%); color: #fff; box-shadow: 0 30px 60px -34px rgba(122, 112, 216, .9); }
.lv-community::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .5) 1px, transparent 1.6px); background-size: 22px 22px; -webkit-mask-image: linear-gradient(160deg, #000, transparent 70%); mask-image: linear-gradient(160deg, #000, transparent 70%); pointer-events: none; }
.lv-community .lv-kick { color: #FFF4CF; }
.lv-community h2 { position: relative; margin: 6px 0 12px; max-width: 13ch; font-family: var(--l-display); font-weight: 700; font-size: clamp(32px, 3.8vw, 46px); line-height: 1.05; color: #fff; text-transform: none; }
.lv-community p { position: relative; max-width: 42ch; font-size: 16px; font-weight: 700; line-height: 1.7; color: rgba(255, 255, 255, .95); }
.lv-community .lv-actions { position: relative; margin-top: 22px; }
.lv-moon { position: absolute; right: -40px; top: -26px; width: 42%; max-width: 250px; height: auto; opacity: .95; filter: drop-shadow(0 16px 24px rgba(58, 52, 112, .35)); animation: lv-bob 6.5s var(--l-ease) infinite; }
.lv-emotes { position: relative; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 24px; }
.lv-emotes img { width: 64px; height: 64px; filter: drop-shadow(0 6px 10px rgba(58, 52, 112, .3)); animation: lv-bob 4.6s var(--l-ease) calc(var(--i) * .35s) infinite; transition: transform .3s var(--l-ease); }
.lv-emotes img:hover { animation: lv-wiggle .7s var(--l-ease); }
.lv-biz { margin-top: 18px; font-size: 14px !important; }
/* Her full cutout, floating at the foot of the card. */
.lv-cutout { position: relative; display: block; width: min(320px, 72%); height: auto; margin: 22px auto -30px; transform-origin: 50% 100%; filter: drop-shadow(0 18px 28px rgba(58, 52, 112, .4)); animation: lv-sway 7s ease-in-out infinite; }
@keyframes lv-sway { 0%, 100% { transform: translateY(0) rotate(-1.2deg); } 50% { transform: translateY(-10px) rotate(1.2deg); } }
.lv-biz a { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }

.lv-credits { padding: 30px 30px 24px; }
.lv-credits h3 { font-family: var(--l-display); font-weight: 700; font-size: 26px; color: var(--l-ink); text-transform: none; }
.lv-credits .lead { margin: 6px 0 16px; font-family: var(--l-voice); font-size: 15px; color: var(--l-ink2); }
.lv-credit-group { padding: 12px 0; border-top: 1.5px dashed var(--l-line); }
.lv-credit-role { display: block; margin-bottom: 8px; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--l-muted); }
.lv-credit-names { display: flex; flex-wrap: wrap; gap: 6px; }
.lv-credit-names a, .lv-credit-names span { padding: 5px 12px; border-radius: 40px; background: var(--l-mist); font-family: var(--l-display); font-size: 13.5px; color: var(--l-lav-deep) !important; transition: background-color .25s, color .25s, transform .25s var(--l-ease); }
.lv-credit-names a:hover { background: var(--l-lav); color: #fff !important; transform: translateY(-2px); }

/* ---------------- join DRXP (shared markup, her colours) ---------------- */
.lv .cp-join { margin-top: 80px; }
.lv .cp-join-card { background: linear-gradient(135deg, #7A70D8, #A98BEA 55%, #D69BE8); box-shadow: 0 30px 60px -30px rgba(122, 112, 216, .8); }
.lv .cp-join-card::before { content: '✦'; color: rgba(255, 244, 207, .22); }
.lv .cp-join-card h2 { font-family: var(--l-display); font-weight: 700; }
.lv .cp-kick { font-family: var(--l-voice); font-size: 18px; letter-spacing: 0; text-transform: none; }
.lv .cp-btn { font-family: var(--l-display); }
.lv .cp-num b { font-family: var(--l-display); }

/* ---------------- header: soft lavender glass ---------------- */
body.cp-theme-lavenderstar .cpnav { font-family: 'Delius Unicase', 'Nunito', system-ui, sans-serif; }
body.cp-theme-lavenderstar .cpnav-in { background: rgba(246, 242, 254, .62); border-color: rgba(255, 255, 255, .85); box-shadow: 0 14px 34px -20px rgba(122, 112, 216, .6), inset 0 1px 0 rgba(255, 255, 255, .9); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { body.cp-theme-lavenderstar .cpnav-in { background: rgba(246, 242, 254, .95); } }
.perf-lite body.cp-theme-lavenderstar .cpnav-in { background: rgba(246, 242, 254, .96); }
body.cp-theme-lavenderstar .cpnav-who { color: #3A3470; font-weight: 700; border-left-color: rgba(212, 204, 236, .9); }
body.cp-theme-lavenderstar .cpnav-av { border-color: #fff; box-shadow: 0 4px 12px -6px #948BEA; }
body.cp-theme-lavenderstar .cpnav-av img { object-position: 50% 18%; transform-origin: 50% 18%; transform: scale(1.9); }
body.cp-theme-lavenderstar .cpnav-links a { color: #5E588F; font-weight: 700; }
body.cp-theme-lavenderstar .cpnav-links a:hover { color: #7A70D8; background: rgba(255, 255, 255, .75); }
body.cp-theme-lavenderstar .cpnav-links a[aria-current="true"] { background: linear-gradient(135deg, #948BEA, #B895F0); color: #fff; box-shadow: 0 6px 16px -8px #948BEA; }
body.cp-theme-lavenderstar .cpnav-cart { background: #948BEA; box-shadow: 0 8px 18px -10px #948BEA; }
body.cp-theme-lavenderstar .cpnav-cart:hover { background: #ECA8FE; }
body.cp-theme-lavenderstar .cpnav-account { color: #7A70D8; }
body.cp-theme-lavenderstar .cpnav-account:hover { background: #948BEA; color: #fff; }
body.cp-theme-lavenderstar .cpnav-burger span { background: #948BEA; }

/* ---------------- responsive ---------------- */
@media (max-width: 1100px) {
  .lv-about { grid-template-columns: .9fr 1.1fr; }
  .lv-side { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1024px) {
  .lv-intro, .lv-starlings { grid-template-columns: 1fr; }
  .lv-videos { grid-template-columns: 1fr 1fr; }
  .lv-banner-copy { max-width: 62%; }
}
@media (max-width: 768px) {
  .lv { padding-top: 140px; }
  .lv-banner { aspect-ratio: auto; min-height: 420px; border-radius: 26px; }
  .lv-banner-glow { background: linear-gradient(180deg, rgba(246, 242, 254, .9) 0%, rgba(246, 242, 254, .6) 45%, rgba(246, 242, 254, 0) 72%); }
  .lv-banner-copy { max-width: none; justify-content: flex-start; padding: 26px 22px; }
  .lv-logo img { width: min(340px, 86%); }
  .lv-wave { width: 92px; }
  .lv-about { grid-template-columns: 1fr; }
  .lv-polaroid { max-width: 340px; margin: 10px auto 0; }
  .lv-sticker--hug { left: -26px; bottom: -96px; width: 92px; }
  .lv-polaroid figcaption { font-size: 14.5px; }
  .lv-side { grid-template-columns: 1fr; }
  .lv-sec { padding-top: 64px; }
}
@media (max-width: 560px) {
  .lv { padding-top: 128px; }
  .lv-videos { grid-template-columns: 1fr; }
  .lv-about-copy, .lv-credits { padding: 26px 20px; }
  .lv-community { padding: 32px 22px 26px; }
  .lv-moon { width: 150px; right: -34px; top: -20px; }
  .lv-community h2 { max-width: 10ch; }
  .lv-actions .lv-btn { flex: 1 1 auto; justify-content: center; }
  .lv-stat { flex: 1 1 40%; min-width: 0; }
  .lv-row { grid-auto-columns: 82%; }
  .lv-row--tall { grid-auto-columns: 62%; }
  .lv-emotes img { width: 52px; height: 52px; }
  .lv-band span { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .lv *, .lv *::before, .lv *::after { animation: none !important; transition: none !important; }
  .cp-js .lv [data-reveal]:not(.is-in) { opacity: 1; transform: none; }
  .lv-timeline li::before { transform: scale(1); }
  .lv-sky i { opacity: .8; }
}
.perf-lite .lv-banner-img, .perf-lite .lv-band-track, .perf-lite .lv-sky i, .perf-lite .lv-shoot, .perf-lite .lv-sticker, .perf-lite .lv-emotes img, .perf-lite .lv-moon, .perf-lite .lv-cutout, .perf-lite .lv-wave, .perf-lite .lv-logo img { animation: none; }

/* The page's scrollbars in this palette (site.css reads --scroll-acc off
   <html>, which only the literal colour can reach from here). */
html:has(> body.cp-theme-lavenderstar) { --scroll-acc: #948BEA; }
