/* dlrp.ca — global styles (v73)
   Design goals:
   - Deterministic typography via self-hosted WOFF2
   - Portable relative paths (offline-safe)
   - Card-first layout (large + mini) with green→blue gradient language
   - Subtle "lab-glass" aesthetic + strong accessibility defaults
*/

/* Fonts (self-hosted) */
@font-face{
  font-family:"Inter";
  src:url("../fonts/InterVariable.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("../fonts/InterVariable-Italic.woff2") format("woff2");
  font-weight:100 900;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:"Space Grotesk";
  src:url("../fonts/SpaceGrotesk-Variable.woff2") format("woff2");
  font-weight:300 700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Caveat";
  src:url("../fonts/Caveat-Variable.woff2") format("woff2");
  font-weight:400 700;
  font-style:normal;
  font-display:swap;
}

:root{
  /* Brand / layout */
  --max: 1120px;

  /* Radii / shadows */
  --radius-lg: 26px;
  --radius-md: 18px;
  --radius-sm: 14px;
  --shadow: 0 22px 64px rgba(0,0,0,0.55);
  --shadow-soft: 0 12px 34px rgba(0,0,0,0.36);

  /* Core accent RGB (raw triplets for consistent alpha control) */
  --c-green: 92 255 176;
  --c-blue:  88 196 255;
  --c-violet: 199 92 255;

  /* Background (purple-first) */
  --bg0: #09021a;
  --bg1: #0b0320;
  --bg2: #12063a;
  --bg:  var(--bg1);

  /* Text */
  --ink: rgba(243,240,255,0.96);
  --muted: rgba(243,240,255,0.72);
  --muted2: rgba(243,240,255,0.60);

  /* Links / focus */
  --link: rgba(var(--c-blue),0.96);
  --ring: rgba(var(--c-blue),0.55);

  /* Surfaces / borders (tinted purple, not grey) */
  --surface:  rgba(var(--c-violet),0.08);
  --surface2: rgba(var(--c-violet),0.14);
  --glass: rgba(var(--c-violet),0.07);
  --border: rgba(255,255,255,0.12);
  --border2: rgba(255,255,255,0.18);

  /* Dark fills (purple-tinted, replaces older grey/black fills) */
  --void-72: rgba(11, 6, 32, 0.72);
  --void-70: rgba(11, 6, 32, 0.70);
  --void-55: rgba(11, 6, 32, 0.55);
  --void-35: rgba(11, 6, 32, 0.35);
  --void-25: rgba(11, 6, 32, 0.25);
  --void-20: rgba(11, 6, 32, 0.20);
  --void-16: rgba(11, 6, 32, 0.16);

  /* Gradient language (violet → blue → green) */
  --card-grad: linear-gradient(135deg,
    rgba(var(--c-violet),0.20),
    rgba(var(--c-blue),0.16),
    rgba(var(--c-green),0.12)
  );
  --card-grad-strong: linear-gradient(135deg,
    rgba(var(--c-violet),0.24),
    rgba(var(--c-blue),0.18),
    rgba(var(--c-green),0.14)
  );
  --card-grad-soft: linear-gradient(135deg,
    rgba(var(--c-violet),0.14),
    rgba(var(--c-blue),0.12)
  );

  /* Header glass */
  --nav-bg: linear-gradient(90deg, rgba(18, 6, 40, 0.72), rgba(11, 6, 32, 0.62));
  --nav-bg-scrolled: linear-gradient(90deg, rgba(22, 7, 52, 0.86), rgba(11, 6, 32, 0.74));

  /* Type scale */
  --text: 1rem;
  --h1: clamp(2.05rem, 1.25rem + 2.2vw, 3.2rem);
  --h2: clamp(1.6rem, 1.1rem + 1.35vw, 2.15rem);
  --h3: clamp(1.18rem, 1.02rem + 0.45vw, 1.42rem);
}

/* Focus mode: reduce background motion + glow (keeps purple palette) */
html.focus-mode{
  --card-grad-strong: linear-gradient(135deg,
    rgba(var(--c-violet),0.16),
    rgba(var(--c-blue),0.12),
    rgba(var(--c-green),0.10)
  );
  --card-grad-soft: linear-gradient(135deg,
    rgba(var(--c-violet),0.10),
    rgba(var(--c-blue),0.08)
  );
}






*{box-sizing:border-box}
html,body{height:100%}

/* v56 baseline — background + atmosphere */
body{
  margin:0;
  overflow-x:hidden;
  color: var(--ink);
  font-family:"Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height:1.55;
  background:
    radial-gradient(1200px 760px at 8% 32%, rgba(var(--c-violet),0.34), transparent 62%),
    radial-gradient(1100px 720px at 22% -12%, rgba(var(--c-violet),0.18), transparent 60%),
    radial-gradient(980px 640px at 78% 18%, rgba(var(--c-green),0.12), transparent 62%),
    radial-gradient(900px 620px at 62% 112%, rgba(var(--c-blue),0.10), transparent 64%),
    linear-gradient(180deg, var(--bg2), var(--bg1) 42%, var(--bg0));
}

html{scroll-behavior:smooth}



/* Subtle animated aurora (disabled for reduced motion) */
body::before{
  content:"";
  position:fixed;
  inset:-20vh -20vw;
  pointer-events:none;
  background:
    radial-gradient(900px 540px at 22% 18%, rgba(var(--c-blue),0.10), transparent 60%),
    radial-gradient(980px 620px at 78% 22%, rgba(var(--c-green),0.10), transparent 62%),
    radial-gradient(760px 520px at 50% 78%, rgba(var(--c-violet),0.10), transparent 65%);
  filter: blur(28px);
  opacity: 0.78;
  transform: translate3d(0,0,0);
  animation: aurora 18s ease-in-out infinite alternate;
  z-index:-1;
}
/* Permanent hero photo underlay (afterglow haze) */
body::after{
  content:"";
  position:fixed;
  inset:-6vh -6vw;
  pointer-events:none;
  background:
    radial-gradient(1200px 800px at 20% 20%, rgba(var(--c-violet),0.32), transparent 62%),
    radial-gradient(900px 700px at 80% 30%, rgba(var(--c-green),0.14), transparent 62%),
    linear-gradient(180deg, rgba(7,2,14,0.30), rgba(7,2,14,0.92) 76%),
    url("../img/hero/hero.JPEG");
  background-size: cover;
  background-position: center;
  filter: saturate(108%) contrast(106%) blur(8px);
  opacity: 0.16;
  transform: translate3d(0,0,0);
  z-index:-2;
}

html.focus-mode body::before{ opacity: 0.30; animation: none; }
html.focus-mode body::after{ opacity: 0.06; }


@keyframes aurora{
  from{ transform: translate3d(-1.5%, -0.8%, 0) scale(1.0); }
  to{ transform: translate3d(1.8%, 1.2%, 0) scale(1.03); }
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  body::before{animation:none}
}

a{color:inherit}

.skip-link{
  position:absolute;
  left:-999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip-link:focus{
  left:16px;
  top:16px;
  width:auto;
  height:auto;
  padding:10px 12px;
  border-radius: 999px;
  background: var(--void-70);
  border:1px solid rgba(255,255,255,0.18);
  z-index: 500;
}

/* Utility: visually-hidden (for semantic H1 etc.) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}


.main{padding: 22px 16px 44px;}
.section{max-width: var(--max); margin:0 auto 18px;}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap:12px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  background: var(--nav-bg);
  backdrop-filter: saturate(145%) blur(14px);
}
.site-header.scrolled{
  background: var(--nav-bg-scrolled);
  box-shadow: 0 14px 40px rgba(0,0,0,0.40);
}

.brand{min-width: 190px; display:flex; flex-direction:row; align-items:center; gap:10px; flex-wrap:nowrap;}
.brand-name{
  font-family:"Space Grotesk","Inter",system-ui,sans-serif;
  text-decoration:none;
  font-weight: 700;
  white-space: nowrap;
  letter-spacing: 0.2px;
}

.header-left{display:flex; align-items:center; gap:10px; min-width: 0; justify-self:start; flex-wrap:nowrap;}
.brand-sub{font-size:0.74rem; letter-spacing:0.14em; text-transform:uppercase; color: rgba(243,240,255,0.62);}

.huey-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 9px 14px;
  min-height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(var(--c-green),0.62);
  background: linear-gradient(180deg,
    rgba(var(--c-green),0.22),
    rgba(11, 6, 32, 0.78) 55%,
    rgba(7, 2, 14, 0.92)
  );
  color: rgba(243,240,255,0.98);
  text-decoration:none;
  font-weight: 850;
  font-size: 13.5px;
  line-height: 1;
  letter-spacing: 0.3px;
  box-shadow: 0 16px 44px rgba(0,0,0,0.52);
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease, background .12s ease;
}
.huey-pill:hover{
  transform: translateY(-2px);
  border-color: rgba(var(--c-green),0.75);
  box-shadow: 0 20px 54px rgba(0,0,0,0.62);
  background: linear-gradient(180deg,
    rgba(var(--c-green),0.28),
    rgba(11, 6, 32, 0.80) 55%,
    rgba(7, 2, 14, 0.92)
  );
}

/* Nav stacked labels (The / Playlist, The / Dogs) */
.nav-stack{display:inline-flex; align-items:center; gap:6px;}
.nav-top{font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color: rgba(243,240,255,0.62);}
.nav-bottom{font-weight: 800;}
@media (min-width: 821px){
  .nav-stack{flex-direction:column; align-items:center; gap:2px; line-height:1.0; padding-top:6px; padding-bottom:6px;}
  .nav-top{font-size:0.66rem;}
}

/* Nav dropdown (Projects / Research) */
#navLinks details{position:relative;}
#navLinks summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 8px 12px;
  border-radius: 999px;
  text-decoration:none;
  border:1px solid transparent;
  color: rgba(243,240,255,0.86);
  cursor:pointer;
  transition: transform .12s ease, background-color .12s ease, border-color .12s ease;
}
#navLinks summary::-webkit-details-marker{display:none;}
#navLinks summary:hover{
  transform: translateY(-1px);
  background: rgba(var(--c-violet),0.10);
  border-color: rgba(var(--c-blue),0.18);
}
#navLinks details[open] summary{
  background: var(--card-grad-soft);
  border-color: rgba(var(--c-blue),0.26);
  color: rgba(243,240,255,0.98);
}
.nav-dropdown-menu{
  position:absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 240px;
  padding: 10px;
  border-radius: var(--radius-md);
  border:1px solid rgba(255,255,255,0.12);
  background: rgba(18, 6, 30, 0.92);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  gap:6px;
  z-index: 80;
}
.nav-dropdown-menu a{justify-content:flex-start; width:100%;}

