/* =====================================================================
   OneView — Login & Find Event flow
   Shared stylesheet (pure CSS3)
   Faithful re-creation of the Figma design (1440 × 1024 reference)
   with subtle, premium micro-interactions layered on top.
   ===================================================================== */

/* ------------------------------------------------------------------ *
 * 1. Design tokens
 * ------------------------------------------------------------------ */
:root {
  /* Brand greens */
  --green-1: #41ad49;            /* gradient start / primary */
  --green-2: #388e3c;            /* gradient end */
  --green-icon: #00a63e;         /* feature icons */
  --green-soft: #e8f5e9;         /* icon chip background */
  --gradient: linear-gradient(90deg, var(--green-1) 0%, var(--green-2) 100%);

  /* Neutrals */
  --ink: #0a0a0b;               /* near-black text / dark chips */
  --slate: #0f172b;             /* card body text */
  --muted: #636873;             /* subtitles */
  --muted-2: #8f949e;           /* placeholders / footer */
  --muted-3: #787880;           /* "Found results" */
  --border: #e8e9ec;            /* input borders */
  --border-2: #f2f3f5;          /* card border */
  --panel: #f7f9fc;             /* right panel bg */
  --white: #ffffff;

  /* Feedback */
  --error: #fb2c36;

  /* Shadows */
  --shadow-pill: 0 8px 20px 0 rgba(0, 0, 0, 0.2);
  --shadow-float: 0 8px 16px -4px rgba(0, 0, 0, 0.25), 0 0 12px 0 rgba(255, 255, 255, 0.15);
  --shadow-focus: 0 0 0 3px rgba(10, 10, 11, 0.08);
  --shadow-focus-green: 0 0 0 3px rgba(65, 173, 73, 0.16);
  --shadow-focus-error: 0 0 0 3px rgba(251, 44, 54, 0.12);
  --shadow-card: 0 18px 40px -24px rgba(15, 23, 43, 0.25);

  /* Motion */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);   /* fast, elegant */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur: 0.18s;
  --dur-slow: 0.42s;
}

/* ------------------------------------------------------------------ *
 * 2. Reset / base
 * ------------------------------------------------------------------ */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;   /* belt-and-braces: no horizontal scroll on mobile */
}

body {
  font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--white);
  min-height: 100vh;
  line-height: normal;
  overflow-x: hidden;   /* clip the panel while it eases in from the right */
}

img,
svg {
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  cursor: pointer;
}

ul {
  list-style: none;
}

/* Shared SVG icon sizing helper.
   Paint is defined per-<symbol> with currentColor, so colour is driven
   purely by the `color` property of the icon's container. */
.icon {
  display: inline-block;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}

/* Accessible-but-clean focus rings (keyboard only) */
:focus-visible {
  outline: 2px solid var(--green-1);
  outline-offset: 3px;
  border-radius: 6px;
}

/* ------------------------------------------------------------------ *
 * 3. Hero (shared between landing + split screens)
 * ------------------------------------------------------------------ */
.hero {
  position: relative;
  overflow: hidden;
  background: #16321f;
}

/* looping video background (poster = hero still as fallback) */
.hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center 30%;
     object-position: center 30%;
  z-index: 0;
}

/* dark wash over the footage */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

/* emerald ambient glow, top-left (faithful CSS re-creation of the Figma asset) */
.hero::after {
  content: "";
  position: absolute;
  top: -470px;
  left: -440px;
  width: 1120px;
  height: 1120px;
  background: radial-gradient(
    circle at center,
    rgba(76, 196, 84, 0.85) 0%,
    rgba(65, 173, 73, 0.6) 26%,
    rgba(56, 142, 60, 0.34) 46%,
    rgba(40, 110, 52, 0.14) 64%,
    rgba(20, 60, 30, 0) 78%
  );
  pointer-events: none;
  z-index: 1;
}

/* all hero content sits above the media + overlays */
.landing__bar,
.landing__center,
.landing__features,
.split__hero .hero-title,
.split__features {
  z-index: 2;
}

/* ------------------------------------------------------------------ *
 * 4. Shared atoms
 * ------------------------------------------------------------------ */

/* Brand logo (white wordmark, transparent background) */
.logo {
  width: 164px;
  height: 30px;
  -o-object-fit: contain;
     object-fit: contain;
}

