@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-500.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/inter-700.woff2) format('woff2')}
@font-face{font-family:'Exo 2';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/exo2-500.woff2) format('woff2')}
@font-face{font-family:'Exo 2';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/exo2-700.woff2) format('woff2')}
:root{
  --bg:#000000; --panel:rgba(255,255,255,.035); --line:rgba(255,255,255,.10);
  --fg:#eef2f6; --muted:#9aa6b2; --cyan:#22d3ee; --magenta:#e879f9;
  --maxw:1180px; --r:16px; --disp:"Exo 2",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--fg);
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
a{color:inherit;text-decoration:none}
.disp{font-family:var(--disp)}

/* Nav */
header.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);
  background:rgba(0,0,0,.72);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;gap:24px;height:64px}
.brand{font-family:var(--disp);font-weight:700;font-size:1.25rem;letter-spacing:-.01em}
nav.links{margin-left:auto;display:flex;gap:28px}
nav.links a{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:color .2s}
nav.links a:hover,nav.links a[aria-current]{color:var(--fg)}
.nav-cta{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--cyan);
  color:var(--cyan);padding:8px 16px;border-radius:999px;transition:.2s;white-space:nowrap}
.nav-cta:hover{background:var(--cyan);color:#04121a}
.nav-toggle{display:none;background:none;border:0;color:var(--fg);font-size:1.4rem;line-height:1;cursor:pointer;padding:6px 8px}

/* Home hero */
.hero{text-align:center;padding:60px 0 40px}
.hero img{width:min(330px,74vw);height:auto;animation:float 5s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-10px)}}
.hero h1{font-family:var(--disp);font-weight:700;font-size:clamp(2.8rem,8vw,5rem);margin:14px 0 8px;letter-spacing:-.02em;
  background:linear-gradient(92deg,var(--cyan),var(--magenta));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.tag{color:var(--muted);text-transform:uppercase;letter-spacing:.34em;font-size:.82rem}
.genres{margin-top:18px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.genres span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:6px 14px}

/* Inner page header */
.page-head{padding:54px 0 12px}
.eyebrow{font-family:var(--disp);font-weight:600;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--cyan)}
.page-head h1{font-family:var(--disp);font-weight:700;font-size:clamp(2.2rem,6vw,3.4rem);letter-spacing:-.02em;margin:10px 0 10px}
.page-head p.lead{color:var(--muted);max-width:60ch}
.subscribe{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.subscribe a{font-family:var(--disp);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg);
  border:1px solid var(--line);border-radius:999px;padding:9px 15px;transition:.2s}
.subscribe a:hover{border-color:var(--cyan);color:var(--cyan)}

/* Latest (home) */
.latest{display:grid;grid-template-columns:1fr;gap:24px;margin:40px 0;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.latest h2{font-family:var(--disp);font-weight:700;font-size:clamp(1.7rem,3.4vw,2.25rem);letter-spacing:-.015em;margin:10px 0 8px}
.grad{background:linear-gradient(92deg,var(--cyan),var(--magenta));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
@media(min-width:880px){.latest{grid-template-columns:1.15fr .85fr;align-items:stretch}
  .latest>div:first-child{display:flex;flex-direction:column}
  .latest .frame{flex:1;min-height:0}
  .latest .tl-col{display:flex;flex-direction:column;min-height:0}
  .latest .tl-col .tl{flex:1;min-height:0;max-height:none}}

/* Mixcloud frame */
.frame{position:relative;width:100%;min-height:320px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.frame.sq{min-height:0;aspect-ratio:1/1}
.frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Tracklist */
.tl{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:7px;max-height:300px;overflow:auto}
.tl li{display:flex;gap:12px;font-size:.9rem;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.tl li b{color:var(--cyan);font-variant-numeric:tabular-nums;font-weight:500;min-width:48px}

/* Section title */
h3.sec{font-family:var(--disp);font-weight:600;font-size:.82rem;letter-spacing:.26em;text-transform:uppercase;color:#c7d2da;
  margin:0 0 20px;display:flex;align-items:center;gap:14px}
h3.sec::before{content:"";width:32px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--cyan),var(--magenta))}

/* Explore cards (home) */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:56px}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px;transition:.25s}
.card:hover{transform:translateY(-5px);border-color:rgba(34,211,238,.5);box-shadow:0 18px 40px rgba(34,211,238,.12)}
.card .n{font-family:var(--disp);font-weight:600;font-size:.7rem;color:var(--cyan);letter-spacing:.2em}
.card h4{font-family:var(--disp);font-weight:700;font-size:1.35rem;margin:10px 0 6px;letter-spacing:-.01em}
.card:hover h4{text-shadow:0 0 16px rgba(34,211,238,.30)}
.card p{font-size:.9rem;color:var(--muted)}
.card .go{margin-top:16px;font-size:.8rem;letter-spacing:.1em;color:var(--cyan)}

