:root {
  --paper: #EFEBE2;
  --paper-2: #E6E1D4;
  --paper-3: #DBD5C2;
  --card: #F6F2E8;
  --ink: #0E0E0C;
  --ink-soft: #2C2D29;
  --mute: #65665C;
  --dim: #94938A;
  --line: #C8C2AE;
  --line-2: #B5AE96;
  --accent: #E64F1B;
  --accent-deep: #B73A0F;
  --accent-tint: rgba(230,79,27,.10);
  --moss: #2D3A1F;
}
* { -webkit-font-smoothing: antialiased; }
html, body { background: var(--paper); color: var(--ink); }
body { font-family: 'Inter', system-ui, sans-serif; font-feature-settings: 'ss01','cv11'; }
.serif { font-family: 'Newsreader', 'Times New Roman', serif; font-optical-sizing: auto; }
.mono { font-family: 'JetBrains Mono', ui-monospace, monospace; }
.tracked { letter-spacing: 0.16em; text-transform: uppercase; }
.num { font-variant-numeric: lining-nums tabular-nums; }
.display { font-family: 'Inter', sans-serif; font-weight: 700; letter-spacing: -0.04em; }
.card { background: var(--card); border: 1px solid var(--line); }
.panel { background: var(--paper-2); border: 1px solid var(--line); }
.btn-primary { background: var(--ink); color: var(--paper); }
.btn-primary:hover { background: var(--accent); }
.btn-primary:disabled { opacity: 0.6; cursor: not-allowed; }
.btn-primary:disabled:hover { background: var(--ink); }
.btn-ghost { border: 1px solid var(--ink); color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: var(--paper); }
.chip { background: var(--paper-2); border: 1px solid var(--line); color: var(--ink-soft); transition: background-color .12s ease, color .12s ease, border-color .12s ease; }
[data-seat-group] button[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.dot { width: 6px; height: 6px; border-radius: 999px; display: inline-block; }
.accent { color: var(--accent); }
.accent-bg { background: var(--accent); color: var(--paper); }
.hairline { background: var(--line); height: 1px; }
.num-marker {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--ink); width: 28px; height: 28px;
}
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] .plus-1 { display: none; }
details:not([open]) .minus-1 { display: none; }
.grid-bg {
  background-image:
    linear-gradient(rgba(14,14,12,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14,14,12,.05) 1px, transparent 1px);
  background-size: 56px 56px;
}
.marquee { animation: marq 80s linear infinite; }
@keyframes marq { from { transform: translateX(0);} to { transform: translateX(-50%);} }
.underline-accent { background-image: linear-gradient(transparent 72%, var(--accent-tint) 72%); }
.corner-tl, .corner-tr, .corner-bl, .corner-br { position: absolute; width: 10px; height: 10px; border-color: var(--ink); }
.corner-tl { top:-1px; left:-1px; border-top:1px solid; border-left:1px solid; }
.corner-tr { top:-1px; right:-1px; border-top:1px solid; border-right:1px solid; }
.corner-bl { bottom:-1px; left:-1px; border-bottom:1px solid; border-left:1px solid; }
.corner-br { bottom:-1px; right:-1px; border-bottom:1px solid; border-right:1px solid; }
.crossout { text-decoration: line-through; text-decoration-color: var(--accent); text-decoration-thickness: 2px; }
.form-message.is-error { color: var(--accent-deep); }
.form-message.is-success { color: var(--ink); }