@media (max-width: 820px){
  #navLinks details{position:static;}
  .nav-dropdown-menu{
    position:static;
    transform:none;
    min-width: unset;
    padding: 6px 0 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .nav-dropdown-menu a{
    justify-content:center;
  }
}

.site-nav{justify-self:center}
#navLinks{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  justify-content:center;
  gap:10px;
  align-items:center;
  flex-wrap:nowrap;
}
#navLinks a{
  display:inline-flex;
  font-weight: 800;
  text-decoration:none;
  align-items:center;
  justify-content:center;
  padding: 8px 12px;
  border-radius: 999px;
  text-decoration:none;
  border:1px solid transparent;
  color: rgba(243,240,255,0.86);
  transition: transform .12s ease, background-color .12s ease, border-color .12s ease;
}
#navLinks a:hover{
  transform: translateY(-1px);
  background: rgba(var(--c-violet),0.10);
  border-color: rgba(var(--c-blue),0.18);
}
#navLinks a[aria-current="page"]{
  background: var(--card-grad-soft);
  border-color: rgba(var(--c-blue),0.26);
  color: rgba(243,240,255,0.98);
}

.header-cta{display:flex; align-items:center; gap:10px; min-width: 0; justify-self:end; justify-content:flex-end;}

/* Header: external links dropdown (no-JS friendly) */
.social-menu{ position:relative; }
.social-menu summary{ list-style:none; }
.social-menu summary::-webkit-details-marker{ display:none; }
.social-menu > summary.icon-btn{ width:44px; height:44px; }
.social-menu[open] > summary{
  border-color: rgba(var(--c-green),0.28);
  box-shadow: 0 14px 40px rgba(0,0,0,0.42);
}
.social-menu-panel{
  position:absolute;
  right:0;
  top: calc(100% + 10px);
  min-width: 220px;
  padding: 10px;
  border-radius: var(--radius-md);
  border:1px solid rgba(255,255,255,0.12);
  background: rgba(12, 6, 20, 0.92);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  gap:6px;
  z-index: 90;
}
.social-menu-panel a{
  justify-content:flex-start;
  width:100%;
}
@media (max-width: 820px){
  .social-menu-panel{
    right:auto;
    left:0;
    min-width: 200px;
  }
}

