
:root{
  --bg:#f1f4ff;
  --bg-deep:#e6ecfb;
  --ink:#16202e;
  --muted:#5d6b82;
  --mint:#5fc4ae;
  --mint-deep:#3aa48d;
  --blue:#8fb7e8;
  --blue-deep:#5d8fd0;
  --coral:#f4a698;
  --card:#ffffff;
  --line:#dbe3f2;
  --shadow:0 18px 45px rgba(60,84,130,.14);
  --radius:24px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Manrope",-apple-system,"Segoe UI",sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
}
h1,h2,h3,.display{font-family:"Space Grotesk",-apple-system,"Segoe UI",sans-serif;line-height:1.12;letter-spacing:-.01em}
img{display:block;max-width:100%}
section{position:relative}
.wrap{width:min(1180px,92%);margin:0 auto}

/* announce bar */
.announce{
  background:var(--ink);
  color:#eef3ff;
  text-align:center;
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  padding:.7rem 1rem;
  font-weight:700;
}

/* hero */
.hero{
  padding:4.5rem 0 5.5rem;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  top:-140px;right:-120px;
  width:420px;height:420px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(143,183,232,.55),rgba(143,183,232,0) 70%);
  z-index:0;
}
.hero::after{
  content:"";
  position:absolute;
  bottom:-160px;left:-140px;
  width:480px;height:480px;
  border-radius:50%;
  background:radial-gradient(circle at 60% 60%,rgba(95,196,174,.4),rgba(95,196,174,0) 70%);
  z-index:0;
}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.eyebrow{
  display:inline-block;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--mint-deep);
  background:rgba(95,196,174,.14);
  padding:.5rem 1rem;
  border-radius:999px;
  margin-bottom:1.4rem;
}
.hero h1{font-size:clamp(2.3rem,5.2vw,4rem);font-weight:700;margin-bottom:1.2rem}
.hero h1 .wave{color:var(--mint-deep);position:relative;display:inline-block}
.hero h1 .wave::after{
  content:"";position:absolute;left:0;right:0;bottom:.06em;height:.16em;
  background:var(--coral);opacity:.55;border-radius:99px;
}
.hero p.lead{font-size:1.08rem;color:var(--muted);max-width:34em;margin-bottom:1.9rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{
  font-size:.82rem;font-weight:700;color:var(--ink);
  background:var(--card);border:1px solid var(--line);
  padding:.5rem 1rem;border-radius:999px;box-shadow:0 6px 16px rgba(60,84,130,.08);
}
.chip b{color:var(--mint-deep)}

/* hero visual collage */
.visual{position:relative;min-height:420px}
.hero-card{
  position:absolute;background:var(--card);border-radius:var(--radius);
  padding:.8rem;box-shadow:var(--shadow);
}
.hero-card img{border-radius:calc(var(--radius) - 10px);width:100%;height:100%;object-fit:cover}
.hc-main{width:72%;top:2%;left:6%;aspect-ratio:1/1;z-index:2;transform:rotate(-2deg)}
.hc-side1{width:40%;right:4%;top:0;aspect-ratio:1/1;z-index:3;transform:rotate(3deg)}
.hc-side2{width:34%;right:10%;bottom:0;aspect-ratio:1/1;z-index:1;transform:rotate(-4deg)}
.visual .stamp{
  position:absolute;z-index:4;width:96px;height:96px;border-radius:50%;
  display:grid;place-items:center;text-align:center;
  font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;box-shadow:var(--shadow);
}
.stamp-mint{background:var(--mint);left:-6%;bottom:16%;transform:rotate(-8deg)}
.stamp-blue{background:var(--blue-deep);right:-4%;top:34%;transform:rotate(6deg)}

/* ticker */
.ticker{
  background:var(--ink);color:#eef3ff;overflow:hidden;padding:.9rem 0;white-space:nowrap;
}
.ticker-track{display:inline-block;animation:tick 26s linear infinite}
.ticker span{font-family:"Space Grotesk",sans-serif;font-size:.9rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin:0 1.4rem}
.ticker span i{color:var(--mint);font-style:normal;margin-right:2.8rem}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* features */
.features{padding:5.5rem 0 4rem}
.sec-head{margin-bottom:2.6rem}
.sec-head .kicker{
  font-size:.74rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--blue-deep);margin-bottom:.6rem;
}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:700}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.fcard{
  background:var(--card);border:1px solid var(--line);border-radius:20px;
  padding:1.6rem 1.4rem;box-shadow:0 10px 26px rgba(60,84,130,.08);
  transition:transform .35s ease, box-shadow .35s ease;
}
.fcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.fcard .ico{
  width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:1rem;
}
.ico-mint{background:rgba(95,196,174,.16);color:var(--mint-deep)}
.ico-blue{background:rgba(143,183,232,.2);color:var(--blue-deep)}
.ico-coral{background:rgba(244,166,152,.2);color:#d97a67}
.ico-ink{background:rgba(22,32,46,.08);color:var(--ink)}
.fcard h3{font-size:1.05rem;font-weight:700;margin-bottom:.45rem}
.fcard p{font-size:.9rem;color:var(--muted)}

/* gallery */
.gallery{padding:4rem 0 5.5rem}
.gallery .sec-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.gallery .note{color:var(--muted);font-size:.92rem;max-width:30em}
.masonry{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.shot{
  background:var(--card);border-radius:18px;padding:.55rem;box-shadow:0 10px 26px rgba(60,84,130,.08);
  border:1px solid var(--line);
}
.shot img{border-radius:13px;aspect-ratio:1/1;width:100%;object-fit:cover;transition:transform .45s ease}
.shot:hover img{transform:scale(1.045)}
.shot.tall img{aspect-ratio:4/5}
.shot.wide img{aspect-ratio:5/4}

/* split specs */
.split{
  background:linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%);
  padding:5rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.split .wrap{display:grid;grid-template-columns:.92fr 1.08fr;gap:3.2rem;align-items:center}
.split .shot{padding:.7rem}
.specs h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;margin-bottom:1.2rem}
.specs p{color:var(--muted);margin-bottom:1.6rem;max-width:34em}
.spec-list{list-style:none;display:grid;gap:.85rem}
.spec-list li{
  display:flex;gap:.9rem;align-items:flex-start;background:var(--card);
  border:1px solid var(--line);border-radius:14px;padding:.95rem 1.1rem;
}
.spec-list .n{
  font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:.78rem;color:var(--mint-deep);
  background:rgba(95,196,174,.14);border-radius:9px;padding:.3rem .55rem;white-space:nowrap;margin-top:.1rem;
}
.spec-list b{display:block;font-size:.95rem}
.spec-list span{font-size:.88rem;color:var(--muted)}

/* love */
.love{padding:5.5rem 0}
.love .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.steps{display:grid;gap:1.1rem;counter-reset:step}
.step{
  position:relative;background:var(--card);border:1px solid var(--line);border-radius:18px;
  padding:1.4rem 1.5rem 1.4rem 4.6rem;box-shadow:0 10px 26px rgba(60,84,130,.07);
}
.step::before{
  counter-increment:step;content:"0" counter(step);
  position:absolute;left:1.3rem;top:1.3rem;
  font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:1.15rem;color:var(--blue-deep);
  background:rgba(143,183,232,.18);border-radius:12px;padding:.35rem .6rem;
}
.step h3{font-size:1.08rem;font-weight:700;margin-bottom:.3rem}
.step p{font-size:.92rem;color:var(--muted)}
.love .shot{transform:rotate(2deg)}

/* faq */
.faq{padding:5rem 0 5.5rem;background:var(--bg-deep);border-top:1px solid var(--line)}
.faq .wrap{max-width:820px}
.faq .sec-head{text-align:center}
details{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  margin-bottom:.85rem;box-shadow:0 8px 20px rgba(60,84,130,.07);
}
summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.15rem 1.4rem;font-weight:700;font-size:.98rem;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:"+";font-family:"Space Grotesk",sans-serif;font-size:1.25rem;color:var(--mint-deep);
  transition:transform .3s ease;flex-shrink:0;
}
details[open] summary::after{transform:rotate(45deg)}
details .a{padding:0 1.4rem 1.2rem;color:var(--muted);font-size:.94rem}
details .a b{color:var(--ink)}

