/* ============================================================
 * Reverb — main stylesheet
 * ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var( --rvb-f-body ); background: var( --rvb-bg ); color: var( --rvb-ink ); line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
::selection { background: var( --rvb-accent ); color: #0b0b0f; }
:focus-visible { outline: 2px solid var( --rvb-cyan ); outline-offset: 3px; }

.rvb-wrap { max-width: var( --rvb-wrap ); margin-inline: auto; padding-inline: clamp( 1.1rem, 4vw, 2.5rem ); }
.rvb-sec { padding-block: clamp( 3.5rem, 9vw, 7rem ); }
.rvb-skip { position: absolute; left: -9999px; }
.rvb-skip:focus { left: 1rem; top: 1rem; z-index: 200; background: var( --rvb-accent ); color: #0b0b0f; padding: .6rem 1rem; border-radius: var( --r-sm ); }

/* ---- type ---- */
h1, h2, h3, .rvb-display { font-family: var( --rvb-f-display ); font-weight: 800; line-height: 1.02; letter-spacing: -0.02em; }
.rvb-eyebrow, .rvb-kicker { font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); letter-spacing: 0.22em; text-transform: uppercase; color: var( --rvb-muted ); }

/* ---- buttons ---- */
.rvb-btn { display: inline-flex; align-items: center; gap: .55rem; font-family: var( --rvb-f-mono ); font-size: var( --fs-100 ); letter-spacing: 0.04em; text-transform: uppercase; padding: .85rem 1.4rem; border-radius: var( --r-pill ); border: 0; cursor: pointer; background: var( --rvb-ink ); color: #0b0b0f; font-weight: 700; transition: transform .25s var( --ease ), box-shadow .25s var( --ease ), background .25s; will-change: transform; }
.rvb-btn:hover { transform: translateY( -2px ); box-shadow: 0 12px 30px -10px rgba( 244, 241, 234, .35 ); }
.rvb-btn svg { flex: none; }
.rvb-btn--lg { padding: 1.05rem 1.9rem; font-size: var( --fs-100 ); }
.rvb-btn--sm { padding: .55rem 1rem; font-size: var( --fs-50 ); }
.rvb-btn--ghost { background: transparent; color: var( --rvb-ink ); box-shadow: inset 0 0 0 1.5px var( --rvb-line-2 ); }
.rvb-btn--ghost:hover { background: rgba( 244, 241, 234, .06 ); box-shadow: inset 0 0 0 1.5px var( --rvb-ink ); }

/* ============================================================ header */
.rvb-header { position: fixed; inset: 0 0 auto 0; z-index: 90; transition: background .3s, backdrop-filter .3s, border-color .3s; border-bottom: 1px solid transparent; }
.rvb-header.is-scrolled { background: rgba( 11, 11, 15, .72 ); backdrop-filter: var( --rvb-blur ); border-bottom-color: var( --rvb-line ); }
.rvb-header__bar { display: flex; align-items: center; gap: 1.5rem; height: 70px; }
.rvb-brand { display: flex; align-items: center; gap: .7rem; font-family: var( --rvb-f-display ); font-weight: 800; font-size: 1.2rem; letter-spacing: -0.01em; }
.rvb-brand__mark { display: inline-flex; align-items: flex-end; gap: 2px; height: 20px; }
.rvb-brand__mark i { width: 3px; height: 40%; background: var( --rvb-accent ); border-radius: 2px; animation: rvb-eq 1.1s var( --ease-io ) infinite; }
.rvb-brand__mark i:nth-child(2) { height: 90%; background: var( --rvb-vio ); animation-delay: .15s; }
.rvb-brand__mark i:nth-child(3) { height: 60%; background: var( --rvb-cyan ); animation-delay: .3s; }
.rvb-brand__mark i:nth-child(4) { height: 100%; background: var( --rvb-accent ); animation-delay: .45s; }
@keyframes rvb-eq { 0%, 100% { transform: scaleY( .4 ); } 50% { transform: scaleY( 1 ); } }
.rvb-nav { margin-left: auto; }
.rvb-nav__list { display: flex; gap: 1.7rem; list-style: none; margin: 0; padding: 0; font-family: var( --rvb-f-mono ); font-size: var( --fs-100 ); letter-spacing: .03em; }
.rvb-nav__list a { position: relative; padding: .3rem 0; color: var( --rvb-muted ); transition: color .2s; }
.rvb-nav__list a::after { content: ''; position: absolute; left: 0; bottom: -2px; width: 0; height: 2px; background: var( --rvb-spectrum ); transition: width .3s var( --ease ); }
.rvb-nav__list a:hover, .rvb-nav__list .current-menu-item a { color: var( --rvb-ink ); }
.rvb-nav__list a:hover::after, .rvb-nav__list .current-menu-item a::after { width: 100%; }
.rvb-header__end { display: flex; align-items: center; gap: 1rem; }
.rvb-nav-toggle { display: none; flex-direction: column; gap: 5px; width: 42px; height: 42px; align-items: center; justify-content: center; background: none; border: 1px solid var( --rvb-line-2 ); border-radius: var( --r-sm ); cursor: pointer; }
.rvb-nav-toggle span { width: 20px; height: 2px; background: var( --rvb-ink ); transition: .3s; }

/* ============================================================ hero */
.rvb-hero { position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden; padding-block: 7rem 4rem; }
.rvb-viz { position: absolute; inset: 0; z-index: 0; }
.rvb-viz__canvas { width: 100%; height: 100%; display: block; }
.rvb-viz__grain { position: absolute; inset: 0; pointer-events: none; opacity: .5; mix-blend-mode: overlay;
	background-image: radial-gradient( rgba( 255, 255, 255, .5 ) .5px, transparent .5px ); background-size: 3px 3px; }
.rvb-hero::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient( 60% 60% at 50% 45%, transparent, rgba( 11, 11, 15, .55 ) 80% ), linear-gradient( to bottom, rgba( 11, 11, 15, .4 ), transparent 25%, transparent 65%, var( --rvb-bg ) ); }
.rvb-hero__inner { position: relative; z-index: 2; text-align: center; margin-inline: auto; }
.rvb-hero__kicker { display: inline-flex; align-items: center; gap: .6rem; font-family: var( --rvb-f-mono ); font-size: var( --fs-100 ); letter-spacing: .2em; text-transform: uppercase; color: var( --rvb-ink ); padding: .5rem 1rem; border: 1px solid var( --rvb-line-2 ); border-radius: var( --r-pill ); background: rgba( 11, 11, 15, .4 ); backdrop-filter: blur( 6px ); }
.rvb-dot { width: 8px; height: 8px; border-radius: 50%; background: var( --rvb-accent ); box-shadow: 0 0 12px var( --rvb-accent ); animation: rvb-pulse 1.8s var( --ease-io ) infinite; }
@keyframes rvb-pulse { 0%, 100% { transform: scale( 1 ); opacity: 1; } 50% { transform: scale( 1.6 ); opacity: .55; } }
.rvb-hero__name { font-size: var( --fs-800 ); margin: 1.6rem 0 0; text-transform: uppercase; letter-spacing: -0.04em; max-width: 100%; overflow-wrap: break-word;
	background: linear-gradient( 180deg, #fff, #cfc9d8 ); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: 0 0 60px rgba( 255, 46, 126, .25 ); }
.rvb-hero__sub { font-size: var( --fs-300 ); color: var( --rvb-muted ); max-width: 40ch; margin: 1.2rem auto 0; }
.rvb-hero__cta { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 2.2rem; }
.rvb-hero__scroll { position: absolute; left: 50%; bottom: 2rem; transform: translateX( -50% ); z-index: 2; width: 26px; height: 42px; border: 2px solid var( --rvb-line-2 ); border-radius: 14px; }
.rvb-hero__scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; background: var( --rvb-ink ); border-radius: 2px; animation: rvb-scroll 1.8s var( --ease-io ) infinite; }
@keyframes rvb-scroll { 0% { opacity: 0; transform: translateY( 0 ); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY( 14px ); } }

/* ============================================================ section heads */
.rvb-sechead { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem 1rem; flex-wrap: wrap; margin-bottom: 2.5rem; border-bottom: 1px solid var( --rvb-line ); padding-bottom: 1.1rem; }
.rvb-sechead__title { font-size: var( --fs-600 ); text-transform: uppercase; min-width: 0; overflow-wrap: break-word; }
.rvb-sechead__more { font-family: var( --rvb-f-mono ); font-size: var( --fs-100 ); color: var( --rvb-muted ); white-space: nowrap; transition: color .2s; }
.rvb-sechead__more:hover { color: var( --rvb-cyan ); }
.rvb-eyebrow { display: block; margin-bottom: .8rem; color: var( --rvb-accent ); }

/* ============================================================ feature (latest release) */
.rvb-feature { display: grid; grid-template-columns: minmax( 0, 0.9fr ) minmax( 0, 1.1fr ); gap: clamp( 1.5rem, 4vw, 3.5rem ); align-items: center; min-width: 0; }
.rvb-feature__art, .rvb-feature__body { min-width: 0; }
.rvb-feature__art { position: relative; aspect-ratio: 1; border-radius: var( --r-lg ); overflow: hidden; box-shadow: var( --rvb-shadow ); }
.rvb-feature__art img { width: 100%; height: 100%; object-fit: cover; }
.rvb-feature__play, .rvb-rel__play { position: absolute; right: 1.1rem; bottom: 1.1rem; width: 60px; height: 60px; border-radius: 50%; border: 0; cursor: pointer; background: var( --rvb-accent ); color: #0b0b0f; display: grid; place-items: center; box-shadow: 0 8px 30px -6px rgba( 255, 46, 126, .6 ); transition: transform .25s var( --ease ); }
.rvb-feature__play:hover { transform: scale( 1.08 ); }
.rvb-feature__title { font-size: var( --fs-700 ); text-transform: uppercase; margin: 0; overflow-wrap: break-word; }
.rvb-feature__meta { font-family: var( --rvb-f-mono ); color: var( --rvb-muted ); margin: .6rem 0 1.4rem; font-size: var( --fs-100 ); }
.rvb-tracklist { list-style: none; margin: 0 0 1.6rem; padding: 0; }
.rvb-tracklist__row { display: grid; grid-template-columns: 2.2rem minmax( 0, 1fr ) auto; align-items: center; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var( --rvb-line ); transition: color .2s; }
.rvb-tracklist__t { min-width: 0; overflow-wrap: break-word; }
.rvb-tracklist__row:hover { color: var( --rvb-cyan ); }
.rvb-tracklist__n { font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); color: var( --rvb-faint ); }
.rvb-tracklist__t { font-weight: 500; }
.rvb-tracklist__d { font-family: var( --rvb-f-mono ); font-size: var( --fs-100 ); color: var( --rvb-muted ); }
.rvb-feature__cta { display: flex; gap: .7rem; flex-wrap: wrap; align-items: center; }

/* ============================================================ discography grid */
.rvb-disco { display: grid; grid-template-columns: repeat( 4, 1fr ); gap: clamp( 1rem, 2.5vw, 1.8rem ); }
.rvb-rel { position: relative; }
.rvb-rel__art { position: relative; display: block; aspect-ratio: 1; border-radius: var( --r ); overflow: hidden; background: linear-gradient( 135deg, hsl( var( --h, 320 ) 60% 22% ), var( --rvb-bg-3 ) ); box-shadow: 0 16px 40px -22px rgba( 0, 0, 0, .9 ); transition: transform .35s var( --ease ), box-shadow .35s var( --ease ); }
.rvb-rel__art img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var( --ease ), filter .4s; }
.rvb-rel:hover .rvb-rel__art { transform: translateY( -6px ); box-shadow: 0 24px 50px -18px rgba( 255, 46, 126, .35 ); }
.rvb-rel:hover .rvb-rel__art img { transform: scale( 1.05 ); }
.rvb-rel__mono { position: absolute; inset: 0; display: grid; place-items: center; font-family: var( --rvb-f-display ); font-size: 2.4rem; font-weight: 800; color: rgba( 244, 241, 234, .5 ); }
.rvb-rel__sheen { position: absolute; inset: 0; background: linear-gradient( 120deg, transparent 40%, rgba( 255, 255, 255, .14 ) 50%, transparent 60% ); transform: translateX( -100% ); transition: transform .7s var( --ease ); }
.rvb-rel:hover .rvb-rel__sheen { transform: translateX( 100% ); }
.rvb-rel__play { right: .7rem; bottom: .7rem; width: 44px; height: 44px; opacity: 0; transform: translateY( 8px ); transition: opacity .3s, transform .3s, background .25s; }
.rvb-rel:hover .rvb-rel__play { opacity: 1; transform: none; }
.rvb-rel__meta { margin-top: .9rem; }
.rvb-rel__kind { font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); letter-spacing: .12em; text-transform: uppercase; color: var( --rvb-faint ); }
.rvb-rel__title { font-size: var( --fs-300 ); margin: .25rem 0 0; letter-spacing: -0.01em; }
.rvb-rel__title a:hover { color: var( --rvb-cyan ); }

