
:root{
  --ground:#F4F6F9; --surface:#FFFFFF; --surface-2:#EAEEF4; --surface-3:#F7F9FC;
  --ink:#131820; --ink-soft:#525E6D; --ink-faint:#7B8695;
  --line:#DBE1E9; --line-soft:#E8ECF2;
  --accent:#1B56C0; --accent-soft:#E4EBFA; --accent-ink:#1B56C0;
  --hot:#C21C29; --hot-soft:#FBE7E9;
  --done:#0F7A4F; --done-soft:#E2F4EC; --done-line:#9ED4BC;
  --shadow:0 1px 2px rgba(19,24,32,.05), 0 10px 30px -18px rgba(19,24,32,.28);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ground:#0D1118; --surface:#161C26; --surface-2:#1D2531; --surface-3:#131A23;
    --ink:#E7EBF2; --ink-soft:#98A3B3; --ink-faint:#6D7888;
    --line:#252D3A; --line-soft:#1F2733;
    --accent:#6EA6FF; --accent-soft:#16243C; --accent-ink:#8FBCFF;
    --hot:#FF6470; --hot-soft:#2D191D;
    --done:#4FD49B; --done-soft:#12291F; --done-line:#265D45;
    --shadow:0 1px 2px rgba(0,0,0,.45), 0 10px 30px -18px rgba(0,0,0,.75);
  }
}
:root[data-theme="dark"]{
  --ground:#0D1118; --surface:#161C26; --surface-2:#1D2531; --surface-3:#131A23;
  --ink:#E7EBF2; --ink-soft:#98A3B3; --ink-faint:#6D7888;
  --line:#252D3A; --line-soft:#1F2733;
  --accent:#6EA6FF; --accent-soft:#16243C; --accent-ink:#8FBCFF;
  --hot:#FF6470; --hot-soft:#2D191D;
  --done:#4FD49B; --done-soft:#12291F; --done-line:#265D45;
  --shadow:0 1px 2px rgba(0,0,0,.45), 0 10px 30px -18px rgba(0,0,0,.75);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;
  font-size:16px; line-height:1.62; -webkit-font-smoothing:antialiased;
}
.bar{height:5px;background:linear-gradient(90deg,var(--accent) 0,var(--accent) 62%,var(--hot) 62%,var(--hot) 100%)}
.wrap{max-width:880px;margin:0 auto;padding:0 20px 100px}
a{color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}

/* ── topbar ── */
.topbar{
  position:sticky;top:0;z-index:20;
  background:color-mix(in srgb,var(--ground) 88%,transparent);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
}
.topbar-in{max-width:880px;margin:0 auto;padding:11px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.home{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;color:var(--ink-soft);white-space:nowrap;
}
.home:hover{color:var(--accent-ink)}
.topbar .prog{margin-left:auto;display:flex;align-items:center;gap:10px}
.who{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.06em;
  background:none;border:1px solid var(--line);color:var(--ink-soft);
  padding:5px 10px;border-radius:999px;cursor:pointer;
}
.who:hover{border-color:var(--accent);color:var(--accent-ink)}

/* ── type ── */
h1{
  font-family:Archivo,"Segoe UI",sans-serif;font-weight:800;
  font-size:clamp(2.3rem,7vw,3.9rem);line-height:1.02;letter-spacing:-.03em;
  margin:0;text-wrap:balance;
}
.lede{max-width:60ch;color:var(--ink-soft);font-size:1.0625rem;margin:14px 0 0}
.eyebrow{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);
  display:flex;flex-wrap:wrap;gap:7px 14px;align-items:center;margin-bottom:18px;
}
.eyebrow .dot{width:4px;height:4px;border-radius:50%;background:var(--hot)}
header.mast{padding:48px 0 30px;border-bottom:1px solid var(--line)}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.fact{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;padding:6px 10px;border-radius:3px;
  background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);
}
.fact strong{color:var(--ink);font-weight:600}
.fact.warn{background:var(--hot-soft);border-color:var(--hot);color:var(--hot);font-weight:600}

/* ── progress ── */
.progress{display:flex;align-items:center;gap:9px}
.track{width:110px;height:6px;border-radius:999px;background:var(--line);overflow:hidden;flex:none}
.fill{height:100%;width:0;background:var(--done);border-radius:999px;transition:width .35s ease}
.ptext{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;font-weight:500;
  font-variant-numeric:tabular-nums;color:var(--ink-soft);white-space:nowrap;
}

/* ── index cards ── */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:34px}
.card{
  display:block;text-decoration:none;color:inherit;background:var(--surface);
  border:1px solid var(--line);border-radius:7px;padding:24px;box-shadow:var(--shadow);
  transition:border-color .18s ease, transform .18s ease;
}
.card:hover{border-color:var(--accent);transform:translateY(-2px)}
.card h2{font-family:Archivo,sans-serif;font-weight:700;font-size:1.5rem;letter-spacing:-.02em;margin:0 0 8px}
.card p{margin:0 0 18px;color:var(--ink-soft);font-size:.9375rem}
.card .meta{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}

/* ── ad ── */
.seclabel{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-faint);margin:52px 0 18px;
  display:flex;align-items:center;gap:14px;
}
.seclabel::after{content:"";flex:1;height:1px;background:var(--line)}

