
:root{
  --ground:#14161A;--ground-2:#1A1E23;--card:#20252B;
  --ink:#EDE9DF;--ink-2:#A9B1B9;--dim:#7F8993;--hair:#2B323A;
  --ember:#E2653B;--ember-deep:#B93C17;--ember-ink:#17110D;
  --shell:64rem;--read:34rem;--r:2px;
  --f-disp:"Archivo",-apple-system,"Segoe UI",system-ui,sans-serif;
  --f-body:"Newsreader",Georgia,"Times New Roman",serif;
}
[data-l]{display:none}
html:not([data-lang="es"]) [data-l="en"]{display:revert}
html[data-lang="es"] [data-l="es"]{display:revert}
span[data-l]{display:none}
html:not([data-lang="es"]) span[data-l="en"]{display:inline}
html[data-lang="es"] span[data-l="es"]{display:inline}

*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--f-body);
  font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}

h1,h2,h3,h4{font-family:var(--f-disp);font-weight:800;letter-spacing:-.028em;line-height:.98;
  text-wrap:balance;margin:0}

:focus-visible{outline:2px solid var(--ember);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2.5rem)}
.band{padding-block:clamp(3.5rem,9vw,6rem)}
.band--sunk{background:var(--ground-2)}
.stack{display:flex;flex-direction:column;gap:1.25rem}
.stack--lg{gap:2.25rem}
.read{max-width:var(--read)}
.rule{border:0;height:0;border-top:1px dashed var(--hair);margin:0}
.eyebrow{font-family:var(--f-disp);font-size:.6875rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:.75rem;margin:0}
.eyebrow::before{content:"";width:1.5rem;height:2px;background:var(--ember);flex:none}
.lede{font-size:clamp(1.0625rem,1.9vw,1.25rem);color:var(--ink-2);line-height:1.6}

.btn{font-family:var(--f-disp);font-weight:700;font-size:.9375rem;text-decoration:none;
  display:inline-flex;align-items:center;gap:.55rem;padding:.9rem 1.4rem;border-radius:var(--r);
  border:2px solid transparent;transition:transform .12s ease,background-color .12s ease,color .12s ease;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn--go{background:var(--ember);color:var(--ember-ink);border-color:var(--ember)}
.btn--line{border-color:currentColor;background:transparent}
.btn--line:hover{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}
/* A fixed-ratio frame with object-fit, not a free-height img: the photograph
   then cannot be squeezed no matter what the surrounding layout does to the
   box — a face out of shape is worse than a few cropped pixels. */
.shot{margin:0;border:1px solid var(--hair);border-radius:var(--r);overflow:hidden;background:var(--card)}
.shot__frame{position:relative;aspect-ratio:16/10;display:block}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.shot figcaption{font-family:var(--f-disp);font-size:.75rem;font-weight:600;letter-spacing:.02em;
  color:var(--steel);padding:.7rem .9rem}


.mark{min-width:0;flex:0 1 auto;overflow:hidden}
.top__right{flex:none}
.mark__txt .wshort{display:none}
.mark__txt .wlong{display:inline}

.top{position:sticky;top:0;z-index:50;background:rgba(20,22,26,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hair)}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:4.6rem}
.mark{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.mark__glyph{width:2.5rem;height:2.5rem;flex:none;color:var(--ember);fill:currentColor}
.mark__txt{font-family:var(--f-disp);font-weight:800;font-size:.9375rem;letter-spacing:-.01em;line-height:1.1}
.mark__sub{display:block;font-weight:500;font-size:.625rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ember)}
.top__right{display:flex;align-items:center;gap:.6rem}
.back{font-family:var(--f-disp);font-size:.75rem;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;text-decoration:none;color:var(--ember);
  border:1.5px solid var(--ember);border-radius:999px;padding:.42rem .8rem;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.35rem}
.back:hover{background:var(--ember);color:var(--ember-ink)}
.back .long{display:none}
@media(min-width:26rem){.back .short{display:none}.back .long{display:inline}}

.lang{display:inline-flex;align-items:center;gap:.15rem;border:1.5px solid var(--ember);
  border-radius:999px;padding:.15rem .3rem .15rem .5rem;flex:none;background:transparent}
.lang > svg{width:1rem;height:1rem;color:var(--ember);flex:none;margin-right:.15rem}
.lang button{font-family:var(--f-disp);font-size:.75rem;font-weight:800;letter-spacing:.06em;
  padding:.35rem .55rem;border:0;border-radius:999px;background:transparent;color:var(--ember);
  cursor:pointer;line-height:1.5;min-height:1.9rem}
.lang button[aria-pressed="true"]{background:var(--ember);color:var(--ember-ink)}
.lang button:not([aria-pressed="true"]):hover{background:color-mix(in srgb,var(--ember) 14%,transparent)}