.huey-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.18);
  background: var(--card-grad-soft);
  backdrop-filter: blur(8px);
  text-decoration:none;
  font-weight:800;
  letter-spacing: 0.2px;
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}

/* Header: quick search button */
.cmdk-open{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(var(--c-violet),0.08);
  color: rgba(243,240,255,0.92);
}
.cmdk-open:hover{
  border-color: rgba(var(--c-blue),0.45);
  box-shadow: 0 14px 40px rgba(0,0,0,0.40);
}
.cmdk-open .cmdk-kbd{
  font-size: 12px;
  opacity: 0.72;
  border: 1px solid rgba(255,255,255,0.14);
  border-bottom-color: rgba(255,255,255,0.10);
  border-radius: 10px;
  padding: 4px 8px;
}
@media (max-width: 920px){
  .cmdk-open .cmdk-kbd{display:none;}
}

.huey-cta:hover{
  transform: translateY(-2px);
  border-color: rgba(var(--c-blue),0.26);
  box-shadow: 0 14px 36px rgba(0,0,0,0.45);
}

/* Icon button (search / menu) */
.icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.14);
  background: rgba(var(--c-violet),0.10);
  color: rgba(243,240,255,0.90);
  cursor:pointer;
  transition: transform .12s ease, border-color .12s ease, background-color .12s ease;
}
.icon-btn:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,0.22);
  background: rgba(var(--c-violet),0.14);
}
.icon-btn:active{transform: translateY(0px) scale(0.98);}

.nav-toggle{display:none}