/* "Need help?" pill */
.help-pill {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  height: 38px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
  -webkit-box-shadow: var(--shadow-pill);
          box-shadow: var(--shadow-pill);
  font-weight: 600;
  font-size: 12px;
  white-space: nowrap;
  -webkit-transition: background-color var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: background-color var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
    background-color var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
    background-color var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
}
.help-pill .icon {
  width: 16px;
  height: 16px;
}
.help-pill:hover {
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
  background: #1c1c1f;
  -webkit-box-shadow: 0 10px 24px 0 rgba(0, 0, 0, 0.28);
          box-shadow: 0 10px 24px 0 rgba(0, 0, 0, 0.28);
}
.help-pill:active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* Hero headline */
.hero-title {
  font-weight: 600;
  font-size: 48px;
  line-height: 64px;
  letter-spacing: -1.44px;
  text-transform: uppercase;
  color: var(--white);
  text-align: center;
}

/* Primary gradient button (base) */
.btn {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  height: 50px;
  padding: 0 24px;
  border-radius: 14px;
  background: var(--gradient);
  background-size: 140% 100%;
  background-position: 0% 0;
  color: var(--white);
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  cursor: pointer;
  -webkit-transition: background-position var(--dur-slow) var(--ease), -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: background-position var(--dur-slow) var(--ease), -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
    background-position var(--dur-slow) var(--ease);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
    background-position var(--dur-slow) var(--ease), -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  -webkit-box-shadow: 0 6px 18px -8px rgba(56, 142, 60, 0.7);
          box-shadow: 0 6px 18px -8px rgba(56, 142, 60, 0.7);
}
.btn .icon {
  width: 16px;
  height: 16px;
  color: var(--white);
  -webkit-transition: -webkit-transform var(--dur) var(--ease);
  transition: -webkit-transform var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease);
}
.btn:hover {
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
  background-position: 100% 0;
  -webkit-box-shadow: 0 12px 26px -8px rgba(56, 142, 60, 0.85);
          box-shadow: 0 12px 26px -8px rgba(56, 142, 60, 0.85);
}
.btn:hover .icon--arrow {
  -webkit-transform: translateX(3px);
          transform: translateX(3px);
}
.btn:active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-box-shadow: 0 5px 14px -8px rgba(56, 142, 60, 0.7);
          box-shadow: 0 5px 14px -8px rgba(56, 142, 60, 0.7);
}
.btn--block {
  width: 100%;
}

/* loading / done feedback states (set by JS) */
.btn.is-loading {
  pointer-events: none;
  opacity: 0.85;
}
.btn.is-loading .icon--arrow {
  -webkit-animation: spin 0.7s linear infinite;
          animation: spin 0.7s linear infinite;
}
.btn.is-done {
  background: var(--green-2);
  pointer-events: none;
}
@-webkit-keyframes spin {
  to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}
@keyframes spin {
  to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}

/* shimmer sweep on press/hover for premium feel */
.btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: -60%;
  width: 40%;
  height: 100%;
  background: linear-gradient(
    100deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.28) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  -webkit-transform: skewX(-18deg);
          transform: skewX(-18deg);
  opacity: 0;
}
.btn:hover::after {
  -webkit-animation: shimmer 0.7s var(--ease) forwards;
          animation: shimmer 0.7s var(--ease) forwards;
}
@-webkit-keyframes shimmer {
  from { left: -60%; opacity: 1; }
  to   { left: 130%; opacity: 0; }
}
@keyframes shimmer {
  from { left: -60%; opacity: 1; }
  to   { left: 130%; opacity: 0; }
}

/* "back" link */
.back-link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  font-size: 20px;
  color: var(--ink);
  -webkit-transition: gap var(--dur) var(--ease), opacity var(--dur) var(--ease);
  transition: gap var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.back-link .icon {
  width: 18px;
  height: 16px;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transition: -webkit-transform var(--dur) var(--ease);
  transition: -webkit-transform var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease);
}
.back-link:hover {
  opacity: 0.78;
}
.back-link:hover .icon {
  -webkit-transform: rotate(180deg) translateX(3px);
          transform: rotate(180deg) translateX(3px);
}

/* terms footer */
.terms {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 6px;
  font-size: 12px;
  color: var(--muted-2);
  white-space: nowrap;
}
.terms a {
  font-weight: 500;
  color: var(--green-1);
  -webkit-transition: opacity var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease);
}
.terms a:hover {
  opacity: 0.75;
  text-decoration: underline;
}