.hero{padding-block:clamp(3.5rem,10vw,7rem) clamp(2.5rem,6vw,4rem);position:relative;overflow:hidden}
.eyebrow[data-l]{display:none}
html:not([data-lang="es"]) .eyebrow[data-l="en"],html[data-lang="es"] .eyebrow[data-l="es"]{display:flex}
.hero h1{font-size:clamp(3rem,12vw,7rem);line-height:.86;letter-spacing:-.045em}
.hero h1 em{font-style:normal;color:var(--ember);display:block}
.hero .lede{max-width:33rem;margin-top:1.75rem}
.hatch{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:repeating-linear-gradient(135deg,transparent 0 13px,var(--hair) 13px 14px);
  -webkit-mask-image:linear-gradient(200deg,transparent 55%,#000 100%);
  mask-image:linear-gradient(200deg,transparent 55%,#000 100%)}

.cols{display:grid;gap:2rem}
@media(min-width:52rem){
  .cols--3{grid-template-columns:repeat(3,1fr);gap:2.5rem}
  .cols--split{grid-template-columns:.85fr 1.15fr;gap:3.5rem;align-items:start}
}
.item{border-top:2px solid var(--ember);padding-top:1rem}
.item h3{font-size:1.125rem;margin-bottom:.5rem}
.item p{color:var(--ink-2);font-size:1rem}

.path{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--hair)}
.step{display:grid;grid-template-columns:1fr;gap:.4rem;padding:1.6rem 0;border-bottom:1px solid var(--hair)}
.step__n{font-family:var(--f-disp);font-weight:800;font-size:1.75rem;letter-spacing:-.04em;
  color:var(--ember);font-variant-numeric:tabular-nums;line-height:1}
.step h3{font-size:1.1875rem}
.step p{color:var(--ink-2);font-size:1rem;max-width:40rem}
@media(min-width:46rem){
  .step{grid-template-columns:5rem 1fr;column-gap:2rem;align-items:baseline}
  .step__n{grid-row:span 2}
  .path--times .step{grid-template-columns:8rem 1fr}
  .slot__when{grid-row:span 2}
}

.slot__when{font-family:var(--f-disp);font-weight:800;font-size:1.0625rem;letter-spacing:-.02em;
  color:var(--ember);font-variant-numeric:tabular-nums;line-height:1.2}
.slot__when small{display:block;font-size:.625rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);margin-top:.2rem}

.friday{display:grid;grid-template-columns:1fr;gap:.5rem;border:1px solid var(--hair);
  border-left:3px solid var(--ember);border-radius:var(--r);background:var(--ground-2);
  padding:1.15rem 1.35rem}
.friday__day{font-family:var(--f-disp);font-size:.6875rem;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ember)}
.friday h3{font-size:1.0625rem}
.friday p{color:var(--ink-2);font-size:1rem}
@media(min-width:46rem){.friday{grid-template-columns:8rem 1fr;column-gap:2rem;align-items:baseline;padding:1.35rem 1.6rem}}

.callout{border:1px solid var(--hair);border-left:3px solid var(--ember);background:var(--card);
  border-radius:var(--r);padding:clamp(1.35rem,3.5vw,2rem);display:flex;flex-direction:column;gap:.9rem}
.callout h2{font-size:clamp(1.5rem,4vw,2.125rem)}
.callout p{color:var(--ink-2)}
.callout strong{color:var(--ink)}

.field{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.chip{font-family:var(--f-disp);font-size:.75rem;font-weight:700;letter-spacing:.06em;
  border:1px solid var(--hair);border-radius:var(--r);padding:.4rem .7rem;color:var(--ink-2)}

.verse{font-family:var(--f-body);font-style:italic;font-size:clamp(1.375rem,3.4vw,1.875rem);
  line-height:1.35;max-width:30rem}
.verse cite{display:block;font-style:normal;font-family:var(--f-disp);font-size:.6875rem;
  font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-top:1.25rem}

.foot{border-top:1px solid var(--hair);padding-block:2.75rem 3.5rem;color:var(--ink-2);font-size:.9375rem}
.foot__grid{display:grid;gap:2rem}
@media(min-width:48rem){.foot__grid{grid-template-columns:1.3fr 1fr 1fr}}
.foot h4{font-size:.6875rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--dim);margin-bottom:.75rem}
.foot a{text-decoration:none;border-bottom:1px solid var(--hair)}
.foot a:hover{color:var(--ember);border-bottom-color:var(--ember)}
.foot__list{display:flex;flex-direction:column;gap:.5rem}
.colophon{margin-top:2.25rem;padding-top:1.25rem;border-top:1px dashed var(--hair);
  font-size:.75rem;color:var(--dim)}

/* narrow phones: keep the wordmark on one line so the controls stay reachable.
   Must live at the END of the sheet — it overrides header rules defined above. */
@media(max-width:29.99rem){
  .mark__txt{font-size:.8125rem;white-space:nowrap}
  .mark__txt .wlong{display:none}
  .mark__txt .wshort{display:inline}
  .mark__sub{display:none}
  .mark__glyph{width:2.1rem;height:2.1rem}
  .top__in{height:4rem;gap:.5rem}
  .cross,.back{padding:.4rem .6rem;font-size:.6875rem}
  .lang{padding:.15rem .25rem .15rem .4rem}
  .lang button{padding:.3rem .45rem}
}


/* ---- touch targets: nothing interactive under ~44px on a phone ---- */
@media(pointer:coarse),(max-width:47.99rem){
  .lang button{min-height:2.6rem;padding-inline:.7rem}
  .cross,.back{min-height:2.6rem}
  .mark{padding-block:.3rem}
  .foot a{display:inline-block;padding-block:.45rem}
  .foot__list{gap:.15rem}
  .nav a{padding-block:.7rem}
  .radios label{min-height:2.75rem;padding-inline:.95rem}
  .consent{padding-block:.35rem}
  .consent input{width:1.15rem;height:1.15rem}
}

@media(max-width:23rem){
  .top .shell{padding-inline:.85rem}
  .mark__glyph{width:1.85rem;height:1.85rem}
  .mark__txt{font-size:.75rem}
  .mark{gap:.5rem}
  .top__in{gap:.4rem}
  .cross,.back{padding:.38rem .5rem;font-size:.625rem;letter-spacing:.04em;min-height:2.5rem}
  .lang button{padding:.28rem .5rem;font-size:.6875rem;min-height:2.5rem}
  .lang > svg{width:.85rem;height:.85rem}
}
