/* SPC refinement tokens. Shared by public, member and operator surfaces. */
:root {
  color-scheme: dark;
  --spc-canvas: #0a0a0a;
  --spc-surface: #141414;
  --spc-surface-raised: #1b1b1b;
  --spc-line: #303033;
  --spc-ink: #f4f5f7;
  --spc-muted: #a0a0a6;
  --spc-accent: var(--brand-primary, #f50538);
  --spc-focus: #ff809b;
  --spc-radius: 6px;
  --spc-ease: cubic-bezier(.2,.7,.2,1);
  --spc-fast: 160ms;
  --spc-enter: 260ms;
}
html { scroll-padding-top: 110px; scrollbar-gutter: stable; }
body { line-height: 1.6; }
:where(h1,h2,h3) { text-wrap: balance; }
:where(p,li,figcaption) { overflow-wrap: anywhere; }
:where(button,input,select,textarea,a) { -webkit-tap-highlight-color: transparent; }
:where(button,a,summary,input,select,textarea):focus-visible {
  outline: 2px solid var(--spc-focus) !important;
  outline-offset: 4px;
}
:where(input,select,textarea):focus-visible { outline-offset: 2px; }
:where(button,input,select,textarea):disabled { cursor: not-allowed; opacity: .55; }
:where(button,a.btn):active { translate: 0 1px; }
:where(button,a.btn) { touch-action: manipulation; }
[hidden] { display: none !important; }
.skip-link {
  position: fixed; z-index: 99999; top: 12px; left: 20px;
  padding: 12px 20px; background: var(--spc-ink); color: #0a0a0a;
  border-radius: var(--spc-radius); transform: translateY(-180%); font-weight: 700;
}
.skip-link:focus { transform: translateY(0); }
.spc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
/* Keep the original editorial compositions; unify their rhythm and legibility. */
.page-intro { padding-block: clamp(12px,2vw,32px); margin-bottom: clamp(24px,4vw,48px); }
.page-title { font-size: clamp(2rem,4.4vw,3.8rem); line-height: 1.06; letter-spacing: -.045em; }
.page-lead { max-width: 65ch; line-height: 1.75; color: var(--spc-muted); }
.page-kicker { letter-spacing: .16em; }
:where(.event-card,.member-card,.member-route-card,.feed-post,.marketplace-listing-card,.concierge-card) {
  border-color: var(--spc-line);
  transition: border-color var(--spc-fast) ease, transform var(--spc-fast) var(--spc-ease);
}
:where(.event-card,.member-card,.member-route-card,.marketplace-listing-card):focus-within { border-color: #747477; }
:where(.btn,.event-filter-reset,.spc-filter-toolbar__buttons button,.event-access-photo__button) {
  min-height: 44px;
  transition-property: color, background-color, border-color, opacity, transform;
  transition-duration: var(--spc-fast);
  transition-timing-function: var(--spc-ease);
}
:where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file]),select,textarea) {
  min-height: 44px; border-radius: var(--spc-radius); caret-color: var(--spc-focus);
  scroll-margin-block: 130px 80px;
}
:where(input,textarea)::placeholder { color: #929298; opacity: 1; }
:where(input[type=checkbox],input[type=radio]) { accent-color: var(--spc-accent); width: 18px; height: 18px; flex-shrink: 0; }
:where(input,select,textarea)[aria-invalid=true] { border-color: #ff809b !important; }
.spc-field-error { color: #ffa7ba; font-size: 12px; line-height: 1.6; margin-top: 6px; }
.spc-feedback { padding: 14px 18px; border: 1px solid #414146; border-left: 3px solid #aaa; border-radius: var(--spc-radius); background: #19191b; color: #f4f5f7; font-size: 14px; box-shadow: 0 12px 30px #0004; }
.spc-feedback--error { border-left-color: #ff809b; }
.spc-feedback--success { border-left-color: #8dccac; }
.spc-form-error-summary { margin-bottom: 20px; }
.spc-form-error-summary:focus { outline: 2px solid var(--spc-focus); outline-offset: 4px; }
.spc-form-error-summary strong { display: block; margin-bottom: 4px; }
form[aria-busy=true] button[type=submit] { opacity: .65; cursor: progress; }
.spc-password-field { position: relative; }
.spc-password-field input { padding-right: 70px; }
.spc-password-toggle { position: absolute; right: 6px; top: 2px; min-height: 40px; padding-inline: 12px; font-size: 12px; font-weight: 700; color: #d0d0d3; }
.spc-upload-status { color: var(--spc-muted); font-size: 12px; margin-top: 10px; }
.spc-upload-status.is-error { color: #ffa7ba; }
.account-login-card { padding: clamp(24px,4vw,36px); border-top-color: #49494c; }
.account-login-card form > div + div { margin-top: 20px; }
.account-login-card label { letter-spacing: .12em; }
.account-login-card .login-assurance-row { gap: 12px; flex-wrap: wrap; }
.account-login-card .login-assurance-row a { padding-block: 8px; }
.spc-application-success { padding: clamp(28px,5vw,56px); border: 1px solid #39443d; background: #131815; text-align: center; }
.spc-application-success h2 { font-size: clamp(1.7rem,3vw,2.5rem); margin-block: 10px 16px; }
.spc-application-success p { max-width: 52ch; margin-inline: auto; color: #b3beb8; }
.spc-application-success a { display: inline-flex; margin-top: 24px; }
/* Navigation and overlays remain grounded, quick and keyboard accessible. */
.site-nav__link[aria-current=page] { box-shadow: inset 0 -2px 0 var(--spc-accent); }
.mobile-site-nav__panel { overscroll-behavior: contain; padding-bottom: max(24px,env(safe-area-inset-bottom)); }
.command-palette__dialog { max-height: min(680px,calc(100dvh - 32px)); border-color: #424246; border-radius: 10px; }
.command-palette__results { overscroll-behavior: contain; }
.command-palette__item { min-height: 62px; }
.command-palette__item.is-active { border-color: #685058; background: #251b1f; }
.command-palette mark { color: #ff9cb2; background: transparent; font-weight: inherit; }
.command-palette__search input { font-size: 16px; }
.command-palette__count { color: #a0a0a6; font-size: 12px; padding: 8px 20px 0; }
.gallery-premium-feature,.gallery-premium-tile { position: relative; }
.gallery-open { position: absolute; inset: 0; z-index: 1; cursor: zoom-in; background: transparent; border: 0; }
.gallery-premium-feature__body,.gallery-premium-tile__body { pointer-events: none; }
.gallery-premium-feature__body a,.gallery-premium-tile__body a { pointer-events: auto; position: relative; z-index: 2; }
.gallery-lightbox { padding: clamp(12px,3vw,40px); background: rgb(0 0 0 / .94); overflow: auto; overscroll-behavior: contain; }
.gallery-lightbox__dialog { width: min(1200px,100%); max-height: calc(100dvh - 32px); display: grid; gap: 14px; position: relative; }
.gallery-lightbox__dialog > img { width: 100%; height: auto; max-height: calc(100dvh - 180px); object-fit: contain; min-height: 120px; }
.gallery-lightbox__controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.gallery-lightbox__controls button { min-height: 44px; min-width: 44px; padding: 8px 14px; border: 1px solid #444; border-radius: 4px; background: #181818; color: white; position: static; }
.gallery-lightbox__metadata { display: grid; gap: 4px; padding: 0 4px; }
.gallery-lightbox__metadata span,.gallery-lightbox__position { font-size: 12px; color: #b1b1b6; }
.gallery-lightbox__error { padding: 32px; text-align: center; border: 1px solid #444; }
body.spc-gallery-open { overflow: hidden; }
:where(.spc-filter-empty,.command-palette__empty) { padding: 36px 24px; line-height: 1.7; }
.spc-filter-empty button { display: block; margin: 16px auto 0; padding: 10px 18px; border: 1px solid #555; border-radius: 4px; color: #fff; }
/* Remove competing decorative pointer effects, keeping restrained CSS hover feedback. */
body { cursor: auto; }
a,button,summary,[role=button],.btn,[data-magnetic] { cursor: pointer; }
.spc-lux-pointer,.cursor-dot,.cursor-ring { display: none !important; }
:where(.feed-post,.member-route-card,.garage-car-row,.concierge-case-card) p { line-height: 1.7; }
:where(.garage-car-specs,.event-companion-stats,.member-profile-stats) { font-variant-numeric: tabular-nums; }
:where(.admin-table,.data-table) { font-variant-numeric: tabular-nums; }
.admin-body :where(td,th) { vertical-align: middle; }
.admin-body :where(.btn,.admin-button) { min-height: 40px; }
:where(.footer-contact-item__value,.garage-car-row__copy,.member-profile-stage__copy) { min-width: 0; overflow-wrap: anywhere; }
@media (hover:hover) and (pointer:fine) {
  :where(.event-card,.member-card,.member-route-card,.marketplace-listing-card):hover { border-color: #515155; }
  .gallery-open:hover ~ img { transform: scale(1.015); }
}
@media (max-width: 1023px) {
  .route-events main aside > .sticky { position: static; }
  .route-events main aside form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .route-events main aside form > :first-child { grid-column: 1 / -1; }
  .route-events main aside form > * { margin-top: 0; min-width: 0; }
  .route-events main aside form > button { align-self: end; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 90px; }
  :where(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea) { font-size: 16px !important; }
  .page-title { font-size: clamp(1.9rem,8vw,2.65rem); }
  .page-lead { font-size: 14px; }
  .spc-filter-toolbar { gap: 12px; }
  .spc-filter-toolbar__buttons { overflow-x: auto; max-width: 100%; padding-bottom: 4px; }
  .spc-filter-toolbar__buttons button { white-space: nowrap; flex-shrink: 0; }
  .command-palette__dialog { width: calc(100% - 24px); margin-top: max(12px,env(safe-area-inset-top)); }
  .command-palette__footer { flex-wrap: wrap; gap: 8px 18px; }
  .command-palette__search kbd { display: none; }
  .gallery-lightbox__dialog > img { max-height: calc(100dvh - 210px); }
  .route-membership .grid.grid-cols-2 { gap: 12px; }
  .route-membership .spc-form-section__head { margin-top: 28px; }
  .route-membership .event-access-photo__frame { min-height: 240px; }
  .route-membership .event-access-photo__frame [data-application-photo-meta] { display: none; }
  footer [class*='justify-between'] { flex-wrap: wrap; gap: 12px; }
  :where(.event-browse-summary,.member-profile-actions) { flex-wrap: wrap; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal,.spc-atelier-reveal,.spc-jaw-surface,[data-spc-soft-entering] { opacity: 1 !important; transform: none !important; filter: none !important; }
}
@media (forced-colors:active) {
  .btn,button,input,select,textarea { border: 1px solid ButtonText; }
  :focus-visible { outline-color: Highlight !important; }
}
/* Responsive discovery and editorial rhythm. */
.event-filter-panel { position: sticky; top: 110px; }
.event-filter-panel > summary { display: none; }
.event-filter-panel > .sticky { position: static; }
.membership-start { display: inline-flex; gap: 24px; align-items: center; margin-top: 24px; padding: 12px 20px; border: 1px solid #525256; background: #19191b; font-size: 13px; font-weight: 700; }
#membership-application { scroll-margin-top: 125px; }
.grain-overlay { opacity: .012; }
.spc-filter-toolbar input[type=search] { width: 100%; min-width: 0; flex: 1 1 240px; }
.gallery-premium-feature,.gallery-premium-tile { padding: 0; }
.gallery-premium-feature img,.gallery-premium-tile img { transition: transform 220ms var(--spc-ease); }
.gallery-premium-feature__body { background: linear-gradient(transparent,rgba(0,0,0,.8)); }
@media(min-width:1024px) {
  .route-home .hero-copy h1 { font-size: clamp(3rem,4.6vw,4.75rem); line-height: 1.04; letter-spacing: -.045em; max-width: 22ch; }
}
@media(max-width:1023px) {
  .event-filter-panel { position: static; border: 1px solid #36363a; border-radius: 6px; background: #141414; }
  .event-filter-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; font-size: 14px; font-weight: 700; }
  .event-filter-panel > summary span { color: #a0a0a6; font-size: 11px; font-weight: 500; }
  .event-filter-panel[open] > summary { border-bottom: 1px solid #36363a; }
  .event-filter-panel > div { border: 0; }
  .event-filter-panel > div > p { display: none; }
  .route-events .page-intro { margin-bottom: 24px; }
}
@media(max-width:640px) {
  .spc-filter-toolbar input[type=search] { flex-basis: 100%; }
  .gallery-premium-head { padding-top: 18px; }
  .gallery-premium-head h1 { font-size: 36px; }
  .membership-start { width: 100%; justify-content: space-between; }
  .route-calendar #calendar-list .card-lift { grid-template-columns: 44px minmax(0,1fr) auto; gap: 12px; padding: 18px 14px; }
}
[data-gallery-lightbox] > button.gallery-open { position: absolute !important; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; z-index: 1; background: transparent; }
main, form, fieldset { min-width: 0; }
form select { max-width: 100%; }
[data-dashboard-tabs] { max-width: 100%; overflow-x: auto; overflow-y: hidden; flex-wrap: nowrap; overscroll-behavior-inline: contain; scrollbar-width: thin; }
[data-dashboard-tabs] > button { flex-shrink: 0; min-height: 44px; }
@media(max-width:430px) {
  body[data-member-user-id]:not([data-member-user-id=""]) [data-header-shell] a[data-header-season] { display: none !important; }
  [data-header-shell] { gap: 10px !important; padding-inline: 12px !important; }
  .route-membership .page-title { font-size: 28px; overflow-wrap: anywhere; }
}
.spc-noscript-nav { display:flex; flex-wrap:wrap; gap:16px; padding:100px 20px 0; }
.spc-noscript-nav a { min-height:44px; display:inline-flex; align-items:center; }
/* The old skewed shine extends beyond tall cards, even at zero opacity. */
body .spc-luxe-surface::after { display: none !important; }
.event-access-photo { position: relative; }
.event-access-photo__toolbar.hidden { display: none !important; }
.event-access-photo .member-photo-input { top: 0; left: 0; }
.member-feed-post__head > div > p,
.garage-dossier-panel dt,
.garage-dossier-panel header > span,
.garage-dossier-empty,
.garage-dossier-timeline article > div > span { color: var(--spc-muted); }
.garage-dossier-timeline time { color: #ff809b; }
.garage-dossier-panel dt { font-size: 11px; }
.event-command-rail__primary { background: #dc0432 !important; }
body.admin-body .operator-workbench-map__current > span { color: #ff809b; font-size: 10px; }
