/* ===========================================================
   Frekvenci — Discover
   Values come straight from the design-v3 template; the inline
   styles there were lifted into these classes unchanged.
   =========================================================== */

@font-face{font-family:'NHaas';font-weight:900;font-style:normal;font-display:swap;src:url(fonts/NHaasGroteskDSPro-95Blk.otf) format('opentype')}
@font-face{font-family:'GT America';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/GT-America-Regular.woff) format('woff')}
@font-face{font-family:'GT America';font-weight:700;font-style:italic;font-display:swap;src:url(fonts/GT-America-BoldItalic.woff) format('woff')}

:root{
  --ink:#1E1A1F;
  --cream:#F3EBD9;
  --pink:#FF3D8A;
  --cyan:#22D3EE;
  --purple:#8B5CF6;
  --led:#FF4FA0;
  /* The LED's readout ink. The glow below is the neon (--led); the letters
     themselves sit a few stops lighter so the marquee clears 4.5:1 against
     the black panel once the glow has tinted it. common.js swaps both
     together when the deck's LED colour changes. */
  --led-ink:#FF8FC4;
  --gutter:48px;
}

*{box-sizing:border-box}
body{margin:0;background:#0F0D22}
a{color:var(--pink);text-decoration:none}
a:hover{color:var(--cream)}
img{max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0;text-align:inherit}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* The detail pages drop whole cards when the data behind them is empty, and
   most of those cards set their own display; the attribute has to outrank it
   or a hidden card comes back as an empty box. */
[hidden]{display:none !important}
.defs{position:absolute}
/* The three search fields hide their own outline because the ring belongs on
   the pill around them; .cat-search and .rost-search already do this, and
   these three were the ones still left without a visible focus. */
.search:focus-within,.news-field:focus-within,.addshow-field:focus-within{outline:3px solid var(--cyan);outline-offset:3px}

/* ---------- skip link ----------
   Parked above the top edge (so it takes no space and cannot shift the
   layout) and dropped into the corner as a house-style pill when it takes
   focus — the first thing the Tab key finds on every page. */
.skiplink{position:fixed;left:16px;top:-120px;z-index:400;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.05em;padding:11px 18px;background:var(--cyan);color:#0F0D22;border:2px solid #0F0D22;box-shadow:3px 3px 0 var(--pink);text-decoration:none;transition:top .16s ease}
.skiplink:hover{color:#0F0D22}
.skiplink:focus{top:16px}
main:focus{outline:0}

/* ---------- keyframes ---------- */
@keyframes reel{to{transform:rotate(360deg)}}
@keyframes marq{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes blip{0%,45%{opacity:1}50%,100%{opacity:.15}}
@keyframes vuwob{0%{transform:rotate(6deg)}100%{transform:rotate(34deg)}}
@keyframes blink2{0%,60%{opacity:1}70%,100%{opacity:.25}}
@keyframes twinkle{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-12px) rotate(-8deg)}}

@keyframes tabglow{0%,100%{box-shadow:0 0 12px rgba(255,61,138,.5),inset 0 1px 0 rgba(255,255,255,.5)}50%{box-shadow:0 0 34px rgba(255,61,138,1),inset 0 1px 0 rgba(255,255,255,.5)}}
@keyframes arrowslide{0%,100%{transform:translateX(0)}50%{transform:translateX(-5px)}}

/* ---------- textures ---------- */
.paper{position:relative}
.paper::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.55;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .2 0 0 0 0 .15 0 0 0 0 .1 0 0 0 .18 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.stars{background-image:radial-gradient(1.5px 1.5px at 12% 18%,#F3EBD9 50%,transparent 51%),radial-gradient(1px 1px at 28% 62%,#F3EBD9 50%,transparent 51%),radial-gradient(2px 2px at 44% 30%,#FFE6A3 50%,transparent 51%),radial-gradient(1px 1px at 57% 74%,#F3EBD9 50%,transparent 51%),radial-gradient(1.5px 1.5px at 66% 12%,#F3EBD9 50%,transparent 51%),radial-gradient(1px 1px at 80% 48%,#F3EBD9 50%,transparent 51%),radial-gradient(2px 2px at 91% 22%,#FFE6A3 50%,transparent 51%),radial-gradient(1px 1px at 8% 84%,#F3EBD9 50%,transparent 51%),radial-gradient(1.2px 1.2px at 36% 90%,#F3EBD9 50%,transparent 51%),radial-gradient(1px 1px at 72% 88%,#F3EBD9 50%,transparent 51%),radial-gradient(1.5px 1.5px at 96% 70%,#F3EBD9 50%,transparent 51%),radial-gradient(1px 1px at 50% 6%,#F3EBD9 50%,transparent 51%);animation:twinkle 5s ease-in-out infinite}
.scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 2px,transparent 2px 5px);opacity:.5}
.plastic{overflow:hidden}
.plastic::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;mix-blend-mode:overlay;opacity:.9;background-image:linear-gradient(115deg,rgba(255,255,255,.35) 0 8%,transparent 20%),linear-gradient(100deg,transparent 0 62%,rgba(255,255,255,.18) 62.2%,transparent 62.6%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='3' seed='3'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .85 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

.neon-pink{box-shadow:0 0 0 2px #FF3D8A,0 0 18px rgba(255,61,138,.45),inset 0 0 30px rgba(255,61,138,.08)}
.neon-cyan{box-shadow:0 0 0 2px #22D3EE,0 0 18px rgba(34,211,238,.4),inset 0 0 30px rgba(34,211,238,.08)}
.neon-purple{box-shadow:0 0 0 2px #8B5CF6,0 0 18px rgba(139,92,246,.45),inset 0 0 30px rgba(139,92,246,.08)}
.pill{border-radius:999px}

/* ===================== page shell ===================== */
/* overflow-x:clip keeps the decorative art (hero box, badges, marquees) from
   ever producing a horizontal scrollbar; it does not clip the fixed player. */
/* No padding under the footer: the docked player is fixed and parks itself off
   the right edge, so it never sat on the page's last band in the first place. */
.page{min-height:100vh;color:var(--cream);font-family:'GT America',Helvetica,sans-serif;background:#0F0D22;overflow-x:clip}
/* The default top padding is the gap under the hero's torn edge; sections that
   follow the second torn edge or a wave override it below. */
.section{max-width:1440px;margin:0 auto;padding:88px var(--gutter) 0;position:relative;z-index:1}

/* ===================== ticker ===================== */
.ticker{background:var(--pink);color:#0F0D22;height:34px;overflow:hidden;display:flex;align-items:center;border-bottom:2px solid var(--cyan)}
.ticker-text{display:inline-block;white-space:pre;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;animation:tick 28s linear infinite}

/* ===================== hero ===================== */
.hero{position:relative;background:radial-gradient(ellipse at 62% 8%,#3A1F63 0%,#1A1438 40%,#120F26 70%);color:var(--cream);overflow:hidden;padding-bottom:150px}
.hero>.stars{position:absolute;inset:0;pointer-events:none}
.hero-art{position:absolute;left:50%;top:0;width:1440px;height:100%;margin-left:-720px;pointer-events:none}
.sun{position:absolute;left:600px;top:60px;width:300px;height:300px;border-radius:50%;background:linear-gradient(#FFE27A 0%,#FFB347 40%,#FF3D8A 100%);box-shadow:0 0 90px rgba(255,120,150,.45)}
.sun-bars{position:absolute;left:0;right:0;bottom:0;height:50%;background:repeating-linear-gradient(0deg,#1A1438 0 8px,transparent 8px 34px)}
.road{position:absolute;left:0;top:0;overflow:visible;filter:drop-shadow(0 0 16px rgba(255,61,138,.5))}
.hero-grid{position:absolute;left:0;right:0;bottom:0;height:260px;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(transparent,#000 40%);mask-image:linear-gradient(transparent,#000 40%)}
.hero-grid svg{position:absolute;left:0;top:0}
@keyframes gridscroll{0%{background-position:0 0}100%{background-position:0 90px}}
.grid-floor{position:absolute;left:-60%;right:-60%;top:0;height:900px;transform-origin:50% 0;transform:perspective(520px) rotateX(62deg);background-image:repeating-linear-gradient(90deg,rgba(255,61,138,.6) 0 2px,transparent 2px 90px),repeating-linear-gradient(180deg,rgba(255,61,138,.6) 0 2px,transparent 2px 90px);background-size:90px 90px;animation:gridscroll 2.2s linear infinite}
.hero-horizon{position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,#FF3D8A 20%,#22D3EE 50%,#FF3D8A 80%,transparent);box-shadow:0 0 18px #FF3D8A,0 0 40px rgba(255,61,138,.6)}

/* header */
.site-header{position:relative;max-width:1440px;margin:0 auto;padding:22px var(--gutter) 0;display:flex;align-items:center;gap:22px}
.wordmark{font-family:'NHaas','Arial Black',sans-serif;font-size:30px;letter-spacing:-0.01em;line-height:1;text-shadow:3px 3px 0 #FF3D8A,0 0 22px rgba(255,61,138,.6)}
.nav{display:flex;align-items:center;gap:6px;margin-left:16px}
.navpill{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.05em;padding:9px 16px;border:2px solid #F3EBD955;cursor:pointer;color:var(--cream)}
.navpill:hover{background:var(--pink);color:#0F0D22;border-color:var(--pink)}
.navpill.is-current{background:var(--cyan);color:#0F0D22;border-color:var(--cyan);box-shadow:0 0 14px rgba(34,211,238,.6)}
.navpill.is-current:hover{background:var(--cyan);color:#0F0D22;border-color:var(--cyan)}
.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.search{display:flex;align-items:center;gap:10px;border:2px solid var(--purple);background:#120F26;padding:9px 16px;width:300px;box-shadow:0 0 14px rgba(139,92,246,.4)}
.search-dot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--pink);box-shadow:0 0 8px var(--pink);animation:blip 1.4s steps(1,end) infinite}
.search input{border:0;outline:0;background:transparent;font-family:'GT America',sans-serif;font-size:14px;color:var(--cream);width:100%}
.btn-join{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.05em;padding:9px 18px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;box-shadow:3px 3px 0 var(--pink);cursor:pointer}
.btn-join:hover{background:#FFD166}

/* hero body */
.hero-main{position:relative;max-width:1440px;margin:0 auto;padding:70px var(--gutter) 0;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:56px;align-items:start}
.hero-copy{position:relative}
.hero-tape{position:absolute;left:-40px;top:-52px;width:170px;animation:floaty 6s ease-in-out infinite;filter:drop-shadow(0 14px 18px rgba(0,0,0,.5))}
.hero-spark{position:absolute;right:40px;top:-10px}
.hero-clock{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.1em;color:var(--cyan);margin-bottom:18px;padding-left:190px;text-shadow:0 0 10px rgba(34,211,238,.8)}
.hero-title{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:124px;line-height:.86;letter-spacing:-0.02em;text-transform:uppercase;color:var(--cream);text-shadow:4px 4px 0 #E8508B,8px 8px 0 #F2A93B,12px 12px 0 #2F5FA6;text-wrap:balance}
.hero-lede{display:flex;gap:22px;margin-top:40px;align-items:flex-start;max-width:640px}
.hero-badge{width:64px;height:64px;flex:none;background:var(--pink);border:3px solid var(--cream);display:flex;align-items:center;justify-content:center;box-shadow:4px 4px 0 var(--cream);transform:rotate(-8deg)}
.tri{width:0;height:0;border-left:18px solid #0F0D22;border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px}
.hero-lede p{margin:0;font-size:19px;line-height:1.45;color:var(--cream);max-width:520px;text-wrap:pretty}
.hero-ctas{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.cta{display:flex;align-items:center;gap:12px;padding:16px 28px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:18px;letter-spacing:0.06em;cursor:pointer}
.cta-solid{background:var(--cream);color:#0F0D22;border:3px solid #0F0D22;box-shadow:5px 5px 0 var(--pink)}
.cta-solid:hover{background:#FFD166;box-shadow:5px 5px 0 var(--cyan)}
.cta-ghost{background:transparent;color:var(--cream);border:3px solid var(--cream);box-shadow:5px 5px 0 var(--cyan)}
.cta-ghost:hover{background:var(--cream);color:#0F0D22}

/* tonight's frekvenci ticket */
.ticket-wrap{position:relative;transform:rotate(-2deg);margin-top:20px}
.tape-strip{position:absolute;background:rgba(243,235,217,.42);z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.tape-strip-tl{left:34px;top:-16px;width:110px;height:30px;transform:rotate(-5deg)}
.tape-strip-br{right:26px;bottom:-14px;width:96px;height:28px;transform:rotate(8deg)}
.ticket{background:#F7EEDC;color:var(--ink);border-radius:22px;box-shadow:0 26px 50px rgba(0,0,0,.5);
  -webkit-mask-image:radial-gradient(circle at 0 62px,transparent 16px,#000 17px),radial-gradient(circle at 100% 62px,transparent 16px,#000 17px);
  -webkit-mask-composite:source-in;
  mask-image:radial-gradient(circle at 0 62px,transparent 16px,#000 17px),radial-gradient(circle at 100% 62px,transparent 16px,#000 17px);
  mask-composite:intersect}
.ticket-head{display:flex;align-items:center;justify-content:space-between;padding:18px 30px 14px;border-bottom:3px dashed #1E1A1F33}
.ticket-title{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:20px;letter-spacing:.01em;text-transform:uppercase}
.ticket-count{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:var(--cream);background:var(--ink);padding:5px 12px}
.ticket-list{padding:8px 14px}
.trackrow{display:grid;width:100%;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:10px 14px;cursor:pointer;border-radius:12px}
.trackrow{transition:background .18s,transform .18s}
.trackrow:hover{background:rgba(30,26,31,.08);transform:translateX(6px)}
.trackrow .trackrow-num{transition:transform .18s,box-shadow .18s}
.trackrow:hover .trackrow-num{transform:scale(1.12) rotate(-10deg);box-shadow:3px 3px 0 #1E1A1F}
.trackrow .trackrow-num .np{display:none}
.trackrow:hover .trackrow-num .nn{display:none}
.trackrow:hover .trackrow-num .np{display:block}
.trackrow .trackrow-dur .dp{display:none}
.trackrow:hover .trackrow-dur .dn{display:none}
.trackrow:hover .trackrow-dur .dp{display:block;color:#B33A25}
.trackrow:hover .trackrow-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:#FF3D8A}
.trackrow-num{width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;color:var(--ink)}
.trackrow-mid{min-width:0}
.trackrow-title{display:block;font-size:16px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trackrow-artist{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.07em;color:#6F6468;margin-top:2px;text-transform:uppercase}
.trackrow-dur{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;color:#6F6468}
.ticket-foot{padding:14px 30px 18px;border-top:3px dashed #1E1A1F33;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6F6468;line-height:1.6;text-transform:uppercase}

/* ===================== dividers ===================== */
.torn{display:block;height:26px;margin-top:-26px;position:relative;z-index:2;background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%2226%22%20viewBox%3D%220%200%201440%2026%22%3E%3Cpath%20d%3D%22M0%2026%20L0%2010.8%20L13%202.6%20L23%209.8%20L36%201.7%20L52%2013.0%20L64%206.3%20L79%2014.5%20L88%2011.0%20L98%2014.9%20L108%2012.4%20L120%203.9%20L129%2020.8%20L145%202.7%20L157%2021.1%20L167%209.3%20L180%2014.8%20L191%203.8%20L207%209.8%20L217%2012.1%20L228%203.4%20L243%207.8%20L254%201.8%20L270%205.3%20L286%2010.4%20L296%2013.3%20L308%2016.8%20L322%203.0%20L332%2010.0%20L341%201.1%20L353%2015.0%20L367%2021.1%20L378%209.7%20L390%209.7%20L405%2010.0%20L417%205.8%20L427%2016.4%20L437%206.0%20L452%2019.0%20L468%2020.5%20L483%2016.5%20L497%2012.3%20L506%207.2%20L517%204.8%20L529%2015.2%20L543%205.9%20L559%200.2%20L570%2012.9%20L582%202.0%20L598%2010.1%20L613%2013.0%20L625%202.8%20L640%2019.8%20L651%200.5%20L661%2015.6%20L675%2014.6%20L690%205.1%20L705%203.7%20L714%201.8%20L723%2011.9%20L738%2018.6%20L748%2010.9%20L757%206.2%20L769%201.4%20L780%205.1%20L791%2017.5%20L801%203.6%20L810%2013.8%20L819%208.9%20L828%2010.6%20L840%200.2%20L855%2010.0%20L869%207.5%20L885%2015.8%20L899%205.9%20L910%201.7%20L926%201.8%20L935%204.1%20L946%200.7%20L959%209.7%20L971%2011.9%20L987%2011.7%20L999%202.7%20L1015%2014.6%20L1027%2020.0%20L1041%2010.1%20L1057%2019.6%20L1069%2011.0%20L1083%2017.4%20L1099%2012.0%20L1115%2014.0%20L1130%209.7%20L1139%2021.5%20L1152%2014.4%20L1164%2016.6%20L1179%2011.1%20L1191%2019.5%20L1205%201.1%20L1216%2010.3%20L1232%2014.6%20L1242%2015.0%20L1252%204.4%20L1265%207.0%20L1274%2021.2%20L1287%200.8%20L1299%204.1%20L1313%205.1%20L1327%206.7%20L1343%2013.2%20L1355%2018.3%20L1365%207.6%20L1377%2019.8%20L1390%201.9%20L1400%2010.7%20L1411%208.9%20L1424%207.3%20L1433%201.3%20L1440%2010.8%20L1440%2026%20Z%22%20fill%3D%22%23EFE3C8%22%2F%3E%3C%2Fsvg%3E');background-repeat:repeat-x;background-position:center top;background-size:1440px 26px}
.torn-2{background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%2226%22%20viewBox%3D%220%200%201440%2026%22%3E%3Cpath%20d%3D%22M0%2026%20L0%2010.1%20L13%2019.9%20L22%208.9%20L32%208.6%20L41%202.8%20L55%2018.8%20L64%2011.9%20L75%207.6%20L85%2016.2%20L97%205.1%20L111%2019.6%20L127%208.4%20L143%2017.7%20L155%201.9%20L165%203.0%20L179%2013.0%20L195%206.1%20L206%207.1%20L216%2020.3%20L229%2017.5%20L243%206.1%20L256%202.9%20L270%2021.3%20L283%207.4%20L294%2012.3%20L307%202.7%20L319%2018.3%20L333%2011.7%20L346%2013.5%20L358%201.9%20L368%208.3%20L384%2016.7%20L400%209.9%20L415%209.8%20L424%2019.6%20L435%205.5%20L445%201.1%20L456%207.7%20L472%2018.0%20L485%2011.9%20L494%2010.2%20L504%2010.7%20L515%205.4%20L528%2012.6%20L538%2013.0%20L552%2010.9%20L561%200.0%20L573%2010.1%20L582%2013.7%20L591%202.0%20L602%209.6%20L616%2021.2%20L631%203.7%20L640%2018.6%20L656%2018.7%20L671%2012.6%20L687%200.4%20L698%2013.6%20L707%2013.9%20L718%206.6%20L734%2013.2%20L744%2015.1%20L758%200.3%20L768%202.7%20L779%201.3%20L790%2011.0%20L803%2011.7%20L819%202.0%20L830%201.8%20L840%203.3%20L851%202.5%20L862%202.3%20L874%206.9%20L889%2010.2%20L902%2019.7%20L916%207.9%20L930%2010.3%20L941%2017.3%20L952%2013.6%20L964%2010.2%20L979%202.4%20L991%209.3%20L1001%2017.2%20L1015%204.5%20L1029%202.3%20L1041%2016.7%20L1050%208.8%20L1061%200.0%20L1073%2016.0%20L1084%200.6%20L1096%209.8%20L1109%200.4%20L1124%209.5%20L1138%2016.9%20L1147%2021.3%20L1162%2020.6%20L1172%206.7%20L1184%2020.0%20L1198%2019.2%20L1210%208.5%20L1225%203.8%20L1240%2012.7%20L1253%207.6%20L1267%202.0%20L1279%208.4%20L1288%2011.5%20L1298%200.1%20L1314%2013.8%20L1324%205.3%20L1340%205.3%20L1354%2014.0%20L1366%2018.6%20L1375%203.0%20L1384%2016.5%20L1399%2014.5%20L1408%200.4%20L1418%206.5%20L1434%200.3%20L1440%2010.1%20L1440%2026%20Z%22%20fill%3D%22%23EFE3C8%22%2F%3E%3C%2Fsvg%3E')}
.wave{display:block;height:120px;margin-top:70px;background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%22120%22%20viewBox%3D%220%200%201440%20120%22%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FFD166%22%20transform%3D%22translate(0%200)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FF8A3D%22%20transform%3D%22translate(0%2016)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FF3D8A%22%20transform%3D%22translate(0%2032)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23C026D3%22%20transform%3D%22translate(0%2048)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%238B5CF6%22%20transform%3D%22translate(0%2064)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%231B1440%22%20transform%3D%22translate(0%2080)%22%2F%3E%3C%2Fsvg%3E');background-repeat:repeat-x;background-position:center top;background-size:1440px 120px}

/* ===================== cream body ===================== */
.cream{margin-top:-26px;background:linear-gradient(transparent 26px,#EFE3C8 26px);color:var(--ink);padding-bottom:100px}  /* the run-out to the footer used to be the footer's own top margin, back
     when the footer sat inside this box; it is the paper's now, so the band
     under the last section is still cream. */
.torn-top{margin-top:0;z-index:auto}

/* radio unit — the GF-9: a black ghetto blaster with chrome trim, a weighted
   tuning knob, twin VU meters, an amber readout and a scrolling cream band. */
.radio{position:relative;border-radius:18px;background:linear-gradient(#2E2F36,#17181C);color:var(--cream);box-shadow:0 0 0 3px #C9CDD1,0 0 0 5px #6B7076,inset 0 2px 0 #7A7B82,0 30px 40px rgba(20,15,40,.45);padding:22px 26px 24px;overflow:hidden}
.radio-trim{position:absolute;left:26px;right:26px;top:10px;height:4px;background:linear-gradient(90deg,#E6E8EB,#8B9096,#E6E8EB)}
.radio-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:6px}
.radio-head-left{display:flex;align-items:baseline;gap:14px}
.radio-mark{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:24px;letter-spacing:0.04em;color:#E6E8EB;text-shadow:0 1px 0 #000}
.radio-sub{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#9AA0A6}
.radio-lamps{display:flex;align-items:center;gap:18px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#9AA0A6}
.radio-grid{display:grid;grid-template-columns:210px minmax(0,1fr) 300px;gap:26px;align-items:center;margin-top:18px}

/* the two readout typefaces: amber seven-segment and green vacuum fluorescent */
.seg{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;color:#FFB347;text-shadow:0 0 6px #FFB347,0 0 16px rgba(255,179,71,.7)}
.vfd{color:#7CFFD4;text-shadow:0 0 6px #7CFFD4,0 0 14px rgba(124,255,212,.6)}

.seek{display:flex;flex-direction:column;align-items:center;gap:10px}
.seek-dish{position:relative;width:200px;height:200px}
.seek-well{position:absolute;inset:0;border-radius:50%;background:#0E0F13;box-shadow:inset 0 4px 12px #000,0 0 0 3px #3A3B42,0 0 0 4px #0A0A0D}
.seek-teeth{position:absolute;inset:8px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#C9CDD1 0 1.2deg,transparent 1.2deg 10deg);-webkit-mask-image:radial-gradient(circle,transparent 62%,#000 63%);mask-image:radial-gradient(circle,transparent 62%,#000 63%);opacity:.75}
/* The knob is two stacked pieces: a static cylinder base whose box-shadow
   stack draws the side wall and the drop shadow, and a rotating top layer
   sitting on it. */
.seek-base{position:absolute;inset:30px;border-radius:50%;background:radial-gradient(circle at 50% 30%,#6C707A,#3A3D45 70%);box-shadow:0 6px 0 #4A4D55,0 10px 0 #2B2D33,0 13px 0 #1A1B20,0 26px 28px rgba(0,0,0,.8),0 0 0 1px #0A0A0D}
.seek-wheel{position:absolute;inset:30px;border-radius:50%;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .7s cubic-bezier(.25,1.2,.35,1)}
.seek-wheel.is-dragging{cursor:grabbing;transition:none}
.seek-knurl{position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,#E6E8EB 0 3deg,#9AA0A6 3deg 6deg,#6F747B 6deg 8deg);box-shadow:inset 0 2px 0 #fff,inset 0 -3px 6px rgba(0,0,0,.5)}
.seek-ring{position:absolute;inset:14px;border-radius:50%;background:conic-gradient(from 200deg,#D9DCE0,#8B9096 20%,#E6E8EB 35%,#9AA0A6 55%,#DFE2E5 75%,#8B9096 90%,#D9DCE0);box-shadow:inset 0 2px 0 #fff,inset 0 -3px 0 rgba(0,0,0,.35),0 3px 6px rgba(0,0,0,.6)}
.seek-hub{position:absolute;inset:25px;border-radius:50%;background:radial-gradient(circle at 38% 30%,#5C5680,#2A2540 55%,#15122A);box-shadow:inset 0 4px 10px rgba(255,255,255,.22),inset 0 -8px 12px rgba(0,0,0,.65),0 4px 8px rgba(0,0,0,.6)}
.seek-mark{position:absolute;left:50%;top:4px;width:7px;height:30px;margin-left:-3.5px;border-radius:4px;background:var(--pink);box-shadow:0 0 10px #FF3D8A,0 0 22px rgba(255,61,138,.7)}
.seek-cap{position:absolute;left:50%;top:50%;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#F3EBD9,#B8AEDA 70%);box-shadow:0 2px 4px #000,inset 0 -2px 3px rgba(0,0,0,.3)}
.seek-pointer{position:absolute;left:50%;top:-4px;width:0;height:0;margin-left:-7px;border-left:7px solid transparent;border-right:7px solid transparent;border-top:11px solid #FFB347;filter:drop-shadow(0 0 4px #FFB347)}
.seek-label{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.1em;color:#9AA0A6;white-space:nowrap}

.radio-mid{min-width:0;display:flex;flex-direction:column;gap:14px}
.vu-row{display:flex;gap:14px;align-items:stretch}
.vu{position:relative;width:150px;height:92px;flex:none;border-radius:8px;background:linear-gradient(#F4EBD6,#E5D9BE);box-shadow:inset 0 0 0 3px #1A1A20,inset 0 4px 8px rgba(0,0,0,.3);overflow:hidden}
.vu-arc{position:absolute;left:14px;right:14px;top:18px;height:34px;border-top:2px solid #1A1A20;border-radius:80px 80px 0 0}
.vu-red{position:absolute;right:16px;top:14px;width:36px;height:22px;border-top:4px solid #B33A25;border-radius:0 60px 0 0}
.vu-needle{position:absolute;left:50%;bottom:10px;width:2px;height:70px;background:#1A1A20;transform-origin:bottom center;animation:vuwob 2.3s ease-in-out infinite alternate}
/* the right channel wobbles on its own beat so the pair never looks mirrored */
.vu-r .vu-needle{animation-duration:1.7s;animation-delay:.4s}
.vu-pivot{position:absolute;left:50%;bottom:6px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#1A1A20}
.vu-ch,.vu-db{position:absolute;bottom:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em}
.vu-ch{left:12px;color:#6F6468}
.vu-db{right:12px;color:#B33A25}

.readout{flex:1;min-width:0;border-radius:8px;background:#0A0A0F;box-shadow:inset 0 0 0 2px #3A3B42,inset 0 4px 10px #000;padding:10px 16px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.readout-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.readout-freq{font-size:34px;letter-spacing:.08em;line-height:1;white-space:nowrap}
.readout-fm{font-size:14px}
.readout-mood{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.08em;white-space:nowrap}
.readout-leds{display:flex;gap:4px}
/* the lit segment takes the tuned station's colour, set from common.js */
.readout-leds div{flex:1;height:8px;border-radius:2px;background:#2A2440;transition:background .3s,box-shadow .3s}
.readout-flags{display:flex;gap:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#9AA0A6}
.flag-stereo{color:#5FE38A}
.flag-tuned{color:#FFB347}

/* the tuner band: nine 150px slots that slide under a fixed red needle */
.band{position:relative;height:92px;border-radius:8px;background:linear-gradient(#F4EBD6,#E5D9BE);overflow:hidden;box-shadow:inset 0 0 0 3px #1A1A20,inset 0 4px 10px rgba(0,0,0,.35)}
.band-strip{position:absolute;left:50%;top:0;bottom:0;display:flex;transition:transform .7s cubic-bezier(.25,1.2,.35,1);will-change:transform}
/* while the knob is being dragged the band tracks the pointer 1:1 */
.band-strip.is-dragging{transition:none}
.band-slot{position:relative;flex:none;width:150px;height:100%;padding:0;cursor:pointer;background:transparent;border:0;border-right:2px solid rgba(26,26,32,.22)}
.slot-ticks{position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(90deg,rgba(26,26,32,.7) 0 1px,transparent 1px 15px)}
.slot-freq{position:absolute;left:0;right:0;top:20px;text-align:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:20px;letter-spacing:0.04em;color:#1A1A20;opacity:.55;transition:opacity .3s}
.slot-name{position:absolute;left:0;right:0;top:48px;text-align:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.07em;white-space:nowrap}
.slot-bar{position:absolute;left:36px;right:36px;bottom:10px;height:5px;border-radius:3px;opacity:.55;transition:opacity .3s}
.band-slot.is-on .slot-freq,.band-slot.is-on .slot-bar{opacity:1}
.band-fade{position:absolute;top:0;bottom:0;width:70px;pointer-events:none}
.band-fade-l{left:0;background:linear-gradient(90deg,#EAE0C6,transparent)}
.band-fade-r{right:0;background:linear-gradient(270deg,#EAE0C6,transparent)}
.band-glow{position:absolute;left:50%;top:0;bottom:0;width:60px;margin-left:-30px;background:radial-gradient(ellipse at 50% 50%,rgba(255,179,71,.35),transparent 70%);pointer-events:none}
.band-needle{position:absolute;left:50%;top:0;bottom:0;width:3px;margin-left:-1.5px;background:#B33A25;box-shadow:0 0 8px #B33A25;pointer-events:none}
.band-arrow{position:absolute;left:50%;top:3px;width:0;height:0;margin-left:-6px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #B33A25;pointer-events:none}

.now{border-radius:10px;background:#0A0A0F;box-shadow:inset 0 0 0 2px #FF4FA0,inset 0 0 0 3px #3A3B42,inset 0 4px 10px #000;padding:16px 18px 14px;display:flex;flex-direction:column;gap:10px;min-height:198px;overflow:hidden}
.now-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#9AA0A6}
.now-onair{display:inline-flex;align-items:center;gap:7px;padding:4px 9px 3px;border-radius:4px;background:#FF4FA0;color:#0A0A0F;font-size:12px;letter-spacing:.18em;white-space:nowrap;box-shadow:0 0 12px rgba(255,79,160,.55);animation:onair-pulse 2.4s ease-in-out infinite}
.now-onair .dot{width:8px;height:8px;background:#0A0A0F;box-shadow:none;animation-duration:1.2s}
.now-live{display:flex;align-items:center;gap:6px;color:#FF4FA0;white-space:nowrap}
.now-note{margin-top:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:rgba(230,232,235,.55);line-height:1.3}
@keyframes onair-pulse{0%,100%{box-shadow:0 0 12px rgba(255,79,160,.55)}50%{box-shadow:0 0 20px rgba(255,79,160,.95)}}
.now-artist{font-size:22px;letter-spacing:.06em;line-height:1.05;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.now-title{font-family:'GT America',sans-serif;font-weight:400;font-size:17px;letter-spacing:0.05em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:-4px}
.now-foot{margin-top:auto}
.now-bar{height:6px;border-radius:3px;background:#2A2440;overflow:hidden}
.now-bar-fill{height:100%;background:#FFB347;box-shadow:0 0 8px #FFB347;transition:width 1s linear}
.now-time{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em}
.now-count{font-size:14px}
.now-dur{color:#9AA0A6;text-shadow:none}
.now-load{padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;color:var(--cyan);cursor:pointer;text-shadow:0 0 8px rgba(34,211,238,.7);white-space:nowrap}

.lamp{display:flex;align-items:center;gap:7px}
.dot{width:10px;height:10px;flex:none;border-radius:50%}
.dot-power{background:#5FE38A;box-shadow:0 0 8px #5FE38A}
.dot-stereo{background:#22D3EE;box-shadow:0 0 8px #22D3EE;animation:blink2 2.6s steps(1,end) infinite}
.dot-signal{background:#FF4FA0;box-shadow:0 0 8px #FF4FA0;animation:blip 1.1s steps(1,end) infinite}
.dot-tape{background:#2A2440}
.dot-tape.is-on{background:#5FE38A;box-shadow:0 0 8px #5FE38A}

/* ===================== new releases ===================== */
.releases-section{padding-top:90px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.sec-head-left{display:flex;align-items:center;gap:26px}
.sec-title{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:64px;line-height:.9;letter-spacing:-0.02em;text-transform:uppercase;color:var(--ink)}
.sec-title-pink{text-shadow:3px 3px 0 #FF3D8A}
.sec-title-cyan{text-shadow:3px 3px 0 #22D3EE}
.sec-tape{width:180px;transform:rotate(10deg);margin-top:-24px;filter:drop-shadow(0 12px 14px rgba(0,0,0,.5))}
.sec-chip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;color:var(--ink);border:2px solid var(--ink);padding:8px 16px;background:#F7EEDC}
.sec-chip-pink{box-shadow:3px 3px 0 #FF3D8A}
.sec-chip-cyan{box-shadow:3px 3px 0 #22D3EE}
.dashrule{height:6px;margin-top:18px;border-radius:3px;background:repeating-linear-gradient(90deg,#1E1A1F 0 14px,transparent 14px 22px)}
/* The header line over a dated group: the name, a rule that eats the slack,
   and the count. Shared by the Hub's scene calendar (months) and the Labels
   page's release calendar (weeks). */
.grouphead{display:flex;align-items:center;gap:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.08em;color:#6B6064}
.grouphead-name{color:var(--ink)}
.grouphead-line{flex:1;height:2px;background:#1E1A1F22}
.release-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 28px;margin-top:44px}

/* The tape loads the record and the title links to it, so the card is a box
   holding a button and an anchor rather than being one control itself. The
   lift is the box's, so both halves rise together the way the one card did. */
.cascard{display:block;width:100%;transition:transform .2s}
.cascard-load{display:block;width:100%;cursor:pointer}
.cascard:hover,.cascard:focus-within{transform:translateY(-8px) rotate(0deg) !important}
.cascard:hover .casplay,.cascard-load:focus-visible .casplay{opacity:1}
.cassette{display:block;position:relative;aspect-ratio:1.6/1;border-radius:14px;background:linear-gradient(#302C36,#17151B);box-shadow:0 0 0 2px #0F0D12,7px 7px 0 var(--cas-color,#1E1A22),inset 0 2px 0 #5A5561}
.cas-label{position:absolute;left:20px;right:20px;top:12px;bottom:26%;border-radius:6px;background:#F3EBD9}
.screw{position:absolute;width:6px;height:6px;border-radius:50%;background:#8A8390;box-shadow:inset 0 1px 1px #000}
.screw-tl{left:9px;top:9px}.screw-tr{right:9px;top:9px}.screw-bl{left:9px;bottom:9px}.screw-br{right:9px;bottom:9px}
.cas-head{position:absolute;left:20px;right:20px;top:12px;height:20px;border-radius:3px;background:#1E1A22;display:flex;align-items:center;padding:0 10px;justify-content:space-between}
.cas-type{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:var(--cream)}
.cas-side{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#9B93BF}
.cas-band{position:absolute;left:20px;right:20px}
.cas-band-1{top:38px;height:12px}
.cas-band-2{top:50px;height:8px;background:#22D3EE}
.cas-band-3{top:58px;height:8px;background:#FFD166}
.cas-band-4{top:66px;height:12px;background:#FF3D8A}
.cas-window{position:absolute;left:20px;right:20px;top:36px;bottom:26%;display:flex;align-items:center;justify-content:center}
.cas-window-inner{width:66%;height:44px;border-radius:24px;background:#151219;border:3px solid #2B2730;display:flex;align-items:center;justify-content:space-between;padding:0 8px;position:relative;box-shadow:inset 0 3px 6px #000}
.cas-ribbon{width:40%;height:18px;border-radius:3px;background:linear-gradient(90deg,#E8DFCC 0 45%,#3A2A1E 45% 70%,#E8DFCC 70%);border:1px solid #2B2730}
.cas-window-inner svg{position:relative}
.cas-title{position:absolute;left:20px;right:20px;bottom:26%;height:22px;display:flex;align-items:center;padding:0 10px}
.cas-title span{font-family:'GT America',sans-serif;font-weight:700;font-style:italic;font-size:14px;line-height:1;color:var(--cas-fg,var(--cream));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cas-shell{position:absolute;left:22%;right:22%;bottom:0;height:22%;background:#0F0D12;clip-path:polygon(6% 0,94% 0,100% 100%,0 100%)}
.cas-shell-in{position:absolute;left:0;right:0;top:2px;bottom:0;background:#2B2730;clip-path:polygon(6.6% 0,93.4% 0,99.7% 100%,.3% 100%)}
.cas-hole{position:absolute;border-radius:50%;background:#0F0D12}
.cas-hole-1{left:14%;top:30%;width:8px;height:8px}
.cas-hole-2{left:33%;top:30%;width:6px;height:6px}
.cas-hole-3{left:50%;top:22%;width:9px;height:9px;margin-left:-4px;background:#FF3D8A;border:2px solid #0F0D12}
.cas-hole-4{right:33%;top:30%;width:6px;height:6px}
.cas-hole-5{right:14%;top:30%;width:8px;height:8px}
.casplay{position:absolute;inset:0;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(15,13,34,.78);opacity:0;transition:opacity .18s}
.casplay-btn{width:66px;height:66px;border-radius:50%;background:var(--pink);border:3px solid var(--cream);box-shadow:0 0 26px rgba(255,61,138,.9);display:flex;align-items:center;justify-content:center}
.casplay-tri{width:0;height:0;border-left:20px solid #0F0D22;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:6px}
.cas-burst{position:absolute;right:-20px;bottom:-22px;filter:drop-shadow(0 0 10px rgba(255,61,138,.8))}
/* the title is a link now, so it has to keep taking its colour from the
   paper it is printed on — cream on the dark band, ink on the cream */
.cas-name{display:block;margin-top:20px;font-size:18px;font-weight:400;letter-spacing:-0.01em;color:inherit}
.cas-name:hover{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
/* #6F6468 passes on the ticket's #F7EEDC but only makes 4.46:1 on the #EFE3C8 cream */
.cas-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:4px;text-transform:uppercase}
.cas-meta-who{color:inherit}
.cas-meta-who:hover{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* ===================== dark section ===================== */
.dark-section{background:#1B1440;color:var(--cream);padding:80px 0 80px;position:relative}
.dark-grid{max-width:1440px;margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) minmax(0,1fr);gap:30px;align-items:stretch;position:relative}

.deepcuts{border-radius:150px 150px 28px 28px;background:#120F26;overflow:hidden;padding-top:26px;display:flex;flex-direction:column}
.deepcuts-title{margin:0;text-align:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:24px;text-transform:uppercase;line-height:1.05;text-shadow:0 0 14px rgba(34,211,238,.6)}
.deepcuts-sub{text-align:center;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.13em;color:#9B93BF;margin-top:6px}
.deepcuts-rule{height:3px;margin:16px 40px 6px;background:linear-gradient(90deg,#22D3EE,#8B5CF6,#FF3D8A);box-shadow:0 0 10px rgba(34,211,238,.6)}
.deepcuts-list{padding:6px 12px 6px;flex:1}
.deepcuts-foot{margin:0 12px 14px;padding:12px 16px;border-top:2px dashed #22D3EE44;display:flex;align-items:center;justify-content:space-between;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:var(--cyan);cursor:pointer}
.deepcuts-foot:hover{color:var(--cyan)}
.deepcuts-foot-arrow{font-size:18px;line-height:1}
/* The name is a link and the count is the load control, so the row is a box
   holding both; the wash and the pointer belong to the box. */
.dcrow{display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;padding:11px 16px;border-radius:14px}
.dcrow:hover{background:rgba(255,61,138,.12)}
.dcrow-mid{min-width:0;flex:1;color:inherit;cursor:pointer}
.dcrow-mid:hover{color:inherit}
.dcrow:hover .dcrow-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.dcrow-plays{cursor:pointer}
.dcrow-plays .dp{display:none}
.dcrow-plays:hover .dn,.dcrow-plays:focus-visible .dn{display:none}
.dcrow-plays:hover .dp,.dcrow-plays:focus-visible .dp{display:block}
.dcrow-title{display:block;font-size:16px}
.dcrow-artist{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;color:#9B93BF;letter-spacing:0.07em;margin-top:2px;text-transform:uppercase}
.dcrow-plays{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;color:#0F0D22;background:var(--cyan);letter-spacing:0.04em;flex:none;padding:4px 10px;box-shadow:0 0 10px rgba(34,211,238,.6)}

.midcol{display:flex;flex-direction:column;gap:30px}

.randomcard{position:relative;width:100%;border-radius:28px;background:linear-gradient(160deg,#FF3D8A,#8B1D63 70%,#3A1650);color:var(--cream);padding:30px 28px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;min-height:340px;overflow:hidden}
.randomcard:hover{background:#FF3D8A}
/* Every pink card hangs one object out of its top-right corner. The base rule
   is Discover's tape; each card below swaps the object and its placement. */
.randomcard-art{position:absolute;right:-90px;top:-40px;width:300px;max-width:none;transform:rotate(-22deg);opacity:.9;filter:drop-shadow(0 14px 18px rgba(0,0,0,.5))}
.randomcard-kicker{position:relative;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.08em;color:var(--cream)}
.randomcard-title{position:relative;font-family:'NHaas','Arial Black',sans-serif;font-size:46px;line-height:.92;letter-spacing:-0.01em;text-transform:uppercase;text-shadow:3px 3px 0 #0F0D22;margin-top:110px}
.randomcard-foot{position:relative;display:flex;align-items:center;justify-content:space-between;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.11em;border-top:2px dashed #F3EBD955;padding-top:14px;margin-top:20px}
.randomcard-arrow{font-size:24px;line-height:1}

.onair{position:relative;border-radius:28px;background:linear-gradient(160deg,#8B5CF6,#4C2A8F 60%,#1B1440);color:var(--cream);padding:24px 28px 22px;flex:1;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.onair-glow{position:absolute;right:-40px;bottom:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,61,138,.35),transparent 70%);pointer-events:none}
.onair-kicker{position:relative;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.08em;color:var(--cream)}
.onair-stats{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin-top:22px}
.onair-num{font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:36px;line-height:1;text-shadow:3px 3px 0 #0F0D22}
.onair-lab{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.11em;color:#D9CFF5;margin-top:6px}
.onair-foot{position:relative;display:flex;align-items:center;justify-content:space-between;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.11em;border-top:2px dashed #F3EBD955;padding-top:14px;margin-top:22px}
.onair-arrow{font-size:20px;line-height:1}

.voices{border-radius:28px;background:#120F26;padding:22px 22px 24px;display:flex;flex-direction:column}
.voices-head{display:flex;align-items:center;justify-content:space-between}
.voices-title{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:24px;text-transform:uppercase;line-height:1.05;text-shadow:0 0 14px rgba(139,92,246,.7)}
.voices-tape{width:78px;transform:rotate(-14deg)}
.voices-sub{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.13em;color:#9B93BF;margin-top:4px}
.voices-grid{margin-top:18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.voice{cursor:pointer;display:block;color:inherit}
.voice:hover{color:inherit}
.voice:hover .voice-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.voice-photo{aspect-ratio:1/1.15;border-radius:999px 999px 18px 18px;border:2px solid var(--cream);display:flex;align-items:flex-end;justify-content:center;padding:10px}
.voice-photo span{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#0F0D22AA}
.voice-name{font-size:15px;margin-top:10px;text-align:center}
.voice-role{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#9B93BF;text-align:center;margin-top:2px}
.voices-foot{margin-top:auto;padding-top:16px;border-top:2px dashed #8B5CF644;display:flex;align-items:center;justify-content:space-between;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:#B8AEDA;cursor:pointer}
.voices-foot:hover{color:#B8AEDA}
.voices-foot-arrow{font-size:18px;line-height:1}

/* ===================== the hub ===================== */
.hub-section{padding-top:100px}
.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;margin-top:44px}
.hubcard{cursor:pointer;position:relative;display:block;width:100%;color:inherit}
.hubcard:hover{color:inherit}
.hubcard-img{aspect-ratio:16/11;border:3px solid var(--ink);display:flex;align-items:flex-end;padding:14px}
.hubcard-img-endlabel{justify-content:flex-end}
.hubcard-img span{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#1E1A1F99}
.hubcard-kicker{display:inline-block;margin-top:22px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:var(--cream);padding:5px 12px;border-radius:999px}
.hubtitle{font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:25px;line-height:1.08;margin-top:10px}
.hubcard:hover .hubtitle,.hubcard:focus-visible .hubtitle{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-color:var(--pink)}
.hubcard-dek{font-size:15px;color:#5A5147;margin-top:10px;line-height:1.5}

/* ===================== footer ===================== */
.site-footer{position:relative}
.bar{height:14px}
.bar-1{background:#FF3D8A}.bar-2{background:#FF8A3D}.bar-3{background:#FFD166}.bar-4{background:#22D3EE}.bar-5{background:#8B5CF6}
.footer-body{background:#0A0917;color:var(--cream);padding:34px var(--gutter) 40px;position:relative;overflow:hidden}
.footer-grid{position:absolute;left:0;right:0;bottom:-60px;height:200px;opacity:.35;-webkit-mask-image:linear-gradient(transparent,#000);mask-image:linear-gradient(transparent,#000)}
.footer-row{position:relative;max-width:1440px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;font-family:'GT America',sans-serif;font-weight:400;font-size:14px;letter-spacing:0.1em}
.footer-mark{font-family:'NHaas','Arial Black',sans-serif;font-size:22px;letter-spacing:.01em;text-shadow:2px 2px 0 #FF3D8A,0 0 18px rgba(255,61,138,.6)}
.footer-note{color:#9B93BF}
.footer-links{display:flex;gap:18px}
.footer-links a{color:var(--cream)}
.footer-links a:hover{color:var(--pink)}

/* ===================== docked cassette player ===================== */
/* The dock's box is as wide as the walkman (540px) whether it is open or shut,
   so as an ordinary fixed element it swallowed every tap in the bottom-right
   corner of the viewport — on a phone that is the hero's CTAs. Only the two
   things you can actually see and press take pointer events. */
.dock{position:fixed;right:0;bottom:22px;z-index:60;pointer-events:none}
.pulltab,.wm{pointer-events:auto}
.dock-slide{position:relative;transition:transform .7s cubic-bezier(.2,.9,.25,1.04);transform:translateX(-28px)}
/* Shut, only the pull tab shows: it lives inside the 48px page gutter, so the
   walkman never sits on top of whatever scrolled under the bottom-right corner. */
.dock-slide.is-closed{transform:translateX(541px)}
.dock-slide.is-closed .wm{filter:none}
.dock-slide.is-closed .dock-peek{animation:peek 3.2s ease-in-out infinite}
@keyframes peek{0%,100%{transform:translateX(0)}50%{transform:translateX(-6px)}}

.pulltab{position:absolute;left:-47px;top:96px;width:50px;height:210px;border-radius:14px 0 0 14px;background:linear-gradient(90deg,#FF5C9E,#E0287A);border:2px solid var(--cream);border-right:0;box-shadow:0 0 24px rgba(255,61,138,.9),inset 0 1px 0 rgba(255,255,255,.5);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:5}
.dock-slide.is-closed .pulltab{animation:tabglow 1.6s ease-in-out infinite}
.pulltab-led{width:9px;height:9px;border-radius:50%;background:#FFD166;box-shadow:0 0 8px #FFD166;animation:blip 1.2s steps(1,end) infinite}
.pulltab-led.has-tape{background:#5FE38A;box-shadow:0 0 8px #5FE38A}
.pulltab-label{writing-mode:vertical-rl;transform:rotate(180deg);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.09em;color:#0F0D22;white-space:nowrap}
.pulltab-label-short{display:none;writing-mode:vertical-rl;transform:rotate(180deg);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;letter-spacing:0.08em;color:#0F0D22;white-space:nowrap}
.pulltab-arrow{font-size:14px;color:#0F0D22;line-height:1}
.dock-slide.is-closed .pulltab-arrow{animation:arrowslide 1.2s ease-in-out infinite}

.wm{width:540px;position:relative;filter:drop-shadow(0 30px 34px rgba(10,8,20,.6))}
.wm-wear{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(ellipse at 96% 8%,rgba(230,232,236,.85) 0 3%,transparent 9%),radial-gradient(ellipse at 3% 92%,rgba(230,232,236,.7) 0 2%,transparent 7%),radial-gradient(ellipse at 98% 95%,rgba(230,232,236,.6) 0 3%,transparent 8%),radial-gradient(ellipse at 40% 100%,rgba(0,0,0,.35),transparent 30%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' seed='9'/><feColorMatrix values='0 0 0 0 .05 0 0 0 0 .05 0 0 0 0 .1 0 0 0 .22 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.wm-scratch{position:absolute;inset:0;pointer-events:none;opacity:.35;background-image:linear-gradient(112deg,transparent 0 40%,rgba(255,255,255,.35) 40.2%,transparent 40.6%),linear-gradient(98deg,transparent 0 63%,rgba(255,255,255,.28) 63.1%,transparent 63.4%),linear-gradient(120deg,transparent 0 78%,rgba(255,255,255,.3) 78.15%,transparent 78.5%),linear-gradient(80deg,transparent 0 22%,rgba(255,255,255,.22) 22.1%,transparent 22.35%)}

.wm-rail{position:relative;height:84px;margin:0 22px;z-index:3}
.rail{position:absolute;left:0;right:0;bottom:0;height:42px;border-radius:9px 9px 0 0;background:linear-gradient(#4A4B53 0%,#2B2C32 30%,#1B1C21 100%);border:1px solid #5B5C63;border-bottom:0;box-shadow:inset 0 1px 0 #8A8B92,inset 0 -6px 10px rgba(0,0,0,.55)}
.slot{position:absolute;bottom:6px;height:40px;border-radius:5px 5px 0 0;background:#08080B;box-shadow:inset 0 0 0 1px #000,inset 0 8px 10px #000}
.slot-pause{left:66px;width:82px}
.slot-play{left:164px;width:148px}
.slot-eject{left:330px;width:82px}
/* scoped to the rail: the cassette card has its own, smaller .screw */
.wm-rail .screw{position:absolute;bottom:14px;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#9A9CA4,#3A3B42 70%);box-shadow:0 1px 0 #6E6F76}
.screw-l{left:22px}
.screw-r{right:22px}
.wm-keywrap{position:absolute;bottom:6px;cursor:pointer}
.key-pause{left:70px;width:74px}
.key-play{left:168px;width:140px}
.key-eject{left:334px;width:74px}
.k3{display:block;position:relative;transition:transform .07s}
.k3-sm{height:64px}
.k3-lg{height:72px}
.k3-front{display:flex;align-items:center;justify-content:center;position:absolute;left:0;right:0;border-radius:0 0 5px 5px;transition:height .07s;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.09em}
.k3-sm .k3-front{top:28px;height:36px}
.k3-lg .k3-front{top:32px;height:40px}
.k3-top{display:flex;position:absolute;left:0;right:0;top:0;border-radius:5px 5px 2px 2px;transform:perspective(260px) rotateX(14deg);transform-origin:50% 100%;align-items:center;justify-content:center}
.k3-sm .k3-top{height:30px}
.k3-lg .k3-top{height:34px}
.front-amber{background:linear-gradient(#DDA52E,#B07A16 55%,#8F6612);box-shadow:inset 0 -4px 0 rgba(0,0,0,.35),inset 2px 0 0 rgba(255,255,255,.14),inset -2px 0 0 rgba(0,0,0,.22);color:#3A2A05;text-shadow:0 1px 0 rgba(255,235,180,.35)}
.front-dark{background:linear-gradient(#2A2B31,#141419 55%,#0A0A0D);box-shadow:inset 0 -4px 0 rgba(0,0,0,.6),inset 2px 0 0 rgba(255,255,255,.08),inset -2px 0 0 rgba(0,0,0,.4);color:#D6D7DC;text-shadow:0 -1px 0 #000}
.front-red{background:linear-gradient(#C4374F,#A32A40 55%,#741B2C);box-shadow:inset 0 -4px 0 rgba(0,0,0,.35),inset 2px 0 0 rgba(255,255,255,.14),inset -2px 0 0 rgba(0,0,0,.22);color:#F7E6E8;text-shadow:0 1px 0 rgba(0,0,0,.35)}
.top-amber{background:linear-gradient(170deg,#F8D46F,#E3A72D);box-shadow:inset 0 2px 0 rgba(255,245,200,.7),inset 0 -1px 0 rgba(0,0,0,.25)}
.top-dark{background:linear-gradient(170deg,#3F4048,#1F2027);box-shadow:inset 0 2px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(0,0,0,.6)}
.top-red{background:linear-gradient(170deg,#EA6B7E,#CB3D53);box-shadow:inset 0 2px 0 rgba(255,220,225,.6),inset 0 -1px 0 rgba(0,0,0,.25)}
.wm-keywrap:active .k3{transform:translateY(7px)}
.wm-keywrap:active .k3-sm .k3-front{height:29px !important}
.wm-keywrap:active .k3-lg .k3-front{height:33px !important}

.wm-body{position:relative;border-radius:18px;background:linear-gradient(160deg,#3D77CC 0%,#2A5AAB 38%,#22498F 70%,#2F62B5 100%);box-shadow:0 0 0 3px #C9CDD1,0 0 0 4px #6B7076,inset 0 2px 0 #7FB0F0,inset 0 -6px 14px rgba(0,0,0,.45);overflow:hidden}
.wm-inner{position:relative;z-index:1;padding:16px 18px}
.wm-top{display:flex;align-items:center;gap:14px}
.wm-brand{font-family:'NHaas','Arial Black',sans-serif;font-size:17px;letter-spacing:.06em;color:var(--cream);text-shadow:0 1px 0 #17305F;flex:none}
.wm-led{flex:1;height:34px;border-radius:9px;background:#0A0A0F;border:1px solid #6A6E76;box-shadow:inset 0 3px 10px #000,0 1px 0 #7FB0F0;display:flex;align-items:center;gap:10px;padding:0 12px;overflow:hidden}
.wm-led-icon{width:0;height:0;border-left:9px solid var(--led);border-top:6px solid transparent;border-bottom:6px solid transparent;filter:drop-shadow(0 0 4px var(--led));opacity:.25;flex:none}
.wm-led-icon.is-on{opacity:1}
.wm-led-window{flex:1;overflow:hidden;white-space:nowrap;height:16px;position:relative}
.wm-led-text{display:inline-block;white-space:pre;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.1em;color:var(--led-ink);text-shadow:0 0 6px var(--led),0 0 14px var(--led);animation:marq 16s linear infinite;animation-play-state:paused}
.wm.is-playing .wm-led-text{animation-play-state:running}

.wm-mid{display:flex;gap:16px;margin-top:14px;align-items:stretch}
.wm-face{width:150px;position:relative;overflow:hidden;flex:none}
.face-rays{position:absolute;left:66px;top:-30px;width:170px;height:250px;transform:rotate(38deg);background:repeating-linear-gradient(90deg,#F04E8C 0 11px,transparent 11px 25px);opacity:.95}
.face-sun{position:absolute;left:8px;top:10px;width:84px;height:84px;border-radius:50%;background:linear-gradient(#FFDD6B 0%,#FFB347 48%,#F2664A 100%);box-shadow:0 0 18px rgba(255,180,80,.35)}
.face-sun-bars{position:absolute;left:0;right:0;bottom:0;height:52%;background:repeating-linear-gradient(0deg,#2A5AAB 0 4px,transparent 4px 15px)}
.face-palms{position:absolute;left:16px;top:48px}
.face-word{position:absolute;left:4px;bottom:24px;font-family:'GT America',sans-serif;font-weight:700;font-style:italic;font-size:27px;line-height:1;letter-spacing:-0.01em;color:var(--cream);text-shadow:0 1px 0 #17305F,2px 2px 0 #F04E8C;white-space:nowrap}
.face-sub{position:absolute;left:5px;bottom:6px;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#D9E4F5;white-space:nowrap}

.bay{flex:1;position:relative;height:186px;border-radius:12px;background:#0B0A0F;border:2px solid #6A6E76;box-shadow:inset 0 0 0 4px #1A1A20,inset 0 6px 16px #000,0 1px 0 #7FB0F0;overflow:hidden;perspective:900px}
/* design value #5C5A66 only reached 2.9:1 on the #0B0A0F bay; lifted to 4.6:1 */
.bay-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.15em;color:#7A7885}
.bay-glare{position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.10) 0 34%,transparent 34%);pointer-events:none}
.bay-door{position:absolute;left:0;right:0;top:0;height:186px;border-radius:10px;transform-origin:bottom center;transition:transform .5s cubic-bezier(.3,1,.4,1);transform:rotateX(0deg);box-shadow:inset 0 0 0 5px #9EA3A9,inset 0 1px 0 #E5E8EB,0 8px 14px rgba(0,0,0,.4);padding:5px;pointer-events:none}
.bay-door.is-open{transform:rotateX(-78deg)}
.bay-door-glass{height:100%;border-radius:6px;background:linear-gradient(118deg,rgba(255,255,255,.22) 0 16%,rgba(255,255,255,.05) 16% 28%,rgba(20,16,14,.05) 28% 100%);border:1px solid rgba(140,146,150,.7)}
.bay-autostop{position:absolute;right:12px;bottom:6px;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.13em;color:#9EA3A9}

.tape{position:absolute;inset:12px 16px;border-radius:8px;background:linear-gradient(#26232B,#141217);border:1px solid #3E3A44;box-shadow:0 4px 10px #000;transition:transform .55s cubic-bezier(.2,.9,.3,1.05),opacity .4s;transform:translateY(0) rotateX(0deg)}
.tape.is-inserting{transform:translateY(-190px) rotateX(-32deg)}
.tape.is-ejecting{transform:translateY(-190px) rotateX(-18deg)}
.tape-dot{position:absolute;top:6px;width:4px;height:4px;border-radius:50%;background:#6E6A74}
.tape-dot-l{left:8px}
.tape-dot-r{right:8px}
.tape-label{position:absolute;left:10px;right:10px;top:10px;height:40px;border-radius:4px 4px 2px 2px;background:#F0E6D2;box-shadow:inset 0 -2px 0 #D8CDB6;display:flex;align-items:center;justify-content:center;padding:0 12px;overflow:hidden}
.tape-label span{font-family:'GT America',sans-serif;font-weight:700;font-style:italic;font-size:15px;color:#2A2431;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tape-reels{position:absolute;left:10px;right:10px;top:56px;height:70px;display:flex;align-items:center;justify-content:center;gap:70px}
.tape-ribbon{position:absolute;left:20%;right:20%;top:50%;height:12px;transform:translateY(-50%);background:linear-gradient(#3A2A1E,#6B4A2E);border-radius:2px}
.wm-reel{animation:reel 2.4s linear infinite;animation-play-state:paused}
.wm.is-playing .wm-reel{animation-play-state:running}
.tape-stripe{position:absolute;left:10px;right:10px;bottom:8px;height:14px;border-radius:3px;opacity:.9}

.wm-bottom{margin-top:14px;display:flex;align-items:center;gap:12px}
.progress{flex:1;height:8px;border-radius:4px;background:#0E1424;box-shadow:inset 0 1px 3px #000,0 1px 0 #7FB0F0;position:relative;cursor:pointer;touch-action:none}
.progress::before{content:"";position:absolute;left:0;right:0;top:-10px;bottom:-10px}
.progress-fill{height:100%;width:0%;border-radius:4px;background:linear-gradient(90deg,#F04E8C,#FFB347);transition:width .5s linear}
.timecode{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.05em;color:var(--led);text-shadow:0 0 6px var(--led);background:#0A0A0F;border-radius:6px;padding:3px 9px;border:1px solid #6A6E76}
.timecode-dur{color:#807C86;text-shadow:none} /* design #7A7680 was 4.45:1, just under */
.trackno{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#D9E4F5}
.vol{display:flex;align-items:center;gap:6px;margin-left:6px}
.vol-label{font-family:'GT America',sans-serif;font-weight:400;font-size:10px;letter-spacing:0.1em;color:#D9E4F5}
.vol-track{width:70px;height:6px;border-radius:3px;background:#0E1424;box-shadow:inset 0 1px 3px #000;position:relative;cursor:ew-resize;touch-action:none}
.vol-knob{position:absolute;left:60%;top:-4px;width:10px;height:14px;border-radius:2px;background:linear-gradient(#E9ECEE,#9BA0A3);border:1px solid #4E5157;transform:translateX(-50%);pointer-events:none}

/* ===========================================================
   RADIO PAGE
   Everything above is shared with Discover; the rules below are
   only used by radio.html.
   =========================================================== */

/* ---------- hero art: no road, one big sun and three discs ---------- */
.sun-radio{left:760px;top:-40px;width:340px;height:340px}
.disc{position:absolute;border-radius:50%}
.disc-warm{left:1000px;top:120px;width:120px;height:120px;background:linear-gradient(#FFE27A,#FF8A3D 60%,#FF3D8A);opacity:.9;box-shadow:0 0 40px rgba(255,120,150,.4)}
.disc-cyan{left:880px;top:330px;width:60px;height:60px;background:#22D3EE;opacity:.85;box-shadow:0 0 30px rgba(34,211,238,.6)}
.disc-purple{left:1180px;top:60px;width:26px;height:26px;background:#8B5CF6;box-shadow:0 0 20px #8B5CF6}

.hero-main-radio{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
/* no floating tape on this page, so the eyebrow starts at the left edge */
.hero-clock-radio{padding-left:0}
.hero-badge-dot{width:14px;height:14px;border-radius:50%;background:#0F0D22;box-shadow:0 0 0 4px #FF3D8A,0 0 0 6px #0F0D22}

/* ---------- ON AIR NOW ticket ---------- */
.oa-head{display:flex;align-items:center;gap:10px}
.oa-dot{width:12px;height:12px;flex:none;border-radius:50%;background:#B33A25;box-shadow:0 0 10px #B33A25;animation:blip 1.2s steps(1,end) infinite}
.oa-body{padding:22px 30px 18px}
.oa-name{display:block;font-family:'NHaas','Arial Black',sans-serif;font-size:46px;line-height:.95;text-transform:uppercase;color:inherit}
.oa-name:hover{color:inherit;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-color:var(--pink)}
.oa-desc{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.11em;color:#6F6468;margin-top:10px;text-transform:uppercase}
.oa-now{margin-top:22px;display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center}
.oa-play{width:44px;height:44px;border-radius:50%;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.oa-play-tri{width:0;height:0;border-left:14px solid var(--ink);border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:4px}
.oa-now-mid{min-width:0}
.oa-now-title{font-size:18px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oa-now-artist{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.07em;color:#6F6468;margin-top:2px;text-transform:uppercase}
.oa-bar{margin-top:14px;height:8px;border-radius:4px;background:#1E1A1F22;overflow:hidden}
.oa-bar-fill{height:100%;width:0%;transition:width 1s linear}
.oa-time{display:flex;justify-content:space-between;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#6F6468;margin-top:6px}
.oa-next{padding:14px 30px 8px;border-top:3px dashed #1E1A1F33}
.oa-next-label{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468}
.oa-next-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid #1E1A1F14}
.oa-next-mid{min-width:0}
.oa-next-title{font-size:15px}
.oa-next-artist{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:#6F6468;margin-left:10px;text-transform:uppercase}
.oa-next-at{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;color:#6F6468;flex:none}
/* the ON AIR ticket's footer sits straight under the UP NEXT rules */
.oa-ticket .ticket-foot{border-top:0}

/* ---------- stations ---------- */
.stations-section{padding-top:90px}
.stcard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 28px;margin-top:44px}
.stcard{display:flex;flex-direction:column;width:100%;cursor:pointer;border-radius:22px;background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);box-shadow:8px 8px 0 #1E1A1F;overflow:hidden;transition:transform .18s}
.stcard:hover,.stcard:focus-visible{transform:translateY(-6px);color:var(--ink)}
.stcard:hover .stcard-name{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-color:var(--pink)}
.stcard.is-on{box-shadow:8px 8px 0 #FF3D8A}
.stcard-head{position:relative;display:block;height:112px;border-bottom:3px solid var(--ink);overflow:hidden}
.stcard-rings{position:absolute;right:-30px;top:-30px;width:150px;height:150px;border-radius:50%;background:repeating-linear-gradient(0deg,#1E1A1F22 0 4px,transparent 4px 14px)}
.stcard-freq{position:absolute;left:18px;bottom:12px;font-family:'NHaas','Arial Black',sans-serif;font-size:44px;line-height:1;color:var(--cream);text-shadow:3px 3px 0 #1E1A1F}
.stcard-tag{position:absolute;right:14px;top:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;padding:4px 10px;background:#F7EEDC;color:var(--ink);border:2px solid var(--ink)}
.stcard.is-on .stcard-tag{background:var(--pink);color:var(--cream)}
.stcard-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.stcard-name{font-family:'NHaas','Arial Black',sans-serif;font-size:22px;line-height:1;text-transform:uppercase}
.stcard-desc{font-size:14px;line-height:1.45;color:#5A5147;margin-top:10px;flex:1}
.stcard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:12px;border-top:2px dashed #1E1A1F33}
.stcard-listeners{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#6F6468}
.stcard-btn{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:6px 12px;background:#F7EEDC;color:var(--ink);border:2px solid var(--ink);flex:none}
.stcard.is-on .stcard-btn{background:var(--ink);color:var(--cream)}

/* "propose a station" — the pink card at card size, with a skateboard */
.card-propose{border-radius:22px;padding:24px 22px;min-height:300px}
.card-propose .randomcard-art{right:-40px;top:-40px;width:190px;transform:rotate(12deg);opacity:.95}
.card-propose .randomcard-kicker{font-size:14px}
.card-propose .randomcard-title{font-size:34px;line-height:.95;letter-spacing:normal;margin-top:70px}
.card-propose .randomcard-foot{font-size:12px;padding-top:12px;margin-top:18px}
.card-propose .randomcard-arrow{font-size:20px}

/* ---------- tonight's schedule ---------- */
.dark-inner{max-width:1440px;margin:0 auto;padding:0 var(--gutter);position:relative}
.sec-title-light{color:var(--cream)}
.sched-chip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;color:var(--cyan);border:2px solid var(--cyan);padding:8px 16px;background:#120F26;box-shadow:0 0 12px rgba(34,211,238,.4)}
.neonrule{height:3px;margin-top:18px;background:linear-gradient(90deg,#22D3EE,#8B5CF6,#FF3D8A);box-shadow:0 0 12px rgba(139,92,246,.7)}
.sched-grid,.series-grid,.pair-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:30px;align-items:stretch;margin-top:40px}
.sched-card{border-radius:28px;background:#120F26;padding:10px 12px 12px;display:flex;flex-direction:column}
.sched-row{display:grid;grid-template-columns:96px 1fr auto;gap:18px;align-items:center;padding:16px 18px;border-radius:16px;border:2px solid #2A2440;margin-top:6px}
.sched-row.is-now{background:rgba(255,61,138,.14);border-color:var(--pink)}
.sched-time{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:20px;letter-spacing:0.04em;color:var(--cyan)}
.sched-row.is-now .sched-time{color:var(--pink)}
.sched-mid{min-width:0}
.sched-show{font-family:'NHaas','Arial Black',sans-serif;font-size:19px;line-height:1.05}
.sched-host{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#9B93BF;margin-top:4px;text-transform:uppercase}
.sched-link{color:inherit}
.sched-link:hover{color:var(--cream);text-decoration:underline;text-underline-offset:3px}
.sched-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;padding:5px 10px;background:transparent;color:#9B93BF;border:2px solid #5B4E8A}
.sched-row.is-now .sched-tag{background:var(--pink);color:var(--cream);border-color:var(--pink)}
.sched-foot{margin:auto 6px 4px;padding:14px 12px 6px;border-top:2px dashed #22D3EE44;display:flex;align-items:center;justify-content:space-between;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:var(--cyan);cursor:pointer}
.sched-foot:hover{color:var(--cyan)}
.sched-foot-arrow{font-size:18px;line-height:1}

.sched-right{display:flex;flex-direction:column;gap:30px}
.card-dedication,.card-submit,.card-voice{min-height:300px}
.card-dedication .randomcard-title,.card-submit .randomcard-title,.card-voice .randomcard-title{margin-top:90px}
/* dedication (radio) wears the sunglasses, submit-a-release (releases) the VHS,
   send-us-your-voice (artists) the skateboard */
.card-dedication .randomcard-art{right:-70px;top:-14px;width:330px;transform:rotate(-14deg);opacity:.95}
.card-submit .randomcard-art{right:-110px;top:-60px;width:340px;transform:rotate(-16deg);opacity:.95}
.card-voice .randomcard-art{right:-50px;top:-56px;width:250px;transform:rotate(12deg);opacity:.95}

.recent{border-radius:28px;background:#120F26;padding:22px 22px 12px;flex:1;display:flex;flex-direction:column}
.recent-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.recent-title{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:24px;text-transform:uppercase;line-height:1.05;text-shadow:0 0 14px rgba(139,92,246,.7)}
.recent-station{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.11em;color:#9B93BF}
.recent-list{margin-top:10px}
.recent-row{display:grid;width:100%;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:10px 12px;cursor:pointer;border-radius:12px}
.recent-at{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.04em;color:#9B93BF}
.recent-mid{min-width:0}
.recent-track{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent-artist{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:#9B93BF;margin-top:2px;text-transform:uppercase}
.recent-load{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:var(--cyan)}
.rowhover:hover{background:rgba(255,61,138,.12)}

/* ---------- resident hosts ---------- */
.hosts-section{padding-top:100px}
.hosts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px;margin-top:44px}
.host{cursor:pointer;display:block;color:inherit}
.host:hover{color:inherit}
.host:hover .host-name{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-color:var(--pink)}
.host-photo{aspect-ratio:1/1.15;border-radius:999px 999px 24px 24px;border:3px solid var(--ink);display:flex;align-items:flex-end;justify-content:center;padding:12px}
.host-photo span{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#1E1A1F99}
.host-show{display:inline-block;margin-top:22px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:var(--cream);padding:5px 12px}
.host-name{font-family:'NHaas','Arial Black',sans-serif;font-size:25px;line-height:1.08;margin-top:10px}
.host-bio{font-size:15px;color:#5A5147;margin-top:8px;line-height:1.5}

/* ===========================================================
   RELEASES PAGE
   The hero art, the cream body and the cassette card are shared;
   the rules below are only used by releases.html.
   =========================================================== */

/* ---------- hero: the tape sits beside the lede ---------- */
.hero-lede-tape{width:110px;flex:none;transform:rotate(-12deg);filter:drop-shadow(0 12px 14px rgba(0,0,0,.5));margin-top:-14px}

/* ---------- the cover: a sleeve with a record behind it ----------
   Used by the featured release and by every catalogue card. On hover the
   sleeve lifts up-left, the record slides out to the right and turns, and
   the play overlay fades in. */
.cover{position:relative;display:block;width:100%;cursor:pointer;text-align:left;color:inherit}
.cover:hover{color:inherit}
.cover .sleeve{display:block;position:relative;z-index:1;aspect-ratio:1/1;border-radius:10px;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);overflow:hidden;transition:transform .35s cubic-bezier(.2,.9,.3,1.1)}
.cover .vinyl{position:absolute;left:5%;top:5%;width:90%;aspect-ratio:1/1;border-radius:50%;z-index:0;transition:transform .45s cubic-bezier(.2,.9,.3,1.1);background:repeating-radial-gradient(circle at 50% 50%,#141216 0 2px,#221F26 2px 4px),#141216;box-shadow:0 8px 18px rgba(0,0,0,.45)}
.cover .vinyl::after{content:'';position:absolute;left:50%;top:50%;width:8%;height:8%;margin:-4% 0 0 -4%;border-radius:50%;background:#EFE3C8;box-shadow:0 0 0 2px #0F0D12}
/* the sleeve is the load control and the title is a link, so the two live
   side by side in the card and the sleeve's lift follows either one */
/* deliberately not positioned: the vinyl behind the sleeve is placed in
   percentages of the whole card, and giving it a nearer ancestor would move it */
.cover-btn{display:block;width:100%;cursor:pointer}
.cover:hover .sleeve,.cover-btn:focus-visible .sleeve{transform:translate(-6px,-6px)}
.cover:hover .vinyl,.cover-btn:focus-visible .vinyl{transform:translateX(34%) rotate(25deg)}
.cover:hover .coverplay,.cover-btn:focus-visible .coverplay{opacity:1}
.cover-name{color:inherit}
.cover-name:hover{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.cover-who{color:inherit}
.cover-who:hover{color:inherit;text-decoration:underline;text-underline-offset:3px}
.vinyl-label{position:absolute;left:50%;top:50%;width:34%;height:34%;margin:-17% 0 0 -17%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#0F0D12}
.sleeve-cat{position:absolute;left:12px;top:12px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:var(--cream);text-shadow:0 1px 0 #0F0D12}
.sleeve-type{position:absolute;right:12px;top:12px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;color:var(--cream);background:#0F0D12;padding:3px 8px;border-radius:999px}
.sleeve-title{position:absolute;left:12px;right:12px;bottom:12px;font-family:'NHaas',sans-serif;font-size:26px;line-height:.95;color:var(--cream);text-shadow:2px 2px 0 #0F0D12;text-transform:uppercase}
.coverplay{position:absolute;inset:0;background:rgba(15,13,18,.55);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .18s}
.coverplay-btn{width:58px;height:58px;border-radius:50%;background:var(--cream);border:3px solid #0F0D12;display:flex;align-items:center;justify-content:center}
.coverplay-tri{width:0;height:0;border-left:18px solid #0F0D12;border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px}
.cover-burst{position:absolute;right:-18px;bottom:-18px;filter:drop-shadow(0 0 10px rgba(255,61,138,.8))}

/* ---------- release of the week ticket ---------- */
.feature-body{padding:22px 30px 12px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;align-items:center}
.cover-feature{width:150px}
.feature-sleeve{background:repeating-linear-gradient(135deg,#0F0D1222 0 6px,transparent 6px 16px),linear-gradient(160deg,#FF3D8A,#8B1D63)}
.cover-feature .sleeve-cat{left:10px;top:10px}
.cover-feature .sleeve-title{left:10px;right:10px;bottom:10px;font-size:20px}
.cover-feature .coverplay-btn{width:50px;height:50px;border:0}
.cover-feature .coverplay-tri{border-left-width:16px;border-top-width:10px;border-bottom-width:10px}
.feature-mid{min-width:0}
.feature-title{display:block;font-family:'NHaas','Arial Black',sans-serif;font-size:30px;line-height:1;text-transform:uppercase;text-shadow:3px 3px 0 #FF3D8A;color:inherit}
.feature-title:hover{color:inherit;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-color:var(--pink)}
.feature-who,.soon-who{color:inherit}
.feature-who:hover,.soon-who:hover{color:inherit;text-decoration:underline;text-underline-offset:3px}
.feature-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.11em;color:#6F6468;margin-top:8px;text-transform:uppercase}
.feature-blurb{margin:10px 0 0;font-size:14px;line-height:1.5;color:#5A5147}
.feature-tags{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.feature-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:5px 10px;border:2px solid var(--ink);color:var(--ink)}
.feature-tag-solid{padding:5px 10px;border:0;background:var(--pink);color:var(--cream)}
.feature-tracks{padding:4px 14px;border-top:3px dashed #1E1A1F33;margin-top:8px}
.feature-tracks .trackrow{padding:8px 14px}
.feature-tracks .trackrow-num{background:var(--pink)}
.feature-tracks .trackrow-title{font-size:15px}
.feature-tracks .trackrow-dur{font-size:13px;letter-spacing:.06em}
.feature-foot{padding:12px 30px 16px;display:flex;justify-content:space-between;gap:12px;line-height:normal}
.feature-foot-cta{color:var(--ink);font-weight:700}

/* ---------- catalogue: sticky filter rail + results ---------- */
.cat-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:34px;margin-top:34px;align-items:start}
.cat-side{border-radius:22px;background:#F7EEDC;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);padding:20px 20px 22px;position:sticky;top:24px}
.cat-search{display:flex;align-items:center;gap:10px;border:2px solid var(--ink);border-radius:999px;background:#EFE3C8;padding:10px 14px}
.cat-search:focus-within{outline:3px solid var(--cyan);outline-offset:3px}
.cat-search-dot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--pink)}
.cat-search input{border:0;outline:0;background:transparent;font-family:'GT America',sans-serif;font-size:15px;color:var(--ink);width:100%;min-width:0}
.cat-search input::placeholder{color:#8A7F72}
.cat-group{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#5E5458;margin-top:22px}
.cat-group-first{margin-top:22px}
/* Every chip row is a two-column grid so the rail's width is used edge to
   edge; the ALL chip of a group spans both columns. Chips are hard-shadowed
   tiles: they lift on hover and sit down (shorter shadow) when they are on. */
.cat-chips{display:grid;grid-template-columns:1fr 1fr;gap:9px 8px;margin-top:10px;position:relative}
.cat-chips .chip[data-value="ALL"]{grid-column:1/-1}
/* --chip is the group's accent: ink everywhere except the mood row, where each
   chip is outlined — and, when it is the one in force, filled — in its own
   station colour. */
.chip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;line-height:1.1;padding:9px 12px;min-height:38px;display:inline-flex;align-items:center;justify-content:center;text-align:center;border:2px solid var(--chip,var(--ink));background:#FBF5E8;color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 var(--ink);transition:background .15s,color .15s,transform .15s,box-shadow .15s}
.chip:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.chip.is-on{background:var(--chip,var(--ink));color:var(--cream);transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}
.chip:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
/* GENRE is a tree, not a flat row: an ALL chip, then one block per family. The
   family chip carries the family's colour as a dot and an outline; its
   subgenres sit indented under a 2px rule in the same colour. --fam is set on
   the block and feeds --chip, so the shared .chip rules do the filling. */
.cat-genre{display:block;position:relative}
.genre-allrow{margin-top:10px}
.chip-genre-all{display:flex;width:100%}
.genre-fam{margin-top:9px;--chip:var(--fam)}
/* The family pill is always filled in its own colour; picking it adds a hard
   ink shadow and turns the caret up. --fam-ink (ink or cream) is chosen per
   family by how light the colour is. */
.chip-fam{width:100%;padding:9px 12px 9px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--fam);border-color:var(--ink);color:var(--fam-ink,var(--ink))}
.chip-fam.is-on{background:var(--fam);color:var(--fam-ink,var(--ink));border-color:var(--ink);box-shadow:inset 0 0 0 2px var(--cream),2px 2px 0 var(--ink)}
.chip-fam.is-on:hover{box-shadow:inset 0 0 0 2px var(--cream),4px 4px 0 var(--ink)}
.chip-fam-caret{font-size:12px;line-height:1;transition:transform .3s}
.chip-fam[aria-expanded="true"] .chip-fam-caret{transform:rotate(180deg)}
/* The subgenre drawer: shut until the family is picked, then slides open. */
.genre-subs-wrap{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .35s cubic-bezier(.2,.9,.25,1.04),visibility 0s .35s}
.genre-subs-wrap.is-open{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .35s cubic-bezier(.2,.9,.25,1.04),visibility 0s}
.genre-subs-clip{overflow:hidden;min-height:0}
.genre-subs{display:grid;grid-template-columns:1fr 1fr;gap:9px 8px;margin:0 0 0 8px;padding:11px 4px 6px 12px;border-left:3px solid var(--fam);position:relative}
.chip-sub{font-size:13px;padding:8px 10px;min-height:36px}
.chip-sub.is-on{color:var(--fam-ink,var(--cream))}
/* hidden chips must leave the tab order, and these set display themselves */
.chip[hidden],.genre-fam[hidden]{display:none!important}
.cat-foot{margin-top:22px;padding-top:16px;border-top:2px dashed #1E1A1F33;display:flex;align-items:center;justify-content:space-between;gap:10px}
.cat-active{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.1em;color:#6F6468}
.cat-clear{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:8px 14px;border:2px solid var(--ink);background:var(--ink);color:var(--cream);cursor:pointer;box-shadow:3px 3px 0 var(--pink);transition:transform .15s,box-shadow .15s,background .15s}
.cat-clear:hover{background:var(--pink);box-shadow:3px 3px 0 var(--ink);transform:translate(-1px,-1px)}

.cat-results{min-width:0}
.cat-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.cat-count{font-family:'NHaas',sans-serif;font-size:22px;line-height:1}
/* #6F6468 is the design value but only makes 4.46:1 on the #EFE3C8 cream */
.cat-count-label{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.11em;color:#6B6064}
.cat-sort{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cat-sort-label{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-right:4px}
.cat-sort-pills{display:flex;gap:6px;flex-wrap:wrap}
.sortpill{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:7px 12px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer}
.sortpill:hover,.sortpill.is-on{background:var(--ink);color:var(--cream)}
.cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 28px;margin-top:26px;position:relative}
/* A leaving card or chip is left behind as an absolutely placed ghost for the
   length of its fade; the real nodes have already moved to their new slots. */
.cat-ghost{position:absolute!important;margin:0!important;pointer-events:none;z-index:0;grid-column:auto!important}
.cat-count-n{display:inline-block}
.cat-count-n.is-tick{animation:counttick .32s cubic-bezier(.2,.9,.25,1.04)}
@keyframes counttick{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
.cat-empty.is-in{animation:emptyin .4s cubic-bezier(.2,.9,.25,1.04)}
@keyframes emptyin{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.cover-info{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:18px}
.cover-info-mid{min-width:0}
.cover-name{display:block;font-size:17px;letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cover-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:4px;text-transform:uppercase}
.cover-mood{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;padding:4px 9px;border:2px solid var(--ink);color:var(--ink);flex:none;margin-top:2px}
/* the artist line, the facts row and the genre pill only appear on the phone's
   stacked card, where there is room under the sleeve for them */
.cover-artist,.cover-more{display:none}
.cover-facts{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#6B6064}
.cover-more-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.cover-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;padding:4px 9px;border:2px solid var(--ink);color:var(--ink)}
.cover-load{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:var(--ink);flex:none}
.cat-empty{border-radius:22px;border:3px dashed #1E1A1F55;padding:60px 30px;text-align:center;margin-top:26px}
.cat-empty-title{font-family:'NHaas',sans-serif;font-size:28px;text-transform:uppercase}
.cat-empty-sub{font-size:15px;color:#5A5147;margin-top:8px}
.cat-more{display:flex;justify-content:center;margin-top:44px}
.cat-more-btn{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.07em;color:var(--ink);border:3px solid var(--ink);padding:14px 30px;background:#F7EEDC;box-shadow:5px 5px 0 var(--pink);cursor:pointer}
.cat-more-btn:hover{background:#FFD166}

/* ---------- label series ---------- */
.series-card{border-radius:28px;background:#120F26;padding:22px 22px 14px;display:flex;flex-direction:column}
.series-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.series-title{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:24px;text-transform:uppercase;line-height:1.05;text-shadow:0 0 14px rgba(34,211,238,.6)}
.series-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.11em;color:#9B93BF}
.series-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.series-row{display:flex;width:100%;cursor:pointer;border-radius:18px;border:2px solid #2A2440;background:transparent;padding:16px 18px;gap:14px;align-items:center}
.series-row:hover,.series-row:focus-visible{border-color:var(--cyan)}
.series-no{width:56px;height:56px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:20px;color:#0F0D22;box-shadow:3px 3px 0 #0F0D22}
.series-row-mid{min-width:0}
.series-row-title{display:block;font-family:'NHaas','Arial Black',sans-serif;font-size:17px;line-height:1.05}
.series-row-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#9B93BF;margin-top:4px;text-transform:uppercase}
.series-copy{margin:22px 4px 0;font-size:15px;line-height:1.55;color:#B8AEDA;max-width:560px}
.series-stats{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}
.series-stat{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:8px 14px}
.series-stat-cyan{background:var(--cyan);color:#0F0D22}
.series-stat-purple{background:var(--purple);color:var(--cream)}
.series-stat-pink{background:var(--pink);color:var(--cream)}
.series-stat-ghost{border:2px solid #5B4E8A;color:#B8AEDA}
.series-foot{margin:auto 0 0;padding:14px 4px 4px;border-top:2px dashed #22D3EE44;display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:var(--cyan);cursor:pointer}
.series-foot:hover{color:var(--cyan)}
.series-foot-arrow{font-size:18px;line-height:1}

.series-right{display:flex;flex-direction:column;gap:30px}

/* most loaded — the Radio page's "recently played" card with a rank column */
.loaded-row{display:grid;width:100%;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:10px 12px;cursor:pointer;border-radius:12px}
.loaded-rank{font-family:'NHaas',sans-serif;font-size:18px;color:var(--purple)}
.loaded-loads{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;color:var(--cyan)}

/* ---------- coming soon ---------- */
.soon-section{padding-top:100px}
.soon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px;margin-top:44px}
/* --soon is the release's own colour: the card's hard shadow, the date pill
   and the placeholder artwork are all tinted with it. */
.sooncard{border-radius:22px;background:#F7EEDC;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--soon,var(--ink));padding:22px 22px 20px;display:flex;flex-direction:column;gap:14px}
.sooncard-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sooncard-date{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;padding:5px 12px;background:var(--soon);color:var(--ink);border:2px solid var(--ink)}
.sooncard-type{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.11em;color:#6F6468}
.sooncard-art{height:120px;border-radius:14px;border:2px solid var(--ink);display:flex;align-items:flex-end;padding:10px;background:repeating-linear-gradient(135deg,#1E1A1F14 0 3px,transparent 3px 8px),var(--soon)}
.sooncard-art span{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#1E1A1F99}
.sooncard-title:hover{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.sooncard-title{display:block;color:inherit;font-family:'NHaas','Arial Black',sans-serif;font-size:22px;line-height:1.05}
.sooncard-artist{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6F6468;margin-top:-6px;text-transform:uppercase}
.sooncard-btn{display:block;width:100%;margin-top:auto;text-align:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;padding:10px 14px;background:var(--ink);color:var(--cream);cursor:pointer}
.sooncard-btn:hover{background:var(--pink)}

/* ===========================================================
   ARTISTS PAGE
   The hero shell, the cream body, the dark section's cards and
   the hub card are shared; the rules below are only used by
   artists.html.
   =========================================================== */

/* ---------- hero: a microphone in the pink badge ---------- */
.hero-badge-mic{width:18px;height:26px;border-radius:9px 9px 3px 3px;background:#0F0D22}

/* ---------- the arch: an artist portrait in a tombstone frame ----------
   Used by the artist of the month and by every roster card. On hover the
   whole card lifts, the arch tilts and the play overlay fades in. The fill
   and the hard shadow are the artist's own colours, set inline. */
.acard{display:block;width:100%;cursor:pointer;text-align:left;color:inherit;transition:transform .2s}
.acard:hover{color:inherit}
.acard:hover,.acard:focus-within{transform:translateY(-6px)}
/* the arch loads their track, the name links to their page */
.acard-load{display:block;width:100%;cursor:pointer}
.arch{display:block;position:relative;aspect-ratio:1/1;max-width:100%;border-radius:999px 999px 20px 20px;border:3px solid var(--ink);overflow:hidden;transition:transform .35s cubic-bezier(.2,.9,.3,1.1)}
.acard:hover .arch,.acard-load:focus-visible .arch,.acard:focus-visible .arch{transform:rotate(-3deg)}
.arch-form{position:absolute;left:50%;top:18px;transform:translateX(-50%);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;padding:4px 10px;background:var(--ink);color:var(--cream);white-space:nowrap}
.arch-cap{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);text-align:center;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;padding:4px 10px;border-radius:999px;background:rgba(15,13,18,.82);color:#F3EBD9;white-space:nowrap}
.aplay{position:absolute;inset:0;background:rgba(15,13,18,.5);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .18s}
.acard:hover .aplay,.acard-load:focus-visible .aplay,.acard:focus-visible .aplay{opacity:1}
.aplay-btn{width:58px;height:58px;border-radius:50%;background:var(--cream);border:3px solid #0F0D12;display:flex;align-items:center;justify-content:center}
.aplay-tri{width:0;height:0;border-left:18px solid #0F0D12;border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px}

/* ---------- artist of the month ticket ---------- */
.acard-feature{width:150px}
.arch-feature{aspect-ratio:1/1.15;border-radius:999px 999px 18px 18px;background:repeating-linear-gradient(135deg,#1E1A1F14 0 3px,transparent 3px 8px),linear-gradient(#FF8A3D,#FF3D8A);box-shadow:6px 6px 0 var(--ink)}
.arch-feature .arch-cap{bottom:10px}
.arch-feature .aplay-btn{width:50px;height:50px;border:0}
.arch-feature .aplay-tri{border-left-width:16px;border-top-width:10px;border-bottom-width:10px}
/* the artists page's ticket is Volkov Unit's: purple arch, purple hard-shadow
   title, purple mood pill and purple number discs */
.feature-ticket-artist .arch-feature{background:repeating-linear-gradient(135deg,#1E1A1F14 0 3px,transparent 3px 8px),linear-gradient(#8B5CF6,#3B2A8F)}
.feature-ticket-artist .feature-title{text-shadow:3px 3px 0 var(--purple)}
.feature-tag-dreams{padding:5px 10px;border:0;background:var(--purple);color:var(--cream)}
/* this ticket's track rows carry a second line */
.feature-tracks-artist .trackrow-num{background:var(--purple)}
.feature-tracks-artist .trackrow-artist{font-size:12px}

/* ---------- roster toolbar ---------- */
.rost-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:28px}
.rost-bar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rost-search{display:flex;align-items:center;gap:10px;border:2px solid var(--ink);border-radius:999px;background:#F7EEDC;padding:9px 14px;width:280px;max-width:100%}
.rost-search:focus-within{outline:3px solid var(--cyan);outline-offset:3px}
.rost-search-dot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--pink)}
.rost-search input{border:0;outline:0;background:transparent;font-family:'GT America',sans-serif;font-size:15px;color:var(--ink);width:100%;min-width:0}
.rost-search input::placeholder{color:#8A7F72}
.rost-chips{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.chip-rost{padding:8px 14px}
.rost-sort{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
/* #6F6468 is the design value but only makes 4.46:1 on the #EFE3C8 cream */
.rost-sort-label{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-right:4px}
.rost-sort-pills{display:flex;gap:6px;flex-wrap:wrap}
/* the FORMATION / LABEL row labels; LABEL gets its own row under the toolbar */
.rost-filter-label{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-left:6px}
.rost-bar-2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}

/* ---------- roster grid ---------- */
/* align-items:start because a <button> centres its content box vertically, so a
   card with a shorter bio would otherwise float down its stretched grid row */
.rost-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 28px;margin-top:34px;align-items:start}
.acard-info{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:20px}
.acard-info-mid{min-width:0}
.acard-name{display:block;font-family:'NHaas','Arial Black',sans-serif;font-size:22px;line-height:1.05;color:inherit}
.acard-name:hover{color:inherit;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-color:var(--pink)}
.acard-label,.pairrow-name,.pairrow-label,a.feature-tag{color:inherit}
.acard-label:hover,.pairrow-name:hover,.pairrow-label:hover,a.feature-tag:hover{color:inherit;text-decoration:underline;text-underline-offset:3px}
.acard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:6px;text-transform:uppercase}
.acard-mood{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;padding:4px 9px;border:2px solid var(--ink);color:var(--ink);flex:none;margin-top:4px}
/* the people behind the project: the word MEMBERS stays grey, the names are ink */
.acard-members{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:var(--ink);margin-top:8px;text-transform:uppercase}
.acard-members-lbl{color:#6B6064}
.acard-bio{display:block;font-size:14px;line-height:1.5;color:#5A5147;margin-top:6px}
.acard-stats{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:8px}

/* ---------- artist × artist ---------- */
.pair-list{margin-top:10px}
.pairrow{display:grid;width:100%;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;cursor:pointer;border-radius:14px}
.pairrow-side{min-width:0}
.pairrow-name{display:block;font-family:'NHaas',sans-serif;font-size:17px;line-height:1.05}
.pairrow-label{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#9B93BF;margin-top:3px}
.pairrow-x{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:16px;color:#0F0D22;box-shadow:2px 2px 0 #0F0D22}
.pairrow-end{min-width:0;text-align:right;cursor:pointer}
.pairrow-track{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pairrow-load{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:var(--cyan);margin-top:3px}

/* ---------- live dates ---------- */
.daterow{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;cursor:pointer;border-radius:12px}
.daterow-date{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.04em;color:var(--purple);line-height:1.2;white-space:pre-line}
.daterow-mid{min-width:0}
.daterow-who{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.daterow-venue{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:#9B93BF;margin-top:2px;text-transform:uppercase}
.daterow-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;padding:4px 9px;border:2px solid var(--purple);flex:none;white-space:nowrap}

/* ===========================================================
   THE HUB PAGE
   The hero, the cream body, the wave and the pink card are
   shared; the rules below are only used by hub.html.
   =========================================================== */

/* ---------- hero: the issue number sits in the badge ---------- */
.hero-badge-issue{background:var(--cyan)}
.hero-badge-num{font-family:'NHaas','Arial Black',sans-serif;font-size:26px;color:#0F0D22;line-height:1}

/* ---------- cover story ticket ---------- */
.cs-title{display:flex;align-items:center;gap:10px}
.cs-dot{width:12px;height:12px;flex:none;border-radius:50%;background:#B33A25;box-shadow:0 0 10px #B33A25}
.cs-body{padding:22px 30px 18px}
.cs-img{aspect-ratio:16/9;border-radius:28px 100px 28px 28px;border:3px solid var(--ink);background:repeating-linear-gradient(90deg,#1E1A1F14 0 2px,transparent 2px 7px),linear-gradient(160deg,#F2A93B,#E8508B 60%,#8B5CF6);display:flex;align-items:flex-end;padding:14px;box-shadow:8px 8px 0 #2F5FA6}
.cs-img span{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#1E1A1F99}
.cs-kicker{display:inline-block;margin-top:24px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:var(--cream);background:#2F5FA6;padding:5px 12px}
.cs-story{font-family:'NHaas','Arial Black',sans-serif;font-size:30px;line-height:1.02;margin-top:12px;text-transform:uppercase}
.cs-dek{font-size:15px;color:#5A5147;margin-top:10px;line-height:1.5}
.cs-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:700;letter-spacing:.14em;line-height:normal}
.cs-read{color:#B33A25}

/* ---------- latest pages ---------- */
.hubchips{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.hubchip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:9px 16px;cursor:pointer;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);box-shadow:3px 3px 0 #1E1A1F;transition:transform .15s}
.hubchip:hover{transform:translateY(-2px)}
.hubchip.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
/* a chip that names a colour-coded status wears the colour as a dot */
.hubchip.dotchip{display:inline-flex;align-items:center;gap:8px}
.hubchip-dot{width:9px;height:9px;flex:none;border-radius:50%}
/* wider row gap than the hub strips on the other pages: these cards carry a
   byline under the dek and need the air */
.hubstory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 34px;margin-top:40px}
.hubstory-grid .hubcard-img{transition:transform .18s}
.hubstory-grid .hubcard:hover .hubcard-img,
.hubstory-grid .hubcard:focus-visible .hubcard-img{transform:translate(-3px,-3px)}
.hubcard-meta{display:flex;align-items:center;gap:10px;margin-top:22px}
.hubcard-meta .hubcard-kicker{margin-top:0}
.hubcard-read{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#6B6064}
.hubcard-by{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6B6064;margin-top:12px;text-transform:uppercase}
.hub-archive{display:flex;justify-content:center;margin-top:48px}
.btn-archive{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;padding:14px 30px;background:var(--cream);color:#0F0D22;border:3px solid #0F0D22;box-shadow:5px 5px 0 var(--pink);cursor:pointer}
.btn-archive:hover{background:#FFD166;color:#0F0D22;box-shadow:5px 5px 0 var(--cyan)}

/* ---------- guest mixes ---------- */
.mix-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.mixcard{position:relative;display:flex;flex-direction:column;gap:12px;width:100%;border-radius:22px;background:#120F26;border:2px solid var(--cyan);padding:22px 22px 18px;cursor:pointer;overflow:hidden;transition:transform .18s}
.mixcard:hover,.mixcard:focus-visible{transform:translateY(-6px)}
.mixcard-art{position:absolute;max-width:none;filter:drop-shadow(0 12px 14px rgba(0,0,0,.5))}
.mixcard-art-tape{right:-80px;top:-26px;width:210px;transform:rotate(-18deg);opacity:.9}
.mixcard-art-vhs{right:-90px;top:-40px;width:250px;transform:rotate(-14deg);opacity:.95}
.mixcard-art-glasses{right:-60px;top:-10px;width:240px;transform:rotate(-12deg);opacity:.95}
.mixcard-art-skate{right:-30px;top:-50px;width:170px;transform:rotate(14deg);opacity:.95}
/* The decorative photo runs under the top row, so the row is lifted over it and
   the duration gets its own dark pill in the card's colour — otherwise the time
   is read against a pair of sunglasses. The pill's negative vertical margin
   keeps the row the height it was, so nothing below it moves. */
.mixcard-head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em}
.mixcard-dur{font-size:12px;letter-spacing:.16em;color:#F7EEDC;background:rgba(15,13,34,.85);border:2px solid var(--mix,var(--cyan));border-radius:999px;padding:4px 10px;margin:-5px 0}
/* the title keeps clear of the object in the corner */
.mixcard-title{position:relative;font-family:'NHaas','Arial Black',sans-serif;font-size:26px;line-height:1.02;text-transform:uppercase;text-shadow:2px 2px 0 #0F0D22;max-width:70%;margin-top:34px}
.mixcard-dj{position:relative;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.1em;color:#B8AEDA;text-transform:uppercase}
.mixcard-foot{position:relative;display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:12px;border-top:2px dashed #F3EBD933;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em}
.mixcard-moods{color:#9B93BF}
.mixcard-load{color:var(--cyan)}

/* "submit a story" — the pink card, shorter than the other pages' */
.card-hubsubmit{min-height:240px}
.card-hubsubmit .randomcard-title{font-size:42px;margin-top:40px}
.card-hubsubmit .randomcard-art{right:-60px;top:-6px;width:300px;transform:rotate(-14deg);opacity:.95}

/* ---------- scene calendar ---------- */
/* Every show in the scene, grouped by month. A month with nothing in it for
   the chosen city is hidden outright rather than shown empty. */
.scenecal-section{padding-top:100px}
.citychip.is-on{box-shadow:3px 3px 0 var(--purple)}
.scenecal-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:start;margin-top:34px}
.scenecal-months{display:flex;flex-direction:column;gap:26px}
.month-list{display:flex;flex-direction:column;gap:14px;margin-top:14px}

/* --ev is the show's own colour: the card's hard shadow and its date block */
.evcard{display:grid;width:100%;grid-template-columns:76px minmax(0,1fr) auto;gap:18px;align-items:center;background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);border-radius:18px;padding:14px 18px 14px 14px;box-shadow:6px 6px 0 var(--ev,#FF3D8A);cursor:pointer;transition:transform .18s}
.evcard:hover,.evcard:focus-visible{transform:translate(-2px,-2px)}
.evcard-date{width:76px;height:76px;flex:none;border-radius:12px;background:var(--ev,#FF3D8A);border:3px solid var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.evcard-day{font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:30px}
.evcard-mon{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;margin-top:3px}
.evcard-mid{min-width:0}
.evcard-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.evcard-what{font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:21px;line-height:1.05}
.evcard-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;padding:3px 10px;background:#F7EEDC;color:var(--ink);border:2px solid var(--ink);white-space:nowrap}
/* a broadcast is the one date you can reach from the sofa, so it fills */
.evcard-tag-air{background:var(--pink);color:var(--cream)}
.evcard-tag-meet{background:#FFD166}
.evcard-tag-launch{background:#FF8A3D}
.evcard-where{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:var(--ink);margin-top:6px;text-transform:uppercase}
.evcard-who{font-size:15px;color:#5A5147;margin-top:4px;line-height:1.45}
.evcard-end{text-align:right;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;line-height:1.7}
.evcard-action{color:#B33A25}
.evcard-price{color:#6F6468}

/* the form rides along with the month list on a wide screen */
.addshow{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:26px 26px 24px;box-shadow:8px 8px 0 var(--cyan);position:sticky;top:24px}
.addshow-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#6F6468}
.addshow-title{font-family:'NHaas','Arial Black',sans-serif;font-size:30px;line-height:1;text-transform:uppercase;margin-top:8px}
.addshow-dek{font-size:15px;color:#5A5147;margin-top:10px;line-height:1.5}
.addshow-form{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.addshow-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.addshow-field{display:flex;align-items:center;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;padding:11px 14px}
.addshow-field input{border:0;outline:0;background:transparent;font-family:'GT America',sans-serif;font-size:15px;color:var(--ink);width:100%}
.addshow-btn{display:inline-block;margin-top:18px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;padding:12px 24px;background:var(--ink);color:var(--cream);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--pink);cursor:pointer}
.addshow-btn:hover{background:var(--pink);color:#0F0D22}
.addshow-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:14px;text-transform:uppercase}

/* ---------- the board + on the deck ---------- */
/* follows the scene calendar rather than a torn edge, so it sits tighter */
.board-section{padding-top:90px}
.board-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:start}
.sec-title-orange{text-shadow:3px 3px 0 #FF8A3D}

.boardtable{margin-top:34px;background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;box-shadow:8px 8px 0 var(--cyan);overflow:hidden}
.trow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:16px 24px;border-bottom:2px dashed #1E1A1F22;cursor:pointer;color:inherit;transition:background .18s,transform .18s}
.trow:hover{background:rgba(30,26,31,.08);transform:translateX(6px);color:inherit}
.trow:hover .ttitle,.trow:focus-visible .ttitle{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.trow-mid{min-width:0}
.ttitle{display:block;font-size:17px;line-height:1.3}
.trow-meta{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}
.trow-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:var(--cream);padding:3px 10px}
.trow-by{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;text-transform:uppercase}
.trow-count{text-align:center;line-height:1}
.trow-num{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:20px;letter-spacing:0.04em;color:var(--ink)}
.trow-lab{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6B6064;margin-top:3px}
.trow-arrow{font-size:20px;color:#B33A25}
.board-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:#6B6064}
.board-join{color:#B33A25;cursor:pointer}
.board-join:hover{color:#B33A25}

.deck-list{display:flex;flex-direction:column;gap:22px;margin-top:34px}
.review{display:grid;width:100%;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:center;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:16px;cursor:pointer;transition:transform .18s}
.review:hover,.review:focus-within{transform:translate(-2px,-2px)}
/* the sleeve loads the record; the three names on the card are links */
.review-cover{cursor:pointer}
.review-title,.review-who{color:inherit}
.review-title:hover{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.review-who:hover{color:inherit;text-decoration:underline;text-underline-offset:3px}
.review-cover{width:96px;height:96px;border-radius:12px;border:3px solid var(--ink);display:flex;align-items:flex-end;justify-content:center;padding:6px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#1E1A1F99}
.review-mid{min-width:0}
.review-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.review-title{font-family:'NHaas','Arial Black',sans-serif;font-size:21px;line-height:1.05}
.review-stars{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;color:#B33A25;white-space:nowrap}
.review-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#6B6064;margin-top:4px;text-transform:uppercase}
.review-quote{display:block;font-size:15px;line-height:1.45;color:#5A5147;margin-top:8px;font-style:italic}

/* ---------- the nightly email ---------- */
/* In the dark column it is one of two stacked cards, so the flex gap already
   spaces it and its own top margin is dropped. */
.sched-right .news{margin-top:0}
.news{margin-top:34px;border-radius:22px;background:var(--ink);color:var(--cream);padding:26px 26px 24px;box-shadow:8px 8px 0 #FFD166;position:relative;overflow:hidden}
.news-strip{position:absolute;left:0;right:0;top:0;height:8px;background:repeating-linear-gradient(90deg,#FF3D8A 0 60px,#FF8A3D 60px 120px,#FFD166 120px 180px,#22D3EE 180px 240px,#8B5CF6 240px 300px)}
.news-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#FFD166;margin-top:6px}
.news-title{font-family:'NHaas','Arial Black',sans-serif;font-size:28px;line-height:1.02;text-transform:uppercase;margin-top:10px}
.news-form{display:flex;gap:10px;margin-top:20px}
.news-field{flex:1;display:flex;align-items:center;border:2px solid #F3EBD955;background:#0F0D22;padding:11px 16px}
.news-field input{border:0;outline:0;background:transparent;font-family:'GT America',sans-serif;font-size:15px;color:var(--cream);width:100%}
.news-btn{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;padding:11px 22px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;box-shadow:3px 3px 0 var(--pink);cursor:pointer;white-space:nowrap}
.news-btn:hover{background:#FFD166}

/* ===========================================================
   THE LABELS PAGE
   The hero, the cream body, the wave and the torn edges are
   shared; the rules below are only used by labels.html.

   A label carries two states that never move together: its
   pulse (does it still put records out) and its demo status
   (is the inbox open). The demo table reads the second, the
   directory shows both.
   =========================================================== */

/* ---------- hero: a green heartbeat in the badge ---------- */
.hero-badge-green{background:#5FE38A}
.hero-badge-pulse{width:16px;height:16px;border-radius:50%;background:#0F0D22;box-shadow:0 0 0 4px #5FE38A,0 0 0 6px #0F0D22;animation:blip 1.4s steps(1,end) infinite}

/* ---------- next demo window ticket ---------- */
.dw-body{padding:22px 30px 18px}
.dw-name{font-family:'NHaas','Arial Black',sans-serif;font-size:46px;line-height:.95;text-transform:uppercase;text-shadow:3px 3px 0 #22D3EE}
.dw-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.11em;color:#6F6468;margin-top:10px;text-transform:uppercase}
.dw-facts{margin-top:22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 24px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase}
.dw-fact-wide{grid-column:1/-1}
.dw-fact-lbl{color:#6F6468;font-size:12px}
.dw-fact-val{font-size:18px;margin-top:2px}
.dw-fact-text{font-family:'GT America',sans-serif;font-weight:400;font-size:16px;letter-spacing:0;text-transform:none;margin-top:4px;line-height:1.4}
.dw-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:700;letter-spacing:.14em;line-height:normal}
.dw-remind{color:#B33A25}

/* ---------- who takes demos now ---------- */
.demotable{margin-top:30px;background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;box-shadow:8px 8px 0 var(--pink);overflow:hidden}
.demorow{display:grid;grid-template-columns:120px 200px minmax(0,1fr) 130px 190px 120px;gap:18px;align-items:center;padding:16px 24px;border-bottom:2px dashed #1E1A1F22}
.demorow-head{padding:12px 24px;border-bottom:3px solid var(--ink);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468;cursor:default}
.demo-status{display:flex;align-items:center;gap:8px;width:max-content;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;padding:5px 10px;border:2px solid var(--ink)}
.demo-status-dot{width:8px;height:8px;flex:none;border-radius:50%}
.demo-who{min-width:0}
.demo-name{font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:19px;line-height:1.05;text-transform:uppercase}
.demo-city{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:4px;text-transform:uppercase}
.demo-wants{font-size:15px;line-height:1.45;color:#3A332E}
.demo-reply{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.04em}
.demo-updated{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:#6F6468;text-transform:uppercase;line-height:1.5}
/* Only an open inbox gets the ink pill and the pink shadow, so the row you can
   act on today is the one that lifts off the page. */
.demo-action{text-align:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:7px 10px;background:#F7EEDC;color:var(--ink);border:2px solid var(--ink);cursor:pointer}
.demo-action.is-open{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
.demo-action.is-shut{color:#6F6468;cursor:default}
.demo-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:#6F6468}
.demo-update{color:#B33A25}
.demo-update:hover{color:#B33A25}

/* ---------- the directory ---------- */
.dir-bar{display:flex;gap:28px;flex-wrap:wrap;align-items:center;margin-top:28px}
.dir-chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dir-chips-lbl{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#9B93BF;margin-right:4px}
.dir-chips-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.neonchip{display:flex;align-items:center;gap:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:8px 14px;cursor:pointer;border:2px solid #5B4E8A;background:transparent;color:#B8AEDA;transition:transform .15s}
.neonchip:hover{transform:translateY(-2px)}
.neonchip.is-on{background:var(--cyan);color:#0F0D22;border-color:var(--cyan);box-shadow:0 0 14px rgba(34,211,238,.7)}
.neonchip-dot{width:8px;height:8px;flex:none;border-radius:50%}

.dir-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:34px}
.dircard{position:relative;display:flex;flex-direction:column;border-radius:22px;background:#120F26;border:2px solid var(--cyan);overflow:hidden;cursor:pointer;transition:transform .18s}
.dircard:hover{transform:translateY(-6px)}
.dircard-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em}
.dircard-pulse{display:flex;align-items:center;gap:8px}
.dircard-led{width:10px;height:10px;flex:none;border-radius:50%}
/* only a label that is still releasing has a heartbeat */
.dircard-led.is-beating{animation:blip 1.4s steps(1,end) infinite}
.dircard-body{padding:20px 20px 16px;display:flex;flex-direction:column;gap:12px;flex:1}
.dircard-name{font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:30px;line-height:.98;text-transform:uppercase;text-shadow:2px 2px 0 #0F0D22}
.dircard-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.1em;color:#B8AEDA;text-transform:uppercase}
.dircard-roster{font-size:15px;line-height:1.45;color:#F3EBD9CC}
.dircard-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.dircard-format{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:4px 10px;border:2px solid #5B4E8A;color:#B8AEDA}
.dircard-demos{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:4px 10px;border:2px solid transparent}
.dircard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;border-top:2px dashed #F3EBD933;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em}
.dircard-claim{color:#9B93BF}
.dircard-page{color:var(--cyan)}

/* ---------- release calendar ---------- */
.relcal-section{padding-top:100px}
.sec-title-purple{text-shadow:3px 3px 0 #8B5CF6}
.sec-chip-purple{box-shadow:3px 3px 0 #8B5CF6}
.relcal-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:start;margin-top:34px}
.relcal-weeks,.relcal-side{display:flex;flex-direction:column;gap:26px}
.weektable{margin-top:12px;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;box-shadow:6px 6px 0 var(--purple);overflow:hidden}
.relrow{display:grid;grid-template-columns:70px minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:14px 20px;border-bottom:2px dashed #1E1A1F22}
.relrow-date{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.04em;color:#B33A25;line-height:1.1}
.relrow-mid{min-width:0}
.relrow-title{font-size:17px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.relrow-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:5px;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;text-transform:uppercase}
/* the label writes its name in its own colour, the way it does on the card */
.relrow-label{font-weight:700}
/* ---------- the labels page's new links ---------- */
/* Every name that has a page behind it is an anchor now. At rest they look
   exactly as they did — the colour is inherited and there is no underline;
   the pointer and the rule only show on hover. */
.demo-name,.dircard-name,.dircard-artist,.relrow-who,.relrow-name{color:inherit}
.demo-name:hover,.dircard-name:hover,.relrow-name:hover{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.dircard-artist:hover,.relrow-who:hover{color:inherit;text-decoration:underline;text-underline-offset:3px}
.dircard-name{display:block}
.dircard-page:hover{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.relrow-label:hover{text-decoration:underline;text-underline-offset:3px}

.relrow-src{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:4px 10px;color:#0F0D22;border:2px solid var(--ink);white-space:nowrap}
.relrow-action{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#B33A25;white-space:nowrap}

.claim{border-radius:22px;background:var(--ink);color:var(--cream);padding:26px 26px 24px;box-shadow:8px 8px 0 #5FE38A;position:relative;overflow:hidden}
.claim-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#5FE38A;margin-top:6px}
.claim-title{font-family:'NHaas','Arial Black',sans-serif;font-size:34px;line-height:.98;text-transform:uppercase;margin-top:10px}
.claim-steps{display:flex;flex-direction:column;gap:14px;margin-top:22px}
.claim-step{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start}
.claim-num{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:20px;color:#0F0D22;border:2px solid var(--cream)}
.claim-num-1{background:var(--pink)}
.claim-num-2{background:var(--cyan)}
.claim-num-3{background:#FFD166}
.claim-step-title{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.05em}
.claim-step-text{font-size:15px;color:#B8AEDA;line-height:1.45;margin-top:3px}
.claim-btn{display:inline-block;margin-top:24px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;padding:12px 24px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;box-shadow:3px 3px 0 var(--pink);cursor:pointer}
.claim-btn:hover{background:#FFD166;color:#0F0D22}

.whyfills{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:22px 24px;box-shadow:6px 6px 0 #FF8A3D}
.whyfills-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#6F6468}
.whyfills-text{font-size:16px;line-height:1.5;margin-top:10px;color:#3A332E}
.whyfills-counts{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:#6F6468}
.whyfills-n{color:var(--ink)}

/* ===================== mobile menu ===================== */
/* The button and the overlay are injected into every page by TX.mountMenu();
   both stay display:none until 860px, where the pill nav stops fitting. The
   overlay reuses the hero's own sky parts (.stars, .sun, .hero-grid) so the
   menu opens into the same world the page sits in. */
.menubtn{display:none;flex:none;margin-left:auto;width:46px;height:46px;border-radius:999px;background:var(--cream);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--pink);cursor:pointer;align-items:center;justify-content:center;position:relative;z-index:100}
.menubtn-ico{position:relative;width:26px;height:18px}
/* three bars of different lengths, left-aligned; the spring is the same one
   the overlay's items ride in on */
.menubtn-ico i{position:absolute;left:0;height:3px;border-radius:3px;background:var(--ink);transition:transform .45s cubic-bezier(.34,1.56,.64,1),width .45s cubic-bezier(.34,1.56,.64,1)}
.menubtn-ico i:nth-child(1){top:0;width:26px}
.menubtn-ico i:nth-child(2){top:7.5px;width:16px;transform-origin:0 50%}
.menubtn-ico i:nth-child(3){top:15px;width:22px}
.menubtn.is-open .menubtn-ico i:nth-child(1){width:26px;transform:translateY(7.5px) rotate(45deg)}
.menubtn.is-open .menubtn-ico i:nth-child(2){transform:scaleX(0)}
.menubtn.is-open .menubtn-ico i:nth-child(3){width:26px;transform:translateY(-7.5px) rotate(-45deg)}

/* --mx/--my are the button's centre, written by the script when it opens */
@keyframes menureveal{from{clip-path:circle(0 at var(--mx,90%) var(--my,6%))}to{clip-path:circle(150% at var(--mx,90%) var(--my,6%))}}
@keyframes menuhide{from{clip-path:circle(150% at var(--mx,90%) var(--my,6%))}to{clip-path:circle(0 at var(--mx,90%) var(--my,6%))}}
@keyframes menuin{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}
.menu-overlay{position:fixed;inset:0;z-index:90;display:flex;overflow-y:auto;color:var(--cream);background:radial-gradient(ellipse at 62% 8%,#3A1F63 0%,#1A1438 40%,#120F26 70%)}
.menu-overlay[hidden]{display:none}
.menu-overlay.is-opening{animation:menureveal .5s cubic-bezier(.4,0,.2,1) forwards}
.menu-overlay.is-closing{animation:menuhide .45s cubic-bezier(.4,0,.2,1) forwards}
.menu-sky{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.menu-sky .stars{position:absolute;inset:0}
/* parked clear of the X in the corner and to the right of the longest item */
.menu-sun{left:auto;right:-36px;top:118px;width:116px;height:116px;box-shadow:0 0 60px rgba(255,120,150,.4)}
.menu-floor{height:210px}
.menu-horizon{position:absolute;left:0;right:0;bottom:210px;height:3px;background:linear-gradient(90deg,transparent,#FF3D8A 18%,#FF3D8A 82%,transparent);box-shadow:0 0 18px #FF3D8A}

.menu-panel{position:relative;z-index:1;width:100%;max-width:430px;padding:92px var(--gutter) 34px;display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.menu-item{display:block;color:var(--cream);transition:transform .2s}
.menu-item:hover,.menu-item:focus-visible,.menu-item:active{color:var(--cream);transform:translateX(6px)}
.menu-eyebrow{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.09em;color:var(--cyan);margin-bottom:6px}
.menu-word{display:block;font-family:'NHaas','Arial Black',sans-serif;font-size:44px;line-height:.95;letter-spacing:-0.01em;text-transform:uppercase;text-shadow:3px 3px 0 #E8508B,6px 6px 0 #F2A93B}
.menu-item.is-current .menu-word{color:var(--cyan);text-shadow:3px 3px 0 #0E8DA3,6px 6px 0 #0A5462}
.menu-search{width:100%;max-width:340px;margin-top:16px}
.menu-join{padding:13px 24px;font-size:16px}
.menu-foot{margin-top:22px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.09em;color:rgba(243,235,217,.72)}
/* the items ride in once the circle has finished opening */
.menu-overlay.is-opening .menu-stag{animation:menuin .38s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:calc(.42s + var(--i,0) * 60ms)}

/* ===================== filter overlay ===================== */
/* The Releases and Artists filter rails move behind this button below 861px and
   open in the menu's overlay — the sky, the reveal, the stagger and the X are
   the menu's own classes, only the panel inside is different. */
.filterbtn-ico{position:relative;width:24px;height:18px}
/* a funnel drawn with bars: 24 / 16 / 8, centred */
.filterbtn-ico i{position:absolute;left:50%;height:3px;border-radius:3px;background:var(--ink);transform:translateX(-50%);transition:transform .45s cubic-bezier(.34,1.56,.64,1),width .45s cubic-bezier(.34,1.56,.64,1)}
.filterbtn-ico i:nth-child(1){top:0;width:24px}
.filterbtn-ico i:nth-child(2){top:7.5px;width:16px}
.filterbtn-ico i:nth-child(3){top:15px;width:8px}
.filterbtn.is-open .filterbtn-ico i:nth-child(1){width:24px;transform:translate(-50%,7.5px) rotate(45deg)}
.filterbtn.is-open .filterbtn-ico i:nth-child(2){transform:translateX(-50%) scaleX(0)}
.filterbtn.is-open .filterbtn-ico i:nth-child(3){width:24px;transform:translate(-50%,-7.5px) rotate(-45deg)}
.filterbtn-dot{position:absolute;right:-2px;top:-2px;width:13px;height:13px;border-radius:50%;background:var(--pink);border:2px solid var(--ink);opacity:0;transform:scale(.4);transition:opacity .18s,transform .18s}
.filterbtn.has-filters .filterbtn-dot{opacity:1;transform:scale(1)}

/* the panel is a column: a fixed head, a scrolling body, a sticky foot */
.filter-overlay{display:block;overflow:hidden}
.fo-panel{position:relative;z-index:1;height:100%;display:flex;flex-direction:column}
.fo-head{flex:none;display:flex;align-items:flex-start;gap:14px;padding:26px var(--gutter) 12px}
.fo-title{flex:1 1 auto;min-width:0;font-family:'NHaas','Arial Black',sans-serif;font-size:34px;line-height:1.05;text-transform:uppercase;text-shadow:3px 3px 0 #E8508B,6px 6px 0 #F2A93B}
.fo-close{display:flex;flex:none;margin-top:4px}
.fo-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px var(--gutter) 22px;display:flex;flex-direction:column;gap:16px}
/* the rails were drawn for a cream page, so they keep a cream card under them */
.fo-slot{background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);border-radius:18px;box-shadow:6px 6px 0 rgba(15,13,34,.55);padding:16px}
.fo-slot .cat-side{position:static;background:none;border:0;border-radius:0;box-shadow:none;padding:0}
.fo-slot .rost-bar,.fo-slot .rost-bar-2{margin-top:0}
.fo-slot .rost-bar,.fo-slot .rost-bar-left{flex-direction:column;align-items:stretch;gap:12px}
.fo-slot .rost-search{width:100%}
.fo-slot .rost-filter-label,.fo-slot .rost-sort-label{margin-left:0}
.fo-slot .cat-sort{flex-direction:column;align-items:flex-start;gap:10px}
.fo-foot{flex:none;display:flex;align-items:center;gap:10px;padding:14px var(--gutter);background:rgba(15,13,34,.92);border-top:2px solid rgba(243,235,217,.28)}
.fo-clear{flex:none;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;padding:12px 18px;min-height:44px;border:2px solid var(--cream);background:transparent;color:var(--cream);cursor:pointer}
.fo-clear:hover{background:var(--cream);color:var(--ink)}
.fo-show{flex:1 1 auto;text-align:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.07em;padding:12px 18px;min-height:44px;border:2px solid var(--ink);background:var(--cream);color:var(--ink);box-shadow:4px 4px 0 var(--pink);cursor:pointer}
.fo-show:hover{background:#FFD166}
/* the artists toolbar exists only for the phone layout */
.rost-head{display:none}

/* ===================== responsive ===================== */
@media (max-width:1240px){
  .hero-title{font-size:92px}
  .release-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  /* The hero art is a fixed 1440px canvas centred on the viewport, so below the
     design width it slides left under the copy and the headline, nav pills and
     CTAs land on the bright road and sun (cream on #FFB347 is 1.4:1). A veil in
     the hero's own base colour puts all of them back over 4.7:1; .hero-grid and
     .hero-horizon paint after .hero-art, so the neon horizon is unaffected. */
  .hero-art::after{content:'';position:absolute;inset:0;background:rgba(18,15,38,.62);pointer-events:none}
  .stcard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .soon-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rost-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1080px){
  :root{--gutter:32px}
  .hero-main,.hero-main-radio{grid-template-columns:minmax(0,1fr);gap:44px}
  .ticket-wrap{max-width:520px}
  .sched-grid,.series-grid,.pair-grid{grid-template-columns:minmax(0,1fr)}
  /* the filter rail stacks above the results and stops sticking */
  .cat-layout{grid-template-columns:minmax(0,1fr);gap:28px}
  .cat-side{position:static;top:auto}
  /* knob, then the displays, then now playing */
  .radio-grid{grid-template-columns:minmax(0,1fr);gap:26px}
  .dark-grid{grid-template-columns:minmax(0,1fr)}
  .hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* hub page */
  .hubstory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .board-grid{grid-template-columns:minmax(0,1fr);gap:70px}
  /* the form stacks under the months, so there is nothing left to stick to */
  .scenecal-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .addshow{position:static;top:auto}
  /* labels page */
  .relcal-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .dir-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* Six columns is 850px of fixed track before the gaps, so the demo table
     stops being a table: status and action head the row, then the label, what
     they want, and the reply time next to when they last said so. */
  .demorow-head{display:none}
  .demorow{grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding:16px 20px}
  .demo-status{grid-area:1/1/2/2;justify-self:start}
  .demo-action{grid-area:1/2/2/3;justify-self:end}
  .demo-who{grid-area:2/1/3/-1}
  .demo-wants{grid-area:3/1/4/-1}
  .demo-reply{grid-area:4/1/5/2}
  .demo-updated{grid-area:4/2/5/3;text-align:right}
}
@media (max-width:860px){
  /* the five pills and the search no longer fit next to the wordmark, so the
     lot moves into the overlay behind the hamburger */
  .site-header{gap:14px}
  .nav,.header-right{display:none}
  .menubtn{display:flex}
  .hero-title{font-size:64px}
  .release-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}
  .hub-grid{grid-template-columns:minmax(0,1fr)}
  .sec-title{font-size:48px}
  .sec-head{flex-direction:column;align-items:flex-start;gap:16px}
  .sec-tape{width:120px}
  .dock{transform:scale(.75);transform-origin:100% 100%}
  /* the dock is scaled, so the tab text is sized up to land back at ~13px */
  .pulltab-label{display:none}
  .pulltab-label-short{display:block;font-size:18px}
  .pulltab-arrow{font-size:19px}
  .pulltab-led{width:12px;height:12px}
  /* the lamp row drops under the wordmark rather than squeezing the strapline */
  .radio-head{flex-wrap:wrap;gap:10px 18px}
  .vu{width:118px}
  .stcard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}
  .hosts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .soon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  /* ---- releases: the rail moves behind the filter button ---- */
  /* .cat-side and .cat-sort are moved into the overlay by the script, so what
     is left of the toolbar is the count and the button. */
  /* .cat-layout already carries the gap under the rule */
  .cat-head{align-items:center;gap:12px;flex-wrap:nowrap}
  .cat-count{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:9px 16px;border:2px solid var(--ink);border-radius:999px;background:#F7EEDC;box-shadow:3px 3px 0 var(--ink);font-size:20px}
  .cat-count-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rost-head{display:flex;margin-top:28px}
  /* ---- the catalogue becomes a deck ---- */
  /* Each card sticks 10px lower than the one before it (capped by the script at
     eight steps), so scrolling slides the next card up over the last one and
     they pile. Every card is sticky, the last one included: as the last child it
     has nowhere left to stick, so it simply scrolls away and the pile follows.
     isolation keeps the sleeve's own z-index inside its card. */
  .cat-grid{display:block;margin-top:20px;--stack-top:14px}
  .cat-grid .cover-card{position:sticky;top:calc(var(--stack-top) + var(--n,0) * 10px);height:62vh;display:flex;flex-direction:column;gap:10px;margin-bottom:18px;padding:14px;border:3px solid var(--ink);border-radius:18px;background:#F7EEDC;box-shadow:8px 8px 0 var(--cardc,var(--ink));overflow:hidden;isolation:isolate}
  /* the vinyl peek needs a hover and a square sleeve, and has neither here */
  .cat-grid .vinyl,.cat-grid .coverplay{display:none}
  .cat-grid .sleeve{flex:1 1 auto;min-height:0;aspect-ratio:auto;border-radius:12px;box-shadow:none;transform:none!important}
  /* the card clips its overflow, so the burst comes inside the sleeve */
  .cat-grid .cover-burst{right:6px;bottom:6px;width:54px;height:54px}
  .cat-grid .cover-info{margin-top:0;align-items:center}
  .cat-grid .cover-meta{display:none}
  .cat-grid .cover-artist{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:4px;text-transform:uppercase}
  .cat-grid .cover-more{display:block}
  /* ---- the roster becomes the same deck ---- */
  /* the arch fights a fixed-height card, so on a phone it is a plain 12px box */
  .rost-grid{display:block;margin-top:22px;--stack-top:14px}
  .rost-grid .acard{position:sticky;top:calc(var(--stack-top) + var(--n,0) * 10px);height:62vh;display:flex;flex-direction:column;gap:8px;margin-bottom:18px;padding:14px;border:3px solid var(--ink);border-radius:18px;background:#F7EEDC;box-shadow:8px 8px 0 var(--cardc,var(--ink));overflow:hidden;isolation:isolate;transform:none!important}
  .rost-grid .arch{flex:1 1 auto;min-height:0;aspect-ratio:auto;border-radius:12px;box-shadow:none!important;transform:none!important}
  .rost-grid .aplay{display:none}
  .rost-grid .acard-info{margin-top:0;align-items:center}
  .rost-grid .acard-members{margin-top:2px}
  .rost-grid .acard-bio{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px}
  .rost-grid .acard-stats{margin-top:2px}
  /* hub page */
  .hubstory-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  /* labels page */
  .dir-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  :root{--gutter:16px}
  .nav{margin-left:0;flex-wrap:wrap}
  /* iOS Safari zooms the whole page in when a field it focuses is set below
     16px, and never zooms back out — every text input goes up to 16px. */
  .search input,.cat-search input,.rost-search input,.news-field input,.addshow-field input{font-size:16px}
  /* the small caps on the artwork sit at 9–10px on the desktop canvas, which
     is under the 12px floor once the canvas is phone-width */
  .vinyl-label{font-size:12px}
  .sleeve-cat,.sleeve-type,.arch-cap,.arch-form{font-size:12px}
  /* pressable things get a 40px touch box; the chips and pills are the ones
     the filters and sorts are made of, so they are the ones you miss */
  .chip,.chip-sub,.cat-clear,.sortpill,.hubchip,.chip-rost{min-height:40px;display:inline-flex;align-items:center}
  .neonchip,.demo-action{min-height:40px;display:flex;align-items:center;justify-content:center}
  .sooncard-btn{padding-top:12px;padding-bottom:12px}
  .now-load{padding:12px 0;margin:-12px 0}
  .footer-links{gap:8px}
  .footer-links a{padding:12px 0;display:inline-block}
  .hero{padding-bottom:110px}
  .hero-main{padding-top:56px}
  /* the floating tape moves out of the headline's way and the drop shadow is
     scaled with the type so it stays legible at small sizes */
  .hero-tape{width:80px;left:auto;right:0;top:-40px}
  .hero-spark{width:22px;height:22px;right:96px;top:-6px}
  .hero-clock{padding-left:0;font-size:14px;letter-spacing:.18em}
  .hero-title{font-size:42px;text-shadow:2px 2px 0 #E8508B,4px 4px 0 #F2A93B,6px 6px 0 #2F5FA6}
  .ticket-wrap{margin:20px 6px 0}
  .cas-burst{right:4px}
  .hero-lede{gap:14px}
  .hero-badge{width:48px;height:48px}
  .tri{border-left-width:14px;border-top-width:9px;border-bottom-width:9px}
  .hero-lede p{font-size:17px}
  .cta{padding:13px 20px;font-size:16px}
  /* One tape under the next on a phone read as one long strip, so each release
     gets its own paper card. --cas-color is the release's own colour, set on
     the card by TX.cassetteCard(), so the hard shadow matches the tape. The
     burst keeps its place over the tape, inside the card and uncropped.
     At full width the cards' tilt is what closes the 22px gap back up again —
     a 2.5deg turn lifts a 371px card's corner by 8px — so on a phone they sit
     straight. */
  .release-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .cascard{background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;box-shadow:6px 6px 0 var(--cas-color,#1E1A22);padding:16px;transform:none !important}
  .cas-name{margin-top:16px}
  .sec-title{font-size:38px}
  .radio{padding:20px 16px 22px}
  .radio-trim{left:16px;right:16px}
  .radio-head{flex-direction:column;align-items:flex-start;gap:10px}
  .radio-head-left{flex-direction:column;gap:2px}
  .radio-lamps{flex-wrap:wrap;gap:8px 16px}
  /* the meters are the first thing to go — the readout needs the width more */
  .vu{display:none}
  /* stacked, the panel no longer has to match the knob's height */
  .now{min-height:0}
  .randomcard-title{font-size:38px;margin-top:60px}
  .footer-row{gap:14px}
  /* Closed, the deck is parked entirely off the right edge — a sliver of it was
     eating the corner of a 390px screen — and only the tab is left on the page.
     548px is the deck's own width plus enough to bury the 4px chrome ring; the
     drop shadow would still bleed back over the edge, so it is dropped while
     the deck is out of sight. The tab is widened to keep a 44px+ tap target
     once the dock's .59 scale is applied ((88 - 3) x .59 - 5 = 45px visible). */
  .dock{transform:scale(.59);transform-origin:100% 100%}
  .pulltab{width:88px;left:-85px;height:250px;gap:14px}
  .pulltab-label-short{font-size:24px}
  .pulltab-arrow{font-size:26px}
  .pulltab-led{width:15px;height:15px}
  .dock-slide.is-closed{transform:translateX(548px)}
  .dock-slide.is-closed .wm{filter:none}
  /* the nudge moves to the tab, since the deck it used to tug on is gone */
  .dock-slide.is-closed .dock-peek{animation:none}
  .dock-slide.is-closed .pulltab{animation:tabglow 1.6s ease-in-out infinite,peek 3.2s ease-in-out infinite}
  /* radio page */
  .oa-name{font-size:34px}
  .oa-body,.oa-next{padding-left:20px;padding-right:20px}
  .oa-ticket .ticket-head,.oa-ticket .ticket-foot{padding-left:20px;padding-right:20px}
  .stcard-grid{grid-template-columns:minmax(0,1fr)}
  .hosts-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .card-propose .randomcard-title,.card-dedication .randomcard-title{font-size:32px;margin-top:50px}
  /* the ON NOW tag drops under the show title rather than squeezing it */
  .sched-row{grid-template-columns:auto minmax(0,1fr);gap:6px 12px;padding:14px}
  .sched-tag{grid-column:1/-1;justify-self:start;margin-top:4px}
  .recent{padding-left:16px;padding-right:16px}
  .recent-row{grid-template-columns:46px minmax(0,1fr) auto;gap:8px;padding:10px 6px}
  /* releases page */
  .hero-lede-tape{width:84px;margin-top:-6px}
  .feature-body{padding-left:20px;padding-right:20px;grid-template-columns:minmax(0,1fr);gap:18px}
  .feature-ticket .ticket-head,.feature-ticket .ticket-foot{padding-left:20px;padding-right:20px}
  .feature-title{font-size:26px}
  .cat-side{padding:18px 16px 20px}
  .series-card{padding-left:16px;padding-right:16px}
  .series-rows{grid-template-columns:minmax(0,1fr)}
  .series-copy{margin-left:0;margin-right:0}
  .loaded-row{grid-template-columns:30px minmax(0,1fr) auto;gap:8px;padding:10px 6px}
  .soon-grid{grid-template-columns:minmax(0,1fr);gap:34px}
  /* artists page */
  /* wide enough for the photo caption to sit on one line at 12px */
  .feature-body .acard-feature{width:200px}
  .rost-bar{flex-direction:column;align-items:stretch;gap:14px}
  .rost-search{width:100%}
  /* the track title drops under the pairing rather than squeezing the names */
  .pairrow{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:6px 10px;padding:12px 6px}
  .pairrow-end{grid-column:1/-1;text-align:left;margin-top:4px}
  .daterow{grid-template-columns:52px minmax(0,1fr) auto;gap:8px;padding:10px 6px}
  /* hub page */
  .cs-body{padding-left:20px;padding-right:20px}
  .cs-ticket .ticket-head,.cs-ticket .ticket-foot{padding-left:20px;padding-right:20px}
  .cs-story{font-size:24px}
  .hero-badge-num{font-size:20px}
  .mix-grid{grid-template-columns:minmax(0,1fr)}
  .mixcard-title{max-width:64%;font-size:24px}
  .card-hubsubmit .randomcard-title{font-size:34px;margin-top:30px}
  /* the date block shrinks and the price line drops under the show */
  .evcard{grid-template-columns:56px minmax(0,1fr);gap:10px 12px;padding:12px}
  .evcard-date{width:56px;height:56px}
  .evcard-day{font-size:22px}
  .evcard-mon{font-size:12px;margin-top:2px}
  .evcard-what{font-size:19px}
  .evcard-end{grid-column:1/-1;display:flex;gap:14px;text-align:left;line-height:1.4}
  .addshow{padding:22px 18px 20px}
  .addshow-title{font-size:26px}
  .addshow-row{grid-template-columns:minmax(0,1fr)}
  .addshow-btn{width:100%;text-align:center}
  .trow{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px 16px}
  .trow-arrow{display:none}
  .board-foot{padding:14px 16px;flex-wrap:wrap;gap:8px}
  .review{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:12px}
  .review-cover{width:72px;height:72px}
  .review-head{flex-wrap:wrap;gap:4px 10px}
  .news{padding:22px 18px 20px}
  .news-title{font-size:24px}
  .news-form{flex-wrap:wrap}
  /* labels page */
  .dw-body{padding-left:20px;padding-right:20px}
  .dw-ticket .ticket-head,.dw-ticket .ticket-foot{padding-left:20px;padding-right:20px}
  .dw-name{font-size:34px}
  .dw-facts{grid-template-columns:minmax(0,1fr)}
  .dw-foot{flex-wrap:wrap;gap:6px}
  .demorow{padding:14px 16px}
  .demo-foot{padding:14px 16px;flex-wrap:wrap;gap:8px}
  .dircard-name{font-size:26px}
  /* the source pill drops under the release rather than squeezing the title */
  .relrow{grid-template-columns:auto minmax(0,1fr);gap:8px 12px;padding:14px 16px}
  .relrow-date{grid-area:1/1/2/2}
  .relrow-src{grid-area:1/2/2/3;justify-self:end}
  .relrow-mid{grid-area:2/1/3/-1}
  .relrow-action{grid-area:3/1/4/-1}
  .relrow-title{white-space:normal}
  .claim{padding:22px 18px 20px}
  .claim-title{font-size:26px}
  .claim-btn{display:block;text-align:center}
  .whyfills{padding:20px 18px}
}

/* ===================== reduced motion ===================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-play-state:paused !important;transition-duration:.01ms !important}
  /* a paused animation would freeze the menu at clip-path:circle(0) and its
     items at opacity 0, so the overlay just appears instead of being revealed */
  .menu-overlay.is-opening,.menu-overlay.is-closing{animation:none;clip-path:none}
  .menu-overlay.is-closing{opacity:0}
  .menu-overlay.is-opening .menu-stag{animation:none}
}

/* ===================== 404 — no signal =====================
   The off-band page borrows the whole hero from the other six; only the
   dial drawing, the wide search field and the six-way link grid are its
   own. Nothing here is used anywhere else. */
.nosig-title{font-size:96px;max-width:12ch}
.nosig-search{width:100%;max-width:520px;margin-top:34px;padding:14px 20px}
.nosig-search input{font-size:16px}
.nosig-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:26px;max-width:640px}
.nosig-link{justify-content:flex-start;gap:10px;padding:14px 18px;font-size:16px;color:var(--cream)}
.nosig-link:hover{color:#0F0D22}
.nosig-no{font-size:13px;letter-spacing:.16em;color:var(--cyan)}
.nosig-link:hover .nosig-no{color:#0F0D22}
.nosig-art{position:relative;display:flex;align-items:center;justify-content:center;padding-top:20px}
.nosig-dial{filter:drop-shadow(0 0 30px rgba(139,92,246,.5));animation:floaty 7s ease-in-out infinite}
.nosig-tape{position:absolute;right:0;bottom:-10px;width:150px;transform:rotate(-12deg);filter:drop-shadow(0 14px 18px rgba(0,0,0,.55))}
@media (max-width:1100px){
  .nosig-title{font-size:64px}
  .nosig-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .nosig-title{font-size:44px}
  .nosig-links{grid-template-columns:1fr}
  .nosig-tape{width:110px}
}

/* ===========================================================
   Frekvenci — the five detail pages
   Release, Artist, Label, Station and Schedule are one family:
   the same hero shape, the same cream tables, the same neon
   cards on the dark band. Anything the five share is written
   once here under a .d- prefix; the rest is per page.
   Values come straight from the design-v3 templates.
   =========================================================== */

/* ---------- shared: hero ---------- */
/* A detail hero is a picture of the thing beside its name, so it is a
   two-column grid rather than the sections' copy-and-ticket. */
.d-hero{position:relative;max-width:1440px;margin:0 auto;padding:60px var(--gutter) 0;display:grid;gap:64px;align-items:center}
.d-copy{position:relative;min-width:0}
.d-eyebrow{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.1em;color:var(--cyan);margin-bottom:16px;text-shadow:0 0 10px rgba(34,211,238,.8)}
.d-eyebrow a{color:var(--cyan);text-decoration:underline;text-underline-offset:4px}
.d-eyebrow a:hover{color:var(--cream)}
.d-title{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:104px;line-height:.86;letter-spacing:-0.02em;text-transform:uppercase;color:var(--cream);text-shadow:4px 4px 0 #E8508B,8px 8px 0 #F2A93B,12px 12px 0 #2F5FA6;text-wrap:balance}
.d-lede{margin:26px 0 0;font-size:19px;line-height:1.45;color:var(--cream);max-width:560px;text-wrap:pretty}
.d-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.d-pill{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:7px 14px;border:2px solid var(--cream)}
.d-ctas{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
/* a control with nothing behind it: still readable, no longer pressable */
.cta-shut{cursor:default;opacity:.72;box-shadow:5px 5px 0 #F3EBD955}
.cta-shut:hover{background:transparent;color:var(--cream)}
.cta-faint{background:transparent;color:var(--cream);border:3px solid #F3EBD98A;padding-left:22px;padding-right:22px}
.cta-faint:hover{border-color:var(--cream)}
.cta-on{background:#0F0D22;color:var(--cream);border:3px solid #0F0D22;box-shadow:5px 5px 0 var(--pink)}
.cta-on:hover{background:#FFD166;color:#0F0D22;box-shadow:5px 5px 0 var(--cyan)}
.d-stats{display:flex;gap:34px;margin-top:34px;flex-wrap:wrap}
.d-stat-n{font-family:'NHaas',sans-serif;font-size:34px;line-height:1;color:var(--cream)}
.d-stat-l{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#B8AEDA;margin-top:6px}

/* ---------- shared: sleeve artwork ---------- */
/* One square of the release's own generated art with its title burnt
   into the bottom corner. Three sizes: hero, card, thumb. */
.d-sleeve{position:relative;aspect-ratio:1/1;border-radius:12px;border:3px solid var(--ink);overflow:hidden;display:block}
.d-sleeve-title{position:absolute;left:12px;right:12px;bottom:12px;font-family:'NHaas',sans-serif;font-size:22px;line-height:.95;color:var(--cream);text-shadow:2px 2px 0 #0F0D12}
.d-thumb .d-sleeve-title{left:8px;right:8px;bottom:8px;font-size:16px}

/* ---------- shared: cream table rows ---------- */
.d-table{margin-top:12px;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;overflow:hidden}
.d-table>*:last-child{border-bottom:0}
.dtrow{display:grid;width:100%;grid-template-columns:52px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 20px;border-bottom:2px dashed #1E1A1F22;cursor:pointer;color:var(--ink);text-align:left;transition:background .18s,transform .18s}
.dtrow:hover{background:rgba(30,26,31,.08);transform:translateX(6px);color:var(--ink)}
.dtnum{width:40px;height:40px;border-radius:999px;color:#0F0D22;display:flex;align-items:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;transition:transform .18s,box-shadow .18s}
.dtrow:hover .dtnum{transform:scale(1.12) rotate(-10deg);box-shadow:3px 3px 0 var(--ink)}
.dtnum .np{display:none}
.dtrow:hover .dtnum .nn{display:none}
.dtrow:hover .dtnum .np{display:block}
.dtmid{min-width:0}
.dttitle{display:block;font-size:18px;line-height:1.3}
.dtrow:hover .dttitle{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.dtnote{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:3px;text-transform:uppercase}
.dtdur{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.04em;color:var(--ink)}
.dtdur .dp{display:none}
.dtrow:hover .dtdur .dn{display:none}
.dtrow:hover .dtdur .dp{display:block;color:#B33A25}

/* ---------- shared: the neon row inside a dark card ---------- */
.d-neonrow{display:grid;width:100%;gap:14px;align-items:center;padding:11px 12px;border-radius:12px;color:var(--cream);text-align:left;cursor:pointer}
.d-neonrow:hover{background:rgba(255,61,138,.12);color:var(--cream)}
.d-neonrow-mid{min-width:0}
.d-neonrow-title{display:block;font-size:15px;line-height:1.3}
.d-neonrow-sub{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:#9B93BF;margin-top:2px;text-transform:uppercase}
.d-neonrow-end{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;flex:none}
.d-neoncard{border-radius:28px;background:#120F26;padding:22px 22px 16px;display:flex;flex-direction:column;gap:10px}
.d-neoncard-title{font-family:'NHaas','Arial Black',sans-serif;font-weight:400;font-size:24px;text-transform:uppercase;line-height:1.05}
.d-neoncard-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em}

/* ---------- shared: two-column cream section ---------- */
.d-2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
.d-2col-wide{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.d-2col-narrow{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.d-sidehead{display:flex;align-items:center;gap:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.08em;color:#6B6064;margin-top:30px}
.d-sidehead-name{border-radius:999px;background:var(--ink);color:var(--cream);padding:4px 12px}
.d-sidehead-line{flex:1;height:2px;background:#1E1A1F22}

/* the section chips that are links get the pointer and the hover, but no
   underline at rest — the house rule for every card that became a link */
a.sec-chip,a.sched-chip,a.d-pill{cursor:pointer}
a.sec-chip:hover{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
a.sched-chip:hover{color:var(--cyan);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}

/* ===========================================================
   release.html
   =========================================================== */
.rl-hero{grid-template-columns:460px minmax(0,1fr)}
.rl-art{position:relative;width:100%;max-width:460px}
/* the record peeking out of the right-hand edge of the sleeve */
.rl-vinyl{position:absolute;left:5%;top:5%;width:90%;aspect-ratio:1/1;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,#141216 0 2px,#221F26 2px 4px),#141216;box-shadow:0 8px 18px rgba(0,0,0,.45);transform:translateX(30%) rotate(25deg)}
.rl-vinyl-label{position:absolute;left:50%;top:50%;width:34%;height:34%;margin:-17% 0 0 -17%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#0F0D12}
.rl-sleeve{position:relative;aspect-ratio:1/1;border-radius:14px;border:3px solid var(--ink);box-shadow:10px 10px 0 var(--ink);overflow:hidden;display:block;width:100%}
.rl-sleeve-cat{position:absolute;left:18px;top:16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:var(--cream)}
.rl-sleeve-type{position:absolute;right:16px;top:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#0F0D22;background:var(--cream);padding:4px 10px}
.rl-sleeve-title{position:absolute;left:18px;right:18px;bottom:18px;font-family:'NHaas',sans-serif;font-size:56px;line-height:.92;color:var(--cream);text-shadow:3px 3px 0 #0F0D12}
.rl-tape{position:absolute;right:-18px;top:-18px;width:74px;height:74px;background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:4px 4px 0 var(--cyan);cursor:pointer;transform:rotate(8deg);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;letter-spacing:0.05em;line-height:1}
.rl-tape.is-on{background:var(--pink);color:#0F0D22}
.rl-tape-heart{font-size:22px;line-height:1}
.rl-tape-lbl{margin-top:3px;font-size:12px}
.rl-by{font-family:'NHaas',sans-serif;font-size:26px;margin-top:26px;color:var(--cream)}
.rl-by a{color:var(--cyan);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px}
.rl-by a:hover{color:var(--cream)}
.rl-human{display:flex;align-items:center;gap:10px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#5FE38A;padding:0 4px}
.rl-human-dot{width:12px;height:12px;border-radius:50%;background:#5FE38A;box-shadow:0 0 8px #5FE38A;flex:none}
.rl-side{display:flex;flex-direction:column;gap:26px;position:sticky;top:24px}
.rl-card{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:24px 26px;box-shadow:8px 8px 0 var(--cyan)}
.rl-card-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#6B6064}
.rl-credit{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:2px dashed #1E1A1F22;align-items:baseline}
.rl-credit-role{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6B6064}
.rl-credit-who{font-size:16px}
.rl-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-top:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase}
.rl-fact-l{color:#6B6064;font-size:12px}
.rl-fact-v{margin-top:2px;display:block}
a.rl-fact-v{color:#B33A25}
a.rl-fact-v:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.rl-notes{border-radius:22px;background:var(--ink);color:var(--cream);padding:24px 26px;box-shadow:8px 8px 0 #FFD166}
.rl-notes-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#FFD166}
.rl-notes-text{font-size:16px;line-height:1.55;margin-top:10px}
.rl-more-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:start}
.rl-more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:34px}
.rl-mcard{display:block;cursor:pointer;transition:transform .18s;color:var(--cream)}
.rl-mcard:hover{transform:translateY(-6px);color:var(--cream)}
.rl-mcard .d-sleeve{border-color:#0F0D22;border-radius:12px}
.rl-mcard-name{display:block;font-size:17px;margin-top:14px}
.rl-mcard:hover .rl-mcard-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.rl-mcard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#B8AEDA;margin-top:3px;text-transform:uppercase}
.rl-review{border-radius:28px;background:#120F26;padding:26px 26px 22px;display:flex;flex-direction:column;gap:14px;color:var(--cream)}
.rl-review:hover{color:var(--cream)}
.rl-review-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rl-review-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:var(--pink)}
.rl-review-stars{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.06em;color:var(--pink)}
.rl-review-title{font-family:'NHaas','Arial Black',sans-serif;font-size:28px;line-height:1.02;text-transform:uppercase}
.rl-review:hover .rl-review-title{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-color:var(--pink)}
.rl-review-quote{font-size:16px;line-height:1.55;color:#B8AEDA;font-style:italic}
.rl-review-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;border-top:2px dashed #F3EBD955;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em}
.rl-review-by{color:#B8AEDA}
.rl-review-read{color:var(--cyan)}
.rl-alike{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:40px}
.rl-acard{display:block;cursor:pointer;transition:transform .18s;color:var(--ink)}
.rl-acard:hover{transform:translateY(-6px);color:var(--ink)}
.rl-acard .d-sleeve{border-radius:10px;box-shadow:6px 6px 0 var(--ink)}
.rl-acard-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.rl-acard-name{font-size:17px}
.rl-acard:hover .rl-acard-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.rl-acard-why{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:3px 10px;border:2px solid var(--ink);flex:none}
.rl-acard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:3px;text-transform:uppercase}

/* ===========================================================
   artist.html
   =========================================================== */
.ar-hero{grid-template-columns:420px minmax(0,1fr)}
.ar-art{position:relative;width:100%;max-width:420px}
.ar-arch{aspect-ratio:1/1.15;border-radius:999px 999px 24px 24px;border:3px solid var(--ink);display:flex;align-items:flex-end;justify-content:center;padding:14px}
.ar-arch span{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#F3EBD9AA}
.ar-form{position:absolute;left:50%;top:-14px;transform:translateX(-50%);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;padding:6px 14px;background:var(--ink);color:var(--cream);border:2px solid var(--cream)}
.ar-live{position:absolute;right:-26px;bottom:40px;width:96px;height:96px;border-radius:50%;background:#FFD166;border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(10deg);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:var(--ink);line-height:1.1;text-align:center}
.ar-live:hover{color:var(--ink)}
.ar-live-n{font-family:'NHaas',sans-serif;font-size:22px}
.ar-title{font-size:110px}
.ar-rel{display:flex;flex-direction:column;gap:18px;margin-top:30px}
.ar-rcard{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:center;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:14px;cursor:pointer;transition:transform .18s;color:var(--ink);text-align:left;width:100%}
.ar-rcard:hover{transform:translate(-2px,-2px);color:var(--ink)}
.ar-rcard .d-sleeve{width:120px;height:120px;border-radius:10px}
.ar-rcard-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ar-rcard-name{font-family:'NHaas','Arial Black',sans-serif;font-size:22px;line-height:1.05}
.ar-rcard:hover .ar-rcard-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.ar-rcard-type{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:3px 10px;background:var(--ink);color:var(--cream);flex:none}
.ar-rcard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:6px;text-transform:uppercase}
.ar-rcard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em}
.ar-rcard-fmt{color:#6B6064}
.ar-rcard-load{color:#B33A25}
.ar-top{margin-top:30px;box-shadow:6px 6px 0 var(--cyan)}
.ar-top .dtrow{grid-template-columns:52px minmax(0,1fr) 140px auto}
.ar-bar-wrap{display:block;min-width:0}
.ar-bar{display:block;height:8px;border-radius:4px;background:#1E1A1F33;overflow:hidden}
.ar-bar-fill{display:block;height:100%}
.ar-bar-lab{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;color:#6B6064;margin-top:5px}
.ar-dark{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr);gap:34px;align-items:start}
.ar-dates .d-neonrow{grid-template-columns:64px minmax(0,1fr) auto}
.ar-stories .d-neonrow{grid-template-columns:minmax(0,1fr) auto}
.ar-collab .d-neonrow{grid-template-columns:minmax(0,1fr) auto}
.ar-date{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.04em;color:var(--cyan);line-height:1.1}
.ar-story-kicker{display:inline-block;border-radius:999px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:var(--cream);padding:3px 10px}
.ar-allshows{margin:auto 6px 4px;padding:14px 6px 6px;border-top:2px dashed #22D3EE66;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:var(--cyan);display:block}
.ar-allshows:hover{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.ar-lore{margin-top:30px;background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:24px 26px;box-shadow:8px 8px 0 var(--purple)}
.ar-lore-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:2px dashed #1E1A1F22;align-items:baseline}
.ar-lore-row:last-child{border-bottom:0}
.ar-lore-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6B6064}
.ar-lore-v{font-size:16px;line-height:1.5}
.ar-label{margin-top:26px;border-radius:22px;background:var(--ink);color:var(--cream);padding:22px 26px;box-shadow:8px 8px 0 var(--cyan);display:flex;align-items:center;justify-content:space-between;gap:18px}
.ar-label:hover{color:var(--cream)}
.ar-label-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:var(--cyan)}
.ar-label-name{font-family:'NHaas',sans-serif;font-size:28px;line-height:1;margin-top:8px}
.ar-label:hover .ar-label-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--cyan)}
.ar-label-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#B8AEDA;margin-top:6px}
.ar-label-mono{width:64px;height:64px;border-radius:14px;border:3px solid var(--cream);display:flex;align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:24px;flex:none}
.ar-alike{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:30px}
.ar-acard{display:grid;grid-template-columns:84px minmax(0,1fr);gap:16px;align-items:center;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:12px;transition:transform .18s;color:var(--ink)}
.ar-acard:hover{transform:translate(-2px,-2px);color:var(--ink)}
.ar-acard-arch{width:84px;height:96px;border-radius:999px 999px 12px 12px;border:3px solid var(--ink)}
.ar-acard-name{font-family:'NHaas','Arial Black',sans-serif;font-size:20px;line-height:1.05}
.ar-acard:hover .ar-acard-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.ar-acard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:5px;text-transform:uppercase}
.ar-acard-why{display:inline-block;margin-top:8px;border-radius:999px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:3px 10px;border:2px solid var(--ink)}

/* ===========================================================
   label.html
   =========================================================== */
.lb-hero{grid-template-columns:380px minmax(0,1fr)}
.lb-art{position:relative;width:100%;max-width:380px}
.lb-mono{aspect-ratio:1/1;border-radius:24px;border:3px solid var(--ink);box-shadow:12px 12px 0 var(--ink);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.lb-mono-lines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#0F0D2222 0 4px,transparent 4px 14px)}
.lb-mono-txt{position:relative;font-family:'NHaas',sans-serif;font-size:150px;line-height:1;letter-spacing:-.04em}
.lb-mono-est{position:absolute;left:18px;bottom:16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em}
.lb-pulse{position:absolute;right:-22px;top:-16px;display:flex;align-items:center;gap:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;padding:8px 14px;background:var(--ink);color:var(--cream);border:2px solid var(--cream);transform:rotate(6deg)}
.lb-pulse-led{width:10px;height:10px;border-radius:50%;flex:none}
.lb-pulse-led.is-beating{animation:blip 1.4s steps(1,end) infinite}
.lb-title{font-size:110px}
.lb-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:30px}
.lb-rcard{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:12px;transition:transform .18s;color:var(--ink)}
.lb-rcard:hover{transform:translate(-2px,-2px);color:var(--ink)}
.lb-rcard-arch{position:relative;width:96px;height:110px;border-radius:999px 999px 12px 12px;border:3px solid var(--ink)}
.lb-rcard-form{position:absolute;left:50%;top:-10px;transform:translateX(-50%);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:2px 8px;background:var(--ink);color:var(--cream);white-space:nowrap}
.lb-rcard-name{font-family:'NHaas','Arial Black',sans-serif;font-size:22px;line-height:1.05}
.lb-rcard:hover .lb-rcard-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.lb-rcard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:5px;text-transform:uppercase}
.lb-rcard-top{display:block;font-size:14px;color:#5A5147;margin-top:6px;line-height:1.4}
.lb-rcard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em}
.lb-rcard-n{color:#6B6064}
.lb-rcard-load{color:#B33A25}
.lb-demo-wrap{position:relative;transform:rotate(-1.5deg)}
.lb-demo{background:#F7EEDC;color:var(--ink);border-radius:22px;box-shadow:8px 8px 0 #FFD166;border:3px solid var(--ink)}
.lb-demo-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 26px 14px;border-bottom:3px dashed #1E1A1F4D}
.lb-demo-title{display:flex;align-items:center;gap:10px;font-family:'NHaas','Arial Black',sans-serif;font-size:20px;text-transform:uppercase;margin:0;font-weight:400}
.lb-demo-dot{width:12px;height:12px;border-radius:50%;flex:none}
.lb-demo-chip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:var(--ink);padding:5px 12px}
.lb-demo-body{padding:20px 26px 16px;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase}
.lb-demo-l{color:#6B6064;font-size:12px}
.lb-demo-v{font-size:18px;margin-top:2px}
.lb-demo-wide{grid-column:1/-1}
.lb-demo-text{font-family:'GT America',sans-serif;font-weight:400;font-size:16px;letter-spacing:0;text-transform:none;margin-top:4px;line-height:1.4}
.lb-demo-foot{padding:14px 26px 18px;border-top:3px dashed #1E1A1F4D;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:#6B6064}
.lb-demo-remind{color:#B33A25}
.lb-rel{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px;margin-top:34px}
.lb-relcard{display:block;cursor:pointer;transition:transform .18s;color:var(--cream)}
.lb-relcard:hover{transform:translateY(-6px);color:var(--cream)}
.lb-relcard .d-sleeve{border-color:#0F0D22;border-radius:10px}
.lb-relcard .d-sleeve-title{left:10px;right:10px;bottom:10px;font-size:17px}
.lb-relcard-name{display:block;font-size:15px;margin-top:12px;line-height:1.3}
.lb-relcard:hover .lb-relcard-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.lb-relcard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#B8AEDA;margin-top:3px;text-transform:uppercase}
.lb-lower{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:30px;margin-top:40px;align-items:start}
.lb-feed .d-neonrow{grid-template-columns:74px minmax(0,1fr) auto}
.lb-feed-date{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.04em;color:var(--cyan)}
.lb-fmt-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:2px dashed #F3EBD933}
.lb-fmt-row:last-child{border-bottom:0}
.lb-fmt-name{font-family:'NHaas',sans-serif;font-size:20px;line-height:1}
.lb-fmt-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#B8AEDA;margin-top:4px;text-transform:uppercase}
.lb-fmt-state{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;flex:none}
.lb-about{font-size:17px;line-height:1.6;margin-top:26px;max-width:62ch;color:#3A332E}
.lb-about p{margin:0 0 14px}
.lb-about p:last-child{margin-bottom:0}
.lb-contact{margin-top:26px;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:18px 22px;box-shadow:6px 6px 0 #FF8A3D;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase}
.lb-contact-l{color:#6B6064;font-size:12px}
/* an address is an address: it keeps its own case and breaks on its own dots */
.lb-contact-v{margin-top:2px;text-transform:none;letter-spacing:.04em;overflow-wrap:break-word}
.lb-alike{display:flex;flex-direction:column;gap:16px;margin-top:30px}
.lb-acard{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:16px;align-items:center;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:12px 16px 12px 12px;transition:transform .18s;color:var(--ink)}
.lb-acard:hover{transform:translate(-2px,-2px);color:var(--ink)}
.lb-acard-mono{width:64px;height:64px;border-radius:12px;border:3px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:22px}
.lb-acard-name{font-family:'NHaas','Arial Black',sans-serif;font-size:20px;line-height:1.05}
.lb-acard:hover .lb-acard-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.lb-acard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:5px;text-transform:uppercase}
.lb-acard-why{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:3px 10px;border:2px solid var(--ink);border-radius:999px;flex:none}

/* ===========================================================
   station.html
   =========================================================== */
.sn-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.sn-nameline{display:flex;align-items:baseline;gap:22px;flex-wrap:wrap}
.sn-title{font-size:124px}
.sn-freq{font-size:64px;letter-spacing:.06em;line-height:1}
.sn-freq small{font-size:24px}
.sn-eyebrow{color:var(--pink);text-shadow:0 0 10px rgba(255,61,138,.8)}
.sn-eyebrow b{color:var(--cream);font-weight:700}
.sn-oa{padding-left:30px;padding-right:30px}
.sn-oa-body{padding:22px 30px 18px}
.sn-oa-now{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:center}
.sn-oa-cover{width:96px;height:96px;border-radius:10px;border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}
.sn-oa-title{font-family:'NHaas',sans-serif;font-size:26px;line-height:1.05}
.sn-oa-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.1em;color:#6B6064;margin-top:6px;text-transform:uppercase}
.sn-oa-bar{margin-top:16px;height:8px;border-radius:4px;background:#1E1A1F22;overflow:hidden}
.sn-oa-fill{height:100%;transition:width 1s linear}
.sn-oa-times{display:flex;justify-content:space-between;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#6B6064;margin-top:6px}
.sn-oa-next{padding:14px 30px 8px;border-top:3px dashed #1E1A1F4D}
.sn-oa-next-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6B6064}
.sn-oa-next-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid #1E1A1F1F}
.sn-oa-next-row:last-child{border-bottom:0}
.sn-oa-next-t{font-size:15px}
.sn-oa-next-a{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:#6B6064;margin-left:10px;text-transform:uppercase}
.sn-oa-next-at{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;color:#6B6064;flex:none}
.sn-oa-foot{padding:14px 30px 18px;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;text-transform:uppercase;border-top:3px dashed #1E1A1F4D}
.sn-sched{margin-top:30px;box-shadow:6px 6px 0 var(--pink)}
.sn-srow{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 20px;border-bottom:2px dashed #1E1A1F22;color:var(--ink)}
.sn-srow:last-child{border-bottom:0}
.sn-srow.is-now{background:rgba(255,61,138,.12)}
.sn-srow-time{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:18px;letter-spacing:0.04em}
.sn-srow.is-now .sn-srow-time{color:#B33A25}
.sn-srow-show{font-family:'NHaas',sans-serif;font-size:18px;line-height:1.05}
.sn-srow-host{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:4px;text-transform:uppercase}
.sn-srow-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;padding:4px 10px;background:#F7EEDC;color:#6B6064;border:2px solid var(--ink);border-radius:999px;flex:none}
.sn-srow.is-now .sn-srow-tag{background:var(--pink);color:var(--cream)}
.sn-recent{margin-top:30px;box-shadow:6px 6px 0 var(--cyan)}
.sn-recent .dtrow{grid-template-columns:60px minmax(0,1fr) auto;gap:14px;padding:12px 20px}
.sn-recent-at{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.04em;color:#6B6064}
.sn-recent .dttitle{font-size:16px}
.sn-recent .dtdur{font-size:13px;letter-spacing:.14em;color:#B33A25}
/* the station page's last section is the dark band, so the cream run-out
   under it would be a strip of paper with nothing on it */
.cream-endsdark{padding-bottom:0}
.sn-dark{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:34px;align-items:start}
.sn-host{padding:24px 24px 22px;gap:12px}
.sn-host-row{display:flex;align-items:center;gap:16px}
.sn-host-arch{width:84px;height:96px;border-radius:999px 999px 12px 12px;border:3px solid var(--cream);flex:none}
.sn-host-name{font-family:'NHaas',sans-serif;font-size:26px;line-height:1}
.sn-host-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#B8AEDA;margin-top:6px}
.sn-host-bio{font-size:15px;line-height:1.5;color:#B8AEDA}
.sn-host-foot{display:flex;gap:14px;flex-wrap:wrap;padding-top:12px;border-top:2px dashed #F3EBD955;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em}
.sn-host-foot a{color:var(--pink)}
.sn-host-foot a+a{color:var(--cyan)}
.sn-host-foot a:hover{text-decoration:underline;text-underline-offset:3px}
.sn-others-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.sn-others-title{font-family:'NHaas','Arial Black',sans-serif;font-size:34px;text-transform:uppercase;line-height:1;text-shadow:0 0 14px rgba(34,211,238,.7)}
.sn-others-sub{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.11em;color:#B8AEDA}
.sn-others{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px}
.sn-ocard{border-radius:16px;background:#120F26;border:2px solid var(--cream);padding:14px 14px 12px;transition:transform .18s;color:var(--cream);display:block}
.sn-ocard:hover{transform:translateY(-4px);color:var(--cream)}
.sn-ocard-freq{font-size:22px;letter-spacing:.06em;line-height:1}
.sn-ocard-name{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;margin-top:8px}
.sn-ocard:hover .sn-ocard-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.sn-ocard-n{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:#B8AEDA;margin-top:4px}

/* ===========================================================
   schedule.html
   =========================================================== */
.sq-hero{position:relative;max-width:1440px;margin:0 auto;padding:60px var(--gutter) 0}
.sq-title{font-size:104px}
.sq-days{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.sq-day{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:9px 16px;border:2px solid #5B4E8A;background:transparent;color:#B8AEDA;display:inline-flex;align-items:center}
.sq-day:hover{color:var(--cream);border-color:var(--cream)}
.sq-day.is-on{background:var(--cyan);color:#0F0D22;border-color:var(--cyan);box-shadow:0 0 14px rgba(34,211,238,.7)}
.sq-day.is-on:hover{color:#0F0D22}
.sq-board{margin-top:30px;background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;box-shadow:8px 8px 0 var(--cyan);overflow:hidden}
.sq-scroll{overflow-x:auto}
.sq-inner{min-width:920px}
.sq-head{display:grid;grid-template-columns:90px minmax(0,1fr);border-bottom:3px solid var(--ink)}
.sq-head-cet{padding:12px 16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6B6064}
.sq-cols{display:grid;grid-template-columns:repeat(9,minmax(0,1fr))}
.sq-col{padding:12px 6px;text-align:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;border-left:2px dashed #1E1A1F22}
.sq-col:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.sq-slot{display:grid;grid-template-columns:90px minmax(0,1fr);border-bottom:2px dashed #1E1A1F22}
.sq-slot.is-now{background:rgba(255,61,138,.10)}
.sq-time{padding:14px 16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.04em;color:var(--ink)}
.sq-slot.is-now .sq-time{color:#B33A25}
.sq-cell{border-left:2px dashed #1E1A1F22;padding:6px;min-height:52px}
.sq-show{display:block;height:100%;border-radius:10px;border:2px solid var(--ink);padding:8px 10px;box-shadow:3px 3px 0 var(--ink);transition:transform .18s}
.sq-show:hover{transform:translate(-1px,-1px)}
.sq-show-name{font-family:'NHaas',sans-serif;font-size:14px;line-height:1.05}
.sq-show-host{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.04em;margin-top:4px;opacity:.9}
.sq-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 24px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:#6B6064}
.sq-ics{color:#B33A25;cursor:pointer;display:inline-flex;align-items:center}
.sq-ics:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
/* the phone list: one block per station rather than a nine-column grid */
.sq-list{display:none;padding:6px 0}
.sq-station{border-bottom:2px dashed #1E1A1F22;padding:14px 20px}
.sq-station:last-child{border-bottom:0}
.sq-station-name{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;display:inline-flex;align-items:center;min-height:40px}
.sq-station-name:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.sq-lrow{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;border-top:1px solid #1E1A1F1F;color:var(--ink)}
.sq-lrow:hover{color:var(--ink)}
.sq-lrow.is-now{color:#B33A25}
.sq-lrow-time{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.04em}
.sq-lrow-show{font-family:'NHaas',sans-serif;font-size:17px;line-height:1.05}
.sq-lrow-host{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:3px;text-transform:uppercase}
.sq-empty{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;padding:8px 0 0;text-transform:uppercase}

/* ===========================================================
   detail pages — responsive
   Same four breakpoints as the rest of the site.
   =========================================================== */
@media (max-width:1240px){
  .d-title{font-size:92px}
  .ar-title,.lb-title{font-size:96px}
  .sn-title{font-size:104px}
  .sq-title{font-size:92px}
  .rl-hero{grid-template-columns:380px minmax(0,1fr);gap:48px}
  .ar-hero{grid-template-columns:340px minmax(0,1fr);gap:48px}
  .lb-hero{grid-template-columns:320px minmax(0,1fr);gap:48px}
  .lb-rel{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sn-others{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rl-alike{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1080px){
  .d-hero{grid-template-columns:minmax(0,1fr)!important;gap:44px}
  .rl-art,.ar-art,.lb-art{max-width:420px}
  .d-2col,.d-2col-wide,.d-2col-narrow,.rl-more-grid,.ar-dark,.sn-dark,.lb-lower{grid-template-columns:minmax(0,1fr);gap:40px}
  .rl-side{position:static;top:auto}
  .rl-more{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lb-rel{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lb-demo-wrap{transform:none;max-width:560px}
  .ar-top .dtrow{grid-template-columns:52px minmax(0,1fr) 120px auto}
}
@media (max-width:860px){
  .d-title,.ar-title,.lb-title,.sn-title,.sq-title{font-size:64px}
  .sn-freq{font-size:44px}
  .rl-sleeve-title{font-size:40px}
  .lb-mono-txt{font-size:110px}
  .rl-more{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lb-rel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lb-roster,.ar-alike{grid-template-columns:minmax(0,1fr)}
  .sn-others{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lb-contact{grid-template-columns:minmax(0,1fr)}
  /* the nine-column board is a list of stations on a narrow screen */
  .sq-scroll{display:none}
  .sq-list{display:block}
  .ar-top .dtrow{grid-template-columns:52px minmax(0,1fr) auto}
  .ar-bar-wrap{display:none}
}
@media (max-width:560px){
  .d-title,.ar-title,.lb-title,.sn-title,.sq-title{font-size:42px;text-shadow:2px 2px 0 #E8508B,4px 4px 0 #F2A93B,6px 6px 0 #2F5FA6}
  .d-eyebrow{font-size:14px;letter-spacing:.18em}
  .d-lede{font-size:17px}
  .d-hero{padding-top:48px}
  .d-stats{gap:22px}
  .d-stat-n{font-size:28px}
  /* every pressable thing on a detail page gets a 40px tap box: the pills,
     the section chips that became links, and the small text links inside
     the credit card, the lore card and the host card */
  .d-pill,.rl-acard-why,.ar-acard-why,.lb-acard-why,.sn-srow-tag,.sq-day{min-height:40px;display:inline-flex;align-items:center}
  a.sec-chip,a.sched-chip,.ar-allshows,a.rl-fact-v,.d-eyebrow a,.rl-by a,.sn-host-foot a{min-height:40px;display:inline-flex;align-items:center}
  /* the eyebrow and the byline are prose, so their link keeps the line
     height it had and takes the extra room as padding instead */
  .d-eyebrow a,.rl-by a{padding:11px 0;margin:-11px 0}
  .d-ctas .cta{padding:13px 20px;font-size:16px}
  .rl-art,.ar-art,.lb-art{max-width:none}
  .rl-sleeve-title{font-size:30px}
  .rl-tape{width:62px;height:62px;right:-8px;top:-12px}
  .rl-more,.rl-alike,.lb-rel,.sn-others{grid-template-columns:minmax(0,1fr)}
  .rl-card,.rl-notes,.ar-lore{padding-left:18px;padding-right:18px}
  .rl-facts{grid-template-columns:minmax(0,1fr)}
  .rl-credit{grid-template-columns:minmax(0,1fr);gap:2px}
  .dtrow{grid-template-columns:44px minmax(0,1fr) auto;gap:10px;padding:14px 14px}
  .dtnum{width:36px;height:36px}
  .dttitle{font-size:16px}
  .lb-mono-txt{font-size:88px}
  .lb-pulse{right:0;top:-10px;font-size:12px;padding:7px 10px}
  .lb-demo-body{grid-template-columns:minmax(0,1fr);padding-left:18px;padding-right:18px}
  .lb-demo-head,.lb-demo-foot{padding-left:18px;padding-right:18px}
  .ar-rcard{grid-template-columns:84px minmax(0,1fr);gap:12px}
  .ar-rcard .d-sleeve{width:84px;height:84px}
  .ar-live{width:74px;height:74px;right:-6px;bottom:14px}
  .ar-label{flex-wrap:wrap;padding-left:18px;padding-right:18px}
  .sn-nameline{gap:10px}
  .sn-oa-body,.sn-oa-next,.sn-oa-foot{padding-left:18px;padding-right:18px}
  .sn-oa .ticket-head,.sn-oa .ticket-foot{padding-left:18px;padding-right:18px}
  .sn-oa-now{grid-template-columns:72px minmax(0,1fr);gap:12px}
  .sn-oa-cover{width:72px;height:72px}
  .sn-srow{grid-template-columns:auto minmax(0,1fr);gap:6px 12px;padding:14px 16px}
  .sn-srow-tag{grid-column:1/-1;justify-self:start;margin-top:4px}
  .sn-recent .dtrow{grid-template-columns:52px minmax(0,1fr) auto;padding:10px 14px}
  .sq-station{padding-left:16px;padding-right:16px}
  .sq-foot{padding:14px 16px}
  .sq-ics{min-height:40px}
}

/* ===========================================================
   PHASE 1B — the box in the header, the story, the event,
   the search and the plain pages.
   =========================================================== */

/* ---------- the instant answers under the header field ---------- */
/* The panel is absolutely placed and hidden until there is something in
   it, so the header cannot move when it opens. */
.search.has-drop{position:relative}
/* Positioning the pill lifts it into the paint layer above its static
   siblings, and the JOIN button next to it lost four pixels of its hard
   shadow to the pill's edge. Positioning JOIN too puts the DOM order back
   in charge without moving either of them. */
.header-right .btn-join{position:relative}
.sdrop{position:absolute;left:-2px;right:-2px;top:calc(100% + 10px);z-index:120;background:#120F26;border:2px solid var(--purple);border-radius:18px;box-shadow:0 0 24px rgba(139,92,246,.5),6px 6px 0 #0A0917;overflow:hidden}
.sdrop-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border-bottom:2px dashed #F3EBD91F;color:var(--cream)}
.sdrop-row:last-of-type{border-bottom:0}
.sdrop-row:hover,.sdrop-row.is-on{background:rgba(255,61,138,.16);color:var(--cream)}
.sdrop-mono{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;border:2px solid #0F0D22;flex:none;overflow:hidden}
.sdrop-mid{min-width:0}
.sdrop-title{display:block;font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sdrop-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;color:#B8AEDA;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sdrop-group{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:var(--cyan);flex:none}
.sdrop-none{padding:14px;font-size:15px;color:#B8AEDA}
.sdrop-all{display:block;padding:11px 14px;background:#0F0D22;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:var(--cyan);text-align:center}
.sdrop-all:hover,.sdrop-all.is-on{background:var(--cyan);color:#0F0D22}
.search-dot{cursor:pointer}
/* the matched words, wherever they are printed */
mark{background:#FFD166;color:#1E1A1F;padding:0 2px;border-radius:3px}
.sdrop mark{background:#FFD166;color:#0F0D22}

/* ===========================================================
   STORY — one page out of the Hub
   =========================================================== */
.st-hero{grid-template-columns:minmax(0,1fr) 520px;gap:56px}
.st-kickline{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.st-kicker{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:var(--cream);padding:5px 12px;border:2px solid var(--cream)}
.st-issue{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.08em;color:var(--cyan);text-shadow:0 0 10px rgba(34,211,238,.8)}
.st-title{font-size:78px;line-height:.9}
.st-dek{font-size:21px;max-width:620px}
.st-byline{display:flex;align-items:center;gap:16px;margin-top:28px;flex-wrap:wrap}
.st-face{width:52px;height:52px;border-radius:50%;border:3px solid var(--cream);flex:none}
.st-by-name{font-family:'NHaas',sans-serif;font-size:18px;color:var(--cream)}
.st-by-name:hover{color:var(--cyan);text-decoration:underline;text-underline-offset:4px}
.st-by-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.1em;color:#B8AEDA;margin-top:2px}
.st-acts{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.st-act{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:10px 18px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;box-shadow:3px 3px 0 var(--pink);cursor:pointer;min-height:40px}
.st-act:hover{background:#FFD166;color:#0F0D22}
.st-act-ghost{background:transparent;color:var(--cream);border:2px solid var(--cream);box-shadow:none}
.st-act-ghost:hover{background:var(--cream);color:#0F0D22}
.st-act-ghost.is-on{background:var(--pink);color:#0F0D22;border-color:var(--pink)}
.st-art{position:relative;width:100%;max-width:520px;transform:rotate(2deg)}
.st-cover{aspect-ratio:16/11;border:3px solid var(--ink);display:flex;align-items:flex-end;justify-content:flex-end;padding:16px}
.st-cover span{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#1E1A1F99;text-align:right}
.st-tape{position:absolute;left:-70px;bottom:-40px;width:200px;transform:rotate(-14deg);filter:drop-shadow(0 12px 14px rgba(0,0,0,.5))}
.st-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:64px;align-items:start}
.st-article{max-width:720px;font-size:19px;line-height:1.65;color:#2A2428}
.st-article p{margin:0 0 22px}
.st-article p:last-child{margin-bottom:0}
.st-drop{float:left;font-family:'NHaas',sans-serif;font-size:96px;line-height:.8;margin:8px 14px 0 0;color:var(--ink);text-shadow:4px 4px 0 var(--pink)}
.st-quote{margin:34px 0;padding:26px 30px;border-left:8px solid var(--pink);background:#F7EEDC;border-radius:0 22px 22px 0;box-shadow:6px 6px 0 var(--ink)}
.st-quote-text{font-family:'NHaas',sans-serif;font-size:32px;line-height:1.08;color:var(--ink);text-wrap:balance}
.st-quote-by{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:14px}
.st-tapecard{margin:34px 0;display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:18px;align-items:center;background:var(--ink);color:var(--cream);border-radius:18px;padding:14px 18px 14px 14px;box-shadow:8px 8px 0 var(--purple);cursor:pointer;width:100%;text-align:left;transition:transform .18s}
.st-tapecard:hover{transform:translate(-2px,-2px);color:var(--cream)}
.st-tapecard .d-sleeve{width:96px;height:96px;border-radius:10px;border-color:var(--cream)}
.st-tapecard .d-sleeve-title{font-size:14px;left:8px;right:8px;bottom:8px}
.st-tapecard-k{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:var(--purple)}
.st-tapecard-t{display:block;font-family:'NHaas',sans-serif;font-size:24px;line-height:1.05;margin-top:6px}
.st-tapecard-m{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#B8AEDA;margin-top:4px;text-transform:uppercase}
.st-tapecard-go{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:12px 20px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;box-shadow:3px 3px 0 var(--pink);border-radius:999px;flex:none;white-space:nowrap}
.st-photo{margin:34px 0}
.st-photo-box{aspect-ratio:16/9;border-radius:22px;border:3px solid var(--ink);box-shadow:8px 8px 0 #FF8A3D;display:flex;align-items:flex-end;padding:14px}
.st-photo-box span{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#1E1A1F99}
.st-photo-cap{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:12px;text-transform:uppercase}
.st-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:34px;padding-top:24px;border-top:3px dashed #1E1A1F33}
.st-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:7px 14px;border:2px solid var(--ink);color:var(--ink);border-radius:999px;min-height:34px;display:inline-flex;align-items:center}
.st-tag:hover{background:var(--ink);color:var(--cream)}
.st-aside{display:flex;flex-direction:column;gap:26px;position:sticky;top:24px}
.st-inthis{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:22px 24px;box-shadow:8px 8px 0 var(--purple)}
.st-inthis-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#6B6064}
.st-inthis .dtrow{grid-template-columns:40px minmax(0,1fr) auto;gap:12px;padding:10px 0;border-bottom:2px dashed #1E1A1F22}
.st-inthis .dtrow:last-of-type{border-bottom:0}
.st-inthis .dtnum{width:34px;height:34px;font-size:12px}
.st-inthis .dttitle{font-size:15px}
.st-inthis .dtdur{font-size:13px}
.st-loadall{display:inline-flex;align-items:center;margin-top:16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:9px 16px;background:var(--ink);color:var(--cream);border:2px solid var(--ink);border-radius:999px;box-shadow:3px 3px 0 var(--pink);cursor:pointer;min-height:40px}
.st-loadall:hover{background:var(--pink);color:#0F0D22;border-color:var(--pink)}
.st-author{border-radius:22px;background:var(--ink);color:var(--cream);padding:22px 24px;box-shadow:8px 8px 0 #FFD166}
.st-author-row{display:flex;align-items:center;gap:14px}
.st-author-face{width:56px;height:56px;border-radius:50%;border:3px solid var(--cream);flex:none}
.st-author-name{font-family:'NHaas',sans-serif;font-size:20px}
.st-author-role{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.1em;color:#B8AEDA;margin-top:2px}
.st-author-bio{font-size:15px;line-height:1.5;color:#B8AEDA;margin-top:12px}
.st-author-foot{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em}
.st-author-foot a{color:#FFD166}
.st-author-foot a+a{color:var(--cyan)}
.st-author-foot a:hover{text-decoration:underline;text-underline-offset:3px}
.st-board{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:18px 22px;box-shadow:6px 6px 0 var(--cyan);display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);transition:transform .18s}
.st-board:hover{color:var(--ink);transform:translate(-2px,-2px)}
.st-board-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6B6064}
.st-board-t{font-size:16px;margin-top:6px;line-height:1.3}
.st-board-go{font-size:22px;color:#B33A25;flex:none}
.st-more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:40px}
.st-more .hubtitle{color:var(--cream)}
.st-more .hubcard-dek{color:#B8AEDA}
.st-more .hubcard-img{border-color:#0F0D22}
.st-more .hubcard-read{color:#9B93BF}
.st-more .hubcard-by{color:#9B93BF}

/* ===========================================================
   EVENT — one night
   =========================================================== */
.ev-hero{grid-template-columns:300px minmax(0,1fr);gap:64px}
.ev-date-wrap{position:relative;width:100%;max-width:300px}
.ev-date{border-radius:24px;border:3px solid var(--ink);color:#0F0D22;box-shadow:12px 12px 0 var(--ink);padding:26px 24px;display:flex;flex-direction:column;align-items:center;line-height:1}
.ev-date-dow{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.1em}
.ev-date-n{font-family:'NHaas',sans-serif;font-size:160px;letter-spacing:-.04em;margin-top:6px}
.ev-date-mon{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:22px;letter-spacing:0.1em}
.ev-date-rule{width:100%;height:3px;background:#0F0D22;margin:20px 0 16px;opacity:.5}
.ev-date-times{display:flex;justify-content:space-between;width:100%;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.07em}
.ev-count{position:absolute;right:-26px;top:-16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;padding:8px 14px;background:var(--ink);color:var(--cream);border:2px solid var(--cream);border-radius:999px;transform:rotate(6deg);white-space:nowrap}
.ev-lineup{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.ev-lpill{display:inline-flex;align-items:center;gap:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:7px 14px 7px 8px;border:2px solid var(--cream);border-radius:999px;min-height:34px}
.ev-lpill-dot{width:22px;height:22px;border-radius:50%;border:2px solid #0F0D22;flex:none}
.ev-cta{display:inline-flex;align-items:center;gap:12px;background:var(--cream);color:#0F0D22;padding:16px 28px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:18px;letter-spacing:0.06em;cursor:pointer;border:3px solid #0F0D22;box-shadow:5px 5px 0 var(--pink);border-radius:999px;min-height:44px}
.ev-cta:hover{background:#FFD166;color:#0F0D22;box-shadow:5px 5px 0 var(--cyan)}
.ev-cta-going{background:transparent;color:var(--cream);border:3px solid var(--cream);box-shadow:5px 5px 0 var(--cyan)}
.ev-cta-going:hover{background:var(--cream);color:#0F0D22}
.ev-cta-going.is-on{background:var(--cream);color:#0F0D22}
.ev-cta-ghost{background:transparent;color:var(--cream);border:3px solid #F3EBD955;box-shadow:none;padding:16px 22px}
.ev-cta-ghost:hover{background:transparent;color:var(--cream);border-color:var(--cream);box-shadow:none}
.ev-acts{display:flex;flex-direction:column;gap:18px;margin-top:30px}
.ev-act{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:20px;align-items:center;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:14px;color:var(--ink)}
.ev-act-arch{position:relative;width:110px;height:124px;border-radius:999px 999px 12px 12px;border:3px solid var(--ink);flex:none}
.ev-act-slot{position:absolute;left:50%;top:-10px;transform:translateX(-50%);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:2px 8px;background:var(--ink);color:var(--cream);border-radius:999px;white-space:nowrap}
.ev-act-name{font-family:'NHaas','Arial Black',sans-serif;font-size:26px;line-height:1.05;color:var(--ink)}
.ev-act-name:hover{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.ev-act-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:5px;text-transform:uppercase}
.ev-act-what{font-size:15px;color:#5A5147;margin-top:8px;line-height:1.45}
.ev-act-play{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:10px 16px;background:var(--ink);color:var(--cream);border:2px solid var(--ink);border-radius:999px;cursor:pointer;white-space:nowrap;min-height:40px}
.ev-act-play:hover{background:var(--pink);color:#0F0D22;border-color:var(--pink)}
.ev-mix{margin-top:26px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;background:var(--ink);color:var(--cream);border-radius:18px;padding:18px 22px;box-shadow:8px 8px 0 var(--cyan);cursor:pointer;width:100%;text-align:left;transition:transform .18s}
.ev-mix:hover{transform:translate(-2px,-2px);color:var(--cream)}
.ev-mix-k{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:var(--cyan)}
.ev-mix-t{display:block;font-family:'NHaas',sans-serif;font-size:24px;line-height:1.05;margin-top:6px}
.ev-side{display:flex;flex-direction:column;gap:26px;position:sticky;top:24px}
.ev-venue{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:22px 24px;box-shadow:8px 8px 0 var(--cyan)}
.ev-venue-name{font-family:'NHaas',sans-serif;font-size:28px;line-height:1;margin-top:8px}
.ev-venue-addr{font-size:15px;color:#5A5147;margin-top:6px;line-height:1.5}
.ev-map{display:block;margin-top:16px;aspect-ratio:16/9;border-radius:14px;border:3px solid var(--ink);background:repeating-linear-gradient(0deg,#1E1A1F14 0 1px,transparent 1px 24px),repeating-linear-gradient(90deg,#1E1A1F14 0 1px,transparent 1px 24px),#EFE3C8;position:relative;color:var(--ink)}
.ev-map:hover{color:var(--ink)}
.ev-map-pin{position:absolute;left:52%;top:44%;width:22px;height:22px;border-radius:50%;background:var(--pink);border:3px solid var(--ink);box-shadow:0 0 0 6px rgba(255,61,138,.3)}
.ev-map-lab{position:absolute;left:12px;bottom:10px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#6B6064}
.ev-map:hover .ev-map-lab{color:#B33A25;text-decoration:underline;text-underline-offset:3px}
.ev-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-top:16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase}
.ev-fact-l{color:#6B6064;font-size:12px}
.ev-fact-v{margin-top:2px;display:block}
.ev-posted{border-radius:22px;background:var(--ink);color:var(--cream);padding:22px 24px;box-shadow:8px 8px 0 #FFD166}
.ev-posted-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#FFD166}
.ev-posted-t{font-family:'NHaas',sans-serif;font-size:22px;line-height:1.05;margin-top:8px}
.ev-posted-b{font-size:15px;line-height:1.5;color:#B8AEDA;margin-top:8px}
.ev-posted-foot{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em}
.ev-posted-foot a,.ev-posted-foot button{color:#FFD166;background:none;border:0;padding:0;font:inherit;cursor:pointer;letter-spacing:.14em;min-height:34px}
.ev-posted-foot button{color:var(--cyan)}
.ev-posted-foot a:hover,.ev-posted-foot button:hover{text-decoration:underline;text-underline-offset:3px}
.ev-more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:34px}
.ev-mcard{display:grid;grid-template-columns:70px minmax(0,1fr);gap:16px;align-items:center;border-radius:22px;background:#120F26;border:2px solid var(--cream);padding:16px;transition:transform .18s;color:var(--cream)}
.ev-mcard:hover{transform:translateY(-6px);color:var(--cream)}
.ev-mcard-date{width:70px;height:70px;border-radius:12px;color:#0F0D22;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;flex:none}
.ev-mcard-day{font-family:'NHaas',sans-serif;font-size:28px}
.ev-mcard-mon{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;margin-top:3px}
.ev-mcard-what{font-family:'NHaas',sans-serif;font-size:19px;line-height:1.05}
.ev-mcard:hover .ev-mcard-what{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.ev-mcard-where{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#B8AEDA;margin-top:5px;text-transform:uppercase}
.ev-mcard-price{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:var(--cyan);margin-top:6px}
.ev-none{font-size:17px;color:#B8AEDA;margin-top:26px}

/* ===========================================================
   SEARCH — the whole station, one box
   =========================================================== */
.se-hero{position:relative;max-width:1440px;margin:0 auto;padding:60px var(--gutter) 0}
.se-field{display:flex;align-items:center;gap:16px;border:3px solid var(--purple);border-radius:999px;background:#120F26;padding:18px 28px;max-width:900px;box-shadow:0 0 24px rgba(139,92,246,.5),6px 6px 0 #0F0D22}
.se-dot{width:14px;height:14px;border-radius:50%;background:var(--pink);box-shadow:0 0 8px var(--pink);animation:blip 1.4s steps(1,end) infinite;flex:none}
.se-input{border:0;outline:0;background:transparent;font-family:'NHaas',sans-serif;font-size:44px;color:var(--cream);width:100%;letter-spacing:-.01em;min-width:0}
.se-input::placeholder{color:#6E639B}
.se-go{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;padding:12px 22px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;border-radius:999px;box-shadow:3px 3px 0 var(--pink);cursor:pointer;flex:none;min-height:44px}
.se-go:hover{background:#FFD166;color:#0F0D22}
.se-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.se-chip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:9px 16px;cursor:pointer;border:2px solid #5B4E8A;background:transparent;color:#B8AEDA;border-radius:999px;min-height:40px;display:inline-flex;align-items:center}
.se-chip:hover{color:var(--cream);border-color:var(--cream)}
.se-chip.is-on{background:var(--cyan);color:#0F0D22;border-color:var(--cyan);box-shadow:0 0 14px rgba(34,211,238,.7)}
.se-chip.is-on:hover{color:#0F0D22}
.se-count{font-family:'GT America',sans-serif;font-weight:400;font-size:14px;letter-spacing:0.1em;color:#B8AEDA;margin-top:22px}
.se-try{background:none;border:0;padding:0;font:inherit;letter-spacing:.14em;color:var(--cream);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.se-try:hover{color:var(--cyan)}
.se-groups{max-width:1440px;margin:0 auto;padding:88px var(--gutter) 0;position:relative;z-index:1;display:flex;flex-direction:column;gap:56px}
.se-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.se-group-title{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:48px;line-height:.9;letter-spacing:-0.02em;text-transform:uppercase;color:var(--ink)}
.se-group-chip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;color:var(--ink);border:2px solid var(--ink);padding:8px 16px;background:#F7EEDC;border-radius:999px;cursor:pointer;min-height:40px;display:inline-flex;align-items:center}
.se-group-chip:hover{background:var(--ink);color:var(--cream)}
.se-table{margin-top:24px;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;overflow:hidden}
.se-table>*:last-child{border-bottom:0}
.se-row{display:grid;width:100%;grid-template-columns:64px minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:12px 20px;border-bottom:2px dashed #1E1A1F22;cursor:pointer;color:var(--ink);text-align:left;transition:background .18s,transform .18s}
.se-row:hover{background:rgba(30,26,31,.08);transform:translateX(6px);color:var(--ink)}
.se-mono{width:64px;height:64px;border:3px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:18px;flex:none;overflow:hidden}
.se-mid{min-width:0}
.se-title{display:block;font-size:18px;line-height:1.3}
.se-row:hover .se-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pink)}
.se-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-top:3px;text-transform:uppercase}
.se-where{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:3px 10px;border:2px solid var(--ink);color:var(--ink);background:#F7EEDC;border-radius:999px;flex:none;white-space:nowrap}
.se-action{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:#B33A25;white-space:nowrap;flex:none}
.se-empty{text-align:center;padding:60px 0 20px}
.se-empty-t{font-family:'NHaas',sans-serif;font-size:44px;line-height:1;text-shadow:3px 3px 0 var(--pink)}
.se-empty-b{font-size:17px;color:#5A5147;margin-top:14px}
.se-empty-chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:24px}
.se-hint{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:9px 16px;border:2px solid var(--ink);color:var(--ink);background:#F7EEDC;border-radius:999px;box-shadow:3px 3px 0 var(--pink);cursor:pointer;min-height:40px;display:inline-flex;align-items:center}
.se-hint:hover{background:var(--ink);color:var(--cream)}

/* ===========================================================
   THE PLAIN PAGES — submit, for artists, terms, privacy, contact
   =========================================================== */
.lg-hero{position:relative;max-width:1440px;margin:0 auto;padding:60px var(--gutter) 0}
.lg-title{font-size:104px;max-width:900px}
.lg-lede{max-width:620px}
.lg-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:64px;align-items:start}
.lg-nav{position:sticky;top:24px;display:flex;flex-direction:column;gap:6px}
.lg-nav-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6B6064;margin-bottom:8px}
.lg-toclink+.lg-nav-k{margin-top:22px}
.lg-toclink{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:8px 14px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);border-radius:999px;min-height:40px;display:inline-flex;align-items:center}
.lg-toclink:hover,.lg-toclink.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
.lg-other{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:#B33A25;padding:6px 0;min-height:34px;display:flex;align-items:center}
.lg-other:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.lg-article{max-width:720px;font-size:18px;line-height:1.65;color:#2A2428}
.lg-article h2{margin:0 0 14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:40px;line-height:.95;letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);scroll-margin-top:24px}
.lg-article p{margin:0 0 18px}
.lg-article p.lg-gap{margin-bottom:34px}
.lg-article a{color:#B33A25;text-decoration:underline;text-underline-offset:3px}
.lg-article a:hover{color:var(--ink)}
.lg-h-pink{text-shadow:3px 3px 0 var(--pink)}
.lg-h-cyan{text-shadow:3px 3px 0 var(--cyan)}
.lg-h-purple{text-shadow:3px 3px 0 var(--purple)}
.lg-h-orange{text-shadow:3px 3px 0 #FF8A3D}
.lg-mail{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;letter-spacing:0.04em;color:#B33A25;text-decoration:underline;text-underline-offset:3px}
.lg-steps{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;box-shadow:8px 8px 0 var(--cyan);overflow:hidden;margin:0 0 34px}
.lg-step{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 22px;border-bottom:2px dashed #1E1A1F22}
.lg-step:last-child{border-bottom:0}
.lg-step-n{width:44px;height:44px;border-radius:999px;color:#0F0D22;display:flex;align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:20px;border:2px solid var(--ink);flex:none}
.lg-step-t{font-family:'NHaas',sans-serif;font-size:20px;line-height:1.05}
.lg-step-b{font-size:15px;color:#5A5147;margin-top:4px;line-height:1.45}
.lg-step-w{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:#6B6064;white-space:nowrap}
.lg-cta{border-radius:22px;background:var(--ink);color:var(--cream);padding:24px 26px;box-shadow:8px 8px 0 #FFD166;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.lg-cta-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#FFD166}
.lg-cta-t{font-family:'NHaas',sans-serif;font-size:26px;line-height:1.05;margin-top:6px}
.lg-cta-go{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;padding:12px 24px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;border-radius:999px;box-shadow:3px 3px 0 var(--pink);min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.lg-cta-go:hover{background:#FFD166;color:#0F0D22}
.lg-stamp{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6B6064;margin-top:34px;text-transform:uppercase}
.lg-list{margin:0 0 18px;padding-left:22px}
.lg-list li{margin-bottom:8px}

/* ===========================================================
   STORIES — the archive
   =========================================================== */
.sa-hero{position:relative;max-width:1440px;margin:0 auto;padding:60px var(--gutter) 0}
.sa-title{font-size:104px}
.sa-empty{font-size:18px;color:#5A5147;padding:40px 0}

/* ===========================================================
   PHASE 1B — the narrower widths
   =========================================================== */
@media (max-width:1100px){
  .st-hero,.ev-hero{grid-template-columns:minmax(0,1fr)}
  .st-art,.ev-date-wrap{max-width:none;transform:none}
  .st-title{font-size:56px}
  .ev-date-n{font-size:120px}
  .st-grid,.lg-grid{grid-template-columns:minmax(0,1fr);gap:34px}
  .st-aside,.ev-side,.lg-nav{position:static;top:auto}
  .st-article,.lg-article{max-width:none}
  .st-more,.ev-more{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lg-nav{flex-direction:row;flex-wrap:wrap;align-items:center}
  .lg-nav-k{width:100%;margin-bottom:0}
  .lg-toclink+.lg-nav-k{margin-top:14px}
  .lg-title,.sa-title{font-size:64px}
  .se-input{font-size:32px}
}
@media (max-width:860px){
  .sdrop{left:0;right:0}
  .st-tape{width:140px;left:-20px;bottom:-26px}
}
@media (max-width:640px){
  .st-hero,.ev-hero,.st-grid,.lg-grid{gap:26px}
  .st-title{font-size:40px}
  .st-dek{font-size:17px}
  .st-article{font-size:17px}
  .st-drop{font-size:64px;margin-right:10px}
  .st-quote{padding:18px 20px;margin:26px 0}
  .st-quote-text{font-size:24px}
  .st-tapecard{grid-template-columns:64px minmax(0,1fr);padding:12px}
  .st-tapecard .d-sleeve{width:64px;height:64px}
  .st-tapecard-go{grid-column:1/-1;justify-self:start;margin-top:4px}
  .st-acts{margin-left:0;width:100%}
  .st-more,.ev-more{grid-template-columns:minmax(0,1fr)}
  .st-photo-box{border-radius:14px}
  .st-tape{position:static;display:block;width:120px;margin:14px auto 0;transform:rotate(-8deg)}
  .ev-date-n{font-size:96px}
  .ev-date{padding:18px 16px}
  .ev-count{right:0;top:-12px;font-size:12px;padding:6px 10px}
  .ev-act{grid-template-columns:72px minmax(0,1fr);gap:12px}
  .ev-act-arch{width:72px;height:84px}
  .ev-act-play{grid-column:1/-1;justify-self:start;margin-top:4px}
  .ev-mix{grid-template-columns:minmax(0,1fr)}
  .ev-facts{grid-template-columns:1fr}
  .ev-venue,.ev-posted,.st-inthis,.st-author,.st-board{padding-left:18px;padding-right:18px}
  .se-field{padding:12px 16px;gap:10px;flex-wrap:wrap}
  .se-input{font-size:24px;flex:1 1 60%}
  .se-go{font-size:14px;padding:10px 16px}
  .se-group-title{font-size:34px}
  .se-row{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:12px 14px}
  .se-mono{width:48px;height:48px;font-size:15px}
  .se-where,.se-action{grid-column:1/-1;justify-self:start;margin-top:2px}
  .se-groups{gap:40px}
  .lg-title,.sa-title{font-size:40px}
  .lg-article h2{font-size:30px}
  .lg-step{grid-template-columns:44px minmax(0,1fr);gap:12px;padding:14px 16px}
  .lg-step-w{grid-column:1/-1;margin-top:4px}
  .lg-steps{box-shadow:5px 5px 0 var(--cyan)}
  .se-empty-t{font-size:30px}
}

/* ===========================================================
   PHASE 1B — the thumb
   Below 641px every control the new pages carry is at least
   40px tall. Links inside running text get the height from
   vertical padding, which grows the hit area without moving
   the line they sit on.
   =========================================================== */
@media (max-width:640px){
  .st-tag,.lg-other,.lg-toclink,.se-chip,.se-hint,.se-group-chip,#sa-chips .hubchip{min-height:40px}
  .se-input{min-height:40px}
  .st-article a,.lg-article a,.lg-mail,.st-by-name,.ev-act-name,.sa-empty a{padding-block:10px}
  /* the 12px foot links need more of it to clear 40 */
  .se-try,.st-author-foot a,.ev-posted-foot a,.ev-posted-foot button{padding-block:13px}
  .ev-act-name{display:inline-block}
  .st-board{min-height:40px}
}

/* ===========================================================
   PHASE 2 — the member area
   Join, My tapes, Mixtapes and the Inbox, plus the three things
   they add to every other page: the signed-in end of the header,
   the one-line toast under TAPE IT, and the sheet the + MIXTAPE
   button opens. Values are lifted from the design-v3 templates
   unchanged, the way the rest of this file was.
   =========================================================== */

/* ---------- the signed-in end of the header ----------
   The row keeps the height it had signed out (63px to the bottom
   of the pills), so nothing measured off the header moves when
   somebody signs in: every control here is 41px tall, the same as
   the JOIN pill it replaces. */
.hdr-pill,.hdr-card{height:41px;display:inline-flex;align-items:center;flex:none;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.05em;
  color:var(--cream);border:2px solid #F3EBD955;cursor:pointer;white-space:nowrap}
.hdr-pill{padding:0 13px}
.hdr-pill:hover,.hdr-card:hover{background:var(--pink);color:#0F0D22;border-color:var(--pink)}
.hdr-bell{width:44px;padding:0;justify-content:center;position:relative}
.hdr-bell-ico{font-size:17px;line-height:1}
/* the count rides the corner of the bell rather than sitting beside it, so the
   member's end of the header stays inside the row it was drawn in */
.hdr-bell-n{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 5px;
  background:#2A2440;color:#B8AEDA;font-size:12px;letter-spacing:.02em;border:2px solid #17132E}
.hdr-bell.has-unread .hdr-bell-n{background:var(--pink);color:#0F0D22;box-shadow:0 0 10px rgba(255,61,138,.7)}
.hdr-card{gap:8px;padding:0 14px 0 5px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;
  border-radius:999px;box-shadow:3px 3px 0 var(--cyan)}
.hdr-card:hover{background:#FFD166;color:#0F0D22;border-color:#0F0D22}
.hdr-face{width:29px;height:29px;flex:none;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(160deg,#FF3D8A,#8B5CF6);color:#0F0D22;
  font-family:'NHaas','Arial Black',sans-serif;font-size:14px;line-height:1}
.hdr-name{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* The nav is what it is; the box that gives ground when the member's pills
   arrive is the search field. Without this the pills' own words wrap and the
   header grows past the 63px everything else is measured off. */
.navpill{white-space:nowrap}
.nav{flex:none}
.header-right{min-width:0}
.site-header .search{min-width:120px}
.site-header.is-member .search{width:210px}

/* the member's doors inside the phone menu */
.menu-member{display:flex;flex-direction:column;gap:14px;margin-top:26px}
.menu-who{display:flex;align-items:center;gap:12px}
.menu-face{width:44px;height:44px;flex:none;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(160deg,#FF3D8A,#8B5CF6);color:#0F0D22;
  font-family:'NHaas','Arial Black',sans-serif;font-size:19px;line-height:1}
.menu-whoname{font-family:'NHaas','Arial Black',sans-serif;font-size:26px;line-height:1;color:var(--cream)}
.menu-mrow{display:flex;gap:10px;flex-wrap:wrap}
.menu-mlink{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.06em;
  color:var(--cream);border:2px solid #F3EBD98A;cursor:pointer}
.menu-mlink:hover{background:var(--cream);color:#0F0D22;border-color:var(--cream)}
.menu-mbadge{min-width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;
  justify-content:center;padding:0 6px;background:var(--pink);color:#0F0D22;font-size:12px;letter-spacing:.04em}
.menu-mout{border-color:#B33A25;color:#FF8A3D}
.menu-mout:hover{background:#B33A25;color:var(--cream);border-color:#B33A25}

/* ---------- the one line a signed-out reader gets ---------- */
.tx-toast{position:fixed;left:16px;bottom:24px;z-index:300;max-width:min(440px,calc(100vw - 32px));
  background:var(--ink);color:var(--cream);border:2px solid var(--cyan);border-radius:999px;
  padding:13px 22px;font-size:14px;line-height:1.35;box-shadow:0 14px 28px rgba(0,0,0,.5);
  transform:translateY(24px);opacity:0;transition:transform .3s cubic-bezier(.2,.9,.25,1.04),opacity .3s}
.tx-toast.is-up{transform:translateY(0);opacity:1}
.tx-toast a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.tx-toast a:hover{color:var(--cream)}

/* ---------- the sheet ---------- */
.tx-sheet{position:fixed;inset:0;z-index:320;display:flex;align-items:center;justify-content:center;
  padding:24px;opacity:0;transition:opacity .24s}
.tx-sheet.is-up{opacity:1}
.tx-sheet-dim{position:absolute;inset:0;background:rgba(10,9,23,.76)}
.tx-sheet-card{position:relative;width:min(620px,100%);max-height:min(760px,calc(100vh - 48px));
  display:flex;flex-direction:column;background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);
  border-radius:22px;box-shadow:10px 10px 0 var(--pink);overflow:hidden;
  transform:translateY(14px) scale(.98);transition:transform .24s cubic-bezier(.2,.9,.25,1.04)}
.tx-sheet.is-up .tx-sheet-card{transform:none}
.tx-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 22px 14px;border-bottom:3px dashed #1E1A1F33}
.tx-sheet-title{font-family:'NHaas','Arial Black',sans-serif;font-size:24px;line-height:1.05;
  text-transform:uppercase;min-width:0}
.tx-sheet-x{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;
  border:2px solid var(--ink);background:#F7EEDC;cursor:pointer;font-size:15px}
.tx-sheet-x:hover{background:var(--ink);color:var(--cream)}
.tx-sheet-body{padding:18px 22px 22px;overflow:auto;display:flex;flex-direction:column;gap:14px}
.tx-sheet-note{margin:0;font-size:15px;line-height:1.5;color:#5A5147}
.tx-sheet-go{justify-content:center;border-radius:999px;font-size:15px;padding:13px 22px}
.tx-sheet-list{display:flex;flex-direction:column;gap:10px}
.tx-pick{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:10px;align-items:center;
  padding:10px 12px;border:2px solid #1E1A1F22;border-radius:14px;background:#FFFDF7}
.tx-pick-chip{width:34px;height:34px;border-radius:10px;border:2px solid var(--ink)}
.tx-pick-mid{min-width:0}
.tx-pick-name{display:block;font-size:16px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tx-pick-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:2px;text-transform:uppercase}
.tx-pick-side{min-height:40px;display:inline-flex;align-items:center;padding:0 12px;border:2px solid var(--ink);
  background:#F7EEDC;color:var(--ink);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:12px;letter-spacing:0.06em;cursor:pointer}
.tx-pick-side:hover{background:var(--ink);color:var(--cream)}
.tx-pick-side.is-on{background:#2F6B5E;border-color:#2F6B5E;color:var(--cream)}
/* row + pill, sharing the underline the row used to draw itself */
.dtrow-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  border-bottom:2px dashed #1E1A1F22;padding-right:16px;transition:background .18s}
.dtrow-wrap:hover{background:rgba(30,26,31,.08)}
.dtrow-wrap>.dtrow{border-bottom:0}
.dtrow-wrap>.dtrow:hover{background:transparent}
.d-table>.dtrow-wrap:last-child,.st-inthis .dtrow-wrap:last-child{border-bottom:0}
.dtrow-mix{margin-left:12px}
@media (max-width:640px){
  .dtrow-wrap{grid-template-columns:minmax(0,1fr);padding:0 16px 12px}
  .dtrow-mix{margin-left:0;justify-self:start}
  .dtrow-wrap>.dtrow{padding-bottom:6px}
}

.tx-mixbtn{min-height:34px;display:inline-flex;align-items:center;padding:0 12px;border:2px solid var(--ink);
  color:var(--ink);background:transparent;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:12px;letter-spacing:0.06em;cursor:pointer;white-space:nowrap}
.tx-mixbtn:hover{background:var(--ink);color:var(--cream)}

/* ===========================================================
   join.html
   =========================================================== */
.jn-hero{grid-template-columns:minmax(0,1.1fr) 560px;padding-bottom:100px}
.jn-title{font-size:110px}
.jn-perks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:34px;max-width:620px}
.jn-perk{display:flex;gap:12px;align-items:flex-start}
.jn-perk-ico{width:34px;height:34px;border-radius:50%;border:2px solid #0F0D22;flex:none;display:flex;
  align-items:center;justify-content:center;font-size:15px;color:#0F0D22}
.jn-perk-name{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.06em;color:var(--cream)}
.jn-perk-text{font-size:14px;color:#B8AEDA;line-height:1.4;margin-top:2px}

.jn-cardwrap{position:relative;transform:rotate(-1.5deg)}
.jn-tape{position:absolute;left:34px;top:-16px;width:110px;height:30px;background:rgba(243,235,217,.42);
  transform:rotate(-5deg);z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.jn-card{background:#F7EEDC;color:var(--ink);border-radius:22px;box-shadow:0 26px 50px rgba(0,0,0,.5);
  -webkit-mask-image:radial-gradient(circle at 0 62px,transparent 16px,#000 17px),radial-gradient(circle at 100% 62px,transparent 16px,#000 17px);
  -webkit-mask-composite:source-in;
  mask-image:radial-gradient(circle at 0 62px,transparent 16px,#000 17px),radial-gradient(circle at 100% 62px,transparent 16px,#000 17px);
  mask-composite:intersect}
.jn-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:18px 30px 14px;border-bottom:3px dashed #1E1A1F33}
.jn-modes{display:flex;gap:8px}
.jn-mode{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;
  padding:8px 14px;min-height:40px;display:inline-flex;align-items:center;
  border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer}
.jn-mode.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
.jn-stamp{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;
  color:var(--cream);background:var(--ink);padding:6px 12px;white-space:nowrap}
.jn-body{padding:24px 30px 20px}
.jn-title-2{font-family:'NHaas','Arial Black',sans-serif;font-size:34px;line-height:.98;
  text-transform:uppercase;text-shadow:3px 3px 0 var(--pink)}
.jn-dek{font-size:15px;color:#5A5147;margin-top:8px;line-height:1.5}
.jn-fields{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.jn-lbl{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-bottom:6px}
.jn-input{display:flex;align-items:center;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;
  padding:0 16px}
.jn-input:focus-within{outline:3px solid var(--cyan);outline-offset:3px}
.jn-input input{border:0;outline:0;background:transparent;font-family:'GT America',sans-serif;
  font-size:16px;color:var(--ink);width:100%;padding:12px 0}
.jn-roles{display:flex;gap:8px;flex-wrap:wrap}
.jn-role{display:flex;align-items:center;gap:8px;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:13px;letter-spacing:0.06em;padding:10px 14px;border:2px solid var(--ink);
  background:#F7EEDC;color:var(--ink);cursor:pointer}
.jn-role.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--cyan)}
.jn-role-ico{font-size:13px}
.jn-rolenote{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:8px;text-transform:uppercase;line-height:1.5}
.jn-submit{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;margin-top:22px;
  background:var(--ink);color:var(--cream);padding:15px 24px;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:16px;letter-spacing:0.06em;cursor:pointer;border:3px solid var(--ink);
  box-shadow:5px 5px 0 var(--pink)}
.jn-submit:hover{background:var(--pink);color:#0F0D22}
.jn-err{margin-top:14px;padding:12px 16px;border-radius:12px;background:#B33A25;color:#FFF6F2;
  font-size:14px;line-height:1.45}
.jn-sent{margin-top:16px;padding:14px 16px;border-radius:12px;background:var(--ink);color:var(--cream)}
.jn-sent p{margin:0;font-size:14px;line-height:1.45}
.jn-sent-k{color:#5FE38A;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;letter-spacing:0.06em}
.jn-devlink{display:inline-flex;align-items:center;min-height:40px;margin-top:12px;padding:0 16px;
  background:#5FE38A;color:#0F0D22;border:2px solid #0F0D22;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:13px;letter-spacing:0.06em;cursor:pointer}
.jn-devlink:hover{background:var(--cream)}
.jn-devnote{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.07em;color:#B8AEDA;margin-top:8px;line-height:1.5}
.jn-or{display:flex;align-items:center;gap:12px;margin:18px 0 0;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6B6064}
.jn-or span{flex:1;height:2px;background:#1E1A1F22}
.jn-pwtoggle{display:block;width:100%;text-align:center;margin-top:12px;min-height:40px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;
  color:#B33A25;cursor:pointer}
.jn-pwtoggle:hover{text-decoration:underline;text-underline-offset:3px}
.jn-pw{margin-top:12px}
.jn-in-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.jn-in-go{width:auto;margin-top:0;text-decoration:none}
.jn-in-go:hover{color:#0F0D22}
.jn-out{display:inline-flex;align-items:center;padding:15px 24px;border:3px solid #B33A25;color:#B33A25;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.06em;cursor:pointer}
.jn-out:hover{background:#B33A25;color:#FFF6F2}
.jn-foot{padding:14px 30px 18px;border-top:3px dashed #1E1A1F33;
  font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;
  color:#6B6064;line-height:1.6;text-transform:uppercase}
.jn-foot a{color:#B33A25;text-decoration:underline;text-underline-offset:3px}
.jn-foot a:hover{color:var(--ink)}

.jn-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:40px}
.jn-door{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:24px 26px;
  display:flex;flex-direction:column;gap:12px;color:var(--ink)}
.jn-door-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.jn-door-name{font-family:'NHaas','Arial Black',sans-serif;font-size:30px;line-height:1;text-transform:uppercase}
.jn-door-ico{width:44px;height:44px;flex:none;border-radius:50%;border:2px solid var(--ink);display:flex;
  align-items:center;justify-content:center;font-size:18px;color:#0F0D22}
.jn-door-text{font-size:15px;color:#5A5147;line-height:1.5}
.jn-door-get{display:flex;gap:10px;align-items:baseline;font-size:15px}
.jn-door-get span:first-child{font-weight:700}
.jn-door-how{margin-top:auto;padding-top:12px;border-top:2px dashed #1E1A1F22;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6B6064}

/* ===========================================================
   my-tapes.html
   =========================================================== */
.mt-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px}
.mt-stats{gap:34px}
.mt-stat{cursor:pointer;text-align:left}
.mt-stat .d-stat-l{transition:color .16s}
.mt-stat:hover .d-stat-l,.mt-stat.is-on .d-stat-l{color:var(--cyan)}
.mt-stat.is-on .d-stat-l{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}

.mt-ticketwrap{position:relative;transform:rotate(-2deg);margin-top:20px}
.mt-ticket{background:#F7EEDC;color:var(--ink);border-radius:22px;box-shadow:0 26px 50px rgba(0,0,0,.5);
  -webkit-mask-image:radial-gradient(circle at 0 62px,transparent 16px,#000 17px),radial-gradient(circle at 100% 62px,transparent 16px,#000 17px);
  -webkit-mask-composite:source-in;
  mask-image:radial-gradient(circle at 0 62px,transparent 16px,#000 17px),radial-gradient(circle at 100% 62px,transparent 16px,#000 17px);
  mask-composite:intersect}
.mt-ticket-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:18px 30px 14px;border-bottom:3px dashed #1E1A1F33}
.mt-ticket-title{font-family:'NHaas','Arial Black',sans-serif;font-size:20px;text-transform:uppercase}
.mt-ticket-chip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.06em;color:var(--cream);background:var(--ink);padding:6px 12px;white-space:nowrap}
.mt-ticket-body{padding:22px 30px 18px;display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;
  align-items:center}
.mt-deck-art{width:110px;height:110px;border-radius:10px;border:3px solid var(--ink);
  box-shadow:5px 5px 0 var(--ink);position:relative;overflow:hidden}
.mt-deck-art span{position:absolute;left:8px;right:8px;bottom:8px;font-family:'NHaas',sans-serif;
  font-size:15px;line-height:.95;color:var(--cream);text-shadow:2px 2px 0 #0F0D12}
.mt-deck-mid{min-width:0}
.mt-deck-title{font-family:'NHaas',sans-serif;font-size:26px;line-height:1.05}
.mt-deck-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;
  letter-spacing:0.1em;color:#6B6064;margin-top:6px;text-transform:uppercase}
.mt-deck-bar{margin-top:12px;height:8px;border-radius:4px;background:#1E1A1F22;overflow:hidden}
.mt-deck-fill{height:100%;background:var(--pink)}
.mt-ticket-foot{padding:14px 30px 18px;border-top:3px dashed #1E1A1F33;display:flex;align-items:center;
  justify-content:space-between;gap:12px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:13px;letter-spacing:0.06em;color:#6B6064}
.mt-resume{color:#B33A25;cursor:pointer;font:inherit;min-height:40px;display:inline-flex;align-items:center}
.mt-resume:hover{text-decoration:underline;text-underline-offset:3px}

.mt-tabs{display:flex;gap:8px;flex-wrap:wrap}
.mt-tab{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;
  padding:10px 16px;cursor:pointer;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);
  box-shadow:3px 3px 0 var(--ink)}
.mt-tab:hover{background:var(--ink);color:var(--cream)}
.mt-tab.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}

.mt-tracks{margin-top:30px;box-shadow:6px 6px 0 var(--pink)}
.mt-trow{display:grid;grid-template-columns:52px minmax(0,1fr) 150px auto auto;gap:16px;align-items:center;
  padding:12px 20px;border-bottom:2px dashed #1E1A1F22;color:var(--ink);transition:background .18s}
.mt-trow:last-child{border-bottom:0}
.mt-trow:hover{background:rgba(30,26,31,.06)}
.mt-play{cursor:pointer}
.mt-trow:hover .mt-play{transform:scale(1.12) rotate(-10deg);box-shadow:3px 3px 0 var(--ink)}
.mt-trow:hover .mt-play .nn{display:none}
.mt-trow:hover .mt-play .np{display:block}
.mt-trow-t{color:var(--ink)}
.mt-trow-t:hover{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;
  text-underline-offset:3px;text-decoration-color:var(--pink)}
.mt-trow-when{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064}
.mt-heart{width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  /* the neon pink is a 2.9:1 glyph on cream paper, which is a heart you
     have to hunt for; this is the same pink taken down to 5.1:1 */
  font-size:18px;color:#C2185B;cursor:pointer;border-radius:999px}
.mt-heart:hover{background:rgba(255,61,138,.14)}

.mt-empty{margin-top:30px;background:#F7EEDC;border:3px dashed #1E1A1F44;border-radius:18px;
  padding:34px 30px;display:flex;flex-direction:column;gap:12px;align-items:flex-start;color:var(--ink)}
.mt-empty-t{font-family:'NHaas','Arial Black',sans-serif;font-size:30px;line-height:1.05;text-transform:uppercase}
.mt-empty-b{font-size:16px;line-height:1.5;color:#5A5147;max-width:620px}
.mt-empty-go{margin-top:6px;border-radius:999px;text-decoration:none}
.mt-empty-go:hover{color:#0F0D22}

.mt-rel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px;margin-top:34px}
.mt-rcard{display:flex;flex-direction:column;min-width:0}
.mt-rcard-art{position:relative;aspect-ratio:1/1;border-radius:10px;border:3px solid var(--ink);
  overflow:hidden;cursor:pointer;display:block;width:100%;transition:transform .18s}
.mt-rcard-art:hover{transform:translateY(-6px)}
.mt-rcard-title{position:absolute;left:10px;right:10px;bottom:10px;font-family:'NHaas',sans-serif;
  font-size:18px;line-height:.95;color:var(--cream);text-shadow:2px 2px 0 #0F0D12;text-align:left}
.mt-rcard-heart{position:absolute;right:8px;top:8px;width:28px;height:28px;border-radius:50%;
  background:var(--pink);border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;
  font-size:13px;color:#0F0D22}
.mt-rcard-name{font-size:15px;margin-top:12px;color:var(--ink)}
.mt-rcard-name:hover{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;
  text-underline-offset:3px;text-decoration-color:var(--pink)}
.mt-rcard-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:3px}

.mt-art{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;margin-top:34px}
.mt-acard{display:grid;grid-template-columns:84px minmax(0,1fr);gap:16px;align-items:center;
  background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:12px;color:var(--ink);
  transition:transform .18s}
.mt-acard:hover{transform:translateY(-4px);color:var(--ink)}
.mt-aface{width:84px;height:96px;border-radius:999px 999px 12px 12px;border:3px solid var(--ink)}
.mt-acard-mid{min-width:0}
.mt-acard-name{display:block;font-family:'NHaas','Arial Black',sans-serif;font-size:20px;line-height:1.05}
.mt-acard-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:5px;text-transform:uppercase}
.mt-acard-note{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;color:#2F6B5E;margin-top:8px}

.mt-lab{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:34px}
.mt-lcard{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:center;
  background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:12px 16px 12px 12px;
  color:var(--ink);transition:transform .18s}
.mt-lcard:hover{transform:translateY(-4px);color:var(--ink)}
.mt-lmono{width:64px;height:64px;border-radius:12px;border:3px solid var(--ink);display:flex;
  align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:22px}

.mt-sta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:34px}
.mt-scard{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ink);
  color:var(--cream);border-radius:18px;padding:18px 20px;transition:transform .18s}
.mt-scard:hover{transform:translateY(-4px);color:var(--cream)}
.mt-scard-l{display:block}
.mt-scard-freq{display:block;font-size:30px;letter-spacing:.06em;line-height:1}
.mt-scard-name{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.07em;margin-top:8px}
.mt-scard-go{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;color:var(--cyan);white-space:nowrap}

.mt-lower{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:30px;align-items:start}
.mt-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.mt-hist-title{text-shadow:0 0 14px rgba(139,92,246,.7)}
.mt-rem-title{text-shadow:0 0 14px rgba(34,211,238,.7)}
.mt-card-sub{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.11em;color:#9B93BF;white-space:nowrap}
.mt-card-go{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.07em;color:var(--cyan);white-space:nowrap;min-height:40px;display:inline-flex;align-items:center}
.mt-hrow{grid-template-columns:74px minmax(0,1fr) auto auto}
.mt-hrow-at{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.04em;color:#9B93BF}
.mt-hrow-dev{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;padding:4px 10px;border:2px solid #5B4E8A;color:#B8AEDA;white-space:nowrap}
.mt-hrow-go{color:var(--cyan)}
.mt-none{font-size:15px;line-height:1.5;color:#B8AEDA;padding:8px 0 4px}

.mt-right{display:flex;flex-direction:column;gap:30px}
.mt-rem-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;
  border-bottom:2px dashed #F3EBD922}
.mt-rem-row:last-child{border-bottom:0}
.mt-rem-what{font-size:15px;line-height:1.35}
.mt-rem-when{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.07em;color:#9B93BF;margin-top:2px;text-transform:uppercase}
.mt-rem-kind{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;padding:4px 10px;border:2px solid;white-space:nowrap;flex:none}
.mt-make{position:relative;border-radius:28px;background:linear-gradient(160deg,#FF3D8A,#8B1D63 70%,#3A1650);
  color:var(--cream);padding:26px 26px 22px;display:flex;flex-direction:column;justify-content:space-between;
  overflow:hidden;min-height:220px}
.mt-make:hover{color:var(--cream)}
.mt-make-art{position:absolute;right:-80px;top:-30px;width:240px;max-width:none;transform:rotate(-20deg);
  opacity:.9;filter:drop-shadow(0 14px 18px rgba(0,0,0,.5))}
.mt-make-k{position:relative;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.08em;line-height:1.5}
.mt-make-t{position:relative;font-family:'NHaas','Arial Black',sans-serif;font-size:38px;line-height:.95;
  text-transform:uppercase;text-shadow:3px 3px 0 #0F0D22;margin-top:40px}
.mt-make-foot{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.11em;
  border-top:2px dashed #F3EBD955;padding-top:12px;margin-top:18px}
.mt-make-arrow{font-size:22px;line-height:1}

/* ===========================================================
   mixtapes.html
   =========================================================== */
.mx-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px}
.mx-shellwrap{position:relative;display:flex;justify-content:center}
.mx-shell{position:relative;width:100%;max-width:440px;border-radius:18px;
  background:linear-gradient(#2A2B33,#15161B);border:3px solid #0F0D22;box-shadow:12px 12px 0 var(--pink);
  padding:18px 18px 22px;transform:rotate(-4deg)}
.mx-shell-label{border-radius:10px;color:#0F0D22;padding:16px 18px 12px;border:2px solid #0F0D22}
.mx-shell-top{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em}
.mx-shell-title{font-family:'NHaas',sans-serif;font-size:36px;line-height:.95;margin-top:10px;
  font-style:italic;overflow-wrap:anywhere}
.mx-shell-stripe{height:14px;margin-top:12px;border:2px solid #0F0D22;border-radius:4px;
  background:repeating-linear-gradient(90deg,#FF3D8A 0 60px,#FF8A3D 60px 120px,#FFD166 120px 180px,#22D3EE 180px 240px,#8B5CF6 240px 300px)}
.mx-shell-reels{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:0 40px}
.mx-reel{animation:reel 4s linear infinite}
.mx-reel-2{animation-direction:reverse}
.mx-shell-ribbon{flex:1;height:20px;margin:0 12px;background:#EFE3C8;border:2px solid #0F0D22;border-radius:4px}

.mx-sharerow{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.mx-sharebtn,.mx-unshare{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.06em;color:var(--cream);border:2px solid var(--ink);padding:9px 16px;background:var(--ink);
  box-shadow:3px 3px 0 var(--cyan);cursor:pointer;min-height:40px;display:inline-flex;align-items:center}
.mx-sharebtn:hover,.mx-unshare:hover{background:var(--cyan);color:#0F0D22}
.mx-unshare{background:#F7EEDC;color:var(--ink);box-shadow:3px 3px 0 #B33A25}
.mx-unshare:hover{background:#B33A25;color:#FFF6F2;border-color:#B33A25}
#mx-sharelbl{overflow-wrap:anywhere;text-transform:none}

.mx-editor{display:grid;grid-template-columns:320px minmax(0,1fr);gap:34px;margin-top:34px;align-items:start}
.mx-rail{display:flex;flex-direction:column;gap:22px;position:sticky;top:24px}
.mx-card{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:22px 24px;
  box-shadow:8px 8px 0 var(--pink);color:var(--ink)}
.mx-k{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:16px}
.mx-card .mx-k:first-child{margin-top:0}
.mx-k-gold{color:#FFD166;margin-top:0}
.mx-input{display:flex;align-items:center;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;
  padding:0 14px;margin-top:8px}
.mx-input:focus-within{outline:3px solid var(--cyan);outline-offset:3px}
.mx-input input{border:0;outline:0;background:transparent;font-family:'GT America',sans-serif;
  font-size:16px;color:var(--ink);width:100%;padding:11px 0}
#mx-title{font-family:'NHaas',sans-serif;font-size:20px}
.mx-swatches{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.mx-swatch{width:34px;height:34px;border-radius:50%;border:3px solid #F7EEDC;cursor:pointer;
  box-shadow:0 0 0 2px var(--ink)}
.mx-swatch.is-on{border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}
.mx-swatch:disabled{cursor:default;opacity:.6}
.mx-plays{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:18px}
.mx-play{text-align:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:13px;letter-spacing:0.06em;padding:13px 10px;border:2px solid var(--ink);
  cursor:pointer;display:inline-flex;align-items:center}
.mx-play-a{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
.mx-play-a:hover{background:var(--pink);color:#0F0D22}
.mx-play-b{background:#F7EEDC;color:var(--ink);box-shadow:3px 3px 0 var(--cyan)}
.mx-play-b:hover{background:var(--cyan);color:#0F0D22}
.mx-play:disabled{opacity:.45;cursor:default;box-shadow:3px 3px 0 #1E1A1F33}
.mx-play:disabled:hover{background:var(--ink);color:var(--cream)}
.mx-play-b:disabled:hover{background:#F7EEDC;color:var(--ink)}
.mx-del{display:block;width:100%;margin-top:18px;min-height:40px;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:12px;letter-spacing:0.07em;color:#B33A25;cursor:pointer;text-align:left}
.mx-del:hover{text-decoration:underline;text-underline-offset:3px}
.mx-delwrap{margin-top:14px;padding:14px 16px;border:2px solid #B33A25;border-radius:14px;background:#FFF6F2}
.mx-delq{font-size:15px;line-height:1.45;color:var(--ink)}
.mx-delrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.mx-delyes,.mx-delno,.ib-delyes,.ib-delno{min-height:40px;display:inline-flex;align-items:center;
  padding:0 14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;cursor:pointer;border:2px solid #B33A25;background:#B33A25;color:#FFF6F2}
.mx-delno,.ib-delno{background:transparent;color:#B33A25}
.mx-delyes:hover,.ib-delyes:hover{background:#8F2C1C}
.mx-delno:hover,.ib-delno:hover{background:#B33A25;color:#FFF6F2}

.mx-addfrom{border-radius:22px;background:var(--ink);color:var(--cream);padding:20px 24px;
  box-shadow:8px 8px 0 #FFD166}
.mx-addlist{display:flex;flex-direction:column;gap:2px;margin-top:10px}
.mx-addrow{display:flex;justify-content:space-between;gap:12px;align-items:center;cursor:pointer;
  padding:10px 0;border-bottom:2px dashed #F3EBD922;min-height:40px;color:var(--cream);
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em}
.mx-addrow:last-child{border-bottom:0}
.mx-addrow:hover{color:var(--cyan)}
.mx-addrow-n{color:var(--cyan);white-space:nowrap}

.mx-sides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;align-items:start}
/* a tape is one ordered list now, so the editor is one column wide */
.mx-sides.mx-one{grid-template-columns:minmax(0,1fr)}
.mx-side{min-width:0}
.mx-sidehead{display:flex;align-items:center;gap:14px;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:14px;letter-spacing:0.08em;color:#6B6064}
.mx-sidename{background:var(--ink);color:var(--cream);padding:5px 12px}
.mx-sideline{flex:1;height:2px;background:#1E1A1F22}
.mx-sidedur{white-space:nowrap}
.mx-sidedur.is-over,.mx-left.is-over{color:#B33A25}
.mx-bar{margin-top:10px;height:10px;border-radius:5px;background:#1E1A1F22;overflow:hidden;
  border:2px solid var(--ink)}
.mx-bar-fill{height:100%}
.mx-table{margin-top:14px;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;
  overflow:hidden;min-height:120px;color:var(--ink)}
.mx-list.is-dragging{cursor:grabbing}
.mx-row{display:grid;grid-template-columns:26px 40px minmax(0,1fr) auto auto auto;gap:10px;align-items:center;
  padding:11px 14px;border-bottom:2px dashed #1E1A1F22;background:#F7EEDC}
.mx-row:last-child{border-bottom:0}
.mx-row:hover{background:rgba(30,26,31,.06)}
.mx-row.is-drag{background:#FFF6DF;box-shadow:0 10px 22px rgba(0,0,0,.22);position:relative;z-index:2}
.mx-grip{width:26px;min-height:40px;display:flex;align-items:center;justify-content:center;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;color:#6B6064;
  cursor:grab;letter-spacing:-0.04em;touch-action:none}
.mx-grip:active{cursor:grabbing}
.mx-grip:disabled{cursor:default;opacity:.4}
.mx-num{width:40px;height:40px;flex:none;cursor:pointer}
.mx-row:hover .mx-num .nn{display:none}
.mx-row:hover .mx-num .np{display:block}
.mx-mid{min-width:0}
.mx-rowtitle{display:block;font-size:15px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-rowsub{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:2px;text-transform:uppercase;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-rowdur{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;color:var(--ink)}
.mx-moves{display:flex;flex-direction:column}
.mx-move{width:26px;height:20px;display:flex;align-items:center;justify-content:center;font-size:10px;
  color:#6B6064;cursor:pointer}
.mx-move:hover{color:var(--ink)}
.mx-move:disabled{opacity:.3;cursor:default}
.mx-x{width:32px;min-height:40px;display:flex;align-items:center;justify-content:center;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;color:#B33A25;cursor:pointer}
.mx-x:hover{background:rgba(179,58,37,.12);border-radius:8px}
.mx-x:disabled{opacity:.35;cursor:default}
.mx-sideempty{padding:26px 16px;font-size:15px;line-height:1.5;color:#5A5147}
.mx-sidefoot{padding:12px 16px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.07em;color:#6B6064;display:flex;justify-content:space-between;gap:12px;align-items:center;
  border-top:2px dashed #1E1A1F22}
.mx-add{color:#B33A25;cursor:pointer;font:inherit;min-height:40px;display:inline-flex;align-items:center;
  white-space:nowrap}
.mx-add:hover{text-decoration:underline;text-underline-offset:3px}
.mx-editor.is-readonly .mx-sidefoot{justify-content:flex-start}

.mx-shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:34px}
.mx-scard{border-radius:18px;background:linear-gradient(#2A2B33,#15161B);border:2px solid #0F0D22;
  padding:14px;display:flex;flex-direction:column;transition:transform .18s}
.mx-scard:hover{transform:translateY(-6px)}
.mx-scard.is-open{outline:3px solid var(--cyan);outline-offset:3px}
.mx-scard-label{display:block;border-radius:8px;color:#0F0D22;padding:10px 12px 8px;border:2px solid #0F0D22}
.mx-scard-label:hover{color:#0F0D22;text-decoration:underline;text-underline-offset:3px}
.mx-scard-top{display:flex;justify-content:space-between;gap:10px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em}
.mx-scard-title{display:block;font-family:'NHaas',sans-serif;font-size:22px;line-height:1;margin-top:6px;
  font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-scard-reels{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:0 24px}
.mx-scard-ribbon{flex:1;height:12px;margin:0 10px;background:#EFE3C8;border:2px solid #0F0D22;border-radius:3px}
.mx-scard-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;
  color:#B8AEDA}
.mx-scard-meta{min-width:0;overflow:hidden;text-overflow:ellipsis}
.mx-scard-play{color:var(--cyan);cursor:pointer;font:inherit;white-space:nowrap;min-height:40px;
  display:inline-flex;align-items:center}
.mx-scard-play:hover{text-decoration:underline;text-underline-offset:3px}

/* the track picker inside the sheet */
.mx-pick-search{width:100%;box-shadow:none;border-color:var(--ink);background:#FFFDF7;padding:0 16px}
.mx-pick-search input{color:var(--ink);font-size:16px;padding:11px 0}
.mx-pick-chips{display:flex;gap:8px;flex-wrap:wrap}
.mx-pick-chip{min-height:40px;display:inline-flex;align-items:center;padding:0 14px;border:2px solid var(--ink);
  background:#F7EEDC;color:var(--ink);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:12px;letter-spacing:0.06em;cursor:pointer}
.mx-pick-chip:hover{background:var(--ink);color:var(--cream)}
.mx-pick-chip.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--cyan)}
.mx-pick-out{display:flex;flex-direction:column;gap:6px}
.mx-pickrow{display:grid;grid-template-columns:14px minmax(0,1fr) auto auto;gap:12px;align-items:center;
  padding:10px 12px;border-radius:12px;text-align:left;cursor:pointer;color:var(--ink);
  border-bottom:2px dashed #1E1A1F1A}
.mx-pickrow:hover{background:rgba(30,26,31,.08)}
.mx-pickrow.is-on{background:rgba(47,107,94,.12)}
.mx-pickdot{width:14px;height:14px;border-radius:50%;border:2px solid var(--ink)}
.mx-pickmid{min-width:0}
.mx-pickname{display:block;font-size:15px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mx-pickmeta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mx-pickdur{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;color:var(--ink)}
.mx-pickadd{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;color:#B33A25;white-space:nowrap}
.mx-pickrow.is-on .mx-pickadd{color:#2F6B5E}

/* ===========================================================
   inbox.html
   =========================================================== */
.ib-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px}
.ib-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ib-kind{border-radius:18px;background:#120F26;border:2px solid #5B4E8A;padding:18px 20px;cursor:pointer;
  text-align:left;color:var(--cream)}
.ib-kind:hover{border-color:var(--cream)}
.ib-kind-n{font-family:'NHaas',sans-serif;font-size:36px;line-height:1}
.ib-kind-name{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.07em;margin-top:8px}
.ib-kind-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.07em;color:#9B93BF;margin-top:3px}

.ib-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:start}
.ib-listcol{min-width:0}
.ib-table{margin-top:30px;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;
  overflow:hidden;color:var(--ink)}
.ib-row{display:grid;grid-template-columns:14px 52px minmax(0,1fr) auto auto;gap:14px;align-items:center;
  padding:12px 20px;border-bottom:2px dashed #1E1A1F22;transition:background .18s}
.ib-row:hover{background:rgba(30,26,31,.06)}
.ib-row.is-read{background:rgba(30,26,31,.03)}
.ib-row.is-read:hover{background:rgba(30,26,31,.08)}
.ib-dot{width:10px;height:10px;border-radius:50%}
.ib-ico{width:44px;height:44px;border-radius:12px;border:2px solid var(--ink);display:flex;
  align-items:center;justify-content:center;font-size:18px}
.ib-open{min-width:0;text-align:left;cursor:pointer;min-height:40px;display:flex;flex-direction:column;
  justify-content:center;color:var(--ink)}
.ib-open-t{display:block;font-size:17px;line-height:1.3;font-weight:700}
.ib-row.is-read .ib-open-t{font-weight:400}
.ib-open:hover .ib-open-t{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;
  text-decoration-color:var(--pink)}
.ib-open-m{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:3px;text-transform:uppercase}
/* the sentence a person wrote back, on the row rather than behind it */
.ib-open-w{display:block;font-size:15px;line-height:1.45;color:#3A332E;margin-top:4px;font-style:italic}
.ib-act{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;
  padding:6px 12px;background:var(--ink);color:var(--cream);border:2px solid var(--ink);white-space:nowrap;
  display:inline-flex;align-items:center;min-height:34px}
.ib-x{width:34px;min-height:40px;display:flex;align-items:center;justify-content:center;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;color:#6B6064;cursor:pointer}
.ib-x:hover{color:#B33A25;background:rgba(179,58,37,.1);border-radius:8px}
.ib-tablefoot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6B6064}
.ib-tablefoot a{color:#B33A25;min-height:40px;display:inline-flex;align-items:center;white-space:nowrap}
.ib-tablefoot a:hover{color:var(--ink)}
.ib-none{padding:34px 24px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.ib-none-t{font-family:'NHaas','Arial Black',sans-serif;font-size:30px;line-height:1.05;text-transform:uppercase}
.ib-none-b{font-size:16px;line-height:1.5;color:#5A5147;max-width:560px}
.ib-none-go{margin-top:6px;border-radius:999px;text-decoration:none}
.ib-none-go:hover{color:#0F0D22}

.ib-side{display:flex;flex-direction:column;gap:26px;position:sticky;top:24px}
.ib-rules{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:22px 24px;
  box-shadow:8px 8px 0 var(--cyan);color:var(--ink)}
.ib-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ib-card-title{font-family:'NHaas','Arial Black',sans-serif;font-size:22px;text-transform:uppercase;line-height:1}
.ib-card-sub{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.1em;color:#6B6064;white-space:nowrap}
.ib-rule{display:grid;width:100%;grid-template-columns:minmax(0,1fr) 54px;gap:14px;align-items:center;
  padding:12px 0;border-bottom:2px dashed #1E1A1F22;cursor:pointer;text-align:left;color:var(--ink)}
.ib-rule:last-child{border-bottom:0}
.ib-rule-mid{min-width:0}
.ib-rule-what{display:block;font-size:15px;line-height:1.3}
.ib-rule-how{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:2px;text-transform:uppercase}
.ib-switch{width:54px;height:30px;border-radius:999px;background:#F7EEDC;border:2px solid var(--ink);
  position:relative;transition:background .2s;flex:none}
.ib-switch.is-on{background:#5FE38A}
.ib-knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#F7EEDC;
  border:2px solid var(--ink);transition:left .2s}
.ib-switch.is-on .ib-knob{left:26px}

.ib-email{border-radius:22px;background:var(--ink);color:var(--cream);padding:22px 24px;
  box-shadow:8px 8px 0 #FFD166}
.ib-email-t{font-family:'NHaas',sans-serif;font-size:24px;line-height:1.05;margin-top:8px}
.ib-digest{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.ib-dg{min-height:40px;display:inline-flex;align-items:center;padding:0 14px;border:2px solid var(--cream);
  background:transparent;color:var(--cream);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:13px;letter-spacing:0.06em;cursor:pointer}
.ib-dg:hover{background:#F3EBD933}
.ib-dg.is-on{background:var(--cream);color:#0F0D22}

.ib-lower{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:30px;margin-top:34px;
  align-items:start}
.ib-member{border-radius:28px;background:#120F26;padding:24px 26px}
.ib-member-top{display:grid;grid-template-columns:96px minmax(0,1fr);gap:20px;align-items:center}
.ib-face{width:96px;height:96px;border-radius:50%;border:3px solid var(--cream);
  background:linear-gradient(160deg,#FF3D8A,#8B5CF6);display:flex;align-items:center;justify-content:center;
  font-family:'NHaas',sans-serif;font-size:34px;color:#0F0D22}
.ib-member-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:var(--cyan)}
.ib-member-name{font-family:'NHaas',sans-serif;font-size:30px;line-height:1;margin-top:6px;overflow-wrap:anywhere}
.ib-member-meta{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#B8AEDA;margin-top:6px;line-height:1.5}
.ib-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.ib-flbl{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#B8AEDA;margin-bottom:6px}
.ib-finput{display:flex;align-items:center;border:2px solid #5B4E8A;border-radius:12px;background:#0F0D22;
  padding:0 14px}
.ib-finput:focus-within{outline:3px solid var(--cyan);outline-offset:3px}
.ib-finput input{border:0;outline:0;background:transparent;font-family:'GT America',sans-serif;
  font-size:16px;color:var(--cream);width:100%;padding:11px 0}
.ib-finput input:read-only{color:#B8AEDA}
.ib-member-row{display:flex;gap:12px;margin-top:20px;align-items:center;flex-wrap:wrap}
.ib-save{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;
  padding:0 22px;min-height:44px;display:inline-flex;align-items:center;background:var(--cream);color:#0F0D22;
  border:2px solid #0F0D22;box-shadow:3px 3px 0 var(--pink);cursor:pointer}
.ib-save:hover{background:#FFD166}
.ib-logout{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;
  padding:0 22px;min-height:44px;display:inline-flex;align-items:center;border:2px solid #F3EBD98A;
  color:var(--cream);cursor:pointer}
.ib-logout:hover{background:var(--cream);color:#0F0D22}
.ib-saved{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;
  color:#5FE38A}

.ib-sidecol{display:flex;flex-direction:column;gap:30px}
.ib-privacy{border-radius:28px;background:#120F26;padding:22px 24px}
.ib-privacy-title{text-shadow:0 0 14px rgba(139,92,246,.7);margin-bottom:6px}
.ib-prow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;
  border-bottom:2px dashed #F3EBD922;font-size:15px}
.ib-prow:last-child{border-bottom:0}
.ib-pwho{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;
  padding:5px 10px;border:2px solid var(--purple);color:#B8AEDA;white-space:nowrap;flex:none}
.ib-danger{border-radius:28px;background:#120F26;border:2px solid #B33A25;padding:22px 24px;
  display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.ib-danger-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#FF8A3D}
.ib-danger-t{font-family:'NHaas',sans-serif;font-size:22px;line-height:1.05}
.ib-delbtn{min-height:40px;display:inline-flex;align-items:center;padding:0 16px;border:2px solid #B33A25;
  color:#FF8A3D;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.06em;cursor:pointer;margin-top:6px}
.ib-delbtn:hover{background:#B33A25;color:#FFF6F2}
.ib-delconfirm{margin-top:6px;width:100%}
.ib-delq{font-size:15px;line-height:1.45;color:#F3EBD9}
.ib-delrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.ib-delyes{background:#B33A25;color:#FFF6F2}
.ib-delno{border-color:#F3EBD98A;color:var(--cream)}
.ib-delno:hover{background:var(--cream);color:#0F0D22;border-color:var(--cream)}

/* ===========================================================
   PHASE 2 — the narrower widths
   =========================================================== */
@media (max-width:1240px){
  .jn-title{font-size:92px}
  .jn-hero{grid-template-columns:minmax(0,1fr) 480px;gap:44px}
  .mt-rel{grid-template-columns:repeat(4,minmax(0,1fr))}
  .mt-art{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mx-editor{grid-template-columns:280px minmax(0,1fr);gap:26px}
  .mx-sides{grid-template-columns:minmax(0,1fr)}
  .ib-main{gap:34px}
}
@media (max-width:1080px){
  .jn-hero,.mt-hero,.mx-hero,.ib-hero{grid-template-columns:minmax(0,1fr)!important;gap:44px}
  .jn-cardwrap,.mt-ticketwrap{transform:none;max-width:560px}
  .mt-ticketwrap{margin-top:0}
  .mx-shell{transform:rotate(-2deg)}
  .jn-doors{grid-template-columns:minmax(0,1fr);gap:22px}
  .mt-lower,.ib-main,.ib-lower{grid-template-columns:minmax(0,1fr);gap:34px}
  .ib-side,.mx-rail{position:static;top:auto}
  .mx-editor{grid-template-columns:minmax(0,1fr);gap:26px}
  .mt-rel{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mx-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ib-kinds{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .jn-title{font-size:64px}
  .mt-tracks,.mx-table,.ib-table{box-shadow:5px 5px 0 var(--pink)}
  .mt-rel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mt-lab,.mt-sta{grid-template-columns:minmax(0,1fr)}
  .mx-shelf{grid-template-columns:minmax(0,1fr)}
  .mt-trow{grid-template-columns:52px minmax(0,1fr) auto auto}
  .mt-trow-when{display:none}
  .ib-fields{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .jn-perks{grid-template-columns:minmax(0,1fr)}
  .jn-card-head,.jn-body,.jn-foot{padding-left:20px;padding-right:20px}
  .jn-title-2{font-size:28px}
  .jn-modes{flex-wrap:wrap}
  .mt-ticket-head,.mt-ticket-body,.mt-ticket-foot{padding-left:20px;padding-right:20px}
  .mt-ticket-body{grid-template-columns:88px minmax(0,1fr);gap:14px}
  .mt-deck-art{width:88px;height:88px}
  .mt-deck-title{font-size:22px}
  .mt-stats{gap:18px}
  .mt-rel{grid-template-columns:minmax(0,1fr)}
  .mt-art{grid-template-columns:minmax(0,1fr)}
  .mt-empty{padding:26px 20px}
  .mt-empty-t,.ib-none-t{font-size:24px}
  .mt-make-t{font-size:30px;margin-top:26px}
  .mt-make-art{width:180px;right:-60px}
  .mt-hrow{grid-template-columns:66px minmax(0,1fr) auto}
  .mt-hrow-dev{display:none}
  .mx-shell-title{font-size:28px}
  .mx-shell-reels{padding:0 14px}
  .mx-card,.mx-addfrom{padding:18px 20px}
  /* the row on a phone: the grip still drags, and the arrows beside it are
     the way up and down for anyone who would rather not. The per-track
     runtime goes — the side's total is two lines above it. */
  .mx-row{grid-template-columns:24px 40px minmax(0,1fr) auto auto;gap:6px;padding:10px 10px}
  .mx-rowdur{display:none}
  .mx-moves{flex-direction:row;gap:0}
  .mx-move{width:40px;height:40px;font-size:11px}
  .mx-x{width:36px}
  .mx-sidefoot{flex-wrap:wrap}
  .ib-row{grid-template-columns:12px 40px minmax(0,1fr) auto;gap:10px;padding:12px 14px}
  .ib-ico{width:40px;height:40px;font-size:16px}
  .ib-act{grid-column:3/-1;justify-self:start;margin-top:2px}
  .ib-tablefoot{flex-direction:column;align-items:flex-start;gap:8px;padding:16px 18px}
  .ib-member,.ib-privacy,.ib-danger{padding:20px 18px}
  .ib-member-top{grid-template-columns:72px minmax(0,1fr);gap:14px}
  .ib-face{width:72px;height:72px;font-size:26px}
  .ib-member-name{font-size:24px}
  .ib-kinds{grid-template-columns:minmax(0,1fr)}
  .tx-sheet{padding:12px}
  .tx-sheet-card{max-height:calc(100vh - 24px)}
  .tx-sheet-head,.tx-sheet-body{padding-left:16px;padding-right:16px}
  .tx-pick{grid-template-columns:34px minmax(0,1fr);gap:8px}
  .tx-pick-side{grid-column:span 1}
  .tx-toast{left:12px;right:12px;bottom:96px;max-width:none;text-align:center}
}
@media (max-width:560px){
  .jn-title{font-size:42px;text-shadow:2px 2px 0 #E8508B,4px 4px 0 #F2A93B,6px 6px 0 #2F5FA6}
  .mt-tab,.mx-pick-chip,.ib-dg,.tx-mixbtn{min-height:40px}
  .mx-swatch{width:44px;height:44px}
  /* the site-wide rule shrinks a track pill to 36px below 560; the member
     pages keep the full 40 because every one of theirs is a PLAY key */
  .mt-play,.mx-num{width:40px;height:40px;flex:none}
  /* links inside a row of running text take the height as padding, so the
     line they sit on does not move */
  .jn-foot a,.mt-trow-t,.mt-rcard-name,.ib-tablefoot a,.mx-scard-play,.tx-toast a{padding-block:13px}
  /* Phase 3: the same rule for the board's own inline links */
  .th-back,.th-card-name,.ib-rolelink{display:inline-flex;align-items:center;min-height:40px}
  .jn-foot a{display:inline-block}
  .mt-trow-t,.mt-rcard-name{display:inline-block}
}
@media (prefers-reduced-motion:reduce){
  .tx-toast,.tx-sheet,.tx-sheet-card{transition:none}
  .mx-reel{animation:none}
}

/* ===========================================================
   THE BOARD, A THREAD, A MEMBER  (Phase 3)
   Three pages, one family. A cream table on the board, cream
   cards under a sticky face on a thread, and a member page built
   out of the detail pages' own .d- shapes. Values come straight
   from the design-v3 templates; anything one of the three shares
   with Phase 1 or 2 reuses that class rather than restating it.
   =========================================================== */

/* ---------- shared: the round face with an initial in it ---------- */
.bd-face{display:flex;align-items:center;justify-content:center;flex:none;
  width:48px;height:48px;border-radius:50%;border:2px solid var(--ink);
  font-family:'NHaas',sans-serif;font-size:18px;color:#0F0D22;background:#FFD166}
.bd-face-sm{width:34px;height:34px;border:2px solid var(--cream);font-size:13px}
a.bd-face-sm:hover{transform:scale(1.1)}
.bd-face-rest{border-style:dashed;border-color:#B8AEDA;color:#B8AEDA;background:transparent;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px}
.bd-faces{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.bd-role{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;padding:2px 8px;white-space:nowrap}

/* ---------- board: hero ---------- */
.bd-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px}
.bd-title{font-size:124px}
.bd-rules{background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);border-radius:22px;
  padding:22px 26px;box-shadow:10px 10px 0 var(--cyan);transform:rotate(-1.5deg)}
.bd-rules-k,.bd-rules-f{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#6B6064}
.bd-rules-f{letter-spacing:.14em;margin-top:12px}
.bd-rule{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:baseline;
  padding:10px 0;border-bottom:2px dashed #1E1A1F22}
.bd-rule-n{width:30px;height:30px;border:2px solid var(--ink);display:flex;align-items:center;
  justify-content:center;font-family:'NHaas',sans-serif;font-size:14px}
.bd-rule-t{font-size:15px;line-height:1.4}

/* ---------- board: the new-thread composer ---------- */
.bd-section{padding-top:88px}
.bd-compose{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:24px 26px;
  box-shadow:8px 8px 0 var(--pink);margin-bottom:40px;color:var(--ink)}
.bd-compose-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.bd-compose-t{font-family:'NHaas','Arial Black',sans-serif;font-size:26px;text-transform:uppercase;line-height:1}
.bd-compose-x{min-height:40px;padding:0 6px;border:0;background:transparent;cursor:pointer;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:#B33A25}
.bd-compose-x:hover{text-decoration:underline;text-underline-offset:3px}
.bd-compose-row{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;margin-top:16px;align-items:start}
.bd-input{display:flex;align-items:center;border:2px solid var(--ink);border-radius:12px;
  background:#FFFDF7;padding:12px 16px}
.bd-input input,.bd-input textarea{border:0;outline:0;background:transparent;width:100%;
  font-family:'GT America',Helvetica,sans-serif;font-size:16px;color:var(--ink)}
.bd-input textarea{resize:vertical;min-height:90px;line-height:1.5}
.bd-input-area{align-items:flex-start;margin-top:12px}
.bd-input:focus-within{box-shadow:0 0 0 3px rgba(255,61,138,.35)}
.bd-newtags{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding-top:2px}
.bd-newtag{min-height:40px;display:inline-flex;align-items:center;padding:0 12px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;
  border:2px solid;background:transparent;cursor:pointer}
.bd-compose-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-top:14px;flex-wrap:wrap}
.bd-compose-as{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;text-transform:uppercase}
.bd-compose-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bd-mini{min-height:40px;display:inline-flex;align-items:center;padding:0 14px;border:2px solid var(--ink);
  background:transparent;color:var(--ink);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:12px;letter-spacing:0.06em;cursor:pointer}
.bd-mini:hover{background:var(--ink);color:var(--cream)}
.bd-post{min-height:44px;display:inline-flex;align-items:center;padding:0 22px;background:var(--ink);
  color:var(--cream);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--pink);cursor:pointer;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em}
.bd-post:hover{background:#FF3D8A;border-color:#FF3D8A;color:#0F0D22;box-shadow:3px 3px 0 var(--ink)}

/* the one line a form says when it will not send yet */
.fm-err{margin-top:12px;padding:10px 14px;border-radius:12px;background:#FFE9E4;
  border:2px solid #B33A25;color:#8C2A19;font-size:15px;line-height:1.4}

/* ---------- board: the head and the chips ---------- */
.bd-head{align-items:flex-end}
.bd-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.bd-search{display:flex;align-items:center;gap:10px;border:2px solid var(--ink);background:#FFFDF7;
  padding:8px 14px;width:260px;max-width:100%}
.bd-search input{border:0;outline:0;background:transparent;width:100%;
  font-family:'GT America',Helvetica,sans-serif;font-size:16px;color:var(--ink)}
.bd-search-dot{width:9px;height:9px;border-radius:50%;background:var(--pink);flex:none}
.bd-chips{margin-top:28px}
.bd-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px}
.bd-chip.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
.bd-chip-dot{width:9px;height:9px;border-radius:50%;flex:none}

/* ---------- board: the table ---------- */
.bd-table{margin-top:30px}
.bd-row{grid-template-columns:56px minmax(0,1fr) 150px 90px 40px;gap:18px;color:var(--ink)}
.bd-row:hover{color:var(--ink)}
.bd-row.is-pinned{background:rgba(255,209,102,.12)}
.bd-row-face{width:48px;height:48px}
.bd-row-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bd-row-head .ttitle{display:inline;font-size:18px}
.bd-badge{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;padding:2px 8px;border:2px solid var(--ink);color:var(--ink);white-space:nowrap}
.bd-badge-pin{background:#FFD166}
.bd-row-last{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;text-transform:uppercase;line-height:1.5}
.bd-row-last-k,.bd-row-last-v{display:block}
.bd-row-last-v{color:var(--ink);font-weight:700}
.bd-more{min-height:40px;border:0;background:transparent;cursor:pointer;color:#B33A25;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em}
.bd-more:hover{text-decoration:underline;text-underline-offset:3px}
.bd-none{padding:26px 24px}
.bd-none-t{font-family:'NHaas','Arial Black',sans-serif;font-size:22px;text-transform:uppercase}
.bd-none-b{font-size:15px;line-height:1.5;color:#5A5147;margin-top:8px;max-width:52ch}

/* ---------- board: the three cards on the dark band ---------- */
.bd-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;align-items:start}
.bd-card-title{font-family:'NHaas','Arial Black',sans-serif;font-size:22px;line-height:1.05;
  text-transform:uppercase}
.bd-card-cyan{text-shadow:0 0 14px rgba(34,211,238,.7)}
.bd-card-purple{text-shadow:0 0 14px rgba(139,92,246,.7)}
.bd-card-pink{text-shadow:0 0 14px rgba(255,61,138,.7)}
.bd-card-k{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#B0A8D0;margin-top:4px;text-transform:uppercase}
.bd-card-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#B0A8D0;margin-top:14px;text-transform:uppercase}
.bd-card-none{margin:10px 0 0;font-size:15px;line-height:1.5;color:#C4BDDF}
.bd-card-go{display:block;margin-top:auto;padding-top:12px;border-top:2px dashed #F3EBD933;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;
  color:var(--pink);min-height:40px}
.bd-card-go:hover{color:var(--cream)}
.bd-taperow,.bd-minerow{grid-template-columns:minmax(0,1fr) auto;margin-top:4px}
.bd-load{color:#B38CF8}
.bd-newbadge{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;padding:3px 10px;color:var(--cream);flex:none}

/* ===========================================================
   thread.html
   =========================================================== */
.th-hero{display:block}
.th-kickline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.th-back{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.08em;color:#B8AEDA}
.th-back:hover{color:var(--cream)}
.th-tag,.th-tapes{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.07em;padding:5px 12px;border:2px solid var(--cream);color:var(--cream)}
.th-counts{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.08em;color:var(--cyan);text-shadow:0 0 10px rgba(34,211,238,.8)}
.th-title{font-size:78px;max-width:1000px}
.th-byline{display:flex;align-items:center;gap:14px;margin-top:26px;flex-wrap:wrap}
.th-by{display:flex;align-items:center;gap:12px;color:var(--cream);min-height:40px}
.th-by:hover{color:var(--cream)}
.th-by:hover .th-by-name{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--pink)}
.th-face{border-color:var(--cream)}
.th-by-mid{display:block}
.th-by-name{display:block;font-family:'NHaas',sans-serif;font-size:18px;color:var(--cream)}
.th-by-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.1em;color:#B8AEDA;margin-top:2px}
.th-acts{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.th-act{min-height:44px;display:inline-flex;align-items:center;padding:0 18px;border:2px solid var(--cream);
  background:transparent;color:var(--cream);cursor:pointer;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em}
.th-act:hover{background:var(--cream);color:#0F0D22}
.th-act.is-on{background:var(--cream);color:#0F0D22}
.th-act-solid{background:var(--cream);color:#0F0D22;border-color:#0F0D22;box-shadow:3px 3px 0 var(--pink)}
.th-act-solid:hover{background:#FFD166}

.th-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:64px;align-items:start}
.th-posts{display:flex;flex-direction:column;gap:22px;min-width:0}
#th-list{display:flex;flex-direction:column;gap:22px}
.th-post{display:grid;grid-template-columns:56px minmax(0,1fr);gap:18px;align-items:start}
.th-post .bd-face{width:56px;height:56px;border-width:3px;font-size:20px;position:sticky;top:24px}
.th-card{background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);
  border-radius:6px 22px 22px 22px;padding:18px 22px;min-width:0}
.th-card.is-mine{background:#FFF6E6}
.th-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.th-card-who{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.th-card-name{font-family:'NHaas',sans-serif;font-size:18px;color:var(--ink)}
.th-card-name:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--pink)}
.th-card-when{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064}
.th-card-body{margin-top:12px;color:#2A2428}
.md-p{margin:0 0 10px;font-size:17px;line-height:1.6;overflow-wrap:anywhere}
.md-p:last-child{margin-bottom:0}
.md-quote{margin:0 0 10px;padding:6px 0 6px 14px;border-left:4px solid #1E1A1F33;
  font-size:16px;line-height:1.55;color:#5A5147;font-style:italic;overflow-wrap:anywhere}
.md-link{color:#B33A25;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.md-link:hover{color:var(--ink)}

/* the tape a post carries */
.th-tapecard-post{display:grid;width:100%;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;
  align-items:center;background:var(--ink);color:var(--cream);border-radius:14px;
  padding:10px 14px 10px 10px;margin:4px 0 0;cursor:pointer;text-align:left;border:0}
.th-tapecard-post:hover{transform:translate(-2px,-2px)}
.th-tapecard-art{width:64px;height:64px;border-radius:8px;border:2px solid var(--cream);flex:none}
.th-tapecard-mid{min-width:0}
.th-tapecard-k{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:12px;letter-spacing:0.08em}
.th-tapecard-t{display:block;font-family:'NHaas',sans-serif;font-size:18px;line-height:1.05;margin-top:4px}
.th-tapecard-m{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#C4BDDF;margin-top:3px}
.th-tapecard-go{flex:none;min-height:40px;display:inline-flex;align-items:center;padding:0 16px;
  background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em}

.th-card-foot{display:flex;align-items:center;gap:16px;margin-top:14px;padding-top:12px;
  border-top:2px dashed #1E1A1F22;flex-wrap:wrap}
.th-foot-act{min-height:16px;display:inline-flex;align-items:center;border:0;background:transparent;
  cursor:pointer;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.07em;color:#6B6064;padding:0}
.th-foot-act:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.th-up.is-on{color:#B33A25}
.th-answer{min-height:16px;display:inline-flex;align-items:center;border:0;background:transparent;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;
  color:#2F6B5E;padding:0}
button.th-answer{cursor:pointer}
.th-report{margin-left:auto}
.th-rules{margin-top:12px;padding:12px 14px;border:2px dashed #1E1A1F44;border-radius:14px;background:#FFFDF7}
.th-rules-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#6B6064}
.th-rules-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.th-rule{min-height:40px;display:inline-flex;align-items:center;padding:0 12px;border:2px solid var(--ink);
  background:transparent;color:var(--ink);cursor:pointer;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em}
.th-rule:hover{background:var(--ink);color:var(--cream)}
.th-rules-done{font-size:15px;line-height:1.5;color:#2F6B5E}

.th-more{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 0;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;
  color:#6B6064}
.th-more-line{flex:1;height:2px;background:#1E1A1F22}
.th-more-go{min-height:16px;border:0;background:transparent;cursor:pointer;color:#B33A25;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em}
.th-more-go:hover{text-decoration:underline;text-underline-offset:3px}

.th-composer,.th-join{display:grid;grid-template-columns:56px minmax(0,1fr);gap:18px;align-items:start}
.th-composer .bd-face,.th-join .bd-face{width:56px;height:56px;border-width:3px;font-size:20px}
.th-face-me{background:linear-gradient(160deg,#FF3D8A,#8B5CF6)}
.th-face-out{background:#5B4E8A;color:var(--cream)}
.th-compose-card{background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);
  border-radius:6px 22px 22px 22px;padding:18px 22px;box-shadow:8px 8px 0 var(--pink);min-width:0}
.th-compose-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#6B6064}
.th-compose-card .bd-input-area{margin-top:10px}
.th-join-note{margin:10px 0 0;font-size:16px;line-height:1.5;color:#5A5147}
.th-join-go{margin-top:14px;justify-content:center;border-radius:999px;font-size:15px;padding:13px 22px;
  display:inline-flex}

/* the aside */
.th-aside{display:flex;flex-direction:column;gap:22px;position:sticky;top:24px;min-width:0}
.th-tapecard{background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);border-radius:22px;
  padding:20px 22px;box-shadow:8px 8px 0 var(--cyan)}
.th-aside-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#6B6064}
.th-aside-k-gold{color:#FFD166}
.th-aside-none{margin:10px 0 0;font-size:15px;line-height:1.5;color:#5A5147}
.th-taperow{grid-template-columns:40px minmax(0,1fr) auto;padding:10px 0;gap:12px}
.th-tapecard .dtrow-wrap{padding-right:0}
.th-loadall{margin-top:14px;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;
  background:var(--ink);color:var(--cream);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--pink);
  cursor:pointer;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.06em}
.th-loadall:hover{background:var(--pink);color:#0F0D22;box-shadow:3px 3px 0 var(--ink)}
.th-people{border-radius:22px;background:var(--ink);color:var(--cream);padding:20px 22px;
  box-shadow:8px 8px 0 #FFD166}
.th-people-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#B8AEDA;margin-top:12px;text-transform:uppercase}
.th-related{background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);border-radius:22px;
  padding:18px 22px;box-shadow:6px 6px 0 #8B5CF6}
.th-rel{display:block;padding:10px 0;border-bottom:2px dashed #1E1A1F22;color:var(--ink)}
.th-rel:last-child{border-bottom:0}
.th-rel:hover{color:var(--ink)}
.th-rel:hover .th-rel-t{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--pink)}
.th-rel-t{font-size:15px;line-height:1.3}
.th-rel-m{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:2px;text-transform:uppercase}

/* ===========================================================
   member.html
   =========================================================== */
.mb-hero{grid-template-columns:300px minmax(0,1fr)}
.mb-art{position:relative;width:300px;max-width:100%}
.mb-disc{width:300px;max-width:100%;aspect-ratio:1/1;border-radius:50%;border:3px solid var(--ink);
  box-shadow:12px 12px 0 var(--ink);display:flex;align-items:center;justify-content:center;
  font-family:'NHaas',sans-serif;font-size:150px;color:#0F0D22}
.mb-claimchip{position:absolute;right:-10px;bottom:10px;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:13px;letter-spacing:0.08em;padding:8px 14px;border:2px solid var(--ink);
  transform:rotate(6deg)}
.mb-title{font-size:110px}
.mb-claim{min-height:40px;display:inline-flex;align-items:center}
.mb-grid{align-items:start}
.mb-activity{margin-top:30px;background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;
  box-shadow:6px 6px 0 var(--pink);overflow:hidden}
.mb-activity>*:last-child{border-bottom:0}
.mb-row{grid-template-columns:90px minmax(0,1fr) auto;gap:16px;padding:14px 20px;color:var(--ink)}
.mb-row:hover{color:var(--ink)}
.mb-row .ttitle{font-size:16px}
.mb-kind{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.06em;padding:3px 0;text-align:center;border:2px solid var(--ink);display:block}
.mb-row-meta{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:0.08em;color:#6B6064;margin-top:3px;text-transform:uppercase}
.mb-row-when{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.05em;color:#6B6064;white-space:nowrap}
.mb-side{display:flex;flex-direction:column;gap:26px;min-width:0}
.mb-mixtapes{background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);border-radius:22px;
  padding:22px 24px;box-shadow:8px 8px 0 var(--cyan)}
.mb-mix{display:block;width:100%;margin-top:12px;border-radius:14px;
  background:linear-gradient(#2A2B33,#15161B);border:2px solid #0F0D22;padding:10px;cursor:pointer;
  text-align:left}
.mb-mix:hover{transform:translate(-2px,-2px)}
.mb-mix-label{display:block;border-radius:6px;padding:8px 10px;border:2px solid #0F0D22}
.mb-mix-head{display:flex;justify-content:space-between;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:12px;letter-spacing:0.07em}
.mb-mix-t{display:block;font-family:'NHaas',sans-serif;font-size:18px;line-height:1;margin-top:4px;
  font-style:italic}
.mb-mix-go{display:inline-block;margin-top:8px;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:12px;letter-spacing:0.06em;color:#C4BDDF;min-height:40px}
.mb-taped{border-radius:22px;background:var(--ink);color:var(--cream);padding:22px 24px;
  box-shadow:8px 8px 0 #FFD166}
.mb-taperow{grid-template-columns:minmax(0,1fr) auto;padding:9px 6px}
.mb-load{color:var(--cyan)}

/* ---------- the track picker in the sheet ---------- */
.tx-pick-track{grid-template-columns:34px minmax(0,1fr) auto;width:100%;cursor:pointer;text-align:left}
.tx-pick-track:hover{background:#F7EEDC}
.tx-pick-search{display:flex;align-items:center;gap:10px;border:2px solid var(--ink);background:#FFFDF7;
  padding:10px 16px}
.tx-pick-search input{border:0;outline:0;background:transparent;width:100%;
  font-family:'GT America',Helvetica,sans-serif;font-size:16px;color:var(--ink)}
.tx-pick-dot{width:9px;height:9px;border-radius:50%;background:var(--pink);flex:none}
.tx-pick-head{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#6B6064}

/* ===========================================================
   the forms that post  (contact, submit, the Hub)
   One shape for all seven: a cream card, 16px fields, an inline
   message under the field that is wrong, and a success card that
   says where the thing went rather than "thank you".
   =========================================================== */
.fm{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:24px 26px;
  box-shadow:8px 8px 0 var(--cyan);margin:18px 0 8px;color:var(--ink)}
.fm-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#6B6064}
.fm-rows{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.fm-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.fm-field{min-width:0}
.fm-lbl{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.07em;color:#6B6064;margin-bottom:6px}
.fm-box{display:flex;align-items:center;border:2px solid var(--ink);border-radius:12px;
  background:#FFFDF7;padding:12px 16px}
.fm-box-area{align-items:flex-start}
.fm-box input,.fm-box textarea,.fm-box select{border:0;outline:0;background:transparent;width:100%;
  font-family:'GT America',Helvetica,sans-serif;font-size:16px;color:var(--ink);line-height:1.5}
.fm-box textarea{resize:vertical;min-height:96px}
.fm-box:focus-within{box-shadow:0 0 0 3px rgba(255,61,138,.35)}
.fm-field.is-bad .fm-box{border-color:#B33A25}
.fm-msg{font-size:14px;line-height:1.4;color:#8C2A19;margin-top:6px}
.fm-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;
  flex-wrap:wrap}
.fm-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;
  color:#6B6064;text-transform:uppercase;max-width:46ch}
.fm-picked{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.fm-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;
  border:2px solid var(--ink);background:#FFFDF7;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:12px;letter-spacing:0.05em;color:var(--ink)}
.fm-chip button{border:0;background:transparent;cursor:pointer;color:#B33A25;font-size:14px;
  min-height:40px;padding:0 2px}
.fm-done{background:#EAF7EF;border:3px solid #2F6B5E;border-radius:22px;padding:22px 26px;
  box-shadow:8px 8px 0 #5FE38A;margin:18px 0 8px;color:var(--ink)}
.fm-done-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;
  letter-spacing:0.08em;color:#2F6B5E}
.fm-done-t{font-family:'NHaas','Arial Black',sans-serif;font-size:26px;line-height:1.05;
  text-transform:uppercase;margin-top:8px}
.fm-done-b{font-size:16px;line-height:1.5;color:#3E463F;margin-top:8px;max-width:56ch}
.fm-done-go{display:inline-flex;align-items:center;min-height:44px;margin-top:14px;padding:0 18px;
  border:2px solid #2F6B5E;color:#2F6B5E;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:13px;letter-spacing:0.06em}
.fm-done-go:hover{background:#2F6B5E;color:var(--cream)}
/* a show this member posted, waiting for a person to look at it */
.evcard-checking .evcard-action{color:#8C6B00}

/* ===================== board / thread / member: responsive ===================== */
@media (max-width:1240px){
  .bd-title{font-size:96px}
  .th-title{font-size:62px}
  .mb-title{font-size:84px}
  .th-grid{grid-template-columns:minmax(0,1fr) 300px;gap:40px}
}
@media (max-width:1080px){
  .bd-hero{grid-template-columns:minmax(0,1fr);gap:34px}
  .bd-rules{transform:none}
  .mb-hero{grid-template-columns:220px minmax(0,1fr);gap:34px}
  .mb-art,.mb-disc{width:220px}
  .mb-disc{font-size:110px}
  .bd-cards{grid-template-columns:minmax(0,1fr);gap:22px}
  .th-grid{grid-template-columns:minmax(0,1fr);gap:34px}
  /* the aside goes under the posts on a narrow screen, and stops sticking */
  .th-aside{position:static;top:auto}
}
@media (max-width:860px){
  .bd-title{font-size:64px}
  .th-title{font-size:44px}
  .mb-title{font-size:56px}
  .bd-row{grid-template-columns:44px minmax(0,1fr) auto;gap:12px}
  .bd-row-face{width:40px;height:40px;font-size:15px}
  .bd-row-last{display:none}
  .bd-compose-row{grid-template-columns:minmax(0,1fr)}
  .bd-tools{width:100%}
  .bd-search{width:100%}
  .mb-row{grid-template-columns:78px minmax(0,1fr);gap:12px}
  .mb-row-when{grid-column:2;font-size:12px}
  .th-post,.th-composer,.th-join{grid-template-columns:44px minmax(0,1fr);gap:12px}
  .th-post .bd-face,.th-composer .bd-face,.th-join .bd-face{width:44px;height:44px;font-size:16px;
    position:static}
  .th-acts{margin-left:0;width:100%}
  /* the post foot, the divider and the little faces are thumb targets below 860 */
  .th-foot-act,.th-answer,.th-more-go{min-height:40px}
  a.bd-face-sm{width:40px;height:40px;font-size:15px}
}
@media (max-width:640px){
  .bd-title{font-size:46px}
  .th-title{font-size:34px}
  .mb-title{font-size:40px}
  .mb-hero{grid-template-columns:minmax(0,1fr)}
  .mb-art,.mb-disc{width:180px}
  .mb-disc{font-size:88px;box-shadow:8px 8px 0 var(--ink)}
  .bd-rules{padding:18px 18px}
  .bd-compose,.th-card,.th-compose-card,.th-tapecard,.th-people,.th-related,
  .mb-mixtapes,.mb-taped{padding:16px 16px}
  .th-tapecard-post{grid-template-columns:48px minmax(0,1fr);row-gap:10px}
  .th-tapecard-art{width:48px;height:48px}
  .th-tapecard-go{grid-column:1/-1;justify-content:center}
  .th-card-foot{gap:12px}
  .th-report{margin-left:0}
  .bd-row{padding:14px 16px}
  .mb-row{padding:12px 16px}
  .fm{padding:18px 16px}
  .fm-foot{align-items:stretch}
  .fm-foot .bd-post{justify-content:center}
}

/* the Hub's own ADD YOUR SHOW form, now that it posts */
.addshow-field.is-bad{border-color:#B33A25}
.addshow-form .fm-err{margin-bottom:4px}
/* the member card's role line is a door to the claim form */
.ib-rolelink{color:inherit;text-decoration:underline;text-underline-offset:3px}
.ib-rolelink:hover{color:var(--cream)}

/* ===========================================================
   BACKSTAGE + THE LABEL DESK
   The two pages a member owns. Both are the same shape: the
   house hero with a row of tab chips in it, one card that
   matters alongside it, and a cream body that swaps panels.

   Everything on cream carries a hard shadow, everything on the
   dark cards carries a neon one, and every control is at least
   40px tall so a thumb can hit it.
   =========================================================== */
.bs-hero,.ld-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px}
.bs-tabs,.ld-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}
.bs-tab{font-size:14px;letter-spacing:.14em;padding:11px 18px;min-height:42px}

/* ---------- the four numbers in the hero ---------- */
.bs-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.bs-kpi{border-radius:18px;background:#120F26;border:2px solid var(--pink);padding:18px 20px}
.bs-kpi-n{font-family:'NHaas',sans-serif;font-size:36px;line-height:1}
.bs-kpi-l{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;margin-top:8px;color:var(--cream)}
.bs-kpi-d{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.07em;margin-top:3px}

/* ---------- the claim gate ---------- */
.bs-gate-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:34px;margin-top:30px;align-items:start}
.bs-card{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:24px 26px;box-shadow:8px 8px 0 var(--pink)}
.bs-gate-lede{margin:0 0 20px;font-size:17px;line-height:1.5;color:#3A332E}
.bs-claimform{display:flex;flex-direction:column;gap:16px}
.bs-gate-go{align-self:flex-start;min-height:46px;display:inline-flex;align-items:center}
.bs-pending{display:flex;align-items:center;gap:12px;padding:14px 16px;border:2px dashed #1E1A1F44;border-radius:14px;margin-bottom:18px}
.bs-pending-dot{width:10px;height:10px;flex:none;border-radius:50%;background:#FFD166;box-shadow:0 0 8px #FFD166;animation:blip 1.4s steps(1,end) infinite}
.bs-pending-t{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:#6F6468}
.bs-note{background:var(--ink);color:var(--cream);border-radius:22px;padding:24px 26px;box-shadow:8px 8px 0 var(--cyan)}
.bs-steps{margin:14px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.5;color:#C9C1E4}
.bs-note-t{font-size:14px;line-height:1.5;color:#B8AEDA;margin:16px 0 0}

/* ---------- fields ---------- */
.bs-field{display:flex;flex-direction:column}
.bs-lbl{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-bottom:6px;text-transform:uppercase}
.bs-lbl-note{color:#B33A25}
.bs-count{color:#6F6468}
.bs-count.is-full{color:#B33A25}
/* The pill is the border; the control inside it fills the whole pill,
   so the thing you tap is the thing you see. */
.bs-box{display:flex;align-items:stretch;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;padding:0 14px;min-height:46px}
.bs-box input,.bs-box select,.bs-area textarea{border:0;outline:0;background:transparent;font-family:'GT America',Helvetica,sans-serif;font-size:16px;color:var(--ink);width:100%;min-height:42px}
.bs-box select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:18px;background-image:linear-gradient(45deg,transparent 50%,#1E1A1F 50%),linear-gradient(135deg,#1E1A1F 50%,transparent 50%);background-position:right 4px top 52%,right 0 top 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.bs-box:focus-within,.ld-box:focus-within{outline:3px solid var(--cyan);outline-offset:2px}
.bs-area{display:flex;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;padding:11px 14px}
.bs-area textarea{height:80px;resize:vertical;line-height:1.45}
.bs-area:focus-within{outline:3px solid var(--cyan);outline-offset:2px}
.bs-msg{margin:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.04em;color:#2F6B5E;min-height:1em;text-transform:uppercase}
.bs-msg.is-bad{color:#B33A25}
.bs-msg-dark{color:#7CFFD4}
.bs-msg-dark.is-bad{color:#FF9A88}

/* ---------- YOUR PAGE ---------- */
.bs-pagegrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px;align-items:start}
.bs-fields{margin-top:30px;display:flex;flex-direction:column;gap:14px}
.bs-fields #bs-inputs{display:flex;flex-direction:column;gap:14px}
.bs-moods{display:flex;gap:10px;flex-wrap:wrap}
.bs-mood{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:9px 16px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:40px}
.bs-mood.is-on{background:var(--ink);color:var(--cream)}
.bs-formfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:6px;padding-top:14px;border-top:2px dashed #1E1A1F22}
.bs-formnote{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;text-transform:uppercase}
.bs-formbtns{display:flex;gap:10px;flex-wrap:wrap}
.bs-solid{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:11px 20px;background:var(--ink);color:var(--cream);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--pink);cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.bs-solid:hover{background:#3A332E;color:var(--cream)}
.bs-ghost{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:11px 18px;border:2px solid var(--cream);color:var(--cream);cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent}
.bs-ghost:hover{background:var(--cream);color:#0F0D22}
/* on cream paper the ghost is inked instead */
.bs-fields .bs-ghost,.bs-ghost-ink{border-color:var(--ink);color:var(--ink)}
.bs-fields .bs-ghost:hover,.bs-ghost-ink:hover{background:var(--ink);color:var(--cream)}
.bs-mini{font-size:12px;padding:8px 14px;min-height:40px}
.bs-danger{border-color:#FF9A88;color:#FF9A88}
.bs-danger:hover{background:#B33A25;color:var(--cream);border-color:#B33A25}
.bs-sure{display:inline-flex;gap:8px;flex-wrap:wrap}
.bs-chipbtn{cursor:pointer;background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--cyan);min-height:42px}
.bs-chipbtn:hover{background:#3A332E;color:var(--cream)}
.bs-chip-orange{box-shadow:3px 3px 0 #FF8A3D}
.bs-chip-gold{box-shadow:3px 3px 0 #FFD166}
.sec-title-gold{text-shadow:3px 3px 0 #FFD166}

.bs-side{display:flex;flex-direction:column;gap:26px;position:sticky;top:24px}
.bs-photo{border-radius:22px;background:var(--ink);color:var(--cream);padding:22px 24px;box-shadow:8px 8px 0 var(--cyan)}
.bs-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468;text-transform:uppercase}
.bs-k-cyan{color:var(--cyan)}
.bs-k-gold{color:#FFD166}
.bs-photo-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;align-items:center;margin-top:12px}
.bs-arch{width:120px;height:138px;border-radius:999px 999px 14px 14px;border:3px solid var(--cream)}
.bs-photo-t{font-size:15px;line-height:1.5;color:#C9C1E4;margin:0 0 10px}
.bs-file{cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.bs-file:focus-within{outline:3px solid var(--cyan);outline-offset:3px}
.bs-photo-clear{margin-top:8px;border-color:#FF9A88;color:#FF9A88}
.bs-photo-clear:hover{background:#FF9A88;color:#0F0D22}
.bs-swatches{display:flex;gap:8px;margin-top:14px;align-items:center;flex-wrap:wrap}
.bs-swatch-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#C9C1E4;margin-right:6px}
.bs-swatch-row{display:flex;gap:8px;flex-wrap:wrap}
.bs-swatch{width:40px;height:40px;border-radius:50%;border:3px solid var(--ink);cursor:pointer}
.bs-swatch.is-on{border-color:var(--cream)}
.bs-attest{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:20px 24px;box-shadow:8px 8px 0 #FFD166;color:var(--ink)}
.bs-attest-t{font-size:15px;line-height:1.5;margin:8px 0 0}
.bs-attest-row{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:14px;align-items:center;margin-top:12px;cursor:pointer;width:100%;min-height:44px}
.bs-attest-lbl{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em}
.bs-switch{width:54px;height:30px;border-radius:999px;background:#F7EEDC;border:2px solid var(--ink);position:relative;display:block}
.bs-switch.is-on{background:#5FE38A}
.bs-knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#F7EEDC;border:2px solid var(--ink);transition:left .2s}
.bs-switch.is-on .bs-knob{left:26px}
.bs-rosterbox{box-shadow:8px 8px 0 var(--cyan)}
.bs-rosterrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:2px dashed #1E1A1F22}
.bs-rosterrow-t{font-size:15px;line-height:1.4}

/* ---------- RELEASES ---------- */
/* The editor is a column that is not there until it is opened: an auto
   track collapses to nothing while the panel is hidden, so a closed
   editor leaves no empty gutter beside the table. */
.bs-relgrid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:34px;margin-top:30px;align-items:start}
.bs-relgrid>.bs-editor{width:420px;max-width:100%}
.bs-table{background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;box-shadow:6px 6px 0 var(--cyan);overflow:hidden}
.bs-relrow{display:grid;grid-template-columns:70px minmax(0,1fr) 120px 90px 160px 110px;gap:14px;align-items:center;padding:12px 20px;border-bottom:2px dashed #1E1A1F22}
.bs-relhead{border-bottom:3px solid var(--ink);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468}
.bs-relart{width:56px;height:56px;border-radius:8px;border:2px solid var(--ink)}
.bs-relmid{min-width:0}
.bs-reltitle{font-size:16px;line-height:1.3}
.bs-relmeta{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:2px;text-transform:uppercase}
.bs-relstatus{display:flex;align-items:center;gap:6px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:5px 10px;border:2px solid var(--ink);width:max-content}
.bs-reldot{width:7px;height:7px;flex:none;border-radius:50%}
.bs-relloads{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.04em}
.bs-relstock{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;line-height:1.4}
.bs-reledit{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#B33A25;cursor:pointer;text-align:left;min-height:40px}
.bs-reledit:hover{text-decoration:underline;text-underline-offset:3px}
.bs-empty{padding:20px;font-size:15px;line-height:1.5;color:#5A5147}
.bs-tablebtn{display:block;width:100%;text-align:left;padding:14px 20px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:#B33A25;cursor:pointer;min-height:44px}
.bs-tablebtn:hover{background:rgba(30,26,31,.06);color:#B33A25}
.bs-tablebtn-dark{color:#7CFFD4;padding:12px 0}
.bs-tablebtn-dark:hover{background:transparent;color:var(--cream)}

/* ---------- the editor ---------- */
.bs-editor{border-radius:22px;background:var(--ink);color:var(--cream);padding:24px 26px;box-shadow:8px 8px 0 #5FE38A}
.bs-ek{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#C9C1E4;text-transform:uppercase}
.bs-ek-green{color:#5FE38A;letter-spacing:.2em}
.bs-ehead{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.bs-etitle,.bs-etype,.bs-einput,.bs-earea,.bs-etname,.bs-etlen,.bs-eprice,.bs-enight input{border:2px solid #F3EBD955;border-radius:10px;background:#120F26;color:var(--cream);font-family:'GT America',Helvetica,sans-serif;font-size:16px;padding:10px 12px;min-height:44px;outline:0}
.bs-etitle{flex:1 1 200px;font-family:'NHaas',sans-serif;font-size:22px}
.bs-etype{flex:0 0 130px}
.bs-earea{width:100%;resize:vertical;line-height:1.4}
.bs-etitle:focus,.bs-etype:focus,.bs-einput:focus,.bs-earea:focus,.bs-etname:focus,.bs-etlen:focus,.bs-eprice:focus,.bs-enight input:focus{border-color:var(--cyan)}
.bs-erow{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:2px dashed #F3EBD922}
.bs-estate{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;text-align:right}
.bs-ecover{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bs-ecover-art{width:56px;height:56px;flex:none;border-radius:8px;border:2px solid var(--cream)}
.bs-etracks{display:flex;flex-direction:column;gap:8px;min-width:0}
.bs-etrack{display:grid;grid-template-columns:28px minmax(0,1fr) 84px auto 40px;gap:8px;align-items:center}
.bs-etno{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;color:#C9C1E4}
.bs-etx{width:40px;height:40px;border:2px solid #F3EBD955;border-radius:10px;color:#FF9A88;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
.bs-etx:hover{background:#B33A25;color:var(--cream);border-color:#B33A25}
.bs-epair{display:flex;gap:8px;flex-wrap:wrap}
.bs-epair select{flex:1 1 130px;border:2px solid #F3EBD955;border-radius:10px;background:#120F26;color:var(--cream);font-size:16px;padding:10px 12px;min-height:44px}
.bs-eformats{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.bs-fmt{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:9px 14px;border:2px solid #F3EBD955;color:#C9C1E4;cursor:pointer;background:transparent;min-height:40px}
.bs-fmt.is-on{background:var(--cream);color:#0F0D22;border-color:var(--cream)}
.bs-eprice{width:80px;min-height:40px;padding:8px 10px}
.bs-ebtns{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}

/* ---------- NUMBERS ---------- */
.bs-ranges{display:flex;gap:8px;flex-wrap:wrap}
.bs-range{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:10px 16px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:42px}
.bs-range.is-on{background:var(--ink);color:var(--cream)}
.bs-statgrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:34px;margin-top:30px;align-items:start}
.bs-chartcard{box-shadow:8px 8px 0 var(--purple);padding:22px 26px}
.bs-trackcard{box-shadow:8px 8px 0 #FF8A3D;padding:22px 24px}
.bs-chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.bs-chart-total{font-family:'NHaas',sans-serif;font-size:26px}
.bs-bars{display:flex;align-items:flex-end;gap:4px;height:160px;margin-top:16px;padding-bottom:2px;border-bottom:3px solid var(--ink)}
.bs-bar{flex:1 1 0;min-width:3px;border:2px solid var(--ink);border-bottom:0;border-radius:4px 4px 0 0}
.bs-axis{display:flex;justify-content:space-between;gap:10px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#6F6468;margin-top:8px}
.bs-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.bs-source{padding:12px 14px;border:2px solid var(--ink);border-radius:12px}
.bs-source-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6F6468}
.bs-source-v{font-family:'NHaas',sans-serif;font-size:22px;margin-top:4px}
.bs-ptrow{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:12px;align-items:center;padding:9px 0;border-bottom:2px dashed #1E1A1F22}
.bs-pttitle{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bs-ptbar{height:8px;border-radius:4px;background:#1E1A1F22;overflow:hidden}
.bs-ptfill{display:block;height:100%}
.bs-ptn{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.04em}

/* ---------- SHOWS + DEMOS ---------- */
.bs-showgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:start}
.bs-showtable{margin-top:30px;box-shadow:6px 6px 0 #FF8A3D}
.bs-demotable{margin-top:30px;box-shadow:6px 6px 0 #FFD166}
.bs-showrow{display:grid;grid-template-columns:70px minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:14px 20px;border-bottom:2px dashed #1E1A1F22;color:inherit}
.bs-showrow:hover{color:inherit}
.bs-showdate{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.04em;color:#B33A25}
.bs-showmid{min-width:0;display:block}
.bs-showtitle{display:block;font-size:16px}
.bs-showwhere{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:2px;text-transform:uppercase}
.bs-showstate{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:5px 10px;border:2px solid var(--ink)}
.bs-showedit{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#B33A25;white-space:nowrap}
.bs-showform{padding:16px 20px;border-bottom:2px dashed #1E1A1F22}
.bs-demorow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 20px;border-bottom:2px dashed #1E1A1F22}
.bs-demolabel{font-size:16px}
.bs-demometa{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:2px;text-transform:uppercase}
.bs-demostate{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:5px 10px;border:2px solid var(--ink);white-space:nowrap}

/* ===========================================================
   THE LABEL DESK — its own parts
   =========================================================== */
.ld-pulse{background:#F7EEDC;color:var(--ink);border:3px solid var(--ink);border-radius:22px;padding:22px 26px;box-shadow:10px 10px 0 var(--cyan);transform:rotate(-1.5deg);display:flex;flex-direction:column;gap:8px}
.ld-pulse-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ld-pulse-title{font-family:'NHaas','Arial Black',sans-serif;font-size:22px;text-transform:uppercase;line-height:1}
.ld-pulse-state{display:flex;align-items:center;gap:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:6px 12px;background:var(--ink);color:var(--cream)}
.ld-pulse-led{width:9px;height:9px;flex:none;border-radius:50%;background:#5FE38A;animation:blip 1.4s steps(1,end) infinite}
.ld-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:8px;text-transform:uppercase;display:block}
.ld-demostates{display:flex;gap:8px;flex-wrap:wrap}
.ld-demostate{display:flex;align-items:center;gap:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:10px 14px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:42px}
.ld-demostate.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
.ld-statedot{width:8px;height:8px;flex:none;border-radius:50%}
.ld-window{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.ld-box{display:flex;align-items:stretch;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;padding:0 14px;min-height:46px}
.ld-box input,.ld-box select,.ld-box textarea{border:0;outline:0;background:transparent;font-family:'GT America',Helvetica,sans-serif;font-size:16px;color:var(--ink);width:100%;min-height:42px}
.ld-box-area{padding:11px 14px}
.ld-box-area textarea{height:60px;resize:vertical;line-height:1.45}
.ld-pulse-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:12px}
.ld-pulse-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;text-transform:uppercase}
.ld-replyin{border:0;border-bottom:2px solid var(--ink);background:transparent;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:16px;letter-spacing:0.04em;color:var(--ink);width:10ch;min-height:40px;padding:4px 0;outline:0}
.ld-replyin:focus{outline:3px solid var(--cyan);outline-offset:2px}
.ld-solid{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:11px 18px;background:var(--ink);color:var(--cream);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--pink);cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.ld-solid:hover{background:#3A332E;color:var(--cream)}
.ld-solid.is-done{box-shadow:3px 3px 0 #5FE38A}
.ld-msg{margin:8px 0 0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.04em;color:#2F6B5E;min-height:1em;text-transform:uppercase}
.ld-msg.is-bad{color:#B33A25}

/* ---------- demo inbox ---------- */
.ld-inboxgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:start}
.ld-filters{display:flex;gap:8px;margin-top:24px;flex-wrap:wrap}
.ld-filter{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:10px 14px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:42px}
.ld-filter.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 #FFD166}
.ld-demotable{margin-top:20px;box-shadow:6px 6px 0 #FFD166}
.ld-demorow{display:grid;grid-template-columns:48px minmax(0,1fr) 96px auto auto;gap:14px;align-items:center;padding:14px 20px;border-bottom:2px dashed #1E1A1F22}
.ld-demorow.is-done{background:rgba(30,26,31,.04)}
.ld-demoplay{width:40px;height:40px;color:#0F0D22;display:flex;align-items:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;cursor:pointer;border:2px solid var(--ink)}
.ld-demomid{min-width:0}
.ld-demotitle{font-size:16px;line-height:1.3}
.ld-demometa{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:2px;text-transform:uppercase}
.ld-demoage{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em}
.ld-demorow.is-late .ld-demotitle{text-decoration:underline;text-decoration-color:#B33A25;text-decoration-thickness:2px;text-underline-offset:3px}
.ld-demoacts{display:flex;gap:6px;flex-wrap:wrap}
.ld-act{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:9px 12px;border:2px solid var(--ink);cursor:pointer;min-height:40px;display:inline-flex;align-items:center}
.ld-demolink{display:inline-flex;align-items:center;min-height:40px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#B33A25;white-space:nowrap}
.ld-demolink:hover{color:#B33A25;text-decoration:underline;text-underline-offset:3px}
.ld-templates{border-radius:22px;background:var(--ink);color:var(--cream);padding:22px 24px;box-shadow:8px 8px 0 #FFD166}
.ld-template{padding:12px 0;border-bottom:2px dashed #F3EBD922}
.ld-template-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ld-template-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:4px 10px}
.ld-template-edit{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:var(--cyan);cursor:pointer;min-height:40px;padding:0 6px}
.ld-template-edit:hover{color:var(--cream)}
.ld-template-t{font-size:15px;line-height:1.5;color:#C9C1E4;margin-top:8px}
.ld-template-area{width:100%;margin-top:8px;border:2px solid #F3EBD955;border-radius:10px;background:#120F26;color:var(--cream);font-family:'GT America',Helvetica,sans-serif;font-size:16px;padding:10px 12px;resize:vertical;outline:0}
.ld-template-area:focus{border-color:var(--cyan)}
.ld-templates-foot{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#B8AEDA;margin:12px 0 0;text-transform:uppercase;line-height:1.5}
.ld-window-stats{box-shadow:8px 8px 0 var(--cyan);padding:20px 24px}
.ld-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.ld-stat-n{font-family:'NHaas',sans-serif;font-size:28px}
.ld-stat-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6F6468;margin-top:4px}
.ld-stats-note{font-size:14px;color:#5A5147;margin:12px 0 0;line-height:1.5}

/* ---------- roster + seats ---------- */
.ld-rostergrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px;align-items:start}
.ld-rostertable{margin-top:30px}
.ld-rosterrow{display:grid;grid-template-columns:56px minmax(0,1fr) 140px auto;gap:16px;align-items:center;padding:12px 20px;border-bottom:2px dashed #1E1A1F22}
.ld-rosterarch{width:48px;height:54px;border-radius:999px 999px 8px 8px;border:2px solid var(--ink)}
.ld-rostermid{min-width:0}
.ld-rostername{font-family:'NHaas',sans-serif;font-size:18px;line-height:1.05}
.ld-rostermeta{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:3px;text-transform:uppercase}
.ld-rosterstate{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:5px 10px;border:2px solid var(--ink);width:max-content}
.ld-rosteracts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ld-rosteract{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#B33A25;cursor:pointer;min-height:40px;display:inline-flex;align-items:center}
.ld-rosteract:hover{color:#B33A25;text-decoration:underline;text-underline-offset:3px}
.ld-rosterx{color:#6F6468}
.ld-addrow{display:flex;gap:10px;align-items:center;padding:14px 20px;flex-wrap:wrap}
.ld-addrow .ld-box{flex:1 1 240px}
.ld-note{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin:12px 0 0;text-transform:uppercase;line-height:1.5}
.ld-seats{margin-top:30px;box-shadow:6px 6px 0 var(--purple);padding:18px 22px}
.ld-seatrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:2px dashed #1E1A1F22;flex-wrap:wrap}
.ld-seatleft{display:flex;align-items:center;gap:12px;min-width:0}
.ld-seatface{width:40px;height:40px;flex:none;border-radius:50%;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:16px;color:var(--ink)}
.ld-seatname{font-size:15px}
.ld-seatrole{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;text-transform:uppercase}
.ld-seatact{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#6F6468;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ld-seatform{display:flex;gap:10px;align-items:center;padding-top:10px;flex-wrap:wrap}
.ld-seatform .ld-box{flex:1 1 200px}

/* ---------- releases + stock ---------- */
.ld-stocktable{margin-top:30px;box-shadow:6px 6px 0 #FF8A3D}
.ld-stockrow{display:grid;grid-template-columns:60px minmax(0,1fr) 104px 150px 150px 110px 100px;gap:14px;align-items:center;padding:12px 20px;border-bottom:2px dashed #1E1A1F22}
.ld-stockhead{border-bottom:3px solid var(--ink);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468}
.ld-stockart{width:48px;height:48px;border-radius:8px;border:2px solid var(--ink)}
.ld-stockmid{min-width:0}
.ld-stocktitle{font-size:16px;line-height:1.3}
.ld-stockmeta{font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#6F6468;margin-top:2px;text-transform:uppercase}
.ld-src{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:4px 10px;color:#0F0D22;border:2px solid var(--ink);width:max-content}
.ld-cell{display:flex;flex-direction:column;gap:5px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;min-width:0}
.ld-cellline{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ld-cellin,.ld-cellstate,.ld-cellnote{border:2px solid var(--ink);border-radius:8px;background:#FFFDF7;color:var(--ink);font-family:'GT America',Helvetica,sans-serif;font-size:16px;padding:6px 8px;min-height:40px;width:100%;outline:0}
.ld-cellin:focus,.ld-cellstate:focus,.ld-cellnote:focus{outline:3px solid var(--cyan);outline-offset:1px}
.ld-stockedit{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#B33A25;cursor:pointer;text-align:left;min-height:40px}
.ld-stockedit:hover{text-decoration:underline;text-underline-offset:3px}
.ld-stockfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 20px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:#6F6468}
.ld-addhand{color:#B33A25;cursor:pointer;font:inherit;min-height:40px}
.ld-addhand:hover{color:#B33A25;text-decoration:underline;text-underline-offset:3px}
.ld-editor{margin-top:26px}

/* the header's own door to whichever page the member owns */
.hdr-desk.is-claim{border-style:dashed}

/* ===========================================================
   BACKSTAGE + THE LABEL DESK — responsive
   At 1080 the two columns become one and the sticky side stops
   sticking. At 860 every table stops being a table: each row
   becomes a card with its own labels, which is the only shape
   six columns can take on a 390px screen.
   =========================================================== */
@media (max-width:1240px){
  .bs-relgrid>.bs-editor{width:360px}
  .bs-relgrid{gap:26px}
  .bs-pagegrid,.bs-showgrid,.ld-inboxgrid,.ld-rostergrid{gap:38px}
}
@media (max-width:1080px){
  .bs-hero,.ld-hero{grid-template-columns:minmax(0,1fr)!important;gap:40px}
  .ld-pulse{transform:none}
  .bs-pagegrid,.bs-relgrid,.bs-statgrid,.bs-showgrid,.ld-inboxgrid,.ld-rostergrid,
  .bs-gate-grid{grid-template-columns:minmax(0,1fr);gap:34px}
  .bs-relgrid>.bs-editor{width:auto}
  .bs-side{position:static}
}
@media (max-width:860px){
  .bs-relhead,.ld-stockhead{display:none}
  /* a table row becomes a card, and every cell says what it is */
  .bs-relrow{grid-template-columns:56px minmax(0,1fr);grid-template-areas:"art mid" "status status" "loads loads" "stock stock" "edit edit";gap:10px 14px;padding:16px 18px}
  .bs-relrow>*:nth-child(1){grid-area:art}
  .bs-relrow>*:nth-child(2){grid-area:mid}
  .bs-relrow>*:nth-child(3){grid-area:status}
  .bs-relrow>*:nth-child(4){grid-area:loads}
  .bs-relrow>*:nth-child(5){grid-area:stock}
  .bs-relrow>*:nth-child(6){grid-area:edit}
  .bs-relloads::before{content:"LISTENERS · ";color:#6F6468;letter-spacing:.16em}
  .ld-stockrow{grid-template-columns:48px minmax(0,1fr);grid-template-areas:"art mid" "src src" "tape tape" "vinyl vinyl" "digital digital" "edit edit";gap:10px 14px;padding:16px 18px}
  .ld-stockrow>*:nth-child(1){grid-area:art}
  .ld-stockrow>*:nth-child(2){grid-area:mid}
  .ld-stockrow>*:nth-child(3){grid-area:src}
  .ld-stockrow>*:nth-child(4){grid-area:tape}
  .ld-stockrow>*:nth-child(5){grid-area:vinyl}
  .ld-stockrow>*:nth-child(6){grid-area:digital}
  .ld-stockrow>*:nth-child(7){grid-area:edit}
  .ld-stockrow>.ld-cell:nth-child(4)::before{content:"TAPE";color:#6F6468;letter-spacing:.18em}
  .ld-stockrow>.ld-cell:nth-child(5)::before{content:"VINYL";color:#6F6468;letter-spacing:.18em}
  .ld-stockrow>.ld-cell:nth-child(6)::before{content:"DIGITAL";color:#6F6468;letter-spacing:.18em}
  .ld-demorow{grid-template-columns:40px minmax(0,1fr);grid-template-areas:"play mid" "age age" "acts acts" "link link";gap:10px 14px;padding:16px 18px}
  .ld-demorow>*:nth-child(1){grid-area:play}
  .ld-demorow>*:nth-child(2){grid-area:mid}
  .ld-demorow>*:nth-child(3){grid-area:age}
  .ld-demorow>*:nth-child(4){grid-area:acts}
  .ld-demorow>*:nth-child(5){grid-area:link}
  .ld-rosterrow{grid-template-columns:48px minmax(0,1fr);grid-template-areas:"arch mid" "state state" "acts acts";gap:10px 14px;padding:16px 18px}
  .ld-rosterrow>*:nth-child(1){grid-area:arch}
  .ld-rosterrow>*:nth-child(2){grid-area:mid}
  .ld-rosterrow>*:nth-child(3){grid-area:state}
  .ld-rosterrow>*:nth-child(4){grid-area:acts}
  .bs-showrow{grid-template-columns:70px minmax(0,1fr);grid-template-areas:"date mid" "state edit";gap:10px 14px;padding:16px 18px}
  .bs-showrow>*:nth-child(1){grid-area:date}
  .bs-showrow>*:nth-child(2){grid-area:mid}
  .bs-showrow>*:nth-child(3){grid-area:state;justify-self:start}
  .bs-showrow>*:nth-child(4){grid-area:edit;justify-self:end}
  .bs-erow{grid-template-columns:minmax(0,1fr);gap:6px}
  .bs-estate{text-align:left}
  .bs-photo-row{grid-template-columns:96px minmax(0,1fr)}
  .bs-arch{width:96px;height:112px}
  .ld-pulse-foot{grid-template-columns:minmax(0,1fr)}
  .bs-relgrid{gap:26px}
  .bs-editor,.ld-editor{margin-top:0}
}
@media (max-width:640px){
  .bs-kpis{grid-template-columns:minmax(0,1fr)}
  .bs-sources,.ld-stats{grid-template-columns:minmax(0,1fr)}
  .ld-window{grid-template-columns:minmax(0,1fr)}
  .bs-etrack{grid-template-columns:24px minmax(0,1fr) 72px;grid-template-areas:"no name name" "len file x";gap:8px}
  .bs-etrack>*:nth-child(1){grid-area:no}
  .bs-etrack>*:nth-child(2){grid-area:name}
  .bs-etrack>*:nth-child(3){grid-area:len}
  .bs-etrack>*:nth-child(4){grid-area:file;justify-self:start}
  .bs-etrack>*:nth-child(5){grid-area:x;justify-self:end}
  .bs-ptrow{grid-template-columns:minmax(0,1fr) 70px auto}
  .bs-bars{height:130px;gap:2px}
  .bs-etitle{font-size:19px}
  .bs-formfoot,.bs-formbtns{width:100%}
  .bs-formbtns .bs-solid,.bs-formbtns .bs-ghost{flex:1 1 140px}
}
/* the two doors that are now doors: they open the page they describe */
.jn-door-go{display:block;color:inherit;text-decoration:none;min-height:40px;display:flex;align-items:center}
.jn-door-go:hover{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* ===========================================================
   THE DESK + THE EDITOR
   The two staff pages. Same house as backstage and the label
   desk — the dark hero, the torn edge, the cream body — with
   one difference: the desk is a table you run with one hand, so
   the queue rows carry a visible highlight and every control on
   them is a real button with a real label.

   Values come straight from Admin.template.html and
   Editor.template.html; the inline styles there were lifted
   into these classes unchanged.
   =========================================================== */
.ad-hero,.ed-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px}

/* ---------- the six numbers in the hero ---------- */
.ad-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ad-kpi{border-radius:16px;background:#120F26;border:2px solid var(--pink);padding:14px 16px}
.ad-kpi-n{font-family:'NHaas',sans-serif;font-size:30px;line-height:1}
.ad-kpi-l{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;margin-top:6px;color:var(--cream)}

/* ---------- the gate ---------- */
.ad-gate-card{box-shadow:8px 8px 0 var(--pink);max-width:720px}
.ad-gate-t{margin:0 0 14px;font-size:17px;line-height:1.5;color:#3A332E}
.ad-gate-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.ad-gate-btns .bs-ghost{border-color:var(--ink);color:var(--ink)}
.ad-gate-btns .bs-ghost:hover{background:var(--ink);color:var(--cream)}

/* ---------- the nav down the side ---------- */
.ad-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;align-items:start;padding-top:70px}
.ad-nav{position:sticky;top:24px;display:flex;flex-direction:column;gap:6px}
.ad-navpill{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:11px 14px;border:2px solid var(--ink);border-radius:12px;background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:44px;text-align:left}
.ad-navpill:hover{background:#FFF6E6}
.ad-navpill.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
.ad-badge{font-size:12px;padding:1px 8px;background:var(--ink);color:var(--cream);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;letter-spacing:0.04em}
.ad-navpill.is-on .ad-badge{background:var(--pink);color:#0F0D22}
.ad-keys{margin-top:14px;padding:14px;border-radius:12px;background:var(--ink);color:var(--cream);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;line-height:1.7}
.ad-keys-k{color:#FFD166}

/* ---------- a view ---------- */
.ad-views{min-width:0}
.ad-view .sec-title{font-size:56px}
.ad-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468;text-transform:uppercase}
.ad-k-gold{color:#FFD166}
.ad-msg{margin:14px 0 0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.04em;color:#2F6B5E;min-height:1em;text-transform:uppercase}
.ad-msg.is-bad{color:#B33A25}
.ad-empty{padding:22px 20px;font-size:16px;line-height:1.45;color:#6F6468}
.ad-table{background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;box-shadow:6px 6px 0 var(--pink);overflow:hidden;margin-top:20px}
.ad-tablefoot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 20px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:#6F6468;flex-wrap:wrap}
.ad-tablelink{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:#B33A25;background:none;border:0;cursor:pointer;padding:8px 0;min-height:36px}
.ad-tablelink:hover{text-decoration:underline;text-underline-offset:3px}
.ad-card{background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:16px 20px;box-shadow:6px 6px 0 var(--purple)}

/* ---------- the queue ---------- */
.ad-chips{display:flex;gap:8px;margin-top:22px;flex-wrap:wrap}
.ad-chip{display:flex;align-items:center;gap:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:8px 14px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:40px}
.ad-chip:hover{background:#FFF6E6}
.ad-chip.is-on{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
.ad-chip-dot{width:8px;height:8px;border-radius:50%;flex:none}
#ad-q-rows:focus{outline:0}
.ad-qrow{display:grid;grid-template-columns:100px minmax(0,1fr) 120px auto;gap:16px;align-items:center;padding:14px 20px;border-bottom:2px dashed #1E1A1F22;transition:background .18s}
.ad-qrow:hover{background:rgba(30,26,31,.06)}
.ad-qrow.is-on{background:rgba(255,61,138,.12);outline:3px solid var(--ink);outline-offset:-3px}
.ad-qrow.is-on:focus-visible{outline:3px solid #2F5FA6;outline-offset:-3px}
.ad-qrow.is-done{opacity:.72}
.ad-kind{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:5px 0;text-align:center;border:2px solid var(--ink);display:block}
.ad-qmid{min-width:0}
.ad-qtitle{font-size:16px;line-height:1.3;color:var(--ink)}
.ad-qmeta{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.07em;color:#6F6468;margin-top:2px;text-transform:uppercase}
.ad-qage{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;color:#6F6468}
.ad-qage.is-late{color:#B33A25}
.ad-qacts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ad-act{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:7px 12px;border:2px solid var(--ink);cursor:pointer;min-height:36px}
.ad-act:hover{filter:brightness(1.06)}

/* ---------- the picks ---------- */
.ad-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:26px}
.ad-pick{background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:16px 18px}
.ad-pick-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ad-pick-state{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:3px 9px;color:#0F0D22;border:2px solid var(--ink)}
.ad-pick-mid{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;align-items:center;margin-top:12px}
.ad-pick-sw{width:64px;height:64px;border-radius:10px;border:2px solid var(--ink)}
.ad-pick-text{min-width:0}
.ad-pick-t{font-family:'NHaas',sans-serif;font-size:19px;line-height:1.05;color:var(--ink)}
.ad-pick-m{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.07em;color:#6F6468;margin-top:4px;text-transform:uppercase}
.ad-pick-foot{display:flex;gap:12px;align-items:center;margin-top:12px;padding-top:10px;border-top:2px dashed #1E1A1F22;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;flex-wrap:wrap}
.ad-pick-link{background:none;border:0;cursor:pointer;color:#B33A25;font:inherit;letter-spacing:inherit;padding:6px 0;min-height:34px}
.ad-pick-link:hover{text-decoration:underline;text-underline-offset:3px}
.ad-pick-quiet{color:#5A5147}
.ad-pick-by{margin-left:auto;color:#6F6468}
.ad-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;padding:16px 20px;border-radius:18px;background:var(--ink);color:var(--cream);box-shadow:6px 6px 0 var(--cyan);flex-wrap:wrap}
.ad-strip-copy{min-width:0;flex:1 1 320px}
.ad-strip-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:var(--cyan)}
.ad-strip-t{font-size:15px;color:#C9C1E4;margin-top:4px;line-height:1.4}
.ad-strip-btns{display:flex;gap:8px;flex-wrap:wrap}
.ad-ghost{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:10px 16px;border:2px solid var(--cream);color:var(--cream);background:transparent;cursor:pointer;min-height:42px;display:inline-flex;align-items:center}
.ad-ghost:hover{background:var(--cream);color:#0F0D22}
.ad-solid{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:10px 16px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;box-shadow:3px 3px 0 var(--pink);cursor:pointer;min-height:42px;display:inline-flex;align-items:center}
.ad-solid:hover{background:#FFD166}
.ad-reorder{background:#F7EEDC;border:3px solid var(--ink);border-radius:18px;padding:16px 20px;box-shadow:6px 6px 0 var(--purple);margin-top:22px}
.ad-orow{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 0;border-bottom:2px dashed #1E1A1F22;cursor:grab}
.ad-orow.is-drag{opacity:.45}
.ad-onum{width:36px;height:36px;border-radius:8px;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;color:#0F0D22}
.ad-omid{min-width:0;display:block}
.ad-ot{display:block;font-size:16px;color:var(--ink)}
.ad-om{display:block;font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.07em;color:#6F6468}
.ad-obtns{display:flex;gap:6px}
.ad-obtn{width:36px;height:36px;border:2px solid var(--ink);border-radius:8px;background:#FFFDF7;cursor:pointer;font-size:13px;color:var(--ink);line-height:1}
.ad-obtn:hover:not(:disabled){background:#FFD166}
.ad-obtn:disabled{opacity:.35;cursor:default}
.ad-reorder-foot{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.ad-reorder-foot .ad-ghost{border-color:var(--ink);color:var(--ink)}
.ad-reorder-foot .ad-ghost:hover{background:var(--ink);color:var(--cream)}
.ad-reorder-foot .ad-solid{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.ad-reorder-foot .ad-solid:hover{background:#3A332E}

/* ---------- stories + radio: one table shape ---------- */
.ad-strow{display:grid;grid-template-columns:110px minmax(0,1fr) 150px 130px auto;gap:14px;align-items:center;padding:12px 20px;border-bottom:2px dashed #1E1A1F22}
.ad-strow-head{border-bottom:3px solid var(--ink);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:#6F6468}
.ad-state{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:4px 0;text-align:center;border:2px solid var(--ink);color:#0F0D22;display:block}
.ad-radiotable{box-shadow:6px 6px 0 var(--purple)}
.ad-radiorow{grid-template-columns:130px minmax(0,1fr) minmax(0,1fr) 110px 130px auto}
.ad-stname{display:flex;align-items:center;gap:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:var(--ink)}
.ad-stdot{width:10px;height:10px;border-radius:50%;flex:none}
.ad-stnow{font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-stlis{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;color:var(--ink)}
.ad-plstate{margin-top:0}
.ad-stedit{padding:16px 20px 20px;background:#FFF6E6;border-bottom:2px dashed #1E1A1F22}
.ad-stedit-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.ad-stedit-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.ad-stedit-btns .ad-ghost{border-color:var(--ink);color:var(--ink)}
.ad-stedit-btns .ad-ghost:hover{background:var(--ink);color:var(--cream)}
.ad-stedit-btns .ad-solid{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.ad-pl{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 22px}
.ad-plrow{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(0,110px) 30px;gap:8px;align-items:center;padding:6px 0;border-bottom:2px dashed #1E1A1F1A}
.ad-plrow.is-on{background:rgba(255,61,138,.12)}
.ad-plno{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;color:#6F6468}
.ad-plt{font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-plm{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.07em;color:#6F6468;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-plrow .ad-obtn{width:28px;height:28px}
.ad-plmore{grid-column:1 / -1;padding-top:8px}

/* ---------- reports + users ---------- */
.ad-modgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:26px;margin-top:26px;align-items:start}
.ad-reports{box-shadow:6px 6px 0 #FF8A3D;margin-top:0}
.ad-report{padding:14px 20px;border-bottom:2px dashed #1E1A1F22}
.ad-report-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ad-rule{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:3px 9px;background:#FF8A3D;color:#0F0D22;border:2px solid var(--ink)}
.ad-report-t{font-size:15px;margin-top:8px;line-height:1.4;color:var(--ink)}
.ad-report-q{font-size:14px;color:#5A5147;margin-top:6px;font-style:italic}
.ad-report-btns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.ad-mod{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:7px 12px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:36px}
.ad-mod:hover{background:#FFD166}
.ad-mod.is-ok{background:#5FE38A;color:#0F0D22}
.ad-users{box-shadow:6px 6px 0 var(--purple);margin-top:0}
.ad-search{display:flex;align-items:center;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;padding:0 14px;margin-top:8px;min-height:46px}
.ad-search input{border:0;outline:0;background:transparent;font-family:'GT America',Helvetica,sans-serif;font-size:16px;color:var(--ink);width:100%;min-height:42px}
.ad-search:focus-within{outline:3px solid var(--cyan);outline-offset:2px}
.ad-urow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:2px dashed #1E1A1F22;flex-wrap:wrap}
.ad-uface{width:34px;height:34px;border-radius:50%;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:'NHaas',sans-serif;font-size:14px;flex:none}
.ad-umid{min-width:0;flex:1 1 130px}
.ad-uname{font-size:15px;color:var(--ink)}
.ad-ubtns{display:flex;gap:6px;flex-wrap:wrap}

/* ---------- the 22:00 email ---------- */
.ad-mailgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:26px;margin-top:26px;align-items:start}
.ad-mailcard{box-shadow:6px 6px 0 #FFD166;margin-top:0}
.ad-mailhead{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}
.ad-select{display:flex;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;padding:0 14px;margin-top:6px;min-height:46px}
.ad-select select{border:0;outline:0;background:transparent;font-family:'GT America',Helvetica,sans-serif;font-size:16px;color:var(--ink);width:100%;min-height:42px;cursor:pointer}
.ad-select:focus-within{outline:3px solid var(--cyan);outline-offset:2px}
.ad-mailcard .ad-solid{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.ad-mail{margin-top:18px;border-top:2px dashed #1E1A1F22;padding-top:14px}
.ad-mail-sub{font-family:'NHaas',sans-serif;font-size:22px;line-height:1.1;color:var(--ink)}
.ad-mail-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:2px dashed #1E1A1F22}
.ad-mail-v{font-size:15px;line-height:1.45;color:#3A332E}
.ad-note{background:var(--ink);color:var(--cream);border-radius:18px;padding:20px 22px;box-shadow:6px 6px 0 #FFD166}
.ad-note .bs-steps{color:#C9C1E4}
.ad-note-t{font-size:14px;line-height:1.5;color:#B8AEDA;margin:16px 0}
.ad-note .ad-qmeta{color:#B8AEDA}

/* ---------- who did what ---------- */
.ad-logrow{display:grid;grid-template-columns:150px 200px minmax(0,1fr) 110px;gap:14px;align-items:baseline;padding:12px 20px;border-bottom:2px dashed #1E1A1F22}
.ad-logwho{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;color:var(--ink);text-transform:uppercase}
.ad-logwhat{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;color:#B33A25}
.ad-logsub{margin-top:0;text-transform:none;font-family:'GT America',Helvetica,sans-serif;font-size:15px;letter-spacing:0;color:#3A332E}

/* ---------- the sheets the desk opens ---------- */
.ad-sheet-t{font-family:'NHaas',sans-serif;font-size:21px;line-height:1.15;color:var(--ink);margin:4px 0 4px}
.ad-sheet-m{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.07em;color:#6F6468;text-transform:uppercase;margin-bottom:12px}
.ad-sheet-dl{display:grid;grid-template-columns:140px minmax(0,1fr);gap:6px 14px;margin-bottom:16px}
.ad-sheet-dt{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.07em;color:#6F6468;padding-top:3px}
.ad-sheet-dd{font-size:15px;line-height:1.45;color:var(--ink);word-break:break-word}
.ad-sheet-btns{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.ad-sheet-btns .bs-ghost{border-color:var(--ink);color:var(--ink)}
.ad-sheet-btns .bs-ghost:hover{background:var(--ink);color:var(--cream)}

/* ===========================================================
   THE EDITOR
   =========================================================== */
.ed-side{display:flex;flex-direction:column;gap:12px}
.ed-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.ed-ghost{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:11px 20px;border:2px solid var(--cream);color:var(--cream);background:transparent;cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.ed-ghost:hover{background:var(--cream);color:#0F0D22}
.ed-solid{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.06em;padding:11px 20px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;box-shadow:4px 4px 0 var(--pink);cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.ed-solid:hover{background:#FFD166}
.ed-status{border-radius:16px;background:#120F26;border:2px solid #5B4E8A;padding:14px 18px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:#B8AEDA;line-height:1.9}
.ed-status-v{color:var(--cream)}

.ed-wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;align-items:start;padding-top:70px}
.ed-sheet{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:34px 40px 40px;box-shadow:8px 8px 0 var(--pink);min-width:0}
.ed-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.ed-tool{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:8px 13px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:38px}
.ed-tool:hover{background:#FFD166}
.ed-kicker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ed-kickerpill{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;color:var(--cream);background:#2F5FA6;padding:6px 14px;border:0;cursor:pointer;min-height:34px}
.ed-kickerpill:hover{background:#24497F}
.ed-kicker-note{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#6F6468}
.ed-title{margin:14px 0 0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:54px;line-height:.92;letter-spacing:-.02em;text-transform:uppercase;color:var(--ink);text-shadow:3px 3px 0 var(--pink);outline:0;border-bottom:2px dashed #1E1A1F33;padding-bottom:12px}
.ed-dek{margin-top:14px;font-size:21px;line-height:1.45;color:#3A332E;outline:0}
[contenteditable="true"]:empty::before{content:attr(data-ph);color:#9A9088;pointer-events:none}
[contenteditable="true"]:focus-visible{outline:3px solid var(--cyan);outline-offset:4px;border-radius:4px}

.ed-cover{margin-top:22px;aspect-ratio:16/9;border-radius:28px 100px 28px 28px;border:3px solid var(--ink);display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:14px;flex-wrap:wrap}
.ed-cover-cap{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.08em;color:#1E1A1F;background:rgba(247,238,220,.9);padding:4px 8px;border-radius:6px;outline:0;max-width:70%}
.ed-cover-btn{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:8px 12px;background:#F7EEDC;border:2px solid var(--ink);cursor:pointer;color:var(--ink);min-height:38px;display:inline-flex;align-items:center}
.ed-cover-btn:hover{background:#FFD166}

.ed-body{margin-top:28px;max-width:720px}
.ed-p{margin:0 0 18px;font-size:18px;line-height:1.65;color:#2A2428;outline:0;min-height:1.65em}
.ed-h2{margin:26px 0 12px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:28px;line-height:1.1;letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);outline:0}
.ed-quote,.ed-photo,.ed-tape{position:relative}
.ed-blocktag{position:absolute;right:44px;top:10px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;color:#6F6468}
.ed-kill{position:absolute;right:10px;top:8px;width:28px;height:28px;border:2px solid var(--ink);border-radius:8px;background:#FFFDF7;cursor:pointer;color:var(--ink);line-height:1;font-size:12px}
.ed-kill:hover{background:#B33A25;color:var(--cream)}
.ed-quote{margin:22px 0;padding:20px 24px;border-left:8px solid var(--pink);background:#FFF6E6;border-radius:0 18px 18px 0;box-shadow:4px 4px 0 var(--ink)}
.ed-quote-t{font-family:'NHaas',sans-serif;font-size:26px;line-height:1.08;outline:0;max-width:600px;color:var(--ink)}
.ed-quote-by{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.08em;color:#6F6468;margin-top:10px;outline:0;text-transform:uppercase}
.ed-approve{margin-top:10px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:6px 11px;border:2px solid var(--ink);border-radius:999px;background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:34px}
.ed-approve.is-on{background:#5FE38A;color:#0F0D22}
.ed-tape{margin:22px 0;display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--ink);color:var(--cream);border-radius:16px;padding:12px 16px 12px 12px;box-shadow:6px 6px 0 var(--purple)}
.ed-tape-sw{width:64px;height:64px;border-radius:8px;border:2px solid var(--cream);background:var(--purple)}
.ed-tape-mid{min-width:0}
.ed-tape-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;color:var(--purple)}
.ed-tape-t{font-family:'NHaas',sans-serif;font-size:20px;line-height:1.05;margin-top:4px}
.ed-tape-cap{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;letter-spacing:0.07em;color:#C9C1E4;margin-top:3px;outline:0;text-transform:uppercase}
.ed-tape .ed-kill{background:#2A2430;color:var(--cream);border-color:var(--cream)}
.ed-tape-play{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em;padding:9px 14px;background:var(--cream);color:#0F0D22;border:2px solid #0F0D22;cursor:pointer;min-height:38px}
.ed-tape-play:hover{background:#FFD166}
.ed-photo{margin:22px 0}
.ed-photo-box{aspect-ratio:16/9;border-radius:24px;border:3px solid var(--ink);background:repeating-linear-gradient(90deg,#1E1A1F14 0 2px,transparent 2px 7px),linear-gradient(160deg,#5FA394,#2F5FA6);box-shadow:8px 8px 0 var(--ink);display:flex;align-items:center;justify-content:center;padding:18px}
.ed-photo-what{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.07em;color:var(--cream);text-align:center;outline:0;text-transform:uppercase}
.ed-photo-cap{margin-top:10px;font-size:15px;line-height:1.45;color:#5A5147;outline:0}

.ed-aside{display:flex;flex-direction:column;gap:22px;position:sticky;top:24px;min-width:0}
.ed-card{background:#F7EEDC;border:3px solid var(--ink);border-radius:22px;padding:20px 22px;box-shadow:8px 8px 0 var(--cyan)}
.ed-sub{margin-top:14px;letter-spacing:.16em}
.ed-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.ed-chip{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:8px 12px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:38px}
.ed-chip:hover{background:#FFF6E6}
.ed-chip.is-on{background:var(--ink);color:var(--cream)}
.ed-byline{display:flex;align-items:center;gap:10px;margin-top:8px;background:none;border:0;padding:6px 0;cursor:pointer;text-align:left;min-height:44px;width:100%}
.ed-byline:hover .ed-byname{text-decoration:underline;text-underline-offset:3px}
.ed-byface{width:34px;height:34px;border-radius:50%;border:2px solid var(--ink);flex:none}
.ed-byname{font-size:15px;color:var(--ink)}
.ed-byread{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;color:#6F6468}
.ed-tag{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;padding:6px 11px;border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);cursor:pointer;min-height:34px}
.ed-tag:hover{background:#FFD166}
.ed-tag-add{border-style:dashed;color:#6F6468}
.ed-checks{border-radius:22px;background:var(--ink);color:var(--cream);padding:20px 22px;box-shadow:8px 8px 0 #FFD166}
.ed-check{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:2px dashed #F3EBD922}
.ed-check-w{font-size:14px;line-height:1.35}
.ed-check-s{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;flex:none}
.ed-versions{box-shadow:6px 6px 0 var(--purple)}
.ed-version{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:2px dashed #1E1A1F22}
.ed-version-go{background:none;border:0;padding:6px 0;cursor:pointer;font:inherit;font-size:14px;color:var(--ink);text-align:left;min-height:34px}
.ed-version-go:hover{text-decoration:underline;text-underline-offset:3px;color:#B33A25}
.ed-version-w{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;color:#6F6468;flex:none}

/* ---------- a heading inside a published story ---------- */
.st-h2{margin:30px 0 14px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:30px;line-height:1.08;letter-spacing:-.01em;text-transform:uppercase;color:var(--ink)}

/* ---------- a post a moderator hid, and a thread they shut ---------- */
.th-card.is-hidden-post{opacity:.85}
.th-hidden{margin:0;font-size:15px;line-height:1.5;color:#6F6468;font-style:italic}
.th-locked{margin:18px 0 0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.04em;color:#B33A25;background:#FFF6E6;border:2px dashed #B33A25;border-radius:12px;padding:14px 16px;line-height:1.5}

/* ===================== the desk + the editor: responsive ===================== */
@media (max-width:1240px){
  .ad-hero,.ed-hero{grid-template-columns:minmax(0,1fr);gap:34px}
  .ad-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ed-actions{justify-content:flex-start}
  .ed-wrap{grid-template-columns:minmax(0,1fr) 320px;gap:32px}
  .ad-wrap{grid-template-columns:190px minmax(0,1fr);gap:26px}
  .ad-logrow{grid-template-columns:130px 170px minmax(0,1fr) 90px}
}
@media (max-width:1080px){
  .ad-wrap{grid-template-columns:minmax(0,1fr);gap:22px;padding-top:56px}
  .ad-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:8px}
  .ad-navpill{flex:0 0 auto}
  .ad-keys{flex:1 1 100%;margin-top:4px}
  .ed-wrap{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:56px}
  .ed-aside{position:static}
  .ad-view .sec-title{font-size:48px}
  .ad-modgrid,.ad-mailgrid{grid-template-columns:minmax(0,1fr)}
  .ad-pl{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .ad-picks{grid-template-columns:minmax(0,1fr)}
  .ad-qrow{grid-template-columns:92px minmax(0,1fr);grid-template-areas:"kind mid" "age age" "acts acts";gap:8px 14px}
  .ad-qrow>*:nth-child(1){grid-area:kind;align-self:start}
  .ad-qrow>*:nth-child(2){grid-area:mid}
  .ad-qrow>*:nth-child(3){grid-area:age}
  .ad-qrow>*:nth-child(4){grid-area:acts;justify-content:flex-start}
  .ad-strow,.ad-radiorow{grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 18px}
  .ad-strow-head{display:none}
  .ad-state{display:inline-block;padding:4px 12px;justify-self:start}
  .ad-logrow{grid-template-columns:minmax(0,1fr);gap:4px}
  .ad-mail-row{grid-template-columns:minmax(0,1fr);gap:2px}
  .ad-sheet-dl{grid-template-columns:minmax(0,1fr);gap:2px 0}
  .ad-sheet-dt{padding-top:8px}
  .ed-sheet{padding:24px 22px 30px}
  .ed-title{font-size:40px}
  .ad-view .sec-title{font-size:40px}
}
@media (max-width:640px){
  .ad-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ad-navpill{flex:1 1 calc(50% - 4px)}
  .ad-strip{flex-direction:column;align-items:stretch}
  .ad-strip-btns .ad-ghost,.ad-strip-btns .ad-solid{flex:1 1 140px;justify-content:center}
  .ed-cover{aspect-ratio:auto;min-height:200px;border-radius:20px 60px 20px 20px}
  .ed-cover-cap{max-width:100%}
  .ed-title{font-size:32px}
  .ed-quote-t{font-size:21px}
  .ed-tape{grid-template-columns:52px minmax(0,1fr);gap:10px}
  .ed-tape-sw{width:52px;height:52px}
  .ed-tape-play{grid-column:1 / -1;justify-content:center}
  .ad-view .sec-title{font-size:34px}
  .ad-qrow{grid-template-columns:82px minmax(0,1fr)}
  .ad-act,.ad-mod{flex:1 1 auto}
}


/* ===========================================================================
   ============================ FIX PASS · 2026-09 ===========================
   One block, added at the end so the sheet above it is untouched. It holds
   four things: the grain that used to stop at a tear, a readability floor
   for the small compressed labels, the shared motion engine's own styles
   (morph / tabs / selects), and the page-level fixes the pass asked for.
   =========================================================================== */

/* ---------- 1. the tear keeps the paper's grain ----------
   The strip is a flat SVG fill, so the noise that sits on .paper stopped
   dead at the torn edge. The same noise is painted over the strip and
   masked to the strip's own shape, which puts the grain back on the tear. */
.torn::after{content:'';position:absolute;left:0;right:0;top:0;bottom:0;
  pointer-events:none;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .2 0 0 0 0 .15 0 0 0 0 .1 0 0 0 .18 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");}
.torn::after{opacity:.55;
  -webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%2226%22%20viewBox%3D%220%200%201440%2026%22%3E%3Cpath%20d%3D%22M0%2026%20L0%2010.8%20L13%202.6%20L23%209.8%20L36%201.7%20L52%2013.0%20L64%206.3%20L79%2014.5%20L88%2011.0%20L98%2014.9%20L108%2012.4%20L120%203.9%20L129%2020.8%20L145%202.7%20L157%2021.1%20L167%209.3%20L180%2014.8%20L191%203.8%20L207%209.8%20L217%2012.1%20L228%203.4%20L243%207.8%20L254%201.8%20L270%205.3%20L286%2010.4%20L296%2013.3%20L308%2016.8%20L322%203.0%20L332%2010.0%20L341%201.1%20L353%2015.0%20L367%2021.1%20L378%209.7%20L390%209.7%20L405%2010.0%20L417%205.8%20L427%2016.4%20L437%206.0%20L452%2019.0%20L468%2020.5%20L483%2016.5%20L497%2012.3%20L506%207.2%20L517%204.8%20L529%2015.2%20L543%205.9%20L559%200.2%20L570%2012.9%20L582%202.0%20L598%2010.1%20L613%2013.0%20L625%202.8%20L640%2019.8%20L651%200.5%20L661%2015.6%20L675%2014.6%20L690%205.1%20L705%203.7%20L714%201.8%20L723%2011.9%20L738%2018.6%20L748%2010.9%20L757%206.2%20L769%201.4%20L780%205.1%20L791%2017.5%20L801%203.6%20L810%2013.8%20L819%208.9%20L828%2010.6%20L840%200.2%20L855%2010.0%20L869%207.5%20L885%2015.8%20L899%205.9%20L910%201.7%20L926%201.8%20L935%204.1%20L946%200.7%20L959%209.7%20L971%2011.9%20L987%2011.7%20L999%202.7%20L1015%2014.6%20L1027%2020.0%20L1041%2010.1%20L1057%2019.6%20L1069%2011.0%20L1083%2017.4%20L1099%2012.0%20L1115%2014.0%20L1130%209.7%20L1139%2021.5%20L1152%2014.4%20L1164%2016.6%20L1179%2011.1%20L1191%2019.5%20L1205%201.1%20L1216%2010.3%20L1232%2014.6%20L1242%2015.0%20L1252%204.4%20L1265%207.0%20L1274%2021.2%20L1287%200.8%20L1299%204.1%20L1313%205.1%20L1327%206.7%20L1343%2013.2%20L1355%2018.3%20L1365%207.6%20L1377%2019.8%20L1390%201.9%20L1400%2010.7%20L1411%208.9%20L1424%207.3%20L1433%201.3%20L1440%2010.8%20L1440%2026%20Z%22%20fill%3D%22%23EFE3C8%22%2F%3E%3C%2Fsvg%3E');mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%2226%22%20viewBox%3D%220%200%201440%2026%22%3E%3Cpath%20d%3D%22M0%2026%20L0%2010.8%20L13%202.6%20L23%209.8%20L36%201.7%20L52%2013.0%20L64%206.3%20L79%2014.5%20L88%2011.0%20L98%2014.9%20L108%2012.4%20L120%203.9%20L129%2020.8%20L145%202.7%20L157%2021.1%20L167%209.3%20L180%2014.8%20L191%203.8%20L207%209.8%20L217%2012.1%20L228%203.4%20L243%207.8%20L254%201.8%20L270%205.3%20L286%2010.4%20L296%2013.3%20L308%2016.8%20L322%203.0%20L332%2010.0%20L341%201.1%20L353%2015.0%20L367%2021.1%20L378%209.7%20L390%209.7%20L405%2010.0%20L417%205.8%20L427%2016.4%20L437%206.0%20L452%2019.0%20L468%2020.5%20L483%2016.5%20L497%2012.3%20L506%207.2%20L517%204.8%20L529%2015.2%20L543%205.9%20L559%200.2%20L570%2012.9%20L582%202.0%20L598%2010.1%20L613%2013.0%20L625%202.8%20L640%2019.8%20L651%200.5%20L661%2015.6%20L675%2014.6%20L690%205.1%20L705%203.7%20L714%201.8%20L723%2011.9%20L738%2018.6%20L748%2010.9%20L757%206.2%20L769%201.4%20L780%205.1%20L791%2017.5%20L801%203.6%20L810%2013.8%20L819%208.9%20L828%2010.6%20L840%200.2%20L855%2010.0%20L869%207.5%20L885%2015.8%20L899%205.9%20L910%201.7%20L926%201.8%20L935%204.1%20L946%200.7%20L959%209.7%20L971%2011.9%20L987%2011.7%20L999%202.7%20L1015%2014.6%20L1027%2020.0%20L1041%2010.1%20L1057%2019.6%20L1069%2011.0%20L1083%2017.4%20L1099%2012.0%20L1115%2014.0%20L1130%209.7%20L1139%2021.5%20L1152%2014.4%20L1164%2016.6%20L1179%2011.1%20L1191%2019.5%20L1205%201.1%20L1216%2010.3%20L1232%2014.6%20L1242%2015.0%20L1252%204.4%20L1265%207.0%20L1274%2021.2%20L1287%200.8%20L1299%204.1%20L1313%205.1%20L1327%206.7%20L1343%2013.2%20L1355%2018.3%20L1365%207.6%20L1377%2019.8%20L1390%201.9%20L1400%2010.7%20L1411%208.9%20L1424%207.3%20L1433%201.3%20L1440%2010.8%20L1440%2026%20Z%22%20fill%3D%22%23EFE3C8%22%2F%3E%3C%2Fsvg%3E');
  -webkit-mask-size:1440px 26px;mask-size:1440px 26px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
  -webkit-mask-position:center top;mask-position:center top;}
.torn-2::after{
  -webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%2226%22%20viewBox%3D%220%200%201440%2026%22%3E%3Cpath%20d%3D%22M0%2026%20L0%2010.1%20L13%2019.9%20L22%208.9%20L32%208.6%20L41%202.8%20L55%2018.8%20L64%2011.9%20L75%207.6%20L85%2016.2%20L97%205.1%20L111%2019.6%20L127%208.4%20L143%2017.7%20L155%201.9%20L165%203.0%20L179%2013.0%20L195%206.1%20L206%207.1%20L216%2020.3%20L229%2017.5%20L243%206.1%20L256%202.9%20L270%2021.3%20L283%207.4%20L294%2012.3%20L307%202.7%20L319%2018.3%20L333%2011.7%20L346%2013.5%20L358%201.9%20L368%208.3%20L384%2016.7%20L400%209.9%20L415%209.8%20L424%2019.6%20L435%205.5%20L445%201.1%20L456%207.7%20L472%2018.0%20L485%2011.9%20L494%2010.2%20L504%2010.7%20L515%205.4%20L528%2012.6%20L538%2013.0%20L552%2010.9%20L561%200.0%20L573%2010.1%20L582%2013.7%20L591%202.0%20L602%209.6%20L616%2021.2%20L631%203.7%20L640%2018.6%20L656%2018.7%20L671%2012.6%20L687%200.4%20L698%2013.6%20L707%2013.9%20L718%206.6%20L734%2013.2%20L744%2015.1%20L758%200.3%20L768%202.7%20L779%201.3%20L790%2011.0%20L803%2011.7%20L819%202.0%20L830%201.8%20L840%203.3%20L851%202.5%20L862%202.3%20L874%206.9%20L889%2010.2%20L902%2019.7%20L916%207.9%20L930%2010.3%20L941%2017.3%20L952%2013.6%20L964%2010.2%20L979%202.4%20L991%209.3%20L1001%2017.2%20L1015%204.5%20L1029%202.3%20L1041%2016.7%20L1050%208.8%20L1061%200.0%20L1073%2016.0%20L1084%200.6%20L1096%209.8%20L1109%200.4%20L1124%209.5%20L1138%2016.9%20L1147%2021.3%20L1162%2020.6%20L1172%206.7%20L1184%2020.0%20L1198%2019.2%20L1210%208.5%20L1225%203.8%20L1240%2012.7%20L1253%207.6%20L1267%202.0%20L1279%208.4%20L1288%2011.5%20L1298%200.1%20L1314%2013.8%20L1324%205.3%20L1340%205.3%20L1354%2014.0%20L1366%2018.6%20L1375%203.0%20L1384%2016.5%20L1399%2014.5%20L1408%200.4%20L1418%206.5%20L1434%200.3%20L1440%2010.1%20L1440%2026%20Z%22%20fill%3D%22%23EFE3C8%22%2F%3E%3C%2Fsvg%3E');mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%2226%22%20viewBox%3D%220%200%201440%2026%22%3E%3Cpath%20d%3D%22M0%2026%20L0%2010.1%20L13%2019.9%20L22%208.9%20L32%208.6%20L41%202.8%20L55%2018.8%20L64%2011.9%20L75%207.6%20L85%2016.2%20L97%205.1%20L111%2019.6%20L127%208.4%20L143%2017.7%20L155%201.9%20L165%203.0%20L179%2013.0%20L195%206.1%20L206%207.1%20L216%2020.3%20L229%2017.5%20L243%206.1%20L256%202.9%20L270%2021.3%20L283%207.4%20L294%2012.3%20L307%202.7%20L319%2018.3%20L333%2011.7%20L346%2013.5%20L358%201.9%20L368%208.3%20L384%2016.7%20L400%209.9%20L415%209.8%20L424%2019.6%20L435%205.5%20L445%201.1%20L456%207.7%20L472%2018.0%20L485%2011.9%20L494%2010.2%20L504%2010.7%20L515%205.4%20L528%2012.6%20L538%2013.0%20L552%2010.9%20L561%200.0%20L573%2010.1%20L582%2013.7%20L591%202.0%20L602%209.6%20L616%2021.2%20L631%203.7%20L640%2018.6%20L656%2018.7%20L671%2012.6%20L687%200.4%20L698%2013.6%20L707%2013.9%20L718%206.6%20L734%2013.2%20L744%2015.1%20L758%200.3%20L768%202.7%20L779%201.3%20L790%2011.0%20L803%2011.7%20L819%202.0%20L830%201.8%20L840%203.3%20L851%202.5%20L862%202.3%20L874%206.9%20L889%2010.2%20L902%2019.7%20L916%207.9%20L930%2010.3%20L941%2017.3%20L952%2013.6%20L964%2010.2%20L979%202.4%20L991%209.3%20L1001%2017.2%20L1015%204.5%20L1029%202.3%20L1041%2016.7%20L1050%208.8%20L1061%200.0%20L1073%2016.0%20L1084%200.6%20L1096%209.8%20L1109%200.4%20L1124%209.5%20L1138%2016.9%20L1147%2021.3%20L1162%2020.6%20L1172%206.7%20L1184%2020.0%20L1198%2019.2%20L1210%208.5%20L1225%203.8%20L1240%2012.7%20L1253%207.6%20L1267%202.0%20L1279%208.4%20L1288%2011.5%20L1298%200.1%20L1314%2013.8%20L1324%205.3%20L1340%205.3%20L1354%2014.0%20L1366%2018.6%20L1375%203.0%20L1384%2016.5%20L1399%2014.5%20L1408%200.4%20L1418%206.5%20L1434%200.3%20L1440%2010.1%20L1440%2026%20Z%22%20fill%3D%22%23EFE3C8%22%2F%3E%3C%2Fsvg%3E');
  -webkit-mask-size:1440px 26px;mask-size:1440px 26px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
  -webkit-mask-position:center top;mask-position:center top;}
/* .torn-top and .wave carry no z-index of their own, so they are painted
   UNDER .paper::after and the paper's grain already runs straight across
   them; a second copy would double it (measured: 215 vs the paper's 221
   mean on cream). Only .torn and .torn-2, which .torn lifts to z-index 2
   above that layer, need a copy. The .wave::after rule left below never
   gets a `content`, so it is never generated — it is kept only so the
   mask stays next to the shape it belongs to. */
.torn-top::after{content:none}
.wave{position:relative}
.wave::after{opacity:.4;
  -webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%22120%22%20viewBox%3D%220%200%201440%20120%22%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FFD166%22%20transform%3D%22translate(0%200)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FF8A3D%22%20transform%3D%22translate(0%2016)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FF3D8A%22%20transform%3D%22translate(0%2032)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23C026D3%22%20transform%3D%22translate(0%2048)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%238B5CF6%22%20transform%3D%22translate(0%2064)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%231B1440%22%20transform%3D%22translate(0%2080)%22%2F%3E%3C%2Fsvg%3E');mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%22120%22%20viewBox%3D%220%200%201440%20120%22%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FFD166%22%20transform%3D%22translate(0%200)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FF8A3D%22%20transform%3D%22translate(0%2016)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23FF3D8A%22%20transform%3D%22translate(0%2032)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%23C026D3%22%20transform%3D%22translate(0%2048)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%238B5CF6%22%20transform%3D%22translate(0%2064)%22%2F%3E%3Cpath%20d%3D%22M0%20400%20L0.0%2020.0%20L20.0%2026.2%20L40.0%2031.6%20L60.0%2035.6%20L80.0%2037.7%20L100.0%2037.7%20L120.0%2035.6%20L140.0%2031.6%20L160.0%2026.2%20L180.0%2020.0%20L200.0%2013.8%20L220.0%208.4%20L240.0%204.4%20L260.0%202.3%20L280.0%202.3%20L300.0%204.4%20L320.0%208.4%20L340.0%2013.8%20L360.0%2020.0%20L380.0%2026.2%20L400.0%2031.6%20L420.0%2035.6%20L440.0%2037.7%20L460.0%2037.7%20L480.0%2035.6%20L500.0%2031.6%20L520.0%2026.2%20L540.0%2020.0%20L560.0%2013.8%20L580.0%208.4%20L600.0%204.4%20L620.0%202.3%20L640.0%202.3%20L660.0%204.4%20L680.0%208.4%20L700.0%2013.8%20L720.0%2020.0%20L740.0%2026.2%20L760.0%2031.6%20L780.0%2035.6%20L800.0%2037.7%20L820.0%2037.7%20L840.0%2035.6%20L860.0%2031.6%20L880.0%2026.2%20L900.0%2020.0%20L920.0%2013.8%20L940.0%208.4%20L960.0%204.4%20L980.0%202.3%20L1000.0%202.3%20L1020.0%204.4%20L1040.0%208.4%20L1060.0%2013.8%20L1080.0%2020.0%20L1100.0%2026.2%20L1120.0%2031.6%20L1140.0%2035.6%20L1160.0%2037.7%20L1180.0%2037.7%20L1200.0%2035.6%20L1220.0%2031.6%20L1240.0%2026.2%20L1260.0%2020.0%20L1280.0%2013.8%20L1300.0%208.4%20L1320.0%204.4%20L1340.0%202.3%20L1360.0%202.3%20L1380.0%204.4%20L1400.0%208.4%20L1420.0%2013.8%20L1440.0%2020.0%20L1440%20400%20Z%22%20fill%3D%22%231B1440%22%20transform%3D%22translate(0%2080)%22%2F%3E%3C%2Fsvg%3E');
  -webkit-mask-size:1440px 120px;mask-size:1440px 120px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
  -webkit-mask-position:center top;mask-position:center top;}

/* ---------- 3. small labels you can actually read ----------
   Every compressed label at 13px or under that was painted in one of the
   old greys. On cream it becomes #4A4247 (7.4:1 on #EFE3C8); on the dark
   sections it becomes #C3BCDA (9:1 on #0F0D22). Nothing drops below 13px. */
/* 146 rules */
.trackrow-artist,
.ticket-foot,
.cas-meta,
.oa-desc,
.oa-now-artist,
.oa-time,
.oa-next-label,
.oa-next-artist,
.oa-next-at,
.stcard-listeners,
.feature-meta,
.cat-group,
.cat-active,
.cat-count-label,
.cat-sort-label,
.cover-meta,
.cover-facts,
.sooncard-type,
.sooncard-artist,
.rost-sort-label,
.rost-filter-label,
.acard-meta,
.acard-stats,
.hubcard-read,
.hubcard-by,
.addshow-kicker,
.addshow-note,
.trow-by,
.trow-lab,
.board-foot,
.review-meta,
.dw-meta,
.demorow-head,
.demo-city,
.demo-updated,
.demo-foot,
.relrow-meta,
.whyfills-kicker,
.whyfills-counts,
.cat-grid .cover-artist,
.dtnote,
.rl-card-kicker,
.rl-credit-role,
.rl-acard-meta,
.ar-rcard-meta,
.ar-bar-lab,
.ar-lore-k,
.ar-acard-meta,
.lb-rcard-meta,
.lb-demo-foot,
.lb-acard-meta,
.sn-oa-meta,
.sn-oa-times,
.sn-oa-next-k,
.sn-oa-next-a,
.sn-oa-next-at,
.sn-oa-foot,
.sn-srow-host,
.sn-srow-tag,
.sn-recent-at,
.sq-head-cet,
.sq-foot,
.sq-lrow-host,
.sq-empty,
.st-quote-by,
.st-photo-cap,
.st-inthis-k,
.st-board-k,
.ev-act-meta,
.ev-map-lab,
.se-meta,
.lg-nav-k,
.lg-step-w,
.lg-stamp,
.tx-pick-meta,
.jn-lbl,
.jn-rolenote,
.jn-or,
.jn-foot,
.jn-door-how,
.mt-deck-meta,
.mt-ticket-foot,
.mt-trow-when,
.mt-rcard-meta,
.mt-acard-meta,
.mx-k,
.mx-rowsub,
.mx-sidefoot,
.mx-pickmeta,
.ib-open-m,
.ib-tablefoot,
.ib-card-sub,
.ib-rule-how,
.bd-rules-k,.bd-rules-f,
.bd-compose-as,
.bd-row-last,
.th-card-when,
.th-foot-act,
.th-rules-k,
.th-more,
.th-compose-k,
.th-aside-k,
.th-rel-m,
.mb-row-meta,
.mb-row-when,
.tx-pick-head,
.fm-k,
.fm-lbl,
.fm-note,
.bs-pending-t,
.bs-lbl,
.bs-formnote,
.bs-k,
.bs-relhead,
.bs-relmeta,
.bs-axis,
.bs-source-k,
.bs-showwhere,
.bs-demometa,
.ld-k,
.ld-pulse-note,
.ld-demometa,
.ld-stat-k,
.ld-rostermeta,
.ld-note,
.ld-seatrole,
.ld-seatact,
.ld-stockhead,
.ld-stockmeta,
.ld-stockfoot,
.ad-k,
.ad-tablefoot,
.ad-qmeta,
.ad-qage,
.ad-pick-m,
.ad-om,
.ad-strow-head,
.ad-plno,
.ad-plm,
.ad-sheet-m,
.ad-sheet-dt,
.ed-kicker-note,
.ed-blocktag,
.ed-quote-by,
.ed-byread,
.ed-version-w{color:#4A4247;font-size:13px}

/* dark */
.cas-side,
.deepcuts-sub,
.dcrow-artist,
.voices-sub,
.voice-role,
.sched-host,
.sched-tag,
.recent-station,
.recent-at,
.recent-artist,
.series-note,
.series-row-meta,
.pairrow-label,
.daterow-venue,
.dir-chips-lbl,
.d-neonrow-sub,
.mt-card-sub,
.mt-hrow-at,
.mt-rem-when,
.ib-kind-note{color:#C3BCDA;font-size:13px}


/* the contact page's addresses are read, not glanced at */
.lg-step-w{font-size:15px;color:var(--ink);letter-spacing:.06em;white-space:normal}
a.lg-step-w{text-decoration:underline;text-underline-offset:3px}
a.lg-step-w:hover{color:#B33A25}
.lg-stamp{font-size:14px}
.lg-nav-k{font-size:13px}

/* ---------- 4. the shared motion engine ---------- */

/* morph — a card changing its mind */
.tx-morph-ghost{position:absolute;pointer-events:none}
.is-morphing{overflow:hidden}
.is-morphing>*:not(.tx-morph-ghost){animation:tx-morph-in 220ms cubic-bezier(.2,.8,.2,1) 60ms both}
@keyframes tx-morph-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* tabs — .tx-tabs is only a hook, never a layout: contact.html puts it on
   .lg-grid, which has to stay a grid. */
.tx-tablist{position:relative;display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.tx-tab-ind{position:absolute;left:0;top:0;width:0;height:0;border-radius:999px;background:var(--ink);
  box-shadow:3px 3px 0 var(--pink);z-index:0;pointer-events:none;
  transition:transform 260ms cubic-bezier(.2,.8,.2,1),width 260ms cubic-bezier(.2,.8,.2,1),
             height 260ms cubic-bezier(.2,.8,.2,1)}
.tx-tab{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;
  text-transform:uppercase;padding:9px 16px;min-height:40px;cursor:pointer;
  border:2px solid var(--ink);background:#F7EEDC;color:var(--ink);border-radius:999px;
  transition:color 200ms linear,background 200ms linear}
.tx-tab[aria-selected="true"]{background:transparent;color:var(--cream);border-color:var(--ink)}
.tx-tab:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.tx-panels{position:relative}
.tx-panel[hidden]{display:none}
.tx-tabs[data-vertical] .tx-tablist{flex-direction:column;flex-wrap:nowrap;gap:6px;align-items:stretch}
.tx-tabs[data-vertical] .tx-tab{justify-content:flex-start;text-align:left}

/* selects */
.tx-selectwrap{position:relative;width:100%}
.tx-select-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.tx-select{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  min-height:44px;padding:10px 14px;border:2px solid var(--ink);border-radius:12px;background:#FFFDF7;
  color:var(--ink);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.05em;text-transform:uppercase;text-align:left;cursor:pointer;
  transition:box-shadow 140ms cubic-bezier(.2,.8,.2,1)}
.tx-select:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.tx-selectwrap.is-open .tx-select{box-shadow:4px 4px 0 var(--pink)}
.tx-select-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tx-select-chev{flex:none;font-size:13px;line-height:1;transition:transform 140ms ease}
.tx-selectwrap.is-open .tx-select-chev{transform:rotate(180deg)}
.tx-select-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:70;max-height:290px;
  overflow:auto;padding:6px;background:#FFFDF7;border:2px solid var(--ink);border-radius:12px;
  box-shadow:6px 6px 0 var(--ink);opacity:0;transform:translateY(-4px) scale(.98);
  transition:opacity 140ms linear,transform 140ms cubic-bezier(.2,.8,.2,1)}
.tx-select-menu.is-in{opacity:1;transform:translateY(0) scale(1)}
.tx-select-menu.is-up{top:auto;bottom:calc(100% + 6px);transform-origin:bottom}
.tx-select-opt{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:40px;padding:9px 12px 9px 18px;border-radius:8px;cursor:pointer;color:var(--ink);
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;letter-spacing:0.05em;
  text-transform:uppercase}
.tx-select-opt::before{content:'';position:absolute;left:4px;top:7px;bottom:7px;width:4px;
  border-radius:2px;background:transparent}
.tx-select-opt.is-at{background:#F1E5CA}
.tx-select-opt.is-at::before{background:var(--pink)}
.tx-select-opt.is-picked::after{content:'✓';flex:none;font-size:14px}
.tx-selectwrap.is-dark .tx-select,.tx-selectwrap.is-dark .tx-select-menu{
  background:#1E1A2E;color:var(--cream);border-color:#5B5290}
.tx-selectwrap.is-dark .tx-select-menu{box-shadow:6px 6px 0 #0F0D22}
.tx-selectwrap.is-dark .tx-select-opt{color:var(--cream)}
.tx-selectwrap.is-dark .tx-select-opt.is-at{background:#2E2750}

@media (prefers-reduced-motion: reduce){
  .is-morphing>*:not(.tx-morph-ghost){animation:none!important}
  .tx-tab-ind,.tx-select-menu,.tx-select-chev,.tx-select{transition:none!important}
  .tx-select-menu{opacity:1;transform:none}
}

/* ---------- 5. join ---------- */
/* the title has to fit its column at every width, so it is sized by the
   column rather than by a stack of breakpoints */
.jn-title{font-size:clamp(42px,7.6vw,110px);line-height:.92;overflow-wrap:break-word;hyphens:auto}
.jn-modes{position:relative}
.jn-modes .tx-tab-ind{box-shadow:3px 3px 0 var(--pink)}
.jn-mode{position:relative;z-index:1;transition:color 200ms linear}
.jn-mode.is-on{background:transparent;box-shadow:none}
.jn-pwrow{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.jn-err{color:#9B1B30;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.04em;line-height:1.45}

/* ---------- 6. contact, as tabs ---------- */
.lg-grid[data-tabs] .lg-nav{gap:6px}
.lg-tabs-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.08em;color:#4A4247;margin-bottom:8px}
.lg-grid[data-tabs] .tx-panel{animation:none}
.lg-panel-h{margin-top:0}

/* ---------- 7. labels: the buttons that now do something ---------- */
.demo-action{cursor:pointer;font:inherit}
button.demo-action,button.relrow-action{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  letter-spacing:0.06em;text-transform:uppercase}
.relrow-action{text-align:right}
button.relrow-action{border:2px solid var(--ink);border-radius:999px;background:#F7EEDC;color:var(--ink);
  padding:7px 14px;min-height:38px;cursor:pointer;font-size:13px;white-space:nowrap}
button.relrow-action:hover{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
button.relrow-action.is-done{background:#5FE38A;color:#0F0D22;border-color:#0F0D22}
button.relrow-action.is-done:hover{background:#5FE38A;color:#0F0D22;box-shadow:3px 3px 0 var(--ink)}
.rsv{display:grid;gap:12px;padding:14px 0 4px}
.rsv-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.07em;
  color:#4A4247;text-transform:uppercase}
.rsv-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.rsv-field{flex:1 1 200px;min-width:0}
.rsv-lbl{display:block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.07em;color:#4A4247;text-transform:uppercase;margin-bottom:6px}
.rsv-go{border:2px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--cream);
  padding:11px 20px;min-height:44px;cursor:pointer;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:14px;letter-spacing:0.06em;text-transform:uppercase;box-shadow:4px 4px 0 var(--pink)}
.rsv-go:hover{box-shadow:2px 2px 0 var(--pink)}
.rsv-done{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:14px;
  letter-spacing:0.05em;color:#1E1A1F;text-transform:uppercase;line-height:1.5;padding:12px 0}
.dw-remind{cursor:pointer;border:0;background:transparent;font:inherit;color:#B33A25;
  text-decoration:underline;text-underline-offset:3px;padding:4px 0;min-height:32px}
.dw-remind:hover{color:var(--ink)}

/* ---------- 8. story: a wider column ---------- */
.st-grid{grid-template-columns:minmax(0,1fr) 340px;gap:48px}
.st-article{max-width:800px}

@media (max-width:1240px){
  .st-grid{grid-template-columns:minmax(0,1fr) 300px;gap:38px}
  .st-article{max-width:none}
}
@media (max-width:1100px){
  .st-grid{grid-template-columns:minmax(0,1fr);gap:34px}
  .st-article{max-width:800px}
  /* the vertical tab rail becomes a row you can swipe */
  .tx-tabs[data-vertical] .tx-tablist{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;
    overflow-y:hidden;gap:8px;padding-bottom:6px;scrollbar-width:thin;width:100%}
  .tx-tabs[data-vertical] .tx-tab{flex:none;white-space:nowrap}
}
@media (max-width:860px){
  .lg-step-w{white-space:normal}
}
@media (max-width:560px){
  .tx-select-menu{max-height:240px}
  .rsv-row{flex-direction:column;align-items:stretch}
  .rsv-go{width:100%}
}
/* ---------- 9. the odds and ends the pass turned up ---------- */
/* the pre-order form and its answer span the whole calendar row */
.relrow .rsv,.relrow .rsv-done{grid-column:1 / -1}
/* the table clips its own corners; while a pre-order form is open the
   dropdown has to be allowed out of it */
.weektable.is-rsv{overflow:visible}
.rsv-back{border:2px solid var(--ink);border-radius:999px;background:transparent;color:#4A4247;
  padding:11px 18px;min-height:44px;cursor:pointer;font-family:'NHaas','Arial Black',sans-serif;
  font-weight:900;font-size:13px;letter-spacing:0.06em;text-transform:uppercase}
.rsv-back:hover{background:var(--ink);color:var(--cream)}
/* a select that failed validation marks itself the way an input does */
.fm-field.is-bad .tx-select{border-color:#B33A25}
/* SEND DEMO is a link now, so it has to sit like the pill it replaced */
a.demo-action{display:flex;align-items:center;justify-content:center;text-decoration:none}
a.demo-action:hover{background:var(--ink);color:var(--cream);box-shadow:3px 3px 0 var(--pink)}
/* the join card's own small print, on the dark SENT panel */
.jn-devnote{font-size:13px;color:#CFC7E6}
.jn-act{display:block}
/* the contact addresses are links inside a grid cell that used to hold text */
.lg-step .lg-step-w{justify-self:end;text-align:right}
/* ============================ end of fix pass ============================ */

/* ============================ fix pass 3 ============================
   1. the member's menu (the pill drops a card instead of the nav
      carrying a pill per door), 2. nav pills over the sun, 3. the demo
      table's pills and buttons, 4. the deck's pull tab, 5. a custom
      select inside a box that already had a border. */

/* ---------- 1. nav pills over the hero's sun ----------
   Transparent pills over #FFB347 put cream on 1.4:1 and the words
   disappeared. A dark ground under each one puts them back over 9:1
   at every width, without leaning on the veil the 1240 breakpoint adds. */
.navpill,.hdr-pill{background:rgba(15,13,34,.78);-webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);border-color:rgba(243,235,217,.45);color:var(--cream)}
.navpill:hover{background:var(--cream);color:#0F0D22;border-color:var(--cream)}
/* the pill for the page you are on keeps the solid cyan it had */
.navpill.is-current,.navpill.is-current:hover{background:var(--cyan);color:#0F0D22;
  border-color:var(--cyan);-webkit-backdrop-filter:none;backdrop-filter:none}
.site-header .search{background:rgba(15,13,34,.82);-webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px)}

/* ---------- 2. the member's pill and the card it drops ---------- */
.hdr-card{gap:8px}
.hdr-chev{font-size:11px;line-height:1;opacity:.72}
/* open, the pill takes the pressed look: it moves onto its own shadow */
.hdr-card.is-on,.hdr-card.is-on:hover{background:var(--ink);color:var(--cream);
  border-color:var(--ink);transform:translate(2px,2px);box-shadow:1px 1px 0 var(--cyan)}

.tx-promenu{position:fixed;z-index:200;width:300px;background:#F7EEDC;color:var(--ink);
  border:3px solid var(--ink);border-radius:18px;box-shadow:6px 6px 0 var(--pink);overflow:hidden;
  opacity:0;transform:translateY(-8px) scale(.97);transform-origin:top right;
  transition:opacity 180ms cubic-bezier(.2,.8,.2,1),transform 180ms cubic-bezier(.2,.8,.2,1)}
.tx-promenu.is-in{opacity:1;transform:translateY(0) scale(1)}
.tx-promenu.is-out{opacity:0;transform:translateY(-8px) scale(.97);transition-duration:120ms}
.pro-head{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;
  background:#0F0D22;border-radius:15px 15px 0 0}
.pro-face{width:40px;height:40px;flex:none;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(160deg,#FF3D8A,#8B5CF6);color:#0F0D22;
  font-family:'NHaas','Arial Black',sans-serif;font-size:17px;line-height:1}
.pro-id{min-width:0}
.pro-name{font-family:'NHaas','Arial Black',sans-serif;font-size:18px;line-height:1.1;
  color:var(--cream);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pro-mail{font-family:'GT America',sans-serif;font-weight:400;font-size:13px;
  letter-spacing:0.07em;color:rgba(243,235,217,.72);margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pro-role{display:inline-flex;align-items:center;margin-top:7px;padding:2px 10px;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.06em}
.pro-item{position:relative;display:flex;align-items:center;gap:12px;height:46px;padding:0 16px;
  width:100%;border:0;border-bottom:2px dashed #1E1A1F22;background:transparent;color:var(--ink);
  text-decoration:none;text-align:left;cursor:pointer;
  transition-property:opacity,transform;transition-duration:180ms;
  transition-timing-function:cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0) * 25ms)}
.pro-items .pro-item:last-child{border-bottom:0}
.pro-foot{border-top:2px dashed #1E1A1F22}
.pro-foot .pro-item{border-bottom:0}
.pro-ico{width:28px;height:28px;flex:none;border-radius:8px;border:2px solid var(--ink);
  display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--ink)}
.pro-lbl{flex:1 1 auto;min-width:0;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:14px;letter-spacing:0.06em;text-transform:uppercase;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pro-n{flex:none;min-width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;
  justify-content:center;padding:0 7px;background:var(--pink);color:#0F0D22;
  font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.04em}
.pro-go{flex:none;font-size:15px;line-height:1;color:#4A4247}
.pro-item:hover,.pro-item:focus-visible{background:#1E1A1F;color:var(--cream);outline:0}
.pro-item:hover .pro-go,.pro-item:focus-visible .pro-go{color:var(--cream)}
.pro-item:hover .pro-n,.pro-item:focus-visible .pro-n{color:#0F0D22}
.pro-out .pro-lbl{color:#B33A25}
.pro-out:hover .pro-lbl,.pro-out:focus-visible .pro-lbl{color:#FF8A3D}
/* the rows come in behind the card, one after the other */
.tx-promenu .pro-item{opacity:0;transform:translateY(6px)}
.tx-promenu.is-in .pro-item{opacity:1;transform:translateY(0)}
.tx-promenu.is-out .pro-item{opacity:0;transform:translateY(6px);transition-delay:0s}
/* inside the phone menu the same card is simply laid into the panel */
.tx-promenu.is-inline{position:static;width:100%;opacity:1;transform:none}
.tx-promenu.is-inline .pro-item,.tx-promenu.is-inline.is-in .pro-item{opacity:1;transform:none;
  transition-delay:0s}
.menu-mtitle{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;
  letter-spacing:0.08em;color:#B8AEDA}
/* the panel lays its rows out flex-start, so the card has to ask for the width */
.menu-member{align-self:stretch;width:100%}

/* ---------- 3. the demo table ----------
   All three statuses wear the cream pill CLOSED already had; the dot is
   the only thing that carries the colour, because a yellow dot on a
   yellow pill was invisible. */
.demo-status{background:#F7EEDC;color:var(--ink);border:2px solid var(--ink);font-size:12px;
  letter-spacing:.16em;padding:5px 12px}
.demo-status-dot{width:9px;height:9px;box-shadow:none}
/* the last column gets the room the buttons need to stay on one line */
.demorow{grid-template-columns:132px 200px minmax(0,1fr) 118px 176px 150px}
.demo-action{display:flex;align-items:center;justify-content:center;white-space:nowrap;
  min-width:130px;padding:10px 16px;font-size:13px;letter-spacing:.14em;text-align:center}
.demo-action.is-open,a.demo-action.is-open:hover{background:var(--ink);color:var(--cream);
  box-shadow:3px 3px 0 var(--pink)}
.demo-action.is-shut{background:#F7EEDC;color:#4A4247;box-shadow:none;cursor:default}

/* ---------- 4. the deck's pull tab ----------
   Thin and small at 13px/.22em the words were unreadable on the pink;
   the tab is wide enough for 15px, and the copy is short enough to
   stay one line in every state. The 50px tab it already had is wide
   enough for that; the phone's 88px one is left alone. */
.pulltab-label,.pulltab-label-short{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:15px;letter-spacing:0.05em;color:#0F0D22}

/* ---------- 5. a select inside a box that already had a border ----------
   The custom button draws its own frame, so the wrapper the page put
   round the native select steps back rather than drawing a box inside
   a box. */
.tx-select-wrap{display:block;border:0;padding:0;background:transparent;box-shadow:none;min-height:0}
.tx-select-wrap:focus-within{outline:0}
.tx-select-wrap>.tx-selectwrap>.tx-select{min-height:46px;border-radius:12px}

@media (max-width:860px){
  /* the header's pill is gone here; the card lives in the phone menu */
  .tx-promenu:not(.is-inline){display:none}
  .pulltab-label-short{font-size:20px;letter-spacing:.12em}
}
@media (max-width:560px){
  .pulltab-label-short{font-size:25px}
}
@media (prefers-reduced-motion:reduce){
  .tx-promenu,.tx-promenu .pro-item{transition:none!important}
}
/* ========================== end of fix pass 3 ========================== */


/* ===== IN MEMORIAM (design-v3/memoriam-spec.md) ===== */
:root{
  --mem-ink:#0F0D22;        /* the band, the tag, the shadow on cream */
  --mem-paper:#F3EBD9;      /* the band's lettering, the shadow on ink */
  --mem-dim:#5B4E8A;        /* the quiet second shadow on the dark hero */
  --mem-soft:#B8AEDA;       /* the eyebrow once the cyan glow is gone */
}

/* the ink band: an armband across the artist's arch */
.mem-band{position:absolute;left:0;right:0;top:60%;height:30px;background:var(--mem-ink);border-top:2px solid var(--mem-paper);border-bottom:2px solid var(--mem-paper);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}
.mem-band span{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.2em;color:var(--mem-paper);white-space:nowrap;padding-left:0.2em}
/* on the hero the band wraps round the arch, so it overhangs both edges */
.ar-arch{position:relative}
.ar-arch .mem-band{left:-18px;right:-18px;height:38px;box-shadow:5px 5px 0 var(--mem-dim)}
.ar-arch .mem-band span{font-size:14px}
/* the label roster's and "artists like this" thumbnails: no words, just the band */
.mem-band-mini{height:14px;top:62%;border-width:1.5px}

/* the marker pill: words, never a glyph on its own */
.mem-mark{display:inline-block;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.1em;line-height:1;padding:7px 14px 6px;background:var(--mem-ink);color:var(--mem-paper);border:2px solid var(--mem-paper);box-shadow:3px 3px 0 var(--mem-dim);white-space:nowrap;vertical-align:middle}
.mem-mark-sm{font-size:12px;padding:5px 10px 4px;letter-spacing:0.08em}

/* the small tag beside a name on cream: ink fill, cream letters */
.mem-tag{display:inline-flex;align-items:center;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;line-height:1;padding:4px 8px 3px;border-radius:999px;background:var(--mem-ink);color:var(--mem-paper);box-shadow:2px 2px 0 #1E1A1F47;white-space:nowrap;vertical-align:middle;text-transform:uppercase}

/* ---- artist page hero ---- */
.ar-hero.is-memoriam .d-eyebrow{color:var(--mem-soft);text-shadow:none}
.ar-hero.is-memoriam .d-eyebrow a{color:var(--mem-soft)}
.ar-hero.is-memoriam .d-eyebrow a:hover{color:var(--cream)}
.ar-hero.is-memoriam .d-title{text-shadow:4px 4px 0 var(--mem-dim),8px 8px 0 var(--mem-ink)}
.mem-line{display:flex;align-items:center;flex-wrap:wrap;gap:14px 18px;margin:26px 0 0}
.mem-years{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:30px;line-height:1;letter-spacing:0.02em;color:var(--cream);font-variant-numeric:tabular-nums}
.mem-note{margin:14px 0 0;font-size:17px;line-height:1.5;color:#F3EBD9D9;max-width:560px;text-wrap:pretty}
.ar-hero.is-memoriam .d-lede{margin-top:18px;font-size:17px;color:#F3EBD9B3}
.mem-members{margin:12px 0 0;font-size:15px;line-height:1.5;color:#F3EBD9D9}

/* ---- roster card (artists.html) ---- */
.acard.is-memoriam:hover .arch,.acard.is-memoriam .acard-load:focus-visible .arch{transform:none}
.acard-years{color:var(--ink)}

/* ---- release page by-line ---- */
.rl-by .mem-mark{margin-left:14px;position:relative;top:-3px}

/* ---- the deck: a mourning edge on the paper label ---- */
.tape-label.is-memoriam{flex-direction:column;gap:2px;box-shadow:inset 0 0 0 3px var(--mem-ink),inset 0 -5px 0 #D8CDB6}
.tape-label-mem{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;line-height:1;color:#2A2431;white-space:nowrap}

@media (max-width:640px){
  .mem-years{font-size:22px}
  .mem-note{font-size:15px}
  .ar-arch .mem-band{left:-10px;right:-10px;height:32px}
  .ar-arch .mem-band span{font-size:12px}
}
/* the play disc sits above the band on hover */
.acard.is-memoriam .aplay{z-index:2}
/* the label roster's and "artists like this" arches carry the band too */
.lb-rcard-arch,.ar-acard-arch{position:relative}

/* ===========================================================
   STORE LINK (support / buy)
   The rule of the feature: Frekvenci never sells. Every buy control is
   a LINK OUT to the owner's own store, says where it goes, and carries
   the one orange hard shadow that means "leaves the site". No glows, and
   no price we did not get from the artist. Lifted from
   design-v3/support-mock.html and adapted to this file's tokens: NHaas
   small labels at 0.05em, nothing under 12px.
   =========================================================== */
:root{
  --so-ink:#0F0D22;        /* the full button's fill */
  --so-paper:#F7EEDC;      /* the release-page box */
  --so-out:#FF8A3D;        /* THE outbound colour: every store link's hard shadow, nothing else uses it as a shadow */
  --so-mute:#6F6468;       /* captions on cream (5.0:1 on #F7EEDC) */
}

/* ---------- the link: one component, two sizes ----------
   DOM text is sentence case ("Buy on Bandcamp"); CSS sets the caps,
   so screen readers read words, not letters. The arrow is text. */
.so-btn{display:inline-flex;align-items:center;gap:10px;max-width:100%;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;letter-spacing:0.05em;line-height:1.1;text-transform:uppercase;white-space:nowrap;padding:12px 20px 11px 15px;min-height:48px;border-radius:999px;background:var(--so-ink);color:var(--cream);border:3px solid var(--so-ink);box-shadow:4px 4px 0 var(--so-out);text-decoration:none;cursor:pointer;transition:transform .14s ease-out,box-shadow .14s ease-out,background-color .14s ease-out,color .14s ease-out}
.so-btn:hover,.so-btn:focus-visible{color:var(--cream);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--so-out)}
.so-btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--so-out)}
.so-ico{width:20px;height:18px;flex:none;display:block}
.so-txt{min-width:0;overflow:hidden;text-overflow:ellipsis}
.so-host{text-transform:none;letter-spacing:0.02em}          /* "other": the address stays an address */
.so-arrow{flex:none}

/* small: cassette cards, release rows, track rows, the deck */
.so-sm{gap:7px;font-size:12px;letter-spacing:0.05em;padding:7px 12px 6px 9px;min-height:34px;border-width:2px;background:transparent;color:var(--ink);box-shadow:3px 3px 0 var(--so-out)}
.so-sm .so-ico{width:16px;height:14px}
.so-sm:hover,.so-sm:focus-visible{background:var(--so-ink);border-color:var(--so-ink);color:var(--cream);box-shadow:5px 5px 0 var(--so-out)}
.so-sm:active{box-shadow:1px 1px 0 var(--so-out)}
.so-tiny{max-width:210px}
/* small on a dark surface */
.so-sm.so-on-dark{color:var(--cream);border-color:var(--cream)}
.so-sm.so-on-dark:hover,.so-sm.so-on-dark:focus-visible{background:var(--cream);color:#0F0D22;border-color:var(--cream)}

/* the artist hero: a fourth .cta, after LOAD and before SHARE */
.cta-out{background:transparent;color:var(--cream);border:3px solid var(--cream);box-shadow:5px 5px 0 var(--so-out);text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:transform .14s ease-out,box-shadow .14s ease-out,background-color .14s ease-out,color .14s ease-out}
.cta-out:hover,.cta-out:focus-visible{background:var(--cream);color:#0F0D22;transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--so-out)}
.cta-out:active{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--so-out)}
.cta-out .so-ico{width:22px;height:20px}

/* ---------- release page: the box that replaces the four format cards ---------- */
.rl-store{margin-top:30px}
.so-box{max-width:580px;background:var(--so-paper);color:var(--ink);border:3px solid var(--ink);border-radius:16px;padding:16px 20px 14px;box-shadow:6px 6px 0 var(--purple)}
.so-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;color:var(--so-mute);text-transform:uppercase}
.so-row{display:flex;align-items:center;justify-content:space-between;gap:14px 22px;flex-wrap:wrap;margin-top:10px}
.so-price{display:flex;flex-direction:column;gap:5px;min-width:0}
.so-price-v{font-family:'NHaas','Arial Black',sans-serif;font-size:32px;line-height:1;color:var(--ink);overflow-wrap:anywhere}
.so-price-c{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;line-height:1.3;color:var(--so-mute);text-transform:uppercase}
.so-foot{margin:14px 0 0;padding-top:10px;border-top:2px dashed #1E1A1F22;font-size:13px;line-height:1.45;color:#4A4247}
/* the formats stay, as facts: what it was pressed on, no prices, no actions */
.so-formats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px}
.so-formats-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;color:#F3EBD9C7;margin-right:2px}
.so-fmt{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;line-height:1;padding:6px 11px 5px;border:2px solid #F3EBD9B3;border-radius:999px;color:var(--cream)}
.so-formats .rl-human{margin-left:10px}
.so-notify{margin-top:16px}
/* nothing set: a quiet dashed note, no box shadow, no price */
.so-none{max-width:580px;border:2px dashed #F3EBD980;border-radius:16px;padding:14px 20px 15px}
.so-none-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;color:#F3EBD9C7}
.so-none-t{margin:6px 0 0;font-size:15px;line-height:1.5;color:#F3EBD9C7;max-width:46ch}
.so-none-own{display:inline-block;margin-top:10px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;color:var(--cyan);text-decoration:underline;text-underline-offset:4px}
.so-none-own:hover{color:var(--cream)}
.so-box + .so-notify,.so-none + .so-notify{display:inline-flex}

/* ---------- cards ---------- */
.cas-out{margin-top:12px}
/* artist page release row: the row is a link, so the store link sits under it, never inside it */
.ar-rwrap{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ar-rwrap>.ar-rcard{width:100%}
.ar-rwrap>.so-sm{margin-left:14px}

/* ---------- track rows: beside + MIXTAPE, in one side cluster ---------- */
.dtrow-side{display:flex;align-items:center;gap:10px;margin-left:12px}
.dtrow-side .tx-mixbtn{margin:0}

/* ---------- the deck: one line under the transport row ---------- */
.wm-out{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid #7FB0F055}
.wm-out[hidden]{display:none}
.wm-out-k{min-width:0;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#D9E4F5;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-out .so-sm{background:#F0E6D2;color:#2A2431;border-color:#0A0A0F;box-shadow:3px 3px 0 #0A0A0F;flex:none}
.wm-out .so-sm:hover,.wm-out .so-sm:focus-visible{background:#FFD166;color:#0F0D22;border-color:#0A0A0F;box-shadow:5px 5px 0 #0A0A0F}
/* the radio's ON AIR card: the same small link, on its own line under the counter */
.now-time{flex-wrap:wrap}
.now-out{flex-basis:100%;display:flex;margin-top:10px}
.now-out:empty{display:none}

/* ---------- backstage + label desk: STORE LINK ---------- */
.so-form{box-shadow:8px 8px 0 var(--so-out)}
.so-help{margin:8px 0 0;font-size:17px;line-height:1.5;color:#3A332E;max-width:52ch}
.so-help b{font-weight:400;font-family:'NHaas','Arial Black',sans-serif;letter-spacing:0.01em;color:var(--ink)}
.so-fields{display:flex;flex-direction:column;gap:14px}
.so-group{border:0;margin:0;padding:0;min-width:0}
.so-group>legend{padding:0;margin-bottom:8px}
.so-chips{display:flex;gap:8px;flex-wrap:wrap}
.so-hint{margin:7px 0 0;font-size:13px;line-height:1.45;color:#5A5147}
.so-hint code{font-family:'GT America',sans-serif;font-size:13px;background:#EFE3C8;padding:1px 5px;border-radius:4px}
.so-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.so-two.is-one{grid-template-columns:minmax(0,1fr)}
.so-two>[hidden]{display:none}
.bs-box.is-bad{border-color:#B33A25;box-shadow:inset 0 0 0 1px #B33A25}
.so-err{margin:7px 0 0;font-size:13px;line-height:1.45;color:#B33A25}
.so-err[hidden]{display:none}
.so-remove{background:none;border:0;padding:0 4px;cursor:pointer;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;color:#B33A25;min-height:44px}
.so-remove:hover{text-decoration:underline;text-underline-offset:3px}
.so-remove[hidden]{display:none}
.bs-ghost-ink.is-off{opacity:.45;cursor:not-allowed}
.bs-ghost-ink.is-off:hover{background:transparent;color:var(--ink)}
/* the live preview: the same component, rendered on the two grounds it lives on */
.so-pv{border-radius:22px;background:var(--ink);color:var(--cream);padding:22px 24px;box-shadow:8px 8px 0 var(--cyan)}
.so-pv-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;color:var(--cyan);text-transform:uppercase}
.so-pv-stage{margin-top:14px;padding:20px 18px;border-radius:14px;background:#1A1438;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.so-pv-cream{margin-top:12px;padding:18px;border-radius:14px;background:#EFE3C8;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.so-pv-cream:empty{display:none}
.so-pv-cap{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.05em;color:#C9C1E4}
.so-pv-cap-ink{color:#6F6468;width:100%}
.so-pv-empty{font-size:15px;color:#C9C1E4}
.so-pv-t{margin:16px 0 0;font-size:14px;line-height:1.5;color:#C9C1E4}
.so-pv.is-stale .so-pv-stage>.cta-out,.so-pv.is-stale .so-pv-cream>.so-btn{opacity:.5;pointer-events:none}
/* the release editor's row: three chips, then the same fields on the dark editor */
.so-choice{display:flex;gap:8px;flex-wrap:wrap}
.so-own{grid-column:1 / -1;margin-top:4px}
.so-fields-dark .bs-lbl,.so-fields-dark .so-hint{color:#C9C1E4}
.so-fields-dark .bs-lbl-note{color:#FF9A88}
.so-fields-dark .bs-count{color:#C9C1E4}
.so-fields-dark .so-err{color:#FF9A88}
.so-fields-dark .bs-box.is-bad{border-color:#FF9A88;box-shadow:inset 0 0 0 1px #FF9A88}
.so-fields-dark .so-two{grid-template-columns:minmax(0,1fr)}
.bs-editor .so-chips .bs-mood,.bs-editor .so-choice .bs-mood{border-color:var(--cream);color:var(--cream);background:transparent}
.bs-editor .so-chips .bs-mood.is-on,.bs-editor .so-choice .bs-mood.is-on{background:var(--cream);color:#0F0D22}
.bs-erow>.so-own{min-width:0}

@media (max-width:640px){
  .so-btn{white-space:normal;text-align:left;font-size:14px}
  .so-sm{white-space:nowrap;font-size:12px}
  .so-row{flex-direction:column;align-items:flex-start}
  .so-price-v{font-size:28px}
  .cta-out{white-space:normal}
  .dtrow-side{margin-left:0;justify-self:start;flex-wrap:wrap}
  .so-two{grid-template-columns:minmax(0,1fr)}
  .wm-out-k{display:none}
  .so-tiny{max-width:100%}
}
@media (prefers-reduced-motion:reduce){
  /* no lift, no press: hover is said with fill alone */
  .so-btn,.cta-out{transition:none}
  .so-btn:hover,.so-btn:focus-visible,.so-btn:active,
  .cta-out:hover,.cta-out:focus-visible,.cta-out:active{transform:none}
  .so-btn:not(.so-sm):hover,.so-btn:not(.so-sm):focus-visible{background:#3A2F5C;border-color:#3A2F5C;box-shadow:4px 4px 0 var(--so-out)}
  .so-sm:hover,.so-sm:focus-visible{box-shadow:3px 3px 0 var(--so-out)}
  .cta-out:hover,.cta-out:focus-visible{box-shadow:5px 5px 0 var(--so-out)}
}
.bs-etitle-ro{font-family:'NHaas',sans-serif;font-size:22px;color:var(--cream);margin:8px 0 2px}
/* store link on the Releases cards and the label page's cards */
.cover-out{margin-top:12px}
.cover-out-m{display:none}
.lb-relwrap{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.lb-out{margin-top:10px;max-width:100%}
@media (max-width:860px){
  .cover-out-d{display:none}
  .cat-grid .cover-out-m{display:inline-flex;margin-top:0;min-height:34px}
  .cat-grid .cover-more-row{flex-wrap:wrap}
}
.lb-relwrap>.lb-relcard{width:100%}
.lb-rel{align-items:start}

/* ===========================================================
   The archive goes live (phase A): boot skeleton, offline bar,
   house bar, the source line. Palette and fonts as above.
   =========================================================== */
/* real cover art already has the title on it */
.has-cover .d-sleeve-title,.rl-sleeve.has-cover .rl-sleeve-title,.rl-sleeve.has-cover .rl-sleeve-cat,
.rl-sleeve.has-cover .rl-sleeve-type{display:none}

/* while D.load runs: the boxes the page already has shimmer, nothing moves */
@keyframes skel{0%{background-position:200% 0}100%{background-position:-200% 0}}
.is-loading [data-skel]{position:relative;min-height:1.2em;border-radius:10px;color:transparent;
  background:linear-gradient(100deg,#F3EBD91F 30%,#F3EBD93D 50%,#F3EBD91F 70%) 0 0/200% 100%;
  animation:skel 1.4s linear infinite;pointer-events:none}
.is-loading .paper [data-skel]{background:linear-gradient(100deg,#1E1A1F14 30%,#1E1A1F29 50%,#1E1A1F14 70%) 0 0/200% 100%}
.is-loading [data-skel] *{visibility:hidden}
.is-loading #rl-tracks[data-skel],.is-loading #ar-rel[data-skel],.is-loading #lb-roster[data-skel]{min-height:260px}
.is-loading #rl-title[data-skel],.is-loading #ar-title[data-skel],.is-loading #lb-title[data-skel]{min-height:1.1em;width:70%}
@media (prefers-reduced-motion:reduce){.is-loading [data-skel]{animation:none}}

/* the archive could not be reached: ink on pink, hard edge, dismissible */
.archive-offline{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--pink);color:#0F0D22;
  border-bottom:3px solid var(--ink);padding:9px var(--gutter);font-family:'NHaas','Arial Black',sans-serif;font-weight:900;
  font-size:13px;letter-spacing:0.05em;line-height:1.3;text-align:center;position:relative;z-index:3}
.archive-offline-x{flex:none;min-width:32px;min-height:32px;background:transparent;border:2px solid #0F0D22;border-radius:999px;
  color:#0F0D22;font:inherit;cursor:pointer}
.archive-offline-x:hover,.archive-offline-x:focus-visible{background:#0F0D22;color:var(--pink)}

/* an honest empty state: the catalogue's own dashed card (.cat-empty), on any
   background. .is-dark is the same card on the night-blue sections. */
.cat-empty.tx-empty{margin-top:18px;padding:44px 26px}
.cat-empty.is-dark{border-color:rgba(255,255,255,.42);color:#F3EBD9}
.cat-empty.is-dark .cat-empty-sub{color:rgba(243,235,217,.72)}
.cat-empty .cat-empty-title{line-height:1.05}
.cat-empty .cat-empty-sub{line-height:1.5;max-width:46ch;margin-left:auto;margin-right:auto}
.cat-empty-cta{display:inline-flex;margin-top:20px;text-decoration:none;font-size:15px;padding:12px 24px}
.cat-empty.is-dark .cat-empty-cta{box-shadow:5px 5px 0 var(--cyan)}
@media (max-width:600px){.cat-empty.tx-empty{padding:34px 18px}.cat-empty .cat-empty-title{font-size:22px}}

/* attribution: MusicBrainz is CC BY-NC-SA and Discogs' terms want the link */
.src-line{margin:22px 0 0;font-family:'GT America',Helvetica,sans-serif;font-weight:400;font-size:13px;line-height:1.5;
  letter-spacing:0.04em;color:#F3EBD9B3}
.src-line a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.src-line a:hover,.src-line a:focus-visible{color:var(--cream)}
.rl-art .src-line{max-width:420px}

/* ALSO ON / WATCH ON YOUTUBE: outbound links on the dark hero */
.also-on{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:26px}
.also-on-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.05em;color:#F3EBD9C7}
.rl-watch{margin-top:18px}
.no-bio{color:#F3EBD9C7}
.no-bio a{color:var(--cyan);text-decoration:underline;text-underline-offset:4px}
.no-bio a:hover{color:var(--cream)}
.no-tracks{margin:0;padding:18px 20px;font-size:15px;line-height:1.5;color:#3A332E}

/* ===========================================================
   The archive goes live (phase B): lists, search, home.
   =========================================================== */
/* a real cover already carries the title: the card's burnt-in text steps aside */
.sleeve.has-cover .sleeve-cat,.sleeve.has-cover .sleeve-title,.sleeve.has-cover .sleeve-type{display:none}
/* the list is being refetched: the old cards dim and ignore the pointer */
.cat-grid.is-fetching,.rost-grid.is-fetching,.dir-grid.is-fetching{opacity:.55;pointer-events:none;transition:opacity .15s}
.dir-search{margin-right:8px}
.dir-none{grid-column:1/-1;margin:0;font-family:'GT America',sans-serif;font-size:15px;line-height:1.5;color:#F3EBD9B3}
/* phone deck: the sleeve sits inside the load button, so the button has to be the
   flex child that fills the card or the sleeve collapses to its border */
@media (max-width:860px){
  .cat-grid .cover-btn{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
  .cat-grid .cover-btn .sleeve{flex:1 1 auto}
}
@media (max-width:860px){
  .rost-grid .acard-load{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
  .rost-grid .acard-load .arch{flex:1 1 auto}
}

/* a record with no track on file cannot be loaded: no play overlay, no pointer */
.cascard-load:disabled,.cover-btn:disabled{cursor:not-allowed}
.cascard-load:disabled .casplay,.cover-btn:disabled .coverplay{display:none}
.cover:hover .cover-btn:disabled .sleeve{transform:none}
.cover:hover .cover-btn:disabled ~ .vinyl,.cover-btn:disabled .vinyl{transform:none}

/* the deck's screen for a record that plays from YouTube: 200x200 (the smallest YouTube allows),
   always visible, beside the tape where the TAPEDECK face normally is */
.wm-screen{flex:none;width:200px;height:200px}
.wm-screen[hidden]{display:none}
.wm-mid.is-yt .wm-face{display:none}
.wm-mid.is-yt .bay{height:200px}
.wm-screen-frame{width:200px;height:200px;background:#0A0A0F;border:1px solid #6A6E76;border-radius:9px;overflow:hidden;box-shadow:inset 0 3px 10px #000,0 1px 0 #7FB0F0}
.wm-screen-frame iframe{display:block;width:200px;height:200px;border:0}

.progress.is-seeking .progress-fill{transition:none}

/* a track with no matching video */
.dtrow.is-novideo{opacity:.45;cursor:not-allowed}

/* ---------- the cookie question (analytics.js; only shown when a GA4 id is set) ----------
   A ticket in the corner, not a wall: both answers are the same size. */
.footer-links{flex-wrap:wrap}
.tq-banner{position:fixed;left:24px;bottom:24px;z-index:80;width:min(420px,calc(100vw - 32px));background:#F7EEDC;color:var(--ink);
  border:3px solid var(--ink);border-radius:22px;box-shadow:8px 8px 0 var(--pink);padding:20px 22px 22px;
  animation:tq-in .32s cubic-bezier(.2,.9,.25,1.04) both}
.tq-banner.is-leaving{animation:tq-out .24s ease-in both}
.tq-k{font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:13px;letter-spacing:0.06em;color:var(--ink)}
.tq-title{margin-top:8px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:24px;line-height:1;text-transform:uppercase;color:var(--ink)}
.tq-text{margin:10px 0 0;font-family:'GT America',sans-serif;font-size:15px;line-height:1.45;color:var(--ink)}
.tq-text a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--pink);text-decoration-thickness:2px;text-underline-offset:3px}
.tq-text a:hover{color:#B0125A}
.tq-row{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}
.tq-btn{flex:1 1 140px;min-height:48px;padding:12px 18px;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:15px;
  letter-spacing:0.05em;text-transform:uppercase;text-align:center;border:3px solid var(--ink);cursor:pointer;
  transition:transform .14s ease-out,box-shadow .14s ease-out,background-color .14s ease-out}
.tq-yes{background:var(--ink);color:var(--cream);box-shadow:4px 4px 0 var(--cyan)}
.tq-no{background:#F7EEDC;color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.tq-btn:hover{transform:translate(-2px,-2px)}
.tq-yes:hover{box-shadow:6px 6px 0 var(--cyan)}
.tq-no:hover{box-shadow:6px 6px 0 var(--ink);background:#FFD166}
@keyframes tq-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes tq-out{to{opacity:0;transform:translateY(24px)}}
@media (max-width:620px){
  .tq-banner{left:16px;right:16px;bottom:16px;width:auto}
}
@media (prefers-reduced-motion:reduce){
  .tq-banner,.tq-banner.is-leaving{animation:none}
  .tq-btn{transition:none}
  .tq-btn:hover{transform:none}
}

/* Hub: the submit card fills the dark column now the sign-up card is gone */
.sched-right .card-hubsubmit{flex:1 1 auto;min-height:320px}
.sched-right .card-hubsubmit .randomcard-title{font-size:52px}
@media (max-width:620px){.sched-right .card-hubsubmit{min-height:240px}.sched-right .card-hubsubmit .randomcard-title{font-size:34px}}

/* Radio: the Creative Commons credit (licence badge + the track's Jamendo
   page) wherever a pool track is shown, and the deck's NEXT key */
.cc-badge{display:inline-block;color:inherit;border:1.5px solid currentColor;border-radius:3px;padding:0 5px;margin:1px 0;text-decoration:none;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;letter-spacing:0.06em;white-space:nowrap}
a.cc-badge:hover{background:transparent;text-decoration:underline}
.cc-link{color:inherit;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.cc-link:hover,.cc-link:focus-visible{text-decoration-thickness:2px}
.now .now-note .cc-badge,.now .now-note .cc-link{color:#E6E8EB}
.wm-out.is-radio{align-items:center}
.wm-cc{min-width:0;display:flex;flex-direction:column;gap:3px;font-family:'GT America',sans-serif;font-weight:400;font-size:12px;letter-spacing:0.08em;color:#D9E4F5;text-transform:uppercase}
.wm-cc-who{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#F3EBD9}
.wm-cc-lic{white-space:normal;line-height:1.5}
.wm-next{flex:none;padding:5px 12px;border:2px solid #0A0A0F;background:#F0E6D2;color:#2A2431;box-shadow:3px 3px 0 #0A0A0F;font-family:'NHaas','Arial Black',sans-serif;font-weight:900;font-size:12px;letter-spacing:0.08em;cursor:pointer}
.wm-next:hover,.wm-next:focus-visible{background:#FFD166;color:#0F0D22;box-shadow:5px 5px 0 #0A0A0F}
.oa-foot .cc-badge,.sn-oa-foot .cc-badge{font-size:12px}
.sn-oa-cover.has-img{background-size:cover!important;background-position:center!important}