/* ------------------------------------------------------------------ *
 * 5. Feature cards
 * ------------------------------------------------------------------ */
.feature {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 16px;
  width: 312px;
  height: 100px;
  padding-right: 24px;
  background: var(--white);
  border-radius: 16px;
  -webkit-box-shadow: var(--shadow-card);
          box-shadow: var(--shadow-card);
  -webkit-transition: -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
}
.feature:hover {
  -webkit-transform: translateY(-3px);
          transform: translateY(-3px);
  -webkit-box-shadow: 0 22px 44px -22px rgba(15, 23, 43, 0.4);
          box-shadow: 0 22px 44px -22px rgba(15, 23, 43, 0.4);
}
.feature__chip {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 68px;
  height: 100px;
  padding: 0 12px;
  background: var(--green-soft);
  border-radius: 14px 0 0 14px;
}
.feature__chip .icon {
  width: 20px;
  height: 20px;
  color: var(--green-icon);
  -webkit-transition: -webkit-transform var(--dur) var(--ease);
  transition: -webkit-transform var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease);
}
.feature:hover .feature__chip .icon {
  -webkit-transform: scale(1.08);
          transform: scale(1.08);
}
.feature__text {
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
  color: var(--slate);
}

/* ------------------------------------------------------------------ *
 * 6. Form controls (shared)
 * ------------------------------------------------------------------ */
.field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8px;
}
.field__label {
  font-weight: 500;
  font-size: 12px;
  color: var(--ink);
}

/* input shell holds icon + native input */
.input {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  height: 50px;
  padding: 0 14px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  -webkit-transition: border-color var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: border-color var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
}
.input .icon {
  width: 18px;
  height: 18px;
  color: var(--muted-2);
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  -webkit-transition: color var(--dur) var(--ease);
  transition: color var(--dur) var(--ease);
}
.input input {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  border: none;
  background: none;
  outline: none;
  font-family: inherit;
  font-size: 14px;
  color: var(--ink);
}
.input input::-webkit-input-placeholder {
  color: var(--muted-2);
  opacity: 1;
}
.input input::-moz-placeholder {
  color: var(--muted-2);
  opacity: 1;
}
.input input:-ms-input-placeholder {
  color: var(--muted-2);
  opacity: 1;
}
.input input::-ms-input-placeholder {
  color: var(--muted-2);
  opacity: 1;
}
.input input::placeholder {
  color: var(--muted-2);
  opacity: 1;
}
.input input[type="password"] {
  font-family: "Inter", "Roboto", sans-serif;
  letter-spacing: 2px;
}
.input__toggle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  color: var(--muted-2);
  -webkit-transition: color var(--dur) var(--ease);
  transition: color var(--dur) var(--ease);
}
.input__toggle .icon {
  width: 18px;
  height: 18px;
}
.input__toggle:hover {
  color: var(--ink);
}

/* focused state — matches the Figma dark ring */
.input:focus-within {
  border: 1.5px solid var(--ink);
  -webkit-box-shadow: var(--shadow-focus);
          box-shadow: var(--shadow-focus);
}
.input:focus-within .icon {
  color: var(--ink);
}

/* error state */
.input.is-error {
  border: 1.5px solid var(--error);
  -webkit-box-shadow: var(--shadow-focus-error);
          box-shadow: var(--shadow-focus-error);
}
.input.is-error .icon {
  color: var(--error);
}

/* checkbox */
.checkbox {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  cursor: pointer;
  font-weight: 400;
  font-size: 13px;
  color: var(--ink);
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.checkbox input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.checkbox__box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 18px;
  height: 18px;
  border-radius: 5px;
  border: 1.5px solid #c9ccd3;
  background: var(--white);
  -webkit-transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease),
    -webkit-transform var(--dur) var(--ease);
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease),
    -webkit-transform var(--dur) var(--ease);
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease),
    transform var(--dur) var(--ease);
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease),
    transform var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease);
}
.checkbox__box .icon {
  width: 10px;
  height: 10px;
  color: var(--white);
  opacity: 0;
  -webkit-transform: scale(0.6);
          transform: scale(0.6);
  -webkit-transition: opacity var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease);
}
.checkbox input:checked + .checkbox__box {
  background: var(--ink);
  border-color: var(--ink);
}
.checkbox input:checked + .checkbox__box .icon {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.checkbox:hover .checkbox__box {
  border-color: var(--ink);
}
.checkbox input:focus-visible + .checkbox__box {
  -webkit-box-shadow: var(--shadow-focus);
          box-shadow: var(--shadow-focus);
}

/* inline link button */
.link-strong {
  font-weight: 600;
  font-size: 12px;
  color: var(--ink);
  -webkit-transition: opacity var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease);
}
.link-strong:hover {
  opacity: 0.65;
}