/* Cards */
.card-kicker{
  font-family:"Space Grotesk","Inter",system-ui,sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.78rem;
  color: rgba(243,240,255,0.70);
}
.card-title{
  font-family:"Space Grotesk","Inter",system-ui,sans-serif;
  margin: 6px 0 10px;
  line-height: 1.08;
}
h1.card-title{font-size: var(--h1);}
h2.card-title{font-size: var(--h2);}

.card-body{color: rgba(243,240,255,0.88);}
.card-body p{margin: 0 0 10px;}

.card-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top: 10px;}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(11, 6, 32, 0.24);
  text-decoration:none;
  font-weight: 700;
  color: rgba(243,240,255,0.92);
  transition: transform .12s ease, border-color .12s ease, background-color .12s ease;
}
.btn:hover{
  transform: translateY(-1px);
  border-color: rgba(var(--c-blue),0.22);
  background: var(--void-20);
}

/* Button variants */
.btn.primary{
  border-color: rgba(var(--c-green),0.55);
  background: linear-gradient(180deg,
    rgba(var(--c-green),0.18),
    rgba(11, 6, 32, 0.76) 55%,
    rgba(7, 2, 14, 0.92)
  );
  box-shadow: 0 18px 52px rgba(0,0,0,0.55);
}
.btn.primary:hover{
  border-color: rgba(var(--c-green),0.72);
  background: linear-gradient(180deg,
    rgba(var(--c-green),0.24),
    rgba(11, 6, 32, 0.78) 55%,
    rgba(7, 2, 14, 0.92)
  );
  box-shadow: 0 22px 64px rgba(0,0,0,0.62);
}

/* Icon buttons: slightly greener glass */
.icon-btn{
  background: linear-gradient(180deg,
    rgba(var(--c-green),0.10),
    rgba(var(--c-violet),0.10)
  );
}
.icon-btn:hover{
  background: linear-gradient(180deg,
    rgba(var(--c-green),0.14),
    rgba(var(--c-violet),0.14)
  );
  border-color: rgba(var(--c-green),0.26);
}


.card-large{
  border-radius: var(--radius-lg);
  min-height: 340px;
  border: 1px solid rgba(255,255,255,0.12);
  background:
    linear-gradient(180deg, rgba(var(--c-violet),0.14), rgba(7,2,14,0.30)),
    var(--card-grad-strong),
    var(--surface);
  box-shadow: var(--shadow);
  overflow:hidden;
  display:grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  margin: 0 0 18px;
  position:relative;
  transform: translateZ(0);
  transition: transform .14s ease, border-color .14s ease;
}
.card-large::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: radial-gradient(900px 420px at 15% 10%, rgba(var(--c-violet),0.18), transparent 60%);
  opacity: 0.65;
}
.card-large:hover{
  transform: translateY(-2px);
  border-color: rgba(var(--c-blue),0.20);
}
.card-large--reverse{grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);}
.card-large__content{padding: 26px 26px 24px; position:relative;}
.card-large__media{padding: 18px; display:flex; align-items:center; justify-content:center; position:relative;}
.card-large__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius: var(--radius-md);
  border:1px solid rgba(255,255,255,0.12);
  background: var(--void-20);
}

.media-frame{
  width:100%;
  aspect-ratio: 16 / 11;
  border-radius: var(--radius-md);
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.12);
  background: var(--void-20);
}
.card-large__media .media-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  border:0;
  border-radius:0;
}
.card-large__media .media-frame picture{display:block; width:100%; height:100%;}

/* Motto / quote */
.quote{
  font-family: "Caveat","Inter",system-ui,sans-serif;
  font-size: clamp(1.15rem, 1.02rem + 0.6vw, 1.6rem);
  color: rgba(243,240,255,0.90);
  margin: 0;
}

/* Link list */
.link-list{margin:12px 0 0; padding-left:1.15rem;}
.link-list li{margin:0.35rem 0;}
.link-list a{text-decoration:none; border-bottom:1px solid rgba(255,255,255,0.18);} 
.link-list a:hover{border-color: rgba(var(--c-blue),0.80);}

/* Mini cards */
.mini-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.card-mini{
  text-decoration:none;
  border-radius: var(--radius-md);
  border:1px solid rgba(255,255,255,0.12);
  background:
    linear-gradient(180deg, rgba(var(--c-violet),0.14), rgba(7,2,14,0.30)),
    var(--card-grad-soft);
  box-shadow: var(--shadow-soft);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition: transform .12s ease, border-color .12s ease;
}
.card-mini:hover{
  transform: translateY(-2px);
  border-color: rgba(var(--c-blue),0.22);
}
.card-mini__media{
  aspect-ratio: 16/10;
  overflow:hidden;
}
.card-mini__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.card-mini__content{padding: 14px 14px 16px;}
.card-mini__title{
  font-family:"Space Grotesk","Inter",system-ui,sans-serif;
  font-size: var(--h3);
  margin:0 0 6px;
}
.card-mini__desc{margin:0 0 10px; color: var(--muted);}
.card-mini__link{font-weight:800; color: var(--link);}

