:root{--purple:#5b2a86;--purple2:#7b3fb0;--orange:#f39a1e;--sun:#fcc52f;--teal:#16969b;--green:#6ab42d;--pink:#e8336b;--ink:#2b2340;--muted:#5f5872;--bg:#fffaf2;--card:#fff;--r:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Nunito","Segoe UI",system-ui,-apple-system,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6}
img{max-width:100%;display:block}a{color:var(--purple2)}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.topbar{background:var(--purple);color:#fff;font-size:.9rem}.topbar .wrap{display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap;padding:6px 20px}.topbar a{color:#fff;text-decoration:none}
header.nav{position:sticky;top:0;z-index:10;background:#fff;box-shadow:0 2px 12px rgba(60,30,90,.08)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand img{width:54px;height:auto}
.brand b{font-size:1.35rem;color:var(--purple);font-weight:800;letter-spacing:.2px}.brand b span{color:var(--orange)}
.brand small{display:block;font-size:.72rem;color:var(--teal);font-weight:700;letter-spacing:1px;text-transform:uppercase}
nav ul{list-style:none;display:flex;gap:18px;margin:0;padding:0}nav a{text-decoration:none;color:var(--ink);font-weight:700}nav a:hover{color:var(--orange)}
.menu-btn{display:none;background:none;border:2px solid var(--purple);border-radius:8px;padding:6px 10px;font-weight:800;color:var(--purple)}
.btn{display:inline-block;padding:13px 24px;border-radius:999px;font-weight:800;text-decoration:none;border:0;cursor:pointer;font-size:1rem}
.btn-orange{background:var(--orange);color:#fff}.btn-orange:hover{background:#e0860b}
.btn-outline{border:2px solid #fff;color:#fff}.btn-purple{background:var(--purple);color:#fff}
.hero{background:linear-gradient(135deg,var(--purple) 0%,var(--purple2) 55%,var(--teal) 100%);color:#fff;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:center;padding:70px 20px}
.pill{display:inline-block;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);padding:5px 14px;border-radius:999px;font-size:.88rem;font-weight:700}
.hero h1{font-size:clamp(2rem,4.6vw,3.3rem);line-height:1.15;margin:16px 0}.hero h1 em{font-style:normal;color:var(--sun)}
.hero p{font-size:1.12rem;max-width:560px;opacity:.95}.hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.hero-art{background:#fff;border-radius:50%;padding:34px;box-shadow:0 20px 50px rgba(0,0,0,.25);max-width:380px;justify-self:center}
section{padding:70px 0}.sec-title{text-align:center;max-width:720px;margin:0 auto 40px}
.sec-title h2{font-size:clamp(1.6rem,3vw,2.3rem);color:var(--purple);margin:0 0 8px}.sec-title p{color:var(--muted);margin:0}
.kicker{color:var(--orange);font-weight:800;text-transform:uppercase;letter-spacing:1.5px;font-size:.82rem}
.grid{display:grid;gap:20px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:1fr 1fr}
.card{background:var(--card);border-radius:var(--r);padding:22px;box-shadow:0 6px 22px rgba(60,30,90,.07);border-top:5px solid var(--c,var(--purple))}
.card .code{font-size:.75rem;font-weight:800;color:var(--c,var(--purple));letter-spacing:1px}.card h3{margin:4px 0 6px;font-size:1.04rem;line-height:1.3}.card p{margin:0;color:var(--muted);font-size:.94rem}
.card:nth-child(4n+1){--c:var(--purple2)}.card:nth-child(4n+2){--c:var(--orange)}.card:nth-child(4n+3){--c:var(--teal)}.card:nth-child(4n+4){--c:var(--green)}
.alt{background:#fff}
.about{grid-template-columns:1fr 1fr;align-items:center}.about ul{padding-left:0;list-style:none}.about li{padding:6px 0 6px 30px;position:relative}.about li:before{content:"☀";position:absolute;left:0;color:var(--orange)}
.notice{background:#fff4dc;border-left:5px solid var(--orange);padding:14px 18px;border-radius:10px;font-size:.95rem}
.tags{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.tag{background:#fff;border:2px solid var(--teal);color:var(--teal);padding:8px 16px;border-radius:999px;font-weight:700}
.tag.age{border-color:var(--orange);color:#b86a00}
form{background:#fff;border-radius:var(--r);padding:26px;box-shadow:0 6px 22px rgba(60,30,90,.08)}
form h3{margin-top:0;color:var(--purple)}label{display:block;font-weight:700;margin:12px 0 4px;font-size:.93rem}
input,select,textarea{width:100%;padding:11px 12px;border:1.5px solid #d8d0e6;border-radius:10px;font:inherit;background:#fdfcff}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(243,154,30,.35);border-color:var(--orange)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choices{display:flex;flex-wrap:wrap;gap:6px 18px}.choices label{font-weight:500;display:flex;gap:6px;align-items:center;margin:4px 0}.choices input{width:auto}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;max-height:none}.checks label{font-weight:500;display:flex;gap:8px;align-items:flex-start;margin:3px 0;font-size:.88rem}.checks input{width:auto;margin-top:5px}
form .btn{margin-top:18px;width:100%}.fine{font-size:.8rem;color:var(--muted)}
.review{background:linear-gradient(135deg,var(--orange),var(--sun));color:#3a2200;text-align:center;border-radius:var(--r);padding:40px 24px}.review h2{margin:0 0 8px}.stars{font-size:2rem;letter-spacing:4px}
footer{background:#2a1740;color:#e9e2f5;padding:50px 0 20px;font-size:.93rem}footer a{color:#fff}footer h4{color:var(--sun);margin:0 0 10px}
.foot{grid-template-columns:1.3fr 1fr 1fr}.ack{border-top:1px solid rgba(255,255,255,.15);margin-top:30px;padding-top:18px;font-size:.85rem;opacity:.9}
@media(max-width:900px){.g4{grid-template-columns:1fr 1fr}.g3,.foot{grid-template-columns:1fr 1fr}.hero .wrap,.about,.g2{grid-template-columns:1fr}.hero-art{max-width:240px;order:-1}
nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;padding:12px 20px;box-shadow:0 8px 16px rgba(0,0,0,.08)}nav ul.open{display:flex}.menu-btn{display:block}.nav-call{display:none}}
@media(max-width:560px){.g4,.g3,.foot,.row,.checks{grid-template-columns:1fr}section{padding:50px 0}.hero .wrap{padding:40px 20px}}
