/* Rising Sound WA — component styles. Blocky, square-cornered, hard-edged.
   Every rule reads from tokens/. Interactive elements shift on press, never fade. */

/* ---- Button ---- */
.rs-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-text);font-weight:var(--fw-bold);font-size:var(--fs-body-sm);letter-spacing:.06em;text-transform:uppercase;padding:14px 26px;border:var(--border-strong) solid transparent;border-radius:var(--radius-none);cursor:pointer;transition:var(--motion-hover);text-decoration:none;line-height:1;white-space:nowrap}
.rs-btn:active{transform:var(--press)}
.rs-btn--primary{background:var(--rs-amber);color:var(--rs-ink);border-color:var(--rs-amber)}
.rs-btn--primary:hover{background:var(--rs-amber-300);border-color:var(--rs-amber-300)}
.rs-btn--secondary{background:transparent;color:var(--rs-bone-50);border-color:var(--rs-bone-50)}
.rs-btn--secondary:hover{background:var(--rs-bone-50);color:var(--rs-ink)}
.rs-btn--voltage{background:var(--rs-voltage);color:var(--rs-bone-50);border-color:var(--rs-voltage)}
.rs-btn--voltage:hover{background:var(--rs-voltage-700);border-color:var(--rs-voltage-700)}
.rs-btn--teal{background:var(--rs-teal);color:var(--rs-ink);border-color:var(--rs-teal)}
.rs-btn--teal:hover{background:var(--rs-teal-300);border-color:var(--rs-teal-300)}
.rs-btn--ghost{background:transparent;color:var(--rs-amber);border-color:transparent;padding-left:var(--sp-2);padding-right:var(--sp-2)}
.rs-btn--ghost:hover{color:var(--rs-amber-300);box-shadow:inset 0 -2px 0 0 currentColor}
.rs-btn--inverse{background:var(--rs-ink);color:var(--rs-bone-50);border-color:var(--rs-ink)}
.rs-btn--inverse:hover{background:var(--rs-ink-600);border-color:var(--rs-ink-600)}
.rs-btn--sm{padding:9px 16px;font-size:var(--fs-micro)}
.rs-btn--lg{padding:19px 34px;font-size:var(--fs-body)}
.rs-btn--full{width:100%}
.rs-btn[disabled],.rs-btn--disabled{opacity:.35;pointer-events:none}
.rs-btn--block{box-shadow:var(--block-offset-sm)}
.rs-btn--block:hover{transform:var(--lift-hover);box-shadow:6px 6px 0 0 var(--rs-ink)}
.rs-btn--block:active{transform:var(--press);box-shadow:2px 2px 0 0 var(--rs-ink)}

/* ---- Icon button ---- */
.rs-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;color:var(--rs-bone-50);border:var(--border-strong) solid var(--line-hairline);border-radius:var(--radius-none);cursor:pointer;transition:var(--motion-hover)}
.rs-iconbtn:hover{background:var(--rs-bone-50);color:var(--rs-ink);border-color:var(--rs-bone-50)}
.rs-iconbtn:active{transform:var(--press)}
.rs-iconbtn--accent{background:var(--rs-amber);color:var(--rs-ink);border-color:var(--rs-amber)}
.rs-iconbtn--accent:hover{background:var(--rs-amber-300);border-color:var(--rs-amber-300)}
.rs-iconbtn--bare{border-color:transparent}
.rs-iconbtn--sm{width:32px;height:32px}
.rs-iconbtn--lg{width:56px;height:56px}
.rs-iconbtn--round{border-radius:var(--radius-pill)}

/* ---- Tag / Badge ---- */
.rs-tag{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;padding:5px 11px;border-radius:var(--radius-pill);border:1px solid var(--line-hairline);color:var(--text-body);background:transparent}
.rs-tag--amber{background:var(--rs-amber);color:var(--rs-ink);border-color:var(--rs-amber)}
.rs-tag--voltage{background:var(--rs-voltage);color:var(--rs-bone-50);border-color:var(--rs-voltage)}
.rs-tag--teal{background:var(--rs-teal);color:var(--rs-ink);border-color:var(--rs-teal)}
.rs-tag--flare{background:var(--rs-flare);color:var(--rs-ink);border-color:var(--rs-flare)}
.rs-tag--outline{border-color:var(--rs-bone-400);color:var(--rs-bone-200)}
.rs-tag--ink{background:var(--rs-ink);color:var(--rs-bone-50);border-color:var(--rs-ink)}
.rs-badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;padding:4px 9px;border-radius:var(--radius-none);background:var(--rs-bone-50);color:var(--rs-ink)}
.rs-badge--sold{background:var(--rs-stop);color:var(--rs-bone-50)}
.rs-badge--live{background:var(--rs-flare);color:var(--rs-ink)}
.rs-badge--free{background:var(--rs-go);color:var(--rs-ink)}
.rs-badge--members{background:var(--rs-amber);color:var(--rs-ink)}
.rs-badge--session{background:var(--rs-teal);color:var(--rs-ink)}