.divider{height:1px; background: rgba(255,255,255,0.08); margin: 24px 0;}
.section-title{
  font-family:"Space Grotesk","Inter",system-ui,sans-serif;
  margin: 0 0 8px;
  font-size: var(--h2);
}
.muted{color: var(--muted)}

.embed{
  width:100%;
  aspect-ratio: 16/9;
  border-radius: var(--radius-lg);
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.12);
  box-shadow: var(--shadow);
  background: var(--void-25);
}
.embed iframe{width:100%; height:100%; border:0}

/* Gallery */
.gallery-section{margin-top: 24px}
.gallery-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 12px;
}
.gallery-item{
  margin:0;
  border-radius: var(--radius-md);
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.12);
  background: rgba(11, 6, 32, 0.24);
  position:relative;
}
.gallery-item button{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  width:100%;
  text-align:inherit;
  color:inherit;
  cursor: zoom-in;
}
.gallery-item img{
  width:100%;
  height: 220px;
  object-fit: cover;
  display:block;
}
.gallery-item figcaption{
  padding: 10px 12px;
  color: rgba(243,240,255,0.76);
  font-size: 0.95rem;
}

/* Footer */
.site-footer{
  padding: 22px 18px 26px;
  color: rgba(243,240,255,0.74);
  border-top: 1px solid rgba(255,255,255,0.06);
  background:
    linear-gradient(180deg, rgba(var(--c-violet),0.10), rgba(11, 6, 32, 0.40));
}
.site-footer a{color: var(--link); text-decoration:none}
.site-footer a:hover{text-decoration:underline}

.footer-inner{max-width: var(--max); margin:0 auto; display:flex; flex-direction:column; gap:14px;}
.footer-top{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.footer-brandline{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.footer-name{font-family:"Space Grotesk","Inter",system-ui,sans-serif; font-weight: 750; color: rgba(243,240,255,0.90);}
.footer-sep{opacity:0.55}
.footer-mail{font-weight:700}
.footer-build{font-size: 0.85rem; color: rgba(243,240,255,0.70); border:1px solid rgba(255,255,255,0.12); border-radius: 999px; padding: 4px 10px; background: rgba(var(--c-violet),0.08);}

/* v69 — compact footer links */
.footer-links{display:flex; flex-wrap:wrap; gap:10px; align-items:center;}
.footer-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 9px 12px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,0.12);
  background: rgba(var(--c-violet),0.06);
  color: rgba(243,240,255,0.86);
  text-decoration:none;
  font-weight: 750;
}
.footer-links a:hover{background: rgba(var(--c-blue),0.10); border-color: rgba(var(--c-blue),0.22); text-decoration:none;}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.footer-bottom-left{display:flex; align-items:center; gap:10px; color: rgba(243,240,255,0.68); font-size: 0.92rem;}
.footer-bottom-right{display:flex; align-items:center; gap:10px;}

.footer-grid{display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:12px; text-align:left; margin-top: 6px;}
.footer-col{border:1px solid rgba(255,255,255,0.10); border-radius: var(--radius-md); padding: 12px 12px 10px; background: rgba(var(--c-violet),0.045);}
.footer-h{font-family:"Space Grotesk","Inter",system-ui,sans-serif; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.78rem; color: rgba(243,240,255,0.70); margin: 2px 0 8px;}
.footer-col a{display:block; padding: 7px 8px; border-radius: 12px; color: rgba(243,240,255,0.86); text-decoration:none; font-weight: 700;}
.footer-col a:hover{background: rgba(var(--c-blue),0.10); color: rgba(243,240,255,0.96); text-decoration:none;}

.footer-bottom{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top: 2px;}
.footer-toplink{display:inline-flex; align-items:center; justify-content:center; padding: 10px 14px; border-radius: 999px; border:1px solid rgba(255,255,255,0.14); background: rgba(11, 6, 32, 0.22); color: rgba(243,240,255,0.84); text-decoration:none; font-weight: 700;}
.footer-toplink:hover{border-color: rgba(var(--c-blue),0.22); background: var(--void-20);}


@media (max-width: 960px){
  .footer-grid{grid-template-columns: repeat(2, minmax(0,1fr));}
}
@media (max-width: 560px){
  .footer-grid{grid-template-columns: 1fr;}
}

/* Track list table */
.table-wrap{
  margin-top: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  overflow: auto;
  background: rgba(11, 6, 32, 0.24);
}
.tracklist, .playlist-index{width:100%; border-collapse: collapse; min-width: 720px;}
.tracklist th, .tracklist td, .playlist-index th, .playlist-index td{padding:10px 12px; border-bottom:1px solid rgba(255,255,255,0.10); vertical-align: top;}
.tracklist thead th, .playlist-index thead th{
  position: sticky;
  top: 0;
  background: rgba(12, 6, 20, 0.85);
  backdrop-filter: blur(10px);
  font-family: "Space Grotesk","Inter",system-ui,sans-serif;
  font-weight: 800;
  text-align:left;
}
.tracklist tbody tr:hover, .playlist-index tbody tr:hover{background: rgba(var(--c-violet),0.08)}
.tracklist td.small, .playlist-index td.small{white-space: nowrap; color: rgba(243,240,255,0.92)}