/* ------------------------------------------------------------------ *
 * 7. Page transitions / entrance animations
 * ------------------------------------------------------------------ */
@-webkit-keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@-webkit-keyframes rise-in {
  from { opacity: 0; -webkit-transform: translateY(14px); transform: translateY(14px); }
  to   { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); }
}
@keyframes rise-in {
  from { opacity: 0; -webkit-transform: translateY(14px); transform: translateY(14px); }
  to   { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); }
}
@-webkit-keyframes slide-in-right {
  from { opacity: 0; -webkit-transform: translateX(26px); transform: translateX(26px); }
  to   { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); }
}
@keyframes slide-in-right {
  from { opacity: 0; -webkit-transform: translateX(26px); transform: translateX(26px); }
  to   { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); }
}

/* whole page fades in on load; fades out when navigating away */
.page {
  -webkit-animation: fade-in var(--dur-slow) var(--ease) both;
          animation: fade-in var(--dur-slow) var(--ease) both;
}
.page.is-leaving {
  animation: fade-in var(--dur) var(--ease) reverse forwards;
}

/* staggered entrance for grouped content */
[data-rise] {
  -webkit-animation: rise-in 0.5s var(--ease-out) both;
          animation: rise-in 0.5s var(--ease-out) both;
}
[data-slide] {
  -webkit-animation: slide-in-right 0.5s var(--ease-out) both;
          animation: slide-in-right 0.5s var(--ease-out) both;
}
[data-delay="1"] { -webkit-animation-delay: 0.06s; animation-delay: 0.06s; }
[data-delay="2"] { -webkit-animation-delay: 0.12s; animation-delay: 0.12s; }
[data-delay="3"] { -webkit-animation-delay: 0.18s; animation-delay: 0.18s; }
[data-delay="4"] { -webkit-animation-delay: 0.24s; animation-delay: 0.24s; }
[data-delay="5"] { -webkit-animation-delay: 0.30s; animation-delay: 0.30s; }
[data-delay="6"] { -webkit-animation-delay: 0.36s; animation-delay: 0.36s; }

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    -webkit-animation-duration: 0.001ms !important;
            animation-duration: 0.001ms !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.001ms !important;
            transition-duration: 0.001ms !important;
  }
}

/* ==================================================================== *
 * 8. LANDING screen
 * ==================================================================== */
.landing {
  position: relative;
  width: 100%;
  min-height: 100vh;
}

/* top bar: logo (left) + help (right) */
.landing__bar {
  position: absolute;
  top: 44px;
  left: 60px;
  right: 43px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  z-index: 2;
}
.landing__bar .logo {
  margin-top: 7px; /* logo baseline sits at y51 vs bar y44 */
}

/* centred headline + CTAs */
.landing__center {
  position: absolute;
  top: 37.5%;            /* 384 / 1024 */
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: min(549px, 90vw);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 16px;
  z-index: 2;
}
.landing__cta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 20px;
}

/* pill-shaped sign-in (landing variant: 226 wide, r45) */
.btn--pill {
  width: 226px;
  border-radius: 45px;
}

/* white "Find an event" button */
.btn-find {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 6px;
  width: 232px;
  height: 50px;
  padding: 0 14px 0 16px;
  border-radius: 100px;
  background: var(--white);
  -webkit-box-shadow: var(--shadow-float);
          box-shadow: var(--shadow-float);
  color: var(--green-1);
  font-family: "Inter", "Roboto", sans-serif;
  font-weight: 600;
  font-size: 12px;
  white-space: nowrap;
  -webkit-transition: -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
}
.btn-find .icon {
  width: 16px;
  height: 16px;
  color: var(--green-1);
  -webkit-transition: -webkit-transform var(--dur) var(--ease);
  transition: -webkit-transform var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease);
  transition: transform var(--dur) var(--ease), -webkit-transform var(--dur) var(--ease);
}
.btn-find:hover {
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
  -webkit-box-shadow: 0 12px 22px -4px rgba(0, 0, 0, 0.3), 0 0 14px 0 rgba(255, 255, 255, 0.22);
          box-shadow: 0 12px 22px -4px rgba(0, 0, 0, 0.3), 0 0 14px 0 rgba(255, 255, 255, 0.22);
}
.btn-find:hover .icon {
  -webkit-transform: scale(1.08);
          transform: scale(1.08);
}
.btn-find:active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* feature cards row */
.landing__features {
  position: absolute;
  top: 57.1%;            /* 585 / 1024 */
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 20px;
  width: min(976px, calc(100% - 48px));
  z-index: 2;
}

