:root { --black:#050506; --soft-black:#0b0b0d; --red:#f02b34; --red-bright:#ff3640; --white:#f3f1ed; --muted:#99999e; --line:rgba(255,255,255,.13); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--black); color:var(--white); font-family:Arial,Helvetica,sans-serif; font-size:16px; }
a { color:inherit; text-decoration:none; }
section { scroll-margin-top:94px; }
::selection { background:var(--red); color:#fff; }

.site-loader { position:fixed; z-index:200; inset:0; display:grid; place-items:center; padding:0; background-color:#080b14; background-image:linear-gradient(180deg,rgba(4,6,14,.22),rgba(4,6,14,.45)),url('assets/loader-festival-v1.webp'); background-size:cover; background-position:center; background-repeat:no-repeat; opacity:1; visibility:visible; transition:opacity .55s ease,visibility .55s ease; }
.site-loader.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }
.loader-mark { position:relative; isolation:isolate; width:clamp(220px,64vw,280px); height:clamp(220px,64vw,280px); display:grid; place-items:center; }
.site-loader.has-dark-logo .loader-mark { background:radial-gradient(ellipse at 28% 18%,#f2f4f8 0%,#d9dfe8 30%,#adb7c7 65%,#6f8097 100%); border:1px solid rgba(255,255,255,.68); border-radius:50%; box-shadow:inset 0 3px 8px rgba(255,255,255,.9),inset 0 -16px 28px rgba(37,53,76,.28),0 22px 55px rgba(0,0,0,.6),0 0 0 5px rgba(0,0,0,.18); }
.loader-mark img { position:relative; z-index:2; width:78%; height:78%; object-fit:contain; animation:loaderPulse 1.35s ease-in-out infinite; will-change:transform; }
.loader-ring { position:absolute; z-index:1; inset:-14px; width:auto; height:auto; border:8px solid rgba(240,43,52,.12); border-top-color:#ff8b93; border-right-color:#ff2539; border-radius:50%; filter:drop-shadow(0 0 8px rgba(255,39,58,.95)) drop-shadow(0 0 22px rgba(240,43,52,.72)); animation:loaderSpin 1.1s linear infinite; }
@supports (mask-composite:exclude) or (-webkit-mask-composite:xor) {
  .loader-ring { border:0; }
  .loader-ring::before { content:""; position:absolute; inset:0; padding:8px; border-radius:50%; background:conic-gradient(from 0deg,rgba(240,43,52,.04) 0deg,rgba(240,43,52,.16) 90deg,rgba(240,43,52,.4) 170deg,#f02b34 245deg,#ff8b90 310deg,#fff4f4 340deg,#ff2e40 355deg,rgba(240,43,52,.04) 360deg); -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask-composite:exclude; }
}
@keyframes loaderSpin { to { transform:rotate(360deg); } }
@keyframes loaderPulse { 0%,100% { transform:scale(.9); } 50% { transform:scale(1.24); filter:drop-shadow(0 0 22px rgba(240,43,52,.2)); } }
@media (max-width:1100px) {
  .site-loader { background-position:90% center; }
}
@media (max-width:700px) {
  .site-loader { padding-top:16vh; }
}

.site-header { height:94px; position:fixed; z-index:70; inset:0 0 auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 4vw; border-bottom:1px solid rgba(255,255,255,.14); background:linear-gradient(90deg,rgba(5,5,6,.97),rgba(10,10,13,.9)); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); box-shadow:0 14px 42px rgba(0,0,0,.22); }
.site-header { --nav-scroll-progress:0%; isolation:isolate; }
.site-header::before {
  content:""; position:absolute; z-index:4; top:0; left:0; width:var(--nav-scroll-progress); height:3px;
  border-radius:0 999px 999px 0;
  background:linear-gradient(90deg,rgba(155,12,25,.72) 0%,var(--red) 58%,#ff5963 84%,#ffe1e3 100%);
  box-shadow:0 0 7px rgba(255,43,57,.95),0 0 18px rgba(240,43,52,.72),0 4px 22px rgba(240,43,52,.38);
  pointer-events:none; will-change:width;
}
.site-header::after {
  content:""; position:absolute; z-index:5; top:-2px; left:var(--nav-scroll-progress); width:24px; height:8px;
  border-radius:999px; background:radial-gradient(ellipse at center,#fff 0 12%,#ff7b83 30%,rgba(240,43,52,.7) 54%,transparent 76%);
  filter:blur(1px); opacity:0; transform:translateX(-55%); pointer-events:none;
  transition:opacity .2s ease; will-change:left;
}
.site-header.has-scroll-progress::after { opacity:1; }
.logo { width:74px; height:74px; display:grid; place-items:center; }
.logo img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 0 18px rgba(240,43,52,.2)); }
.site-header nav { display:flex; align-items:center; gap:clamp(18px,3vw,48px); height:100%; }
.site-header nav a { position:relative; display:grid; place-items:center; height:100%; color:rgba(255,255,255,.7); font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.site-header nav a::after { content:""; position:absolute; bottom:-1px; width:0; height:2px; background:var(--red); transition:.25s; }
.site-header nav a:hover { color:#fff; }.site-header nav a:hover::after { width:100%; }
.header-cta { justify-self:end; display:flex; gap:10px; align-items:center; border:1px solid #fff; padding:13px 18px; background:#fff; color:#08080a; font-size:11px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; transition:.25s; }
.header-cta svg { flex:none; }
.header-cta-envelope { width:21px; height:21px; display:inline-grid; place-items:center; flex:0 0 21px; color:currentColor; }
.header-cta-envelope svg { width:21px; height:21px; display:block; overflow:visible; }
.header-cta:hover,.header-cta:focus-visible { background:var(--red); border-color:var(--red); color:#fff; box-shadow:0 0 34px rgba(240,43,52,.3); }

.hero { position:relative; min-height:100svh; overflow:hidden; display:flex; align-items:center; padding:132px 7vw 80px; }
.hero-background { position:absolute; inset:0; background:url('assets/ryan-robyx-hero-v3.png') 68% 50%/cover no-repeat; transform:scale(1.015); animation:heroIn 1.4s cubic-bezier(.2,.7,.2,1) both; }
@keyframes heroIn { from { transform:scale(1.08); filter:brightness(.5); } to { transform:scale(1.015); filter:brightness(1); } }
.hero-vignette { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,4,5,.98) 0%,rgba(4,4,5,.87) 23%,rgba(4,4,5,.2) 60%,rgba(4,4,5,.18) 100%),linear-gradient(0deg,rgba(4,4,5,.9),transparent 30%); }
.hero-grid { position:absolute; inset:0; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size:86px 86px; mask-image:linear-gradient(to right,black,transparent 58%); }
.hero-content { width:min(670px,62vw); position:relative; z-index:3; }
.status-pill { width:max-content; display:flex; align-items:center; gap:9px; padding:9px 13px; margin-bottom:34px; border:1px solid rgba(255,255,255,.18); background:rgba(0,0,0,.28); backdrop-filter:blur(12px); color:#d0d0d2; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.status-pill span { width:6px; height:6px; border-radius:50%; background:var(--red-bright); box-shadow:0 0 12px var(--red-bright); }
.hero-kicker { display:flex; align-items:center; gap:15px; margin:0 0 17px; color:var(--red-bright); font-size:13px; font-weight:900; letter-spacing:.27em; text-transform:uppercase; }
.hero-kicker::before { content:""; width:40px; height:2px; background:var(--red); }
h1 { display:flex; flex-direction:column; margin:0; font-size:clamp(5rem,11.2vw,11.5rem); line-height:.7; letter-spacing:-.075em; font-weight:950; text-transform:uppercase; }
h1 .outline { color:transparent; -webkit-text-stroke:clamp(1px,.12vw,2px) rgba(255,255,255,.88); transform:translateX(5.5vw); }
h1 .outline-vector { display:none; }
.hero-statement { margin:40px 0 36px; padding-left:56px; position:relative; color:#c7c7ca; font-size:clamp(1rem,1.5vw,1.3rem); line-height:1.55; letter-spacing:.02em; text-transform:uppercase; }
.hero-statement::before { content:""; position:absolute; left:0; top:4px; bottom:4px; width:2px; background:var(--red); box-shadow:0 0 16px rgba(240,43,52,.7); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { min-height:58px; display:inline-flex; align-items:center; justify-content:center; gap:13px; padding:0 24px; font-size:11px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; transition:.25s; }
.button-primary { background:var(--red); box-shadow:0 15px 50px rgba(240,43,52,.24); }
.button-icon { width:38px; height:38px; margin-left:-8px; display:grid; place-items:center; flex:0 0 38px; border-radius:50%; background:#fff; color:var(--red); }
.play-triangle { display:block; width:0; height:0; border-top:9px solid transparent; border-bottom:9px solid transparent; border-left:15px solid currentColor; transform:translateX(2px); }
.button-primary:hover { background:#fff; color:#08080a; transform:translateY(-3px); }
.button-ghost { border:1px solid rgba(255,255,255,.3); backdrop-filter:blur(10px); }.button-ghost:hover { border-color:#fff; background:rgba(255,255,255,.08); }
.hero-side-label { position:absolute; z-index:4; right:28px; top:50%; display:flex; align-items:center; gap:13px; color:rgba(255,255,255,.65); font-size:10px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; writing-mode:vertical-rl; transform:translateY(-50%); }
.hero-side-label i { width:1px; height:45px; background:var(--red); }
.scroll-cue { position:absolute; z-index:4; bottom:30px; left:4vw; display:flex; align-items:center; gap:15px; color:rgba(255,255,255,.65); font-size:10px; font-weight:800; letter-spacing:.2em; }
.waveform { position:absolute; z-index:3; right:6vw; bottom:30px; height:38px; display:flex; align-items:center; gap:4px; }
.waveform i { width:2px; background:rgba(255,255,255,.62); animation:wave 1.2s ease-in-out infinite alternate; }
.waveform i:nth-child(3n) { animation-delay:-.6s; background:var(--red); }.waveform i:nth-child(2n) { animation-delay:-.3s; }
@keyframes wave { to { transform:scaleY(.4); opacity:.45; } }

.section-tag { display:flex; gap:15px; align-items:center; color:#707076; font-size:11px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.section-tag span { color:var(--red); }.section-tag::after { content:""; width:45px; height:1px; background:#2d2d30; }
.artist-section { min-height:760px; position:relative; display:grid; grid-template-columns:.38fr 1.15fr .8fr; gap:6vw; align-items:start; padding:135px 7vw; background:#f1efe9; color:#09090a; overflow:hidden; }
.artist-title { position:relative; z-index:2; }.artist-title>p { margin:54px 0 20px; color:#666; font-size:11px; font-weight:800; letter-spacing:.24em; text-transform:uppercase; }
h2 { margin:0; font-size:clamp(3.6rem,7vw,7.4rem); line-height:.82; letter-spacing:-.065em; font-weight:950; text-transform:uppercase; }
h2 em { color:var(--red); font-style:normal; }
.artist-copy { position:relative; z-index:2; padding-top:105px; color:#555452; font-size:1.08rem; line-height:1.8; }
.artist-copy .large-copy { color:#111; font-size:clamp(1.15rem,1.6vw,1.45rem); line-height:1.55; font-weight:600; }
.signature-line { margin-top:50px; display:flex; gap:14px; align-items:center; color:#111; font-size:11px; font-weight:900; letter-spacing:.18em; }.signature-line i { width:34px; height:2px; background:var(--red); }
.artist-graphic { position:absolute; right:-4vw; bottom:-7vw; width:42vw; height:42vw; color:rgba(0,0,0,.025); font-size:36vw; font-weight:950; line-height:1; letter-spacing:-.35em; transform:rotate(-8deg); user-select:none; }.artist-graphic b { color:transparent; -webkit-text-stroke:2px rgba(240,43,52,.1); }

.releases-section { min-height:calc(100svh - 94px); display:flex; flex-direction:column; justify-content:center; padding:clamp(48px,7vh,96px) 7vw; background:#09090a; }
.section-topline { display:flex; justify-content:space-between; align-items:center; }.section-tag.light { color:#77777d; }.section-topline>a { min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:0 15px; border:1px solid var(--red); border-radius:3px; background:var(--red); color:#fff; font-size:16px; font-weight:800; line-height:1.2; letter-spacing:.14em; text-transform:uppercase; transition:background-color .25s,color .25s,border-color .25s; }.section-topline>a:hover,.section-topline>a:focus-visible,.section-topline>a:active { background:#fff; color:var(--red); border-color:#fff; }.section-topline>a:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.section-topline>a>.release-link-icon rect { fill:currentColor; }.section-topline>a>.release-link-icon path { fill:var(--red); transition:fill .25s; }.section-topline>a:hover>.release-link-icon path,.section-topline>a:focus-visible>.release-link-icon path,.section-topline>a:active>.release-link-icon path { fill:#fff; }
.releases-heading { margin-top:50px; display:flex; justify-content:space-between; align-items:end; }.releases-heading p { color:#9a9aa0; font-size:13px; line-height:1.7; letter-spacing:.11em; text-transform:uppercase; }
.spotify-panel { margin-top:52px; padding:22px; border:1px solid #29292e; background:linear-gradient(135deg,rgba(29,185,84,.09),rgba(255,255,255,.015) 45%),#101012; box-shadow:0 35px 90px rgba(0,0,0,.3); }
.spotify-copy { min-height:72px; display:grid; grid-template-columns:50px 1fr auto; align-items:center; gap:14px; padding:0 8px 18px; }
.spotify-icon { width:44px; height:44px; display:grid; place-items:center; color:#1ed760; filter:drop-shadow(0 0 18px rgba(30,215,96,.18)); }
.spotify-copy>div { display:flex; flex-direction:column; gap:6px; }.spotify-copy small { color:#89898f; font-size:10px; font-weight:800; letter-spacing:.18em; }.spotify-copy strong { font-size:1.35rem; text-transform:uppercase; letter-spacing:.02em; }
.spotify-copy>a { min-height:42px; display:flex; align-items:center; gap:10px; padding:0 15px; border:1px solid #1ed760; background:#1ed760; color:#000; font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; transition:.25s; }.spotify-copy>a:hover,.spotify-copy>a:focus-visible,.spotify-copy>a:active { color:#075e3b; background:#fff; border-color:#fff; }.spotify-copy>a:focus-visible { outline:2px solid #1ed760; outline-offset:4px; }
.spotify-copy>a>.release-link-icon,.section-topline>a>.release-link-icon { display:block; width:22px; height:22px; flex:0 0 22px; }
.spotify-panel iframe { display:block; border:0; border-radius:12px; background:#18181b; }
.release-grid { margin-top:56px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.release-art.has-cover { padding:0; background:#101012; }
.release-art.has-cover::before,.release-art.has-cover::after { display:none; }
.release-art.has-cover img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.release-card { display:block; }.release-art { aspect-ratio:1; position:relative; overflow:hidden; padding:28px; display:flex; flex-direction:column; justify-content:flex-end; background:#151519; isolation:isolate; transition:.45s cubic-bezier(.2,.7,.2,1); }
.release-card:hover .release-art { transform:translateY(-8px); }.release-card.red .release-art { background:radial-gradient(circle at 65% 35%,#ff5a61,transparent 5%),radial-gradient(circle at center,#dd1f28,#38070a 65%,#080809); }.release-card.white .release-art { background:radial-gradient(circle at 65% 36%,#fff 0 5%,transparent 5.5%),radial-gradient(circle at center,#d5d3ce,#4c4b4e 65%,#111); }.release-card.dark .release-art { background:radial-gradient(circle at 65% 36%,#fa2832 0 5%,transparent 5.5%),radial-gradient(circle at center,#25252a,#070708 68%); }
.release-art::before,.release-art::after { content:""; position:absolute; z-index:-1; inset:11%; border:1px solid rgba(255,255,255,.16); transform:rotate(45deg); }.release-art::after { inset:27%; transform:rotate(45deg); border-color:rgba(255,255,255,.3); }
.release-orbit { position:absolute; width:120%; height:42%; top:27%; left:-10%; border:1px solid rgba(255,255,255,.34); border-radius:50%; transform:rotate(-22deg); }.release-mark { position:absolute; top:50%; left:50%; transform:translate(-50%,-56%); font-size:clamp(4rem,8vw,9rem); font-weight:950; letter-spacing:-.16em; opacity:.9; }.release-art p { margin:0; font-size:clamp(1.4rem,2vw,2.2rem); line-height:.95; font-weight:950; letter-spacing:-.04em; text-transform:uppercase; }.release-art small { margin-top:10px; font-size:10px; font-weight:800; letter-spacing:.22em; }
.release-meta { display:grid; grid-template-columns:36px 1fr auto; align-items:center; gap:12px; padding:22px 2px; border-bottom:1px solid #27272b; }.release-meta>span:first-child { color:var(--red); font-size:28px; font-weight:900; line-height:1; font-variant-numeric:tabular-nums; }.release-meta strong { font-size:12px; letter-spacing:.12em; text-transform:uppercase; }.round-icon { width:48px; height:48px; display:grid; place-items:center; color:#fff; background:var(--red); border:1px solid var(--red); border-radius:50%; transition:.25s; }.round-icon .play-triangle { border-top-width:10px; border-bottom-width:10px; border-left-width:17px; }.release-card:hover .round-icon, .release-card:focus-visible .round-icon, .release-card:active .round-icon { color:var(--red); background:#fff; border-color:#fff; transform:scale(1.08); box-shadow:0 0 28px rgba(240,43,52,.32); }

.connect-section { display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; padding:130px 7vw; background:#111114; }
.connect-intro h2 { margin:52px 0 35px; font-size:clamp(3.4rem,6.3vw,6.7rem); }.connect-intro>p { max-width:420px; color:#a0a0a5; font-size:1.05rem; line-height:1.75; }
.social-list { border-top:1px solid var(--line); }.social-list a { min-height:100px; display:grid; grid-template-columns:42px 58px 1fr 1fr 40px; align-items:center; border-bottom:1px solid var(--line); transition:.25s; }.social-list a:hover { background:var(--red); padding:0 20px; }.social-index { color:#77777d; font-size:10px; }.social-icon { width:44px; height:44px; display:grid; place-items:center; border:1px solid #44444a; border-radius:50%; }.social-name { font-size:clamp(1.25rem,2vw,1.8rem); font-weight:900; letter-spacing:-.03em; text-transform:uppercase; }.social-handle { color:#8a8a90; font-size:12px; }.social-list a:hover .social-index,.social-list a:hover .social-handle { color:rgba(255,255,255,.8); }.social-list a:hover .social-icon { border-color:rgba(255,255,255,.5); }.social-arrow { justify-self:end; }

.site-footer { display:block; min-height:0; padding:72px 7vw 38px; border-top:1px solid var(--line); background:radial-gradient(circle at 50% 0,rgba(240,43,52,.07),transparent 34%),#060607; }
.footer-socials { width:min(1180px,100%); margin:0 auto 66px; }
.footer-socials h2 { display:flex; align-items:center; justify-content:center; gap:18px; margin:0 0 18px; color:#b9b9bf; text-align:center; font-size:22px; font-weight:950; line-height:1; letter-spacing:.2em; text-transform:uppercase; }
.footer-socials h2 em { color:var(--red); font-style:normal; }
.footer-socials h2::before,.footer-socials h2::after { content:""; width:60px; height:1px; background:#38383d; }
.footer-streaming { margin-top:0; }
.footer-streaming-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border-top:1px solid #38383d; border-right:1px solid #38383d; border-bottom:1px solid #38383d; }
.footer-streaming-link { position:relative; min-width:0; min-height:64px; display:grid; place-items:center; overflow:hidden; border-left:1px solid #44444b; background:linear-gradient(145deg,#24242a 0%,#151519 48%,#09090c 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.13),inset 0 -9px 18px rgba(0,0,0,.42),0 8px 20px rgba(0,0,0,.28); transition:background .25s,box-shadow .25s,transform .25s; }
.footer-streaming-link::before { content:""; position:absolute; z-index:2; top:0; right:0; left:0; height:3px; background:var(--red); box-shadow:0 0 14px rgba(240,43,52,.72); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.footer-streaming-link:hover::before,.footer-streaming-link:focus-visible::before { transform:scaleX(1); }
.footer-streaming-logo { display:block; width:34px; height:34px; object-fit:contain; filter:none; transition:transform .25s,filter .25s; }
.footer-streaming-logo-amazon { width:42px; height:28px; }
.footer-streaming-link:hover,.footer-streaming-link:focus-visible { background:linear-gradient(145deg,#fff 0%,#ededf0 56%,#cfcfd5 100%); box-shadow:inset 0 1px 0 #fff,inset 0 -7px 14px rgba(40,40,48,.14),0 10px 28px rgba(0,0,0,.38),0 0 30px rgba(255,255,255,.12); transform:translateY(-2px); }
.footer-streaming-link:active { transform:translateY(1px); box-shadow:inset 0 5px 13px rgba(0,0,0,.3),0 3px 10px rgba(0,0,0,.3); }
.footer-streaming-link:hover .footer-streaming-logo,.footer-streaming-link:focus-visible .footer-streaming-logo { transform:scale(1.12); filter:none; }
.footer-streaming-link:hover .footer-streaming-logo-tidal,.footer-streaming-link:focus-visible .footer-streaming-logo-tidal { filter:invert(1); }
.footer-streaming-link:focus-visible { position:relative; z-index:1; outline:3px solid var(--red); outline-offset:-3px; }
.footer-primary { width:min(1180px,100%); margin:0 auto; display:grid; grid-template-columns:1fr auto; align-items:center; gap:30px; }
.footer-brand { display:flex; align-items:center; gap:20px; }.footer-brand img { width:82px; height:82px; object-fit:contain; }.footer-brand div { display:flex; flex-direction:column; gap:8px; }.footer-brand strong { font-size:1.15rem; letter-spacing:.1em; }.footer-brand span,.footer-contact,.footer-meta { color:#77777d; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }.footer-contact { display:flex; align-items:center; gap:9px; color:#b0b0b5; transition:color .2s; }.footer-contact:hover,.footer-contact:focus-visible { color:var(--red); }.footer-contact:focus-visible { outline:2px solid var(--red); outline-offset:6px; }.footer-meta { width:min(1180px,100%); margin:30px auto 0; display:flex; justify-content:space-between; padding-top:25px; border-top:1px solid rgba(255,255,255,.08); }.footer-meta span:last-of-type { display:flex; align-items:center; gap:8px; }

@media (max-width:1100px) {
  .site-header { padding:0 3vw; }.hero { padding-left:5vw; }.hero-content { width:64vw; }
  .artist-section { grid-template-columns:.22fr 1fr; gap:4vw; padding:105px 6vw; }.artist-copy { grid-column:2; padding-top:0; max-width:680px; }
  .release-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.release-card:last-child:nth-child(odd) { grid-column:1/-1; width:calc(50% - 11px); }
  .releases-section,.contact-section { min-height:auto; justify-content:flex-start; }
  .connect-section { grid-template-columns:1fr; gap:65px; padding:105px 6vw; }
  .contact-step { grid-template-columns:1fr; gap:65px; }
}
@media (max-width:700px) {
  .site-header { height:76px; grid-template-columns:1fr auto; padding:0 5vw; }.logo { width:60px; height:60px; }.site-header nav { display:none; }.header-cta { padding:11px 13px; font-size:10px; }
  .hero { min-height:100vh; min-height:100svh; min-height:100dvh; padding:120px 6vw 80px; align-items:end; }.hero-background { background-position:70% 40%; }.hero-vignette { background:linear-gradient(0deg,#050506 0%,rgba(5,5,6,.86) 56%,rgba(5,5,6,.14) 100%),linear-gradient(90deg,rgba(5,5,6,.75),transparent); }.hero-content { width:100%; }.status-pill { max-width:100%; margin-bottom:20px; font-size:9px; transform:translateY(-24px); }.hero-kicker { margin-bottom:0; font-size:10px; letter-spacing:.18em; transform:translateY(-24px); }.hero-kicker::before { width:25px; }h1 { margin-top:clamp(140px,24svh,190px); font-size:clamp(4.4rem,23vw,7rem); line-height:.86; transform:translateY(32px); }h1 .outline-text { display:none; }h1 .outline-vector { display:block; width:min(82vw,430px); max-width:calc(100% - 4vw); height:auto; margin:8px 0 0 4vw; }.hero-statement { margin:36px 0 18px; padding-left:20px; font-size:1rem; transform:translateY(-18px); }.hero-actions { flex-direction:column; align-items:stretch; max-width:360px; transform:translateY(-18px); }.hero-side-label,.waveform,.scroll-cue { display:none; }
  .artist-section { grid-template-columns:1fr; padding:28px 6vw 56px; min-height:auto; }.artist-title>p { margin:18px 0 16px; }.artist-copy { grid-column:1; }.artist-graphic { width:75vw; height:75vw; font-size:70vw; }
  .releases-section { min-height:auto; display:block; padding:28px 6vw 56px; }.section-topline { flex-direction:column; align-items:stretch; gap:14px; }.section-topline>a { display:inline-flex; max-width:100%; min-height:44px; padding:10px 12px; text-align:center; }.releases-heading { margin-top:26px; align-items:start; flex-direction:column; gap:18px; }.release-grid { grid-template-columns:1fr; gap:42px; margin-top:32px; }.release-card:last-child:nth-child(odd) { grid-column:auto; width:100%; }.release-art { padding:24px; }
  .spotify-panel { margin-top:28px; padding:14px; }.spotify-copy { grid-template-columns:46px 1fr; padding:5px 2px 16px; }.spotify-copy>a { grid-column:1/-1; justify-content:center; }.spotify-panel iframe { height:352px; }
  .connect-section { padding:28px 6vw 56px; }.connect-intro h2 { margin:22px 0 20px; }.social-list { margin-top:12px; }.social-list a { grid-template-columns:30px 50px 1fr 35px; }.social-handle { display:none; }
  .contact-section { min-height:auto; display:block; padding:28px 6vw 56px; }
  .contact-step { grid-template-columns:1fr; gap:32px; }
  .contact-copy h2 { margin:18px 0 20px; font-size:14vw; }
  .contact-copy>a { margin-top:16px; }
  .contact-selector-panel,.contact-form { padding:22px 18px; }
  .selector-field select,.form-field select { min-height:60px; font-size:16px; }
  .form-grid { grid-template-columns:1fr; }
  .form-field.full,.contact-submit,.form-status { grid-column:1; }
  .contact-step-success { grid-template-columns:1fr; gap:28px; }
  .success-eyebrow { margin-top:0; }
  .contact-success-copy h2 { margin:18px 0 24px; font-size:16vw; }
  .contact-success-visual { min-height:360px; padding:24px; background-position:70% 38%; flex-direction:column; flex-wrap:nowrap; align-items:flex-start; justify-content:space-between; gap:24px; }
  .contact-success-visual img { width:82px; height:82px; flex:0 0 auto; align-self:flex-start; margin:12px 0 0 12px; }
  .success-stamp { display:inline-flex; align-items:center; flex:0 0 auto; width:fit-content; max-width:calc(100% - 12px); min-height:0; margin:0 12px 12px auto; gap:6px; padding:8px 10px; font-size:16px; font-weight:900; line-height:1.2; letter-spacing:0; text-transform:uppercase; }
  .site-footer { padding-right:6vw; padding-left:6vw; }
}
@media (max-width:420px) {
  .header-cta { padding:10px 11px; }.hero { min-height:100vh; min-height:100svh; min-height:100dvh; }.hero-background { background-position:72% 30%; }
  h1 { font-size:21vw; }.hero-statement { font-size:.92rem; }.button { min-height:56px; padding:0 16px; font-size:10px; }
  h2 { font-size:15vw; }.artist-section,.releases-section,.connect-section { padding-left:5vw; padding-right:5vw; }
  .social-list a { grid-template-columns:26px 50px 1fr 28px; }.social-icon { width:40px; height:40px; }.social-name { font-size:1.08rem; }
  .footer-brand img { width:66px; height:66px; }.footer-brand strong { font-size:1rem; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }* { animation:none!important; transition:none!important; } }

/* Readability pass: no interface text below 16px on any screen. */
.site-header nav a { font-size:16px; }
.header-cta,
.status-pill,
.button,
.hero-side-label,
.scroll-cue,
.section-tag,
.artist-title>p,
.signature-line,
.section-topline>a,
.release-art small,
.release-meta>span,
.spotify-copy small,
.spotify-copy>a,
.social-index,
.footer-brand span,
.footer-contact,
.footer-meta { font-size:16px; }
.hero-kicker { font-size:16px; }
.releases-heading p { font-size:16px; }
.release-meta strong { font-size:16px; }
.connect-intro>p { font-size:18px; }
.social-handle { color:#c0c0c5; font-size:20px; font-weight:500; }
.footer-brand strong { font-size:20px; }

@media (max-width:700px) {
  .header-cta,.status-pill,.hero-kicker,.button { font-size:16px; }
  .section-tag { line-height:1.5; }
  .artist-copy { font-size:17px; }
  .release-meta strong { font-size:16px; }
  .spotify-copy small,.spotify-copy>a { font-size:16px; }
  .section-topline>a { font-weight:900; }
  .connect-intro>p { font-size:17px; }
  .social-name { font-size:18px; }
  .footer-brand span,.footer-contact,.footer-meta { font-size:16px; line-height:1.6; }
}

.mobile-menu-button { display:none; width:48px; height:48px; padding:0; border:1px solid rgba(255,255,255,.32); background:rgba(8,8,10,.5); color:#fff; align-items:center; justify-content:center; cursor:pointer; }
.mobile-menu-button span { display:block; width:22px; height:2px; margin:3px auto; background:#fff; }
.menu-overlay { position:fixed; z-index:80; inset:0; padding:0; border:0; background:rgba(0,0,0,.68); backdrop-filter:blur(5px); opacity:0; visibility:hidden; transition:opacity .3s,visibility .3s; }
.menu-overlay.open { opacity:1; visibility:visible; }
.mobile-drawer { position:fixed; z-index:90; top:0; left:0; right:auto; width:min(88vw,400px); height:100dvh; padding:24px 26px 32px; display:flex; flex-direction:column; background:linear-gradient(205deg,#17171a 0%,#080809 64%); border-right:1px solid rgba(255,255,255,.14); box-shadow:30px 0 90px rgba(0,0,0,.55); transform:translateX(-102%); visibility:hidden; transition:transform .38s cubic-bezier(.2,.75,.2,1),visibility .38s; }
.mobile-drawer.open { transform:translateX(0); visibility:visible; }
.drawer-head { min-height:70px; display:flex; align-items:center; justify-content:space-between; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.12); }.drawer-head img { width:66px; height:66px; object-fit:contain; }
/* Mobile menu close control: raised gradient surface and rotating white cross. */
.drawer-head .drawer-close {
  width:48px; height:48px; flex:0 0 48px; position:relative; display:grid; place-items:center;
  padding:0; border:1px solid rgba(255,255,255,.22); border-top-color:rgba(255,255,255,.42); border-bottom-color:rgba(0,0,0,.6); border-radius:3px;
  background:linear-gradient(145deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,.04) 42%,rgba(0,0,0,.34) 100%),#282830;
  color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 0 rgba(0,0,0,.24),0 4px 0 #09090c,0 9px 16px rgba(0,0,0,.32);
  cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background-color .22s ease;
}
.drawer-close-icon { width:24px; height:24px; position:relative; display:block; pointer-events:none; filter:drop-shadow(0 1px 1px rgba(0,0,0,.3)); transition:transform .38s cubic-bezier(.22,.8,.25,1); }
.drawer-close-icon::before,.drawer-close-icon::after { content:""; position:absolute; top:50%; left:50%; width:26px; height:3px; border-radius:2px; background:currentColor; transform:translate(-50%,-50%) rotate(45deg); }
.drawer-close-icon::after { transform:translate(-50%,-50%) rotate(-45deg); }
.drawer-head .drawer-close:focus-visible,.drawer-head .drawer-close:active {
  color:#fff; background-color:var(--red); border-color:var(--red-bright); border-top-color:#ff8d94; border-bottom-color:#9c1222;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -2px 0 rgba(0,0,0,.22),0 4px 0 #720c1a,0 0 16px rgba(240,43,52,.38),0 9px 24px rgba(240,43,52,.22);
}
.drawer-head .drawer-close:focus-visible { outline:2px solid var(--red-bright); outline-offset:5px; }
@media (hover:hover) and (pointer:fine) {
  .drawer-head .drawer-close:hover {
    color:#fff; background-color:var(--red); border-color:var(--red-bright); border-top-color:#ff8d94; border-bottom-color:#9c1222; transform:translateY(-1px);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -2px 0 rgba(0,0,0,.22),0 4px 0 #720c1a,0 0 16px rgba(240,43,52,.38),0 9px 24px rgba(240,43,52,.22);
  }
  .drawer-close:hover .drawer-close-icon { transform:rotate(90deg) scale(1.05); }
}
.drawer-close:focus-visible .drawer-close-icon,.drawer-close:active .drawer-close-icon { transform:rotate(90deg) scale(1.05); }
.drawer-head .drawer-close:active {
  transform:translateY(2px) scale(.97); transition-duration:.12s;
  box-shadow:inset 0 1px 4px rgba(0,0,0,.22),0 1px 0 #720c1a,0 0 18px rgba(240,43,52,.32);
}
@media (prefers-reduced-motion:reduce) {
  .drawer-head .drawer-close,.drawer-head .drawer-close .drawer-close-icon { transform:none!important; }
}
.mobile-drawer>p { margin:28px 0 10px; color:var(--red); font-size:16px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.mobile-drawer nav { display:flex; flex-direction:column; }.mobile-drawer nav a { min-height:68px; display:flex; align-items:center; gap:17px; border-bottom:1px solid rgba(255,255,255,.1); font-size:24px; font-weight:900; letter-spacing:-.02em; text-transform:uppercase; }.drawer-nav-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.17); border-radius:50%; background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.02)); transition:.22s; }.drawer-nav-icon.artist { color:#ff3b45; border-color:rgba(255,59,69,.42); background:rgba(255,59,69,.1); }.drawer-nav-icon.music { color:#38bdf8; border-color:rgba(56,189,248,.42); background:rgba(56,189,248,.1); }.drawer-nav-icon.spotify { color:#1ed760; border-color:rgba(30,215,96,.42); background:rgba(30,215,96,.1); }.drawer-nav-icon.socials { color:#c267ff; border-color:rgba(194,103,255,.42); background:rgba(194,103,255,.1); }.drawer-nav-icon.contact { color:#ffb020; border-color:rgba(255,176,32,.42); background:rgba(255,176,32,.1); }.mobile-drawer nav a:hover { color:var(--red); }.mobile-drawer nav a:hover .drawer-nav-icon { transform:scale(1.06); filter:brightness(1.18); box-shadow:0 0 22px currentColor; }
.drawer-socials { display:flex; gap:10px; margin-top:auto; padding-top:28px; }.drawer-socials a { width:48px; height:48px; display:grid; place-items:center; border:1px solid #343439; border-radius:50%; font-size:19px; font-weight:900; transition:.2s; }.drawer-socials svg,.social-icon svg { display:block; flex:none; }.drawer-socials a:hover { color:#fff; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.55); }
.social-list a.youtube,.drawer-socials a.youtube { --social-color:#ff0033; --social-surface:rgba(255,0,51,.14); --social-row:rgba(255,0,51,.1); --social-glow:rgba(255,0,51,.62); }
.social-list a.tiktok,.drawer-socials a.tiktok { --social-color:#25f4ee; --social-surface:linear-gradient(135deg,rgba(37,244,238,.15),rgba(254,44,85,.17)); --social-row:rgba(37,244,238,.08); --social-glow:rgba(37,244,238,.58); }
.social-list a.instagram,.drawer-socials a.instagram { --social-color:#f77737; --social-surface:linear-gradient(135deg,rgba(255,220,128,.16),rgba(247,119,55,.17) 38%,rgba(193,53,132,.17) 70%,rgba(88,81,219,.14)); --social-row:rgba(247,119,55,.09); --social-glow:rgba(247,119,55,.58); }
.social-list a.facebook,.drawer-socials a.facebook { --social-color:#1877f2; --social-surface:rgba(24,119,242,.15); --social-row:rgba(24,119,242,.1); --social-glow:rgba(24,119,242,.62); }
.social-list a .social-icon,.drawer-socials a { border-color:var(--social-color,#44444a); background:var(--social-surface,transparent); transition:transform .2s ease,box-shadow .2s ease,filter .2s ease,border-color .2s ease; }
.social-list a:hover,.social-list a:focus-visible { background:var(--social-row,rgba(255,255,255,.04)); padding:0 20px; }
.social-list a:hover .social-icon,.social-list a:focus-visible .social-icon,.drawer-socials a:hover,.drawer-socials a:focus-visible { border-color:var(--social-color); background:var(--social-surface); transform:scale(1.08); filter:brightness(1.18); box-shadow:0 0 28px var(--social-glow); }
.social-list a:active .social-icon,.drawer-socials a:active { transform:scale(.94); filter:brightness(1.28); box-shadow:0 0 36px var(--social-glow); }
.social-list a.tiktok:hover .social-icon,.social-list a.tiktok:focus-visible .social-icon,.social-list a.tiktok:active .social-icon,.drawer-socials a.tiktok:hover,.drawer-socials a.tiktok:focus-visible,.drawer-socials a.tiktok:active { box-shadow:-5px 0 28px rgba(37,244,238,.55),5px 0 28px rgba(254,44,85,.55); }
.mobile-drawer>small { margin-top:20px; color:#77777d; font-size:16px; font-weight:800; letter-spacing:.12em; }
body.menu-open { overflow:hidden; }

.contact-section { --contact-panel-bg:linear-gradient(135deg,#462438 0%,#30344b 52%,#21414a 100%); --contact-field-glow:0 0 9px rgba(255,42,65,.45),0 0 24px rgba(240,43,52,.24); --contact-field-glow-active:0 0 0 2px rgba(255,81,99,.22),0 0 16px rgba(255,36,58,.85),0 0 38px rgba(240,43,52,.55); min-height:calc(100svh - 94px); display:flex; flex-direction:column; justify-content:center; padding:clamp(48px,7vh,96px) 7vw; border-top:1px solid var(--line); background:#09090b; }
.contact-step { display:grid; grid-template-columns:.78fr 1.22fr; gap:7vw; align-items:center; }
.contact-section[data-contact-stage="intro"] .contact-step-form,.contact-section[data-contact-stage="intro"] .contact-step-success,.contact-section[data-contact-stage="form"] .contact-step-intro,.contact-section[data-contact-stage="form"] .contact-step-success,.contact-section[data-contact-stage="success"] .contact-step-intro,.contact-section[data-contact-stage="success"] .contact-step-form { display:none; }
.contact-copy h2 { margin:34px 0 24px; font-size:clamp(3.2rem,5.8vw,6.2rem); }
.contact-copy>p { max-width:500px; color:#a0a0a5; font-size:18px; line-height:1.75; }
.contact-copy>p strong { color:#fff; }
.contact-copy>a { display:inline-flex; align-items:center; gap:10px; margin-top:22px; color:#fff; font-size:16px; font-weight:800; letter-spacing:.04em; }
.contact-copy>a[href^="mailto:"] { transition:color .2s ease; }
.contact-copy>a[href^="mailto:"]:hover,.contact-copy>a[href^="mailto:"]:focus-visible,.contact-copy>a[href^="mailto:"]:active { color:var(--red); }
.contact-email { max-width:100%; font-size:clamp(18px,1.45vw,21px)!important; font-weight:900!important; }
.contact-email>span:nth-child(2) { overflow-wrap:anywhere; }
.contact-email-arrow,.footer-contact-arrow { display:inline-block; flex:0 0 auto; font-size:1.2em; line-height:1; transition:transform .2s ease,color .2s ease; }
.contact-email:hover .contact-email-arrow,.contact-email:focus-visible .contact-email-arrow,.footer-contact:hover .footer-contact-arrow,.footer-contact:focus-visible .footer-contact-arrow { transform:translate(2px,-2px); }
/* Direct WhatsApp contact, available before and during the form. */
.contact-direct { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.contact-whatsapp {
  display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:56px; max-width:100%; padding:14px 20px;
  border:1px solid #7bf5a7; border-radius:3px; background:linear-gradient(135deg,#5bed91,#25d366); color:#05230f;
  font-size:16px; font-weight:900; line-height:1.3; letter-spacing:.04em; text-transform:uppercase; text-decoration:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 22px rgba(37,211,102,.12);
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;
}
.contact-whatsapp svg { display:block; width:24px; height:24px; flex:0 0 24px; }
.contact-whatsapp:hover,.contact-whatsapp:focus-visible,.contact-whatsapp:active { background:#fff; color:#075e3b; border-color:#fff; box-shadow:0 0 24px rgba(37,211,102,.35); }
.contact-whatsapp:focus-visible { outline:2px solid #25d366; outline-offset:4px; }
@media (hover:hover) and (pointer:fine) {
  .contact-whatsapp:hover { transform:translateY(-2px); }
}
.contact-whatsapp:active { transform:scale(.97); transition-duration:.12s; }
@media (max-width:700px) {
  .contact-direct { margin-top:16px; }
  .contact-whatsapp,.spotify-copy>a { font-weight:900; -webkit-text-stroke:.25px currentColor; }
}
@media (prefers-reduced-motion:reduce) {
  .contact-whatsapp { transform:none!important; }
}

.contact-selector-panel { display:grid; gap:30px; padding:clamp(28px,4vw,58px); border:1px solid rgba(255,118,137,.35); background:var(--contact-panel-bg); box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 24px 60px rgba(0,0,0,.3); }
.selector-field,.form-field { display:flex; flex-direction:column; gap:11px; }
.selector-field>span:first-child,.form-field>span:first-child { font-size:16px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.select-wrap { position:relative; display:block; }
.select-wrap::after { content:""; position:absolute; top:50%; right:20px; width:9px; height:9px; border-right:2px solid var(--red); border-bottom:2px solid var(--red); transform:translateY(-70%) rotate(45deg); pointer-events:none; }
.selector-field select,.form-field select { width:100%; min-height:70px; appearance:none; border:3px solid var(--red); border-radius:0; background:#fff; color:#000; color-scheme:light; padding:0 55px 0 20px; font:inherit; font-size:18px; outline:none; box-shadow:var(--contact-field-glow); cursor:pointer; transition:.2s; }
.selector-field select option,.form-field select option { background:#fff; color:#000; }
.selector-field select:disabled { color:#68686e; border-color:#bf7580; box-shadow:none; opacity:1; cursor:not-allowed; }
.selector-field select:focus,.form-field select:focus { border-color:#ff3b4f; box-shadow:var(--contact-field-glow-active); }
.selector-field select:has(option:checked:not([value=""])),.form-field select:has(option:checked:not([value=""])) { border-color:#ff3b4f; box-shadow:var(--contact-field-glow-active); }
.contact-start { min-height:64px; display:flex; align-items:center; justify-content:center; gap:12px; border:0; background:#fff; color:#08080a; font-size:16px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:.25s; }
.contact-start:hover:not(:disabled),.contact-start:focus-visible:not(:disabled) { background:var(--red); color:#fff; box-shadow:0 0 32px rgba(240,43,52,.28); }
.contact-start:disabled { opacity:.3; cursor:not-allowed; }
.contact-back { display:flex; align-items:center; gap:10px; padding:0; border:0; background:none; color:#c5c5ca; font-size:clamp(18px,1.25vw,20px); font-weight:900; cursor:pointer; transition:.2s; }
.contact-back:hover { color:var(--red); }
.contact-request-summary { font-size:clamp(20px,1.5vw,24px)!important; line-height:1.55!important; }
.contact-request-summary strong { font-weight:900; }
.contact-form { padding:clamp(24px,4vw,52px); border:1px solid rgba(255,118,137,.35); background:var(--contact-panel-bg); box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 24px 60px rgba(0,0,0,.3); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-field.full,.contact-submit,.form-status { grid-column:1/-1; }
.form-field small { margin-left:7px; color:#bbc0cc; font-size:16px; font-weight:500; letter-spacing:0; text-transform:none; }
.form-field input,.form-field textarea { width:100%; border:3px solid var(--red); background:#fff; color:#000; color-scheme:light; padding:15px 16px; font:inherit; font-size:16px; outline:none; box-shadow:var(--contact-field-glow); transition:.2s; }
.form-field input { min-height:56px; }
.form-field textarea { min-height:165px; resize:vertical; }
.form-field input:focus,.form-field textarea:focus { border-color:#ff3b4f; box-shadow:var(--contact-field-glow-active); }
.contact-submit { min-height:60px; display:flex; align-items:center; justify-content:center; gap:12px; border:0; background:var(--red); color:#fff; font-size:16px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:.25s; }
.contact-submit-icon { display:block; width:24px; height:24px; flex:0 0 24px; }
.contact-submit:hover,.contact-submit:focus-visible { background:#fff; color:#08080a; transform:translateY(-2px); }
.contact-honeypot { position:absolute!important; left:-9999px!important; }
.form-status { padding:14px 16px; border:1px solid; font-size:16px; line-height:1.5; }
.form-status.success { color:#bdf5cb; border-color:rgba(30,215,96,.48); background:rgba(30,215,96,.1); }
.form-status.error { color:#ffb7bc; border-color:rgba(240,43,52,.52); background:rgba(240,43,52,.1); }
.contact-step-success { grid-template-columns:.72fr 1.28fr; align-items:center; }
.contact-success-copy { min-height:540px; display:flex; flex-direction:column; justify-content:center; padding:0; }
.success-eyebrow { margin-top:0; color:var(--red); font-size:16px; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.contact-success-copy h2 { margin:25px 0 36px; font-size:clamp(4rem,7.5vw,8.4rem); line-height:.82; letter-spacing:-.065em; }
.contact-success-copy h2 em { color:var(--red); font-style:normal; }
.contact-success-copy>p { max-width:520px; display:flex; align-items:flex-start; gap:16px; margin:0; color:#d0d0d4; font-size:18px; line-height:1.65; }
.contact-success-copy>p i { width:38px; height:2px; flex:0 0 38px; margin-top:14px; background:var(--red); box-shadow:0 0 16px rgba(240,43,52,.7); }
.contact-success-visual { min-height:540px; position:relative; overflow:hidden; display:flex; align-items:flex-end; justify-content:space-between; padding:34px; background:url('assets/ryan-robyx-hero-v3.png') 72% 42%/cover no-repeat; box-shadow:0 35px 100px rgba(0,0,0,.42); isolation:isolate; }
.contact-success-visual::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(135deg,rgba(5,5,6,.08),rgba(5,5,6,.24) 48%,rgba(5,5,6,.92)),linear-gradient(0deg,rgba(240,43,52,.22),transparent 46%); }
.contact-success-visual::after { content:""; position:absolute; z-index:-1; inset:22px; border:1px solid rgba(255,255,255,.22); }
.contact-success-visual img { width:110px; height:110px; object-fit:contain; filter:drop-shadow(0 0 28px rgba(240,43,52,.32)); }
.success-stamp { min-height:52px; display:flex; align-items:center; gap:10px; padding:0 18px; border:1px solid #4ade80; background:#15803d; color:#fff; font-size:16px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.success-stamp>span[aria-hidden="true"] { display:flex; align-items:center; justify-content:center; flex:0 0 24px; width:24px; height:24px; line-height:1; }
.success-stamp>span[aria-hidden="true"] svg { display:block; width:24px; height:24px; }

@media (min-width:1101px) {
  .contact-step-success { transform:translateY(-60px); }
}

@media (max-width:1100px) {
  .contact-step-success { grid-template-columns:1fr; gap:50px; }
  .contact-success-copy { min-height:auto; }
}

@media (max-width:700px) {
  .mobile-drawer { width:min(72vw,300px); padding-left:clamp(12px,3.75vw,20px); padding-right:clamp(12px,3.75vw,20px); }
  .drawer-socials { gap:clamp(4px,calc(10vw - 28px),10px); }
  .site-header .header-cta { display:none; }
  .site-header { grid-template-columns:auto 1fr; column-gap:12px; }
  section { scroll-margin-top:76px; }
  .site-header .mobile-menu-button { grid-column:1; grid-row:1; }
  .site-header .logo { grid-column:2; grid-row:1; justify-self:start; }
  .mobile-menu-button { display:flex; width:44px; height:52px; border:0; background:transparent; flex-direction:column; gap:6px; }
  .mobile-menu-button span { width:34px; height:3px; margin:0; border-radius:4px; background:#fff; box-shadow:0 0 8px rgba(255,255,255,.12); }
  .mobile-menu-button svg { width:35px; height:35px; stroke-width:2.2; }
  .status-pill { margin-bottom:8px; }
  .contact-section { min-height:auto; display:block; padding:28px 6vw 56px; }
  .contact-step { grid-template-columns:1fr; gap:32px; }
  .contact-copy h2 { margin:18px 0 20px; font-size:14vw; }
  .contact-copy>a { margin-top:16px; }
  .contact-selector-panel,.contact-form { padding:22px 18px; }
  .selector-field select,.form-field select { min-height:60px; font-size:16px; }
  .form-grid { grid-template-columns:1fr; }
  .form-field.full,.contact-submit,.form-status { grid-column:1; }
  .contact-step-success { grid-template-columns:1fr; gap:28px; }
  .success-eyebrow { margin-top:0; }
  .contact-success-copy h2 { margin:18px 0 24px; font-size:16vw; }
  .contact-success-visual { min-height:360px; padding:24px; background-position:70% 38%; flex-direction:column; flex-wrap:nowrap; align-items:flex-start; justify-content:space-between; gap:24px; }
  .contact-success-visual img { width:82px; height:82px; flex:0 0 auto; align-self:flex-start; margin:12px 0 0 12px; }
  .success-stamp { display:inline-flex; align-items:center; flex:0 0 auto; width:fit-content; max-width:calc(100% - 12px); min-height:0; margin:0 12px 12px auto; gap:6px; padding:8px 10px; font-size:16px; font-weight:900; line-height:1.2; letter-spacing:0; text-transform:uppercase; }
}

@media (min-width:701px) {
  .social-list a { grid-template-columns:50px 70px 1.1fr 1fr 44px; }
  .social-index { font-size:16px; }
  .social-icon { width:48px; height:48px; }
  .social-handle { color:#c0c0c5; font-size:20px; }
}

@media (min-width:1101px) {
  .social-handle { font-size:28px; }
}

/* Shared navigation and the full catalogue entry point. */
.site-header nav a[aria-current="page"],.mobile-drawer nav a[aria-current="page"] { color:var(--red); }
.site-header nav a[aria-current="page"]::after { width:100%; }
.mobile-drawer { overflow-y:auto; overscroll-behavior:contain; }
.drawer-head,.drawer-socials { flex-shrink:0; }
.drawer-nav-icon.discography { color:#2dd4bf; border-color:rgba(45,212,191,.42); background:rgba(45,212,191,.1); }
.mobile-drawer nav a.drawer-discography:is([aria-current="page"],:hover,:focus-visible,:active) { color:#2dd4bf; outline-color:#2dd4bf; }
.discography-cta { display:table; margin:36px auto 0; padding:15px 20px; border:1px solid var(--red); background:var(--red); color:#fff; font-size:16px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; transition:background-color .25s,color .25s,border-color .25s; }
.discography-cta span { margin-left:12px; }
.discography-cta:hover,.discography-cta:focus-visible,.discography-cta:active { background:#fff; color:var(--red); border-color:#fff; }
.discography-cta:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.discography-cta--explore { display:flex; align-items:center; justify-content:center; gap:12px; width:fit-content; max-width:100%; min-height:52px; background:var(--red); color:#fff; transition:background-color .25s,color .25s,border-color .25s; }
.discography-cta--explore>span { margin-left:0; }
.discography-cta--explore>.discography-cta-icon { display:block; width:22px; height:22px; flex:0 0 22px; }
.discography-cta--explore>.discography-cta-label { min-width:0; text-align:center; }
.discography-cta--explore:hover,.discography-cta--explore:focus-visible,.discography-cta--explore:active { background:#fff; color:var(--red); border-color:#fff; }
.discography-cta--explore:focus-visible { outline-color:var(--red); }
@media (min-width:701px) and (max-width:1100px) {
  .site-header nav { gap:12px; }
  .site-header nav a { font-size:12px; letter-spacing:.1em; }
  .site-header .header-cta { padding:12px; font-size:12px; }
}
@media (max-width:700px) {
  .mobile-drawer nav a.drawer-discography { font-size:clamp(16px,4.5vw,20px); gap:10px; }
}

/* Decorative section photographs: no layout or interaction changes. */
.has-section-scene { position:relative; isolation:isolate; }
.section-scene { position:absolute; z-index:-1; inset:0 0 auto; height:min(100%,1000px); overflow:hidden; pointer-events:none; }
.section-scene>img { display:block; width:100%; height:100%; object-fit:cover; object-position:var(--scene-position,center top); }
.section-scene::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,var(--scene-floor,#09090b) 100%),var(--scene-veil); }
.artist-section.has-section-scene { --scene-floor:#f1efe9; --scene-position:right top; --scene-veil:linear-gradient(90deg,rgba(241,239,233,.2) 0%,rgba(241,239,233,.35) 18%,rgba(241,239,233,.95) 33%,rgba(241,239,233,.95) 100%); }
.releases-section.has-section-scene { --scene-floor:#09090a; --scene-position:right top; --scene-veil:linear-gradient(90deg,rgba(9,9,10,.94) 0%,rgba(9,9,10,.82) 37%,rgba(9,9,10,.22) 70%,rgba(9,9,10,.5) 100%); }
.connect-section.has-section-scene { --scene-floor:#111114; --scene-position:right top; --scene-veil:linear-gradient(90deg,rgba(17,17,20,.9) 0%,rgba(17,17,20,.72) 48%,rgba(17,17,20,.68) 100%); }
.contact-section.has-section-scene { --scene-floor:#09090b; --scene-position:left top; --scene-veil:linear-gradient(90deg,rgba(9,9,11,.64) 0%,rgba(9,9,11,.73) 38%,rgba(9,9,11,.86) 65%,rgba(9,9,11,.92) 100%); }
@media (min-width:1101px) {
  .artist-section.has-section-scene>.section-tag { color:#303036; text-shadow:0 0 8px #f1efe9,0 0 3px #f1efe9; }
  .artist-section .section-scene>img { transform:scale(1.25); transform-origin:right top; }
}
@media (max-width:1100px) {
  .artist-section.has-section-scene { --scene-position:8% top; --scene-veil:linear-gradient(90deg,rgba(241,239,233,.96) 0%,rgba(241,239,233,.89) 48%,rgba(241,239,233,.55) 100%); }
}
@media (max-width:700px) {
  .section-scene { height:min(100%,720px); }
  .releases-section.has-section-scene { --scene-position:72% top; --scene-veil:linear-gradient(90deg,rgba(9,9,10,.9),rgba(9,9,10,.55)); }
  .connect-section.has-section-scene { --scene-position:76% top; --scene-veil:linear-gradient(90deg,rgba(17,17,20,.85),rgba(17,17,20,.6)); }
  .contact-section.has-section-scene { --scene-position:10% top; --scene-veil:linear-gradient(90deg,rgba(9,9,11,.85),rgba(9,9,11,.64)); }
}

/* Tablet typography: keep the existing layout and reinforce the intended bold text.
   Coarse pointers also cover larger tablets in landscape orientation. */
@media (min-width:701px) and (max-width:1100px), (min-width:701px) and (pointer:coarse) {
  .hero h1,
  .artist-title h2,
  .releases-heading h2,
  .connect-intro h2,
  .contact-copy h2,
  .contact-success-copy h2,
  .discography-page .discography-intro h1,
  .discography-page .discography-toolbar h2,
  .discography-page .discography-year-label {
    font-weight:900;
    -webkit-text-stroke:.35px currentColor;
  }
  .artist-title h2 em,
  .releases-heading h2 em,
  .connect-intro h2 em,
  .contact-copy h2 em,
  .contact-success-copy h2 em,
  .discography-page .discography-intro h1 em {
    -webkit-text-stroke-color:currentColor;
  }
  .site-header nav a,
  .header-cta,
  .button,
  .section-topline>a,
  .spotify-copy>a,
  .contact-whatsapp,
  .contact-start,
  .contact-back,
  .contact-submit,
  .contact-copy>a,
  .discography-cta,
  .section-tag,
  .status-pill,
  .hero-kicker,
  .hero-side-label,
  .scroll-cue,
  .artist-title>p,
  .signature-line,
  .spotify-copy small,
  .spotify-copy strong,
  .release-meta strong,
  .release-meta>span:first-child,
  .social-name,
  .selector-field>span:first-child,
  .form-field>span:first-child,
  .success-eyebrow,
  .success-stamp,
  .success-stamp strong,
  .footer-brand strong,
  .footer-brand span,
  .footer-contact,
  .footer-meta,
  .discography-page .discography-back,
  .discography-page .discography-skip,
  .discography-page .discography-filter button,
  .discography-page .discography-filter label,
  .discography-page .discography-intro-bottom .discography-total,
  .discography-page .discography-total strong,
  .discography-page .discography-year-label span,
  .discography-page .discography-info h3,
  .discography-page .discography-watch,
  .discography-page .discography-new,
  .discography-page .discography-art-number {
    font-weight:900;
    -webkit-text-stroke:.25px currentColor;
  }
  /* Keep the optional field hint at its existing, lighter weight. */
  .form-field>span:first-child small { -webkit-text-stroke:0; }
}

/* Announced shows and the downloadable EPK reuse the existing section/CTA language. */
.artist-epk { max-width:100%; margin-top:26px; padding:14px 20px; color:#fff; line-height:1.3; text-align:center; border:1px solid var(--red); }
.artist-epk svg { flex:0 0 22px; }
.artist-epk span { min-width:0; }
.artist-epk:is(:hover,:focus-visible,:active),.show-tickets:is(:hover,:focus-visible,:active) { background:#fff; color:var(--red); border-color:var(--red); }
.artist-epk:focus-visible,.show-tickets:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.drawer-nav-icon.shows { color:#f1be69; border-color:rgba(241,190,105,.42); background:rgba(241,190,105,.1); }
.mobile-drawer nav a.drawer-shows:is(:hover,:focus-visible,:active) { color:#f1be69; outline-color:#f1be69; }
.shows-section { padding:clamp(48px,7vh,96px) 7vw; background:#09090b; border-top:1px solid var(--line); }
.shows-section.has-section-scene { --scene-floor:#09090b; --scene-position:right top; --scene-veil:linear-gradient(90deg,rgba(9,9,11,.94) 0%,rgba(9,9,11,.75) 45%,rgba(9,9,11,.28) 100%); }
.shows-heading { margin-top:50px; min-width:0; }
.shows-heading h1 { font-size:clamp(3.4rem,6.3vw,6.7rem); font-weight:900; }
.shows-list { position:relative; margin-top:46px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:linear-gradient(135deg,rgba(240,43,52,.08),rgba(255,255,255,.025)),rgba(9,9,11,.9); }
.shows-columns,.show-row { display:grid; grid-template-columns:minmax(120px,.8fr) minmax(0,1.7fr) minmax(0,1.2fr) 144px; align-items:center; gap:24px; padding:22px 26px; }
.shows-columns { color:#c0c0c6; border-bottom:1px solid var(--line); font-size:16px; font-weight:800; line-height:1.4; letter-spacing:.08em; text-transform:uppercase; }
.shows-columns>span:last-child { text-align:center; }
.shows-empty { display:flex; align-items:center; justify-content:center; gap:24px; min-height:180px; padding:32px 24px; }
.shows-empty p { margin:0; font-size:clamp(22px,3vw,36px); font-weight:900; line-height:1.2; letter-spacing:-.03em; }
.shows-empty p span { display:block; color:var(--red); }
.shows-signal { flex:0 0 30px; height:48px; display:flex; align-items:center; gap:4px; }
.shows-signal i { width:3px; height:58%; background:var(--red); box-shadow:0 0 14px rgba(240,43,52,.4); animation:wave 1.2s ease-in-out infinite alternate; }
.shows-signal i:nth-child(2n) { height:85%; animation-delay:-.4s; }
.shows-signal i:nth-child(3) { height:100%; animation-delay:-.7s; }
.show-events { margin:0; padding:0; list-style:none; }
.show-row+.show-row { border-top:1px solid var(--line); }
.show-row>* { min-width:0; }
.show-row time { color:var(--red); font-size:18px; font-weight:900; text-transform:uppercase; }
.show-row h2 { margin:0; font-size:clamp(20px,2vw,28px); font-weight:900; line-height:1.15; letter-spacing:-.035em; text-transform:uppercase; overflow-wrap:anywhere; }
.show-location { margin:0; color:#c0c0c6; font-size:16px; line-height:1.6; overflow-wrap:anywhere; }
.show-tickets { min-height:50px; padding:12px; border:1px solid var(--red); color:#fff; font-size:16px; letter-spacing:.08em; }
.show-ticket-pending { color:#b6b6bd; font-size:16px; font-weight:800; line-height:1.4; text-align:center; text-transform:uppercase; }
@media (min-width:701px) and (max-width:820px) {
  .site-header nav { gap:8px; }
  .site-header nav a { letter-spacing:.06em; }
}
@media (min-width:1101px) and (max-width:1400px) {
  .site-header nav { gap:clamp(14px,2vw,24px); }
}
@media (min-width:701px) and (max-width:1100px) {
  .shows-section { padding-left:6vw; padding-right:6vw; }
  .shows-columns,.show-row { grid-template-columns:115px minmax(0,1.5fr) minmax(0,1fr) 125px; gap:16px; padding:20px 18px; }
  .show-tickets { gap:8px; padding:10px; letter-spacing:.04em; }
}
@media (min-width:701px) and (max-width:1100px), (min-width:701px) and (pointer:coarse) {
  .shows-heading h1 { -webkit-text-stroke:.35px currentColor; }
  .shows-heading h1 em { -webkit-text-stroke-color:currentColor; }
  .shows-columns,.shows-empty p,.show-row time,.show-row h2,.show-ticket-pending { font-weight:900; -webkit-text-stroke:.25px currentColor; }
  .shows-empty p span { -webkit-text-stroke-color:currentColor; }
}
@media (max-width:700px) {
  .shows-section { padding:28px 6vw 56px; }
  .shows-section.has-section-scene { --scene-position:74% top; --scene-veil:linear-gradient(90deg,rgba(9,9,11,.92),rgba(9,9,11,.64)); }
  .shows-heading { margin-top:24px; }
  .shows-heading h1 { font-size:clamp(2.7rem,12.6vw,5.5rem); }
  .shows-list { margin-top:28px; }
  .shows-columns { display:none; }
  .shows-empty { min-height:160px; justify-content:flex-start; gap:18px; padding:28px 20px; }
  .show-row { grid-template-columns:minmax(0,1fr); gap:14px; padding:24px 20px; }
  .show-tickets { justify-self:start; max-width:100%; min-width:144px; }
  .show-ticket-pending { text-align:left; }
  .artist-epk,.show-tickets { font-weight:900; -webkit-text-stroke:.25px currentColor; }
}
@media (max-width:420px) {
  .shows-section { padding-left:5vw; padding-right:5vw; }
}

@media (max-width:700px) {
  .site-footer { padding:52px 5vw 30px; }
  .footer-socials { margin-bottom:46px; }
  .footer-socials h2 { margin-bottom:14px; font-size:18px; }
  .footer-streaming-link { min-height:58px; }
  .footer-streaming-logo { width:30px; height:30px; }
  .footer-streaming-logo-amazon { width:36px; height:26px; }
  .footer-primary { grid-template-columns:1fr; align-items:start; gap:24px; }
  .footer-contact { justify-self:start; }
  .footer-meta { flex-direction:column; gap:14px; margin-top:28px; }
}
@media (max-width:380px) {
  .footer-streaming-link { min-height:54px; }
  .footer-streaming-logo { width:27px; height:27px; }
  .footer-streaming-logo-amazon { width:32px; height:23px; }
}

/* Homepage latest-release number badges. */
.release-meta {
  grid-template-columns:46px 1fr auto;
}
.release-meta > span:first-child {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid #ff5962;
  border-radius:8px;
  background:var(--red);
  color:#fff;
  font-size:18px;
  font-weight:900;
  line-height:1;
  font-variant-numeric:tabular-nums;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 4px 0 #8d0e18,0 9px 22px rgba(240,43,52,.2);
  transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.release-card:hover .release-meta > span:first-child,
.release-card:focus-visible .release-meta > span:first-child,
.release-card:active .release-meta > span:first-child {
  border-color:#fff;
  background:#fff;
  color:var(--red);
  box-shadow:inset 0 0 0 1px rgba(240,43,52,.12),0 4px 0 rgba(255,255,255,.48),0 0 24px rgba(240,43,52,.34);
  transform:translateY(-2px);
}

/* Footer progressive back-to-top control. */
.footer-meta { align-items:center; }
.footer-back-to-top {
  position:fixed; z-index:60; right:clamp(20px,3vw,46px); bottom:clamp(20px,3vw,38px);
  width:44px; height:44px; display:grid; place-items:center; padding:0;
  border:2px solid rgba(255,255,255,.76); border-radius:50%;
  background:linear-gradient(145deg,rgba(255,55,68,.76),rgba(157,8,22,.66)); color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 4px 0 rgba(109,7,17,.74),0 9px 24px rgba(240,43,52,.18);
  opacity:0; visibility:hidden; pointer-events:none; transform:translateY(14px);
  cursor:pointer;
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  transition:opacity .24s ease,visibility 0s linear .24s,background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .24s ease;
}
.footer-back-to-top.is-visible {
  opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); transition-delay:0s;
}
.footer-back-to-top svg { display:block; transition:transform .22s ease; }
.footer-back-to-top:hover,.footer-back-to-top:focus-visible {
  border-color:#fff; background:#fff; color:var(--red);
  box-shadow:inset 0 0 0 1px rgba(240,43,52,.12),0 4px 0 rgba(255,255,255,.48),0 0 24px rgba(240,43,52,.34);
  transform:translateY(-2px);
}
.footer-back-to-top:hover svg,.footer-back-to-top:focus-visible svg { transform:translateY(-2px); }
.footer-back-to-top:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.footer-back-to-top:active { transform:translateY(1px) scale(.96); }
@media (max-width:700px) {
  .footer-back-to-top {
    right:calc(14px + env(safe-area-inset-right));
    bottom:calc(14px + env(safe-area-inset-bottom));
  }
}
@media (prefers-reduced-motion:reduce) {
  .footer-back-to-top,.footer-back-to-top svg { transition:none; transform:none!important; }
}

/* Mobile viewport gesture lock requested for the public pages. */
html,body { touch-action:pan-x pan-y; }

/* Stronger numbering for the Follow the Energy social rows. */
.social-list .social-index {
  font-size:48px;
  font-weight:950;
  line-height:1;
  letter-spacing:.03em;
  font-variant-numeric:tabular-nums;
}
@media (max-width:420px) {
  .social-list .social-index { font-size:48px; }
}

/* Extra separation between social numbers and platform logos. */
.social-list .social-index { justify-self:start; margin-right:14px; }
@media (min-width:701px) {
  .social-list a { grid-template-columns:84px 70px 1.1fr 1fr 44px; }
}
@media (max-width:700px) {
  .social-list a { grid-template-columns:78px 50px 1fr 35px; }
}
@media (max-width:420px) {
  .social-list a { grid-template-columns:76px 50px 1fr 28px; }
}

