/* Looming — the page is a run log. A time gutter on the left, entries down the page, monospace output,
   and a loom on the right that weaves one row for every entry read. Indigo and violet from Looming's banner. */
html[data-theme="light"] .mk.p-lm{--bg:#f4f4f9;--bg2:#eaeaf3;--fg:#1e1b4b;--fg2:#4b4a6b;--fg3:#72719a;--line:#dadaea;--a:#5a5bd8;--atx:#4a44d6;--b:#9a4de0;--th:#cfcfe6;
  --term:#1b1a3a;--termfg:#e7e6ff;--dim:#8e8db3;--ok:#13875e;--card:#fdfdff;color-scheme:light}
html[data-theme="dark"] .mk.p-lm{--bg:#0d0e1d;--bg2:#141529;--fg:#e7e6ff;--fg2:#b0afd6;--fg3:#8584ad;--line:#24254a;--a:#818cf8;--atx:#a5b4fc;--b:#c084fc;--th:#2a2b50;
  --term:#090a17;--termfg:#e7e6ff;--dim:#7d7ca6;--ok:#4ade80;--card:#121327;color-scheme:dark}
.p-lm{--sans:"Barlow","Noto Sans SC",sans-serif;--serif:"Source Serif 4","Noto Serif SC",serif}
.p-lm .pb{background:linear-gradient(90deg,var(--a),var(--b));color:#fff;border:0}
@media (hover:hover){.p-lm .pb:hover{filter:brightness(1.08)}}

/* hero: a prompt line, the title, a legend for sources */
.lm-hero{padding:80px 0 56px}
.lm-hero-in{max-width:980px;display:flex;flex-direction:column;gap:26px}
.lm-prompt{font:500 18px/1 var(--f-mono);color:var(--fg3)}
.lm-prompt span{color:var(--atx);margin-right:10px}
.lm-prompt::after{content:"";display:inline-block;width:10px;height:20px;background:var(--a);margin-left:8px;vertical-align:-4px;animation:lm-blink 1.1s steps(1) infinite}
@keyframes lm-blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.lm-prompt::after{animation:none}}
.lm-h1{font:500 84px/1.04 var(--sans);letter-spacing:-.025em}
.lm-h1 em{font:italic 500 84px/1.08 "Source Serif 4",serif;color:var(--atx);letter-spacing:-.03em}
.lm-h1 .zh{font:700 72px/1.22 var(--sans);letter-spacing:.01em}
.lm-h1 .zh em{font:700 72px/1.22 var(--sans);background:linear-gradient(90deg,var(--a),var(--b));-webkit-background-clip:text;background-clip:text;color:transparent}
.lm-hero .lede{font-size:19px;line-height:1.75;max-width:40em}
.lm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:14px;color:var(--fg3);padding-top:18px;border-top:1px solid var(--line)}

/* source badges */
.lg-src{display:inline-block;font:600 11px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 7px;border-radius:3px;white-space:nowrap}
.lg-src .zh{letter-spacing:.12em}
.lg-local{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
.lg-readme{background:color-mix(in srgb,var(--a) 16%,transparent);color:var(--atx)}
.lg-rule{background:color-mix(in srgb,var(--fg3) 16%,transparent);color:var(--fg2)}

/* the run: log + loom */
.p6 .lm-run{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:64px;align-items:start;padding-bottom:40px}
.lm-log{position:relative}
.lm-log::before{content:"";position:absolute;left:118px;top:8px;bottom:8px;width:1px;background:var(--line)}
.lg-e{display:grid;grid-template-columns:118px minmax(0,1fr);gap:0 36px;padding:26px 0;position:relative}
.lg-e::before{content:"";position:absolute;left:114px;top:33px;width:9px;height:9px;border-radius:50%;background:var(--bg);border:2px solid var(--a)}
.lg-t{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:2px}
.lg-t time{font:600 15px/1.2 var(--f-mono);color:var(--fg)}
.lg-b{display:flex;flex-direction:column;gap:12px;min-width:0}
.lg-cmd{font:600 16px/1.4 var(--f-mono)}
.lg-cmd code{color:var(--atx)}
.lg-cmd code::before{content:"$ ";color:var(--fg3)}
.lg-b h3{font:600 22px/1.3 var(--sans);letter-spacing:-.01em}
.lg-b h3 .zh{font-weight:700;font-size:21px}
.lg-b p{font-size:17px;line-height:1.8;color:var(--fg2);max-width:62ch}
.lg-b p b{color:var(--fg);font-family:var(--f-mono);font-weight:600;font-size:.92em}
.lg-out{margin:4px 0 0;background:var(--term);color:var(--termfg);padding:18px 20px;font:400 13.5px/1.7 var(--f-mono);overflow-x:auto;white-space:pre;border-radius:6px;border:1px solid color-mix(in srgb,var(--a) 22%,transparent)}
.lg-out .d{color:var(--dim)}.lg-out .g{color:#4ade80}
.lg-line{font:500 16px/1.6 var(--f-mono)!important;color:var(--fg)!important}
.lg-line b{font-weight:700;margin-right:8px}
.lg-line .ok{color:var(--ok)}.lg-line .run{color:var(--b)}.lg-line .stop{color:var(--fg3)}
.lg-line .c{color:var(--fg3);margin-left:10px;font-variant-numeric:tabular-nums}
.lg-e:has(.lg-rule){}

/* the loom: one weft row per entry read */
.lm-loom{position:sticky;top:96px}
.lm-loom-in{background:var(--card);border:1px solid var(--line);padding:0 0 14px}
.lm-beam{display:block;padding:12px 14px;border-bottom:5px solid var(--fg);font:600 12px/1 var(--f-mono);color:var(--fg2)}
.lm-cloth{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:repeating-linear-gradient(90deg,transparent 0 8px,var(--th) 8px 10px,transparent 10px 18px)}
.lm-cloth i{display:block;height:22px;border-radius:2px;transform-origin:left;
  background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--a) 70%,var(--card)) 0 18px,color-mix(in srgb,var(--b) 60%,var(--card)) 18px 36px);transition:transform .6s cubic-bezier(.65,0,.35,1),opacity .4s}
