body::before{content:'';position:fixed;inset:-12%;z-index:-3;pointer-events:none;
  background:
    radial-gradient(ellipse 42% 32% at 18% 22%, rgba(232,52,42,.15), transparent 60%),
    radial-gradient(ellipse 36% 30% at 82% 68%, rgba(232,52,42,.10), transparent 62%),
    radial-gradient(ellipse 50% 42% at 50% 100%, rgba(120,18,14,.12), transparent 65%);
  animation:ambientDrift 30s ease-in-out infinite alternate;}
@keyframes ambientDrift{
  0%{transform:translate(0,0) scale(1);}
  50%{transform:translate(-2.5%,3%) scale(1.07);}
  100%{transform:translate(2.5%,-2%) scale(1);}
}

.breadcrumb{padding-top:150px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);}
.breadcrumb a:hover{color:var(--red-bright);}
.breadcrumb .current{color:var(--ink);}

.profile-hero{position:relative;padding:76px 0 90px;text-align:center;overflow:hidden;isolation:isolate;}
.profile-hero::before{content:'';position:absolute;inset:-15%;z-index:-2;pointer-events:none;
  background:
    radial-gradient(ellipse 48% 40% at 50% 30%, rgba(232,52,42,.20), transparent 65%),
    radial-gradient(ellipse 38% 46% at 10% 88%, rgba(232,52,42,.12), transparent 62%),
    radial-gradient(ellipse 34% 40% at 92% 80%, rgba(120,18,14,.14), transparent 60%);
  filter:blur(4px);
  animation:heroGlowDrift 34s ease-in-out infinite alternate;}
@keyframes heroGlowDrift{
  0%{transform:translate(0,0) scale(1);}
  100%{transform:translate(-1.5%,2%) scale(1.06);}
}
.profile-hero::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:
    radial-gradient(2px 2px at 15% 22%, rgba(255,255,255,.25), transparent),
    radial-gradient(2px 2px at 82% 18%, rgba(255,255,255,.18), transparent),
    radial-gradient(1.5px 1.5px at 68% 72%, rgba(232,52,42,.45), transparent),
    radial-gradient(2px 2px at 28% 78%, rgba(255,255,255,.16), transparent),
    radial-gradient(1.5px 1.5px at 92% 58%, rgba(255,255,255,.2), transparent),
    radial-gradient(2px 2px at 44% 8%, rgba(232,52,42,.32), transparent),
    radial-gradient(1.5px 1.5px at 8% 60%, rgba(255,255,255,.14), transparent);}

/* Oversized artist name rendered as background typography, behind the
   photo. Purely decorative/atmospheric — the real, accessible heading is
   .profile-name below, so this is aria-hidden and never the only copy of
   the name on the page. */
.profile-name-bg{position:absolute;top:54%;left:50%;z-index:0;
  transform:translate(-50%,-50%);
  font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-size:clamp(84px,19vw,340px);line-height:1;letter-spacing:.01em;
  white-space:nowrap;pointer-events:none;user-select:none;
  color:rgba(255,255,255,.045);
  -webkit-text-stroke:1px rgba(232,52,42,.16);
  animation:profileNameDrift 42s ease-in-out infinite alternate;}
@keyframes profileNameDrift{
  0%{transform:translate(-50%,-50%) translateX(-1.2%) scale(1);}
  100%{transform:translate(-50%,-50%) translateX(1.2%) scale(1.035);}
}

.profile-hero-inner{position:relative;z-index:1;}

.profile-photo{position:relative;width:min(70vw,400px);aspect-ratio:1;margin:0 auto 40px;z-index:1;}
.profile-photo .glow{position:absolute;inset:-22%;border-radius:50%;background:radial-gradient(circle, rgba(232,52,42,.45), transparent 68%);filter:blur(14px);}
.profile-photo .ping-ring{position:absolute;inset:0;border-radius:50%;border:1px solid var(--red);
  opacity:0;animation:profping 3.6s cubic-bezier(.2,.6,.35,1) infinite;}
