.acc { min-height: 100dvh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 520px); }
.acc-side {
  position: relative; overflow: hidden; padding: 40px 48px; display: flex; flex-direction: column; justify-content: space-between;
  border-right: 1px solid var(--line);
  background:
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(236, 235, 228, .035) 39px 40px),
    repeating-linear-gradient(90deg, transparent 0 39px, rgba(236, 235, 228, .035) 39px 40px),
    var(--bg1);
}
.acc-side h1 { margin: 0; max-width: 12ch; font-size: clamp(40px, 5.4vw, 76px); line-height: .95; font-weight: 800; font-stretch: 118%; letter-spacing: -.025em; text-wrap: balance; }
.acc-side h1 em { font-style: normal; color: var(--accent); }
.acc-side p { margin: 18px 0 0; max-width: 40ch; color: var(--muted); }
.acc-side small { font-family: var(--mono); font-size: 12px; color: var(--faint); letter-spacing: .02em; }
.acc-main { display: flex; align-items: center; justify-content: center; padding: 40px 32px; }
.acc-card { width: 100%; max-width: 380px; }
.acc-card h2 { margin: 0 0 6px; font-size: 26px; font-weight: 700; letter-spacing: -.01em; }
.acc-card .lead { margin: 0 0 28px; color: var(--muted); font-size: 15px; }
.acc-card form .btn { width: 100%; margin-top: 4px; }
.acc-foot { margin-top: 24px; font-size: 13px; color: var(--faint); }
.acc-sep { display: flex; align-items: center; gap: 12px; margin: 22px 0; color: var(--faint); font-size: 13px; }
.acc-sep::before, .acc-sep::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.pw { position: relative; }
.pw input { padding-right: 84px; }
.pw button { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); min-height: 36px; padding: 0 10px; font: 600 13px var(--font); color: var(--muted); background: none; border: 0; border-radius: var(--r); cursor: pointer; }
.pw button:hover { color: var(--text); background: var(--bg3); }
[hidden] { display: none !important; }

@media (max-width: 860px) {
  .acc { grid-template-columns: 1fr; }
  .acc-side { padding: 24px 20px 28px; border-right: 0; border-bottom: 1px solid var(--line); gap: 28px; }
  .acc-side h1 { font-size: 40px; }
  .acc-side small { display: none; }
  .acc-main { padding: 32px 20px 48px; align-items: flex-start; }
}
