
:root{
  --bg:#F4F3FA;
  --ink:#1C1740;
  --muted:#5B5876;
  --violet:#5A3CF0;
  --violet-dark:#4526D6;
  --lilac:#E4DDFF;
  --peach:#FFD8C2;
  --white:#FFFFFF;
  --line:#D8D3EE;
  --display:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);line-height:1.05;letter-spacing:-.02em;margin:0}
p{margin:0}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:6px}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}
section{padding:clamp(64px,9vw,112px) 0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 1rem/1 var(--body);padding:1rem 1.6rem;border-radius:999px;border:2px solid transparent;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn-primary{background:var(--violet);color:#fff}
.btn-primary:hover{background:var(--violet-dark)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:#fff}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:rgba(244,243,250,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.logo{font-family:var(--display);font-weight:800;font-size:1.3rem;text-decoration:none;letter-spacing:-.02em;display:flex;align-items:center;gap:.6rem}
.logo i{width:26px;height:26px;border-radius:7px;background:var(--ink);display:grid;place-items:center}
.logo i svg{width:16px;height:16px;color:#fff}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;font-weight:500;color:var(--muted)}
.nav ul a:hover{color:var(--ink)}
.nav .btn{padding:.75rem 1.2rem;font-size:.95rem}
@media (max-width:820px){.nav ul{display:none}}

/* hero */
.hero{padding-top:clamp(40px,6vw,80px)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{font-size:clamp(2.6rem,6.2vw,4.8rem);font-weight:800}
.hero .lead{margin-top:24px;font-size:1.2rem;color:var(--muted);max-width:34em}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero .facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin:28px 0 0;padding:0;list-style:none;color:var(--muted);font-size:.98rem}
.hero .facts li{display:flex;align-items:center;gap:8px}
.hero .facts svg{width:18px;height:18px;color:var(--violet);flex:none}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr}}

.stage{position:relative;background:var(--lilac);border-radius:36px;aspect-ratio:1/1.02;display:grid;place-items:center;overflow:hidden}
.tent{position:relative;width:64%;background:#fff;border-radius:22px 22px 10px 10px;padding:22px 22px 18px;text-align:center;transform:rotate(-3deg);box-shadow:0 2px 0 var(--line),0 24px 40px -18px rgba(28,23,64,.35)}
.tent::after{content:"";position:absolute;left:8%;right:8%;bottom:-14px;height:14px;background:#CFC6F7;border-radius:0 0 14px 14px;z-index:-1}
.tent small{display:block;font-weight:600;color:var(--muted);font-size:.8rem;margin-top:12px}
.tent b{display:block;font-family:var(--display);font-size:1.25rem;line-height:1.1;letter-spacing:-.01em;margin-bottom:14px}
.qr-box{position:relative;overflow:hidden;border-radius:10px;background:#fff;color:var(--ink)}
.qr-box svg{width:100%;height:auto;display:block}
.beam{position:absolute;left:0;right:0;top:0;height:14%;background:linear-gradient(to bottom,rgba(90,60,240,0),rgba(90,60,240,.28));border-bottom:2px solid var(--violet);animation:scan 3.2s ease-in-out infinite}
@keyframes scan{0%{transform:translateY(-100%)}100%{transform:translateY(720%)}}
.sticker{position:absolute;display:grid;place-items:center;text-align:center;font-family:var(--display);font-weight:800;line-height:1;letter-spacing:-.01em}
.sticker.round{width:31%;aspect-ratio:1;border-radius:50%;background:var(--peach);right:6%;bottom:8%;transform:rotate(9deg);font-size:clamp(.8rem,1.6vw,1.1rem);box-shadow:0 14px 24px -12px rgba(28,23,64,.4)}
.sticker.round svg{width:46%;margin-bottom:6px}
.sticker.round span{display:block}
.sticker.sq{width:22%;aspect-ratio:1;border-radius:18px;background:var(--ink);color:#fff;left:7%;top:8%;transform:rotate(-8deg);padding:8px}
.sticker.sq svg{width:100%;color:#fff}
@media (prefers-reduced-motion:reduce){.beam{animation:none;display:none}html{scroll-behavior:auto}}

/* section heads */
.head{max-width:40rem;margin-bottom:clamp(32px,5vw,56px)}
.head h2{font-size:clamp(2rem,4.4vw,3.2rem);font-weight:800}
.head p{margin-top:16px;color:var(--muted);font-size:1.125rem}

/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--ink)}
.step{padding:28px 28px 8px 0}
.step + .step{padding-left:28px;border-left:1px solid var(--line)}
.step .n{font-family:var(--display);font-weight:800;font-size:.95rem;color:var(--violet)}
.step h3{font-size:1.55rem;margin:10px 0 10px;font-weight:700}
.step p{color:var(--muted)}
.who{display:inline-block;background:var(--lilac);border-radius:999px;padding:.2rem .75rem;font-size:.85rem;font-weight:600;margin-top:16px}
@media (max-width:820px){.steps{grid-template-columns:1fr}.step,.step + .step{padding:24px 0 8px;border-left:0}.step + .step{border-top:1px solid var(--line)}}

/* kit */
.kit{background:var(--ink);color:#fff;border-radius:44px;margin-inline:12px;padding-inline:0}
.kit .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.kit .head p{color:#C9C4E8}
.kit .head{margin-bottom:28px}
.kit ul.list{list-style:none;padding:0;margin:0 0 32px;display:grid;gap:22px}
.kit li{display:grid;grid-template-columns:44px 1fr;gap:16px}
.kit li .ic{width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.1);display:grid;place-items:center}
.kit li .ic svg{width:22px;height:22px;color:var(--peach)}
.kit li h3{font-size:1.2rem;font-weight:700;margin-bottom:4px}
.kit li p{color:#C9C4E8;font-size:1rem}
.kit .btn-primary{background:var(--peach);color:var(--ink)}
.kit .btn-primary:hover{background:#fff}
.kit-visual{position:relative;background:#2A2357;border-radius:32px;aspect-ratio:1/1;padding:8%}
.kit-visual .tent{position:absolute;width:44%;left:9%;bottom:14%;transform:rotate(-2deg);color:var(--ink)}
.kit-visual .tent b{font-size:1rem}
.kit-visual .tent small{font-size:.7rem}
.kit-visual .tent{padding:16px 16px 14px}
.kit-visual .tent::after{background:#4a3f8f}
.wall{position:absolute;right:7%;top:7%;width:40%;aspect-ratio:1;display:grid;place-items:center}
.kit-visual .s1,.kit-visual .s2,.kit-visual .s3{position:absolute;display:grid;place-items:center;color:var(--ink);box-shadow:0 12px 22px -10px rgba(0,0,0,.5)}
.kit-visual .s1{width:64%;aspect-ratio:1;border-radius:50%;background:var(--peach);right:0;top:0;transform:rotate(10deg);padding:14%}
.kit-visual .s2{width:44%;aspect-ratio:1;border-radius:16px;background:#fff;right:34%;top:50%;transform:rotate(-9deg);padding:10%}
.kit-visual .s3{width:40%;aspect-ratio:1;border-radius:50%;background:var(--lilac);right:-6%;top:62%;transform:rotate(4deg);padding:12%}
.kit-visual svg.qr{width:100%;height:auto}
.tag{position:absolute;left:8%;top:8%;background:#fff;color:var(--ink);font-weight:700;font-size:.85rem;border-radius:999px;padding:.4rem .9rem}
@media (max-width:900px){.kit .wrap{grid-template-columns:1fr}.kit{border-radius:32px}}

/* pricing */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.plan{background:#fff;border:1px solid var(--line);border-radius:28px;padding:32px 28px;display:flex;flex-direction:column}
.plan h3{font-size:1.5rem;font-weight:800}
.plan .for{color:var(--muted);font-size:.98rem;margin-top:6px;min-height:3em}
.price{font-family:var(--display);font-weight:800;font-size:3.4rem;letter-spacing:-.03em;margin:22px 0 4px;line-height:1}
.price span{font-size:1.5rem;margin-left:2px}
.once{color:var(--muted);font-size:.9rem}
.plan ul{list-style:none;padding:0;margin:24px 0 28px;display:grid;gap:12px;border-top:1px solid var(--line);padding-top:22px}
.plan li{display:grid;grid-template-columns:22px 1fr;gap:10px}
.plan li svg{width:20px;height:20px;color:var(--violet);margin-top:2px}
.plan .btn{margin-top:auto}
.plan.best{background:var(--violet);color:#fff;border-color:var(--violet);transform:translateY(-14px);padding-bottom:40px}
.plan.best .for,.plan.best .once{color:#DCD4FF}
.plan.best ul{border-color:rgba(255,255,255,.28)}
.plan.best li svg{color:var(--peach)}
.plan.best .btn{background:#fff;color:var(--ink)}
.plan.best .btn:hover{background:var(--peach)}
.badge{align-self:flex-start;background:var(--peach);color:var(--ink);font-weight:700;font-size:.82rem;border-radius:999px;padding:.3rem .8rem;margin-bottom:14px}
.plan:not(.best) .btn{border-color:var(--ink)}
.addon{margin-top:28px;background:var(--peach);border-radius:24px;padding:26px 30px;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between}
.addon h3{font-size:1.35rem;font-weight:800}
.addon p{color:#4b3a35;max-width:38em;margin-top:4px}
@media (max-width:900px){.plans{grid-template-columns:1fr}.plan.best{transform:none}}

/* faq */
.faq{max-width:46rem}
details{border-bottom:1px solid var(--line)}
details:first-of-type{border-top:2px solid var(--ink)}
summary{list-style:none;cursor:pointer;padding:22px 0;font-family:var(--display);font-weight:700;font-size:1.3rem;letter-spacing:-.01em;display:flex;justify-content:space-between;gap:16px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.6rem;color:var(--violet);transition:transform .2s;flex:none}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 0 24px;color:var(--muted);max-width:38em}

/* form */
.request{background:#fff;border-radius:40px;margin-inline:12px}
.request .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,72px)}
.request .head{margin-bottom:0}
.recap{margin-top:28px;display:grid;gap:12px;color:var(--muted);font-size:1rem}
.recap div{display:flex;gap:10px;align-items:flex-start}
.recap svg{width:20px;height:20px;color:var(--violet);flex:none;margin-top:3px}
form{display:grid;gap:18px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label,.legend{font-weight:600;font-size:.95rem;display:block;margin-bottom:6px}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=number],textarea{width:100%;font:inherit;padding:.9rem 1rem;border:1.5px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink)}
input:focus,textarea:focus{outline:3px solid var(--violet);outline-offset:0;border-color:var(--violet)}
textarea{min-height:104px;resize:vertical}
fieldset{border:0;padding:0;margin:0}
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.choice{position:relative}
.choice input{position:absolute;opacity:0}
.choice span{display:block;border:1.5px solid var(--line);border-radius:16px;padding:14px;background:var(--bg);cursor:pointer;height:100%}
.choice span b{display:block;font-family:var(--display);font-size:1.05rem}
.choice span em{font-style:normal;color:var(--muted);font-size:.9rem}
.choice input:checked + span{border-color:var(--violet);background:var(--lilac);box-shadow:0 0 0 1.5px var(--violet)}
.choice input:focus-visible + span{outline:3px solid var(--violet);outline-offset:2px}
.checks{display:grid;gap:10px}
.check{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start;border:1.5px solid var(--line);border-radius:16px;padding:14px;background:var(--bg);cursor:pointer;font-weight:500;margin:0}
.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--violet)}
.check b{display:block;font-weight:700}
.check small{color:var(--muted);font-size:.9rem}
.delivery[hidden]{display:none}
.delivery{display:grid;gap:18px;background:var(--lilac);border-radius:20px;padding:20px}
.consent{display:grid;grid-template-columns:22px 1fr;gap:12px;font-weight:400;font-size:.95rem;color:var(--muted);align-items:start}
.consent input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--violet)}
.note{font-size:.92rem;color:var(--muted)}
.status{padding:16px 18px;border-radius:16px;font-weight:600;display:none}
.status.ok{display:block;background:#DFF5E6;color:#14532D}
.status.err{display:block;background:#FDE2E2;color:#7F1D1D}
@media (max-width:900px){.request .wrap{grid-template-columns:1fr}.row,.choices{grid-template-columns:1fr}}

/* Gift line in plans */
.plan li.gift{font-weight:600}
.plan.best li.gift{color:#fff}

/* Stands section */
.stands{background:#fff;border:1px solid var(--line);border-radius:36px;padding:clamp(28px,5vw,56px);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center}
.stands h2{font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:800;margin-bottom:16px}
.lead2{color:var(--muted);font-size:1.08rem;max-width:34em}
.lead2 + .lead2{margin-top:12px}
.lead2 b{color:var(--ink)}
.stands-pick{background:var(--lilac);border-radius:28px;padding:28px;display:grid;gap:18px}
.stepper{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:20px;padding:8px}
.stepper button{width:56px;height:56px;border-radius:14px;border:0;background:var(--ink);color:#fff;font:700 1.6rem/1 var(--body);cursor:pointer}
.stepper button:hover{background:var(--violet)}
.stepper output{font-family:var(--display);font-weight:800;font-size:2.6rem;letter-spacing:-.02em}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{border:1.5px solid var(--ink);background:transparent;color:var(--ink);border-radius:999px;padding:.5rem 1rem;font:600 .95rem var(--body);cursor:pointer}
.chips button:hover{background:var(--ink);color:#fff}
.st-total{font-weight:600;min-height:1.6em}
@media (max-width:900px){.stands{grid-template-columns:1fr}}

/* Summary */
.summary{background:var(--bg);border-radius:16px;padding:16px 18px;line-height:1.5}
.summary:empty{display:none}

footer{padding:40px 0 56px;color:var(--muted);font-size:.95rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}
footer a{text-decoration:none;font-weight:600;color:var(--ink)}

[hidden]{display:none!important}.btn:disabled{opacity:.65;cursor:wait}.status a{color:inherit}.nav .logo{flex-shrink:0}.plan[data-selected=true]{outline:3px solid var(--ink);outline-offset:4px}@media(max-width:380px){.nav .wrap{gap:8px}.nav .logo{font-size:1.05rem}.nav .btn{font-size:.85rem;padding:.75rem .8rem}.tent b{font-size:1rem}}