/* Details (collapsible sections) */
.dlrp-details{
  border:1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-lg);
  background: rgba(var(--c-violet),0.06);
  padding: 12px 14px;
}
.dlrp-details > summary{
  cursor:pointer;
  font-weight: 700;
  list-style: none;
}
.dlrp-details > summary::-webkit-details-marker{display:none}
.dlrp-details > summary::before{
  content: "▸";
  display:inline-block;
  margin-right: 10px;
  transform: translateY(-1px);
  opacity: 0.85;
}
.dlrp-details[open] > summary::before{content:"▾"}
.dlrp-details > summary + *{margin-top: 10px}

/* Playlist filter */
.filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin: 8px 0 10px;
}
.filter-input{
  flex: 1 1 240px;
  min-width: 220px;
  padding: 12px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(11, 6, 32, 0.24);
  color: rgba(243,240,255,0.92);
}
.filter-input::placeholder{color: rgba(243,240,255,0.55)}
.filter-meta{color: var(--muted); font-size: 0.95rem;}

/* Command palette (Ctrl/⌘ + K) */
.cmdk{
  position:fixed;
  inset:0;
  display:none;
  align-items:flex-start;
  justify-content:center;
  padding: 78px 16px 24px;
  z-index: 300;
}
.cmdk.open{display:flex}
.cmdk-backdrop{
  position:absolute;
  inset:0;
  background: var(--void-55);
  backdrop-filter: blur(10px);
}
.cmdk-dialog{
  position:relative;
  width: min(780px, 100%);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(255,255,255,0.14);
  background: var(--card-grad-soft), rgba(14, 6, 22, 0.88);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.cmdk-top{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 14px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.cmdk-input{
  width:100%;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(11, 6, 32, 0.24);
  color: rgba(243,240,255,0.92);
  font-size: 1rem;
}
.cmdk-input::placeholder{color: rgba(243,240,255,0.55)}
.cmdk-kbd{
  display:inline-flex;
  gap:6px;
  align-items:center;
  font-size: 0.9rem;
  color: rgba(243,240,255,0.70);
}
.cmdk-kbd span{
  border:1px solid rgba(255,255,255,0.16);
  background: rgba(11, 6, 32, 0.24);
  border-radius: 10px;
  padding: 6px 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.cmdk-list{max-height: 56vh; overflow:auto; padding: 6px;}

/* Command palette — class aliases (v50 markup) */
.cmdk-head{display:flex; align-items:center; gap:10px; padding: 14px; border-bottom: 1px solid rgba(255,255,255,0.10);}
.cmdk-hint{padding: 10px 14px; border-bottom: 1px solid rgba(255,255,255,0.10); color: rgba(243,240,255,0.70); font-size: 0.92rem;}
.kbd{border:1px solid rgba(255,255,255,0.16); background: rgba(11, 6, 32, 0.24); border-radius: 10px; padding: 4px 8px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem;}
.cmdk-item{position:relative; text-align:left; width:100%; background: transparent; color: inherit;}
.cmdk-item.is-active{background: rgba(var(--c-violet),0.14); border-color: rgba(255,255,255,0.16);}
.cmdk-title{font-weight: 850; font-family:"Space Grotesk","Inter",system-ui,sans-serif;}
.cmdk-desc{color: var(--muted); font-size: 0.95rem;}
.cmdk-badge{position:absolute; top: 12px; right: 12px; font-size: 0.78rem; color: rgba(243,240,255,0.72); border:1px solid rgba(255,255,255,0.14); background: var(--void-20); border-radius: 999px; padding: 4px 10px;}
.cmdk-empty{padding: 18px 14px; color: rgba(243,240,255,0.70);} 

.cmdk-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid transparent;
  cursor:pointer;
}
.cmdk-item:hover{
  background: rgba(var(--c-violet),0.10);
  border-color: rgba(var(--c-blue),0.18);
}
.cmdk-item[aria-selected="true"]{
  background: rgba(var(--c-violet),0.14);
  border-color: rgba(255,255,255,0.16);
}
.cmdk-item-title{font-weight: 800; font-family:"Space Grotesk","Inter",system-ui,sans-serif;}
.cmdk-item-desc{color: var(--muted); font-size: 0.95rem;}
.cmdk-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding: 10px 14px;
  border-top: 1px solid rgba(255,255,255,0.10);
  color: rgba(243,240,255,0.66);
  font-size: 0.92rem;
}

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding: 20px 16px;
  z-index: 320;
}
.lightbox.open{display:flex}
.lightbox-backdrop{
  position:absolute;
  inset:0;
  background: var(--void-72);
  backdrop-filter: blur(12px);
}
.lightbox-dialog{
  position:relative;
  width: min(1120px, 100%);
  max-height: 92vh;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(10, 4, 18, 0.86);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.lightbox-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.lightbox-title{color: rgba(243,240,255,0.82); font-weight: 700;}
.lightbox-controls{display:flex; align-items:center; gap:8px;}
.lightbox-img-wrap{display:flex; align-items:center; justify-content:center; background: rgba(11, 6, 32, 0.24);}
.lightbox-img{
  max-width: 100%;
  max-height: calc(92vh - 56px);
  display:block;
}

/* Floating back-to-top */
.to-top{
  position:fixed;
  right: 16px;
  bottom: 16px;
  z-index: 260;
  display:none;
}
.to-top button{cursor:pointer}
.to-top.show{display:block}


/* Toast */
.toast{
  position:fixed;
  left:50%;
  bottom: 72px;
  transform: translateX(-50%);
  padding: 10px 14px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,0.14);
  background: rgba(12, 6, 20, 0.82);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow-soft);
  color: rgba(243,240,255,0.92);
  font-weight: 650;
  z-index: 270;
}

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible{
  outline: 3px solid var(--ring);
  outline-offset: 3px;
  border-radius: 14px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .huey-pill, #navLinks a, #navLinks summary, .btn, .card-large, .card-mini, .icon-btn{transition:none !important;}
  .huey-pill:hover, #navLinks a:hover, #navLinks summary:hover, .btn:hover, .card-large:hover, .card-mini:hover, .icon-btn:hover{transform:none !important;}
}

