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

  /* subtle paper grain */
  .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.55 0 0 0 0 0.4 0 0 0 0 0.32 0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  }

  /* ===== ROSE GRADIENTS ===== */
  .text-rose-grad{
    background: linear-gradient(135deg,#E8C7B4 0%, #C69882 50%, #9C7159 100%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .bg-rose-grad{
    background: linear-gradient(135deg,#E8C7B4 0%, #C69882 50%, #9C7159 100%);
  }

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

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

  /* ===== PRELOADER ===== */
  #preloader{
    position:fixed; inset:0; z-index:100;
    background: radial-gradient(60% 60% at 50% 45%, #FFFFFF 0%, #F5EEE4 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(232,199,180,.55), rgba(232,199,180,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,#E8C7B4 0%, #C69882 45%, #9C7159 100%);
    -webkit-background-clip:text; background-clip:text;
    opacity:0; transform: translateY(10px) scale(.96);
  }
  .pre-arc .stroke{ stroke-dasharray:1200; stroke-dashoffset:1200; }

  /* ===== SKIN FLOW LINES (organic rose waves) ===== */
  .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; } }

  /* ===== FLOATING CELLS ===== */
  .cells{ position:absolute; inset:0; pointer-events:none; }
  .cells span{
    position:absolute; bottom:-10px; width:12px; height:12px; border-radius:50%;
    background: radial-gradient(circle at 30% 30%, rgba(232,199,180,.85), rgba(232,199,180,0) 70%);
    border:1px solid rgba(198,152,130,.35);
    animation: cellRise linear infinite; opacity:0;
  }
  @keyframes cellRise{
    0%{ transform: translateY(0) scale(.6); opacity:0; }
    10%{ opacity:.8; }
    60%{ transform: translateY(-50vh) translateX(20px) scale(1); }
    100%{ transform: translateY(-110vh) translateX(-10px) scale(.5); opacity:0; }
  }

  /* ===== BUTTONS ===== */
  .btn-rose{
    position:relative; display:inline-flex; align-items:center; gap:.75rem; padding:1rem 1.75rem;
    background: linear-gradient(135deg,#E8C7B4 0%, #C69882 55%, #9C7159 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(156,113,89,.5), inset 0 1px 0 rgba(255,255,255,.35);
  }
  .btn-rose:hover{ transform: translateY(-2px); box-shadow: 0 18px 40px -12px rgba(156,113,89,.6); }
  .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:#1E1917; font-weight:500; letter-spacing:.14em; text-transform:uppercase; font-size:11px;
    border-radius:999px; border:1px solid rgba(30,25,23,.15); background:transparent;
    transition: background .4s, border-color .4s, color .4s;
  }
  .btn-ghost:hover{ background:#FFFFFF; border-color:rgba(156,113,89,.4); color:#9C7159; }

  /* ===== 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(198,152,130,.35);
    font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#9C7159;
    box-shadow: 0 6px 22px -12px rgba(156,113,89,.35);
  }
  .chip-dot{ width:6px; height:6px; border-radius:50%; background:#C69882; box-shadow:0 0 12px rgba(198,152,130,.9); }
  .chip-dark{
    display:inline-flex; align-items:center; gap:.6rem; padding:.5rem 1rem; border-radius:999px;
    background: rgba(255,255,255,.06); border:1px solid rgba(232,199,180,.3);
    font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#E8C7B4;
  }

  /* ===== NAV ===== */
  .nav-link{
    position:relative; font-size:12px; letter-spacing:.22em; text-transform:uppercase;
    color: rgba(30,25,23,.62); padding:.5rem 0; transition: color .3s;
  }
  .nav-link:hover{ color:#9C7159; }
  .nav-link::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:#C69882;
    transform: scaleX(0); transform-origin:left; transition: transform .4s cubic-bezier(.2,.7,.2,1);
  }
  .nav-link:hover::after{ transform: scaleX(1); }

  .brand-name{ color:#FFFFFF; transition: color .4s; }
  .brand-sub{ color:rgba(255,255,255,.65); transition: color .4s; }
  #nav.nav-scrolled .brand-name{ color:#1E1917; }
  #nav.nav-scrolled .brand-sub{ color:#847668; }

  /* ===== TYPOGRAPHIC ===== */
  .eyebrow{
    font-family: 'Inter', sans-serif; font-size: 11px; font-weight:500;
    letter-spacing: .34em; text-transform: uppercase; color:#9C7159;
  }
  .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,#E8C7B4 0%, #C69882 45%, #9C7159 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, #C69882, 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:#F5EEE4; }
  ::-webkit-scrollbar-thumb{ background: linear-gradient(180deg,#C69882,#9C7159); border-radius:99px; border:2px solid #FBF7F2; }

  /* ===== 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%); } }

  /* ===== PROCEDIMENTOS CARDS ===== */
  .proc{
    position:relative; display:flex; flex-direction:column;
    background:#FFFFFF; border:1px solid #E8DED0; border-radius: 22px; overflow:hidden;
    transition: transform .55s cubic-bezier(.2,.7,.2,1), border-color .4s, box-shadow .55s;
  }
  .proc:hover{
    transform: translateY(-6px);
    border-color: rgba(198,152,130,.5);
    box-shadow: 0 30px 60px -25px rgba(156,113,89,.35), 0 0 0 1px rgba(198,152,130,.15);
  }
  .proc-media{
    position:relative; aspect-ratio: 4/3; overflow:hidden; isolation:isolate;
    border-bottom:1px solid #E8DED0;
  }
  .proc-media svg, .proc-media .proc-img{
    transition: transform 1.4s cubic-bezier(.2,.7,.2,1);
    will-change: transform;
  }
  .proc-media .proc-img{
    width:100%; height:100%; object-fit:cover; display:block;
    filter: saturate(.92) contrast(1.02);
  }
  .proc-media::after{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
    background: linear-gradient(180deg, rgba(30,25,23,0) 55%, rgba(30,25,23,.35) 100%);
  }
  .proc:hover .proc-media svg, .proc:hover .proc-media .proc-img{ transform: scale(1.06); }
  .proc-tag{
    position:absolute; top:14px; left:14px; z-index:2;
    display:inline-flex; align-items:center; gap:.5rem;
    padding:.35rem .7rem; border-radius:999px;
    background: rgba(255,255,255,.9); backdrop-filter: blur(8px);
    border:1px solid rgba(198,152,130,.3);
    font-size:9px; letter-spacing:.22em; text-transform:uppercase;
    color:#9C7159;
  }
  .proc-body{ padding: 1.75rem; }
  .proc-link{
    display:inline-flex; align-items:center; gap:.5rem; margin-top:1.25rem;
    font-size:11px; letter-spacing:.22em; text-transform:uppercase;
    background: linear-gradient(135deg,#C69882,#9C7159);
    -webkit-background-clip:text; background-clip:text; color:transparent;
    transition: gap .4s;
  }
  .proc:hover .proc-link{ gap:.85rem; }
  .proc.rv .proc-media svg, .proc.rv .proc-media .proc-img{
    clip-path: inset(0 100% 0 0);
    transition: clip-path 1.2s cubic-bezier(.2,.7,.2,1), transform 1.4s cubic-bezier(.2,.7,.2,1);
  }
  .proc.rv.in .proc-media svg, .proc.rv.in .proc-media .proc-img{ clip-path: inset(0 0 0 0); }

  /* ===== 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,#E8C7B4,#9C7159);
    box-shadow: 0 0 0 4px #FBF7F2, 0 0 0 5px rgba(198,152,130,.35);
  }
  .step::after{
    content:""; position:absolute; left:6px; top:32px; bottom:-32px; width:1px;
    background: linear-gradient(180deg, rgba(198,152,130,.4), transparent);
  }
  .step:last-child::after{ display:none; }

  /* ===== TESTIMONIALS ===== */
  .quote-card{
    position:relative; background:#FFFFFF; border:1px solid #E8DED0; border-radius:20px; padding:2rem;
    transition: border-color .4s, box-shadow .4s, transform .4s;
  }
  .quote-card:hover{ border-color: rgba(198,152,130,.45); box-shadow: 0 24px 50px -25px rgba(156,113,89,.3); 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:#C69882; opacity:.6;
  }
  .star{ color:#C69882; }

  /* ===== EMBLEM (Método section) ===== */
  .rb-emblem{
    width: 180px; height: 180px; position: relative;
    display: flex; align-items: center; justify-content: center;
  }
  .rb-emblem .ring{
    position: absolute; inset: 0; border-radius: 50%;
    background: conic-gradient(from 0deg, rgba(198,152,130,0), rgba(198,152,130,.7), rgba(198,152,130,0), rgba(198,152,130,.5), rgba(198,152,130,0));
    -webkit-mask: radial-gradient(circle at center, transparent 64%, #000 65%, #000 67%, transparent 68%);
            mask: radial-gradient(circle at center, transparent 64%, #000 65%, #000 67%, transparent 68%);
    animation: spin 14s linear infinite;
  }
  .rb-emblem .ring.ring-2{
    -webkit-mask: radial-gradient(circle at center, transparent 76%, #000 77%, #000 78%, transparent 79%);
            mask: radial-gradient(circle at center, transparent 76%, #000 77%, #000 78%, transparent 79%);
    animation: spin 22s linear reverse infinite; opacity: .5;
  }
  .rb-emblem .mono{
    display:flex; align-items:center; justify-content:center;
    animation: rbFloat 6s ease-in-out infinite;
  }
  .rb-emblem .mono img{ width:72px; height:auto; }
  @keyframes rbFloat{ 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-4px) } }
  @keyframes spin{ to{ transform: rotate(360deg); } }

  /* ===== PORTRAIT (Sobre Mim placeholder) ===== */
  .portrait-card{
    background: linear-gradient(180deg,#FFFFFF,#F5EEE4);
    box-shadow: 0 30px 60px -30px rgba(156,113,89,.35), inset 0 1px 0 rgba(255,255,255,.9);
    border:1px solid #E8DED0;
  }
  .hero-portrait{
    filter: contrast(1.03) brightness(.98);
    transform-origin: 50% 30%;
    animation: renataKenBurns 22s ease-in-out infinite alternate;
  }
  @keyframes renataKenBurns{
    0%   { transform: scale(1.00); }
    100% { transform: scale(1.06); }
  }
  /* ===== MAP PLATE ===== */
  .map-plate{
    background:
      radial-gradient(120% 60% at 10% 10%, rgba(232,199,180,.4), transparent 60%),
      linear-gradient(180deg,#FFFFFF,#F5EEE4);
    border:1px solid #E8DED0;
  }

  /* ===== A11Y ===== */
  :focus-visible{ outline: 2px solid #C69882; outline-offset: 3px; border-radius: 4px; }
  @media (prefers-reduced-motion: reduce){
    .flow path, .cells span, .rb-emblem .ring, .marquee, .grain::before,
    .rb-emblem .mono, .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; }