/* ============================================================ tour marquee */
.rvb-marquee { overflow: hidden; border-block: 1px solid var( --rvb-line ); padding: 1.1rem 0; margin-block: 1rem; }
.rvb-marquee__track { display: inline-flex; align-items: center; gap: 1.5rem; white-space: nowrap; animation: rvb-marq 28s linear infinite; }
.rvb-marquee__item { font-family: var( --rvb-f-display ); font-weight: 800; font-size: var( --fs-500 ); text-transform: uppercase; color: transparent; -webkit-text-stroke: 1px var( --rvb-line-2 ); }
.rvb-marquee__star { color: var( --rvb-accent ); }
@keyframes rvb-marq { to { transform: translateX( -50% ); } }

/* ============================================================ shows */
.rvb-shows { display: flex; flex-direction: column; }
.rvb-show { display: grid; grid-template-columns: 84px 1fr auto; align-items: center; gap: 1.5rem; padding: 1.3rem 0; border-bottom: 1px solid var( --rvb-line ); transition: padding-left .3s var( --ease ), background .3s; }
.rvb-show:hover { padding-left: 1rem; background: linear-gradient( 90deg, rgba( 255, 46, 126, .06 ), transparent ); }
.rvb-show__date { text-align: center; font-family: var( --rvb-f-display ); }
.rvb-show__day { display: block; font-size: var( --fs-500 ); font-weight: 800; line-height: 1; }
.rvb-show__mon { font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); text-transform: uppercase; letter-spacing: .12em; color: var( --rvb-accent ); }
.rvb-show__venue { font-size: var( --fs-400 ); margin: 0; letter-spacing: -0.01em; }
.rvb-show__city { font-family: var( --rvb-f-mono ); color: var( --rvb-muted ); margin: .2rem 0 0; font-size: var( --fs-100 ); }
.rvb-show__cta { display: flex; align-items: center; gap: 1rem; }
.rvb-show__status { font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); letter-spacing: .1em; text-transform: uppercase; }
.rvb-show__status.is-sold { color: var( --rvb-faint ); }
.rvb-show__status.is-on { color: var( --rvb-cyan ); }