/* Responsive */
@media (max-width: 960px){
  .brand{min-width:auto}
  .header-cta{min-width:auto}
  .card-large, .card-large--reverse{grid-template-columns: 1fr;}
  .card-large__media{padding-top:0}
  .mini-grid{grid-template-columns: 1fr;}
  .gallery-grid{grid-template-columns: 1fr;}
}

@media (max-width: 820px){
  .nav-toggle{display:inline-flex}
  .site-nav{position:static}
  #navLinks{
    position:absolute;
    left:16px;
    right:16px;
    top: calc(100% + 10px);
    padding: 10px;
    border-radius: var(--radius-lg);
    border:1px solid rgba(255,255,255,0.12);
    background: rgba(18, 6, 30, 0.85);
    backdrop-filter: blur(12px);
    box-shadow: var(--shadow);
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
  }
  #navLinks.open{display:flex}
  #navLinks a{justify-content:center; text-align:center}
}

/* ──────────────────────────────────────────────────────────────
   Docs / Constitution styles (v50)
   ────────────────────────────────────────────────────────────── */
.prose{
  color: rgba(243,240,255,0.92);
  font-size: 1.02rem;
  line-height: 1.75;
}
.prose p{margin: 0 0 14px}
.prose h2,.prose h3{
  font-family: var(--font-display, "Space Grotesk", ui-sans-serif, system-ui);
  letter-spacing: -0.01em;
  margin: 22px 0 10px;
}
.prose h2{font-size: clamp(1.35rem, 1.05rem + .8vw, 1.75rem)}
.prose h3{font-size: clamp(1.12rem, 1.00rem + .5vw, 1.35rem)}
.prose hr{
  border:0;
  height:1px;
  background: rgba(255,255,255,0.10);
  margin: 18px 0;
}
.prose a{
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,0.28);
  text-underline-offset: 3px;
}
.prose a:hover{
  text-decoration-color: rgba(255,255,255,0.55);
}
.prose ul, .prose ol{
  margin: 10px 0 16px 22px;
}
.prose li{margin: 6px 0}

.doc-shell{
  border:1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, rgba(var(--c-violet),0.16), rgba(0,0,0,0.22)),
    var(--card-grad-soft),
    rgba(var(--c-violet),0.04);
  box-shadow: var(--shadow-soft);
  overflow:hidden;
}

.doc-head{
  padding: 18px 18px 10px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  background: rgba(11, 6, 32, 0.24);
}
.doc-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin: 8px 0 0;
}
.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 6px 10px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,0.14);
  background: rgba(11, 6, 32, 0.24);
  font-size: 0.92rem;
  color: rgba(243,240,255,0.86);
}

.doc-body{
  display:grid;
  grid-template-columns: 300px 1fr;
  gap: 0;
}
@media (max-width: 900px){
  .doc-body{grid-template-columns: 1fr}
}

.toc{
  padding: 14px 14px 18px;
  border-right: 1px solid rgba(255,255,255,0.08);
  background: rgba(var(--c-violet),0.06);
}
@media (max-width: 900px){
  .toc{
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }
}
.toc h3{
  margin: 8px 6px 10px;
  font-size: 1.05rem;
  color: rgba(243,240,255,0.92);
}
.toc a{
  display:block;
  padding: 8px 10px;
  margin: 0 2px;
  border-radius: 12px;
  text-decoration:none;
  color: rgba(243,240,255,0.86);
  border:1px solid transparent;
}
.toc a:hover{
  background: rgba(var(--c-violet),0.08);
  border-color: rgba(255,255,255,0.10);
}
.toc .toc-sub{
  margin-left: 10px;
  border-left: 1px solid rgba(255,255,255,0.08);
  padding-left: 10px;
}

