html {
  -webkit-text-size-adjust: 100%;
}

:root {
  --cult-ink: #17130f;
  --cult-muted: #6b6257;
  --cult-paper: #fbf7ed;
  --cult-panel: #fffdf8;
  --cult-line: #ded2bf;
  --cult-gold: #c59b45;
  --cult-gold-dark: #8f651d;
  --cult-red: #9f2f25;
  --cult-green: #2f7a4f;
}

body.cult-app {
  background:
    linear-gradient(180deg, rgba(197, 155, 69, 0.12), rgba(251, 247, 237, 0) 260px),
    var(--cult-paper);
  color: var(--cult-ink);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button,
a,
input {
  touch-action: manipulation;
}

.htmx-request {
  opacity: 0.65;
}

[hx-trigger="revealed"].htmx-request {
  opacity: 1;
}

.cult-app .cult-header {
  background: rgba(255, 253, 248, 0.96) !important;
  border-color: var(--cult-line) !important;
  box-shadow: 0 1px 0 rgba(23, 19, 15, 0.04);
}

.cult-app .cult-brand {
  color: var(--cult-ink);
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: 0.02em;
}

.cult-app .cult-event-title {
  background: linear-gradient(180deg, #d7b45b, var(--cult-gold));
  border: 1px solid rgba(143, 101, 29, 0.45);
  color: var(--cult-ink);
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: 0.02em;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.cult-app .bg-white,
.cult-app .bg-white\/95,
.cult-app .bg-white\/80 {
  background-color: var(--cult-panel) !important;
}

.cult-app .bg-zinc-50 {
  background-color: var(--cult-paper) !important;
}

.cult-app .bg-zinc-950,
.cult-app .bg-zinc-900 {
  background-color: var(--cult-ink) !important;
}

.cult-app .text-zinc-950,
.cult-app .text-zinc-900 {
  color: var(--cult-ink) !important;
}

.cult-app .text-zinc-700,
.cult-app .text-zinc-600 {
  color: var(--cult-muted) !important;
}

.cult-app .border-zinc-200,
.cult-app .border-zinc-300,
.cult-app .border-zinc-400 {
  border-color: var(--cult-line) !important;
}

.cult-app .shadow-sm,
.cult-app .shadow-xl {
  box-shadow: 0 10px 30px rgba(23, 19, 15, 0.07) !important;
}

.cult-app input,
.cult-app textarea,
.cult-app select {
  background-color: #fffdf8;
  border-color: var(--cult-line) !important;
  color: var(--cult-ink);
  outline-color: var(--cult-gold);
}

.cult-app input:focus,
.cult-app textarea:focus,
.cult-app select:focus {
  border-color: var(--cult-gold) !important;
  box-shadow: 0 0 0 3px rgba(197, 155, 69, 0.18);
}

.cult-app button,
.cult-app a.rounded-md,
.cult-app a.rounded-lg {
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

.cult-app button:active,
.cult-app a.rounded-md:active,
.cult-app a.rounded-lg:active {
  transform: translateY(1px);
}

.cult-app .bg-green-50 {
  background-color: #eef7ef !important;
}

.cult-app .bg-green-600,
.cult-app .bg-green-700 {
  background-color: var(--cult-green) !important;
}

.cult-app .bg-amber-50 {
  background-color: #fff5dc !important;
}

.cult-app .bg-amber-500 {
  background-color: var(--cult-gold) !important;
}

.cult-app .text-amber-800 {
  color: var(--cult-gold-dark) !important;
}

.cult-app .bg-red-700 {
  background-color: var(--cult-red) !important;
}

.cult-app .text-red-800 {
  color: var(--cult-red) !important;
}

.cult-app .booking-card {
  border-width: 1px;
  box-shadow: 0 12px 32px rgba(23, 19, 15, 0.08);
}

.cult-app .booking-card h2,
.cult-app h1,
.cult-app h2 {
  letter-spacing: 0;
}

.cult-app #event-stats > div {
  border: 1px solid rgba(222, 210, 191, 0.9);
}
