/* hidden means hidden: a component's own display rule must never resurrect it (the LIVE badge showed in empty rooms). */
[hidden]{display:none!important}
dialog:not([open]){display:none}
/* Liner's faces, self-hosted (SIL OFL; licence files sit beside them in app/fonts/). woff2 only, font-display: swap,
   latin + latin-ext subsets, so no visitor data reaches Google and font-src stays 'self'. */
@font-face{
  font-family:"Bricolage Grotesque";
  font-style:normal;
  font-weight:800;
  font-display:swap;
  src:url("../fonts/bricolage-grotesque-800-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face{
  font-family:"Bricolage Grotesque";
  font-style:normal;
  font-weight:800;
  font-display:swap;
  src:url("../fonts/bricolage-grotesque-800-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/instrument-sans-400-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/instrument-sans-400-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("../fonts/instrument-sans-500-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("../fonts/instrument-sans-500-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("../fonts/instrument-sans-600-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("../fonts/instrument-sans-600-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("../fonts/instrument-sans-700-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("../fonts/instrument-sans-700-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face{
  font-family:"Space Mono";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/space-mono-400-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face{
  font-family:"Space Mono";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/space-mono-400-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face{
  font-family:"Space Mono";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("../fonts/space-mono-700-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
@font-face{
  font-family:"Space Mono";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("../fonts/space-mono-700-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
/* Liner tokens (docs/design/liner/README.md "Design tokens"). Paper is the default, Graphite switches on the app's
   data-theme attribute, so Auto / Light / Dark and the saved choice keep working. The legacy role tokens below now
   read from Liner, so every existing selector renders in the new look without any markup change. */
:root{
  --lr-page:#F3EEE3;
  --lr-card:#FFFDF8;
  --lr-field:#F7F2E8;
  --lr-track:#F1EBDF;
  --lr-avatar:#E6DED0;
  --lr-rule:#E2D9C8;
  --lr-rule-2:#D8CFBF;
  --lr-rule-3:#CFC5B3;
  --lr-field-border:#7A7266;
  --lr-ink:#1A1714;
  --lr-ink-2:#5A534A;
  --lr-ink-3:#6B6458;
  --lr-ink-faint:#A79E8E;
  --lr-red:#C23A17;
  --lr-red-deep:#8E2A10;
  --lr-on-red:#FFF8F2;
  --lr-nav:#1A1714;
  --lr-nav-fg:#F3EEE3;
  --lr-grain-alpha:.10;
  --lr-font-display:"Bricolage Grotesque", system-ui, sans-serif;
  --lr-font-ui:"Instrument Sans", system-ui, sans-serif;
  --lr-font-time:"Space Mono", ui-monospace, monospace;
  --lr-text-hero:84px;
  --lr-text-hero-m:48px;
  --lr-text-station:30px;
  --lr-text-station-m:23px;
  --lr-text-state:26px;
  --lr-text-state-m:23px;
  --lr-text-artist:26px;
  --lr-text-artist-m:20px;
  --lr-text-body:17px;
  --lr-text-ui:16px;
  --lr-text-meta:15px;
  --lr-text-caption:13px;
  --lr-space-1:4px;
  --lr-space-2:8px;
  --lr-space-3:12px;
  --lr-space-4:16px;
  --lr-space-5:20px;
  --lr-space-6:24px;
  --lr-space-8:32px;
  --lr-space-10:40px;
  --lr-radius-media:10px;
  --lr-radius-card-m:16px;
  --lr-radius-card:18px;
  --lr-radius-panel:22px;
  --lr-radius-pill:999px;
  --lr-shadow-card:0 1px 0 var(--lr-rule), 0 18px 40px -18px rgba(60,40,20,.28);
  --lr-shadow-nav:0 10px 24px rgba(0,0,0,.3);
  --lr-shadow-press:0 3px 0 var(--lr-red-deep);
  --lr-tap:44px;
  --lr-btn-l:60px;
  --lr-btn-m:48px;
  --lr-btn-s:40px;
  --lr-ease-damped:cubic-bezier(.2,.7,.2,1);
  --lr-ease-hush:cubic-bezier(.37,0,.63,1);
  --lr-dur-press:120ms;
  --lr-dur-ui:240ms;
  --lr-dur-lock:1100ms;
  --lr-dur-hush:4200ms;
  --lr-dur-live-breath:1400ms;
  --ink-0:var(--lr-ink);
  --ink-1:var(--lr-ink);
  --ink-2:var(--lr-ink-2);
  --ink-3:var(--lr-ink-3);
  --ink-4:var(--lr-ink-faint);
  --paper-0:var(--lr-card);
  --paper-1:var(--lr-page);
  --paper-2:var(--lr-track);
  --paper-3:var(--lr-rule);
  --bg:var(--lr-page);
  --bg-sunken:var(--lr-track);
  --surface:var(--lr-card);
  --surface-raised:var(--lr-card);
  --surface-inverse:var(--lr-nav);
  --text:var(--lr-ink);
  --text-muted:var(--lr-ink-2);
  --text-faint:var(--lr-ink-3);
  --text-inverse:var(--lr-page);
  --border:var(--lr-rule-3);
  --border-soft:var(--lr-rule);
  --border-strong:var(--lr-ink);
  --accent:var(--lr-red);
  --accent-hover:var(--lr-red-deep);
  --on-accent:var(--lr-on-red);
  --accent-wash:color-mix(in srgb, var(--lr-red) 14%, transparent);
  --accent-2:var(--lr-ink);
  --accent-2-hover:var(--lr-ink);
  --on-accent-2:var(--lr-page);
  --accent-2-wash:var(--lr-track);
  --signal-500:var(--lr-red);
  --signal-600:var(--lr-red-deep);
  --signal-100:var(--accent-wash);
  --volt-500:var(--accent-2);
  --volt-600:var(--accent-2-hover);
  --volt-100:var(--accent-2-wash);
  --focus:var(--lr-red);
  --shadow-ink:transparent;
  --shadow-hard:var(--lr-shadow-card);
  --shadow-hard-lg:var(--lr-shadow-card);
  --overlay:rgba(14,13,12,.72);
  --font-display:var(--lr-font-display);
  --font-sans:var(--lr-font-ui);
  --font-mono:var(--lr-font-time);
  --text-xs:13px;
  --text-sm:var(--lr-text-meta);
  --text-md:var(--lr-text-ui);
  --text-lg:var(--lr-text-artist-m);
  --text-xl:var(--lr-text-station-m);
  --text-2xl:var(--lr-text-state);
  --text-3xl:var(--lr-text-station);
  --text-4xl:var(--lr-text-hero-m);
  --space-1:var(--lr-space-1);
  --space-2:var(--lr-space-2);
  --space-3:var(--lr-space-3);
  --space-4:var(--lr-space-4);
  --space-5:var(--lr-space-6);
  --space-6:var(--lr-space-8);
  --radius-sm:var(--lr-radius-media);
  --radius-md:var(--lr-radius-media);
  --radius-card:var(--lr-radius-card);
  --radius-lg:var(--lr-radius-card);
  --radius-pill:var(--lr-radius-pill);
  --stroke:1px;
  --stroke-bold:1px;
  --stroke-marker:2px;
  --border-drawn:var(--stroke) solid var(--border);
  --dur-base:var(--lr-dur-ui);
  --dur-beat:var(--lr-dur-live-breath);
  --ease-out:var(--lr-ease-damped);
  --ease-snap:var(--lr-ease-damped);
  --ink:var(--text);
  --muted:var(--text-muted);
  --line:var(--border-soft);
  --paper:var(--surface);
  --dark:var(--bg);
  --lime:var(--accent-2);
  --orange:var(--accent);
  --warning:var(--accent);
  --blue:var(--text-faint);
  --card:var(--surface-raised);
  --font:var(--font-sans);
  --display:var(--font-display);
  --mono:var(--font-mono);
  --ad-break-preroll-bg:color-mix(in srgb, var(--accent) 18%, transparent);
  --ad-break-pending-bg:color-mix(in srgb, var(--warning) 18%, transparent);
}
:root { --lr-grain:url("../grain.svg"); }
[data-theme="dark"]{
  --lr-page:#141414;
  --lr-card:#1D1D1D;
  --lr-field:#141414;
  --lr-track:#101010;
  --lr-avatar:#2C2C2C;
  --lr-rule:#2A2A2A;
  --lr-rule-2:#343434;
  --lr-rule-3:#3C3C3C;
  --lr-field-border:#6E6A64;
  --lr-ink:#F0EDE6;
  --lr-ink-2:#B3AFA7;
  --lr-ink-3:#8F8B84;
  --lr-ink-faint:#6E6A64;
  --lr-red:#FF5A36;
  --lr-red-deep:#A8361A;
  --lr-on-red:#160906;
  --lr-nav:#262626;
  --lr-nav-fg:#F0EDE6;
  --lr-grain-alpha:.045;
  --overlay:rgba(4,4,5,.84);
  --ad-break-preroll-bg:color-mix(in srgb, var(--accent) 10%, transparent);
  --ad-break-pending-bg:color-mix(in srgb, var(--warning) 14%, transparent);
}
* { box-sizing:border-box; }
@keyframes pr-bars { 0%,100% { transform:scaleY(.35); } 50% { transform:scaleY(1); } }
html { background:var(--dark); color:var(--ink); font-family:var(--font); }
body { margin:0; overflow-x:hidden; background:var(--dark); }