/* closing */
.closing{padding:5.5rem 0;text-align:center;overflow:hidden}
.closing h2{font-size:clamp(1.8rem,4vw,3rem);font-weight:700;margin-bottom:.8rem}
.closing p{color:var(--muted);max-width:30em;margin:0 auto 2.4rem}
.closing .shot{max-width:420px;margin:0 auto;transform:rotate(-2deg)}

footer{
  background:var(--ink);color:#aebad4;text-align:center;
  padding:1.6rem 1rem;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.on{opacity:1;transform:none}

/* responsive */
@media (max-width:960px){
  .hero .wrap{grid-template-columns:1fr;gap:2.6rem}
  .visual{min-height:400px;max-width:520px;margin:0 auto;width:100%}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .masonry{grid-template-columns:repeat(3,1fr)}
  .split .wrap{grid-template-columns:1fr;gap:2.4rem}
  .love .wrap{grid-template-columns:1fr;gap:2.4rem}
  .love .shot{max-width:420px;margin:0 auto}
}
@media (max-width:560px){
  .hero{padding:3rem 0 4rem}
  .visual{min-height:330px}
  .grid-4{grid-template-columns:1fr}
  .masonry{grid-template-columns:repeat(2,1fr);gap:.7rem}
  .sec-head h2{font-size:1.6rem}
  .stamp{width:76px;height:76px;font-size:.62rem}
}
