/* ============================================
   AWAVE — Shared stylesheet
   Inspired by universalmusic.com
   Dark / editorial / cyan accent
   ============================================ */

:root{
  --ink:#000000;
  --ink-2:#0a0a0a;
  --ink-3:#141414;
  --line:#1f1f1f;
  --line-2:#2a2a2a;
  --paper:#ffffff;
  --paper-dim:#9a9a9a;
  --paper-dim-2:#666666;
  --cyan:#00aeef;
  --cyan-2:#0098d1;
  --cyan-soft:#7fd5f3;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{background:var(--ink);color:var(--paper);font-family:"Inter Tight",-apple-system,BlinkMacSystemFont,sans-serif;font-weight:300;letter-spacing:.005em;-webkit-font-smoothing:antialiased;line-height:1.5}
body{overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--cyan);color:var(--ink)}

/* ---------- Typography ---------- */
.display{font-family:"Cormorant Garamond","Times New Roman",serif;font-weight:400;letter-spacing:-.015em;line-height:1}
.display em{font-style:italic;color:var(--cyan);font-weight:400}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:400;letter-spacing:.12em;text-transform:uppercase;font-size:11px;color:var(--paper-dim)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan)}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--cyan)}
.cyan{color:var(--cyan)}

/* ---------- Layout ---------- */
.wrap{max-width:1480px;margin:0 auto;padding:0 40px}
@media (max-width:700px){.wrap{padding:0 22px}}
section{position:relative;padding:120px 0}
@media (max-width:900px){section{padding:80px 0}}

