* {
  box-sizing:border-box}

html {
  scroll-behavior:smooth}

body {
  margin:0;
  background:#fff8fb;
  color:#171717;
  font-family:Arial,sans-serif}

a {
  color:inherit}

.top {
  padding:24px 6vw;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid color-mix(in srgb,#171717 18%,transparent)}

.logo {
  font-weight:900;
  letter-spacing:.12em}

.top a,
.button {
  text-decoration:none;
  border:1px solid currentColor;
  padding:12px 20px;
  border-radius:18px}

.hero {
  min-height:78vh;
  padding:9vw 7vw;
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:5vw;
  align-items:center;
  overflow:hidden}

.tag {
  color:#d83274;
  font-weight:900;
  letter-spacing:.2em;
  font-size:.75rem}

.hero h1 {
  font-size:clamp(3.5rem,8.7vw,8rem);
  line-height:.88;
  letter-spacing:-.055em;
  margin:.2em 0}

.hero p {
  font:1.2rem/1.65 Arial;
  max-width:620px}

.button {
  display:inline-block;
  background:#d83274;
  color:#111;
  border-color:#d83274;
  font:bold 1rem Arial;
  margin-top:20px}

.visual {
  aspect-ratio:4/5;
  border-radius:18px;
  background:linear-gradient(145deg,color-mix(in srgb,#d83274 92%,white),color-mix(in srgb,#d83274 28%,transparent));
  display:grid;
  place-items:center;
  transform:rotate(3deg);
  box-shadow:25px 30px 0 color-mix(in srgb,#171717 8%,transparent)}

.visual span {
  font:900 clamp(5rem,13vw,12rem) Arial;
  opacity:.25}

.proof {
  display:flex;
  gap:24px;
  align-items:center;
  margin-top:32px;
  font:1rem Arial}

.proof b {
  font-size:1.7rem;
  color:#d83274}

.section {
  padding:90px 7vw}

.section h2 {
  font-size:clamp(2.5rem,5vw,5rem);
  max-width:850px;
  margin:.15em 0 .7em;
  letter-spacing:-.04em}

.services {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px}

.services article {
  padding:32px;
  border:1px solid color-mix(in srgb,#171717 20%,transparent);
  border-radius:18px;
  min-height:220px;
  background:color-mix(in srgb,#171717 4%,transparent)}

.services i {
  font:700 1rem Arial;
  color:#d83274}

.services h3 {
  font-size:1.5rem;
  margin-top:50px}

.services p {
  font:1rem/1.55 Arial;
  opacity:.72}

.story {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center}

.storybox {
  min-height:430px;
  border-radius:18px;
  background:repeating-linear-gradient(45deg,color-mix(in srgb,#d83274 55%,transparent),color-mix(in srgb,#d83274 55%,transparent) 20px,transparent 20px,transparent 40px);
  display:grid;
  place-items:center;
  text-align:center;
  padding:30px}

.storybox b {
  font:700 1.2rem Arial;
  max-width:280px}

.quote {
  font-size:clamp(2rem,4vw,4rem);
  line-height:1.15}

.contact {
  margin:40px 7vw 80px;
  padding:55px;
  border-radius:18px;
  background:#d83274;
  color:#111;
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:30px}

.contact h2 {
  font-size:clamp(2.4rem,5vw,5rem);
  margin:.1em 0}

.contact a {
  font:bold 1.1rem Arial}

.legal {
  padding:25px 7vw;
  font:12px Arial;
  opacity:.65}

@media(max-width:760px) {
  .hero,
.story,
.contact,
.services {
  grid-template-columns:1fr}

.hero {
  padding-top:70px}

.visual {
  max-height:460px}

.services article {
  min-height:180px}

.top span {
  display:none}
}

/* Animazioni progressive */
.js .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s ease, transform .7s ease;
}

.js .reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Variante No Secrets: beauty magazine */
.hero { grid-template-columns: 1.15fr .85fr; }
.hero h1 { text-transform: uppercase; }
.visual { border-radius: 50% 50% 10px 10px; }
.services article:nth-child(2) { background: #d83274; color: white; }