/* ============================================================ videos */
.rvb-videos { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp( 1rem, 2.5vw, 1.6rem ); }
.rvb-video { position: relative; display: block; border-radius: var( --r ); overflow: hidden; background: var( --rvb-bg-3 ); }
.rvb-video img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16/9; transition: transform .5s var( --ease ), filter .4s; filter: saturate( .9 ) brightness( .82 ); }
.rvb-video:hover img { transform: scale( 1.04 ); filter: none; }
.rvb-video__side { display: grid; gap: clamp( 1rem, 2.5vw, 1.6rem ); grid-template-rows: 1fr 1fr; }
.rvb-video__play { position: absolute; left: 1.2rem; bottom: 1.2rem; width: 58px; height: 58px; border-radius: 50%; background: rgba( 11, 11, 15, .5 ); backdrop-filter: blur( 6px ); border: 1.5px solid rgba( 244, 241, 234, .5 ); color: var( --rvb-ink ); display: grid; place-items: center; transition: background .3s, transform .3s, border-color .3s; }
.rvb-video:hover .rvb-video__play { background: var( --rvb-accent ); color: #0b0b0f; border-color: var( --rvb-accent ); transform: scale( 1.05 ); }
.rvb-video__play--sm { width: 44px; height: 44px; left: .9rem; bottom: .9rem; }
.rvb-video__label { position: absolute; left: 1.3rem; right: 1.3rem; top: 1.2rem; font-family: var( --rvb-f-display ); font-weight: 700; font-size: var( --fs-400 ); text-transform: uppercase; letter-spacing: -0.01em; text-shadow: 0 2px 20px rgba( 0, 0, 0, .8 ); }
.rvb-video__label--sm { font-size: var( --fs-200 ); top: auto; bottom: .9rem; left: .9rem; right: 3.5rem; }

/* ============================================================ journal */
.rvb-journal { display: grid; grid-template-columns: repeat( 3, 1fr ); gap: clamp( 1rem, 2.5vw, 1.8rem ); }
.rvb-jcard { border: 1px solid var( --rvb-line ); border-radius: var( --r ); padding: 1.6rem; background: var( --rvb-bg-2 ); transition: transform .3s var( --ease ), border-color .3s, background .3s; }
.rvb-jcard:hover { transform: translateY( -4px ); border-color: var( --rvb-line-2 ); background: var( --rvb-bg-3 ); }
.rvb-jcard__date { font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); letter-spacing: .1em; text-transform: uppercase; color: var( --rvb-accent ); }
.rvb-jcard__title { font-size: var( --fs-400 ); margin: .7rem 0; letter-spacing: -0.01em; }
.rvb-jcard__title a:hover { color: var( --rvb-cyan ); }
.rvb-jcard__ex { color: var( --rvb-muted ); font-size: var( --fs-100 ); margin: 0 0 1rem; }
.rvb-jcard__link { font-family: var( --rvb-f-mono ); font-size: var( --fs-100 ); color: var( --rvb-ink ); }