.profile-photo .ping-ring.r2{animation-delay:1.2s;}
.profile-photo .ping-ring.r3{animation-delay:2.4s;}
@keyframes profping{0%{transform:scale(1);opacity:.6;}100%{transform:scale(1.55);opacity:0;}}
.profile-photo .sweep-ring{position:absolute;inset:-15%;border-radius:50%;animation:profspin 5s linear infinite;
  background:conic-gradient(from 0deg, transparent 0deg, rgba(232,52,42,.42) 22deg, transparent 55deg);
  -webkit-mask:radial-gradient(circle, transparent 62%, #000 63%, #000 100%);
          mask:radial-gradient(circle, transparent 62%, #000 63%, #000 100%);}
.profile-photo .hud-ring{position:absolute;inset:-9%;border-radius:50%;border:1px dashed rgba(255,255,255,.2);
  animation:profspin 46s linear infinite;}
@keyframes profspin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.profile-photo img{position:relative;z-index:2;width:100%;height:100%;border-radius:50%;object-fit:cover;
  filter:grayscale(1) contrast(1.08);border:1px solid rgba(255,255,255,.16);
  box-shadow:0 0 60px -8px rgba(232,52,42,.4);}
.profile-name{position:relative;z-index:2;font-size:clamp(34px,6vw,56px);font-weight:600;margin-bottom:4px;}
.profile-tag{position:relative;z-index:1;font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);
  display:inline-flex;align-items:center;gap:10px;}
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s ease, transform .7s ease;}
[data-reveal].revealed{opacity:1;transform:translateY(0);}

.profile-bio{max-width:640px;margin:0 auto;padding-bottom:56px;}
.profile-bio p{color:var(--ink-dim);font-size:17px;line-height:1.8;}
.bio-statement{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(22px,3vw,30px);
  line-height:1.4;color:var(--ink);max-width:560px;margin:36px auto 0;letter-spacing:-.01em;}
.bio-statement span{color:var(--red-bright);}

.profile-socials{display:flex;justify-content:center;gap:20px;padding-bottom:100px;flex-wrap:wrap;}
.social-tile{width:58px;height:58px;border-radius:16px;border:1px solid var(--line);background:var(--bg-raised);
  display:flex;align-items:center;justify-content:center;transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;}
.social-tile svg{width:22px;height:22px;color:var(--ink-dim);transition:color .25s ease;}
.social-tile:hover{transform:translateY(-5px);border-color:var(--red);box-shadow:0 12px 30px -8px rgba(232,52,42,.5);}
.social-tile:hover svg{color:var(--red-bright);}

.back-link{display:flex;justify-content:center;padding-bottom:100px;}
.back-link a{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);display:inline-flex;align-items:center;gap:8px;transition:color .2s, gap .2s;}
.back-link a:hover{color:var(--red-bright);gap:12px;}

/* "Upcoming with OMNIVA" reuses .divider-ring/.section-head from
   front-page.css and .event-archive-grid/.event-card from event.css
   (both loaded before this file — see functions.php) so only the section
   itself needs a rule here. */
.profile-upcoming{padding-top:0;}

footer{border-top:1px solid var(--line);padding:40px 0;text-align:center;}
footer .brand{justify-content:center;margin-bottom:16px;}
footer p{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink-dim);}

@media (max-width:900px){
  .profile-photo{width:min(64vw,340px);}
}

@media (max-width:640px){
  .profile-socials a{padding:10px 16px;font-size:11px;}
  .profile-hero{padding:56px 0 70px;}
  .profile-photo{width:min(76vw,280px);}
  .profile-name-bg{font-size:clamp(60px,26vw,150px);-webkit-text-stroke:1px rgba(232,52,42,.13);}
  .profile-hero::before{filter:blur(6px);opacity:.75;}
}
