:root {
  color-scheme: dark;
  --concept-focus: #ffffff;
  --concept-max: 1320px;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; }
body, button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { text-wrap: pretty; }
h1, h2 { text-wrap: balance; }

.concept-container { width: min(calc(100% - 48px), var(--concept-max)); margin-inline: auto; }
.concept-skip {
  position: fixed; left: 16px; top: 12px; z-index: 10000; padding: 12px 16px;
  transform: translateY(-150%); border-radius: 10px; background: #fff; color: #08090d;
}
.concept-skip:focus { transform: translateY(0); }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--concept-focus); outline-offset: 3px;
}

.concept-nav { position: relative; z-index: 30; }
.concept-nav__inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.concept-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 700; letter-spacing: -.02em; }
.concept-nav__links { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 36px); }
.concept-nav__links a { color: inherit; text-decoration: none; opacity: .72; font-size: 13px; transition: opacity 160ms ease; }
.concept-nav__links a:hover { opacity: 1; }
.concept-nav__actions { display: flex; align-items: center; gap: 12px; }
.concept-nav__toggle { display: none; width: 44px; height: 44px; border: 1px solid currentColor; border-radius: 50%; background: transparent; }

.concept-btn {
  min-height: 46px; border: 1px solid transparent; border-radius: 10px; padding: 0 20px;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  text-decoration: none; cursor: pointer; font-weight: 700; font-size: 13px;
  transition: transform 140ms cubic-bezier(.23, 1, .32, 1), background-color 160ms ease, border-color 160ms ease;
}
.concept-btn:active { transform: scale(.97); }
.concept-btn[disabled] { cursor: not-allowed; opacity: .48; }
.concept-form-status { min-height: 1.4em; margin: 4px 0 0; font: 500 11px/1.4 system-ui, sans-serif; color: inherit; opacity: .78; }
.concept-form-status[role="alert"] { color: #ff8f8f; opacity: 1; }
.concept-form-disclosure { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid rgba(127,150,165,.28); border-radius: 10px; font: 500 11px/1.45 system-ui, sans-serif; opacity: .86; }
.concept-form-disclosure button { flex: 0 0 auto; min-height: 28px; padding: 0 8px; border: 1px solid currentColor; border-radius: 7px; background: transparent; color: inherit; cursor: pointer; font-size: 10px; }

.concept-toast {
  position: fixed; left: 50%; bottom: max(22px, env(safe-area-inset-bottom)); z-index: 1000;
  max-width: min(420px, calc(100vw - 32px)); padding: 12px 16px; border-radius: 12px;
  background: #f7f7f4; color: #111; box-shadow: 0 18px 50px rgba(0,0,0,.28);
  transform: translate(-50%, 18px); opacity: 0; pointer-events: none;
  transition: transform 180ms cubic-bezier(.23,1,.32,1), opacity 180ms ease;
}
.concept-toast.is-visible { transform: translate(-50%, 0); opacity: 1; }

.concept-state {
  position: fixed; inset: 0; z-index: 900; display: grid; place-items: center; padding: 24px;
  background: color-mix(in srgb, #05070b 88%, transparent); backdrop-filter: blur(16px);
}
.concept-state[hidden] { display: none; }
.concept-state__card { width: min(440px, 100%); padding: 28px; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: #0e1218; color: #f7f8fa; text-align: center; }
.concept-state__card h2 { margin: 14px 0 8px; font-size: 24px; }
.concept-state__card p { margin: 0 0 20px; color: #aeb7c3; line-height: 1.6; }
.concept-spinner { width: 36px; height: 36px; margin: auto; border: 3px solid rgba(255,255,255,.14); border-top-color: currentColor; border-radius: 50%; animation: concept-spin .75s linear infinite; }
.concept-state-partial { position: fixed; right: 16px; top: 92px; z-index: 80; padding: 8px 12px; border-radius: 999px; background: #fff4d5; color: #402d00; font-size: 12px; font-weight: 700; }
#ga-attribution {
  position: static; z-index: 1; display: flex; align-items: center; gap: 7px; width: max-content; max-width: calc(100% - 32px);
  margin: 22px auto max(22px, env(safe-area-inset-bottom));
  padding: 8px 12px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px;
  background: rgba(7,11,16,.8); color: #fff; box-shadow: 0 8px 28px rgba(0,0,0,.3);
  backdrop-filter: blur(10px); font: 600 11px/1.2 system-ui, sans-serif; text-decoration: none; opacity: .72;
  transition: opacity .16s ease, transform .16s ease;
}
#ga-attribution:hover, #ga-attribution:focus-visible { opacity: 1; transform: translateY(-1px); }
.footer-note { display: block; margin: 8px 0; color: inherit; opacity: .62; }
@keyframes concept-spin { to { transform: rotate(360deg); } }

@media (max-width: 760px) {
  .concept-container { width: min(calc(100% - 32px), var(--concept-max)); }
  .concept-nav__inner { min-height: 68px; }
  .concept-nav__toggle { display: inline-grid; place-items: center; }
  .concept-nav__links {
    position: absolute; left: 16px; right: 16px; top: calc(100% + 4px); display: grid; gap: 4px;
    padding: 12px; border-radius: 16px; background: #10141b; border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 20px 54px rgba(0,0,0,.38); transform-origin: top; opacity: 0; transform: scale(.97) translateY(-4px); pointer-events: none;
    transition: opacity 160ms ease, transform 180ms cubic-bezier(.23,1,.32,1);
  }
  .concept-nav__links.is-open { opacity: 1; transform: scale(1) translateY(0); pointer-events: auto; }
  .concept-nav__links a { min-height: 44px; display: flex; align-items: center; padding: 0 10px; }
  .concept-nav__actions > :not(.concept-nav__toggle):not(.concept-primary-nav-action) { display: none; }
  .concept-primary-nav-action { min-height: 42px; padding-inline: 14px; }
  #ga-attribution { margin-inline: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