/* ============================================================ mailing list */
.rvb-news { display: grid; grid-template-columns: 1.1fr 1fr; gap: 2rem; align-items: center; padding: clamp( 2rem, 5vw, 4rem ); border-radius: var( --r-lg ); background: var( --rvb-bg-2 ); position: relative; overflow: hidden; border: 1px solid var( --rvb-line ); }
.rvb-news::before { content: ''; position: absolute; inset: 0; background: var( --rvb-spectrum-soft ); opacity: .6; pointer-events: none; }
.rvb-news > * { position: relative; z-index: 1; }
.rvb-news__title { font-size: var( --fs-600 ); text-transform: uppercase; margin: 0 0 .6rem; }
.rvb-news__copy p { color: var( --rvb-muted ); margin: 0; max-width: 42ch; }
.rvb-news__form { display: flex; flex-wrap: wrap; gap: .7rem; }
.rvb-news__form input { flex: 1 1 220px; min-width: 0; padding: 1rem 1.2rem; border-radius: var( --r-pill ); border: 1px solid var( --rvb-line-2 ); background: rgba( 11, 11, 15, .5 ); color: var( --rvb-ink ); font-family: var( --rvb-f-body ); font-size: var( --fs-100 ); }
.rvb-news__form input:focus { outline: none; border-color: var( --rvb-cyan ); }
.rvb-news__note { flex-basis: 100%; margin: .3rem 0 0; font-family: var( --rvb-f-mono ); font-size: var( --fs-100 ); }
.rvb-news__note.is-ok { color: var( --rvb-cyan ); }
.rvb-news__note.is-err { color: var( --rvb-accent ); }