/* Episode list (Hour of Power) */
.episodes{display:grid;gap:22px;margin:28px 0 56px}
.ep{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px;
  display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:840px){.ep{grid-template-columns:1.1fr .9fr}}
.ep .meta .code{font-family:var(--disp);font-weight:600;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan)}
.ep .meta h2{font-family:var(--disp);font-weight:700;font-size:1.55rem;letter-spacing:-.015em;margin:6px 0 4px}
.ep .meta .date{color:var(--muted);font-size:.82rem;letter-spacing:.06em}
.ep .meta .note{color:var(--muted);margin:12px 0 14px}
.ep .links{display:flex;gap:10px;flex-wrap:wrap}
.ep .links a{font-family:var(--disp);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:9px 14px;border:1px solid var(--line);border-radius:8px;transition:.18s}
.ep .links a.primary{background:var(--cyan);color:#04121a;border-color:var(--cyan)}
.ep .links a:hover{border-color:var(--cyan);color:var(--cyan)}
.ep .links a.primary:hover{color:#04121a;opacity:.9}

/* Archive grid (Mixes) */
.arc{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin:24px 0 56px}
.arc a{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px;transition:.22s}
.arc a:hover{transform:translateY(-4px);border-color:rgba(34,211,238,.45)}
.arc a h4{font-family:var(--disp);font-weight:700;font-size:1.25rem;margin-bottom:8px}
.arc a p{color:var(--muted);font-size:.88rem}
.arc a .go{margin-top:14px;color:var(--cyan);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-family:var(--disp)}

/* Linktree */
.linktree{max-width:560px;margin:8px auto 60px}
.linktree a{display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:12px 0;transition:.18s}
.linktree a:hover{border-color:var(--cyan);transform:translateX(4px)}
.linktree a b{font-family:var(--disp);font-weight:600;letter-spacing:.02em;margin-right:auto}
.linktree a span{color:var(--muted);font-size:.8rem;text-align:right}
.linktree a .arr{color:var(--cyan)}

/* Footer */
footer{border-top:1px solid var(--line);padding:36px 0;color:var(--muted);font-size:.88rem}
.foot{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.foot a:hover{color:var(--magenta)}

/* Mobile nav: hamburger toggles the links as a dropdown panel */
@media(max-width:680px){
  .nav-toggle{display:block}
  .nav-cta{margin-left:auto}
  nav.links{position:absolute;top:64px;left:0;right:0;display:none;flex-direction:column;gap:0;margin:0;z-index:60;
    background:rgba(0,0,0,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:6px 0}
  body.nav-open nav.links{display:flex}
  nav.links a{padding:14px 24px;font-size:.92rem;color:var(--fg)}
  nav.links a:active{background:var(--panel)}
}

/* ===== Artwork — episode / mix / remix cover art ===== */
/* Hour of Power episode rows: square cover beside the title block */
.ep .ep-head{display:flex;gap:16px;align-items:flex-start}
.ep .art{width:276px;height:276px;flex:none;border-radius:10px;object-fit:cover;
  border:1px solid var(--line);background:var(--panel);box-shadow:0 6px 18px rgba(0,0,0,.45)}
.ep:hover .art{border-color:rgba(34,211,238,.5)}
/* allow the grid items to shrink below content width (prevents overflow on phones) */
.ep,.ep>*,.ep .meta{min-width:0}

/* Home "latest episode" cover */
.latest .latest-head{display:flex;gap:18px;align-items:center;margin-bottom:14px}
.latest .art-lg{width:108px;height:108px;flex:none;border-radius:12px;object-fit:cover;
  border:1px solid var(--line);box-shadow:0 10px 28px rgba(0,0,0,.5)}

/* Archive grid (mixes & remixes): full-width square cover at the top of each card */
.arc a .art{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px;
  margin-bottom:16px;border:1px solid var(--line);background:var(--panel)}
.arc a:hover .art{border-color:rgba(34,211,238,.45)}
.arc a{overflow:hidden}

/* On narrow screens stack the cover above the text so the big art never crowds it */
@media(max-width:620px){
  .ep .ep-head{flex-direction:column}
  .latest .latest-head{flex-direction:column;align-items:flex-start;gap:14px}
}
@media(max-width:520px){.ep .art{width:216px;height:216px}}

