:root {
  --ink: #061122;
  --ink-soft: #0b1930;
  --paper: #f2f0e8;
  --white: #fffdf6;
  --blue: #1d4dff;
  --blue-bright: #2f68ff;
  --lime: #c8ff2f;
  --orange: #ff7538;
  --lilac: #b49bff;
  --cyan: #6fe9ff;
  --line-dark: rgba(6, 17, 34, 0.18);
  --line-light: rgba(255, 255, 255, 0.18);
  --sans: "Arial Narrow", "Pretendard Variable", Pretendard, SUIT, "Noto Sans KR", Arial, sans-serif;
  --display: "Arial Black", "Helvetica Neue", Arial, sans-serif;
  --ease: cubic-bezier(.2, .75, .2, 1);
  --page: clamp(20px, 4.2vw, 76px);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--ink);
}

body {
  margin: 0;
  min-width: 320px;
  color: var(--white);
  background: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea {
  color: inherit;
  font: inherit;
}

button {
  border: 0;
}

img,
svg,
canvas {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
p {
  margin: 0;
}

::selection {
  color: var(--ink);
  background: var(--lime);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  color: var(--ink);
  background: var(--lime);
  font-size: 13px;
  font-weight: 800;
  transform: translateY(-150%);
  transition: transform .2s;
}

.skip-link:focus {
  transform: translateY(0);
}

:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset: 4px;
}

.scroll-progress {
  position: fixed;
  z-index: 200;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  pointer-events: none;
}

.scroll-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--lime), var(--cyan), var(--lilac));
  box-shadow: 0 0 16px rgba(200, 255, 47, .5);
}

.pointer-glow {
  position: fixed;
  z-index: 9;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(circle, rgba(103, 136, 255, .12), transparent 68%);
  transform: translate(-50%, -50%);
  transition: opacity .4s;
  mix-blend-mode: screen;
}

.loader {
  position: fixed;
  z-index: 999;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 28px;
  text-align: center;
  background: var(--ink);
  transition: opacity .7s var(--ease), visibility .7s;
}

.loader.is-hidden {
  opacity: 0;
  visibility: hidden;
}

.loader p {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .3em;
  opacity: .65;
}

.loader-mark {
  position: relative;
  width: 58px;
  height: 58px;
  margin: auto;
  animation: loaderSpin 2.2s linear infinite;
}

.loader-mark span {
  position: absolute;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(200, 255, 47, .8);
  border-radius: 50% 50% 12% 50%;
  background: rgba(200, 255, 47, .08);
  box-shadow: inset 0 0 12px rgba(200, 255, 47, .2);
}

.loader-mark span:nth-child(1) { left: 0; top: 0; transform: rotate(0); }
.loader-mark span:nth-child(2) { right: 0; top: 0; transform: rotate(90deg); }
.loader-mark span:nth-child(3) { right: 0; bottom: 0; transform: rotate(180deg); }
.loader-mark span:nth-child(4) { left: 0; bottom: 0; transform: rotate(270deg); }

@keyframes loaderSpin {
  to { transform: rotate(360deg); }
}

.site-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  width: 100%;
  min-height: 82px;
  padding: 0 var(--page);
  border-bottom: 1px solid transparent;
  transition: min-height .35s var(--ease), background .35s, border-color .35s, backdrop-filter .35s;
}

.site-header.is-scrolled {
  min-height: 68px;
  border-bottom-color: var(--line-light);
  background: rgba(6, 17, 34, .75);
  backdrop-filter: blur(18px) saturate(140%);
}

.brand {
  justify-self: start;
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--display);
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -.08em;
}

.brand-clover {
  color: var(--lime);
  font-family: Arial, sans-serif;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0;
}

.brand small {
  margin-left: 7px;
  padding-left: 12px;
  border-left: 1px solid rgba(255, 255, 255, .35);
  font-family: var(--sans);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .16em;
}

.desktop-nav {
  display: flex;
  align-items: center;
  gap: clamp(20px, 2.5vw, 44px);
}

.desktop-nav a,
.official-link {
  position: relative;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
}

.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -7px;
  width: 100%;
  height: 1px;
  background: var(--lime);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .3s var(--ease);
}

.desktop-nav a:hover::after,
.desktop-nav a.is-active::after {
  transform: scaleX(1);
  transform-origin: left;
}

.header-official {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  border: 1px solid rgba(255, 255, 255, .4);
  border-radius: 999px;
  transition: color .25s, background .25s, border-color .25s;
}

.header-official:hover {
  color: var(--ink);
  border-color: var(--lime);
  background: var(--lime);
}

.menu-toggle,
.mobile-menu {
  display: none;
}

.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
  background: #020812;
}

.hero-image {
  position: absolute;
  z-index: -4;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(3, 9, 22, .98) 0%, rgba(3, 9, 22, .8) 31%, rgba(3, 9, 22, .12) 65%, rgba(3, 9, 22, .08) 100%),
    linear-gradient(0deg, rgba(3, 9, 22, .72), transparent 40%),
    url("assets/glow-hero.png");
  background-position: center;
  background-size: cover;
  transform: scale(1.035);
  will-change: transform;
}

.hero-noise {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .22;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.26'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.hero-orbit {
  position: absolute;
  z-index: -2;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 50%;
  pointer-events: none;
  animation: orbitDrift 9s ease-in-out infinite alternate;
}

.orbit-one {
  top: 12%;
  right: -8%;
  width: min(45vw, 720px);
  aspect-ratio: 1;
}

.orbit-two {
  top: 24%;
  right: 8%;
  width: min(25vw, 380px);
  aspect-ratio: 1;
  animation-delay: -3s;
}

@keyframes orbitDrift {
  to { transform: translate3d(-18px, 24px, 0) rotate(8deg); }
}

.hero-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  min-height: 100svh;
  padding: 120px var(--page) 140px;
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: clamp(20px, 3vh, 42px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
}

.live-dot {
  position: relative;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 5px rgba(200, 255, 47, .12), 0 0 18px var(--lime);
  animation: livePulse 2s ease-in-out infinite;
}