/* ============================================================ footer */
.rvb-footer { border-top: 1px solid var( --rvb-line ); padding-block: clamp( 3rem, 6vw, 5rem ) 2rem; margin-bottom: var( --rvb-player-h ); }
.rvb-footer__top { display: flex; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.rvb-footer__name { font-size: var( --fs-700 ); text-transform: uppercase; margin: 0; letter-spacing: -0.03em; }
.rvb-footer__tag { color: var( --rvb-muted ); margin: .5rem 0 0; }
.rvb-footer__list { display: flex; flex-wrap: wrap; gap: 1.4rem; list-style: none; margin: .5rem 0 0; padding: 0; font-family: var( --rvb-f-mono ); font-size: var( --fs-100 ); }
.rvb-footer__list a { color: var( --rvb-muted ); transition: color .2s; }
.rvb-footer__list a:hover { color: var( --rvb-ink ); }
.rvb-social { display: flex; flex-wrap: wrap; gap: .8rem; list-style: none; padding: 0; margin: 2.5rem 0; }
.rvb-social a { display: inline-block; font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); letter-spacing: .08em; text-transform: uppercase; padding: .5rem .9rem; border: 1px solid var( --rvb-line ); border-radius: var( --r-pill ); color: var( --rvb-muted ); transition: border-color .3s, color .3s; }
.rvb-social a:hover { color: var( --rvb-ink ); border-color: var( --rvb-cyan ); }
.rvb-footer__bottom { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-top: 1.6rem; border-top: 1px solid var( --rvb-line ); font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); color: var( --rvb-faint ); }

