    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --navy:          #1a2b8c;
      --navy-deep:     #101d66;
      --navy-mid:      #2d3fa0;
      --navy-light:    #4a5db8;
      --silver:        #9aa3b0;
      --silver-light:  #c5cad3;
      --silver-pale:   #e8eaef;
      --white:         #ffffff;
      --offwhite:      #f5f6fa;
      --text-dark:     #0f1833;
      --text-mid:      #3d4f6e;
      --text-muted:    #7a8aa0;
      --success:       #0a7c5c;
      --shadow-lg:     0 20px 60px rgba(26,43,140,0.13), 0 8px 24px rgba(26,43,140,0.07);
    }

    html, body { height: 100%; }
    body {
      font-family: "Sora", sans-serif;
      background: var(--offwhite);
      color: var(--text-dark);
      min-height: 100vh;
      display: flex;
      align-items: stretch;
    }

    .page {
      display: grid;
      grid-template-columns: 1fr 510px;
      width: 100%;
      min-height: 100vh;
    }

    /* ══ LEFT BRAND PANEL ══ */
    .brand-canvas {
      position: relative;
      background: var(--navy-deep);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding: 52px 64px;
    }

    .brand-canvas::before {
      content: "";
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle, rgba(255,255,255,0.065) 1px, transparent 1px);
      background-size: 28px 28px;
      pointer-events: none;
    }

    .brand-canvas::after {
      content: "";
      position: absolute;
      top: -100px; right: -100px;
      width: 520px; height: 520px;
      background: radial-gradient(circle, rgba(74,93,184,0.28) 0%, transparent 65%);
      pointer-events: none;
    }

    .ambient-btm {
      position: absolute;
      bottom: -80px; left: -80px;
      width: 420px; height: 420px;
      background: radial-gradient(circle, rgba(154,163,176,0.09) 0%, transparent 60%);
      pointer-events: none;
    }

    /* Geometric arrow — echoes logo shapes */
    .geo-arrow {
      position: absolute;
      right: 0; top: 50%;
      transform: translateY(-50%);
      pointer-events: none;
    }

    .geo-arrow svg { opacity: 0.055; }

    /* ── Logo ── */
    .brand-logo {
      position: relative;
      z-index: 2;
      opacity: 0;
      animation: riseIn 0.7s cubic-bezier(0.22,1,0.36,1) forwards 0.1s;
    }

    .brand-logo img {
      height: 80px;
      width: auto;
      object-fit: contain;
      filter: brightness(0) invert(1);
      opacity: 0.92;
    }

    .brand-copy { position: relative; z-index: 2; }

    .brand-tag {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(255,255,255,0.07);
      border: 1px solid rgba(255,255,255,0.13);
      border-radius: 100px;
      padding: 6px 16px;
      margin-bottom: 30px;
      opacity: 0;
      animation: riseIn 0.7s cubic-bezier(0.22,1,0.36,1) forwards 0.25s;
    }

    .brand-tag-dot {
      width: 6px; height: 6px;
      border-radius: 50%;
      background: var(--silver-light);
      box-shadow: 0 0 8px var(--silver-light);
    }

    .brand-tag span {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--silver-light);
    }

    .brand-headline {
      font-family: "Lora", serif;
      font-size: clamp(1.9rem, 2.6vw, 2.85rem);
      font-weight: 600;
      line-height: 1.22;
      color: #fff;
      margin-bottom: 20px;
      opacity: 0;
      animation: riseIn 0.7s cubic-bezier(0.22,1,0.36,1) forwards 0.4s;
    }

    .brand-headline .accent {
      font-style: italic;
      color: var(--silver-light);
    }

    .brand-body {
      font-size: 14.5px;
      line-height: 1.8;
      color: white;
      max-width: 370px;
      font-weight: 300;
      opacity: 0;
      animation: riseIn 0.7s cubic-bezier(0.22,1,0.36,1) forwards 0.55s;
    }

    .metrics {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
      margin-top: 48px;
      opacity: 0;
      animation: riseIn 0.7s cubic-bezier(0.22,1,0.36,1) forwards 0.7s;
    }

    .metric-card {
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 10px;
      padding: 18px 14px;
      transition: background 0.22s;
    }

    .metric-card:hover { background: rgba(255,255,255,0.09); }

    .metric-value {
      font-family: "Lora", serif;
      font-size: 1.65rem;
      font-weight: 600;
      color: #fff;
      line-height: 1;
      margin-bottom: 5px;
    }

    .metric-label {
      font-size: 10.5px;
      font-weight: 500;
      letter-spacing: 0.09em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.32);
    }

    .brand-quote {
      position: relative;
      z-index: 2;
      border-left: 2px solid rgba(197,202,211,0.28);
      padding-left: 16px;
      opacity: 0;
      animation: riseIn 0.7s cubic-bezier(0.22,1,0.36,1) forwards 0.85s;
    }

    .brand-quote p {
      font-family: "Lora", serif;
      font-style: italic;
      font-size: 13px;
      color: rgba(255,255,255,0.4);
      line-height: 1.65;
    }

    .brand-quote cite {
      display: block;
      font-style: normal;
      font-family: "Sora", sans-serif;
      font-size: 10.5px;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.22);
      margin-top: 6px;
    }

    /* ══ RIGHT FORM PANEL ══ */
    .form-panel {
      background: var(--white);
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 64px 56px;
      position: relative;
      box-shadow: var(--shadow-lg);
    }

    /* Navy-to-silver gradient bar matching logo palette */
    .form-panel::before {
      content: "";
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--navy-deep) 0%, var(--navy-light) 55%, var(--silver) 100%);
    }

    .form-head {
      margin-bottom: 38px;
      opacity: 0;
      animation: riseIn 0.65s cubic-bezier(0.22,1,0.36,1) forwards 0.15s;
    }

    .form-eyebrow { margin-bottom: 18px; }

    .eyebrow-badge {
      display: inline-block;
      background: rgba(26,43,140,0.07);
      border: 1px solid rgba(26,43,140,0.15);
      border-radius: 100px;
      padding: 4px 14px;
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--navy);
    }

    .form-title {
      font-family: "Lora", serif;
      font-size: 1.85rem;
      font-weight: 600;
      color: var(--text-dark);
      line-height: 1.25;
      margin-bottom: 8px;
    }

    .form-sub {
      font-size: 13.5px;
      color: var(--black-1);
      font-weight: 400;
      line-height: 1.6;
    }

    .field {
      margin-bottom: 20px;
      opacity: 0;
      animation: riseIn 0.65s cubic-bezier(0.22,1,0.36,1) forwards;
    }
    .field:nth-of-type(1) { animation-delay: 0.3s; }
    .field:nth-of-type(2) { animation-delay: 0.42s; }

    .field-lbl {
      display: block;
      font-size: 11.5px;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--text-mid);
      margin-bottom: 9px;
      transition: color 0.2s;
    }

    .field-wrap { position: relative; }

    .field-input {
      width: 100%;
      background: var(--offwhite);
      border: 1.5px solid var(--navy);
      border-radius: 10px;
      padding: 13px 46px 13px 16px;
      font-family: "Sora", sans-serif;
      font-size: 14px;
      color: var(--text-dark);
      outline: none;
      transition: border-color 0.22s, box-shadow 0.22s, background 0.22s;
      -webkit-appearance: none;
    }

    .field-input::placeholder { color: var(--silver-light); font-weight: 300; }
    .field-input:hover { border-color: var(--silver); }
    .field-input:focus {
      background: var(--white);
      border-color: var(--navy);
      box-shadow: 0 0 0 3px rgba(26,43,140,0.09);
    }

    .field-icon {
      position: absolute;
      right: 14px; top: 50%;
      transform: translateY(-50%);
      color: var(--silver);
      display: flex; align-items: center;
      cursor: pointer;
      transition: color 0.2s;
    }
    .field-icon:hover { color: var(--navy); }
    .field-icon svg { width: 16px; height: 16px; }

    .options-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 26px;
      opacity: 0;
      animation: riseIn 0.65s cubic-bezier(0.22,1,0.36,1) forwards 0.54s;
    }

    .remember { display: flex; align-items: center; gap: 9px; cursor: pointer; }

    .remember input[type="checkbox"] {
      width: 17px; height: 17px;
      border-radius: 5px;
      border: 1.5px solid var(--navy);
      background: var(--offwhite);
      appearance: none; -webkit-appearance: none;
      cursor: pointer;
      transition: border-color 0.2s, background 0.2s;
      flex-shrink: 0; position: relative;
    }
    .remember input[type="checkbox"]:hover { border-color: var(--silver); }
    .remember input[type="checkbox"]:checked { background: var(--navy); border-color: var(--navy); }
    .remember input[type="checkbox"]:checked::after {
      content: "";
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3.5 3.5L13 4' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/75% no-repeat;
    }

    .remember-text { font-size: 13px; color: var(--text-muted); user-select: none; }

    .forgot { font-size: 13px; color: var(--navy); text-decoration: none; font-weight: 500; transition: opacity 0.2s; }
    .forgot:hover { opacity: 0.65; }

    .btn-submit {
      width: 100%;
      padding: 15px 24px;
      background: var(--navy-deep);
      border: none;
      border-radius: 10px;
      color: #fff;
      font-family: "Sora", sans-serif;
      font-size: 14.5px;
      font-weight: 600;
      letter-spacing: 0.04em;
      cursor: pointer;
      position: relative; overflow: hidden;
      transition: background 0.25s, transform 0.15s, box-shadow 0.25s;
      box-shadow: 0 4px 18px rgba(26,43,140,0.3);
      opacity: 0;
      animation: riseIn 0.65s cubic-bezier(0.22,1,0.36,1) forwards 0.62s;
      display: flex; align-items: center; justify-content: center; gap: 10px;
    }

    .btn-submit:hover {
      background: var(--navy-mid);
      transform: translateY(-1px);
      box-shadow: 0 8px 28px rgba(26,43,140,0.35);
    }
    .btn-submit:active { transform: translateY(0); }

    .btn-arrow { display: flex; align-items: center; transition: transform 0.25s; }
    .btn-submit:hover .btn-arrow { transform: translateX(4px); }

    .btn-submit::after {
      content: "";
      position: absolute; inset: 0;
      background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.06) 50%, transparent 60%);
      transform: translateX(-100%);
      transition: transform 0s;
    }
    .btn-submit:hover::after { transform: translateX(200%); transition: transform 0.55s ease; }

    .divider {
      display: flex; align-items: center; gap: 14px;
      margin: 26px 0;
      opacity: 0;
      animation: riseIn 0.65s cubic-bezier(0.22,1,0.36,1) forwards 0.72s;
    }
    .divider-line { flex: 1; height: 1px; background: var(--silver-pale); }
    .divider-text { font-size: 10.5px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--black-1); white-space: nowrap; }

    .trust-row {
      display: flex; align-items: center; justify-content: center; gap: 22px;
      opacity: 0;
      animation: riseIn 0.65s cubic-bezier(0.22,1,0.36,1) forwards 0.82s;
    }

    .trust-badge { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--black-1); font-weight: 400; }
    .trust-badge svg { width: 14px; height: 14px; color: var(--success); flex-shrink: 0; }

    .form-bottom {
      margin-top: 30px; padding-top: 22px;
      border-top: 1px solid var(--silver-pale);
      display: flex; align-items: center; justify-content: space-between;
      opacity: 0;
      animation: riseIn 0.65s cubic-bezier(0.22,1,0.36,1) forwards 0.92s;
    }
    .form-bottom p { font-size: 12px; color: var(--black-1); }
    .form-bottom p strong { color: var(--text-muted); font-weight: 600; }
    .version-badge { font-size: 11px; font-weight: 600; color: var(--text-muted); background: var(--silver-pale); border-radius: 100px; padding: 3px 10px; }

    .messages-area { margin-bottom: 18px; }

    @keyframes riseIn {
      from { opacity: 0; transform: translateY(16px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    @media (max-width: 960px) {
      .page { grid-template-columns: 1fr; }
      .brand-canvas { display: none; }
      .form-panel { padding: 64px 36px; justify-content: flex-start; padding-top: 80px; }
    }
    @media (max-width: 480px) {
      .form-panel { padding: 60px 22px 40px; }
      .trust-row { flex-wrap: wrap; gap: 12px; justify-content: flex-start; }
    }
