/* danielamusic.co — shared styles for every page */
:root {
  --rose:      #e05575;
  --rose-soft: #f7a8bc;
  --blush:     #fdeef4;
  --peach:     #fde8d8;
  --teal:      #3bbfb8;
  --aqua:      #85ddd8;
  --sky:       #c8f0f0;
  --lavender:  #e0d0f8;
  --gold:      #f0c060;
  --cream:     #fffcfa;
  --opal:      #faf6fe;
  --linen:     #fdf8f4;
  --text:      #3a2840;
  --text-mid:  #7a5a80;
  --plum:      #3b1f47;
  --cosmic-indigo: #211c5e;
  --text-soft: #c0a0c8;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Nunito',sans-serif; font-weight:300; background:var(--cream); color:var(--text); overflow-x:hidden; }

/* ─── IRIDESCENT ─── */
@keyframes shimmer { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
.iri {
  background: linear-gradient(120deg, #e05575, #c890f0, #3bbfb8, #f0c060, #f7a8bc, #85ddd8, #e05575);
  background-size: 400% 400%;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
  animation: shimmer 6s ease infinite;
}
.iri-line {
  height:1px; border:none;
  background: linear-gradient(90deg, transparent, #e05575, #c890f0, #3bbfb8, #f0c060, transparent);
  background-size:200% 100%;
  animation: shimmer 5s linear infinite;
  opacity: 0.6;
}

/* ─── BLOBS — very soft ─── */
.blob { position:fixed; border-radius:50%; filter:blur(110px); opacity:0.16; pointer-events:none; z-index:0; }
.blob-1 { width:700px; height:700px; background:radial-gradient(circle,#f7a8bc,#e0d0f8); top:-250px; right:-220px; animation:bd 28s ease-in-out infinite; }
.blob-2 { width:500px; height:500px; background:radial-gradient(circle,#85ddd8,#c8f0f0); bottom:-180px; left:-160px; animation:bd 22s ease-in-out infinite reverse; }
.blob-3 { width:400px; height:400px; background:radial-gradient(circle,#f0c060,#fde8d8); top:60%; left:55%; animation:bd 35s ease-in-out infinite 8s; opacity:0.09; }
@keyframes bd { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(25px,-20px) scale(1.05)} }

/* ─── PARTICLES ─── */
.particles { position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
.particle { position:absolute; border-radius:50%; bottom:-10px; animation:floatup linear infinite; }
@keyframes floatup { 0%{opacity:0;transform:translateY(0)} 10%{opacity:0.8} 90%{opacity:0.2} 100%{opacity:0;transform:translateY(-100vh)} }

/* ─── REVEAL ─── */
.reveal { opacity:0; transform:translateY(24px); transition:opacity 0.9s ease, transform 0.9s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ─── NAV ─── */
nav {
  position:fixed; top:0; width:100%; z-index:100;
  padding:0.9rem 3rem;
  display:flex; justify-content:space-between; align-items:center;
  background:rgba(255,252,250,0.88);
  backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
  border-bottom:1px solid rgba(224,85,117,0.1);
  transition:box-shadow 0.3s;
}
.nav-logo { text-decoration:none; display:flex; align-items:center; }
.nav-links { list-style:none; display:flex; gap:2.2rem; }
.nav-links a { text-decoration:none; color:var(--text-mid); font-size:0.8125rem; letter-spacing:0.14em; text-transform:uppercase; transition:color 0.3s; font-weight:500; }
.nav-links a:hover { color:var(--rose-ink); }
.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; }
.nav-toggle span { width:22px; height:1px; background:var(--text); transition:all 0.3s; }

/* ─── HERO ─── */
#hero {
  min-height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center; padding:8rem 2rem 5rem;
  position:relative; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center 20%;
  filter:brightness(0.42) saturate(1.0);
}
.hero-overlay {
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(160deg, rgba(200,144,240,0.18) 0%, rgba(224,85,117,0.12) 40%, rgba(59,191,184,0.14) 100%);
}
/* Cosmic star dust overlay */
.hero-stars {
  position:absolute; inset:0; z-index:0;
  background-image:
    radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,0.6) 0%, transparent 100%),
    radial-gradient(1px 1px at 75% 15%, rgba(240,192,96,0.7) 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 55% 65%, rgba(255,255,255,0.5) 0%, transparent 100%),
    radial-gradient(1px 1px at 35% 80%, rgba(200,144,240,0.6) 0%, transparent 100%),
    radial-gradient(2px 2px at 88% 72%, rgba(255,255,255,0.4) 0%, transparent 100%),
    radial-gradient(1px 1px at 10% 55%, rgba(247,168,188,0.7) 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 65% 40%, rgba(255,255,255,0.5) 0%, transparent 100%),
    radial-gradient(1px 1px at 42% 18%, rgba(133,221,216,0.6) 0%, transparent 100%);
  pointer-events:none;
}
.hero-content { position:relative; z-index:1; margin-top:22vh; }
.hero-eyebrow { display:block; font-size:0.8125rem; letter-spacing:0.2em; text-transform:uppercase; color:rgba(253,232,216,0.75); margin-bottom:1rem; font-weight:400; }
.hero-logo-wrap { margin-bottom:1.6rem; display:flex; justify-content:center; }
.hero-sub { font-size:clamp(0.7rem,1.5vw,0.88rem); color:rgba(253,232,216,0.6); letter-spacing:0.14em; max-width:440px; margin:0 auto 2.6rem; font-weight:300; }

/* ─── BUTTONS ─── */
.hero-cta { display:flex; gap:0.8rem; flex-wrap:wrap; justify-content:center; margin-bottom:1.8rem; }
.btn {
  display:inline-flex; align-items:center; gap:0.5rem;
  padding:0.82rem 1.8rem; font-size:0.8125rem; letter-spacing:0.14em;
  text-transform:uppercase; text-decoration:none;
  font-family:'Nunito',sans-serif; font-weight:500; cursor:pointer; border:none;
  transition:all 0.3s;
}
.btn-rose { background:linear-gradient(135deg,#e05575,#f7a8bc); color:#fff; box-shadow:0 4px 18px rgba(224,85,117,0.38); }
.btn-rose:hover { transform:translateY(-2px); box-shadow:0 8px 26px rgba(224,85,117,0.52); }
.btn-teal { background:linear-gradient(135deg,#3bbfb8,#85ddd8); color:#fff; box-shadow:0 4px 18px rgba(59,191,184,0.32); }
.btn-teal:hover { transform:translateY(-2px); box-shadow:0 8px 26px rgba(59,191,184,0.46); }
.btn-ghost { background:transparent; color:rgba(253,232,216,0.85); border:1px solid rgba(253,232,216,0.32); }
.btn-ghost:hover { border-color:rgba(253,232,216,0.7); background:rgba(253,232,216,0.09); }
.btn-lavender { background:linear-gradient(135deg,#c890f0,#e0d0f8); color:#3a2840; box-shadow:0 4px 18px rgba(200,144,240,0.38); }
.btn-lavender:hover { transform:translateY(-2px); box-shadow:0 8px 26px rgba(200,144,240,0.52); }
.btn-gold { background:linear-gradient(135deg,#f0c060,#fde8d8); color:#3a2840; box-shadow:0 4px 18px rgba(240,192,96,0.38); }
.btn-peach { background:linear-gradient(135deg,#f7a8bc,#fde8d8); color:#3a2840; box-shadow:0 4px 18px rgba(247,168,188,0.38); }
.btn-gold:hover { transform:translateY(-2px); box-shadow:0 8px 26px rgba(240,192,96,0.52); }
.btn-ig { background:transparent; color:rgba(253,232,216,0.65); border:1px solid rgba(224,85,117,0.38); font-size:0.8125rem; }
.btn-ig:hover { border-color:rgba(247,168,188,0.85); color:rgba(247,168,188,0.9); background:rgba(224,85,117,0.09); }

.hero-bottom { display:flex; align-items:center; justify-content:center; }
.scroll-hint { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:0.5rem; color:rgba(253,232,216,0.3); font-size:0.75rem; letter-spacing:0.18em; }
.scroll-line { width:1px; height:40px; background:linear-gradient(to bottom,rgba(253,232,216,0.4),transparent); animation:sp 2s ease-in-out infinite; }
@keyframes sp { 0%,100%{opacity:0.4} 50%{opacity:1} }

/* ─── SECTION LABELS ─── */
.s-label { display:block; font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--rose-ink); margin-bottom:0.65rem; font-weight:500; }
.s-title { font-family:'Cormorant',serif; font-size:clamp(2.2rem,5vw,4rem); font-weight:600; line-height:1.12; color:var(--cosmic-indigo); }
.s-title em { font-style:italic; color:var(--rose); }

/* ─── BIO ─── */
#bio { display:grid; grid-template-columns:1fr 1fr; min-height:85vh; background:var(--opal); position:relative; }
.bio-img { position:relative; overflow:hidden; }
.bio-img img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; transition:transform 8s ease; }
.bio-img:hover img { transform:scale(1.03); }
.bio-img::after { content:''; position:absolute; inset:0; background:linear-gradient(to right,transparent 52%,var(--opal)); }
.bio-text-wrap { padding:5rem 4rem 4rem 3rem; display:flex; flex-direction:column; justify-content:center; position:relative; }

/* ─── STAR EASTER EGG ─── */
.star-btn {
  position:absolute; top:2.5rem; right:2.5rem;
  width:36px; height:36px;
  background:none; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  opacity:0.5; transition:opacity 0.3s, transform 0.4s;
  z-index:10;
  animation: star-pulse 3s ease-in-out infinite;
}
@keyframes star-pulse {
  0%,100% { opacity:0.5; transform:scale(1); }
  50% { opacity:0.85; transform:scale(1.08); }
}
.star-btn:hover { opacity:1; transform:rotate(20deg) scale(1.15); }
.star-btn svg { width:28px; height:28px; }

/* ─── FULL BIO MODAL ─── */
.modal-overlay {
  position:fixed; inset:0; z-index:999;
  background:rgba(58,40,64,0.55);
  backdrop-filter:blur(12px);
  display:none; align-items:center; justify-content:center;
  padding:2rem;
}
.modal-overlay.open { display:flex; }
.modal-box {
  background:var(--cream);
  max-width:720px; width:100%;
  max-height:88vh; overflow-y:auto;
  padding:3.5rem 3.5rem 3rem;
  position:relative;
  border:1px solid rgba(224,85,117,0.18);
  box-shadow:0 24px 80px rgba(58,40,64,0.25);
}
.modal-box::-webkit-scrollbar { width:4px; }
.modal-box::-webkit-scrollbar-track { background:transparent; }
.modal-box::-webkit-scrollbar-thumb { background:rgba(224,85,117,0.25); border-radius:2px; }
.modal-close {
  position:sticky; top:0; float:right;
  background:none; border:none; cursor:pointer;
  font-size:1.3rem; color:var(--text-soft); transition:color 0.2s;
  line-height:1; padding:0.2rem 0.4rem; margin-bottom:0.5rem;
}
.modal-close:hover { color:var(--rose-ink); }
.modal-title {
  font-family:'Cormorant',serif; font-size:2rem; font-weight:700; font-style:italic;
  margin-bottom:0.4rem; color:var(--cosmic-indigo);
  clear:both;
}
.modal-eyebrow { font-size:0.8125rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--rose-ink); margin-bottom:2rem; display:block; }
.fb-para { font-size:1.0625rem; line-height:1.7; color:var(--text-mid); margin-bottom:1.1rem; }
.fb-para:first-child { font-size:1.125rem; color:var(--cosmic-indigo); font-weight:400; }

.bio-p { font-size:1.0625rem; line-height:1.7; color:var(--text-mid); margin-bottom:1rem; }
.bio-p strong { color:var(--text); font-weight:500; }
.bio-tags { display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:1.8rem; }
.bio-tag { padding:0.26rem 0.78rem; font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; border:1px solid rgba(59,191,184,0.3); color:var(--teal-ink); }

/* ─── GALLERY ─── */
#gallery { background:var(--cream); }
.gallery-header { padding:5rem 4rem 3rem; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.g-item { overflow:hidden; position:relative; aspect-ratio:4/3; }
.g-item:nth-child(1) { grid-column:span 2; aspect-ratio:16/9; }
.g-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.7s ease, filter 0.4s; filter:saturate(0.82); }
.g-item:hover img { transform:scale(1.06); filter:saturate(1.1); }
.g-label { position:absolute; bottom:0; left:0; right:0; padding:1.5rem 1rem 0.7rem; background:linear-gradient(to top,rgba(58,40,64,0.72),transparent); color:rgba(255,255,255,0.85); font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; opacity:0; transition:opacity 0.3s; }
.g-item:hover .g-label { opacity:1; }

/* ─── MUSIC ─── */
#music { padding:6rem 4rem; max-width:1100px; margin:0 auto; }
.music-sub { font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--text-soft); margin:2.5rem 0 1rem; border-bottom:1px solid rgba(224,85,117,0.15); padding-bottom:0.5rem; font-weight:500; }
.music-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.sc-wrap { overflow:hidden; }
.sc-wrap iframe { display:block; width:100%; }

/* ─── ARTISTS SUPPORTED ─── */
#artists { padding:5rem 4rem; background:var(--blush); }
.artists-inner { max-width:1100px; margin:0 auto; }
.artists-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:0.9rem; margin-top:2.5rem; }
.artist-card { padding:1.1rem 1.4rem; background:rgba(255,255,255,0.75); border:1px solid rgba(224,85,117,0.12); transition:all 0.3s; backdrop-filter:blur(8px); }
.artist-card:hover { border-color:rgba(224,85,117,0.4); background:#fff; transform:translateY(-2px); box-shadow:0 8px 22px rgba(224,85,117,0.1); }
.artist-name { font-family:'Cormorant',serif; font-size:1.25rem; font-weight:600; color:var(--text); margin-bottom:0.18rem; }
.artist-detail { font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-soft); }

/* ─── EPK ─── */
#epk { padding:6rem 4rem; background:var(--opal); }
.epk-inner { max-width:1100px; margin:0 auto; }
.epk-top { display:grid; grid-template-columns:0.85fr 1.15fr; gap:3.2rem; align-items:center; margin:2.8rem 0 3rem; }
.epk-photo { position:relative; }
.epk-photo img { width:100%; aspect-ratio:4/5; object-fit:cover; display:block; border:1px solid rgba(224,85,117,0.15); }
.epk-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(224,85,117,0.12),transparent 45%); pointer-events:none; }
.epk-bio-p { font-size:1.0625rem; line-height:1.7; color:var(--text-mid); margin-bottom:1.1rem; }
.epk-bio-p strong { color:var(--cosmic-indigo); font-weight:600; }
.epk-social { display:flex; align-items:center; justify-content:center; gap:2.5rem; flex-wrap:wrap; padding:1.6rem 2rem; background:rgba(255,255,255,0.85); border:1px solid rgba(224,85,117,0.12); margin-bottom:3.5rem; }
.epk-social-stat { text-align:center; }
.epk-social-handles { display:flex; gap:0.7rem; flex-wrap:wrap; justify-content:center; }
.epk-handle { display:inline-flex; align-items:center; gap:0.42rem; padding:0.55rem 1.1rem; font-family:'Nunito',sans-serif; font-size:0.8125rem; letter-spacing:0.05em; text-decoration:none; color:var(--text-mid); border:1px solid rgba(224,85,117,0.22); transition:all 0.3s; }
.epk-handle:hover { border-color:rgba(247,168,188,0.85); color:var(--rose-ink); background:rgba(224,85,117,0.05); transform:translateY(-2px); }
.epk-handle svg { width:13px; height:13px; flex-shrink:0; }
.epk-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin:2.5rem 0 3.5rem; }
.stat { text-align:center; padding:2rem 1rem; background:rgba(255,255,255,0.85); border:1px solid rgba(224,85,117,0.12); }
.stat-n { font-family:'Cormorant',serif; font-size:3rem; font-weight:700; display:block; margin-bottom:0.3rem; }
.stat-l { font-size:0.75rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--text-soft); }
.epk-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; }
.epk-col-label { font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--rose-ink); margin-bottom:1.2rem; padding-bottom:0.5rem; border-bottom:1px solid rgba(224,85,117,0.18); font-weight:500; }
.epk-list { list-style:none; }
.epk-list li { padding:0.62rem 0; border-bottom:1px solid rgba(224,85,117,0.08); color:var(--text-mid); font-size:1rem; line-height:1.5; display:flex; gap:0.8rem; }
.epk-list li::before { content:'—'; color:var(--rose-ink); flex-shrink:0; opacity:0.7; }
.epk-list li span { color:var(--cosmic-indigo); font-weight:500; }
.infl-tags { display:flex; flex-wrap:wrap; gap:0.38rem; margin-top:1rem; }
.infl-tag { padding:0.2rem 0.62rem; font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; border:1px solid rgba(59,191,184,0.28); color:var(--teal-ink); }

/* ─── CONNECT ─── */
#connect { padding:7rem 4rem; max-width:750px; margin:0 auto; text-align:center; }
.connect-h { font-family:'Cormorant',serif; font-size:clamp(2.5rem,7vw,5.5rem); font-weight:700; font-style:italic; line-height:1.05; margin-bottom:1.2rem; color:var(--cosmic-indigo); }
.connect-sub { color:var(--text-soft); font-size:1.0625rem; line-height:1.7; margin-bottom:3rem; max-width:440px; margin-left:auto; margin-right:auto; }
.email-block { margin-bottom:2.5rem; }
.email-tag { font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--text-soft); margin-bottom:0.28rem; display:block; }
.email-link { font-family:'Cormorant',serif; font-size:clamp(1.3rem,2.6vw,1.8rem); font-weight:600; color:var(--rose-ink); text-decoration:none; transition:opacity 0.3s; display:block; }
.email-link:hover { opacity:0.62; }
.socials { display:flex; gap:0.85rem; justify-content:center; flex-wrap:wrap; margin-top:3rem; }
.social-btn { display:inline-flex; align-items:center; gap:0.52rem; padding:0.72rem 1.45rem; font-size:0.8125rem; letter-spacing:0.14em; text-transform:uppercase; text-decoration:none; border:1px solid rgba(224,85,117,0.22); color:var(--text-mid); transition:all 0.3s; font-weight:400; }
.social-btn:hover { border-color:var(--rose-ink); color:var(--rose-ink); background:rgba(224,85,117,0.04); }
.avail-box { margin-top:4rem; padding:2.5rem; border:1px solid rgba(200,160,200,0.3); text-align:left; background:rgba(250,246,254,0.5); }
.avail-label { font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--rose-ink); margin-bottom:1.2rem; font-weight:500; display:block; }
.avail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.8rem; }
.avail-item { font-size:0.9375rem; color:var(--text-mid); padding:0.38rem 0; border-bottom:1px solid rgba(200,160,200,0.2); }

/* ─── FOOTER ─── */
footer { background:var(--opal); padding:2.5rem 4rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; border-top:1px solid rgba(224,85,117,0.1); }
.footer-copy { font-size:0.75rem; color:var(--text-soft); letter-spacing:0.08em; }

/* ─── RESPONSIVE ─── */
@media(max-width:900px) {
  nav { padding:1rem 1.5rem; }
  .nav-links { display:none; }
  .nav-links.open {
    display:flex; flex-direction:column; gap:1.5rem; align-items:flex-start;
    position:absolute; top:100%; left:0; right:0;
    background:rgba(255,252,250,0.98); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
    padding:1.6rem 1.5rem 2rem; border-bottom:1px solid rgba(224,85,117,0.15);
    box-shadow:0 10px 28px rgba(58,40,64,0.12);
  }
  .nav-links.open a { font-size:1rem; letter-spacing:0.14em; }
  .nav-toggle { display:flex; }
  .nav-toggle.open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2) { opacity:0; }
  .nav-toggle.open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
  #bio { grid-template-columns:1fr; }
  .bio-img { height:70vw; max-height:450px; }
  .bio-img::after { background:linear-gradient(to top,var(--opal) 5%,transparent); }
  .bio-text-wrap { padding:3rem 2rem 3rem; }
  .star-btn { top:1.5rem; right:1.5rem; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .g-item:nth-child(1) { grid-column:span 2; }
  .music-grid { grid-template-columns:1fr; }
  .epk-top { grid-template-columns:1fr; gap:2rem; }
  .epk-stats { grid-template-columns:repeat(2,1fr); }
  .epk-photo img { aspect-ratio:3/4; max-height:520px; }
  .epk-social { gap:1.5rem; padding:1.4rem; }
  .epk-grid { grid-template-columns:1fr; gap:2.5rem; }
  #epk,#music,#artists,#connect { padding:4rem 2rem; }
  .gallery-header { padding:3rem 2rem 2rem; }
  .avail-grid { grid-template-columns:repeat(2,1fr); }
  footer { flex-direction:column; text-align:center; padding:2rem 1.5rem; }
  .modal-box { padding:2.5rem 2rem; }
}
@media(max-width:580px) {
  .gallery-grid { grid-template-columns:1fr; }
  .g-item:nth-child(1) { grid-column:span 1; aspect-ratio:4/3; }
  .epk-stats { grid-template-columns:repeat(2,1fr); gap:0.6rem; }
  .stat-n { font-size:2rem; }
  .avail-grid { grid-template-columns:1fr; }
}

/* ─── TOUR SECTION ─── */
#tour { padding:6rem 4rem; background:var(--opal); position:relative; z-index:1; }
.tour-inner { max-width:900px; margin:0 auto; }
.tour-intro { text-align:center; margin-bottom:3.2rem; }
.tour-sub { font-size:1.0625rem; color:var(--text-mid); letter-spacing:0.01em; line-height:1.7; max-width:480px; margin:1.2rem auto 0; }
.month-group { margin-bottom: 3.5rem; }
.month-label {
  font-size:0.75rem; letter-spacing:0.2em; text-transform: uppercase;
  color: var(--rose-ink); font-weight: 500; margin-bottom: 0.8rem;
  display: flex; align-items: center; gap: 1rem;
}
.month-label::after { content:''; flex:1; height:1px; background:linear-gradient(90deg, rgba(224,85,117,0.3), transparent); }
.show-row {
  display: grid; grid-template-columns: 72px 1fr auto; align-items: center; gap: 1.8rem;
  padding: 1.4rem 1.8rem; border: 1px solid rgba(224,85,117,0.1);
  background: rgba(255,252,250,0.7); backdrop-filter: blur(8px);
  margin-bottom: 0.6rem; transition: all 0.3s ease; position: relative; overflow: hidden;
}
.show-row::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(to bottom, var(--rose), var(--teal)); opacity: 0; transition: opacity 0.3s;
}
.show-row:hover { border-color: rgba(224,85,117,0.28); background: rgba(255,252,250,0.95); transform: translateX(3px); box-shadow: 0 6px 28px rgba(224,85,117,0.08); }
.show-row:hover::before { opacity: 1; }
.show-date { text-align: center; flex-shrink: 0; }
.show-day { font-family: 'Cormorant', serif; font-size: 2.2rem; font-weight: 700; color: var(--text); line-height: 1; display: block; }
.show-dow { font-size:0.75rem; letter-spacing:0.18em; text-transform: uppercase; color: var(--text-soft); margin-top: 0.15rem; display: block; }
.show-info { min-width: 0; }
.show-name { font-family: 'Cormorant', serif; font-size:1.5rem; font-weight: 600; color: var(--text); line-height: 1.2; margin-bottom: 0.25rem; }
#tour .s-title, #tour .show-name, #tour .show-day { color: var(--cosmic-indigo); }
#bio .s-title, #bio .bio-p strong, #artists .s-title, #artists .artist-name, #epk .s-title { color: var(--cosmic-indigo); }
.show-venue { font-size:0.9375rem; color: var(--text-mid); letter-spacing: 0.06em; }
.show-venue span { color: var(--text-soft); }
.show-cta { flex-shrink: 0; }
.btn-ticket {
  display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.62rem 1.3rem;
  font-size:0.8125rem; letter-spacing:0.14em; text-transform: uppercase; text-decoration: none;
  font-family: 'Nunito', sans-serif; font-weight: 500; background: linear-gradient(135deg, #e05575, #f7a8bc);
  color: #fff; box-shadow: 0 4px 14px rgba(224,85,117,0.32); transition: all 0.3s; white-space: nowrap;
}
.btn-ticket:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(224,85,117,0.48); }
.btn-ticket svg { width: 12px; height: 12px; flex-shrink: 0; }
.show-tba { font-size:0.75rem; letter-spacing:0.14em; text-transform: uppercase; color: var(--text-soft); padding: 0.62rem 1.3rem; border: 1px solid rgba(200,160,200,0.3); }
.show-badge {
  display: inline-block; font-size:0.75rem; letter-spacing:0.14em; text-transform: uppercase;
  padding: 0.18rem 0.55rem; margin-left: 0.6rem; border: 1px solid rgba(59,191,184,0.4);
  color: var(--teal-ink); vertical-align: middle; position: relative; top: -1px;
}
@media(max-width:768px) {
  #tour { padding: 4rem 1.5rem; }
  .show-row { grid-template-columns: 56px 1fr; gap: 1.2rem; padding: 1.1rem 1.2rem; }
  .show-cta { grid-column: 2; }
}
@media(max-width:580px) {
  .show-row { grid-template-columns: 1fr; gap: 0.8rem; }
  .show-date { display: flex; align-items: baseline; gap: 0.6rem; text-align: left; }
  .show-day { font-size: 1.6rem; }
  .show-cta { grid-column: 1; }
}

/* ─── EMAIL FORMS ─── */
.hero-news { margin:calc(1.6rem + 1in) auto 0; display:flex; gap:0.5rem; max-width:420px; width:100%; flex-wrap:wrap; justify-content:center; }
.hero-news .news-input { flex:1 1 200px; min-width:0; padding:0.8rem 1.1rem; border:1px solid rgba(253,232,216,0.4); background:rgba(255,255,255,0.1); color:#fff; font-family:'Nunito',sans-serif; font-size:1rem; border-radius:2px; backdrop-filter:blur(4px); }
.hero-news .news-input::placeholder { color:rgba(255,255,255,0.6); }
.hero-news .news-input:focus { outline:none; border-color:var(--gold); }
.hero-news .news-btn { padding:0.8rem 1.4rem; border:none; cursor:pointer; font-family:'Nunito',sans-serif; font-size:0.8125rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:600; color:#fff; background:linear-gradient(135deg,#5b6ee0,#9fb4ff); border-radius:2px; box-shadow:0 4px 18px rgba(91,110,224,0.42); transition:transform 0.3s; }
.hero-news .news-btn:hover { transform:translateY(-2px); }
.hero-news-note { color:rgba(255,255,255,0.7); font-size:0.8125rem; letter-spacing:0.06em; margin-top:0.7rem; text-align:center; }

#ebook { padding:7rem 4rem; max-width:760px; margin:0 auto; text-align:center; }
.ebook-h { font-family:'Cormorant',serif; font-size:clamp(2.2rem,6vw,4.5rem); font-weight:700; font-style:italic; line-height:1.06; margin-bottom:1.2rem; color:var(--cosmic-indigo); }
.ebook-sub { color:var(--text-mid); font-size:1.0625rem; line-height:1.7; margin:0 auto 2.6rem; max-width:480px; }
.ebook-form { display:flex; gap:0.6rem; max-width:460px; margin:0 auto; flex-wrap:wrap; justify-content:center; }
.ebook-form input { flex:1 1 220px; min-width:0; padding:0.95rem 1.2rem; border:1px solid rgba(224,85,117,0.3); background:#fff; color:var(--text); font-family:'Nunito',sans-serif; font-size:1rem; border-radius:2px; }
.ebook-form input:focus { outline:none; border-color:var(--rose-ink); }
.ebook-form button { padding:0.95rem 1.7rem; border:none; cursor:pointer; font-family:'Nunito',sans-serif; font-size:0.8125rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:600; color:#3a2840; background:linear-gradient(135deg,#f0c060,#fde8d8); border-radius:2px; box-shadow:0 4px 18px rgba(240,192,96,0.38); transition:transform 0.3s; }
.ebook-form button:hover { transform:translateY(-2px); }
.ebook-note { color:var(--text-soft); font-size:0.8125rem; letter-spacing:0.04em; margin-top:1rem; }
@media(max-width:580px) { #ebook { padding:4rem 2rem; } }

/* ═══════════════════════════════════════════════
   ADDED OCT 2026 — multi-page site, video clips
   ═══════════════════════════════════════════════ */

/* Video grid + per-astra responsive (was inline in the page) */
@media(max-width:700px) {
  #video > div[style*="grid-template-columns"] { grid-template-columns:1fr !important; }
  #per-astra div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; }
  #per-astra { padding:4rem 2rem !important; }
  #video { padding:4rem 2rem !important; }
}

.nav-links a[aria-current="page"] { color:var(--rose-ink); }
.hero-h1 { font:inherit; margin:0; }
.hero-h1 .hero-eyebrow { margin-bottom:1rem; }

/* Small "read more" links under homepage sections */
.more-link { display:inline-block; margin-top:1.6rem; font-size:0.8125rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--rose-ink); text-decoration:none; font-weight:500; border-bottom:1px solid rgba(224,85,117,0.35); padding-bottom:0.25rem; transition:border-color 0.3s; align-self:flex-start; }
.more-link:hover { border-color:var(--rose-ink); }
.more-row { text-align:center; margin-top:2.4rem; }
.more-row .more-link { margin:0 0.9rem; }

/* ─── PAGE HEADER (inner pages) ─── */
.page-head { padding:9.5rem 2rem 4rem; text-align:center; background:var(--opal); position:relative; z-index:1; }
.page-head h1 { font-family:'Cormorant',serif; font-size:clamp(2.6rem,6.5vw,5rem); font-weight:600; line-height:1.06; color:var(--cosmic-indigo); }
.page-head h1 em { font-style:italic; color:var(--rose); }
.page-lede { max-width:640px; margin:1.3rem auto 0; font-size:1.0625rem; line-height:1.7; color:var(--text-mid); }
.page-cta { display:flex; gap:0.8rem; flex-wrap:wrap; justify-content:center; margin-top:2.2rem; }
.band { padding:5.5rem 4rem; position:relative; z-index:1; }
.band-opal { background:var(--opal); }
.band-blush { background:var(--blush); }
.band-inner { max-width:1100px; margin:0 auto; }
.band-narrow { max-width:820px; margin:0 auto; }
.band .s-title { font-size:clamp(1.9rem,4vw,3rem); }

/* ─── ABOUT (full biography) ─── */
.about-wrap { display:grid; grid-template-columns:0.8fr 1.2fr; gap:4rem; align-items:start; }
.about-photo { position:sticky; top:6rem; }
.about-photo img { width:100%; height:auto; display:block; border:1px solid rgba(224,85,117,0.15); }
.prose h2 { font-family:'Cormorant',serif; font-size:1.9rem; font-weight:600; color:var(--cosmic-indigo); margin:2.4rem 0 0.8rem; line-height:1.2; }
.prose h2:first-child { margin-top:0; }
.prose p { font-size:1.0625rem; line-height:1.7; color:var(--text-mid); margin-bottom:1.1rem; }
.prose p.lead { font-size:1.25rem; color:var(--cosmic-indigo); font-weight:400; }
.prose a { color:var(--rose-ink); }
.prose .epk-col-label { margin-top:2.2rem; }

/* ─── VIDEO CLIPS ─── */
.vid-frame { position:relative; padding-bottom:56.25%; background:#1a1024; border:1px solid rgba(59,191,184,0.15); overflow:hidden; }
.vid-frame video, .vid-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; object-fit:cover; display:block; }
.vid-reels { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:1.5rem; }
.vid-reel { margin:0; }
.vid-reel video { display:block; width:100%; aspect-ratio:9/16; object-fit:cover; background:#1a1024; border:1px solid rgba(224,85,117,0.15); }
.vid-cap { display:block; margin-top:0.6rem; font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-mid); line-height:1.6; }
.vid-cap strong { display:block; color:var(--cosmic-indigo); font-weight:500; letter-spacing:0.14em; }
@media(max-width:900px) { .vid-reels { grid-template-columns:repeat(2,1fr); } }

.btn-row { display:flex; gap:0.8rem; flex-wrap:wrap; justify-content:center; }

/* ─── MUSIC track titles ─── */
.track-title { font-family:'Cormorant',serif; font-size:1.25rem; font-weight:600; color:var(--cosmic-indigo); margin-bottom:0.5rem; line-height:1.3; }

/* ─── TOUR extras ─── */
.tour-empty { text-align:center; font-size:1rem; color:var(--text-mid); padding:1.5rem 0 0.5rem; }
.past-shows .show-row { background:rgba(255,252,250,0.45); }
.past-shows .show-day { opacity:0.75; }
.btn-listen { display:inline-flex; align-items:center; gap:0.45rem; font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--teal-ink); padding:0.62rem 1.3rem; border:1px solid rgba(59,191,184,0.4); text-decoration:none; font-weight:500; transition:all 0.3s; white-space:nowrap; }
.btn-listen:hover { background:rgba(59,191,184,0.08); border-color:var(--teal-ink); }

/* ─── BOOKING ─── */
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin-top:2.5rem; }
.svc-card { padding:1.7rem 1.6rem; background:rgba(255,255,255,0.8); border:1px solid rgba(224,85,117,0.12); transition:all 0.3s; }
.svc-card:hover { border-color:rgba(224,85,117,0.35); transform:translateY(-2px); box-shadow:0 8px 22px rgba(224,85,117,0.08); }
.svc-card h3 { font-family:'Cormorant',serif; font-size:1.5rem; font-weight:600; color:var(--cosmic-indigo); margin-bottom:0.5rem; line-height:1.2; }
.svc-card p { font-size:1rem; line-height:1.7; color:var(--text-mid); }
.facts { display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; margin-top:2.5rem; }
.fact { padding:1.5rem 1.2rem; text-align:center; background:rgba(255,255,255,0.85); border:1px solid rgba(224,85,117,0.12); }
.fact-k { display:block; font-size:0.75rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--rose-ink); font-weight:500; margin-bottom:0.5rem; }
.fact-v { font-family:'Cormorant',serif; font-size:1.3rem; font-weight:600; color:var(--cosmic-indigo); line-height:1.3; }
.faq { margin-top:2rem; }
.faq-item { padding:1.5rem 0; border-bottom:1px solid rgba(224,85,117,0.12); }
.faq-item h3 { font-family:'Cormorant',serif; font-size:1.5rem; font-weight:600; color:var(--cosmic-indigo); margin-bottom:0.45rem; }
.faq-item p { font-size:1.0625rem; line-height:1.7; color:var(--text-mid); }
.faq-item a { color:var(--rose-ink); }
.book-emails { text-align:center; }

/* ─── PROJECTS ─── */
.proj { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; max-width:1100px; margin:0 auto; }
.proj.flip .proj-img { order:2; }
.proj-img img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; border:1px solid rgba(224,85,117,0.15); }
.proj-text p { font-size:1.0625rem; line-height:1.7; color:var(--text-mid); margin-top:1rem; }
.proj-text a.inline { color:var(--rose-ink); }
.proj-meta { font-size:0.75rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--teal-ink); margin-top:0.6rem; display:block; font-weight:500; }
.proj-links { display:flex; gap:0.8rem; flex-wrap:wrap; margin-top:1.6rem; }

/* ─── FOOTER links ─── */
.footer-links { display:flex; gap:1.4rem; flex-wrap:wrap; justify-content:center; }
.footer-links a { font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-mid); text-decoration:none; transition:color 0.3s; }
.footer-links a:hover { color:var(--rose-ink); }