/* ---- Card ---- */
.rs-card{position:relative;background:var(--surface-1);color:var(--text-body);border-radius:var(--radius-none);border:1px solid var(--line-hairline);padding:var(--sp-5);transition:var(--motion-hover)}
.rs-card--flat{border:none}
.rs-card--light{background:var(--surface-inverse);color:var(--text-inverse);border-color:var(--line-inverse)}
.rs-card--amber{background:var(--rs-amber);color:var(--rs-ink);border-color:var(--rs-amber)}
.rs-card--voltage{background:var(--rs-voltage);color:var(--rs-bone-50);border-color:var(--rs-voltage)}
.rs-card--teal{background:var(--rs-teal);color:var(--rs-ink);border-color:var(--rs-teal)}
.rs-card--block{box-shadow:var(--block-offset);border:var(--border-strong) solid var(--rs-ink)}
.rs-card--interactive{cursor:pointer}
.rs-card--interactive:hover{transform:var(--lift-hover);border-color:var(--rs-amber)}
.rs-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--rs-ink-600)}
.rs-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-slow) var(--ease-out)}
.rs-card--interactive:hover .rs-card__media img{transform:scale(1.04)}

/* ---- Section heading ---- */
.rs-sectionhead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);padding-bottom:var(--sp-4);border-bottom:var(--rule-heavy) solid var(--rs-bone-50);margin-bottom:var(--sp-6)}
.rs-sectionhead--amber{border-bottom-color:var(--rs-amber)}
.rs-sectionhead--hair{border-bottom-width:1px;border-bottom-color:var(--line-hairline)}
.rs-sectionhead__title{font:var(--type-h2);letter-spacing:var(--ls-heading);text-transform:uppercase;margin:0}
.rs-sectionhead__eyebrow{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-accent);display:block;margin-bottom:var(--sp-2)}

/* ---- Waveform rule ---- */
.rs-wave{display:flex;align-items:center;gap:3px;height:24px}
.rs-wave span{display:block;width:4px;border-radius:var(--radius-pill);background:var(--rs-amber)}
.rs-wave--animate span{animation:rs-wave-pulse 1.1s var(--ease-in-out) infinite alternate}
@keyframes rs-wave-pulse{from{transform:scaleY(.55)}to{transform:scaleY(1)}}

/* ---- Forms ---- */
.rs-field{display:flex;flex-direction:column;gap:var(--sp-2)}
.rs-label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}
.rs-input,.rs-select{width:100%;font-family:var(--font-text);font-size:var(--fs-body);color:var(--text-primary);background:var(--surface-2);border:var(--border-strong) solid var(--line-hairline);border-radius:var(--radius-none);padding:13px 15px;transition:var(--motion-hover)}
.rs-input::placeholder{color:var(--rs-bone-400)}
.rs-input:hover,.rs-select:hover{border-color:var(--rs-bone-400)}
.rs-input:focus,.rs-select:focus{border-color:var(--rs-amber);outline:none}
.rs-input--invalid{border-color:var(--rs-stop)}
.rs-field__hint{font-size:var(--fs-caption);color:var(--text-muted)}
.rs-field__error{font-size:var(--fs-caption);color:var(--rs-stop)}
.rs-select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--rs-amber) 50%),linear-gradient(135deg,var(--rs-amber) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:44px}
.rs-check{display:inline-flex;align-items:flex-start;gap:var(--sp-3);cursor:pointer;font-size:var(--fs-body-sm);color:var(--text-body)}
.rs-check__box{flex:none;width:22px;height:22px;border:var(--border-strong) solid var(--rs-bone-400);background:transparent;display:grid;place-items:center;transition:var(--motion-hover)}
.rs-check:hover .rs-check__box{border-color:var(--rs-bone-50)}
.rs-check__box--on{background:var(--rs-amber);border-color:var(--rs-amber);color:var(--rs-ink)}
.rs-check__box--round{border-radius:var(--radius-pill)}
.rs-check__dot{width:9px;height:9px;border-radius:var(--radius-pill);background:var(--rs-ink)}
.rs-switch{display:inline-flex;align-items:center;gap:var(--sp-3);cursor:pointer;font-size:var(--fs-body-sm);color:var(--text-body)}
.rs-switch__track{width:52px;height:28px;border:var(--border-strong) solid var(--rs-bone-400);background:transparent;padding:2px;display:flex;transition:var(--motion-hover)}
.rs-switch__thumb{width:20px;height:20px;background:var(--rs-bone-400);transition:transform var(--dur-fast) var(--ease-snap),background-color var(--dur-fast) var(--ease-out)}
.rs-switch__track--on{border-color:var(--rs-amber)}
.rs-switch__track--on .rs-switch__thumb{transform:translateX(24px);background:var(--rs-amber)}

