/*
Theme Name: REVERIE
Theme URI: https://example.com/reverie
Author: REVERIE Music Productions
Description: Custom editorial WordPress theme for a modern independent music label. Built for Gutenberg, artists, releases and a bold image-led homepage.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: reverie
*/

:root {
  --rv-accent: #d9ff00;
  --rv-ink: #101010;
  --rv-paper: #f2f1ea;
  --rv-muted: #6f7069;
  --rv-line: rgba(16,16,16,.14);
  --rv-max: 1540px;
  --rv-pad: clamp(18px, 2.2vw, 42px);
  --rv-display: "Arial Black", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --rv-body: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--rv-ink);
  background: var(--rv-accent);
  font-family: var(--rv-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
body.admin-bar .rv-header { top: 32px; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }

.rv-shell { width: min(calc(100% - 2 * var(--rv-pad)), var(--rv-max)); margin: 0 auto; }
.rv-frame { background: var(--rv-paper); position: relative; overflow: clip; }

.rv-header {
  position: sticky; top: 0; z-index: 40;
  background: rgba(242,241,234,.92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--rv-line);
}
.rv-header__inner {
  min-height: 74px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px;
}
.rv-brand {
  font-family: var(--rv-display); font-size: clamp(18px, 1.7vw, 28px); letter-spacing: -.06em; text-transform: uppercase;
}
.rv-brand small { display:block; font-family: var(--rv-body); font-size: 8px; letter-spacing: .18em; font-weight: 700; margin-top: -2px; }
.rv-nav ul { list-style: none; padding: 0; margin: 0; display: flex; justify-content: center; gap: 26px; }
.rv-nav a { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.rv-nav a:hover { opacity: .55; }
.rv-player { display:flex; align-items:center; gap:10px; min-width: 240px; justify-content:flex-end; }
.rv-player__btn { width:34px; height:34px; border:1px solid var(--rv-ink); background:transparent; border-radius:50%; cursor:pointer; }
.rv-player__meta { text-align:right; line-height:1.1; max-width: 150px; }
.rv-player__meta strong { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rv-player__meta span { display:block; font-size:9px; color:var(--rv-muted); margin-top:4px; }
.rv-menu-toggle { display:none; border:0; background:transparent; font-size:26px; cursor:pointer; }

.rv-hero-wrap { padding: clamp(20px, 3vw, 54px) 0 clamp(28px, 4vw, 72px); }
.rv-hero {
  min-height: min(760px, 76vh); position: relative; display:grid; align-items:end; overflow:hidden;
  border: 1px solid rgba(16,16,16,.08); background: var(--rv-paper);
}
.rv-hero::before {
  content:""; position:absolute; inset:0; background: radial-gradient(circle at 68% 34%, rgba(255,255,255,.9), rgba(255,255,255,0) 35%);
  pointer-events:none;
}
.rv-hero__ghost {
  position:absolute; left:-1vw; top:7%; width:100%; font-family:var(--rv-display); text-transform:uppercase;
  font-size:clamp(110px, 18vw, 310px); line-height:.72; letter-spacing:-.08em; color:rgba(16,16,16,.055); white-space:nowrap;
}
.rv-hero__figure { position:absolute; right:4%; bottom:0; width:min(51vw, 760px); height:92%; display:flex; align-items:flex-end; justify-content:center; z-index:2; }
.rv-hero__figure img { width:100%; height:100%; object-fit:contain; object-position:bottom center; filter:grayscale(100%); }
.rv-hero__figure--placeholder { background:linear-gradient(150deg, transparent 0 45%, rgba(16,16,16,.04) 45% 100%); }
.rv-hero__content { position:relative; z-index:4; padding: clamp(28px, 4vw, 68px); max-width:70%; }
.rv-kicker { font-size:11px; text-transform:uppercase; font-weight:800; letter-spacing:.16em; margin-bottom:24px; }
.rv-hero h1 { font-family:var(--rv-display); text-transform:uppercase; font-size:clamp(70px, 11vw, 180px); line-height:.78; letter-spacing:-.075em; margin:0; max-width: 1100px; }
.rv-hero h1 .rv-outline { color:transparent; -webkit-text-stroke: 2px var(--rv-ink); text-stroke:2px var(--rv-ink); }
.rv-hero__intro { margin-top:34px; max-width:420px; font-size:clamp(14px,1.15vw,18px); line-height:1.45; }
.rv-arrow { display:inline-flex; width:48px; height:48px; border-radius:50%; border:1px solid currentColor; align-items:center; justify-content:center; margin-top:24px; transition:.25s ease; }
.rv-arrow:hover { transform: translate(5px,-5px); }

.rv-section { padding: clamp(74px, 8vw, 140px) 0; }
.rv-section--ink { background: var(--rv-ink); color: var(--rv-paper); }
.rv-section--accent { background: var(--rv-accent); }
.rv-section__head { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom: clamp(36px,5vw,72px); }
.rv-section__head h2 { margin:0; font-family:var(--rv-display); font-size:clamp(48px,7vw,112px); line-height:.82; letter-spacing:-.065em; text-transform:uppercase; }
.rv-section__head p { max-width:420px; margin:0; font-size:14px; line-height:1.55; }

.rv-artists { display:grid; grid-template-columns:repeat(12,1fr); gap:22px; }
.rv-artist-card { grid-column:span 6; position:relative; min-height:620px; background:#deddd6; overflow:hidden; }
.rv-artist-card:nth-child(2n) { margin-top:100px; }
.rv-artist-card img { width:100%; height:100%; object-fit:cover; filter:grayscale(100%); transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.rv-artist-card:hover img { transform:scale(1.025); filter:grayscale(0%); }
.rv-artist-card__fallback { position:absolute; inset:0; background:linear-gradient(145deg,#e8e7df,#cac9c1); }
.rv-artist-card__name { position:absolute; left:22px; bottom:18px; z-index:2; font-family:var(--rv-display); font-size:clamp(42px,5vw,84px); line-height:.8; letter-spacing:-.06em; text-transform:uppercase; }
.rv-artist-card__meta { position:absolute; top:20px; right:20px; z-index:2; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }

.rv-releases { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.rv-release { border-top:1px solid rgba(242,241,234,.22); padding-top:18px; }
.rv-release__cover { aspect-ratio:1/1; overflow:hidden; background:#242424; margin-bottom:16px; }
.rv-release__cover img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.rv-release:hover img { transform:scale(1.035); }
.rv-release h3 { margin:0; font-size:18px; text-transform:uppercase; letter-spacing:-.02em; }
.rv-release p { margin:6px 0 0; color:#aaa; font-size:12px; }

.rv-manifesto { display:grid; grid-template-columns: 1.2fr .8fr; gap:8vw; align-items:start; }
.rv-manifesto h2 { margin:0; font-family:var(--rv-display); font-size:clamp(56px,8vw,128px); line-height:.8; letter-spacing:-.07em; text-transform:uppercase; }
.rv-manifesto__text { font-size:clamp(18px,2vw,32px); line-height:1.25; letter-spacing:-.035em; }
.rv-manifesto__text p:first-child { margin-top:0; }

.rv-contact { display:grid; grid-template-columns:1fr 1fr; min-height:560px; }
.rv-contact__left, .rv-contact__right { padding:clamp(36px,6vw,90px); }
.rv-contact__left { background:var(--rv-accent); }
.rv-contact__right { background:var(--rv-paper); }
.rv-contact h2 { font-family:var(--rv-display); font-size:clamp(58px,8vw,126px); line-height:.78; letter-spacing:-.07em; text-transform:uppercase; margin:0 0 40px; }
.rv-contact a.rv-mail { font-size:clamp(22px,2.5vw,42px); border-bottom:2px solid currentColor; }

.rv-footer { background:var(--rv-ink); color:var(--rv-paper); padding:42px 0; }
.rv-footer__inner { display:grid; grid-template-columns:1fr auto; align-items:end; gap:30px; }
.rv-footer__brand { font-family:var(--rv-display); text-transform:uppercase; font-size:clamp(36px,6vw,92px); letter-spacing:-.07em; line-height:.8; }
.rv-footer__links { display:flex; flex-wrap:wrap; gap:16px 22px; justify-content:flex-end; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }

.rv-content { background:var(--rv-paper); padding:clamp(48px,7vw,110px) 0; min-height:60vh; }
.rv-content__inner { max-width:900px; margin:0 auto; }
.rv-content h1 { font-family:var(--rv-display); font-size:clamp(54px,8vw,120px); line-height:.84; letter-spacing:-.065em; text-transform:uppercase; }
.rv-content .entry-content { font-size:18px; line-height:1.7; }
.rv-single-hero { display:grid; grid-template-columns: 1fr 1fr; background:var(--rv-paper); min-height:74vh; }
.rv-single-hero__copy { padding:clamp(38px,6vw,88px); display:flex; flex-direction:column; justify-content:flex-end; }
.rv-single-hero__copy h1 { font-family:var(--rv-display); font-size:clamp(68px,10vw,160px); line-height:.78; letter-spacing:-.075em; text-transform:uppercase; margin:0; }
.rv-single-hero__image { min-height:520px; background:#ddd; }
.rv-single-hero__image img { width:100%; height:100%; object-fit:cover; filter:grayscale(100%); }
.rv-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.rv-pill { display:inline-flex; padding:10px 14px; border:1px solid currentColor; border-radius:999px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }

@media (max-width: 980px) {
  body.admin-bar .rv-header { top: 46px; }
  .rv-header__inner { grid-template-columns:auto 1fr auto; }
  .rv-nav { display:none; position:absolute; top:100%; left:0; right:0; background:var(--rv-paper); border-top:1px solid var(--rv-line); padding:22px var(--rv-pad); }
  .rv-nav.is-open { display:block; }
  .rv-nav ul { flex-direction:column; align-items:flex-start; gap:16px; }
  .rv-menu-toggle { display:block; justify-self:end; }
  .rv-player { display:none; }
  .rv-hero { min-height:760px; }
  .rv-hero__content { max-width:100%; padding-bottom:44px; }
  .rv-hero__figure { width:80vw; height:68%; right:-16%; opacity:.92; }
  .rv-hero h1 { font-size:clamp(64px,16vw,118px); }
  .rv-artists { grid-template-columns:1fr; }
  .rv-artist-card { grid-column:auto; min-height:520px; }
  .rv-artist-card:nth-child(2n) { margin-top:0; }
  .rv-releases { grid-template-columns:repeat(2,1fr); }
  .rv-manifesto, .rv-contact, .rv-single-hero { grid-template-columns:1fr; }
  .rv-single-hero__image { order:-1; min-height:56vh; }
}

@media (max-width: 620px) {
  :root { --rv-pad: 14px; }
  .rv-header__inner { min-height:64px; }
  .rv-brand { font-size:20px; }
  .rv-brand small { font-size:7px; }
  .rv-hero-wrap { padding-top:14px; }
  .rv-hero { min-height:680px; }
  .rv-hero__ghost { font-size:34vw; top:9%; left:-8%; }
  .rv-hero__figure { width:102vw; right:-34vw; height:65%; }
  .rv-hero__content { padding:24px 18px 32px; }
  .rv-hero h1 { font-size:18vw; }
  .rv-hero h1 .rv-outline { -webkit-text-stroke-width:1.2px; }
  .rv-section__head { display:block; }
  .rv-section__head p { margin-top:20px; }
  .rv-artists { gap:16px; }
  .rv-artist-card { min-height:460px; }
  .rv-releases { grid-template-columns:1fr 1fr; gap:14px; }
  .rv-contact__left,.rv-contact__right { padding:38px 20px; }
  .rv-footer__inner { grid-template-columns:1fr; }
  .rv-footer__links { justify-content:flex-start; }
}