@keyframes livePulse {
  50% { box-shadow: 0 0 0 9px rgba(200, 255, 47, 0), 0 0 25px var(--lime); }
}

.hero-title {
  max-width: 950px;
  font-family: var(--display);
  font-size: clamp(64px, 10.4vw, 182px);
  font-weight: 900;
  line-height: .76;
  letter-spacing: -.085em;
  text-transform: uppercase;
}

.title-line {
  display: block;
}

.title-outline {
  position: relative;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255, 255, 255, .78);
  text-stroke: 1.5px rgba(255, 255, 255, .78);
}

.title-star {
  position: absolute;
  top: -.15em;
  right: -.18em;
  color: var(--lime);
  font-family: Arial, sans-serif;
  font-size: .22em;
  -webkit-text-stroke: 0;
  animation: starPulse 2.7s ease-in-out infinite;
}

@keyframes starPulse {
  50% { transform: rotate(90deg) scale(1.35); filter: drop-shadow(0 0 8px var(--lime)); }
}

.hero-bottom {
  display: flex;
  align-items: flex-end;
  gap: clamp(32px, 7vw, 110px);
  margin-top: clamp(32px, 5vh, 60px);
}

.hero-bottom > p {
  padding-left: 15px;
  border-left: 1px solid rgba(255, 255, 255, .6);
  font-size: clamp(13px, 1vw, 16px);
  line-height: 1.8;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 28px;
}

.magnetic-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  min-width: 186px;
  min-height: 54px;
  padding: 0 20px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  transition: transform .2s var(--ease), box-shadow .25s, color .25s, background .25s;
}

.primary-button {
  color: var(--ink);
  background: var(--lime);
  box-shadow: 0 14px 40px rgba(200, 255, 47, .14);
}

.primary-button:hover {
  box-shadow: 0 16px 50px rgba(200, 255, 47, .34);
}

.primary-button i,
.plant-button i {
  font-style: normal;
  font-size: 18px;
}

.text-link {
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, .6);
  font-size: 12px;
  font-weight: 800;
}

.hero-sidecards {
  position: absolute;
  z-index: 2;
  right: var(--page);
  bottom: 70px;
  display: flex;
  align-items: flex-end;
  gap: 12px;
}

.countdown-card,
.schedule-card {
  width: min(360px, calc(100vw - 40px));
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, .25);
  background: rgba(5, 12, 28, .58);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .24);
  backdrop-filter: blur(18px) saturate(140%);
}

.countdown-head {
  display: flex;
  justify-content: space-between;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .17em;
}

.countdown-head strong {
  color: var(--lime);
}

.countdown {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  align-items: start;
  gap: 7px;
  padding: 16px 0 12px;
}

.countdown div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.countdown strong {
  font-family: var(--display);
  font-size: clamp(23px, 2.4vw, 34px);
  line-height: 1;
  letter-spacing: -.06em;
}

.countdown span,
.countdown-card > p {
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .13em;
  opacity: .55;
}

.countdown i {
  font-style: normal;
  opacity: .3;
}

.countdown-card > p {
  text-align: right;
}

.countdown-card.is-released .countdown {
  display: block;
  padding: 20px 0 15px;
}

.countdown-card.is-released .countdown::after {
  content: "NOW GLOWING";
  color: var(--lime);
  font-family: var(--display);
  font-size: 36px;
  font-weight: 900;
  letter-spacing: -.04em;
}

.countdown-card.is-released .countdown > * {
  display: none;
}

.schedule-card {
  width: min(370px, calc(100vw - 40px));
  min-height: 178px;
}

.schedule-head,
.schedule-foot,
.schedule-item {
  display: flex;
  align-items: center;
}

.schedule-head {
  justify-content: space-between;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.schedule-head span,
.schedule-head h2,
.schedule-head strong,
.schedule-copy small,
.schedule-foot {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .13em;
}

.schedule-head span {
  display: block;
  margin-bottom: 3px;
  opacity: .52;
}

.schedule-head h2 {
  font-size: 12px;
  letter-spacing: .09em;
}

.schedule-head strong {
  color: var(--lime);
  font-size: 9px;
}

.schedule-list {
  min-height: 77px;
}

.schedule-item {
  gap: 12px;
  min-height: 77px;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  transition: background .2s var(--ease), transform .2s var(--ease);
}

.schedule-item:hover,
.schedule-item:focus-visible {
  background: rgba(255, 255, 255, .07);
  transform: translateX(3px);
}

.schedule-item time {
  display: flex;
  flex: 0 0 38px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 43px;
  color: var(--ink);
  background: var(--lime);
}

.schedule-item time b {
  font-family: var(--display);
  font-size: 22px;
  line-height: .8;
  letter-spacing: -.06em;
}

.schedule-item time span {
  margin-top: 3px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
}

.schedule-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.schedule-copy small {
  color: var(--lime);
  font-size: 9px;
}

.schedule-copy strong {
  overflow: hidden;
  font-size: 14px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-item > i {
  margin-left: auto;
  font-style: normal;
  opacity: .55;
}

.schedule-empty {
  display: grid;
  min-height: 77px;
  place-items: center start;
  color: rgba(255, 255, 255, .58);
  font-size: 11px;
  font-weight: 700;
}

.schedule-foot {
  padding-top: 10px;
  color: rgba(255, 255, 255, .52);
  font-size: 9px;
}

.scroll-hint {
  position: absolute;
  z-index: 2;
  bottom: 24px;
  left: var(--page);
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .18em;
  opacity: .55;
}

.scroll-hint i {
  position: relative;
  display: block;
  width: 64px;
  height: 1px;
  overflow: hidden;
  background: rgba(255, 255, 255, .35);
}

.scroll-hint i::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--white);
  animation: scrollLine 2.2s var(--ease) infinite;
}

@keyframes scrollLine {
  from { transform: translateX(-100%); }
  to { transform: translateX(100%); }
}

.name-marquee {
  overflow: hidden;
  color: var(--white);
  background: var(--blue);
  border-top: 1px solid rgba(255, 255, 255, .18);
  border-bottom: 1px solid rgba(255, 255, 255, .18);
}

.marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  padding: 18px 0;
  animation: marquee 25s linear infinite;
}

