
  html { scroll-behavior: smooth; background: #F7F2EC; }
  body {
    font-family: 'Inter', system-ui, sans-serif;
    background: #F7F2EC; color: #2B1512;
    -webkit-font-smoothing: antialiased; overflow-x: hidden;
  }

  .grain::before{
    content:""; position:fixed; inset:-50%; pointer-events:none; z-index:60; opacity:.04; mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.4 0 0 0 0 0.1 0 0 0 0 0.15 0 0 0 0.6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }

  /* ===== ROSE GOLD GRADIENTS ===== */
  .text-rose-grad{
    background: linear-gradient(135deg,#EAC2B0 0%, #D79A82 40%, #B97558 65%, #7A1F35 100%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .bg-rose-grad{
    background: linear-gradient(135deg,#EAC2B0 0%, #D79A82 40%, #B97558 65%, #7A1F35 100%);
  }

  /* ===== DIVIDERS ===== */
  .rule{ height:1px; background: linear-gradient(90deg, transparent, rgba(215,154,130,.4), transparent); }

  /* ===== HALO ===== */
  .halo{
    background: radial-gradient(60% 60% at 50% 50%, rgba(234,194,176,.5) 0%, rgba(234,194,176,.14) 40%, rgba(234,194,176,0) 75%);
    filter: blur(10px);
  }

  /* ===== PRELOADER ===== */
  #preloader{
    position:fixed; inset:0; z-index:100;
    background: radial-gradient(60% 60% at 50% 45%, #FFFFFF 0%, #EFE1D6 80%);
    display:flex; align-items:center; justify-content:center; overflow:hidden;
  }
  .pre-halo{
    position:absolute; width:720px; height:720px; left:50%; top:50%;
    transform: translate(-50%, -55%);
    background: radial-gradient(closest-side, rgba(215,154,130,.5), rgba(215,154,130,0) 70%);
    filter: blur(30px); animation: preBreath 4s ease-in-out infinite; pointer-events:none;
  }
  @keyframes preBreath{ 0%,100%{ opacity:.7 } 50%{ opacity:1 } }
  .pre-mark{
    font-family:'Fraunces', serif; font-weight: 300; letter-spacing:.02em;
    font-size: clamp(60px, 10vw, 130px);
    color: transparent;
    background: linear-gradient(135deg,#EAC2B0 0%, #D79A82 40%, #B97558 65%, #7A1F35 100%);
    -webkit-background-clip:text; background-clip:text;
    opacity:0; transform: translateY(10px) scale(.96);
  }
  .pre-arc .stroke{ stroke-dasharray:1200; stroke-dashoffset:1200; }

  /* ===== FLOW LINES ===== */
  .flow path{
    fill:none; stroke:url(#roseFlow); stroke-width:1; stroke-linecap:round;
    stroke-dasharray: 4 8; opacity:.7;
    animation: flowMove 12s linear infinite;
  }
  .flow path:nth-child(2){ animation-duration:16s; opacity:.5; }
  .flow path:nth-child(3){ animation-duration:20s; opacity:.35; }
  @keyframes flowMove{ to { stroke-dashoffset: -300; } }

  /* ===== BUTTONS ===== */
  .btn-rose{
    position:relative; display:inline-flex; align-items:center; gap:.75rem; padding:1rem 1.75rem;
    background: linear-gradient(135deg,#EAC2B0 0%, #D79A82 40%, #B97558 65%, #7A1F35 100%);
    color:#FFFFFF; font-weight:500; letter-spacing:.14em; text-transform:uppercase; font-size:11px;
    border-radius:999px; overflow:hidden; transition: transform .4s, box-shadow .4s;
    box-shadow: 0 12px 28px -12px rgba(101,24,39,.45), inset 0 1px 0 rgba(255,255,255,.35);
  }
  .btn-rose:hover{ transform: translateY(-2px); box-shadow: 0 18px 40px -12px rgba(101,24,39,.55); }
  .btn-rose::after{
    content:""; position:absolute; inset:0; transform:translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.5), transparent);
    transition: transform .9s ease;
  }
  .btn-rose:hover::after{ transform: translateX(100%); }
  .btn-rose-label{ display:flex; flex-direction:column; align-items:center; text-align:center; line-height:1.25; }
  .btn-rose-sub{ font-size:8px; opacity:.8; letter-spacing:.24em; margin-top:2px; text-align:center; }
  .btn-ghost{
    display:inline-flex; align-items:center; gap:.75rem; padding:1rem 1.75rem;
    color:#2B1512; font-weight:500; letter-spacing:.14em; text-transform:uppercase; font-size:11px;
    border-radius:999px; border:1px solid rgba(43,21,18,.15); background:transparent;
    transition: background .4s, border-color .4s, color .4s;
  }
  .btn-ghost:hover{ background:#FFFFFF; border-color:rgba(185,117,88,.4); color:#B97558; }

  /* ===== WHATSAPP FLUTUANTE ===== */
  .wa{
    position:fixed; bottom:32px; right:32px; z-index:90;
    width:60px; height:60px; border-radius:50%; background:#25D366;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 28px rgba(37,211,102,.5);
    transition: transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
    cursor:pointer;
  }
  .wa:hover{ transform:scale(1.15); box-shadow:0 10px 42px rgba(37,211,102,.6); }
  .wa::before{
    content:''; position:absolute; inset:0; border-radius:50%; background:#25D366;
    animation: waPulse 2.6s ease-in-out infinite;
  }
  @keyframes waPulse{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(1.6); opacity:0; } }
  @media (max-width:768px){
    .wa{ width:52px; height:52px; bottom:18px; right:18px; }
  }

  /* ===== CHIP ===== */
  .chip{
    display:inline-flex; align-items:center; gap:.6rem; padding:.5rem 1rem; border-radius:999px;
    background: #FFFFFF; border:1px solid rgba(185,117,88,.35);
    font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#B97558;
    box-shadow: 0 6px 22px -12px rgba(101,24,39,.35);
  }
  .chip-dot{ width:6px; height:6px; border-radius:50%; background:#D79A82; box-shadow:0 0 12px rgba(215,154,130,.9); }
  .chip-dark{
    display:inline-flex; align-items:center; gap:.6rem; padding:.5rem 1rem; border-radius:999px;
    background: rgba(255,255,255,.08); border:1px solid rgba(234,194,176,.35);
    font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#EAC2B0;
  }

  /* ===== NAV ===== */
  .nav-link{
    position:relative; font-size:12px; letter-spacing:.22em; text-transform:uppercase;
    color: rgba(43,21,18,.62); padding:.5rem 0; transition: color .3s;
  }
  .nav-link:hover{ color:#B97558; }

  .brand-name{ color:#FFFFFF; transition: color .4s; }
  .brand-sub{ color:rgba(255,255,255,.65); transition: color .4s; }
  #nav.nav-scrolled .brand-name{ color:#2B1512; }
  #nav.nav-scrolled .brand-sub{ color:#8C6F68; }

  /* ===== LOGO ===== */
  .ll-badge{ height:44px; width:auto; flex-shrink:0; filter: drop-shadow(0 4px 10px rgba(101,24,39,.3)); }

  /* ===== TYPOGRAPHIC ===== */
  .eyebrow{
    font-family: 'Inter', sans-serif; font-size: 11px; font-weight:500;
    letter-spacing: .34em; text-transform: uppercase; color:#B97558;
  }
  .h-display{
    font-family: 'Fraunces', serif; font-weight:300; font-variation-settings: "opsz" 144, "SOFT" 60;
    letter-spacing: -.015em; line-height:1.02;
  }
  .h-display em{ font-style:italic; font-weight:300;
    background: linear-gradient(135deg,#EAC2B0 0%, #D79A82 40%, #B97558 65%, #7A1F35 100%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }

  /* ===== SCROLL CUE ===== */
  .scroll-cue{ position:absolute; bottom:32px; left:50%; transform:translateX(-50%); }
  .scroll-cue .bar{
    width:1px; height:56px; background: linear-gradient(180deg, transparent, #D79A82, transparent);
    animation: cue 2.4s ease-in-out infinite;
  }
  @keyframes cue{ 0%,100%{ opacity:.35 } 50%{ opacity:1 } }

  /* ===== SCROLLBAR ===== */
  ::-webkit-scrollbar{ width:10px; height:10px; }
  ::-webkit-scrollbar-track{ background:#EFE1D6; }
  ::-webkit-scrollbar-thumb{ background: linear-gradient(180deg,#D79A82,#B97558); border-radius:99px; border:2px solid #F7F2EC; }

  /* ===== SCROLL REVEAL ===== */
  .rv{ opacity:0; transform: translateY(24px); transition: opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1); }
  .rv.in{ opacity:1; transform:none; }
  .rv-d1{ transition-delay:.1s; } .rv-d2{ transition-delay:.2s; }
  .rv-d3{ transition-delay:.3s; } .rv-d4{ transition-delay:.4s; }
  .rv-d5{ transition-delay:.5s; }

  /* ===== MARQUEE ===== */
  .marquee{ display:flex; gap:5rem; animation: marq 42s linear infinite; }
  @keyframes marq { to { transform: translateX(-50%); } }

  /* ===== REVIEW CARDS MARQUEE ===== */
  .review-viewport{ overflow:hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%); }
  .review-track{ display:flex; gap:1.5rem; width:max-content; animation: reviewMarq 40s linear infinite; }
  .review-track:hover{ animation-play-state: paused; }
  @keyframes reviewMarq { to { transform: translateX(-50%); } }
  .review-card{
    flex:0 0 380px; background:#FFFFFF; border-radius:20px; border:1px solid #E6D3C6;
    box-shadow: 0 20px 40px -24px rgba(101,24,39,.4); padding:1.75rem;
  }
  .review-avatar{
    width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    color:#FFFFFF; font-weight:700; font-size:18px; font-family:'Fraunces', serif; flex-shrink:0;
  }

  /* ===== SERVICE CARDS ===== */
  .svc{
    position:relative; background:#FFFFFF; border:1px solid #E6D3C6; border-radius: 22px; padding:2rem;
    transition: transform .5s cubic-bezier(.2,.7,.2,1), border-color .4s, box-shadow .5s;
  }
  .svc:hover{
    transform: translateY(-6px);
    border-color: rgba(185,117,88,.5);
    box-shadow: 0 30px 60px -25px rgba(101,24,39,.25), 0 0 0 1px rgba(185,117,88,.12);
  }
  .svc-icon{
    width:52px; height:52px; border-radius:16px;
    background: linear-gradient(135deg, rgba(234,194,176,.5), rgba(215,154,130,.25));
    display:flex; align-items:center; justify-content:center; margin-bottom:1.25rem;
  }
  .svc-tag{
    display:inline-flex; align-items:center; padding:.3rem .65rem; border-radius:999px;
    background:#F7F2EC; border:1px solid #E6D3C6; font-size:10.5px; color:#8C6F68;
  }

  /* ===== METHOD TIMELINE ===== */
  .step{ position:relative; padding-left: 2.5rem; }
  .step::before{
    content:""; position:absolute; left:0; top:12px; width:14px; height:14px;
    border-radius:50%; background: linear-gradient(135deg,#EAC2B0,#B97558 65%,#7A1F35);
    box-shadow: 0 0 0 4px #F7F2EC, 0 0 0 5px rgba(185,117,88,.35);
  }
  .step::after{
    content:""; position:absolute; left:6px; top:32px; bottom:-32px; width:1px;
    background: linear-gradient(180deg, rgba(185,117,88,.4), transparent);
  }
  .step:last-child::after{ display:none; }

  /* ===== TESTIMONIALS ===== */
  .quote-card{
    position:relative; background:#FFFFFF; border:1px solid #E6D3C6; border-radius:20px; padding:2rem;
    transition: border-color .4s, box-shadow .4s, transform .4s;
  }
  .quote-card:hover{ border-color: rgba(185,117,88,.45); box-shadow: 0 24px 50px -25px rgba(101,24,39,.25); transform: translateY(-3px); }
  .quote-card::before{
    content: "\201C"; position:absolute; top:-14px; left:24px;
    font-family:'Fraunces', serif; font-size:80px; line-height:.6;
    color:#D79A82; opacity:.6;
  }
  .star{ color:#D79A82; }

  /* ===== PORTRAIT PANEL ===== */
  .portrait-card{
    background: linear-gradient(180deg,#FFFFFF,#EFE1D6);
    box-shadow: 0 30px 60px -30px rgba(101,24,39,.35), inset 0 1px 0 rgba(255,255,255,.9);
    border:1px solid #E6D3C6;
  }
  .hero-portrait{
    filter: contrast(1.03) brightness(.98);
    transform-origin: 50% 30%;
    animation: larissaKenBurns 22s ease-in-out infinite alternate;
  }
  @keyframes larissaKenBurns{
    0%   { transform: scale(1.00); }
    100% { transform: scale(1.06); }
  }

  /* ===== MAP PLATE ===== */
  .map-plate{
    background:
      radial-gradient(120% 60% at 10% 10%, rgba(234,194,176,.35), transparent 60%),
      linear-gradient(180deg,#FFFFFF,#EFE1D6);
    border:1px solid #E6D3C6;
  }

  /* ===== A11Y ===== */
  :focus-visible{ outline: 2px solid #D79A82; outline-offset: 3px; border-radius: 4px; }
  @media (prefers-reduced-motion: reduce){
    .flow path, .marquee, .grain::before,
    .scroll-cue .bar, .pre-halo, .hero-portrait{ animation: none !important; }
    .rv{ opacity:1; transform:none; }
    html{ scroll-behavior:auto; }
  }

  body.loaded #preloader{ pointer-events:none; }