/* ==================================================================== *
 * 9. SPLIT layout (login / reset / find-event)
 * ==================================================================== */
.split {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  min-height: 100vh;
  background: var(--panel);   /* matches the panel so its slot never flashes white during the slide-in */
}

/* left hero column — title + cards form one left-aligned vertical
   group anchored toward the bottom (matches the Figma comp and, being
   in normal flow, can never overlap regardless of viewport height). */
.split__hero {
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 64px;
  padding: 64px 40px 75px 60px;   /* left 60 / bottom 75 per Figma */
}
/* ONE VIEW logo, pinned top-left of the hero */
.split__logo {
  position: absolute;
  top: 51px;
  left: 60px;
  z-index: 2;
}
.split__hero .hero-title {
  position: static;
  width: 549px;
  max-width: calc(100% - 20px);
  text-align: left;               /* left-aligned so it lines up with the cards */
}
.split__features {
  position: static;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 30px;
  z-index: 2;
}
.split__features .feature {
  width: 312px;
}

/* right panel column */
.split__panel {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 608px;
          flex: 0 0 608px;
  width: 608px;
  background: var(--panel);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

/* the right panel eases in from the right when the page opens */
@-webkit-keyframes panel-slide-in {
  from { -webkit-transform: translateX(100%); transform: translateX(100%); }
  to   { -webkit-transform: translateX(0); transform: translateX(0); }
}
@keyframes panel-slide-in {
  from { -webkit-transform: translateX(100%); transform: translateX(100%); }
  to   { -webkit-transform: translateX(0); transform: translateX(0); }
}
.split__panel,
.find__panel {
  -webkit-animation: panel-slide-in 0.62s var(--ease-out) both;
          animation: panel-slide-in 0.62s var(--ease-out) both;
  will-change: transform;
}

/* panel top bar: back + help (524 wide block, ~41px side padding) */
.panel__bar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 524px;
  max-width: calc(100% - 80px);
  margin-top: 44px;
}

/* the centred form column (416 wide) */
.panel__form {
  width: 416px;
  max-width: calc(100% - 80px);
  margin: auto 0;            /* vertically centred between bar and footer */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 24px;
}

/* heading block */
.form-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8px;
}
.form-head h1 {
  font-weight: 600;
  font-size: 28px;
  line-height: 34px;
  letter-spacing: -0.42px;
  color: var(--ink);
}
.form-head p {
  font-weight: 400;
  font-size: 14px;
  line-height: 22px;
  color: var(--muted);
}

/* the email + password stack */
.form-fields {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 14px;
}

/* password label row (label + filler line, like Figma) */
.field__labelrow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 16px;
}

/* right-aligned forgot link */
.form-forgot {
  text-align: right;
}

/* panel footer (terms) */
.panel__foot {
  margin-bottom: 44px;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/* error message row (login error state) — revealed when the form
   carries .is-error (set by JS on invalid submit). */
.form-error {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 10px;
  opacity: 0;
  max-height: 0;
  margin-top: -24px;          /* collapse the column gap while hidden */
  overflow: hidden;
  -webkit-transition: opacity var(--dur) var(--ease), max-height var(--dur) var(--ease),
    margin-top var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease), max-height var(--dur) var(--ease),
    margin-top var(--dur) var(--ease);
}
.panel__form.is-error .form-error {
  opacity: 1;
  max-height: 80px;
  margin-top: 0;
  -webkit-animation: shake 0.4s var(--ease);
          animation: shake 0.4s var(--ease);
}
/* alternate checkbox copy used by the Figma error frame */
.panel__form.is-error .checkbox__text--error {
  display: inline;
}
.form-error .icon {
  width: 16px;
  height: 16px;
  color: var(--error);
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
.form-error__msg {
  font-size: 12px;
  color: var(--error);
  white-space: normal;
  word-break: break-word;
}
.form-error__forgot {
  margin-left: auto;
  font-weight: 600;
  font-size: 12px;
  color: var(--ink);
  white-space: nowrap;
  -webkit-transition: opacity var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease);
}
.form-error__forgot:hover {
  opacity: 0.65;
}
@-webkit-keyframes shake {
  0%, 100% { -webkit-transform: translateX(0); transform: translateX(0); }
  20%      { -webkit-transform: translateX(-5px); transform: translateX(-5px); }
  40%      { -webkit-transform: translateX(4px); transform: translateX(4px); }
  60%      { -webkit-transform: translateX(-3px); transform: translateX(-3px); }
  80%      { -webkit-transform: translateX(2px); transform: translateX(2px); }
}
@keyframes shake {
  0%, 100% { -webkit-transform: translateX(0); transform: translateX(0); }
  20%      { -webkit-transform: translateX(-5px); transform: translateX(-5px); }
  40%      { -webkit-transform: translateX(4px); transform: translateX(4px); }
  60%      { -webkit-transform: translateX(-3px); transform: translateX(-3px); }
  80%      { -webkit-transform: translateX(2px); transform: translateX(2px); }
}