.marquee-track span {
  padding: 0 26px;
  font-family: var(--display);
  font-size: clamp(18px, 2vw, 30px);
  font-weight: 900;
  letter-spacing: -.04em;
}

.marquee-track i {
  color: var(--lime);
  font-style: normal;
  font-size: 20px;
}

@keyframes marquee {
  to { transform: translateX(-50%); }
}

.section-pad {
  padding: clamp(88px, 11vw, 170px) var(--page);
}

.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 15px 0 0;
  border-top: 1px solid currentColor;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .15em;
  line-height: 1.6;
  text-transform: uppercase;
}

.section-heading > p:last-child {
  text-align: right;
  opacity: .58;
}

.section-heading span {
  display: inline-block;
  margin-right: 20px;
  opacity: .5;
}

.dark-heading { color: var(--ink); }
.light-heading { color: var(--white); }

.signal-section {
  color: var(--ink);
  background: var(--paper);
}

.album-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
  gap: clamp(50px, 8vw, 140px);
  align-items: center;
  margin-top: clamp(70px, 9vw, 140px);
}

.album-visual {
  position: relative;
  display: grid;
  place-items: center;
  min-height: min(62vw, 790px);
  perspective: 1400px;
}

.album-aura {
  position: absolute;
  top: 8%;
  left: 10%;
  width: 78%;
  height: 78%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(53, 101, 255, .34), rgba(111, 233, 255, .14) 38%, transparent 70%);
  filter: blur(10px);
  animation: auraBreathe 5s ease-in-out infinite;
}

@keyframes auraBreathe {
  50% { transform: scale(1.1); opacity: .75; }
}

.album-object {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  width: min(76%, 520px);
  aspect-ratio: .82;
  padding: clamp(25px, 4vw, 54px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 4px 38px 4px 38px;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .36), transparent 28%),
    radial-gradient(circle at 80% 15%, rgba(200, 255, 47, .75), transparent 22%),
    linear-gradient(145deg, #3a6fff 0%, #133dd3 42%, #052070 100%);
  box-shadow:
    inset 0 0 0 12px rgba(255, 255, 255, .05),
    inset 0 0 90px rgba(80, 224, 255, .18),
    0 55px 95px rgba(20, 48, 135, .26);
  transform: rotateY(-10deg) rotateX(7deg) rotateZ(-4deg);
  transition: transform .7s var(--ease);
}

.album-visual:hover .album-object {
  transform: rotateY(-2deg) rotateX(2deg) rotateZ(-1deg) translateY(-10px);
}

.album-object::before,
.album-object::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 50%;
}

.album-object::before {
  top: 20%;
  right: -35%;
  width: 90%;
  aspect-ratio: 1;
}

.album-object::after {
  right: 8%;
  bottom: 8%;
  width: 22%;
  aspect-ratio: 1;
}

.album-sticker {
  position: absolute;
  z-index: 2;
  top: 6%;
  right: 7%;
  display: grid;
  place-items: center;
  width: 78px;
  aspect-ratio: 1;
  border-radius: 50%;
  color: var(--ink);
  background: var(--lime);
  font-size: 9px;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: .08em;
  text-align: center;
  transform: rotate(11deg);
  box-shadow: 0 8px 30px rgba(200, 255, 47, .25);
}

.album-kicker {
  position: relative;
  z-index: 1;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .18em;
}

.album-object h2 {
  position: relative;
  z-index: 1;
  margin-top: auto;
  font-family: var(--display);
  font-size: clamp(60px, 7.8vw, 118px);
  font-weight: 900;
  line-height: .72;
  letter-spacing: -.1em;
}

.album-object h2 em {
  color: transparent;
  font-style: normal;
  -webkit-text-stroke: 1.5px #fff;
}

.album-meta {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  margin-top: 28px;
  padding-top: 13px;
  border-top: 1px solid rgba(255, 255, 255, .5);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
}

.album-capsules {
  position: absolute;
  inset: 0;
}

.album-capsules i {
  position: absolute;
  width: 18px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 255, 255, .65), rgba(255, 255, 255, .1));
  box-shadow: inset 0 0 10px rgba(255, 255, 255, .35), 0 0 20px rgba(255, 255, 255, .12);
}

.album-capsules i:nth-child(1) { top: 27%; left: 13%; transform: rotate(28deg); background-color: rgba(200, 255, 47, .45); }
.album-capsules i:nth-child(2) { top: 41%; right: 17%; transform: rotate(-35deg); background-color: rgba(255, 117, 56, .5); }
.album-capsules i:nth-child(3) { top: 18%; left: 43%; transform: rotate(70deg); background-color: rgba(180, 155, 255, .5); }
.album-capsules i:nth-child(4) { top: 50%; left: 25%; transform: rotate(12deg); background-color: rgba(111, 233, 255, .5); }
.album-capsules i:nth-child(5) { top: 60%; right: 10%; transform: rotate(48deg); background-color: rgba(255, 255, 255, .35); }

.album-shadow {
  position: absolute;
  z-index: 1;
  bottom: 3%;
  width: 58%;
  height: 9%;
  border-radius: 50%;
  background: rgba(6, 17, 34, .32);
  filter: blur(28px);
  transform: rotate(-5deg);
}

.track-panel {
  max-width: 620px;
}

.track-intro > span {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .15em;
  opacity: .55;
}

.track-intro h3 {
  margin-top: 15px;
  font-family: var(--display);
  font-size: clamp(38px, 4.1vw, 68px);
  font-weight: 900;
  line-height: .98;
  letter-spacing: -.07em;
}

.track-intro h3 em {
  color: var(--blue);
  font-style: normal;
}

.track-list {
  padding: 0;
  margin: clamp(38px, 5vw, 68px) 0 0;
  border-top: 1px solid var(--line-dark);
  list-style: none;
}

.track-list li {
  border-bottom: 1px solid var(--line-dark);
  transition: background .3s, color .3s;
}

.track-list button {
  display: grid;
  grid-template-columns: 42px 1fr auto auto;
  align-items: center;
  width: 100%;
  min-height: 54px;
  padding: 0 10px 0 0;
  cursor: pointer;
  text-align: left;
  background: transparent;
}