@media(max-width:900px) {
  .page-head { padding:7.5rem 1.5rem 3rem; }
  .band { padding:4rem 2rem; }
  .about-wrap { grid-template-columns:1fr; gap:2.5rem; }
  .about-photo { position:static; max-width:420px; margin:0 auto; }
  .svc-grid { grid-template-columns:1fr 1fr; }
  .facts { grid-template-columns:1fr 1fr; }
  .proj { grid-template-columns:1fr; gap:2rem; }
  .proj.flip .proj-img { order:0; }
}
@media(max-width:580px) {
  .svc-grid { grid-template-columns:1fr; }
}


/* ═══════════════════════════════════════════════════════════
   READABILITY & ACCESSIBILITY PASS — OCT 2026
   Bigger type on one consistent scale, stronger contrast,
   44px tap targets, keyboard focus, reduced-motion support,
   self-hosted fonts. Everything above keeps the original look.
   ═══════════════════════════════════════════════════════════ */

/* Fonts served from this site (no third-party request) */
@font-face { font-family:'Cormorant'; font-style:normal; font-weight:300 700; font-display:swap; src:url('../fonts/cormorant-latin-wght-normal.woff2') format('woff2'); }
@font-face { font-family:'Cormorant'; font-style:italic; font-weight:300 700; font-display:swap; src:url('../fonts/cormorant-latin-wght-italic.woff2') format('woff2'); }
@font-face { font-family:'Nunito'; font-style:normal; font-weight:200 1000; font-display:swap; src:url('../fonts/nunito-latin-wght-normal.woff2') format('woff2'); }

