/* single-screen, no-scroll lead magnet, dark page / white form card,
   matching the OutsorGroup design reference: icon+wordmark header,
   book thumbnail next to a two-tone headline, then the form card. */
:root{
  --bg:#0b0616; --text:#F4F1FB; --text-soft:rgba(244,241,251,.65);
  --card:#FFFFFF; --input-bg:#F4F1FB; --input-border:rgba(21,11,46,.12);
  --text-dark:#150B2E; --fg-soft:#6A6380;
  --purple:#6A00FF; --lilac:#A259FF; --accent-soft:rgba(106,0,255,.08);
  --font-body:'Poppins',ui-sans-serif,system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;overflow:hidden;background:var(--bg);background-image:radial-gradient(60% 50% at 50% 0%,rgba(123,47,247,.35),transparent 70%);color:var(--text);font-family:var(--font-body);line-height:1.5}
h1{margin:0;text-wrap:balance}
p{margin:0}
img{max-width:100%;display:block}
button{font-family:var(--font-body);cursor:pointer}
:focus-visible{outline:2px solid var(--lilac);outline-offset:2px}
[hidden]{display:none!important}

.app{min-height:100%;display:flex;align-items:center;justify-content:center;padding:20px}
.col{width:100%;max-width:420px;max-height:100svh;overflow-y:auto;padding:6px 2px}

.header{display:flex;align-items:center;gap:10px;margin-bottom:28px}
.icon-chip{background:#fff;border-radius:10px;padding:6px;display:flex;line-height:0}
.icon-chip img{height:22px;width:auto}
.wordmark{font-weight:700;font-size:1.1rem;color:var(--text)}
.wordmark .accent{color:var(--lilac)}

.hero{display:flex;gap:16px;align-items:flex-start;margin-bottom:26px}
.hero-book{width:84px;height:84px;flex:none;border-radius:10px;object-fit:cover;box-shadow:0 10px 24px -8px rgba(106,0,255,.5)}
.headline{font-size:clamp(1.3rem,4.8vw,1.6rem);font-weight:800;letter-spacing:-.01em;line-height:1.25}
.headline .accent{color:var(--lilac)}
.hero-sub{margin-top:8px;font-size:.85rem;color:var(--text-soft)}

.card{background:var(--card);border-radius:20px;padding:26px;box-shadow:0 30px 60px -20px rgba(0,0,0,.45)}

.field{display:grid;gap:6px;margin-top:14px}
.field:first-child{margin-top:0}
.field label{font-size:.82rem;font-weight:700;color:var(--text-dark)}
.field input{font-family:var(--font-body);font-size:.95rem;border:1.5px solid var(--input-border);border-radius:10px;padding:13px 14px;background:var(--input-bg);color:var(--text-dark);width:100%}
.field input::placeholder{color:#9b93ad}
.field input:focus{border-color:var(--lilac)}

.phone-row{display:flex;gap:8px}
.phone-row select{flex:none;width:92px;border:1.5px solid var(--input-border);border-radius:10px;padding:13px 8px;background:var(--input-bg);color:var(--text-dark);font-family:var(--font-body);font-size:.88rem}
.phone-row select:focus{border-color:var(--lilac)}
.phone-row input{flex:1;min-width:0}
.field-error{display:none;margin-top:2px;font-size:.76rem;color:#ff8080}
.field.invalid input,.field.invalid select{border-color:#ff8080}
.field.invalid .field-error{display:block}

.submit-btn{margin-top:18px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(90deg,var(--purple),var(--lilac),var(--purple));background-size:200% 100%;animation:ctaFlow 6s ease infinite;color:#fff;border:none;border-radius:14px;padding:15px 22px;font-weight:700;font-size:.98rem}
@keyframes ctaFlow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

.legal{margin-top:14px;font-size:.76rem;color:var(--fg-soft);text-align:center;line-height:1.5}
.legal a{color:var(--purple);text-decoration:underline}


@media (prefers-reduced-motion:reduce){
  .submit-btn{animation:none!important}
}
@media (max-width:360px){
  .card{padding:20px}
  .hero-book{width:68px;height:68px}
}

/* fit-to-screen: spacing scales with viewport height so the whole page
   (header + hero + full form) fits 100% on phones and laptops; scroll only as a last resort */
body{overflow-y:auto}
.app{min-height:100svh;align-items:center}
.app{padding:clamp(10px,2.5vh,28px) 20px}
.col{max-height:none;overflow:visible;display:flex;flex-direction:column;justify-content:center}
.header{margin-bottom:clamp(10px,3vh,28px)}
.hero{margin-bottom:clamp(10px,3vh,26px)}
.hero-book{width:clamp(56px,10vh,84px);height:clamp(56px,10vh,84px)}
.card{padding:clamp(16px,3vh,26px)}
.field{margin-top:clamp(8px,1.6vh,14px);gap:clamp(3px,.6vh,6px)}
.field input,.phone-row select{padding-top:clamp(9px,1.5vh,13px);padding-bottom:clamp(9px,1.5vh,13px)}
.submit-btn{margin-top:clamp(12px,2vh,18px);padding-top:clamp(11px,1.8vh,15px);padding-bottom:clamp(11px,1.8vh,15px)}
.legal{margin-top:clamp(8px,1.5vh,14px)}
@media (max-height:600px){.hero-sub{display:none}}