.track-list button > span {
  font-size: 8px;
  font-weight: 800;
  opacity: .5;
}

.track-list button strong {
  font-size: clamp(14px, 1.3vw, 19px);
  font-weight: 800;
  letter-spacing: -.025em;
}

.track-list button small {
  margin-right: 16px;
  padding: 3px 7px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .08em;
}

.track-list button i {
  font-style: normal;
  opacity: 0;
  transform: translate(-6px, 6px);
  transition: opacity .25s, transform .25s;
}

.track-list li:hover,
.track-list li.active {
  color: #fff;
  background: var(--blue);
}

.track-list li:hover button,
.track-list li.active button {
  padding-left: 14px;
}

.track-list li:hover button i,
.track-list li.active button i {
  opacity: 1;
  transform: translate(0);
}

.track-now {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 20px;
  margin-top: 20px;
  padding: 16px 18px;
  color: #fff;
  background: var(--ink);
}

.track-now span,
.track-now em {
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .13em;
  opacity: .55;
}

.track-now strong {
  overflow: hidden;
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.track-now em {
  color: var(--lime);
  font-style: normal;
  text-align: right;
}

.members-section {
  position: relative;
  overflow: hidden;
  color: var(--white);
  background:
    radial-gradient(circle at 15% 25%, rgba(29, 77, 255, .23), transparent 28%),
    radial-gradient(circle at 85% 65%, rgba(180, 155, 255, .12), transparent 25%),
    var(--ink);
}

.members-section::after {
  content: "FIVE";
  position: absolute;
  top: 17%;
  right: -2vw;
  color: rgba(255, 255, 255, .025);
  font-family: var(--display);
  font-size: 27vw;
  font-weight: 900;
  line-height: .8;
  letter-spacing: -.1em;
  pointer-events: none;
}

.members-title-wrap {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin: clamp(80px, 10vw, 155px) 0 clamp(45px, 6vw, 85px);
}

.members-title-wrap h2 {
  font-family: var(--display);
  font-size: clamp(68px, 12vw, 184px);
  font-weight: 900;
  line-height: .71;
  letter-spacing: -.09em;
}

.members-title-wrap h2 span {
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255, 255, 255, .75);
}

.members-title-wrap > p {
  max-width: 240px;
  padding-left: 18px;
  border-left: 1px solid rgba(255, 255, 255, .45);
  font-size: 13px;
  line-height: 1.8;
  opacity: .7;
}

.member-deck {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 8px;
}

.member-card {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  min-height: clamp(420px, 46vw, 680px);
  padding: clamp(17px, 2vw, 30px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .035);
  transition: flex .55s var(--ease), transform .55s var(--ease), background .4s;
  isolation: isolate;
}

.member-card::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  opacity: .58;
  transition: opacity .4s, transform .7s var(--ease);
}

.member-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, transparent 38%, rgba(4, 10, 24, .18) 62%, rgba(4, 10, 24, .92));
}

.member-hayoung::before { background: linear-gradient(155deg, rgba(76, 117, 255, .58), rgba(16, 26, 73, .88) 75%); }
.member-jiwon::before { background: linear-gradient(155deg, rgba(38, 161, 204, .48), rgba(11, 37, 72, .88) 75%); }
.member-chaeyoung::before { background: linear-gradient(155deg, rgba(165, 66, 66, .46), rgba(40, 20, 48, .9) 75%); }
.member-nagyung::before { background: linear-gradient(155deg, rgba(112, 75, 225, .48), rgba(21, 19, 59, .9) 75%); }
.member-jiheon::before { background: linear-gradient(155deg, rgba(208, 136, 67, .46), rgba(50, 35, 65, .9) 75%); }

.member-photo {
  position: absolute;
  z-index: -3;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  filter: saturate(.78) contrast(1.04);
  transform: scale(1.03);
  transition: filter .65s, transform .9s var(--ease);
}

.member-card:hover,
.member-card:focus-visible {
  flex: 1.5 1 0;
  transform: translateY(-12px);
  background: rgba(255, 255, 255, .08);
}

.member-card:hover::before,
.member-card:focus-visible::before {
  opacity: .28;
  transform: scale(1.04);
}

.member-card:hover .member-photo,
.member-card:focus-visible .member-photo {
  filter: saturate(1.03) contrast(1.02);
  transform: scale(1.085);
}

.member-index {
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .15em;
  opacity: .6;
}

.member-symbol {
  position: absolute;
  top: 28%;
  left: 50%;
  display: grid;
  place-items: center;
  width: clamp(90px, 9vw, 150px);
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 50%;
  background: rgba(255, 255, 255, .05);
  box-shadow: inset 0 0 40px rgba(255, 255, 255, .08), 0 0 45px rgba(255, 255, 255, .08);
  backdrop-filter: blur(8px);
  transform: translateX(-50%);
}

.member-symbol::before,
.member-symbol::after {
  content: "";
  position: absolute;
  inset: -12px;
  border: 1px dashed rgba(255, 255, 255, .2);
  border-radius: 50%;
  animation: loaderSpin 18s linear infinite;
}

.member-symbol::after {
  inset: 12px;
  animation-direction: reverse;
}

.member-symbol span {
  font-family: var(--display);
  font-size: clamp(34px, 4vw, 64px);
  font-weight: 900;
  text-shadow: 0 0 24px rgba(255, 255, 255, .4);
}

.member-copy {
  position: absolute;
  right: clamp(17px, 2vw, 30px);
  bottom: clamp(22px, 3vw, 42px);
  left: clamp(17px, 2vw, 30px);
}

.member-copy p {
  margin-bottom: 3px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .16em;
  opacity: .55;
}

