:root{
    color-scheme: light;
    --cream:#FBF4EC;
    --cream-soft:#F5EBDF;
    --card:#FFFDF9;
    --olive:#75824A;
    --olive-deep:#4E5934;
    --pink:#F0B9C6;
    --pink-deep:#D98BA0;
    --ink:#3B3626;
    --ink-soft:#6b6454;
    --ring: rgba(117,130,74,0.45);
    --shadow: 0 18px 40px -22px rgba(59,54,38,0.35);
  }
  :root:not([data-theme="light"]){
  }

  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:'Poppins',sans-serif;
    min-height:100vh;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:32px 16px 60px;
    position:relative;
    overflow-x:hidden;
    transition:background .3s ease, color .3s ease;
  }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  .leaf-corner{
    position:fixed;
    width:220px; height:220px;
    opacity:.55;
    pointer-events:none;
    z-index:0;
  }
  .leaf-corner.tl{ top:-30px; left:-30px; }
  .leaf-corner.br{ bottom:-30px; right:-30px; transform:rotate(180deg); }

  .wrap{
    position:relative;
    z-index:1;
    width:100%;
    max-width:460px;
  }

  .brand{
    text-align:center;
    margin-bottom:22px;
  }
  .brand .mark{
    font-family:'Alex Brush', cursive;
    font-size:2.6rem;
    color:var(--olive-deep);
    line-height:1;
  }
  .brand .mark span{ color:var(--pink-deep); }
  .brand .tag{
    font-size:.82rem;
    color:var(--ink-soft);
    margin-top:2px;
    letter-spacing:.02em;
  }

  .card{
    background:var(--card);
    border-radius:28px 28px 12px 28px;
    box-shadow:var(--shadow);
    padding:34px 28px 30px;
    position:relative;
    overflow:hidden;
  }

  .progress-line{
    display:flex;
    gap:6px;
    margin-bottom:22px;
  }
  .progress-line i{
    flex:1;
    height:4px;
    border-radius:4px;
    background:var(--cream-soft);
    overflow:hidden;
  }
  .progress-line i em{
    display:block;
    height:100%;
    width:0%;
    background:var(--olive);
    border-radius:4px;
    transition:width .35s ease;
  }
  .progress-line i.done em{ width:100%; }

  .step-label{
    font-size:.78rem;
    color:var(--ink-soft);
    margin-bottom:10px;
  }

  h1.intro-title{
    font-family:'Alex Brush', cursive;
    font-size:2rem;
    color:var(--olive-deep);
    margin:0 0 6px;
    line-height:1.15;
  }
  .intro-body p{
    font-size:.98rem;
    line-height:1.55;
    color:var(--ink);
    margin:0 0 14px;
  }
  .intro-body ul{
    margin:0 0 22px;
    padding-left:0;
    list-style:none;
  }
  .intro-body li{
    display:flex;
    gap:10px;
    align-items:flex-start;
    font-size:.92rem;
    color:var(--ink-soft);
    margin-bottom:8px;
    line-height:1.4;
  }
  .intro-body li svg{ flex:none; margin-top:2px; }

  .q-text{
    font-size:1.14rem;
    font-weight:600;
    line-height:1.4;
    margin:0 0 20px;
    color:var(--ink);
  }

  .options{
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .opt{
    text-align:left;
    border:1.5px solid var(--cream-soft);
    background:var(--cream);
    color:var(--ink);
    border-radius:14px;
    padding:14px 16px;
    font-family:inherit;
    font-size:.94rem;
    line-height:1.4;
    cursor:pointer;
    transition:border-color .2s ease, background .2s ease, transform .12s ease;
  }
  .opt:hover{ border-color:var(--olive); }
  .opt:focus-visible{
    outline:3px solid var(--ring);
    outline-offset:2px;
  }
  .opt:active{ transform:scale(0.99); }

  .btn-primary{
    display:inline-block;
    width:100%;
    text-align:center;
    background:var(--olive);
    color:#fff;
    border:none;
    border-radius:14px;
    padding:15px 18px;
    font-family:inherit;
    font-weight:600;
    font-size:1rem;
    cursor:pointer;
    transition:background .2s ease;
  }
  .btn-primary:hover{ background:var(--olive-deep); }
  .btn-primary:focus-visible{ outline:3px solid var(--ring); outline-offset:2px; }

  .btn-ghost{
    display:inline-block;
    width:100%;
    text-align:center;
    background:transparent;
    color:var(--ink-soft);
    border:1.5px solid var(--cream-soft);
    border-radius:14px;
    padding:13px 18px;
    font-family:inherit;
    font-weight:500;
    font-size:.9rem;
    cursor:pointer;
    margin-top:10px;
  }
  .btn-ghost:focus-visible{ outline:3px solid var(--ring); outline-offset:2px; }

  .result-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:var(--cream-soft);
    color:var(--olive-deep);
    padding:7px 16px;
    border-radius:999px;
    font-size:.82rem;
    font-weight:600;
    margin-bottom:14px;
  }

  h2.result-title{
    font-family:'Alex Brush', cursive;
    font-size:2.4rem;
    color:var(--pink-deep);
    margin:0 0 8px;
    line-height:1;
  }
  .result-desc{
    font-size:.96rem;
    line-height:1.55;
    color:var(--ink);
    margin:0 0 24px;
  }

  .pillars{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-bottom:26px;
  }
  .pillar{
    display:flex;
    gap:14px;
    align-items:flex-start;
    background:var(--cream);
    border-radius:16px;
    padding:14px 16px;
  }
  .pillar .icon{
    flex:none;
    width:38px; height:38px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .pillar.cuerpo .icon{ background:var(--olive); }
  .pillar.mente .icon{ background:var(--pink); }
  .pillar.alma .icon{ background:var(--olive); }
  .pillar.corazon .icon{ background:var(--pink); }
  .pillar h3{
    margin:0 0 3px;
    font-size:.86rem;
    letter-spacing:.03em;
    color:var(--olive-deep);
  }
  .pillar p{
    margin:0;
    font-size:.9rem;
    line-height:1.42;
    color:var(--ink);
  }

  .cta-box{
    text-align:center;
    border-top:1.5px dashed var(--cream-soft);
    padding-top:20px;
  }
  .cta-box p{
    font-size:.88rem;
    color:var(--ink-soft);
    margin:0 0 14px;
    line-height:1.5;
  }
  .cta-box .handle{
    color:var(--olive-deep);
    font-weight:600;
  }

  .hidden{ display:none !important; }

  footer.small{
    text-align:center;
    margin-top:18px;
    font-size:.74rem;
    color:var(--ink-soft);
  }

  /* moved from inline attribute (strict CSP) */
  .cta-box a.btn-primary{ text-decoration:none; box-sizing:border-box; }
