:root{--ink:#0f172a;--muted:#64748b;--brand:#4f46e5;--brand2:#7c3aed;--accent:#22d3ee;--ok:#16a34a;--line:#e2e8f0}
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%;overflow:hidden;background:#fff;font-family:'Plus Jakarta Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}
  .disclose{position:fixed;top:0;left:0;right:0;height:30px;line-height:30px;z-index:40;padding:0 12px;background:#0f172a;color:#cbd5e1;font-size:12px;font-weight:500;letter-spacing:.01em;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .disclose .short{display:none}
  @media (max-width:640px){.disclose{font-size:11px}.disclose .long{display:none}.disclose .short{display:inline}}
  .clip{position:absolute;top:30px;left:0;right:0;bottom:0;overflow:hidden}
  .consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;font-weight:500;line-height:1.45;color:var(--muted);cursor:pointer;text-align:left}
  .consent input{width:16px;height:16px;margin-top:1px;flex:none;padding:0}
  .disclaim{font-size:11px;color:var(--muted);text-align:center;line-height:1.45}
  iframe{position:absolute;left:0;width:100%;border:0;display:block;transition:top .35s ease,height .35s ease}

  /* Soft gradient veil (visual only, lets scroll & clicks through) */
  .veil{position:fixed;inset:0;z-index:5;pointer-events:none;transition:opacity .5s;
    background:linear-gradient(180deg,rgba(79,70,229,.10),rgba(124,58,237,.05) 40%,rgba(34,211,238,.10))}
  .veil.off{opacity:0}

  /* Floating bubble */
  .bubble{position:fixed;right:20px;bottom:20px;z-index:50;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border:0;border-radius:999px;cursor:pointer;
    background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-family:inherit;font-weight:700;font-size:14px;line-height:1.1;text-align:left;box-shadow:0 10px 30px rgba(79,70,229,.45);transition:transform .2s}
  .bubble:hover{transform:translateY(-2px)}
  .bubble .ico{width:38px;height:38px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none}
  .bubble .ico svg{width:22px;height:22px}
  .bubble small{display:block;font-weight:500;font-size:11px;opacity:.85}
  .bubble .dot{position:absolute;top:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid #fff;animation:pulse 1.6s infinite}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,211,238,.7)}70%{box-shadow:0 0 0 10px rgba(34,211,238,0)}100%{box-shadow:0 0 0 0 rgba(34,211,238,0)}}

  /* Center modal */
  .scrim{position:fixed;inset:0;z-index:60;background:rgba(15,23,42,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s;
    display:flex;align-items:center;justify-content:center;padding:16px}
  .open .scrim{opacity:1;pointer-events:auto}
  .modal{width:420px;max-width:100%;max-height:calc(100vh - 32px);overflow-y:auto;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(15,23,42,.4);
    transform:translateY(20px) scale(.96);transition:transform .35s cubic-bezier(.2,.8,.2,1);position:relative}
  .open .modal{transform:none}
  .close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.22);color:#fff;font-size:20px;cursor:pointer;z-index:2}
  .hero{position:relative;padding:30px 26px 24px;color:#fff;border-radius:18px 18px 0 0;background:radial-gradient(circle at 85% 15%,rgba(34,211,238,.45),transparent 45%),linear-gradient(145deg,#312e81,var(--brand) 55%,var(--brand2));overflow:hidden}
  .hero .art{display:flex;align-items:flex-end;gap:14px;margin-bottom:16px}
  .book{width:86px;height:110px;border-radius:6px 10px 10px 6px;background:linear-gradient(160deg,#fff,#e0e7ff);box-shadow:8px 10px 0 rgba(0,0,0,.18);position:relative;transform:rotate(-6deg);color:var(--brand);padding:11px 9px;flex:none}
  .book:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--brand2);border-radius:6px 0 0 6px}
  .book b{display:block;font-size:28px;line-height:1;font-weight:800;margin-left:6px}
  .book span{display:block;font-size:8.5px;font-weight:800;letter-spacing:.05em;margin:4px 0 0 6px;color:#1e1b4b}
  .book i{display:block;height:4px;border-radius:2px;background:#c7d2fe;margin:6px 0 0 6px}
  .badge{display:inline-block;background:var(--accent);color:#083344;font-size:11px;font-weight:800;letter-spacing:.05em;padding:5px 10px;border-radius:999px;text-transform:uppercase}
  .hero h2{font-size:23px;line-height:1.2;font-weight:800;margin:10px 0 8px}
  .hero p{font-size:14px;line-height:1.5;opacity:.92}
  .body{padding:20px 26px 24px}
  .list{list-style:none;display:grid;gap:8px;margin-bottom:16px}
  .list li{display:flex;gap:10px;font-size:14px;line-height:1.4;color:#334155}
  .list li:before{content:"✓";flex:none;width:20px;height:20px;border-radius:50%;background:#eef2ff;color:var(--brand);font-weight:800;font-size:12px;display:grid;place-items:center}
  form{display:grid;gap:10px}
  label{font-size:12px;font-weight:700;color:var(--muted)}
  input{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:10px;font-family:inherit;font-weight:500;font-size:15px;outline:none;transition:border .2s}
  input:focus{border-color:var(--brand)}
  .cta{width:100%;padding:14px;border:0;border-radius:10px;cursor:pointer;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-family:inherit;font-weight:800;font-size:15px;box-shadow:0 8px 20px rgba(79,70,229,.35)}
  .cta:disabled{opacity:.6;cursor:wait}
  .skip{background:none;border:0;color:var(--muted);font-family:inherit;font-size:13px;text-decoration:underline;cursor:pointer;margin-top:4px}
  .fine{font-size:11px;color:var(--muted);text-align:center}
  .err{font-size:13px;color:#b91c1c;display:none}
  .done{display:none;text-align:center;gap:14px;flex-direction:column;align-items:center}
  .done .check{width:64px;height:64px;border-radius:50%;background:#dcfce7;color:var(--ok);display:grid;place-items:center;font-size:32px;font-weight:800}
  .done h3{font-size:20px;font-weight:800}
  .done p{font-size:14px;color:#475569;line-height:1.5}
  .signed .signup{display:none}
  .signed .done{display:flex}

  /* Guide preview */
  .guide{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.6);display:none;align-items:center;justify-content:center;padding:16px}
  .guide.show{display:flex}
  .sheet{background:#fff;border-radius:16px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;padding:28px;position:relative}
  .sheet h3{font-size:22px;font-weight:800;margin-bottom:4px}
  .sheet .sub{color:var(--muted);font-size:13px;margin-bottom:18px}
  .sheet ol{list-style:none;counter-reset:t;display:grid;gap:12px}
  .sheet li{counter-increment:t;display:flex;gap:12px;font-size:14px;line-height:1.45;color:#334155}
  .sheet li:before{content:counter(t);flex:none;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-weight:800;font-size:13px;display:grid;place-items:center}
  .sheet li b{color:var(--ink)}
  .sheet .x{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:0;background:#f1f5f9;font-size:20px;cursor:pointer}
  .mock{margin-top:18px;padding:10px 12px;border-radius:8px;background:#fef9c3;color:#713f12;font-size:12px}

  @media (max-width:640px){
    .bubble{right:14px;bottom:14px}
    .bubble small{display:none}
    .hero{padding:26px 20px 20px}.body{padding:18px 20px 20px}
    .hero h2{font-size:20px}
  }