.doc-content{
  padding: 16px 18px 18px;
}

details.const{
  border:1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  background: rgba(var(--c-violet),0.06);
  padding: 12px 12px;
  margin: 0 0 12px;
}
details.const[open]{
  background: rgba(var(--c-violet),0.08);
  border-color: rgba(255,255,255,0.16);
}
details.const > summary{
  cursor:pointer;
  list-style:none;
  font-family: var(--font-display, "Space Grotesk", ui-sans-serif, system-ui);
  letter-spacing:-0.01em;
  font-size: 1.08rem;
  color: rgba(243,240,255,0.92);
}
details.const > summary::-webkit-details-marker{display:none}
details.const .const-inner{
  padding: 10px 2px 2px;
}

.reading-progress{
  position:sticky;
  top: 0;
  height: 3px;
  background: rgba(var(--c-violet),0.12);
  z-index: 60;
}
.reading-progress > span{
  display:block;
  height:100%;
  width:0%;
  background: linear-gradient(90deg, rgba(var(--c-green),0.85), rgba(var(--c-blue),0.85));
  box-shadow: 0 0 16px rgba(var(--c-blue),0.32);
}



/* v50 additions: document rendering helpers */
.prose code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.95em;
  padding: 0.1em 0.35em;
  border-radius: 8px;
  background: var(--void-35);
  border: 1px solid rgba(255,255,255,.10);
}

.doc-pre{
  white-space: pre-wrap;
  word-break: break-word;
  background: var(--void-35);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  padding: 14px 16px;
  overflow-x: auto;
}

.md-cont{
  display:block;
  margin-top: .35rem;
  opacity: .9;
}

.table{
  width:100%;
  border-collapse: collapse;
}
.table th{
  text-align:left;
  font-weight: 650;
  padding: 10px 12px;
  vertical-align: top;
  width: 34%;
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.table td{
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.table-wrap{
  overflow-x:auto;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  background: rgba(11, 6, 32, 0.24);
}

/* v59: downloads table */
.downloads-table { width: 100%; border-collapse: collapse; }
.downloads-table th, .downloads-table td { padding: 0.75rem; border-bottom: 1px solid rgba(255,255,255,0.12); text-align: left; }
.downloads-table thead th { position: sticky; top: 0; background: rgba(12, 6, 20, 0.85); backdrop-filter: blur(6px); }
.table-wrap { overflow-x: auto; border-radius: 14px; }
.note { opacity: 0.85; }

/* v60 hero (afterglow haze) */
.hero{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:flex-end;
  padding:min(10vh,80px) 16px 36px;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(1200px 800px at 20% 20%, rgba(138,99,255,.55), transparent 60%),
    radial-gradient(900px 700px at 80% 30%, rgba(76,255,176,.25), transparent 60%),
    linear-gradient(180deg, rgba(7,2,14,.25), rgba(7,2,14,.92) 75%),
    url("../img/hero/hero.JPEG");
  background-size:cover;
  background-position:center;
  filter:saturate(105%) contrast(105%);
  transform:scale(1.02);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  backdrop-filter:saturate(135%) blur(10px);
  background:rgba(7,2,14,.22);
}
.hero-inner{
  position:relative;
  max-width:1120px;
  width:100%;
  margin:0 auto;
  display:grid;
  gap:14px;
}
.hero-title{
  font-family:"Space Grotesk", Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:clamp(2rem,5vw,3.4rem);
  letter-spacing:-0.02em;
  margin:0;
}
.hero-sub{
  margin:0;
  max-width:70ch;
  color:rgba(243,240,255,.82);
}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.btn-primary{
  background:linear-gradient(135deg, rgba(76,255,176,.22), rgba(138,99,255,.22));
  border:1px solid rgba(255,255,255,.22);
}


/* Playlist title vibe */
.playlist-title{
  font-family: "Caveat", "Inter", system-ui, sans-serif;
  font-size: clamp(34px, 4.3vw, 56px);
  letter-spacing: 0.6px;
}
.quote{
  font-style: italic;
  opacity: 0.92;
}

@media (max-width: 900px){
  .card-large{min-height: 0;}
}

/* Playlist downloads */
.downloads-row{display:flex; flex-wrap:wrap; gap:10px; margin: 10px 0 0;}


/* Nav Huey pill: ensure it aligns perfectly in the centered nav row */
#navLinks .huey-pill{
  padding: 8px 14px;
  min-height: 34px;
}
@media (max-width: 820px){
  #navLinks .huey-pill{
    width: 100%;
  }
}
