:root{
    --navy-950:#ffffff;
    --navy-900:#f7f6f9;
    --navy-850:#f0eef3;
    --navy-800:#e8e5ec;
    --navy-700:#d6d1db;
    --gold-500:#9900cc;
    --gold-300:#7a1a99;
    --gold-100:#f3e5fa;
    --blue-500:#9900cc;
    --blue-300:#7a1a99;
    --cream-100:#17151a;
    --cream-200:#423f47;
    --slate-400:#6f6c74;
    --slate-500:#918e96;
    --line:rgba(20,15,25,0.10);
    --line-strong:rgba(20,15,25,0.20);

    --font-display:'Poppins',Helvetica,Arial,sans-serif;
    --font-label:'Poppins',Helvetica,Arial,sans-serif;
    --font-body:'Open Sans',Helvetica,Arial,sans-serif;
    --font-mono:'IBM Plex Mono','SFMono-Regular',Consolas,monospace;

    --bg:var(--navy-950);
    --surface:var(--navy-900);
    --surface-raised:var(--navy-850);
    --text:var(--cream-100);
    --text-dim:var(--slate-400);
    --accent:var(--gold-500);
    --accent-soft:var(--gold-300);
  }

  *{box-sizing:border-box;}
  ::selection{background:var(--gold-500);color:var(--navy-950);}

  html{scroll-behavior:smooth;overflow-x:hidden;}

  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:var(--font-body);
    font-size:17px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  h1{
    font-family:var(--font-display);
  }
  h2,h3,.eyebrow,.nav-dots,.stat-num,.tag-pill,.card-title{
    font-family:var(--font-label);
  }

  h1,h2,h3{
    text-wrap:balance;
    margin:0;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.08;
  }

  p{margin:0;}

  .mono{font-family:var(--font-mono);}

  a{color:inherit;}

  /* ---------- side nav ---------- */
  .side-nav{
    position:fixed;top:50%;right:28px;transform:translateY(-50%);
    z-index:20;display:flex;flex-direction:column;gap:14px;
  }
  .side-nav button{
    position:relative;
    width:9px;height:9px;border-radius:50%;
    background:transparent;border:1.5px solid var(--line-strong);
    cursor:pointer;padding:0;transition:background .25s ease, border-color .25s ease, transform .25s ease;
  }
  .side-nav button.active{background:var(--accent);border-color:var(--accent);transform:scale(1.25);}
  .side-nav button .label{
    position:absolute;right:22px;top:50%;transform:translateY(-50%);
    font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;
    color:var(--text-dim);white-space:nowrap;
    opacity:0;pointer-events:none;transition:opacity .2s ease;
  }
  .side-nav button:hover .label{opacity:1;}
  @media (max-width:820px){ .side-nav{display:none;} }

  /* ---------- layout scaffolding ---------- */
  main{position:relative;z-index:2;scroll-snap-type:y proximity;}
  section{
    scroll-snap-align:start;
    min-height:100vh;
    display:flex;
    align-items:center;
    padding:min(9vw,96px) min(9vw,88px);
    position:relative;
    border-bottom:1px solid var(--line);
  }
  section > .inner{width:100%;max-width:1180px;margin:0 auto;}

  .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--accent-soft);margin-bottom:22px;
  }
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--accent-soft);}

  /* ---------- hero ---------- */
  .hero .kicker{
    font-family:var(--font-mono);font-size:13px;color:var(--slate-400);
    letter-spacing:.08em;margin-bottom:34px;
  }
  .hero h1{
    font-size:clamp(3rem,8vw,6.4rem);
    line-height:.98;
    font-weight:700;
  }
  .hero h1 em{
    font-style:normal;color:var(--accent);
    font-weight:800;
  }
  .hero .dates{
    margin-top:28px;
    font-family:var(--font-mono);
    font-size:clamp(1.1rem,2.2vw,1.5rem);
    color:var(--gold-300);
    letter-spacing:.02em;
  }
  .hero .lede{
    margin-top:30px;max-width:52ch;
    font-size:1.2rem;color:var(--cream-200);font-weight:400;
  }
  .hero .meta{
    margin-top:56px;display:flex;gap:36px;flex-wrap:wrap;
    font-family:var(--font-mono);font-size:12px;color:var(--slate-500);text-transform:uppercase;letter-spacing:.08em;
  }
  .hero .meta strong{display:block;color:var(--text-dim);font-size:10.5px;margin-bottom:6px;font-weight:500;}
  .hero .meta em{font-style:normal;color:var(--cream-200);}

  /* ---------- context section ---------- */
  .context-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start;}
  @media (max-width:900px){ .context-grid{grid-template-columns:1fr;} }
  .context-grid h2{font-size:clamp(1.9rem,3.4vw,2.7rem);}
  .context-grid .lede{margin-top:24px;font-size:1.12rem;color:var(--cream-200);max-width:56ch;}
  .context-grid .lede + .lede{margin-top:16px;}

  .pillar-preview{
    border:1px solid var(--line);border-radius:6px;padding:26px 26px 24px;
    background:linear-gradient(180deg, rgba(243,238,225,0.02), transparent);
  }
  .pillar-preview + .pillar-preview{margin-top:18px;}
  .pillar-preview .tag-pill{font-size:11px;}
  .pillar-preview h3{font-size:1.3rem;margin-top:10px;}
  .pillar-preview p{margin-top:10px;color:var(--text-dim);font-size:.96rem;}

  .tag-pill{
    display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
    padding:5px 12px;border-radius:999px;
  }
  .tag-pill.viagens{background:rgba(153,0,204,0.08);color:var(--gold-300);}
  .tag-pill.cambio{background:rgba(153,0,204,0.08);color:var(--gold-300);}

  /* ---------- pillar sections (viagens / cambio) ---------- */
  .pillar-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:52px;}
  .pillar-head h2{font-size:clamp(2.4rem,5.2vw,4rem);max-width:14ch;}
  .pillar-icon{flex-shrink:0;}

  .pillar-lede{font-size:1.18rem;color:var(--cream-200);max-width:62ch;margin-bottom:48px;}

  .feature-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:48px;}
  .feature-row.cols-3{grid-template-columns:repeat(3,1fr);}
  .feature-row.cols-4{grid-template-columns:repeat(4,1fr);}
  @media (max-width:760px){ .feature-row{grid-template-columns:1fr;} }
  @media (min-width:761px) and (max-width:980px){ .feature-row.cols-3,.feature-row.cols-4{grid-template-columns:1fr 1fr;} }
  .feature-card{
    border:1px solid var(--line);padding:28px 26px;border-radius:6px;
    background:var(--surface);
  }
  .feature-card .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);}
  .feature-card h3{font-size:1.45rem;margin-top:12px;font-weight:600;}
  .feature-card p{margin-top:12px;color:var(--text-dim);font-size:.98rem;}

  .rules-block{border-top:1px solid var(--line);padding-top:32px;}
  .rules-block .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin-bottom:18px;display:block;}
  .rules-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  @media (max-width:760px){ .rules-list{grid-template-columns:1fr;} }
  .rules-list li{
    font-size:.98rem;color:var(--cream-200);padding-left:30px;position:relative;
  }
  .rules-list li::before{
    content:attr(data-n);position:absolute;left:0;top:-2px;
    font-family:var(--font-mono);font-size:11px;color:var(--accent-soft);
    border:1px solid var(--line-strong);width:20px;height:20px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
  }
  .rules-note{margin-top:26px;font-size:.9rem;color:var(--text-dim);font-style:italic;font-family:var(--font-body);}

  /* ---------- cambio comparison ---------- */
  .compare{display:grid;grid-template-columns:1fr auto 1fr;gap:32px;align-items:center;margin-bottom:44px;}
  .compare.solo{grid-template-columns:1fr;max-width:560px;margin-left:0;margin-right:auto;}
  .campaign-label{font-family:var(--font-mono);font-size:1.05rem;color:var(--text-dim);letter-spacing:.04em;margin-bottom:2px;}
  @media (max-width:760px){ .compare{grid-template-columns:1fr;} .compare .arrow{transform:rotate(90deg);justify-self:center;} }
  .compare .side{border:1px solid var(--line);padding:26px;border-radius:6px;}
  .compare .side.old{opacity:.72;}
  .compare .side.new{border-color:var(--line-strong);background:linear-gradient(180deg, rgba(153,0,204,0.05), transparent);}
  .compare .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);}
  .compare .side.new .k{color:var(--gold-300);}
  .compare .amount{font-family:var(--font-mono);font-size:1.5rem;margin-top:12px;color:var(--text);font-variant-numeric:tabular-nums;}
  .compare .amount b{color:var(--accent);}
  .compare .side p.desc{margin-top:10px;color:var(--text-dim);font-size:.92rem;}
  .compare .arrow{color:var(--slate-500);font-size:1.4rem;}

  .callout{
    text-align:center;padding:44px 20px;border:1px solid var(--line-strong);border-radius:6px;
    background:linear-gradient(180deg, rgba(153,0,204,0.04), transparent);margin-bottom:32px;
  }
  .callout .amt{
    font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums;
    font-size:clamp(2.2rem,5vw,3.4rem);color:var(--text);
  }
  .callout .amt b{color:var(--accent);}
  .callout .amt .arrow-sep{color:var(--slate-500);margin:0 18px;font-weight:400;}
  .callout .cap{margin-top:14px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);}
  .tagline{
    text-align:center;font-family:var(--font-display);font-weight:700;
    font-size:clamp(1.4rem,3vw,2rem);color:var(--gold-300);letter-spacing:-.01em;
    line-height:1.15;
  }
  .vtm-note{max-width:56ch;margin:28px auto 0;text-align:center;font-size:.94rem;color:var(--text-dim);}

  /* ---------- recap table ---------- */
  .recap-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
  @media (max-width:760px){ .recap-grid{grid-template-columns:1fr;} }
  .recap-col{background:var(--navy-950);padding:32px 30px;}
  .recap-col h3{font-size:1.5rem;margin-bottom:22px;}
  .recap-row{padding:14px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:110px 1fr;gap:14px;}
  .recap-row:first-of-type{border-top:none;}
  .recap-row .k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);padding-top:2px;}
  .recap-row .v{font-size:.98rem;color:var(--cream-200);}

  /* ---------- timeline ---------- */
  .timeline{display:flex;flex-direction:column;gap:0;max-width:840px;}
  .tl-item{display:grid;grid-template-columns:56px 1fr;gap:24px;padding:26px 0;border-top:1px solid var(--line);}
  .tl-item:first-child{border-top:none;}
  .tl-num{font-family:var(--font-mono);font-size:13px;color:var(--accent-soft);padding-top:3px;}
  .tl-item h3{font-size:1.2rem;font-weight:600;}
  .tl-item p{margin-top:8px;color:var(--text-dim);font-size:.95rem;max-width:60ch;}

  /* ---------- closing ---------- */
  .closing .inner{max-width:920px;}
  .closing h2{font-size:clamp(2.2rem,4.6vw,3.4rem);margin-bottom:40px;}
  .ask-list{list-style:none;margin:0 0 56px;padding:0;display:flex;flex-direction:column;gap:0;}
  .ask-list li{
    display:flex;gap:20px;padding:22px 0;border-top:1px solid var(--line);font-size:1.08rem;color:var(--cream-200);
  }
  .ask-list li:first-child{border-top:none;}
  .ask-list li::before{content:"—";color:var(--accent);flex-shrink:0;}
  .sign-off{
    border-top:1px solid var(--line-strong);padding-top:30px;
    display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;
  }
  .sign-off .brand{font-family:var(--font-display);font-weight:700;font-size:1.3rem;letter-spacing:-.01em;}
  .sign-off .brand span{color:var(--accent);}
  .sign-off .when{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase;}

  .ref-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:22px;margin-bottom:40px;}
  .ref-grid.thirds{grid-template-columns:repeat(3,1fr);}
  @media (max-width:900px){ .ref-grid{grid-template-columns:1fr;} }
  .ref-card{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface);display:flex;flex-direction:column;}
  .ref-card img{width:100%;height:220px;object-fit:cover;object-position:top;display:block;}
  .ref-card.featured{border-color:var(--gold-500);box-shadow:0 0 0 1px var(--gold-500);}
  .ref-card.featured img{height:280px;}
  .ref-cap{padding:14px 16px;font-size:.86rem;color:var(--text-dim);border-top:1px solid var(--line);}
  .ref-note{border:1px dashed var(--line-strong);border-radius:6px;padding:24px 26px;}
  .ref-note .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);display:block;margin-bottom:10px;}
  .ref-note-text{color:var(--cream-200);font-style:italic;}

  .ref-solo-frame{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--navy-800);max-width:min(920px,100%);margin:0 auto;}
  .ref-solo-frame.featured{border-color:var(--gold-500);box-shadow:0 0 0 1px var(--gold-500);}
  .ref-solo-frame img{display:block;width:auto;max-width:100%;max-height:66vh;margin:0 auto;}
  .ref-solo-cap{margin-top:20px;font-size:.98rem;color:var(--text-dim);text-align:center;max-width:60ch;margin-left:auto;margin-right:auto;}

  .margin-flow{border:1px solid var(--line);border-radius:6px;padding:32px 30px;margin-bottom:44px;background:var(--surface);}
  .margin-flow .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);display:block;margin-bottom:10px;}
  .margin-flow-intro{font-size:.95rem;color:var(--text-dim);max-width:64ch;margin-bottom:28px;}
  .margin-flow-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
  .mf-step{display:flex;flex-direction:column;gap:6px;}
  .mf-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);}
  .mf-value{font-family:var(--font-mono);font-size:1.5rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;}
  .mf-step.highlight .mf-value{color:var(--accent);}
  .mf-op{font-family:var(--font-mono);font-size:1.4rem;color:var(--text-dim);}
  .margin-flow-result{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);font-size:1.02rem;color:var(--cream-200);}
  .margin-flow-result b{color:var(--accent);}
  @media (max-width:640px){ .margin-flow-row{flex-direction:column;align-items:flex-start;} .mf-op{align-self:flex-start;margin-left:2px;} }

  .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none;transition:none;} }