/* Music chapters — one shared visual layer for the site and block editor. */
.cailev-music-page.cailev-music-chapters {
  max-width: none;
  width: 100%;
  padding: 0 0 clamp(64px, 10vw, 144px);
  background-color: rgb(var(--cailev-active-base, 15 13 15));
  counter-reset: release;
}
.cailev-music-intro {
  position: relative;
  padding: clamp(48px, 7vw, 104px) var(--page-gutter) clamp(36px, 5vw, 72px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 48px;
  align-items: end;
}
.cailev-music-intro > * { margin: 0; }
.cailev-music-intro .eyebrow { grid-column: 1 / -1; }
.cailev-music-intro h1 {
  margin: 0;
  padding: 0 0 .06em;
  font-size: clamp(76px, 9vw, 140px);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -.04em;
}
.cailev-music-lead { max-width: 39ch; color: #bfb4a7; line-height: 1.8; padding-bottom: 12px; }
.cailev-music-index { grid-column: 1 / -1; padding-top: 20px; font-size: 10px; letter-spacing: .22em; color: #b78780; }
.cailev-release-v3 {
  --cailev-art-padding: clamp(24px, 4vw, 80px);
  position: relative;
  isolation: isolate;
  margin: 0;
  min-height: 100svh;
  border: 0;
  border-top: 1px solid rgba(231, 220, 203, .2);
  background: linear-gradient(125deg, rgb(var(--cailev-cover-glow, 47 25 33)), rgb(var(--cailev-cover-base, 24 17 22)) 58%, rgb(var(--cailev-cover-shade, 16 13 16)));
  box-shadow: 0 30px 80px -60px #000;
}

.cailev-release-v3 .cailev-release-hero {
  min-height: calc(100svh - var(--cailev-summary-height, 72px) - 1px);
  margin: 0;
  display: flex;
  align-items: stretch;
  gap: 0;
}
.cailev-release-v3 .cailev-release-art,
.cailev-release-v3 .cailev-release-copy { flex: 1 1 0; min-width: 0; }
.cailev-release-v3 .cailev-release-art {
  position: relative;
  padding: var(--cailev-art-padding);
  background: radial-gradient(ellipse at 25% 20%, rgb(var(--cailev-cover-glow, 47 25 33) / .32), transparent 70%), rgba(0,0,0,.12);
  display: flex;
  align-items: center;
  justify-content: center;
}
/* An empty image block is deliberately a quiet artwork placeholder, never a broken image. */
.cailev-release-v3 .cailev-release-art:not(:has(img[src]:not([src=""])))::before {
  content: "";
  display: block;
  width: 100%;
  max-width: 800px;
  aspect-ratio: 1;
  background: radial-gradient(circle at 50% 50%, #1b1217 0 3%, #965e61 3.2% 3.4%, #2e1923 3.7% 15%, transparent 15.4%), repeating-radial-gradient(circle at 50% 50%, transparent 0 10px, rgba(216,164,164,.065) 11px, transparent 12px), linear-gradient(135deg,#482732,#120e12 65%);
  box-shadow: 0 24px 50px -15px rgba(0,0,0,.5);
}
.cailev-release-v3 .cailev-release-cover {
  margin: 0;
  max-width: 800px;
  max-height: none;
  width: min(100%, calc(100svh - var(--cailev-summary-height, 72px) - 2 * var(--cailev-art-padding) - 1px));
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  box-shadow: 0 24px 50px -15px rgba(0,0,0,.5);
}
.cailev-release-v3 .cailev-release-cover img { display:block; width:100%; height:100%; max-height:inherit; object-fit:contain; }
.cailev-release-v3 .cailev-release-cover img:not([src]),
.cailev-release-v3 .cailev-release-cover img[src=""] { display:none; }
.cailev-release-v3 .cailev-release-copy { padding: clamp(32px, 4.7vw, 88px); gap: 22px; }
.cailev-release-kicker { color: rgb(var(--cailev-cover-accent, 201 155 145)); font-size: 10px; letter-spacing: .2em; line-height: 1.7; }
.cailev-release-v3 .cailev-release-title {
  font-size: clamp(42px, 5vw, 78px);
  line-height: 1.12;
  letter-spacing: -.025em;
  font-weight: 400;
  overflow: visible;
  overflow-wrap: anywhere;
  padding-bottom: .08em;
}
.cailev-release-v3 .cailev-release-meta { letter-spacing: .045em; font-size: 11px; }
.cailev-release-v3 .cailev-release-description { color: #c9bfb3; max-width: 43ch; font-size: 15px; line-height: 1.9; }
.cailev-release-v3 .cailev-release-copy .cailev-release-track { width:100%; margin:8px 0 0; padding-top:20px; border-top:1px solid rgba(231,220,203,.14); }
.cailev-release-v3 .cailev-track-title { margin:0 0 12px; color:#c9bfb3; font-size:12px; }
.cailev-release-v3 audio, .cailev-demo audio { display:block; width:100%; max-width:100%; min-width:0; height:40px; color-scheme:dark; }
.cailev-release-v3 .wp-block-audio, .cailev-demo .wp-block-audio { width:100%; margin:0; }
.cailev-release-v3 .cailev-release-details { background:rgba(0,0,0,.15); }
.cailev-release-v3 .cailev-release-details > summary { padding:24px clamp(24px,4.2vw,64px); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.cailev-release-v3 .cailev-release-details > summary:hover { background:rgba(231,220,203,.035); }
.cailev-release-v3 .cailev-release-details-inner { padding:16px clamp(24px,4.2vw,64px) 48px; }
.cailev-release-v3 .cailev-release-details-inner > p { max-width:65ch; color:#c9bfb3; line-height:1.85; }
.cailev-release-v3 .cailev-release-details-inner > h3 { margin-top:32px; }
.cailev-release-v3 .wp-block-file { overflow-wrap:anywhere; margin:8px 0 0; }
.cailev-release-v3 .wp-block-file a { color:#e7dccb; }
.cailev-release-v3 .wp-block-file .wp-block-file__button { display:inline-block; margin:10px 0 0 12px; }
.cailev-demos { padding:clamp(64px, 9vw, 144px) var(--page-gutter) 0; }
.cailev-demos > .eyebrow { color:#b78780; }
.cailev-demos > h2 { font-family:var(--font-display); font-size:clamp(48px,6vw,80px); font-weight:400; line-height:1.16; margin:12px 0 16px; }
.cailev-demos-intro { color:#bfb4a7; margin:0 0 40px; max-width:52ch; line-height:1.8; }
.cailev-demo { margin:0; padding:26px 0; border-top:1px solid rgba(231,220,203,.2); }
.cailev-demo:last-child { border-bottom:1px solid rgba(231,220,203,.2); }
.cailev-demo .cailev-demo-row { display:flex; align-items:center; margin:0; gap:32px; }
.cailev-demo-info { flex:1.2!important; min-width:0; }
.cailev-demo-audio { flex:1!important; min-width:0; }
.cailev-demo-file { flex:.6!important; min-width:0; text-align:right; overflow-wrap:anywhere; }
.cailev-demo-number { color:#b78780; font-size:10px; letter-spacing:.15em; margin:0 0 8px; }
.cailev-demo h3 { font-family:var(--font-display); font-size:30px; line-height:1.2; font-weight:400; margin:0 0 8px; }
.cailev-demo-description { color:#a99f95; font-size:12px; line-height:1.7; margin:0; }
.cailev-demo .wp-block-file { margin:0; font-size:12px; }
.cailev-demo .wp-block-file a { color:#ded2c1; }
.cailev-demo .wp-block-file__button { display:inline-block; margin:8px 0 0; padding:8px 13px; background:#33242a; border:1px solid #60434a; border-radius:0; }
.cailev-release-v3:focus-within { outline-offset:5px; }
.cailev-release-v3 summary:focus-visible, .cailev-release-v3 a:focus-visible, .cailev-demo a:focus-visible { outline:2px solid #e4b39f; outline-offset:5px; }
/* Enhancement only: JS never hides a release, scrolls automatically or starts audio. */
@media (prefers-reduced-motion:no-preference) and (min-width:782px) {
  .cailev-music-motion .cailev-release-art { transition:background-color 1.2s ease; }
  .cailev-music-motion .cailev-release-cover { transition:translate 1.2s ease,box-shadow 1.2s ease; }
  .cailev-music-motion .cailev-release-v3.is-in-view .cailev-release-cover { translate:0 -8px; box-shadow:0 32px 65px -16px rgba(0,0,0,.6); }
}
/* Global footer addition, kept independent from music page content. */
.site-footer .cailev-legal-nav { grid-column:1 / -1; width:100%; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px 24px; padding-top:20px; border-top:1px solid rgba(231,220,203,.12); }
.site-footer .cailev-legal-nav a { font-size:11px; color:#bfb4a7; }
@media (max-width:781px) {
  .cailev-music-intro { grid-template-columns:1fr; gap:16px; padding-top:44px; }
  .cailev-music-lead { padding-bottom:0; font-size:14px; }
  .cailev-music-index { padding-top:4px; }
  .cailev-release-v3 .cailev-release-hero { min-height:0; flex-direction:column; }
  .cailev-release-v3 .cailev-release-art { padding:26px; }
  .cailev-release-v3 .cailev-release-copy { padding:30px 26px 38px; gap:18px; }
  .cailev-release-v3 .cailev-release-cover { max-height:none; max-width:480px; }
  .cailev-release-v3 .cailev-release-details > summary { padding:22px 26px; font-size:10px; }
  .cailev-release-v3 .cailev-release-details-inner { padding:16px 26px 32px; }
  .cailev-demo .cailev-demo-row { flex-direction:column; align-items:stretch; gap:20px; }
  .cailev-demo .cailev-demo-file { text-align:left; }
  .site-footer .cailev-legal-nav { justify-content:flex-start; }
}
/* The empty editor Image block must retain its upload controls, not the visual fallback. */
.editor-styles-wrapper .cailev-release-art::before { display:none!important; }
.editor-styles-wrapper .cailev-release-v3 .cailev-release-art > .block-editor-block-list__layout { width:100%; }
.editor-styles-wrapper .cailev-release-v3 .block-editor-media-placeholder { min-height:240px; }
.editor-styles-wrapper .cailev-editor-canvas .wp-block.cailev-music-chapters { max-width:none; }
.editor-styles-wrapper .cailev-release-details > .block-editor-inner-blocks { padding:0; }
/* Five primary destinations stay reachable without sideways scrolling on phones. */
@media (max-width:620px) {
  .site-header .main-nav { flex-wrap:wrap; gap:16px 20px; overflow:visible; padding-bottom:8px; }
  .site-header .main-nav-wrap { overflow:visible; }
}
.cailev-release-v3 .cailev-release-art:not(:has(img[src]:not([src=""]))) .cailev-release-cover { display:none; }
.editor-styles-wrapper .cailev-release-v3 .cailev-release-art:not(:has(img[src]:not([src=""]))) .cailev-release-cover { display:block; }

/* Full-viewport chapters stay in normal document flow when details expand. */
.cailev-music-page:has(.cailev-release-v3) { max-width:none; }
.editor-styles-wrapper .cailev-editor-canvas .wp-block.cailev-music-page:has(.cailev-release-v3) { max-width:none; }
.cailev-release-v3 .cailev-release-art:not(:has(img[src]:not([src=""])))::before { max-width:min(800px, calc(100svh - var(--cailev-summary-height, 72px) - 2 * var(--cailev-art-padding) - 1px)); }
.cailev-release-v3 .cailev-release-copy > * { max-width:100%; }
.cailev-release-v3 .cailev-release-copy .cailev-release-description { max-width:48ch; }
@media (prefers-reduced-motion:no-preference) {
 .cailev-music-chapters { transition:background-color 900ms ease; }
}
@media (max-width:781px) {
 .cailev-release-v3 { display:flex; flex-direction:column; }
 .cailev-release-v3 .cailev-release-hero { flex:1; min-height:0; }
 .cailev-release-v3 .cailev-release-art { flex:0 0 auto; padding:24px; }
 .cailev-release-v3 .cailev-release-cover { width:min(100%, 38svh); max-width:480px; }
 .cailev-release-v3 .cailev-release-art:not(:has(img[src]:not([src=""])))::before { width:min(100%, 38svh); }
 .cailev-release-v3 .cailev-release-copy { flex:1; padding:24px; gap:14px; }
 .cailev-release-v3 .cailev-release-description { font-size:14px; line-height:1.8; }
 .cailev-release-v3 .cailev-release-title { font-size:clamp(38px, 7vw, 56px); }
 .cailev-release-v3 .cailev-release-details { flex:0 0 auto; }
}

/* Keep the release action next to its main copy, with a native-details fallback. */
.cailev-release-v3 .cailev-release-trigger {
 display:flex; align-items:center; justify-content:space-between; gap:20px;
 width:100%; margin:4px 0 0; padding:18px 22px; cursor:pointer;
 border:1px solid rgb(var(--cailev-cover-accent, 224 185 180) / .6);
 border-radius:0; background:rgb(var(--cailev-cover-accent, 224 185 180) / .13);
 color:#f1e8d8; text-align:left; font:600 13px/1.6 var(--font-sans);
 letter-spacing:.035em; box-shadow:inset 3px 0 0 rgb(var(--cailev-cover-accent, 224 185 180));
}
.cailev-release-v3 .cailev-release-trigger:hover { background:rgb(var(--cailev-cover-accent, 224 185 180) / .19); }
.cailev-release-v3 .cailev-release-trigger:focus-visible { outline:2px solid #f1e8d8; outline-offset:4px; }
.cailev-release-trigger-icon { font-size:25px; line-height:1; flex-shrink:0; }
.cailev-release-v3.has-release-trigger:has(.cailev-release-trigger) .cailev-release-details:not([open]) { display:none; }
.cailev-release-v3.has-release-trigger:has(.cailev-release-trigger) .cailev-release-hero { min-height:calc(100svh - 1px); }
.cailev-release-v3 .cailev-release-details { background:transparent; border-top-color:rgb(var(--cailev-cover-accent, 224 185 180) / .4); }
.cailev-release-v3 .cailev-release-details > summary { background:rgb(var(--cailev-cover-accent, 224 185 180) / .11); font-size:13px; font-weight:600; letter-spacing:.035em; text-transform:none; padding-block:18px; }
.cailev-release-v3 .cailev-release-details-inner { padding-top:24px; }
.cailev-release-v3 .cailev-release-details-inner > .cailev-release-resources { margin-top:0; }
/* Native controls stay intact; download is visible in every supported browser. */
.wp-block-audio .cailev-audio-download {
 display:inline-flex; align-items:center; gap:8px; margin-top:10px; padding:5px 0;
 max-width:100%; color:inherit; font:500 12px/1.6 var(--font-sans); text-decoration:none;
 border-bottom:1px solid currentColor; overflow-wrap:anywhere;
}
.wp-block-audio .cailev-audio-download:hover { text-decoration:underline; text-underline-offset:4px; }
.wp-block-audio .cailev-audio-download:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.cailev-release-v3 .cailev-audio-download, .cailev-demo .cailev-audio-download { color:#eee3d3; }
/* New demos have an actual title / player+files / text block order. */
.cailev-demo .cailev-demo-row { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr) minmax(0,1fr); column-gap:clamp(24px,3vw,56px); row-gap:12px; }
.cailev-demo-info, .cailev-demo-audio, .cailev-demo-text { min-width:0; }
.cailev-demo .cailev-demo-file { text-align:left; margin-top:12px; }
.cailev-demo .cailev-demo-description { font-size:14px; line-height:1.8; color:#bfb4a7; }
/* Old saved demos receive the same visual order without rewriting the database. */
.cailev-demo-row:not(:has(.cailev-demo-text)) > .cailev-demo-info { display:contents; }
.cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-number { grid-column:1; grid-row:1; margin:0; align-self:end; }
.cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-info > h3 { grid-column:1; grid-row:2 / span 2; align-self:start; margin:0; }
.cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-description { grid-column:3; grid-row:1 / span 3; align-self:center; }
.cailev-demo-row:not(:has(.cailev-demo-text)) > .cailev-demo-audio { grid-column:2; grid-row:1 / span 2; }
.cailev-demo-row:not(:has(.cailev-demo-text)) > .cailev-demo-file { grid-column:2; grid-row:3; margin:0; }
@media (max-width:781px) {
 .cailev-release-v3.has-release-trigger:has(.cailev-release-trigger) .cailev-release-hero { min-height:0; }
 .cailev-release-v3 .cailev-release-trigger { padding:16px 18px; font-size:12px; }
 .cailev-demo .cailev-demo-row { grid-template-columns:minmax(0,1fr); gap:18px; }
 .cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-number,
 .cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-info > h3,
 .cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-description,
 .cailev-demo-row:not(:has(.cailev-demo-text)) > .cailev-demo-audio,
 .cailev-demo-row:not(:has(.cailev-demo-text)) > .cailev-demo-file { grid-column:1; grid-row:auto; }
 .cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-number { order:0; }
 .cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-info > h3 { order:1; }
 .cailev-demo-row:not(:has(.cailev-demo-text)) > .cailev-demo-audio { order:2; }
 .cailev-demo-row:not(:has(.cailev-demo-text)) > .cailev-demo-file { order:3; }
 .cailev-demo-row:not(:has(.cailev-demo-text)) .cailev-demo-description { order:4; }
}
/* Legacy intro blocks remain stored, but releases begin the page in both views. */
.cailev-music-page .cailev-music-intro { display:none; }
.cailev-music-page > .screen-reader-text {
 position:absolute; width:1px; height:1px; padding:0; margin:-1px;
 overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