html.p6-js .lm-cloth i:not(.on){transform:scaleX(0);opacity:.2}
.lm-count{display:block;padding:0 14px;font:500 12px/1 var(--f-mono);color:var(--fg3)}
.lm-count b{color:var(--atx)}

/* after the log */
.p6 .lm-after{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px 64px;padding-top:40px;padding-bottom:24px;border-top:1px solid var(--line)}
.lm-cmp{grid-column:1/-1}
.lm-tbl{width:100%;border-collapse:collapse;min-width:620px;margin-top:14px;font-family:var(--f-mono)}
.lm-tbl th,.lm-tbl td{padding:13px 12px;border-bottom:1px dashed var(--line);text-align:center;font-size:14px}
.lm-tbl thead th{color:var(--fg3);font-weight:600;border-bottom:1px solid var(--fg)}
.lm-tbl tbody th{text-align:left;font:500 15px/1.4 var(--sans);color:var(--fg);padding-left:0}
.lm-tbl td{color:var(--fg3)}
.lm-tbl .me{color:var(--atx);font-weight:700;background:color-mix(in srgb,var(--a) 9%,transparent)}
.lm-cmp .note{margin-top:12px}
.lm-q{font:italic 400 22px/1.6 "Source Serif 4",serif;color:var(--fg);border-left:3px solid var(--a);padding-left:20px}
.lm-q .zh{font:400 19px/1.9 "Source Serif 4","Noto Serif SC",serif;font-style:normal}
.lm-note{margin-top:28px;background:var(--bg2);padding:18px 20px}
.lm-note>span{display:block;font:600 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:8px}
.lm-note .todo{font:italic 400 16px/1.7 "Source Serif 4","Noto Serif SC",serif;color:var(--fg3)}
.lm-todo ul{display:flex;flex-direction:column;gap:10px;margin:14px 0 18px}
.lm-todo li{font:400 15.5px/1.6 var(--sans);color:var(--fg2);display:grid;grid-template-columns:36px minmax(0,1fr)}
.lm-todo li span{font:500 14px/1.6 var(--f-mono);color:var(--atx)}
.lm-todo .note{margin-top:8px}
.lm-todo .note a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--a)}
.p-lm .next b{font:600 40px/1.1 var(--sans)}

@media (max-width:899px){
  .lm-hero{padding:36px 0 36px}
  .lm-h1,.lm-h1 em{font-size:46px}.lm-h1 .zh,.lm-h1 .zh em{font-size:40px}
  .lm-hero .lede{font-size:17px}
  .p6 .lm-run{grid-template-columns:minmax(0,1fr);gap:0}
  .lm-loom{display:none}
  .lm-log::before{left:6px}
  .lg-e{grid-template-columns:minmax(0,1fr);gap:10px;padding:22px 0 22px 26px}
  .lg-e::before{left:2px;top:27px}
  .lg-t{flex-direction:row;align-items:center;gap:10px}
  .lg-b h3{font-size:19px}.lg-b h3 .zh{font-size:18px}
  .lg-b p{font-size:16px}
  .lg-out{font-size:12px;padding:14px}
  .p6 .lm-after{grid-template-columns:minmax(0,1fr);gap:40px}
  .lm-q{font-size:19px}.lm-q .zh{font-size:17px}
}