/* success / notice message row */
.form-notice {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--green-soft);
  font-size: 12px;
  color: var(--green-2);
  margin-top: 24px;
}
.form-notice .icon {
  width: 16px;
  height: 16px;
  color: var(--green-icon);
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
.form-notice__msg {
  font-size: 12px;
  color: var(--green-2);
}

/* reset-password: centred button text + back link */
.panel__form--reset {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.reset-back {
  text-align: center;
}
.reset-back a {
  font-weight: 600;
  font-size: 13px;
  color: var(--green-1);
  text-decoration: underline;
  -webkit-transition: opacity var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease);
}
.reset-back a:hover {
  opacity: 0.7;
}

/* inline field validation messages injected by the password-strength JS */
.field .alert.alert-danger.alert-outline {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 8px;
  margin-top: 6px;
}
.field .alert.alert-danger.alert-outline .icon {
  width: 16px;
  height: 16px;
  color: var(--error);
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
.field .alert.alert-danger.alert-outline .alert-message {
  font-size: 12px;
  font-weight: 500;
  color: var(--error);
  text-align: left;
}

/* password strength meter, shown under the new password field */
.panel__form--reset .account-setup__password-strength {
  margin-top: 8px;
}
.panel__form--reset .account-setup__password-strength-bars {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 4px;
  height: 6px;
}
.panel__form--reset .account-setup__password-strength-bar {
  background: var(--border);
  border-radius: 3px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-transition: background-color var(--dur) var(--ease);
  transition: background-color var(--dur) var(--ease);
}
.panel__form--reset .account-setup__password-strength-bars--score-0 .account-setup__password-strength-bar:nth-child(-n + 1) {
  background: var(--error);
}
.panel__form--reset .account-setup__password-strength-bars--score-1 .account-setup__password-strength-bar:nth-child(-n + 2) {
  background: #e67e22;
}
.panel__form--reset .account-setup__password-strength-bars--score-2 .account-setup__password-strength-bar:nth-child(-n + 3) {
  background: #f0ad4e;
}
.panel__form--reset .account-setup__password-strength-bars--score-3 .account-setup__password-strength-bar:nth-child(-n + 4) {
  background: var(--green-1);
}
.panel__form--reset .account-setup__password-strength-bars--score-4 .account-setup__password-strength-bar:nth-child(-n + 4) {
  background: var(--green-2);
}
.panel__form--reset .account-setup__password-strength-meta {
  color: var(--muted);
  font-size: 12px;
  margin-top: 6px;
}
.panel__form--reset .account-setup__password-strength-label {
  font-weight: 600;
}
.panel__form--reset .account-setup__password-strength--score-0 .account-setup__password-strength-label,
.panel__form--reset .account-setup__password-strength--score-1 .account-setup__password-strength-label {
  color: var(--error);
}
.panel__form--reset .account-setup__password-strength--score-2 .account-setup__password-strength-label {
  color: #d68910;
}
.panel__form--reset .account-setup__password-strength--score-3 .account-setup__password-strength-label,
.panel__form--reset .account-setup__password-strength--score-4 .account-setup__password-strength-label {
  color: var(--green-1);
}

/* ==================================================================== *
 * 10. MFA / OTP screen
 * ==================================================================== */
.otp-digits {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 12px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.otp-digit {
  width: 52px;
  height: 60px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  text-align: center;
  font-size: 22px;
  font-weight: 600;
  color: var(--ink);
  background: var(--white);
  outline: none;
  caret-color: transparent;
  -webkit-transition: border-color var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: border-color var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), -webkit-box-shadow var(--dur) var(--ease);
}
.otp-digit:focus {
  border-color: var(--ink);
  -webkit-box-shadow: 0 0 0 3px rgba(0,0,0,0.08);
          box-shadow: 0 0 0 3px rgba(0,0,0,0.08);
}
.otp-digit.is-filled {
  border-color: var(--green-1);
}
.panel__form.is-error .otp-digit {
  border-color: var(--error);
}

/* expiry timer + resend control row, shown for email/sms methods */
.otp-meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.otp-expiry {
  font-size: 13px;
  color: var(--muted);
}
.otp-expiry span {
  color: var(--ink);
  font-weight: 600;
}
.otp-resend {
  background: transparent;
  border: none;
  padding: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted-2);
  cursor: not-allowed;
}
.otp-resend.is-active {
  color: var(--green-1);
  cursor: pointer;
}
.otp-resend:disabled {
  color: var(--muted-2);
  cursor: not-allowed;
}

/* switch to primary/backup MFA method */
.otp-switch-method {
  text-align: center;
}
.otp-switch-method a {
  font-weight: 600;
  font-size: 13px;
  color: var(--green-1);
  text-decoration: underline;
  -webkit-transition: opacity var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease);
}
.otp-switch-method a:hover {
  opacity: 0.7;
}

