/* SoundCrossing Records & Playmoon Events
   Single stylesheet. Colour themes follow the visitor's light/dark setting. */

/* ---------- Fonts (self-hosted) ---------- */
@font-face{font-family:"Schibsted Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/schibsted-grotesk-400.woff2") format("woff2")}
@font-face{font-family:"Schibsted Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/fonts/schibsted-grotesk-500.woff2") format("woff2")}
@font-face{font-family:"Schibsted Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("../assets/fonts/schibsted-grotesk-700.woff2") format("woff2")}
@font-face{font-family:"Schibsted Grotesk";font-style:normal;font-weight:900;font-display:swap;src:url("../assets/fonts/schibsted-grotesk-900.woff2") format("woff2")}

/* ---------- Tokens ---------- */
:root{
  --paper:#E7EAEC; --ink:#1A1D22; --mute:#5C6470; --line:#C5CBD1;
  --night:#0C1324; --moon:#DDE3EE; --moon-mute:#8E9AB3; --moon-line:#26314A; --signal:#2438D4;
  --font:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  color-scheme:light dark;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root{--paper:#10151F; --ink:#E4E8EE; --mute:#98A1AF; --line:#262E3C; --signal:#8C9BFF; --night:#060A14}
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 88px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.wrap{max-width:1040px;margin:0 auto;padding:0 22px}
section{padding:76px 0 12px}
h2{margin:0 0 28px;font-size:clamp(28px,5vw,40px);letter-spacing:-.03em;line-height:1.05;font-weight:900}
.lede{max-width:56ch;font-size:19px;margin:0 0 20px}
.muted{color:var(--mute)}

/* ---------- Header ---------- */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding-top:8px;padding-bottom:8px}
.mark{display:inline-flex;align-items:center;text-decoration:none}
.ico{height:56px;width:auto;aspect-ratio:1336/300;flex:none}
nav{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none}
nav::-webkit-scrollbar{display:none}
nav a{text-decoration:none;font-size:15px;color:var(--mute);white-space:nowrap}
nav a:hover{color:var(--ink)}
@media (max-width:720px){
  html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 118px)}
  header .wrap{flex-wrap:wrap;row-gap:4px}
  nav{width:100%}
}

/* ---------- Logo (inline SVG sprite) ---------- */
#art .k{fill:var(--ink)}
#art .w{fill:var(--paper);stroke:var(--ink);stroke-width:4;stroke-linejoin:round}
#art .p{fill:var(--paper)}
#art .m{fill:var(--mute)}
.lock{display:block;width:min(100%,560px);height:auto;margin-top:30px}

/* ---------- Releases ---------- */
.rows{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}
.rows>li{display:grid;grid-template-columns:72px 1fr auto;gap:0 18px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.cv{width:72px;height:72px;border-radius:50%;object-fit:cover;background:var(--line)}
.info{display:flex;flex-direction:column;min-width:0}
.info .t{font-weight:700;font-size:19px;letter-spacing:-.01em}
.info .a{color:var(--mute);font-size:15px}
.rows .l{grid-row:1;grid-column:3;padding-top:2px;font-size:15px}
details{margin-top:8px}
summary{cursor:pointer;font-size:15px;color:var(--ink);width:max-content}
.sides{display:flex;gap:12px;margin:12px 0 4px}
.sides img{width:min(150px,38vw);height:auto;border-radius:50%}
.tl{margin:10px 0 2px;padding-left:0;list-style:none;font-size:15px}
.tl li{padding:2px 0}

/* ---------- Artists ---------- */
.artists{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--ink)}
.artist{padding:22px 18px 22px 0;border-bottom:1px solid var(--line)}
.artist b{display:block;font-size:22px;letter-spacing:-.02em}
.artist span{color:var(--mute);font-size:15px}

/* ---------- Playmoon (always night) ---------- */
#playmoon{position:relative;background:var(--night);color:var(--moon);margin-top:76px;padding:76px 0 80px}
#playmoon>.wrap{position:relative;z-index:1}
#playmoon .muted,#playmoon .when{color:var(--moon-mute)}
#playmoon h2{color:var(--moon)}
#playmoon a,#playmoon summary{color:var(--moon)}
.events{margin:0;padding:0;list-style:none;border-top:1px solid var(--moon)}
.events li{display:grid;grid-template-columns:1fr;gap:4px;padding:18px 0;border-bottom:1px solid var(--moon-line)}
.events .when{font-size:15px}
.events b{font-size:20px;letter-spacing:-.015em}
@media (min-width:640px){.events li{grid-template-columns:200px 1fr;gap:20px}}

/* Expandable flyer: thumbnail that opens in place */
details.flyer{margin-top:12px}
details.flyer summary{list-style:none;cursor:zoom-in;width:max-content;max-width:100%}
details.flyer summary::-webkit-details-marker{display:none}
details.flyer[open] summary{cursor:zoom-out}
.fl{display:block;height:auto;width:76px;margin:0;outline:1px solid var(--moon-line);transition:width .2s ease}
details.flyer[open] .fl{width:min(380px,100%)}
details.flyer summary:hover .fl{outline-color:var(--moon-mute)}

#playmoon .sub{font-size:20px;margin:52px 0 14px;font-weight:700;letter-spacing:-.01em;color:var(--moon)}
.vid video{display:block;width:100%;max-width:760px;aspect-ratio:16/9;background:#000}
.vid p{margin:10px 0 0;font-size:15px}
.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.shots img{display:block;width:100%;height:auto}

/* ---------- Contact & footer ---------- */
#contact{padding-bottom:90px}
.links{display:flex;flex-wrap:wrap;gap:10px 26px;margin:20px 0 0;padding:0;list-style:none;font-size:18px}
footer{border-top:1px solid var(--line);padding:22px 0 30px;color:var(--mute);font-size:14px}

/* ---------- Animated background: "ola de luz" ---------- */
#wave-page{position:fixed;inset:0;z-index:-1;pointer-events:none;color:var(--ink)}
#wave-night{position:absolute;inset:0;z-index:0;pointer-events:none;color:var(--moon)}
#wave-night .stick{position:sticky;top:0;height:100vh}
#wave-page svg,#wave-night svg{display:block;width:100%;height:100%}
.wv{transform-box:fill-box;transform-origin:center;opacity:.035;animation:wv 7s ease-in-out var(--dl) infinite}
@keyframes wv{0%,100%{opacity:.035;transform:scale(.92)}50%{opacity:.15;transform:scale(1.06)}}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .wv{animation:none;opacity:.07}
  .fl{transition:none}
}