.member-copy h3 {
  font-family: var(--display);
  font-size: clamp(21px, 2.35vw, 38px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: -.07em;
  word-break: keep-all;
}

.member-copy span {
  display: block;
  margin-top: 12px;
  font-size: 11px;
  font-weight: 700;
  opacity: .7;
}

.member-clover {
  position: absolute;
  top: 20px;
  right: 20px;
  color: var(--lime);
  font-style: normal;
}

.members-note {
  position: relative;
  z-index: 2;
  margin-top: 15px;
  font-size: 9px;
  opacity: .48;
}

.archive-section {
  color: var(--ink);
  background: var(--paper);
}

.archive-sticky {
  padding: clamp(88px, 11vw, 170px) 0;
}

.archive-sticky > .section-heading,
.archive-lead,
.drag-hint {
  margin-right: var(--page);
  margin-left: var(--page);
}

.archive-lead {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: clamp(70px, 9vw, 130px);
  margin-bottom: clamp(42px, 5vw, 75px);
}

.archive-lead > div > span {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
  opacity: .55;
}

.archive-lead h2 {
  margin-top: 16px;
  font-family: var(--display);
  font-size: clamp(54px, 8.5vw, 132px);
  font-weight: 900;
  line-height: .78;
  letter-spacing: -.08em;
}

.archive-lead h2 em {
  color: var(--blue);
  font-style: normal;
}

.archive-lead > p {
  max-width: 260px;
  padding-left: 18px;
  border-left: 1px solid rgba(6, 17, 34, .38);
  font-size: 13px;
  line-height: 1.8;
}

.archive-controls {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto auto auto;
  gap: 10px;
  align-items: center;
  margin: 0 var(--page) 30px;
}

.archive-search,
.archive-select {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 48px;
  border: 1px solid var(--line-dark);
  background: rgba(255, 255, 255, .48);
}

.archive-search input,
.archive-select select {
  width: 100%;
  min-height: 46px;
  padding: 0 42px 0 15px;
  border: 0;
  outline: 0;
  color: var(--ink);
  background: transparent;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
}

.archive-search input::placeholder { color: rgba(6, 17, 34, .48); }
.archive-search i {
  position: absolute;
  right: 14px;
  font-size: 22px;
  font-style: normal;
  line-height: 1;
  pointer-events: none;
}

.archive-select { min-width: 130px; }
.archive-select select { padding-right: 12px; cursor: pointer; }

.archive-types {
  display: flex;
  gap: 5px;
}

.archive-types button {
  min-height: 48px;
  padding: 0 11px;
  border: 1px solid var(--line-dark);
  color: var(--ink);
  background: transparent;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .08em;
  cursor: pointer;
  transition: color .2s, background .2s;
}

.archive-types button:hover,
.archive-types button.is-active {
  color: var(--white);
  background: var(--ink);
}

.archive-result {
  justify-self: end;
  white-space: nowrap;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  opacity: .58;
}

.era-card[hidden] { display: none; }

.era-scroller {
  display: flex;
  gap: 14px;
  padding: 0 var(--page) 30px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--blue) rgba(6, 17, 34, .1);
  cursor: grab;
}

.era-scroller.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
}

.era-card {
  flex: 0 0 clamp(255px, 25vw, 390px);
  scroll-snap-align: start;
}

.era-art {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: .82;
  overflow: hidden;
  border: 1px solid var(--line-dark);
  transition: transform .5s var(--ease), border-radius .5s var(--ease);
}

.era-card:hover .era-art {
  border-radius: 0 42px 0 42px;
  transform: translateY(-10px);
}

.era-art::before,
.era-art::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  transition: transform .65s var(--ease);
}

.era-art::before {
  width: 62%;
  aspect-ratio: 1;
  border: 1px solid currentColor;
  opacity: .5;
}

.era-art::after {
  width: 34%;
  aspect-ratio: 1;
  background: currentColor;
  opacity: .13;
}

.era-card:hover .era-art::before { transform: scale(1.2) rotate(20deg); }
.era-card:hover .era-art::after { transform: scale(.75); }

.era-art > span {
  position: absolute;
  top: 18px;
  left: 18px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .12em;
  opacity: .6;
}

.era-art > i {
  position: relative;
  z-index: 1;
  font-family: var(--display);
  font-size: clamp(62px, 8vw, 118px);
  font-style: normal;
  font-weight: 900;
  line-height: 1;
}