/* ---------- Navigation ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(0,0,0,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-inner{max-width:1480px;margin:0 auto;padding:20px 40px;display:flex;align-items:center;justify-content:space-between;gap:30px}
@media (max-width:700px){.nav-inner{padding:18px 22px}}
.brand{display:flex;align-items:center;gap:14px;font-family:"Cormorant Garamond",serif;font-size:22px;letter-spacing:.42em;font-weight:400}
.brand-dot{width:7px;height:7px;background:var(--cyan);border-radius:50%;box-shadow:0 0 12px var(--cyan);animation:dotPulse 2.4s ease-in-out infinite}
@keyframes dotPulse{
  0%,100%{box-shadow:0 0 8px var(--cyan);opacity:.85}
  50%{box-shadow:0 0 18px var(--cyan),0 0 30px rgba(0,174,239,.5);opacity:1}
}

/* ---------- Animated SVG Logo (EKG dot) ---------- */
.brand-logo{height:22px;width:auto;display:block;overflow:visible}
.brand-logo .base{fill:none;stroke:#fff;stroke-opacity:.4;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.brand-logo .trail{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #00aeef) drop-shadow(0 0 8px #00aeef)}
@media (max-width:700px){.brand-logo{height:18px}}

/* ---------- Hero animated logo (EKG dot, larger) ---------- */
.hero-logo{display:block;width:min(560px,80vw);height:auto;margin:0 auto 50px;overflow:visible}
.hero-logo .base{fill:none;stroke:#fff;stroke-opacity:.35;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.hero-logo .trail{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px #00aeef) drop-shadow(0 0 12px #00aeef)}
.nav-links{display:flex;gap:32px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper-dim)}
.nav-links a{position:relative;padding:6px 0;transition:color .25s}
.nav-links a:hover,.nav-links a.active{color:var(--paper)}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-cta{font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:11px 20px;border:1px solid var(--paper);border-radius:999px;color:var(--paper);transition:all .3s}
.nav-cta:hover{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
.menu-btn{display:none;width:32px;height:32px;flex-direction:column;justify-content:center;gap:5px;padding:0}
.menu-btn span{height:1px;background:var(--paper);display:block;transition:all .3s}
@media (max-width:900px){
  .nav-links{display:none}
  .nav-cta{display:none}
  .menu-btn{display:flex}
}
.mobile-menu{position:fixed;inset:0;background:var(--ink);z-index:200;padding:100px 30px 40px;display:none;flex-direction:column;overflow-y:auto}
.mobile-menu.open{display:flex}
.mobile-menu a{display:block;padding:18px 0;font-family:"Cormorant Garamond",serif;font-size:32px;border-bottom:1px solid var(--line)}
.mobile-menu a:hover{color:var(--cyan)}
.menu-close{position:absolute;top:22px;right:22px;font-size:24px;color:var(--paper);width:40px;height:40px;display:flex;align-items:center;justify-content:center}

/* ---------- Buttons ---------- */
.btn-primary{display:inline-flex;align-items:center;gap:14px;padding:17px 28px;background:var(--cyan);color:var(--ink);font-size:12px;letter-spacing:.22em;text-transform:uppercase;border-radius:999px;transition:all .3s;font-weight:500}
.btn-primary:hover{background:var(--paper);transform:translateY(-2px)}
.btn-primary .arrow{width:18px;height:1px;background:currentColor;position:relative}
.btn-primary .arrow::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn-ghost{display:inline-flex;align-items:center;gap:14px;padding:17px 28px;border:1px solid var(--line-2);color:var(--paper);font-size:12px;letter-spacing:.22em;text-transform:uppercase;border-radius:999px;transition:all .3s}
.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}

/* ---------- Page header / breadcrumbs ---------- */
.page-header{padding:160px 0 80px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.page-header::before{content:"";position:absolute;top:0;right:-10%;width:60%;height:100%;background:radial-gradient(ellipse at top right,rgba(0,174,239,.08) 0%,transparent 60%);pointer-events:none}
.crumbs{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:30px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.crumbs a:hover{color:var(--cyan)}
.crumbs .sep{color:var(--paper-dim-2)}
.crumbs .current{color:var(--cyan)}
.page-title{font-family:"Cormorant Garamond",serif;font-size:clamp(64px,9vw,140px);line-height:.92;font-weight:400;letter-spacing:-.025em;max-width:1100px}
.page-title em{font-style:italic;color:var(--cyan);font-weight:400}
.page-subtitle{margin-top:30px;font-size:18px;line-height:1.6;color:var(--paper-dim);max-width:640px;font-weight:300}

/* ---------- Section header ---------- */
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:70px;gap:30px;flex-wrap:wrap}
.section-title{font-family:"Cormorant Garamond",serif;font-size:clamp(44px,5.5vw,84px);line-height:.95;font-weight:400;letter-spacing:-.02em}
.section-title em{color:var(--cyan);font-style:italic}
.section-aside{max-width:380px;color:var(--paper-dim);font-size:15px;line-height:1.6}

/* ---------- Footer ---------- */
footer{background:var(--ink);border-top:1px solid var(--line);padding:80px 0 36px;margin-top:60px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;margin-bottom:60px}
@media (max-width:800px){.foot-grid{grid-template-columns:1fr 1fr;gap:40px}}
.foot-brand h3{font-family:"Cormorant Garamond",serif;font-size:42px;letter-spacing:.18em;font-weight:400;margin-bottom:14px}
.foot-brand p{color:var(--paper-dim);font-size:14px;line-height:1.6;max-width:380px}
.foot-col h4{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);margin-bottom:18px}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.foot-col a{font-size:14px;color:var(--paper-dim);transition:color .3s}
.foot-col a:hover{color:var(--paper)}
.foot-bottom{padding-top:32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper-dim)}
.socials{display:flex;gap:14px}
.socials a{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-2);border-radius:50%;transition:all .3s}
.socials a:hover{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
.socials svg{width:14px;height:14px;fill:currentColor}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:translateY(0)}
.h-line{display:block;overflow:hidden}
.h-line > span{display:inline-block;transform:translateY(110%);animation:rise 1.1s cubic-bezier(.2,.7,.2,1) forwards}
.h-line:nth-child(2) > span{animation-delay:.18s}
.h-line:nth-child(3) > span{animation-delay:.32s}
@keyframes rise{to{transform:translateY(0)}}
.fade-in{opacity:0;animation:fadeIn 1.2s ease forwards}
.fade-in.d1{animation-delay:.5s}
.fade-in.d2{animation-delay:.75s}
.fade-in.d3{animation-delay:1s}
@keyframes fadeIn{to{opacity:1}}

/* ---------- Empty state placeholder (for empty artist grid etc) ---------- */
.empty-state{padding:120px 40px;text-align:center;border:1px dashed var(--line-2);border-radius:2px;background:var(--ink-2)}
.empty-state-icon{width:60px;height:60px;border:1px solid var(--cyan);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:30px;color:var(--cyan)}
.empty-state h3{font-family:"Cormorant Garamond",serif;font-size:36px;margin-bottom:16px;letter-spacing:-.01em}
.empty-state p{color:var(--paper-dim);max-width:480px;margin:0 auto 30px;line-height:1.6}
.empty-state .mono{display:inline-block;padding:10px 18px;background:rgba(0,174,239,.08);border:1px solid var(--cyan);color:var(--cyan);border-radius:999px}
