*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --yellow: #f5c518; --ydark: #c9920a;
  --text: #1a1a2e;   --muted: #6b7280;
  --ibg:  #eef1f6;   --border: #dde2ea; --white: #ffffff;
}
html, body { height: 100%; font-family: 'DM Sans', sans-serif; overflow: hidden; }
body { min-height: 100vh; display: grid; grid-template-columns: 1fr 480px 48px; position: relative; }
body::after { content: ''; display: block; }

.bg-wrap { position: fixed; inset: 0; z-index: 0; }
.bg-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.bg-wrap::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg,rgba(0,0,0,0.08) 0%,rgba(0,0,0,0.04) 40%,rgba(255,255,255,0.12) 100%); }

.logo-wrap { position: fixed; top: 22px; left: 28px; z-index: 50; animation: fadeDown .5s .05s cubic-bezier(.22,1,.36,1) both; }
.logo-wrap a { display: block; text-decoration: none; }
.logo-pill { display: inline-flex; align-items: center; background: rgba(255,255,255,0.95); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-radius: 999px; padding: 6px 16px 6px 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.15),0 1px 3px rgba(0,0,0,0.08); transition: transform .22s, box-shadow .22s; }
.logo-wrap a:hover .logo-pill { transform: scale(1.04); }
.logo-pill img { height: 44px; width: auto; display: block; }
@keyframes fadeDown { from{opacity:0;transform:translateY(-10px)} to{opacity:1;transform:translateY(0)} }

.left-panel { position: relative; z-index: 10; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 48px 52px 52px; pointer-events: none; }
.tagline { font-family: 'Nunito',sans-serif; font-size: clamp(26px,2.8vw,44px); font-weight: 900; color: #fff; line-height: 1.15; letter-spacing: -0.8px; text-shadow: 0 2px 24px rgba(0,0,0,0.35); margin-bottom: 10px; }
.tagline em { font-style: normal; color: var(--yellow); }
.tagline-sub { font-size: 15px; font-weight: 400; color: rgba(255,255,255,0.82); line-height: 1.6; max-width: 360px; text-shadow: 0 1px 10px rgba(0,0,0,0.25); margin-bottom: 28px; }
.features { display: flex; flex-direction: column; gap: 10px; pointer-events: none; }
.feat-item { display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.14); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,0.22); border-radius: 14px; padding: 11px 16px; max-width: 340px; animation: slideUp .6s cubic-bezier(.22,1,.36,1) both; }
.feat-item:nth-child(1){animation-delay:.1s} .feat-item:nth-child(2){animation-delay:.2s} .feat-item:nth-child(3){animation-delay:.3s}
@keyframes slideUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
.feat-icon { width: 36px; height: 36px; border-radius: 10px; background: var(--yellow); display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 3px 10px rgba(245,197,24,0.4); }
.feat-icon svg { width: 18px; height: 18px; color: #1a1a2e; }
.feat-text strong { display: block; font-size: 13.5px; font-weight: 700; color: #fff; }
.feat-text span   { font-size: 12px; color: rgba(255,255,255,0.7); }
.stats-row { display: flex; gap: 24px; margin-top: 24px; animation: slideUp .6s .4s cubic-bezier(.22,1,.36,1) both; }
.stat-num  { font-family: 'Nunito',sans-serif; font-size: 26px; font-weight: 900; color: var(--yellow); line-height: 1; }
.stat-label { font-size: 11.5px; font-weight: 500; color: rgba(255,255,255,0.72); margin-top: 2px; text-transform: uppercase; letter-spacing: 0.8px; }

.right-panel { position: relative; z-index: 10; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.96); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255,255,255,0.5); box-shadow: -12px 0 60px rgba(0,0,0,0.18),12px 0 40px rgba(0,0,0,0.1); padding: 20px 36px; border-radius: 32px; margin: 16px 0; overflow-y: auto; animation: slideIn .6s cubic-bezier(.22,1,.36,1) both; }
@keyframes slideIn { from{opacity:0;transform:translateX(30px)} to{opacity:1;transform:translateX(0)} }
.card { width: 100%; max-width: 400px; }

.form-eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: var(--ydark); margin-bottom: 4px; }
.form-title   { font-family: 'Nunito',sans-serif; font-size: 26px; font-weight: 900; color: var(--text); letter-spacing: -0.6px; line-height: 1.1; margin-bottom: 4px; }
.form-sub     { font-size: 13px; color: var(--muted); margin-bottom: 16px; line-height: 1.4; }

