/* style.css - Passione Lusso */

/* 1. CASCADE LAYERS */
@layer reset, base, theme, layout, components, utilities;

@layer reset {

  /* Targeted modern reset */
  html {
    box-sizing: border-box;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
  }

  *,
  *::before,
  *::after {
    box-sizing: inherit;
  }

  body,
  h1,
  p,
  figure {
    margin: 0;
    padding: 0;
  }

  img {
    display: block;
    max-inline-size: 100%;
    block-size: auto;
  }
}

@layer theme {
  :root {
    /* Color Palette */
    --color-bg-page: #FAF7F2;
    --color-bg-card: #FFFFFF;
    --color-text-primary: #1C1A17;
    --color-text-secondary: #5C564E;

    /* Luxury Accents */
    --color-accent-gold: #C5A26B;
    --color-accent-gold-light: #E5D5BD;
    --color-accent-wine: #5A1827;
    --color-border-subtle: rgba(197, 162, 107, 0.2);

    /* Fonts */
    --font-heading: 'Cinzel', 'Playfair Display', serif;
    --font-body: 'Inter', system-ui, -apple-system, sans-serif;

    /* Spacing */
    --space-xs: 0.5rem;
    --space-s: 1rem;
    --space-m: 1.5rem;
    --space-l: 2rem;
    --space-xl: 3rem;
    --space-xxl: 4rem;

    /* Shadow layers for soft, realistic depth */
    --shadow-soft:
      0px 2px 8px rgba(28, 26, 23, 0.02),
      0px 10px 30px rgba(28, 26, 23, 0.04),
      0px 30px 70px rgba(197, 162, 107, 0.08);

    /* Transitions */
    --transition-smooth: cubic-bezier(0.25, 1, 0.5, 1);
  }
}

@layer base {
  html {
    color-scheme: light;
    font-size: 16px;
    height: 100%;
  }

  body {
    background-color: var(--color-bg-page);
    background-image:
      radial-gradient(circle at 10% 20%, rgba(197, 162, 107, 0.05) 0%, transparent 40%),
      radial-gradient(circle at 90% 80%, rgba(90, 24, 39, 0.03) 0%, transparent 50%),
      linear-gradient(to bottom, #FCFAF7, #F5EFEB);
    color: var(--color-text-primary);
    font-family: var(--font-body);
    line-height: 1.6;
    min-block-size: 100dvh;
    overflow-x: hidden;
  }

  body::before {
    content: "";
    position: fixed;
    top: 15px;
    left: 15px;
    right: 15px;
    bottom: 15px;
    border: 1px solid rgba(197, 162, 107, 0.15);
    pointer-events: none;
    z-index: 9999;
    transition: all 0.5s ease;
  }

  @media (min-width: 768px) {
    body::before {
      top: 30px;
      left: 30px;
      right: 30px;
      bottom: 30px;
      border: 1px solid rgba(197, 162, 107, 0.22);
    }
  }
}

@layer layout {
  .page-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-block-size: 100dvh;
    padding: var(--space-xxl) var(--space-xl);
    box-sizing: border-box;
    text-align: center;
    gap: clamp(2.5rem, 6vh, 4.5rem);
  }

  .content-hero {
    max-inline-size: 900px;
    inline-size: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-m);

    /* Animation container */
    animation: content-reveal 1.5s var(--transition-smooth) forwards;
    opacity: 0;
    transform: translateY(20px);
  }

  @keyframes content-reveal {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @media (max-width: 768px) {
    .page-container {
      padding: var(--space-xl) var(--space-m);
      justify-content: center;
      gap: 2.5rem;
    }
  }
}

@layer components {

  /* Logo Component */
  .logo-wrapper {
    display: flex;
    justify-content: center;
    margin-block-end: 0;

    animation: logo-fade 1.5s var(--transition-smooth) 0.1s forwards;
    opacity: 0;
  }

  .logo-image {
    inline-size: 100%;
    max-inline-size: 320px;
    block-size: auto;
    object-fit: contain;
    transition: all 0.8s var(--transition-smooth);
    filter: drop-shadow(0px 4px 12px rgba(197, 162, 107, 0.12));
  }

  .logo-image:hover {
    transform: scale(1.05);
  }

  @keyframes logo-fade {
    to {
      opacity: 1;
    }
  }

  /* Decorative Divider */
  .divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-m);
    animation: divider-expand 1.4s var(--transition-smooth) 0.4s forwards;
    opacity: 0;
  }

  .divider::before,
  .divider::after {
    content: "";
    block-size: 1px;
    inline-size: 120px;
    background-image: linear-gradient(to right, transparent, var(--color-accent-gold) 50%, transparent);
  }

  .divider-diamond {
    inline-size: 8px;
    block-size: 8px;
    background-color: var(--color-accent-gold);
    transform: rotate(45deg);
    box-shadow: 0 0 8px var(--color-accent-gold-light);
  }

  @keyframes divider-expand {
    to {
      opacity: 1;
    }
  }

  /* Typography / Text Content */
  .title {
    font-family: var(--font-heading);
    color: var(--color-text-primary);
    font-size: clamp(2rem, 1.4rem + 3.2vw, 3.4rem);
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0.08em;
    text-wrap: balance;

    animation: text-reveal 1.2s var(--transition-smooth) 0.4s forwards;
    opacity: 0;
    transform: translateY(15px);
  }

  .subtitle {
    font-family: var(--font-body);
    color: var(--color-text-secondary);
    font-size: clamp(0.95rem, 0.85rem + 0.5vw, 1.20rem);
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: 0.04em;
    text-wrap: pretty;
    margin-block-end: 0;
    max-inline-size: 720px;
    padding-inline: var(--space-l);

    animation: text-reveal 1.2s var(--transition-smooth) 0.6s forwards;
    opacity: 0;
    transform: translateY(15px);
  }

  @keyframes text-reveal {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* Badge / Brand Info */
  .brand-badge {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--color-accent-gold);
    padding: 0.6rem 2.2rem;
    background-color: transparent;
    color: var(--color-accent-wine);
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    transition: all 0.4s var(--transition-smooth);

    animation: badge-fade 1.2s var(--transition-smooth) 0.8s forwards;
    opacity: 0;
  }

  .brand-badge:hover {
    background-color: var(--color-accent-gold);
    color: var(--color-bg-page);
    letter-spacing: 0.4em;
    border-color: var(--color-accent-gold);
  }

  @keyframes badge-fade {
    to {
      opacity: 1;
    }
  }
}

@layer utilities {

  /* Accessibility support */
  @media (prefers-reduced-motion: reduce) {

    .content-hero,
    .logo-wrapper,
    .divider,
    .title,
    .subtitle,
    .brand-badge {
      animation: none !important;
      opacity: 1 !important;
      transform: none !important;
    }

    .logo-image {
      transition: none !important;
    }
  }
}