:root{
  --anil-900:#131E43;
  --anil-700:#22366F;
  --anil-500:#3557B8;
  --papel:#EDEEE8;
  --papel-2:#E3E5DC;
  --tinta:#15171E;
  --piedra:#6E7180;
  --rosa:#E5116B;
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Literata",Georgia,serif;
  --util:"Archivo",system-ui,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);color:var(--tinta);background:var(--papel)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
a{color:inherit}
:focus-visible{outline:2px solid var(--rosa);outline-offset:3px}

/* ---------------------------------------------------------------- landing */

.landing{background:var(--anil-900);color:var(--papel);min-height:100vh;
  display:flex;flex-direction:column}
.hero{flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(2rem,6vw,5rem) clamp(1.25rem,6vw,4rem)}
.hero-inner{max-width:56rem;width:100%;margin:0 auto}

.eyebrow{font-family:var(--util);font-size:.75rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--rosa);margin:0 0 1.75rem;font-weight:600}

.display{font-family:var(--display);font-weight:800;
  font-size:clamp(2.6rem,8.5vw,6.4rem);line-height:.94;letter-spacing:-.035em;
  margin:0 0 1.75rem;font-variation-settings:"wdth" 92}
.display em{font-style:normal;color:var(--rosa)}

.lede{max-width:38rem;font-size:clamp(1.03rem,1.9vw,1.25rem);line-height:1.6;
  color:#C6CADD;margin:0 0 2.75rem}

.composer{display:flex;gap:.6rem;max-width:44rem;flex-wrap:wrap}
.composer input{flex:1 1 20rem;min-width:0;font-family:var(--util);
  font-size:1.05rem;padding:1.05rem 1.2rem;border:1px solid #3A4670;
  border-radius:2px;background:#0D1633;color:var(--papel)}
.composer input::placeholder{color:#6C769C}
.composer input:focus{border-color:var(--rosa);outline:none}
.composer button{font-family:var(--util);font-weight:600;font-size:1.05rem;
  padding:1.05rem 2rem;border:0;border-radius:2px;background:var(--rosa);
  color:#fff;cursor:pointer;transition:background .15s}
.composer button:hover{background:#C40E5C}
.composer button:disabled{background:#4A4557;cursor:default}

.hint{font-family:var(--util);font-size:.85rem;color:#7C86AC;margin:.9rem 0 0}
.hint.error{color:#FF7BA8}

.progress{margin-top:2rem;max-width:44rem}
.bar{height:2px;background:#2A3660;overflow:hidden}
.bar span{display:block;height:100%;width:0;background:var(--rosa);
  transition:width .4s ease}
.progress-label{font-family:var(--util);font-size:.85rem;color:#9AA3C4;
  margin:.75rem 0 0}

.try{font-family:var(--util);font-size:.9rem;color:#7C86AC;margin:2.5rem 0 0}
.try a{color:var(--papel);text-underline-offset:3px}

.marks{list-style:none;display:grid;gap:1.5rem;
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  max-width:56rem;margin:clamp(3rem,7vw,5rem) auto 0;padding:2rem 0 0;
  border-top:1px solid #2A3660}
.marks li{font-family:var(--util);font-size:.92rem;line-height:1.55;color:#9AA3C4}
.marks strong{display:block;color:var(--papel);font-weight:600;margin-bottom:.3rem}

/* ----------------------------------------------------------------- reader */

.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;
  gap:1.25rem;padding:.85rem clamp(1rem,4vw,2.5rem);background:var(--anil-900);
  color:var(--papel);font-family:var(--util);font-size:.85rem}
.wordmark{font-family:var(--display);font-weight:700;font-size:1.05rem;
  text-decoration:none;letter-spacing:-.02em}
.topbar-meta{display:flex;gap:1.25rem;color:#8F99BE;margin-left:auto;
  align-items:center}
.topbar-meta a{color:#8F99BE;text-underline-offset:3px}
.topbar-meta a:hover{color:var(--papel)}
.toggle{font-family:var(--util);font-size:.82rem;font-weight:500;
  padding:.5rem .9rem;border:1px solid #3A4670;background:transparent;
  color:var(--papel);border-radius:2px;cursor:pointer;white-space:nowrap}
.toggle[aria-pressed="true"]{background:var(--rosa);border-color:var(--rosa)}

.page{max-width:42rem;margin:0 auto;padding:clamp(2.5rem,7vw,5rem)
  clamp(1.15rem,5vw,0) clamp(4rem,10vw,7rem)}

.masthead{margin-bottom:3rem;padding-bottom:2rem;
  border-bottom:1px solid var(--papel-2)}
.source{font-family:var(--util);font-size:.75rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--rosa);margin:0 0 1rem;font-weight:600}
.masthead h1{font-family:var(--display);font-weight:700;
  font-size:clamp(1.95rem,5.2vw,3.1rem);line-height:1.06;letter-spacing:-.028em;
  margin:0 0 1.1rem;font-variation-settings:"wdth" 95}
.byline{font-family:var(--util);font-size:.85rem;color:var(--piedra);margin:0}

.blk{position:relative;margin:0 0 1.6rem;padding:.15rem 0 .15rem 1.1rem;
  border-left:2px solid transparent;cursor:pointer;transition:border-color .18s}
.blk:hover{border-left-color:var(--papel-2)}
.blk.open{border-left-color:var(--rosa)}
.blk .es{font-size:1.115rem;line-height:1.72}
.blk .es p{margin:0 0 .9rem}
.blk .es p:last-child{margin-bottom:0}
.blk.h .es{font-family:var(--display);letter-spacing:-.022em;line-height:1.18}
.blk.h{margin-top:3rem;margin-bottom:1.1rem}
.blk.h1 .es,.blk.h2 .es{font-size:1.7rem;font-weight:700}
.blk.h3 .es{font-size:1.32rem;font-weight:700}
.blk.h4 .es,.blk.h5 .es,.blk.h6 .es{font-size:1.1rem;font-weight:600}
.blk.h .es h1,.blk.h .es h2,.blk.h .es h3,.blk.h .es h4{margin:0;font-size:inherit;
  font-weight:inherit;font-family:inherit;letter-spacing:inherit}
.blk.quote .es{font-style:italic;color:#3A3D4A}
.blk.quote .es blockquote{margin:0;padding:0;border:0}
.blk .es ul,.blk .es ol{margin:0;padding-left:1.35rem}
.blk .es li{margin-bottom:.5rem}
.blk .es a{color:var(--anil-500);text-underline-offset:2px}

.blk .en{margin-top:.95rem;padding:.9rem 0 .2rem;
  border-top:1px dashed var(--papel-2);font-family:var(--util);
  font-size:.94rem;line-height:1.62;color:#565968}
.blk .en p{margin:0 0 .7rem}
.blk .en p:last-child{margin-bottom:0}
.blk .en ul,.blk .en ol{margin:0;padding-left:1.3rem}

.endnote{margin-top:4.5rem;padding-top:2rem;border-top:1px solid var(--papel-2);
  font-family:var(--util);font-size:.85rem;color:var(--piedra)}
.endnote p{margin:0 0 1.4rem;max-width:30rem;line-height:1.6}
.again{display:inline-block;font-weight:600;color:var(--anil-900);
  text-underline-offset:4px}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}

/* precios + cuenta */
.packs{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
  max-width:56rem;margin:0 0 1.5rem}
.pack{border:1px solid #3A4670;padding:1.4rem;border-radius:2px;background:#0D1633}
.pack-name{font-family:var(--util);font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--rosa);margin:0 0 .8rem;font-weight:600}
.pack-price{font-family:var(--display);font-size:1.9rem;font-weight:700;
  margin:0 0 .35rem;letter-spacing:-.02em}
.pack-pages{font-family:var(--util);font-size:.88rem;color:#9AA3C4;margin:0 0 .3rem}
.pack-iva{font-family:var(--util);font-size:.76rem;color:#6C769C;margin:0 0 1.2rem}
.buy{width:100%;font-family:var(--util);font-weight:600;padding:.8rem;border:0;
  border-radius:2px;background:var(--rosa);color:#fff;cursor:pointer}
.buy:disabled{background:#4A4557}
.ledger{width:100%;max-width:38rem;border-collapse:collapse;margin:2.5rem 0 1.5rem;
  font-family:var(--util);font-size:.86rem}
.ledger th{text-align:left;color:#6C769C;font-weight:500;padding:.5rem 0;
  border-bottom:1px solid #2A3660;text-transform:uppercase;letter-spacing:.1em;
  font-size:.7rem}
.ledger td{padding:.6rem 0;border-bottom:1px solid #1E2A50;color:#C6CADD}
.ledger .neg{color:#FF7BA8}
.ledger .pos{color:#7FE0A8}
.signin{margin-top:1.6rem;max-width:34rem}
.signin input{flex:1 1 14rem}
.signin button{background:transparent;border:1px solid #3A4670;color:var(--papel)}
.signin button:hover{background:#1B2748}

/* brand slot — sized so a wide or square logo both behave */
.logo-hero{display:block;height:auto;max-height:64px;max-width:260px;
  margin:0 0 1.6rem;object-fit:contain}
.logo-img{display:block;height:26px;width:auto;max-width:170px;object-fit:contain}
@media (max-width:600px){.logo-hero{max-height:48px;max-width:200px}}