.alert { padding: 10px 13px; border-radius: 9px; font-size: 13px; line-height: 1.4; margin-bottom: 14px; border-left: 4px solid; animation: alertIn .3s ease both; }
@keyframes alertIn { from{opacity:0;transform:translateY(-4px)} to{opacity:1;transform:translateY(0)} }
.alert.error   { background: #fff1f1; border-color: #dc2626; color: #991b1b; }
.alert.success { background: #fffbe6; border-color: var(--ydark); color: #7a5700; }

/* Inline field errors */
.field-err { display: none; align-items: center; gap: 4px; font-size: 11.5px; color: #dc2626; margin-top: 4px; }
.field-err.show { display: flex; }
.field-err svg { width: 13px; height: 13px; flex-shrink: 0; }
input.invalid { border-color: #dc2626 !important; box-shadow: 0 0 0 3px rgba(220,38,38,0.12) !important; background: #fff !important; }

.section-label { font-size: 10px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: #aab0ba; margin: 12px 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.fgroup { margin-bottom: 10px; }
.frow   { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.flabel { font-size: 12px; font-weight: 700; color: var(--text); }
.optional-tag { font-size: 10.5px; font-weight: 400; color: var(--muted); }

.iwrap { position: relative; }
.iicon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #b8c0cc; display: flex; pointer-events: none; transition: color .2s; }
.iicon svg { width: 14px; height: 14px; }

input[type=email], input[type=password], input[type=text], input[type=tel] {
  width: 100%; padding: 8px 32px;
  background: var(--ibg); border: 1.5px solid var(--border);
  border-radius: 10px; font-family: 'DM Sans',sans-serif;
  font-size: 13.5px; color: var(--text); outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
input::placeholder { color: #c2cad4; }
input:focus { border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(245,197,24,0.15); background: #fff; }

.pw-btn { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; color: #b8c0cc; display: flex; padding: 3px; transition: color .2s; }
.pw-btn:hover { color: var(--text); }
.pw-btn svg { width: 14px; height: 14px; }

/* password strength */
.strength-bar  { height: 3px; background: var(--border); border-radius: 99px; margin-top: 6px; overflow: hidden; }
.strength-fill { height: 100%; width: 0; border-radius: 99px; transition: width .3s, background .3s; }
.strength-text { font-size: 11px; color: var(--muted); margin-top: 3px; min-height: 14px; }

/* checkboxes */
.check-group { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 7px; }
.check-group input[type=checkbox] { width: 15px; height: 15px; flex-shrink: 0; margin-top: 2px; accent-color: var(--ydark); cursor: pointer; padding: 0 !important; border: none; }
.check-group label { font-size: 12.5px; color: var(--muted); cursor: pointer; line-height: 1.5; }
.check-group label a { color: var(--ydark); font-weight: 700; text-decoration: none; }
.check-group label a:hover { text-decoration: underline; }
.check-err { display: none; align-items: center; gap: 4px; font-size: 11.5px; color: #dc2626; margin-top: 2px; margin-bottom: 4px; }
.check-err.show { display: flex; }
.check-err svg { width: 13px; height: 13px; flex-shrink: 0; }

/* submit btn */
.btn-submit { display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%; padding: 13px; background: var(--yellow); color: #1a1a2e; font-family: 'Nunito',sans-serif; font-size: 16px; font-weight: 900; border: none; border-radius: 12px; cursor: pointer; letter-spacing: 0.2px; position: relative; overflow: hidden; box-shadow: 0 4px 18px rgba(245,197,24,0.42); transition: background .2s,transform .15s,box-shadow .2s; margin-top: 12px; }
.btn-submit::after { content: ''; position: absolute; top: 0; left: -110%; width: 55%; height: 100%; background: linear-gradient(90deg,transparent,rgba(255,255,255,0.36),transparent); animation: shim 3s ease-in-out infinite; }
@keyframes shim { 0%{left:-110%} 50%,100%{left:160%} }
.btn-submit:hover { background: #e8b800; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(245,197,24,0.5); }
.btn-submit:active { transform: translateY(0); }
.btn-submit:disabled { opacity: .7; cursor: not-allowed; transform: none; }
.btn-submit svg { flex-shrink: 0; }

.spinner { display: none; width: 15px; height: 15px; border: 2px solid rgba(0,0,0,0.15); border-top-color: #333; border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to{transform:rotate(360deg)} }

.signin { text-align: center; margin-top: 12px; font-size: 13px; color: var(--muted); }
.signin a { color: var(--ydark); font-weight: 800; text-decoration: none; }
.signin a:hover { text-decoration: underline; }

.trust-row { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.trust-item { display: flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 600; color: #aab0ba; letter-spacing: 0.3px; text-transform: uppercase; }
.trust-item svg { width: 11px; height: 11px; }

.form-logo { display: none; }

@media(max-width:700px){
  html, body { overflow: auto; height: auto; }
  body { display: flex; flex-direction: column; min-height: 100vh; background: #fff; }
  .left-panel, .logo-wrap, body > .bg-wrap { display: none; }
  .right-panel { flex: 1; display: flex; align-items: flex-start; justify-content: center; background: #fff; border: none; border-radius: 0; box-shadow: none; padding: 48px 22px 40px; margin: 0; overflow-y: visible; animation: fadeUp .45s cubic-bezier(.22,1,.36,1) both; }
  @keyframes fadeUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
  .card { width: 100%; max-width: 100%; }
  .form-logo { display: flex; justify-content: center; margin-bottom: 24px; }
  .form-logo .logo-pill { display: inline-flex; align-items: center; background: #fff; border-radius: 999px; padding: 6px 18px 6px 10px; box-shadow: 0 2px 12px rgba(0,0,0,0.10),0 0 0 1.5px var(--border); }
  .form-logo img { height: 40px; width: auto; display: block; }
  .field-row { grid-template-columns: 1fr; }
  input[type=email], input[type=password], input[type=text], input[type=tel] { padding: 12px 40px; font-size: 15px; border-radius: 12px; }
  .btn-submit { padding: 14px; font-size: 16px; border-radius: 13px; }
  .trust-row  { margin-top: 14px; }
}
