#beauty-intro {
  --gold: #e6c07b;
  position: fixed;
  inset: 0;
  margin: 0;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  padding: 0;
  border: 0;
  overflow: hidden;
  background: radial-gradient(
    ellipse at 24% 52%,
    #665037 0,
    #2a2520 33%,
    #121311 75%
  );
  color: #f8f0e4;
  isolation: isolate;
}
#beauty-intro::backdrop {
  background: #121311;
}
body.intro-active {
  overflow: hidden;
}
.intro-skip {
  position: absolute;
  right: 4%;
  top: 28px;
  z-index: 12;
  color: #f4e8d5;
  background: #16181590;
  border: 1px solid #b8a48266;
  border-radius: 30px;
  font-size: 13px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.intro-skip span {
  font-size: 22px;
  line-height: 1;
}
.intro-brand {
  position: absolute;
  top: 30px;
  left: 5%;
  font: 20px var(--serif);
  letter-spacing: 3px;
  z-index: 5;
}
.intro-brand span {
  display: block;
  font:
    9px Manrope,
    sans-serif;
  letter-spacing: 3px;
  color: #ccb99b;
  margin-top: 8px;
}
.intro-welcome {
  position: absolute;
  inset: 115px 12% 85px;
  max-width: 1120px;
  margin: auto;
  display: grid;
  grid-template-columns: 0.85fr 1fr;
  align-items: center;
  gap: 8%;
  perspective: 1200px;
}
.intro-portrait {
  position: relative;
  height: min(64vh, 650px);
  transform: rotate(-4deg);
  box-shadow: 0 50px 90px -30px #000, 28px 36px 70px -20px #000c, 0 0 110px -20px rgba(230, 192, 123, 0.28), 0 0 0 1px rgba(230, 192, 123, 0.18);
  animation: portrait-arrive 1.2s cubic-bezier(0.2, 0.7, 0.2, 1) both;
  border: 1px solid #e2c69b55;
}
.intro-portrait:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 58%, #141511dd);
  pointer-events: none;
}
.intro-portrait img {
  object-position: center 30%;
}
.portrait-caption {
  position: absolute;
  bottom: 28px;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 9px;
  letter-spacing: 2px;
  z-index: 1;
}
.intro-copy {
  z-index: 3;
  animation: intro-copy-in 1s 0.25s both;
}
.intro-kicker {
  font-size: 10px;
  letter-spacing: 2.4px;
  color: var(--gold);
}
.intro-copy h2 {
  font-size: clamp(48px, 5.6vw, 86px);
  line-height: 1.02;
  margin: 23px 0;
  letter-spacing: -1px;
}
.intro-copy h2 em {
  color: var(--gold);
}
.intro-copy p {
  font-size: 16px;
  color: #d4c7b5;
  line-height: 1.9;
}
.intro-copy button {
  display: block;
  padding: 15px 28px;
  background: #e6c07b;
  color: #211a13;
  font-size: 14px;
  margin-top: 30px;
  box-shadow: 0 0 40px #e6c07b1a;
  transition:
    background 0.2s,
    transform 0.2s;
}
.intro-copy button:hover {
  background: #f7dba8;
  transform: translateY(-3px);
}
.intro-signature {
  display: block;
  font: italic 34px var(--serif);
  color: #c5ad8c;
  margin-top: 25px;
}
.intro-floating-label {
  position: absolute;
  padding: 15px 24px;
  border: 1px solid #e7d5b647;
  background: #d7c0990c;
  font-size: 10px;
  letter-spacing: 2px;
  box-shadow: 0 18px 34px -8px #000a, 0 0 24px -6px rgba(230, 192, 123, 0.22);
  pointer-events: none;
  animation: label-hover 5s ease-in-out infinite;
}
.label-one {
  /* centrat pe colțul din stânga-sus al pozei, puțin deasupra lui */
  top: 0;
  left: 0;
  z-index: 3;
  transform: translate(-30%, -70%) rotate(-6deg);
}
.label-two {
  /* colțul din dreapta-jos al pozei (stă în .intro-portrait) */
  right: 0;
  bottom: 0;
  z-index: 3;
  /* centrat pe colțul din dreapta-jos al pozei, puțin sub el */
  transform: translate(50%, 70%) rotate(4deg);
  animation-delay: -2.5s;
  background: #1c1a16d9;
  backdrop-filter: blur(6px);
}
.intro-performance {
  position: absolute;
  inset: 0;
  visibility: hidden;
  pointer-events: none;
}
.intro-stage {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(680px, 95vw);
  height: min(600px, 83.8vw, 85vh);
  transform: translate(-50%, -50%);
  perspective: 1000px;
}
.intro-palette {
  position: absolute;
  left: 15%;
  top: 42%;
  width: 70%;
  height: 46%;
  object-fit: contain;
  opacity: 0;
}
.intro-brush {
  position: absolute;
  left: 39.5%;
  top: 43%;
  width: 21%;
  height: auto;
  object-fit: contain;
  transform-origin: 50% 18%;
  opacity: 0;
  filter: drop-shadow(20px 10px 18px #0007);
}
.intro-contact-glow {
  position: absolute;
  left: 40%;
  top: 50%;
  width: 20%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(#ffe19b, #d9982e66 30%, transparent 70%);
  opacity: 0;
}
.intro-powder {
  position: absolute;
  left: 50%;
  top: 56%;
  width: 85vmax;
  aspect-ratio: 1;
  transform: translate(-50%, -50%) scale(0.01);
  opacity: 0;
  z-index: 4;
}
.intro-powder img {
  position: absolute;
  inset: 0;
  object-fit: contain;
}
.intro-golden-wash {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at 50% 55%,
    #fff2bf,
    #eabb55 55%,
    #b07623
  );
  opacity: 0;
  z-index: 3;
}
.intro-reveal-title {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.2em;
  font: clamp(40px, 7vw, 100px) var(--serif);
  color: #fff7df;
  text-shadow: 0 3px 35px #704400;
  z-index: 6;
  opacity: 0;
}
.intro-reveal-title em {
  color: #fff1ba;
}
.intro-sequence-label {
  position: absolute;
  bottom: 11%;
  width: 100%;
  text-align: center;
  font-size: 10px;
  letter-spacing: 4px;
  color: #e8cfaa;
  opacity: 0;
}
.intro-replay {
  font-size: 12px;
  border-bottom: 1px solid var(--line);
  padding: 7px 0;
  background: none;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
#beauty-intro.performing .intro-welcome {
  animation: welcome-away 0.65s ease forwards;
  pointer-events: none;
}
#beauty-intro.performing .intro-performance {
  visibility: visible;
}
#beauty-intro.performing .intro-palette,
#beauty-intro.performing .intro-brush,
#beauty-intro.performing .intro-powder {
  will-change: transform, opacity;
}
#beauty-intro.performing .intro-palette {
  animation: palette-enter 4.8s 0.2s both;
}
#beauty-intro.performing .intro-brush {
  animation: brush-dip 4.8s 0.2s both;
}
#beauty-intro.performing .intro-contact-glow {
  animation: contact-glow 4.8s 0.2s both;
}
#beauty-intro.performing .intro-powder {
  animation: powder-bloom 4.8s 0.2s both;
}
#beauty-intro.performing .intro-golden-wash {
  animation: golden-wash 4.8s 0.2s both;
}
#beauty-intro.performing .intro-reveal-title {
  animation: golden-title 4.8s 0.2s both;
}
#beauty-intro.performing .intro-sequence-label {
  animation: sequence-label 4.8s 0.2s both;
}
#beauty-intro.leaving {
  animation: curtain-away 0.75s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  pointer-events: none;
}
body.intro-revealed main {
  animation: site-arrive 0.8s ease-out both;
}
@keyframes portrait-arrive {
  from {
    opacity: 0;
    transform: translateY(50px) rotateY(20deg) rotate(-8deg);
  }
  to {
    opacity: 1;
    transform: rotate(-4deg);
  }
}
@keyframes intro-copy-in {
  from {
    opacity: 0;
    transform: translateY(25px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes label-hover {
  50% {
    translate: 0 -13px;
  }
}
@keyframes welcome-away {
  to {
    opacity: 0;
    transform: scale(0.9);
  }
}
@keyframes palette-enter {
  0% {
    opacity: 0;
    transform: translateY(100px) rotateX(25deg);
  }
  15%,
  50% {
    opacity: 1;
    transform: translateY(0) rotateX(0);
  }
  65%,
  100% {
    opacity: 0;
    transform: translateY(50px) scale(0.85);
  }
}
@keyframes brush-dip {
  0% {
    opacity: 0;
    transform: translate(120%, -60%) rotate(130deg);
  }
  14% {
    opacity: 1;
    transform: translate(12%, -10%) rotate(165deg);
  }
  28% {
    opacity: 1;
    transform: translate(0, 15%) rotate(176deg);
  }
  35% {
    opacity: 1;
    transform: translate(-5%, 19%) rotate(166deg) scaleY(0.96);
  }
  43% {
    opacity: 1;
    transform: translate(12%, -3%) rotate(145deg);
  }
  53% {
    opacity: 1;
    transform: translate(-85%, -55%) rotate(70deg);
  }
  62%,
  100% {
    opacity: 0;
    transform: translate(-160%, -80%) rotate(45deg);
  }
}
@keyframes contact-glow {
  0%,
  27% {
    opacity: 0;
    transform: scale(0.3);
  }
  35% {
    opacity: 0.9;
    transform: scale(1);
  }
  45% {
    opacity: 0;
    transform: scale(2);
  }
  100% {
    opacity: 0;
  }
}
@keyframes powder-bloom {
  0%,
  35% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.025) rotate(-15deg);
  }
  40% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(0.13) rotate(-10deg);
  }
  58% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(0.8) rotate(0);
  }
  76% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.7) rotate(8deg);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(2.05) rotate(16deg);
  }
}
@keyframes golden-wash {
  0%,
  48% {
    opacity: 0;
  }
  69% {
    opacity: 1;
  }
  85% {
    opacity: 0.8;
  }
  100% {
    opacity: 0;
  }
}
@keyframes golden-title {
  0%,
  58% {
    opacity: 0;
    transform: translateY(30px) scale(0.92);
  }
  72%,
  85% {
    opacity: 1;
    transform: none;
  }
  100% {
    opacity: 0;
    transform: scale(1.08);
  }
}
@keyframes sequence-label {
  0% {
    opacity: 0;
  }
  15%,
  40% {
    opacity: 1;
  }
  58%,
  100% {
    opacity: 0;
  }
}
@keyframes curtain-away {
  to {
    opacity: 0;
  }
}
@keyframes site-arrive {
  from {
    opacity: 0.45;
  }
  to {
    opacity: 1;
  }
}
@media (max-width: 700px) {
  .intro-brand {
    top: 24px;
    left: 6%;
    font-size: 15px;
    letter-spacing: 1.6px;
  }
  .intro-brand span {
    font-size: 7px;
    letter-spacing: 2px;
  }
  .intro-skip {
    top: 20px;
    right: 5%;
    font-size: 11px;
    padding: 8px 12px;
    gap: 10px;
  }
  .intro-welcome {
    inset: 96px 8% 35px;
    display: flex;
    flex-direction: column;
    gap: 36px;
    justify-content: center;
  }
  .intro-portrait {
    height: 35dvh;
    min-height: 150px;
    width: 63%;
    flex-shrink: 0;
  }
  .portrait-caption {
    font-size: 7px;
    bottom: 16px;
    letter-spacing: 1.2px;
  }
  .intro-copy {
    text-align: center;
  }
  .intro-kicker {
    font-size: 8px;
    letter-spacing: 1.8px;
  }
  .intro-copy h2 {
    font-size: 43px;
    margin: 14px 0;
  }
  .intro-copy p {
    font-size: 13px;
    line-height: 1.6;
  }
  .intro-copy button {
    margin: 20px auto 0;
    padding: 12px 24px;
    font-size: 13px;
  }
  .intro-signature {
    display: none;
  }
  .intro-floating-label {
    padding: 10px 14px;
    font-size: 8px;
  }
  .label-one {
    top: 0;
    left: 0;
    transform: translate(-40%, -80%) rotate(-6deg);
  }
  .label-two {
    right: 0;
    bottom: 0;
    transform: translate(40%, 80%) rotate(4deg);
  }
  .intro-stage {
    max-height: 75vh;
  }
  .intro-reveal-title {
    flex-direction: column;
    font-size: 51px;
    gap: 0;
  }
  .intro-sequence-label {
    font-size: 8px;
    letter-spacing: 2px;
    bottom: 18%;
  }
}
@media (max-height: 650px) {
  .intro-welcome {
    inset: 90px 10% 25px;
    display: grid;
    grid-template-columns: 0.7fr 1fr;
    gap: 6%;
  }
  .intro-portrait {
    height: 65vh;
    min-height: 0;
    width: 100%;
  }
  .intro-copy h2 {
    font-size: 42px;
  }
  .intro-copy p {
    font-size: 13px;
  }
  .intro-copy button {
    margin-top: 15px;
  }
  .intro-signature {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  #beauty-intro *,
  #beauty-intro.leaving,
  body.intro-revealed main {
    animation: none !important;
  }
  .intro-portrait {
    transform: none;
  }
}

/* butonul din intro: rotunjit, ca restul butoanelor */
.intro-copy button {
  border-radius: 999px;
  font-weight: 600;
}