/* ---- Tabs ---- */
.rs-tabs{display:flex;gap:0;border-bottom:1px solid var(--line-hairline)}
.rs-tab{appearance:none;background:transparent;border:none;border-bottom:var(--border-block) solid transparent;margin-bottom:-1px;padding:var(--sp-3) var(--sp-5);font-family:var(--font-text);font-weight:var(--fw-bold);font-size:var(--fs-body-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;transition:var(--motion-hover)}
.rs-tab:hover{color:var(--text-primary)}
.rs-tab--active{color:var(--rs-amber);border-bottom-color:var(--rs-amber)}

/* ---- Dialog / Toast / Tooltip ---- */
.rs-dialog__scrim{position:fixed;inset:0;background:var(--scrim);display:grid;place-items:center;padding:var(--sp-5);z-index:60}
.rs-dialog{width:min(520px,100%);background:var(--surface-1);border:var(--border-strong) solid var(--rs-bone-50);box-shadow:var(--block-offset-amber);padding:var(--sp-6)}
.rs-dialog__title{font:var(--type-h2);font-size:var(--fs-h3);text-transform:uppercase;margin:0 0 var(--sp-3)}
.rs-toast{display:flex;align-items:center;gap:var(--sp-3);background:var(--rs-bone-50);color:var(--rs-ink);border-left:var(--rule-heavy) solid var(--rs-amber);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-body-sm);font-weight:var(--fw-medium)}
.rs-toast--error{border-left-color:var(--rs-stop)}
.rs-toast--success{border-left-color:var(--rs-go)}
.rs-tooltip{position:relative;display:inline-flex}
.rs-tooltip__bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--rs-bone-50);color:var(--rs-ink);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;padding:6px 10px;white-space:nowrap;pointer-events:none}

/* ---- Poster tile: the gig poster is a first-class content unit ---- */
.rs-poster{display:block;position:relative;overflow:hidden;background:var(--rs-ink-700);border:var(--border-strong) solid var(--rs-ink);transition:var(--motion-hover)}
.rs-poster img{width:100%;height:100%;object-fit:cover;display:block}
.rs-poster--interactive{cursor:pointer}
.rs-poster--interactive:hover{transform:var(--lift-hover);box-shadow:6px 6px 0 0 var(--rs-teal)}

/* ---- Patterns ---- */
.rs-event{display:grid;grid-template-columns:120px 1fr auto;gap:var(--sp-5);align-items:center;padding:var(--sp-5) 0;border-bottom:1px solid var(--line-hairline);transition:var(--motion-hover)}
.rs-event:hover{background:var(--surface-1)}
.rs-event__date{font-family:var(--font-mono);text-transform:uppercase;color:var(--rs-amber);line-height:1.1}
.rs-event__day{display:block;font-family:var(--font-display);font-size:2.5rem;color:var(--text-primary);line-height:1}
.rs-event__title{font:var(--type-h3);font-size:var(--fs-h3);color:var(--text-primary);margin:0 0 6px}
.rs-video{position:relative;display:block;overflow:hidden;background:var(--rs-ink-700);cursor:pointer}
.rs-video__thumb{aspect-ratio:16/9;width:100%;object-fit:cover;display:block;transition:transform var(--dur-slow) var(--ease-out)}
.rs-video:hover .rs-video__thumb{transform:scale(1.03)}
.rs-video__veil{position:absolute;inset:0;background:var(--overlay-bottom)}
.rs-video__body{position:absolute;left:0;right:0;bottom:0;padding:var(--sp-4)}
.rs-tier{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);background:var(--surface-1);border:var(--border-strong) solid var(--line-hairline)}
.rs-tier--featured{background:var(--rs-bone-50);color:var(--rs-ink);border-color:var(--rs-ink)}
.rs-tier__price{font-family:var(--font-display);font-size:3rem;line-height:1;color:inherit}
.rs-tier__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-body-sm)}
.rs-tier__list li{display:flex;gap:var(--sp-2);align-items:flex-start}
