:root {
  --paper: #ffffff;
  --white: #ffffff;
  --ink: #15201d;
  --muted: #68736e;
  --line: #e5e9e6;
  --coral: #e66f54;
  --sage: #e6f0e8;
  --sans: "DM Sans", Arial, sans-serif;
  --serif: var(--sans);
}

html { background: #fff; }
body { background: #fff; color: var(--ink); font-family: var(--sans); }
h1, h2, h3, .brand, .city-list span, .city-tile h2, .art-card strong, .mini-date b { font-family: var(--sans); }
h1, h2, h3 { font-weight: 600; letter-spacing: -.045em; }
.site-header { background: rgba(255,255,255,.96); border-color: var(--line); position: sticky; top: 0; z-index: 10; backdrop-filter: blur(14px); }
.brand { letter-spacing: -.055em; }
.primary-nav a:not(.nav-submit) { color: #50605a; }
.nav-submit { border-color: #cbd4ce; }
.nav-submit:hover { background: var(--ink); color: #fff; }
.landing { padding-top: 82px; padding-bottom: 82px; }
.landing h1, .metro-hero h1, .weekend-intro h1, .cities-page h1, .detail-main h1, .venue-header h1, .submit-intro h1, .confirmation h1, .auth-card h1 { font-weight: 600; }
.landing h1 em, .metro-hero h1 em, .weekend-intro h1 em, .cities-page h1 em, .submit-intro h1 em, .confirmation h1 em, .auth-card h1 em { color: var(--coral); }
.landing-art { border-radius: 28px; background: #edf5ee; }
.art-card { border-radius: 14px; }
.city-picker { border-color: var(--line); }
.city-list a { border-color: var(--line); }
.city-list a:nth-last-child(-n+2) { border-bottom-color: var(--line); }
.metro-hero { padding-top: 70px; }
.weekend-intro h1 { font-size: clamp(45px, 5vw, 70px); }
.metro-switch { background: #fff; border-color: #d4ddd7; box-shadow: 0 4px 12px rgba(21,32,29,.04); }
.feed { padding-bottom: 120px; }
.filter-bar { border: 1px solid var(--line); border-radius: 16px; padding: 10px; background: #fbfcfb; }
.filter-tabs a.is-active, .filter-tabs a:hover { background: var(--ink); }
.filter-form { gap: 7px; }
.search-input, .select-input { border-color: var(--line); border-radius: 10px; overflow: hidden; }
.button { transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-1px); box-shadow: 0 7px 16px rgba(21,32,29,.1); }
.event-list { gap: 10px; }
.event-card, .event-card:last-child { border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 3px 12px rgba(21,32,29,.035); padding: 22px 20px; }
.event-card:hover { background: #fff; border-color: #cbd8ce; box-shadow: 0 10px 25px rgba(21,32,29,.08); transform: translateY(-2px); }
.event-card--featured { background: #fffaf7; border-color: #f1d4cb; }
.event-card-date { border-color: var(--line); }
.event-card h3 { font-size: 22px; }
.card-arrow { width: 30px; height: 30px; border-radius: 50%; background: #fff1ed; display: grid; place-items: center; font-size: 17px; }
.day-heading { border-bottom: 1px solid var(--ink); }
.city-tile { border-radius: 18px; min-height: 240px; }
.detail-layout { gap: 75px; }
.detail-aside { border-top-width: 1px; }
.info-block { border-color: var(--line); }
.venue-header { border-color: var(--line); }
.site-footer { margin-top: 20px; }
.form-section, .event-form { border-color: var(--line); }
.form-fields input, .form-fields textarea, .form-fields select, .auth-card input { border-color: #d9e0db; border-radius: 10px; }
.form-fields input:focus, .form-fields textarea:focus, .form-fields select:focus, .auth-card input:focus { outline: 3px solid #fde1d9; border-color: var(--coral); }
.auth-card { border-color: var(--ink); }

@media (max-width: 800px) {
  .landing { padding-top: 52px; padding-bottom: 60px; }
  .landing-art { border-radius: 22px; }
  .weekend-intro h1 { font-size: 47px; }
  .filter-bar { border-radius: 14px; }
  .event-card, .event-card:last-child { border-radius: 14px; padding: 17px 12px; }
}