.era-2017 .era-art { color: #2752f0; background: #dfe6ff; }
.era-2018 .era-art { color: #ef5f93; background: #ffdfea; }
.era-2021 .era-art { color: #0b7bff; background: #e3f4ff; }
.era-2022 .era-art { color: #5633a9; background: #d9cdfb; }
.era-2023 .era-art { color: #1e1e24; background: #a9e7da; }
.era-2024 .era-art { color: #ff542d; background: #ffd7c9; }
.era-2025 .era-art { color: #297350; background: #f4db79; }
.era-2026 .era-art { color: #1d4dff; background: #c8ff2f; }

.era-copy {
  display: grid;
  grid-template-columns: 38px 1fr;
  margin-top: 18px;
}

.era-copy > span {
  grid-row: span 2;
  padding-top: 6px;
  font-size: 8px;
  font-weight: 800;
  opacity: .5;
}

.era-copy h3 {
  font-family: var(--display);
  font-size: clamp(21px, 2vw, 30px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.055em;
}

.era-copy p {
  margin-top: 7px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .12em;
  opacity: .5;
}

.drag-hint {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .16em;
  opacity: .55;
}

.drag-hint i {
  position: relative;
  width: 80px;
  height: 1px;
  background: rgba(6, 17, 34, .25);
}

.drag-hint i::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 0;
  font-size: 15px;
  transform: translateY(-54%);
}

.watch-section {
  color: var(--white);
  background: var(--ink);
}

.watch-card {
  position: relative;
  display: block;
  min-height: min(62vw, 860px);
  margin-top: clamp(65px, 8vw, 115px);
  overflow: hidden;
  border: 1px solid var(--line-light);
  isolation: isolate;
}

.watch-card img {
  position: absolute;
  z-index: -3;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.85) contrast(1.03);
  transition: transform 1.2s var(--ease), filter .6s;
}

.watch-overlay {
  position: absolute;
  z-index: -2;
  inset: 0;
  background: linear-gradient(180deg, rgba(3, 9, 22, .18), rgba(3, 9, 22, .05) 38%, rgba(3, 9, 22, .82));
}

.watch-card:hover img {
  filter: saturate(1.12) contrast(1.03);
  transform: scale(1.035);
}

.watch-top {
  position: absolute;
  top: 24px;
  right: 26px;
  left: 26px;
  display: flex;
  justify-content: space-between;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .14em;
}

.watch-top i {
  font-style: normal;
}

.play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: clamp(100px, 11vw, 170px);
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 50%;
  background: rgba(7, 17, 34, .14);
  backdrop-filter: blur(7px);
  transform: translate(-50%, -50%);
  transition: color .4s, background .4s, transform .4s var(--ease);
}

.play-button span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
}

.play-button i {
  position: absolute;
  opacity: 0;
  font-style: normal;
  font-size: 30px;
  transform: translateX(-7px);
  transition: opacity .35s, transform .35s;
}

.watch-card:hover .play-button {
  color: var(--ink);
  background: var(--lime);
  transform: translate(-50%, -50%) scale(1.07);
}

.watch-card:hover .play-button span { opacity: 0; }
.watch-card:hover .play-button i { opacity: 1; transform: translateX(2px); }

.watch-copy {
  position: absolute;
  right: clamp(24px, 4vw, 62px);
  bottom: clamp(25px, 4vw, 60px);
  left: clamp(24px, 4vw, 62px);
}

.watch-copy p {
  margin-bottom: 12px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
}

.watch-copy h2 {
  font-family: var(--display);
  font-size: clamp(60px, 10.3vw, 158px);
  font-weight: 900;
  line-height: .73;
  letter-spacing: -.09em;
}

.watch-caption {
  margin-top: 18px;
  font-size: 9px;
  opacity: .48;
}

.flover-section {
  position: relative;
  min-height: 100svh;
  color: var(--white);
  background: #030918;
}

.flover-canvas-wrap {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
}

#flover-canvas {
  position: absolute;
  z-index: -3;
  inset: 0;
  width: 100%;
  height: 100%;
}

.flover-gradient {
  position: absolute;
  z-index: -2;
  inset: 0;
  background:
    radial-gradient(circle at 75% 40%, rgba(45, 92, 255, .25), transparent 36%),
    radial-gradient(circle at 25% 80%, rgba(180, 155, 255, .12), transparent 30%),
    linear-gradient(180deg, rgba(3, 9, 24, .12), rgba(3, 9, 24, .72));
}

.flover-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 100svh;
  padding: 100px var(--page);
  text-align: center;
  pointer-events: none;
}

.flover-content > p:first-child {
  margin-bottom: 28px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .19em;
  opacity: .6;
}

.flover-content h2 {
  font-family: var(--display);
  font-size: clamp(80px, 16vw, 240px);
  font-weight: 900;
  line-height: .69;
  letter-spacing: -.1em;
}

.flover-content h2 span {
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255, 255, 255, .75);
}

.flover-intro {
  margin-top: clamp(35px, 5vw, 65px);
  font-size: clamp(12px, 1.1vw, 16px);
  line-height: 1.9;
  opacity: .7;
}

.plant-button {
  margin-top: 30px;
  color: var(--ink);
  background: var(--lime);
  cursor: pointer;
  pointer-events: auto;
}

.light-counter {
  display: flex;
  align-items: flex-end;
  gap: 34px;
  margin-top: 34px;
}

.light-counter > div { display: grid; gap: 8px; }

.light-counter strong {
  color: var(--lime);
  font-family: var(--display);
  font-size: 48px;
  font-weight: 900;
  line-height: .8;
  letter-spacing: -.07em;
}

.light-counter span {
  display: block;
  font-size: 7px;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: .11em;
  opacity: .5;
}

.tap-hint {
  position: absolute;
  right: var(--page);
  bottom: 30px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .17em;
  opacity: .45;
}

.links-section {
  color: var(--white);
  background: linear-gradient(145deg, #09214c, #061122 48%, #130f38);
}

.links-lead {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: clamp(70px, 9vw, 125px);
  margin-bottom: clamp(50px, 7vw, 90px);
}

.links-lead h2 {
  font-family: var(--display);
  font-size: clamp(54px, 8.5vw, 132px);
  font-weight: 900;
  line-height: .78;
  letter-spacing: -.085em;
}

.links-lead h2 em {
  color: var(--lime);
  font-style: normal;
}

.links-lead > p {
  max-width: 250px;
  padding-left: 18px;
  border-left: 1px solid rgba(255, 255, 255, .4);
  font-size: 13px;
  line-height: 1.8;
  opacity: .7;
}

.official-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--line-light);
  border-left: 1px solid var(--line-light);
}

.official-card {
  position: relative;
  display: grid;
  grid-template-columns: 55px 1fr auto;
  align-items: center;
  min-height: 150px;
  padding: 20px 28px;
  border-right: 1px solid var(--line-light);
  border-bottom: 1px solid var(--line-light);
  transition: color .35s, background .35s;
}

.official-card > span {
  font-size: 8px;
  font-weight: 800;
  opacity: .45;
}

.official-card strong {
  font-family: var(--display);
  font-size: clamp(27px, 3vw, 46px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.06em;
}

.official-card small {
  position: absolute;
  bottom: 22px;
  left: 83px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .08em;
  opacity: .48;
}

.official-card i {
  font-style: normal;
  font-size: 23px;
  transition: transform .3s var(--ease);
}

.official-card:hover {
  color: var(--ink);
  background: var(--lime);
}

.official-card:hover i {
  transform: translate(6px, -6px);
}

.source-note {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 30px;
  margin-top: 45px;
  padding-top: 18px;
  border-top: 1px solid var(--line-light);
}

.source-note span {
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .15em;
  opacity: .5;
}

.source-note p {
  max-width: 760px;
  font-size: 11px;
  line-height: 1.8;
  opacity: .62;
}

.legacy-row {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 25px;
  padding-top: 18px;
  border-top: 1px solid var(--line-light);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .08em;
}

.legacy-row > span {
  margin-right: auto;
  opacity: .45;
}

.legacy-row a {
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(255, 255, 255, .35);
  transition: color .25s, border-color .25s;
}

.legacy-row a:hover {
  color: var(--lime);
  border-color: var(--lime);
}

.site-footer {
  overflow: hidden;
  padding: clamp(70px, 9vw, 130px) var(--page) 35px;
  color: var(--ink);
  background: var(--lime);
}

.footer-wordmark {
  font-family: var(--display);
  font-size: clamp(96px, 22.7vw, 360px);
  font-weight: 900;
  line-height: .67;
  letter-spacing: -.1em;
  white-space: nowrap;
  transform: translateX(-1.5vw);
}

.footer-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 30px;
  align-items: end;
  margin-top: clamp(60px, 8vw, 110px);
  padding-top: 18px;
  border-top: 1px solid rgba(6, 17, 34, .5);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: .05em;
}

.footer-bottom p:nth-child(2) {
  opacity: .65;
}

.footer-bottom a {
  display: flex;
  align-items: center;
  gap: 18px;
  font-weight: 900;
}

.footer-bottom a span {
  font-size: 22px;
}

.reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.title-line.reveal:nth-child(2) {
  transition-delay: .12s;
}

.member-card.reveal:nth-child(2) { transition-delay: .06s; }
.member-card.reveal:nth-child(3) { transition-delay: .12s; }
.member-card.reveal:nth-child(4) { transition-delay: .18s; }
.member-card.reveal:nth-child(5) { transition-delay: .24s; }

@media (max-width: 1080px) {
  .album-layout {
    grid-template-columns: 1fr 1fr;
    gap: 50px;
  }

  .album-object {
    width: 86%;
  }

  .member-card {
    min-height: 500px;
  }

  .member-copy h3 {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
  }

  .member-card:hover .member-copy h3,
  .member-card:focus-visible .member-copy h3 {
    writing-mode: initial;
    transform: none;
  }
}

@media (max-width: 820px) {
  .site-header {
    grid-template-columns: 1fr auto;
    min-height: 68px;
  }

  .desktop-nav,
  .header-official {
    display: none;
  }

  .menu-toggle {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 6px;
    width: 44px;
    height: 44px;
    padding: 14px 9px;
    cursor: pointer;
    background: transparent;
  }

  .menu-toggle > span:not(.sr-only) {
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    transition: transform .3s var(--ease);
  }

  .menu-toggle[aria-expanded="true"] > span:first-child {
    transform: translateY(3.5px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] > span:nth-child(2) {
    transform: translateY(-3.5px) rotate(-45deg);
  }

  .mobile-menu {
    position: fixed;
    z-index: 1;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 90px var(--page) 50px;
    color: #fff;
    background:
      radial-gradient(circle at 80% 20%, rgba(29, 77, 255, .5), transparent 35%),
      var(--ink);
  }

  .mobile-menu[hidden] {
    display: none;
  }

  .mobile-menu a {
    display: flex;
    align-items: baseline;
    gap: 18px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    font-family: var(--display);
    font-size: clamp(32px, 10vw, 62px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.06em;
  }

  .mobile-menu a span {
    font-family: var(--sans);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .12em;
    opacity: .5;
  }

  .hero-content {
    justify-content: flex-start;
    padding-top: 20svh;
  }

  .hero-image {
    background-image:
      linear-gradient(180deg, rgba(3, 9, 22, .65), rgba(3, 9, 22, .28) 42%, rgba(3, 9, 22, .88) 82%),
      url("assets/glow-hero.png");
    background-position: 58% center;
  }

  .hero-title {
    font-size: clamp(58px, 16vw, 120px);
  }

  .hero-bottom {
    display: block;
  }

  .hero-actions {
    margin-top: 24px;
  }

  .hero-sidecards {
    right: var(--page);
    bottom: 28px;
    flex-direction: column;
    align-items: flex-end;
  }

  .countdown-card,
  .schedule-card {
    width: min(355px, calc(100vw - (var(--page) * 2)));
  }

  .scroll-hint {
    display: none;
  }

  .album-layout {
    grid-template-columns: 1fr;
  }

  .album-visual {
    min-height: 750px;
  }

  .album-object {
    width: min(72%, 480px);
  }

  .track-panel {
    max-width: none;
  }

  .members-title-wrap,
  .archive-lead,
  .links-lead {
    display: block;
  }

  .members-title-wrap > p,
  .archive-lead > p,
  .links-lead > p {
    margin-top: 36px;
  }

  .member-deck {
    margin-right: calc(var(--page) * -1);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .member-card {
    flex: 0 0 min(67vw, 390px);
    min-height: 570px;
    scroll-snap-align: center;
  }

  .member-card:hover,
  .member-card:focus-visible {
    flex: 0 0 min(67vw, 390px);
  }

  .member-copy h3,
  .member-card:hover .member-copy h3,
  .member-card:focus-visible .member-copy h3 {
    writing-mode: initial;
    transform: none;
  }

  .official-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  :root {
    --page: 20px;
  }

  .brand small {
    display: none;
  }

  .hero-content {
    min-height: 100svh;
    padding-top: 16svh;
    padding-bottom: 365px;
  }

  .eyebrow {
    font-size: 8px;
  }

  .hero-title {
    font-size: clamp(52px, 18vw, 94px);
    line-height: .82;
  }

  .hero-bottom > p {
    font-size: 12px;
  }

  .hero-actions {
    gap: 18px;
  }

  .magnetic-button {
    min-width: 160px;
    min-height: 50px;
  }

  .text-link {
    font-size: 10px;
  }

  .hero-sidecards {
    bottom: 24px;
  }

  .marquee-track {
    padding: 13px 0;
  }

  .section-heading {
    font-size: 7px;
  }

  .section-heading span {
    margin-right: 9px;
  }

  .album-layout {
    margin-top: 50px;
  }

  .album-visual {
    min-height: 500px;
  }

  .album-object {
    width: 82%;
  }

  .album-sticker {
    width: 58px;
    font-size: 7px;
  }

  .track-list button {
    grid-template-columns: 34px 1fr auto auto;
  }

  .track-list button strong {
    font-size: 14px;
  }

  .track-now {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .track-now em {
    text-align: left;
  }

  .members-title-wrap h2 {
    font-size: 23vw;
  }

  .member-card {
    flex-basis: 78vw;
    min-height: 510px;
  }

  .member-card:hover,
  .member-card:focus-visible {
    flex-basis: 78vw;
  }

  .archive-lead h2,
  .links-lead h2 {
    font-size: 16vw;
  }

  .era-card {
    flex-basis: 76vw;
  }

  .watch-card {
    min-height: 118vw;
  }

  .watch-card img {
    object-position: center;
  }

  .watch-copy h2 {
    font-size: 16vw;
  }

  .play-button {
    width: 92px;
  }

  .flover-content h2 {
    font-size: 25vw;
  }

  .light-counter strong {
    font-size: 40px;
  }

  .official-card {
    grid-template-columns: 35px 1fr auto;
    min-height: 120px;
    padding: 16px;
  }

  .official-card strong {
    font-size: 26px;
  }

  .official-card small {
    bottom: 17px;
    left: 51px;
  }

  .source-note {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .legacy-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .legacy-row > span {
    margin-right: 0;
  }

  .footer-wordmark {
    font-size: 24vw;
  }

  .footer-bottom {
    grid-template-columns: 1fr auto;
  }

  .footer-bottom p:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .footer-bottom a {
    grid-column: 2;
    grid-row: 1;
  }
}

@media (max-width: 980px) {
  .archive-controls {
    grid-template-columns: minmax(180px, 1fr) auto;
  }

  .archive-types { grid-column: 1 / -1; }
  .archive-result { justify-self: end; }
}

@media (max-width: 560px) {
  .archive-controls {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .archive-select { min-width: 0; }
  .archive-types { overflow-x: auto; }
  .archive-types button { flex: 1 0 auto; }
  .archive-result { justify-self: start; margin-top: 5px; }
}

/* Desktop readability: tiny decorative labels were too small on regular monitors. */
@media (min-width: 821px) {
  .loader p,
  .brand small,
  .desktop-nav a,
  .official-link,
  .eyebrow,
  .countdown-head,
  .countdown span,
  .countdown-card > p,
  .scroll-hint,
  .section-heading,
  .album-sticker,
  .album-kicker,
  .album-meta,
  .track-intro > span,
  .track-list button > span,
  .track-list button small,
  .track-now,
  .member-index,
  .member-copy p,
  .members-note,
  .archive-lead > div > span,
  .archive-types button,
  .archive-result,
  .era-art > span,
  .era-copy > span,
  .era-copy p,
  .drag-hint,
  .watch-top,
  .play-button span,
  .watch-copy p,
  .watch-caption,
  .flover-content > p:first-child,
  .light-counter span,
  .tap-hint,
  .official-card > span,
  .official-card small,
  .legacy-row,
  .site-footer,
  .footer-bottom {
    font-size: 11px;
  }

  .archive-search input,
  .archive-select select,
  .member-copy span {
    font-size: 13px;
  }

  .official-card small,
  .light-counter span,
  .countdown span,
  .countdown-card > p,
  .schedule-copy small,
  .schedule-foot {
    font-size: 10px;
  }

  main small {
    font-size: max(11px, .85rem);
  }
}

.schedule-admin-page {
  min-height: 100vh;
  color: var(--white);
  background: radial-gradient(circle at 85% 0%, rgba(45, 92, 255, .42), transparent 30%), var(--ink);
}

.schedule-admin-main {
  width: min(720px, calc(100% - 40px));
  margin: 0 auto;
  padding: 72px 0 110px;
}

.admin-back,
.admin-eyebrow,
.admin-form label,
.admin-form button,
.admin-refresh,
.admin-schedule-row time,
.admin-schedule-row a,
.admin-schedule-row button {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
}

.admin-back { color: var(--lime); }
.admin-eyebrow { margin-top: 44px; color: var(--lime); opacity: .8; }
.schedule-admin-main h1 { margin-top: 9px; font-family: var(--display); font-size: clamp(54px, 9vw, 100px); line-height: .8; letter-spacing: -.08em; }
.admin-lead { margin-top: 30px; font-size: 16px; opacity: .7; }

.admin-form {
  display: grid;
  gap: 18px;
  margin-top: 42px;
  padding: 28px;
  border: 1px solid rgba(255, 255, 255, .2);
  background: rgba(255, 255, 255, .06);
}

.admin-form label { display: grid; gap: 8px; }
.admin-form input {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 0;
  color: var(--white);
  background: rgba(2, 8, 18, .55);
}

.admin-form button,
.admin-refresh,
.admin-schedule-row button {
  min-height: 46px;
  padding: 0 16px;
  border: 1px solid var(--lime);
  color: var(--ink);
  background: var(--lime);
  cursor: pointer;
}

.admin-message { min-height: 20px; color: var(--lime); font-size: 13px; font-weight: 700; }
.admin-message.is-error { color: #ff9a79; }
.admin-list-wrap { margin-top: 72px; }
.admin-list-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.admin-list-wrap h2 { font-family: var(--display); font-size: clamp(32px, 5vw, 50px); letter-spacing: -.06em; }
.admin-refresh { flex: 0 0 auto; margin: 0; }
.admin-list { display: grid; gap: 1px; margin-top: 24px; background: rgba(255, 255, 255, .18); }
.admin-list > p { padding: 24px; color: rgba(255, 255, 255, .62); background: var(--ink); }
.admin-schedule-row { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 20px; background: var(--ink); }
.admin-schedule-row > div { display: grid; min-width: 0; gap: 5px; }
.admin-schedule-row time { color: var(--lime); }
.admin-schedule-row strong { font-size: 17px; }
.admin-schedule-row a { color: rgba(255, 255, 255, .65); text-decoration: underline; }
.admin-schedule-row button { min-height: 36px; border-color: rgba(255, 255, 255, .35); color: var(--white); background: transparent; }

@media (max-width: 560px) {
  .schedule-admin-main { width: min(100% - 32px, 720px); padding-top: 42px; }
  .admin-form { padding: 20px; }
  .admin-schedule-row { align-items: flex-start; }
}

@media (hover: hover) and (pointer: fine) {
  body:hover .pointer-glow {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }

  .hero-image {
    transform: none !important;
  }
}