/* ============================================================ persistent player */
.rvb-player { position: fixed; inset: auto 0 0 0; z-index: 100; height: var( --rvb-player-h ); background: rgba( 14, 14, 20, .82 ); backdrop-filter: var( --rvb-blur ); border-top: 1px solid var( --rvb-line-2 ); }
.rvb-player__inner { max-width: var( --rvb-wrap-wide ); margin-inline: auto; height: 100%; display: flex; align-items: center; gap: 1rem; padding-inline: clamp( 1rem, 3vw, 2rem ); }
.rvb-player__toggle { flex: none; width: 46px; height: 46px; border-radius: 50%; border: 0; cursor: pointer; background: var( --rvb-ink ); color: #0b0b0f; display: grid; place-items: center; transition: transform .2s, background .3s, box-shadow .3s; }
.rvb-player.is-playing .rvb-player__toggle { background: var( --rvb-accent ); box-shadow: 0 0 22px -2px var( --rvb-accent ); }
.rvb-player__toggle:hover { transform: scale( 1.06 ); }
.rvb-player__art { flex: none; width: 46px; height: 46px; border-radius: 8px; background: var( --rvb-bg-4 ) center/cover; box-shadow: inset 0 0 0 1px var( --rvb-line ); }
.rvb-player__art.is-empty { background-image: var( --rvb-spectrum ); opacity: .5; }
.rvb-player__now { min-width: 0; display: flex; flex-direction: column; line-height: 1.25; width: 22ch; max-width: 26vw; }
.rvb-player__title { font-weight: 600; font-size: var( --fs-100 ); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rvb-player__sub { font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); color: var( --rvb-muted ); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rvb-player__bars { display: none; align-items: flex-end; gap: 2px; height: 20px; flex: none; }
.rvb-player.is-playing .rvb-player__bars { display: flex; }
.rvb-player__bars i { width: 3px; height: 30%; background: var( --rvb-cyan ); border-radius: 2px; animation: rvb-eq 900ms var( --ease-io ) infinite; }
.rvb-player__bars i:nth-child(2) { animation-delay: .1s; background: var( --rvb-vio ); }
.rvb-player__bars i:nth-child(3) { animation-delay: .25s; background: var( --rvb-accent ); }
.rvb-player__bars i:nth-child(4) { animation-delay: .4s; background: var( --rvb-vio ); }
.rvb-player__bars i:nth-child(5) { animation-delay: .5s; background: var( --rvb-cyan ); }
.rvb-player__seek { flex: 1; display: flex; align-items: center; gap: .7rem; min-width: 80px; }
.rvb-player__time { font-family: var( --rvb-f-mono ); font-size: var( --fs-50 ); color: var( --rvb-muted ); flex: none; width: 3ch; }
.rvb-player__track { position: relative; flex: 1; height: 5px; border-radius: 3px; background: var( --rvb-line-2 ); cursor: pointer; }
.rvb-player__fill { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: 3px; background: var( --rvb-spectrum ); }
.rvb-player__mute { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 0; background: transparent; color: var( --rvb-muted ); cursor: pointer; display: grid; place-items: center; }
.rvb-player__mute:hover { color: var( --rvb-ink ); }
.rvb-player__mute.is-muted { color: var( --rvb-faint ); opacity: .5; }

/* ============================================================ reveal */
.rvb-anim [data-reveal] { opacity: 0; transform: translateY( 24px ); transition: opacity .7s var( --ease ), transform .7s var( --ease ); }
.rvb-anim [data-reveal].is-in { opacity: 1; transform: none; }

/* ============================================================ inner pages */
.rvb-main { min-height: 60vh; padding-block: clamp( 6rem, 12vw, 9rem ) clamp( 3rem, 8vw, 6rem ); }
.rvb-page-hero { padding-block: clamp( 6.5rem, 12vw, 9rem ) 2rem; }
.rvb-page-hero__eyebrow { color: var( --rvb-accent ); }
.rvb-page-hero__title { font-size: var( --fs-700 ); text-transform: uppercase; margin: .6rem 0 0; }
.rvb-prose { max-width: 68ch; font-size: var( --fs-200 ); color: #ded9d0; }
.rvb-prose p { margin: 0 0 1.3em; }
.rvb-prose a { color: var( --rvb-cyan ); text-decoration: underline; text-underline-offset: 3px; }
.rvb-prose h2, .rvb-prose h3 { margin: 1.6em 0 .5em; }
.rvb-embed { position: relative; aspect-ratio: 16/9; border-radius: var( --r ); overflow: hidden; margin: 0 0 2rem; background: #000; }
.rvb-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rvb-post { padding-block: 1.6rem; border-bottom: 1px solid var( --rvb-line ); }
.rvb-post__title { font-size: var( --fs-400 ); margin: 0 0 .5rem; }
.rvb-post__title a:hover { color: var( --rvb-cyan ); }
.rvb-post__excerpt { color: var( --rvb-muted ); }
.pagination, .nav-links { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 2.5rem; font-family: var( --rvb-f-mono ); }
.pagination .page-numbers { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 .6rem; border: 1px solid var( --rvb-line ); border-radius: var( --r-sm ); color: var( --rvb-muted ); }
.pagination .page-numbers.current { background: var( --rvb-accent ); color: #0b0b0f; border-color: var( --rvb-accent ); }

/* ============================================================ responsive */
@media ( max-width: 980px ) {
	.rvb-feature, .rvb-news { grid-template-columns: 1fr; }
	.rvb-disco { grid-template-columns: repeat( 3, 1fr ); }
	.rvb-videos { grid-template-columns: 1fr; }
	.rvb-journal { grid-template-columns: 1fr; }
	.rvb-video__side { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
}
@media ( max-width: 760px ) {
	.rvb-nav { position: fixed; inset: 70px 0 auto 0; background: rgba( 11, 11, 15, .96 ); backdrop-filter: blur( 12px ); border-bottom: 1px solid var( --rvb-line ); padding: 1.4rem; transform: translateY( -120% ); transition: transform .35s var( --ease ); margin: 0; }
	.rvb-header.is-open .rvb-nav { transform: none; }
	.rvb-nav__list { flex-direction: column; gap: 1.1rem; font-size: var( --fs-300 ); }
	.rvb-nav-toggle { display: flex; }
	.rvb-header__listen { display: none; }
	.rvb-disco { grid-template-columns: repeat( 2, 1fr ); }
	.rvb-player__seek, .rvb-player__mute { display: none; }
	.rvb-player__now { flex: 1; width: auto; max-width: none; }
	.rvb-show { grid-template-columns: 64px 1fr; }
	.rvb-show__cta { grid-column: 2; justify-content: flex-start; }
	.rvb-video__label { font-size: var( --fs-300 ); }
}

/* ============================================================ reduced motion */
@media ( prefers-reduced-motion: reduce ) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
	.rvb-marquee__track { animation: none; }
	.rvb-anim [data-reveal] { opacity: 1; transform: none; }
}