:root {
  /* same hues as before, deepened until small text passes WCAG AA (4.5:1) on cream, opal and blush */
  --text-mid:  #634a69;
  --text-soft: #7c5f84;
  --rose-ink:  #c2345b;
  --teal-ink:  #167a75;
  --measure:   68ch;
  color-scheme: light;
}

html { -webkit-text-size-adjust:100%; scroll-padding-top:5.5rem; }
body { font-size:1.0625rem; line-height:1.7; font-weight:400; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
h1, h2, h3, .s-title, .connect-h, .ebook-h, .show-name { text-wrap:balance; }
p, li, figcaption { text-wrap:pretty; }
img, video { max-width:100%; }

/* Reading width: long text never runs wider than ~68 characters */
.bio-p, .epk-bio-p, .fb-para, .prose p, .faq-item p, .proj-text p { max-width:var(--measure); }
.prose p.lead { font-size:1.3rem; line-height:1.55; }
.page-lede { max-width:56ch; font-size:1.1875rem; line-height:1.6; }

/* Section labels and headings */
.s-label { font-size:0.8125rem; letter-spacing:0.22em; font-weight:600; }
.s-title { line-height:1.08; }
.month-label, .epk-col-label, .avail-label, .music-sub, .fact-k, .proj-meta, .email-tag, .modal-eyebrow { font-weight:600; }
.music-sub { color:var(--text-soft); }

/* Keyboard focus + skip link */
:focus-visible { outline:2px solid var(--cosmic-indigo); outline-offset:3px; border-radius:2px; }
#hero :focus-visible { outline-color:#fff; }
.skip-link { position:absolute; left:1rem; top:-5rem; z-index:1000; background:var(--cosmic-indigo); color:#fff; padding:0.8rem 1.2rem; font-size:0.9375rem; text-decoration:none; transition:top 0.2s; }
.skip-link:focus { top:1rem; }

/* Navigation: fewer links, bigger targets, one clear call to action */
nav { padding-top:0.45rem; padding-bottom:0.45rem; }
.nav-links { gap:2rem; align-items:center; }
.nav-links a { display:inline-flex; align-items:center; min-height:44px; font-weight:600; color:var(--text-mid); }
.nav-links a.nav-book { padding:0 1.3rem; background:linear-gradient(135deg,#f0c060,#fde8d8); color:var(--plum); box-shadow:0 4px 14px rgba(240,192,96,0.35); }
.nav-links a.nav-book:hover { color:var(--plum); transform:translateY(-1px); }
.nav-toggle { background:none; border:0; padding:0; width:44px; height:44px; align-items:center; justify-content:center; }
@media(max-width:900px) {
  nav { padding-top:0.3rem; padding-bottom:0.3rem; }
  .nav-links.open { gap:0.4rem; }
  .nav-links.open a { font-size:1.0625rem; min-height:48px; }
  .nav-links.open a.nav-book { margin-top:0.6rem; }
}

/* Buttons: readable label on every colour, 44px minimum height */
.btn, .btn-ticket, .social-btn, .btn-listen, .epk-handle, .show-tba { min-height:44px; font-weight:600; }
.btn { padding:0.8rem 1.6rem; justify-content:center; }
.btn-rose, .btn-ticket { background:linear-gradient(135deg,#e8708c,#f7a8bc); color:var(--plum); }
.btn-teal { color:var(--plum); }
.show-tba { display:inline-flex; align-items:center; color:var(--text-soft); border-color:rgba(124,95,132,0.4); }
.btn-listen { border-color:rgba(22,122,117,0.5); }
.btn-ig { color:rgba(253,232,216,0.92); border-color:rgba(247,168,188,0.6); }
.more-link { min-height:44px; display:inline-flex; align-items:center; border-bottom:0; text-decoration:underline; text-decoration-color:rgba(194,52,91,0.4); text-underline-offset:0.4em; text-decoration-thickness:1px; }
.more-link:hover { text-decoration-color:var(--rose-ink); }

/* Forms: 16px inputs stop phones zooming in on tap */
.hero-news .news-input, .ebook-form input { font-size:1rem; min-height:48px; }
.hero-news .news-input::placeholder { color:rgba(255,255,255,0.82); }
.hero-news .news-btn, .ebook-form button { min-height:48px; font-size:0.8125rem; letter-spacing:0.14em; }
.hero-news .news-btn { background:linear-gradient(135deg,#3f4fc4,#5566dc); }
.ebook-form input::placeholder { color:var(--text-soft); }

/* Hero */
#hero { min-height:100svh; }
.hero-eyebrow { letter-spacing:0.32em; color:rgba(253,232,216,0.94); font-weight:500; }
.hero-sub { font-size:clamp(1.0625rem,1.7vw,1.3rem); letter-spacing:0.04em; line-height:1.5; color:rgba(253,232,216,0.92); max-width:32ch; }
.hero-news-note { color:rgba(255,255,255,0.9); font-size:0.875rem; line-height:1.5; }
.scroll-hint { color:rgba(253,232,216,0.65); }

/* Iridescent numbers and words: same shimmer, deeper tones so they stay legible */
.iri { background-image:linear-gradient(120deg,#d1456a,#9a5ce0,#1f9a94,#5b6ee0,#d1456a,#9a5ce0,#1f9a94); }

/* Numbers: full-height figures so dates and stats read cleanly */
.show-day, .stat-n, .fact-v, .show-name, .artist-detail, .epk-list, .prose, .bio-p, .epk-bio-p { font-variant-numeric:lining-nums; }

/* Tour rows, tags, cards */
.show-row { grid-template-columns:84px 1fr auto; }
.show-venue span { color:var(--text-soft); }
.bio-tag, .infl-tag, .show-badge { border-color:rgba(22,122,117,0.45); font-weight:600; padding:0.3rem 0.75rem; }
.show-badge { padding:0.15rem 0.55rem; }
.artist-detail, .stat-l { line-height:1.5; }
.stat-l { display:block; }
.epk-list li { line-height:1.55; }
.footer-copy { letter-spacing:0.04em; }
.vid-cap strong { font-weight:600; }
.fact-v { line-height:1.25; }

/* Photo captions are always visible on touch screens (no hover there) */
@media (hover:none) { .g-label { opacity:1; } }

/* Motion: one quiet reveal, and none at all for people who ask for less */
.reveal { transform:translateY(12px); transition:opacity 0.5s ease, transform 0.5s ease; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
  .blob, .particle, .iri, .iri-line, .scroll-line, .star-btn { animation:none; }
  .particles { display:none; }
  * { transition-duration:0.01ms !important; }
}

@media(max-width:900px) {
  /* portrait shows properly on phones instead of fading out */
  .bio-img { height:105vw; max-height:560px; }
  .bio-img::after { background:linear-gradient(to top,var(--opal) 0%,transparent 30%); }
}
@media(max-width:768px) {
  .show-row { grid-template-columns:64px 1fr; }
}
@media(max-width:580px) {
  body { font-size:1rem; }
  .show-row { grid-template-columns:1fr; }
  .band, #epk, #music, #artists, #connect, #ebook { padding-left:1.4rem; padding-right:1.4rem; }
  #video, #per-astra { padding-left:1.4rem !important; padding-right:1.4rem !important; }
  .bio-text-wrap { padding-left:1.4rem; padding-right:1.4rem; }
  .gallery-header { padding-left:1.4rem; padding-right:1.4rem; }
  .page-lede { font-size:1.0625rem; }
  .prose p.lead { font-size:1.1875rem; }
  .epk-stats .stat { padding:1.4rem 0.6rem; }
}

/* Heading leading */
.faq-item h3, .track-title, .proj-text h2, .fact-v { line-height:1.25; }

/* Remaining tap targets */
.nav-logo, footer > a { min-height:44px; display:inline-flex; align-items:center; }
.footer-links { gap:0.2rem 1.4rem; }
.footer-links a { min-height:44px; display:inline-flex; align-items:center; font-weight:600; }
.star-btn { width:44px; height:44px; }
.email-link { padding:0.35rem 0; }

/* Creative direction block */
.cd-wrap { display:grid; grid-template-columns:1.1fr 0.9fr; gap:4rem; align-items:center; }
.cd-p { font-size:1.0625rem; line-height:1.7; color:var(--text-mid); margin-top:1.2rem; max-width:52ch; }
.cd-list li { font-size:1.0625rem; padding:0.9rem 0; }
#creative-direction .s-title { color:var(--cosmic-indigo); }
@media(max-width:900px) { .cd-wrap { grid-template-columns:1fr; gap:2rem; } }

/* Homepage: this year's played dates sit under the upcoming ones */
.tour-played { margin-top:1rem; }
.tour-played-h { font-family:'Nunito',sans-serif; font-size:0.8125rem; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:var(--text-soft); text-align:center; margin:1.5rem 0 2rem; }
.tour-played .month-group { margin-bottom:2.2rem; }
.tour-played .show-row { padding-top:1rem; padding-bottom:1rem; }

/* Spotlight set */
.sc-feature { margin-top:2.4rem; padding:1.8rem 1.8rem 1.6rem; background:rgba(255,255,255,0.85); border:1px solid rgba(224,85,117,0.25); box-shadow:0 12px 36px rgba(224,85,117,0.09); }
.sc-feature-tag { display:inline-block; font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:700; color:var(--plum); background:linear-gradient(135deg,#f0c060,#fde8d8); padding:0.3rem 0.8rem; margin-bottom:0.9rem; }
.sc-feature-title { font-size:clamp(1.5rem,3vw,2.1rem); margin-bottom:0.2rem; }
.sc-feature-meta { font-size:0.9375rem; color:var(--text-soft); margin-bottom:1.1rem; }
.sc-feature iframe { display:block; width:100%; }
@media(max-width:580px) { .sc-feature { padding:1.3rem 1.1rem 1.1rem; } }

/* ── About photo: words on the left, the stage photo on the right, dissolving into the page ──
   The photo is feathered with a mask (real transparency, so the page shows through the edges),
   sits on a soft aura of the site's own colours, and carries a few slow-twinkling sparks. */
.magic { position:relative; isolation:isolate; }
.magic::before { content:''; position:absolute; z-index:-1; inset:-11% -13%; pointer-events:none;
  /* stage light spilling out of the photo: saturated where it meets the picture, fading to nothing on the page */
  background:
    radial-gradient(ellipse 62% 50% at 14% 20%, #a45cf0 0%, rgba(164,92,240,0) 100%),
    radial-gradient(ellipse 60% 48% at 88% 82%, #4f8df2 0%, rgba(79,141,242,0) 100%),
    radial-gradient(ellipse 55% 42% at 86% 12%, #ec5f9a 0%, rgba(236,95,154,0) 100%),
    radial-gradient(ellipse 55% 42% at 12% 88%, #e56ad8 0%, rgba(229,106,216,0) 100%),
    linear-gradient(135deg, #9a5cf0, #e0559a 55%, #5a6ef0);
  -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.22) 7%, rgba(0,0,0,0.62) 14%, #000 21%, #000 79%, rgba(0,0,0,0.62) 86%, rgba(0,0,0,0.22) 93%, transparent 100%), linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.22) 6%, rgba(0,0,0,0.62) 12%, #000 19%, #000 81%, rgba(0,0,0,0.62) 88%, rgba(0,0,0,0.22) 94%, transparent 100%);
          mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.22) 7%, rgba(0,0,0,0.62) 14%, #000 21%, #000 79%, rgba(0,0,0,0.62) 86%, rgba(0,0,0,0.22) 93%, transparent 100%), linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.22) 6%, rgba(0,0,0,0.62) 12%, #000 19%, #000 81%, rgba(0,0,0,0.62) 88%, rgba(0,0,0,0.22) 94%, transparent 100%);
  -webkit-mask-composite:source-in; mask-composite:intersect; }
.magic img { display:block; border:0;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.5) 11%, #000 27%, #000 88%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 13%, #000 80%, transparent 100%);
          mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.5) 11%, #000 27%, #000 88%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 13%, #000 80%, transparent 100%);
  -webkit-mask-composite:source-in; mask-composite:intersect; }
.tw { position:absolute; z-index:2; width:20px; height:20px; pointer-events:none; opacity:0.2;
  background:radial-gradient(circle, #fff 0%, #fff 18%, var(--tw,#f0c060) 60%);
  -webkit-clip-path:polygon(50% 0, 59% 41%, 100% 50%, 59% 59%, 50% 100%, 41% 59%, 0 50%, 41% 41%);
          clip-path:polygon(50% 0, 59% 41%, 100% 50%, 59% 59%, 50% 100%, 41% 59%, 0 50%, 41% 41%);
  animation:twinkle 4.2s ease-in-out infinite; }
@keyframes twinkle { 0%,100%{opacity:0.12; transform:scale(0.55) rotate(0deg)} 50%{opacity:1; transform:scale(1.15) rotate(18deg)} }
.tw1 { top:7%;  left:9%;  --tw:#f0c060; width:30px; height:30px; }
.tw2 { top:19%; left:1%;  --tw:#f7a8bc; animation-delay:1.1s; }
.tw3 { top:46%; left:5%;  --tw:#85ddd8; width:15px; height:15px; animation-delay:2.3s; }
.tw4 { top:71%; left:11%; --tw:#c890f0; width:25px; height:25px; animation-delay:0.6s; }
.tw5 { top:88%; left:38%; --tw:#f0c060; width:15px; height:15px; animation-delay:3.0s; }
.tw6 { top:3%;  left:55%; --tw:#85ddd8; animation-delay:1.8s; }
.tw7 { top:90%; left:79%; --tw:#f7a8bc; width:27px; height:27px; animation-delay:2.7s; }

/* About page */
.about-photo img { border:0; width:100%; height:auto; aspect-ratio:2/3; object-fit:cover; object-position:60% 45%; }
@media(min-width:901px) {
  .about-wrap { grid-template-columns:1.1fr 0.9fr; gap:3rem; }
  .about-wrap .prose { order:1; }
  .about-photo { order:2; top:5.5rem; }
  .about-photo img { max-height:calc(100vh - 7.5rem); }
}
@media(max-width:900px) {
  .about-photo { max-width:460px; width:100%; }
  .about-photo .magic::before { inset:-8% -5%; }
  .about-photo .magic img { aspect-ratio:4/5; object-position:62% 52%;
    -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 10%, #000 78%, transparent 100%);
            mask-image:linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 10%, #000 78%, transparent 100%); }
}

/* Homepage About band */
#bio .bio-img { overflow:visible; }
#bio .bio-img::after { display:none; }
#bio .bio-img img { object-position:62% 40%; }
#bio .bio-img:hover img { transform:none; }
@media(min-width:901px) {
  #bio .bio-img { order:2; }
  #bio .bio-text-wrap { order:1; padding:5rem 3rem 4rem 4rem; }
  #bio .bio-img.magic::before { inset:-4% 0 -4% -16%;
    -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.2) 9%, rgba(0,0,0,0.6) 19%, #000 30%), linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.3) 6%, #000 15%, #000 85%, rgba(0,0,0,0.3) 94%, transparent 100%);
            mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.2) 9%, rgba(0,0,0,0.6) 19%, #000 30%), linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.3) 6%, #000 15%, #000 85%, rgba(0,0,0,0.3) 94%, transparent 100%); }
  #bio .bio-img img { -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.45) 12%, #000 30%), linear-gradient(to bottom, transparent 0%, #000 12%, #000 86%, transparent 100%);
                              mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.45) 12%, #000 30%), linear-gradient(to bottom, transparent 0%, #000 12%, #000 86%, transparent 100%); }
}
@media(max-width:900px) {
  #bio .bio-img.magic::before { inset:0 0 -9% 0; -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 74%, rgba(0,0,0,0.45) 88%, transparent 100%); mask-image:linear-gradient(to bottom, #000 0%, #000 74%, rgba(0,0,0,0.45) 88%, transparent 100%); -webkit-mask-composite:source-over; mask-composite:add; }
  #bio .bio-img img { -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 70%, transparent 100%); mask-image:linear-gradient(to bottom, #000 0%, #000 70%, transparent 100%); -webkit-mask-composite:source-over; mask-composite:add; }
}
@media (prefers-reduced-motion:reduce) { .tw { animation:none; opacity:0.7; } }
/* Press kit photo */
.epk-photo img { object-position:60% 26%; }
.epk-photo img { height:auto; }

/* Hero photo: modern format, smaller file on phones */
#heroBg { background-image:url('../images/daniela-dj-mutter-museum-halloween-2025.webp'); }
@media(max-width:700px) { #heroBg { background-image:url('../images/daniela-dj-mutter-museum-halloween-2025-800.webp'); } }

.sc-wrap iframe, .sc-feature iframe { width:100%; border:0; display:block; }

/* Homepage video highlight: four clips in a row; a swipeable strip on phones */
@media(max-width:900px) {
  .vid-reels-strip { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:0.8rem; padding-bottom:0.6rem; -webkit-overflow-scrolling:touch; }
  .vid-reels-strip .vid-reel { flex:0 0 68%; max-width:300px; scroll-snap-align:center; }
}

/* Nav on small laptops and tablets in landscape: tighten so six items stay on one line */
@media(min-width:901px) and (max-width:1080px) {
  nav { padding-left:1.5rem; padding-right:1.5rem; }
  .nav-links { gap:1.1rem; }
  .nav-links a { font-size:0.75rem; letter-spacing:0.08em; }
  .nav-links a.nav-book { padding:0 0.9rem; }
}

/* ───────── Lighter on phones: the same look for a fraction of the work per frame ───────── */
/* Background glows are plain gradients now, not a 110px blur filter the phone had to recompute */
.blob { filter:none; opacity:1; }
.blob-1 { width:1000px; height:1000px; top:-400px; right:-370px; background:radial-gradient(closest-side, rgba(247,168,188,0.17) 0%, rgba(224,208,248,0.11) 48%, rgba(224,208,248,0) 100%); }
.blob-2 { width:760px; height:760px; bottom:-310px; left:-290px; background:radial-gradient(closest-side, rgba(133,221,216,0.17) 0%, rgba(200,240,240,0.10) 48%, rgba(200,240,240,0) 100%); }
.blob-3 { width:640px; height:640px; top:calc(60% - 120px); left:calc(55% - 120px); background:radial-gradient(closest-side, rgba(240,192,96,0.10) 0%, rgba(253,232,216,0.06) 48%, rgba(253,232,216,0) 100%); opacity:1; }
/* Frosted-glass blur removed from things that scroll (every tour row had one) */
.show-row, .artist-card { -webkit-backdrop-filter:none; backdrop-filter:none; }
/* Shimmering text and lines only animate while they are on screen (site.js adds .on) */
.iri, .iri-line { animation-play-state:paused; }
.iri.on, .iri-line.on { animation-play-state:running; }
.sc-wrap iframe, .sc-feature iframe { background:rgba(255,255,255,0.55); }
@media(max-width:900px), (hover:none) and (pointer:coarse) {
  nav { -webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(255,252,250,0.97); }
  .nav-links.open { -webkit-backdrop-filter:none; backdrop-filter:none; }
  .hero-news .news-input { -webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(255,255,255,0.16); }
  .blob { animation:none; }
  .blob-3 { display:none; }
  .iri-line { animation:none; }
  .hero-logo-wrap text { filter:none; }
}

/* ───────── Showreel block ───────── */
.reel-wrap { display:grid; grid-template-columns:minmax(240px,330px) 1fr; gap:3.5rem; align-items:center; max-width:980px; margin:0 auto; }
.reel-frame { margin:0; position:relative; }
.reel-frame video { display:block; width:100%; aspect-ratio:9/16; object-fit:cover; background:#1a1024; border:1px solid rgba(224,85,117,0.2); box-shadow:0 18px 50px rgba(120,60,160,0.22); }
.reel-text .cd-list { margin-top:1.2rem; }
.reel-text .proj-links { margin-top:1.8rem; }
@media(max-width:900px) {
  .reel-wrap { grid-template-columns:1fr; gap:2.2rem; }
  .reel-frame { width:100%; max-width:320px; margin:0 auto; }
}

/* ───────── Inquiry form ───────── */
.inq-form { display:grid; gap:1.15rem; max-width:680px; margin:2.4rem auto 0; text-align:left; position:relative; }
.inq-row { display:grid; grid-template-columns:1fr 1fr; gap:1.15rem; }
.inq-form label { display:block; font-size:0.8125rem; letter-spacing:0.12em; text-transform:uppercase; font-weight:700; color:var(--text-mid); }
.inq-form input, .inq-form select, .inq-form textarea { display:block; width:100%; margin-top:0.45rem; padding:0.8rem 0.95rem; font-family:'Nunito',sans-serif; font-size:1rem; font-weight:400; line-height:1.4;
  letter-spacing:0; text-transform:none; color:var(--cosmic-indigo); background:#fff; border:1px solid rgba(99,74,105,0.5); border-radius:2px; min-height:48px; }
.inq-form textarea { resize:vertical; min-height:120px; }
.inq-form input::placeholder, .inq-form textarea::placeholder { color:var(--text-soft); opacity:1; }
.inq-form input:focus, .inq-form select:focus, .inq-form textarea:focus { border-color:var(--rose-ink); }
.inq-form .inq-hp { position:absolute; left:-9999px; width:1px; height:1px; min-height:0; padding:0; border:0; }
.inq-form button { justify-self:start; cursor:pointer; border:0; min-height:48px; }
.inq-form button[disabled] { opacity:0.7; cursor:default; }
.inq-note { font-size:0.9375rem; line-height:1.6; color:var(--text-soft); }
.inq-note a { color:var(--rose-ink); }
@media(max-width:580px) { .inq-row { grid-template-columns:1fr; } .inq-form button { justify-self:stretch; } }

/* ───────── Case studies ───────── */
.proj-img.natural img { aspect-ratio:auto; max-height:640px; object-fit:cover; }
.cs-cards { display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; margin-top:2.5rem; }
.cs-card { display:block; text-decoration:none; background:rgba(255,255,255,0.85); border:1px solid rgba(224,85,117,0.14); transition:transform 0.3s, box-shadow 0.3s, border-color 0.3s; padding-bottom:1.6rem; }
.cs-card:hover { transform:translateY(-3px); border-color:rgba(224,85,117,0.4); box-shadow:0 12px 30px rgba(224,85,117,0.1); }
.cs-card img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; object-position:50% 38%; }
.cs-card span { display:block; padding:0 1.6rem; }
.cs-card-k { font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:700; color:var(--teal-ink); margin-top:1.4rem; }
.cs-card-h { font-family:'Cormorant',serif; font-size:1.9rem; font-weight:600; color:var(--cosmic-indigo); line-height:1.15; margin-top:0.4rem; }
.cs-card-p { font-size:1rem; line-height:1.65; color:var(--text-mid); margin-top:0.5rem; }
.cs-card-more { font-size:0.8125rem; letter-spacing:0.16em; text-transform:uppercase; font-weight:700; color:var(--rose-ink); margin-top:1rem; text-decoration:underline; text-decoration-color:rgba(194,52,91,0.4); text-underline-offset:5px; }
.cs-watch { display:grid; grid-template-columns:1fr minmax(200px,280px); gap:1.5rem; align-items:start; margin-top:2.2rem; }
.cs-reels { grid-template-columns:repeat(3,minmax(0,260px)); justify-content:center; margin-top:2.2rem; }
@media(max-width:900px) {
  .cs-cards { grid-template-columns:1fr; }
  .cs-watch { grid-template-columns:1fr; }
  .cs-watch .vid-reel { max-width:300px; margin:0 auto; width:100%; }
  .cs-reels { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:0.8rem; padding-bottom:0.6rem; -webkit-overflow-scrolling:touch; justify-content:flex-start; }
  .cs-reels .vid-reel { flex:0 0 68%; max-width:300px; scroll-snap-align:center; }
}

/* Ebook: instant download after sign-up */
.ebook-note .ebook-dl { display:inline-flex; align-items:center; min-height:48px; margin-top:0.8rem; padding:0.75rem 1.4rem; background:linear-gradient(135deg,#c2345b,#8a4fc4); color:#fff; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; font-size:0.8125rem; text-decoration:none; box-shadow:0 8px 22px rgba(224,85,117,0.25); }
.ebook-note .ebook-dl:hover { filter:brightness(1.05); }