.ad{
  background:var(--surface);border:1px solid var(--line);border-radius:7px;
  box-shadow:var(--shadow);overflow:hidden;margin-bottom:38px;
}
.ad-head{padding:26px 26px 22px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.ad-top{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap}
.adnum{
  font-family:Archivo,sans-serif;font-weight:800;font-size:2.5rem;line-height:.88;
  letter-spacing:-.045em;color:var(--accent);font-variant-numeric:tabular-nums;flex:none;
}
.ad-top h2{
  font-family:Archivo,sans-serif;font-weight:700;font-size:clamp(1.3rem,4vw,1.8rem);
  letter-spacing:-.022em;line-height:1.13;margin:0;flex:1 1 260px;text-wrap:balance;
}
.angle{margin:14px 0 0;color:var(--ink-soft);font-size:.9375rem;max-width:64ch}
.angle b{color:var(--ink);font-weight:600}
.specs{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.spec{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.07em;
  text-transform:uppercase;padding:5px 9px;border-radius:3px;white-space:nowrap;
  border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);
}

.block{padding:26px}
.block + .block{border-top:1px solid var(--line)}
.blocklabel{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.17em;
  text-transform:uppercase;color:var(--hot);font-weight:600;margin:0 0 20px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.blocklabel .count{color:var(--ink-faint);font-weight:400;letter-spacing:.08em}

/* ── beats ── */
.beat{display:grid;grid-template-columns:86px minmax(0,1fr);gap:0 18px;padding:16px 0;border-top:1px solid var(--line-soft)}
.beat:first-of-type{border-top:0;padding-top:0}
.tc{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--accent-ink);padding-top:3px}
.tc span{display:block;color:var(--ink-faint);font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-top:5px;font-weight:400}
.line{margin:0 0 11px}
.line:last-child{margin-bottom:0}
.cue{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-faint);font-weight:500;display:block;margin-bottom:3px;
}
.line.voz p{font-size:1.0625rem;line-height:1.58;margin:0}
.line.audio p,.line.imagen p{margin:0;color:var(--ink-soft);font-size:.9375rem}
.line.pantalla p{
  font-family:Archivo,sans-serif;font-weight:700;font-size:.9375rem;margin:0;
  border-left:3px solid var(--hot);padding:3px 0 3px 12px;letter-spacing:-.003em;
}
@media (max-width:620px){
  .beat{grid-template-columns:minmax(0,1fr);gap:10px 0}
  .tc{display:flex;align-items:baseline;gap:10px;padding-top:0}
  .tc span{margin-top:0}
}

/* ── shots ── */
ol.shots{list-style:none;margin:0;padding:0;counter-reset:shot}
ol.shots li{
  counter-increment:shot;display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  gap:4px 14px;align-items:start;
  padding:15px 0;border-top:1px solid var(--line-soft);
}
ol.shots li:first-child{border-top:0;padding-top:0}
ol.shots li::before{
  content:counter(shot,decimal-leading-zero);grid-row:1/3;
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;font-weight:600;
  font-variant-numeric:tabular-nums;color:var(--ink-faint);padding-top:4px;
}
.shottype{
  grid-column:2;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--hot);font-weight:600;
}
.shottxt{grid-column:2;margin:3px 0 0;font-size:.9688rem;line-height:1.55}
li.done .shottxt,li.done .shottype{opacity:.55}
.mark{grid-column:3;grid-row:1/3}
@media (max-width:560px){
  ol.shots li{grid-template-columns:30px minmax(0,1fr)}
  .mark{grid-column:2;grid-row:auto;margin-top:10px;justify-self:start}
}

/* ── ya grabé ── */
.mark{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
  padding:7px 13px;border-radius:999px;cursor:pointer;
  background:var(--surface-3);border:1px solid var(--line);color:var(--ink-soft);
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.mark:hover{border-color:var(--done);color:var(--done)}
.mark[aria-pressed="true"]{background:var(--done-soft);border-color:var(--done-line);color:var(--done)}
.mark[disabled]{opacity:.5;cursor:progress}
.stamp{
  grid-column:2;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;
  letter-spacing:.05em;color:var(--done);margin:7px 0 0;
}
.stamp:empty{display:none}

/* ── foot of card ── */
.ad-foot{
  border-top:1px solid var(--line);background:var(--surface-2);padding:22px 26px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px 30px;
}
.fi h4{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin:0 0 7px;
}
.fi p{margin:0;font-size:.9375rem;line-height:1.5;color:var(--ink-soft)}
.fi p.cta{font-family:Archivo,sans-serif;font-weight:700;font-size:1.0625rem;color:var(--ink);letter-spacing:-.01em}

/* ── notes ── */
.notes{margin-top:52px;padding:26px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:7px;background:var(--surface)}
.notes h3{font-family:Archivo,sans-serif;font-weight:700;font-size:1.2rem;letter-spacing:-.015em;margin:0 0 14px}
.notes ul{margin:0;padding-left:20px}
.notes li{margin-bottom:9px;color:var(--ink-soft)}
.notes li:last-child{margin-bottom:0}

footer.pf{
  margin-top:52px;padding-top:20px;border-top:1px solid var(--line);
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-faint);
  display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
