:root{
  --paper:#0d0d0b; --panel:#161614; --ink:#ede9e4; --soft:#cfccc4; --muted:#aaa79f;
  --accent:#ff4d2e; --err:#ff8a73; --ok:#34d37a; --line:#ffffff1a; --line-strong:#ffffff33;
  --font:'Funnel Display','Noto Sans',system-ui,sans-serif;
  --serif:'Cormorant Garamond','Noto Serif',serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);min-height:100vh}
a{color:var(--soft)} a:hover{color:var(--accent)}
[hidden]{display:none !important}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

.wrap{width:100%;max-width:1440px;margin:0 auto;padding-left:32px;padding-right:32px}
.header{padding-top:56px;padding-bottom:8px;display:flex;justify-content:center}
.main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,520px);gap:72px;align-items:center;padding-top:56px;padding-bottom:72px}

/* Hero text */
.hero h1{margin:0;font-size:clamp(44px,6.2vw,92px);line-height:1.02;letter-spacing:-.035em;font-weight:700}
.nowrap{white-space:nowrap}
.hero-sub{margin:22px 0 0;font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(30px,3.6vw,52px);line-height:1.1;color:var(--accent)}

/* Form panel */
.side{min-width:0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:40px 36px}
form{display:flex;flex-direction:column;gap:20px}
h2{margin:0 0 6px;font-size:32px;letter-spacing:-.015em;font-weight:700}
.muted{margin:0;font-size:18px;line-height:1.45;color:var(--muted)}
.field{display:flex;flex-direction:column;gap:6px}
label{font-size:15px;font-weight:500;color:var(--soft)}
input[type=text],input[type=email]{height:60px;padding:0 18px;border-radius:14px;background:var(--paper);color:var(--ink);font:inherit;font-size:18px;border:1px solid var(--line-strong)}
input::placeholder{color:#8a877f}
input:focus{outline:2px solid var(--ink);outline-offset:2px}
input[aria-invalid=true]{border-color:var(--err)}
.err{margin:0;font-size:14px;color:var(--err)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.45;cursor:pointer}
.check input{width:22px;height:22px;margin:0;flex:none;accent-color:var(--accent)}

.btn{height:64px;border:0;border-radius:14px;background:var(--accent);color:var(--paper);font:inherit;font-size:19px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}
.btn:disabled{cursor:progress;opacity:.85}
.spin{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.privacy{margin:0;font-size:14px;line-height:1.5;color:var(--muted);text-align:center}

/* Success */
.success{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.success h2{font-size:34px;letter-spacing:-.02em;margin:0}
.success p{margin:0;font-size:18px;line-height:1.5;color:var(--soft)}
.success strong{color:var(--ink)}
.tick{width:48px;height:48px;border-radius:50%;background:#34d37a26;display:flex;align-items:center;justify-content:center}
.btn-outline{display:flex;align-items:center;justify-content:center;width:100%;height:60px;border-radius:12px;border:1px solid #ffffff40;font-size:16px;font-weight:700;text-decoration:none;color:var(--ink)}
.link-btn{background:none;border:0;padding:8px 0;font:inherit;font-size:14px;color:var(--muted);text-decoration:underline;cursor:pointer}

/* Trust strip */
.trust{display:flex;flex-direction:column;align-items:center;gap:24px;padding-top:16px;padding-bottom:88px}
.trust-label{margin:0;font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center}
.badges{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 28px}
.logo{display:block;height:48px;width:auto}
.badge{display:block;width:120px;height:auto}
.badge-slot{display:flex;align-items:center;justify-content:center;min-width:140px;height:46px;padding:0 14px;border-radius:10px;border:1px dashed #ffffff40;font-size:13px;font-weight:500;color:var(--soft)}

@media (max-width:980px){
  .main{grid-template-columns:minmax(0,1fr);gap:32px;max-width:640px;padding-top:36px;padding-bottom:56px}
  .hero{text-align:center}
}
@media (max-width:640px){
  .wrap{padding-left:20px;padding-right:20px}
  .panel{padding:26px 20px}
  .header{padding-top:36px}
  .trust{padding-bottom:64px}
  .logo{height:40px}
  .badge{width:104px}
  h2{font-size:28px}
}
@media (prefers-reduced-motion:reduce){.spin{animation:none}}
