/* The docs pages. Colours, the top bar and buttons come from base.css. */
body { overflow-x: hidden; }
.skip { left: -999px; position: absolute; }
.skip:focus { background: var(--ink-3); left: 16px; padding: 6px 10px; top: 8px; z-index: 20; }

.shell { display: grid; gap: 0; grid-template-columns: 264px minmax(0, 1fr); margin: 0 auto; max-width: 1280px; position: relative; }
.shell::before { background: radial-gradient(closest-side, rgba(47, 111, 237, 0.22), transparent); content: ""; height: 560px; left: 30%; max-width: 60%; pointer-events: none; position: absolute; top: -120px; width: 820px; }

.side { align-self: start; padding: 32px 16px 32px 24px; position: sticky; top: 62px; }
.side p { color: var(--dim); font: 600 12.5px ui-monospace, Consolas, monospace; letter-spacing: 0.08em; margin: 0 0 10px 12px; text-transform: uppercase; }
.side ul { list-style: none; margin: 0; padding: 0; }
.side li { margin: 0 0 2px; }
.side a { border-radius: 8px; color: var(--dim); display: block; font-size: 15.5px; padding: 8px 12px; text-decoration: none; transition: background 0.15s, color 0.15s; }
.side a:hover { background: var(--ink-2); color: var(--text); }
.side a[aria-current] { background: var(--blue); box-shadow: 0 6px 20px rgba(47, 111, 237, 0.35); color: #fff; font-weight: 600; }

main { max-width: 880px; padding: 44px 40px 56px; position: relative; width: 100%; }
h1, h2, h3, h4 { letter-spacing: -0.02em; line-height: 1.15; }
h1 { font-size: clamp(36px, 4.6vw, 54px); font-weight: 800; margin: 0 0 14px; }
h2 { font-size: 28px; margin: 48px 0 12px; }
h3 { font-size: 21px; margin: 34px 0 8px; }
h4 { font-size: 16px; margin: 0 0 6px; }
.lead { color: var(--body); font-size: 20px; line-height: 1.5; margin-top: 0; max-width: 680px; }
.eyebrow { color: var(--blue-2); font: 600 14px/1 ui-monospace, "Cascadia Code", Consolas, monospace; letter-spacing: 0.08em; margin: 0 0 14px; text-transform: uppercase; }
.page-hero { margin: 0 0 30px; }
p, ul, ol { margin: 0 0 14px; }
main p, main li { color: var(--body); }
main b, main strong { color: var(--text); }
li { margin-bottom: 5px; }

code { background: var(--ink-3); border-radius: 5px; color: #dbe6ff; font: 0.88em ui-monospace, "Cascadia Code", Consolas, Menlo, monospace; overflow-wrap: anywhere; padding: 2px 6px; }
pre { background: var(--ink-2); border: 1px solid var(--line); border-radius: 10px; margin: 0 0 16px; overflow-x: auto; padding: 14px 16px; }
pre code { background: none; overflow-wrap: normal; padding: 0; }

.wide { border: 1px solid var(--line); border-radius: 12px; margin: 0 0 18px; overflow-x: auto; }
table { border-collapse: collapse; font-size: 15.5px; width: 100%; }
th, td { border-bottom: 1px solid var(--line); padding: 10px 14px; text-align: left; vertical-align: top; }
tr:last-child td { border-bottom: 0; }
th { background: var(--ink-2); color: var(--dim); font-size: 13.5px; font-weight: 600; }
td { color: var(--body); }
td code { overflow-wrap: normal; white-space: nowrap; }
.wide table { min-width: 560px; }

.note { background: var(--ink-2); border: 1px solid var(--line); border-left: 3px solid var(--blue); border-radius: 0 12px 12px 0; margin: 0 0 18px; padding: 14px 18px; }
.note p:last-child { margin-bottom: 0; }

/* the loop on the Overview page */
.loop { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 18px 0 8px; padding: 0; }
.loop li { background: var(--ink-2); border: 1px solid var(--line); border-radius: 12px; color: var(--body); font-size: 15px; line-height: 1.35; margin: 0; padding: 12px 14px; }
.loop b { color: var(--text); display: block; }
.loop .you { background: var(--you-bg); border-color: var(--you); }
.loop .you b { color: var(--you); }
.key { color: var(--dim); font-size: 14.5px; }
.key span { color: var(--you); font-weight: 600; }

.setting { background: var(--ink-2); border: 1px solid var(--line); border-radius: 12px; margin: 0 0 12px; padding: 16px 18px 6px; scroll-margin-top: 76px; }
.setting dl { display: grid; font-size: 15px; gap: 2px 12px; grid-template-columns: 96px minmax(0, 1fr); margin: 0 0 12px; }
.setting dt { color: var(--dim); }
.setting dd { color: var(--body); margin: 0; }
.setting pre { background: var(--ink); }
.qa { background: var(--ink-2); border: 1px solid var(--line); border-radius: 12px; margin: 0 0 12px; padding: 4px 20px 8px; scroll-margin-top: 76px; }
.qa h2 { font-size: 20px; margin: 14px 0 8px; }

/* things to say, the steps of a day, films */
.say { background: var(--blue); border-radius: 14px 14px 14px 3px; color: #fff !important; display: inline-block; font-weight: 500; margin: 2px 0 12px; max-width: 100%; overflow-wrap: anywhere; padding: 9px 15px; }
.day { counter-reset: d; list-style: none; margin: 34px 0 8px; padding: 0; }
.day > li { border-left: 2px solid var(--line); counter-increment: d; margin: 0; padding: 0 0 30px 34px; position: relative; }
.day > li:last-child { border-left-color: transparent; padding-bottom: 10px; }
.day > li::before { align-items: center; background: var(--blue); border-radius: 50%; color: #fff; content: counter(d); display: flex; font-size: 15px; font-weight: 700; height: 34px; justify-content: center; left: -18px; position: absolute; top: -2px; width: 34px; }
.day h2 { font-size: 23px; margin: 2px 0 10px; }
.ask-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 14px 0 22px; }
.ask-grid > div { background: var(--ink-2); border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; }
.ask-grid p:last-child { color: var(--dim); font-size: 15.5px; margin: 0; }
.checks { list-style: none; padding: 0; }
.checks li { padding-left: 30px; position: relative; }
.checks li::before { color: var(--blue-2); content: "\2713"; font-weight: 700; left: 4px; position: absolute; }
.film { background: var(--ink-2); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4); margin: 18px 0 24px; overflow: hidden; }
.film video { aspect-ratio: 16 / 9; background: #000; display: block; width: 100%; }
.film figcaption { color: var(--dim); font-size: 15px; padding: 10px 14px; }
.film figcaption b { display: block; }
.film-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.film-grid .film { margin: 0; }

.pager { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 52px; }
.pager a { background: var(--ink-2); border: 1px solid var(--line); border-radius: 12px; color: var(--text); display: block; font-weight: 600; padding: 14px 18px; text-decoration: none; transition: border-color 0.15s, transform 0.15s; }
.pager a:hover { border-color: var(--blue-2); transform: translateY(-2px); }
.pager span { color: var(--dim); display: block; font-size: 13.5px; font-weight: 500; }
.pager .next { grid-column: 2; text-align: right; }

@media (max-width: 940px) {
  .shell { display: block; }
  .shell::before { display: none; }
  .side { padding: 12px 16px 0; position: static; }
  .side p { display: none; }
  .side ul { display: flex; gap: 4px; margin: 0 -16px; overflow-x: auto; padding: 0 16px 8px; }
  .side li { flex: none; margin: 0; }
  .side a { font-size: 14.5px; padding: 6px 10px; }
  main { padding: 24px 16px 44px; }
  .loop { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ask-grid, .film-grid { grid-template-columns: minmax(0, 1fr); }
  .day > li { padding-left: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .side a, .pager a { transition: none; }
}