/* ==================================================================== *
 * 11. FIND EVENT screen (right panel variant)
 * ==================================================================== */
.find__panel {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 608px;
          flex: 0 0 608px;
  width: 608px;
  background: var(--panel);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* top search card */
.find-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  width: 100%;
  padding: 26px 20px 20px 44px;
  background: var(--white);
  border: 1px solid var(--border-2);
  border-radius: 0 0 16px 16px;
}
.find-card__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  width: 554px;
  max-width: 100%;
}
.find-card__top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.find-card__top .back-link {
  gap: 10px;
}
.find-card__sub {
  font-weight: 400;
  font-size: 14px;
  color: var(--slate);
  text-transform: capitalize;
}

/* search row: input grows + button */
.find-search {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 14px;
  width: 526px;
  max-width: 100%;
}
.find-search .input {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}
.find-search .input .icon {
  width: 16px;
  height: 16px;
  color: var(--muted-2);
}
.find-search .input input {
  font-size: 14px;
}
.find-search .input input::-webkit-input-placeholder {
  color: rgba(10, 10, 10, 0.5);
}
.find-search .input input::-moz-placeholder {
  color: rgba(10, 10, 10, 0.5);
}
.find-search .input input:-ms-input-placeholder {
  color: rgba(10, 10, 10, 0.5);
}
.find-search .input input::-ms-input-placeholder {
  color: rgba(10, 10, 10, 0.5);
}
.find-search .input input::placeholder {
  color: rgba(10, 10, 10, 0.5);
}

/* green "Search" button (r10, 113 wide) */
.btn--search {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 113px;
  border-radius: 10px;
}

/* results region */
.find-results {
  padding: 16px 44px 44px;
}
.find-results__count {
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  color: var(--muted-3);
  margin-bottom: 13px;
}
.find-results__list {
  list-style: disc;
  padding-left: 21px;
  color: var(--green-1);
}
.find-results__list li {
  line-height: 31px;
}
.find-results__list a {
  font-size: 14px;
  color: var(--green-1);
  text-decoration: underline;
  -webkit-transition: opacity var(--dur) var(--ease), letter-spacing var(--dur) var(--ease);
  transition: opacity var(--dur) var(--ease), letter-spacing var(--dur) var(--ease);
}
.find-results__list a:hover {
  opacity: 0.78;
  letter-spacing: 0.2px;
}
.find-results.pulse {
  -webkit-animation: rise-in 0.45s var(--ease-out);
          animation: rise-in 0.45s var(--ease-out);
}

/* ==================================================================== *
 * 11. Responsive
 *     Figma defines a single 1440 × 1024 desktop frame. The desktop
 *     comp is reproduced exactly at large widths; below that, every
 *     page reflows fluidly so nothing is clipped, overlapped or cut.
 * ==================================================================== */

/* ---- Split pages: stack into hero-banner + full-width panel ----
   Kicks in before the fixed 608px panel can squeeze the hero. */
@media (max-width: 1200px) {
  .split,
  .find-shell {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  /* hero becomes a self-sizing banner, laid out in normal flow */
  .split__hero {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    min-height: 0;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 36px;
    padding: 76px 24px 56px;
    text-align: center;
  }
  .split__hero .hero-title {
    width: 100%;
    max-width: 560px;
    text-align: center;
    font-size: clamp(32px, 5.4vw, 48px);
    line-height: 1.16;
  }
  /* feature cards flow below the title as a centred, wrapping grid */
  .split__features {
    position: static;
    left: auto;
    bottom: auto;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 16px;
    width: 100%;
    max-width: 760px;
  }
  .split__features .feature {
    width: 340px;
    max-width: 100%;
  }

  /* panel + find panel take the full width below the hero */
  .split__panel,
  .find__panel {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
  }
  .panel__bar,
  .panel__form {
    width: 100%;
    max-width: min(440px, calc(100% - 48px));
  }
  .panel__form {
    margin: 40px auto;
  }
  .panel__foot {
    margin-top: 8px;
  }

  /* find-event search card spans full width */
  .find-card {
    border-radius: 0;
    padding: 24px;
  }
  .find-card__head,
  .find-search { width: 100%; }
  .find-results { padding: 16px 24px 40px; }
}

/* ---- Landing: keep the absolute hero comp but let the cards wrap ---- */
@media (max-width: 1040px) {
  .landing__features {
    top: 52%;
    width: min(680px, calc(100% - 48px));
  }
}

/* ---- Landing reflows to a single scrolling column ---- */
@media (max-width: 860px) {
  .landing {
    height: auto;
    min-height: 100vh;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 44px;
    padding: 132px 24px 72px;
  }
  .landing__bar {
    left: 24px;
    right: 24px;
  }
  .landing__center {
    position: static;
    top: auto;
    left: auto;
    -webkit-transform: none;
            transform: none;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    gap: 22px;
  }
  .landing .hero-title {
    font-size: clamp(30px, 7vw, 46px);
    line-height: 1.18;
    letter-spacing: -0.6px;
  }
  .landing__features {
    position: static;
    top: auto;
    bottom: auto;
    left: auto;
    -webkit-transform: none;
            transform: none;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
  }
  .landing__features .feature {
    width: 320px;
    max-width: 100%;
  }
}

/* ---- Phones ---- */
@media (max-width: 600px) {
  .landing__cta {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 100%;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .landing__cta .btn--pill,
  .landing__cta .btn-find {
    width: min(280px, 100%);
  }
  .landing__features .feature,
  .split__features .feature {
    width: 100%;
  }
  .split__hero { padding: 60px 20px 44px; }
  .find-search {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .find-search .input { -webkit-box-flex: 1; -ms-flex: 1 1 100%; flex: 1 1 100%; }
  .btn--search { width: 100%; }
}

@media (max-width: 460px) {
  .panel__bar .help-pill span,
  .find-card__top .help-pill span {
    display: none;          /* compact help pill on very small screens */
  }
  .panel__bar,
  .panel__form,
  .find-card__head,
  .find-search {
    max-width: calc(100% - 32px);
  }
  .form-head h1 { font-size: 24px; }
  .terms { -ms-flex-wrap: wrap; flex-wrap: wrap; }
  .landing { padding-top: 108px; }
}

/* ---- Mobile: login / reset / find show ONLY the video hero ----
   The headline + feature cards are kept on the landing (index) page,
   but dropped here so the panel gets the focus. (Placed last so it
   wins the cascade over the earlier stacked-banner rules.) */
@media (max-width: 768px) {
  .split__hero .hero-title,
  .split__features {
    display: none;
  }
  .split__hero {
    min-height: 30vh;          /* compact video band on mobile */
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0;
    padding: 20px;
  }
  .split__logo {
    top: 22px;
    left: 22px;
  }

  /* trim the panel's vertical spacing so the page isn't taller than
     it needs to be (less scrolling) */
  .panel__bar { margin-top: 24px; }
  .panel__form { margin: 26px auto; }
  .panel__foot { margin: 8px 0 24px; }

  /* on mobile the panel fades in (no full-width horizontal slide that
     could push content past the viewport edge) */
  .split__panel,
  .find__panel {
    -webkit-animation: fade-in 0.4s var(--ease) both;
            animation: fade-in 0.4s var(--ease) both;
  }
}

