  /* The combat room (light gray, shadow orange text), in the Pad Builder's
     shape: numbered steps, panels, and the result beside them. */
  :root{--bg:#c4c3c0;--panel:#d3d2ce;--panel-2:#e9e8e5;--card:#f4f3f0;--line:#a9a7a2;
        --ink:#1b1b1d;--ink-dim:#4a4a4f;--ink-faint:#6f6f75;
        --blood:#d4552b;--blood-soft:#e5764f;--blood-text:#8c3617;--bronze:#7a5630;--r:10px;
        /* the macro window: dark, like the game's own */
        --win:#101012;--win-line:#2a2a2e;--win-ink:#ecebe7;
        --k-cmd:#f08a5d;--k-unit:#c39bff;--k-cond:#7fd49a;--k-mod:#7cc4ff;--k-name:#ffffff;
        --k-meta:#d9b27c;--k-punct:#8a8a92;--k-empty:#ffd166;--k-bad:#ff7b7b}
  *{box-sizing:border-box}
  body{margin:0;color:var(--ink);background:var(--bg);
       font:16px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
  a{color:var(--blood-text)}
  .wrap{max-width:1120px;margin:0 auto;padding-block:44px 96px;padding-inline:16px}
  header{display:flex;gap:16px;align-items:center;flex-wrap:wrap;
         border-bottom:1px solid var(--line);padding-bottom:20px}
  header img{width:56px;height:56px;border-radius:12px;flex:none;box-shadow:0 2px 10px rgba(0,0,0,.18)}
  header > div{min-width:0;flex:1 1 280px}
  h1{margin:0;font-size:30px;letter-spacing:-.3px}
  h1 span{color:var(--blood-text)}
  .tag{color:var(--ink-dim);margin:6px 0 0;max-width:62ch}
  .tabs{display:flex;gap:12px;margin:18px 0 0;flex-wrap:wrap}
  .tabs a{display:inline-block;text-decoration:none;border-radius:10px;padding:11px 22px;font-weight:700;font-size:15px}
  .tabs a.pad-tab{background:#0b0b0c;color:var(--blood-soft);border:2px solid #0b0b0c}
  .tabs a.kb-tab{background:#f4f3f0;color:var(--blood-text);border:2px solid var(--blood);box-shadow:0 2px 8px rgba(0,0,0,.12)}
  nav.site{display:flex;gap:4px;flex-wrap:wrap;margin:16px 0 0;padding:6px 0;border-bottom:1px solid var(--line)}
  nav.site a{color:var(--ink-dim);text-decoration:none;font-size:14.5px;font-weight:600;padding:7px 12px;border-radius:7px}
  nav.site a:hover{color:var(--ink);background:rgba(0,0,0,.06)}
  nav.site a.here{color:var(--blood-text);background:rgba(0,0,0,.06);box-shadow:inset 0 -2px 0 var(--blood)}
  nav.site .gap{flex:1}
  nav.site a.soon{color:var(--ink-faint);cursor:default}

  .heads-up{background:rgba(212,85,43,.10);border:1px solid var(--blood);border-radius:var(--r);
            padding:4px 16px;margin:22px 0 0;font-size:14.5px;color:var(--ink-dim);position:relative;padding-right:92px}
  .heads-up p{margin:10px 0}
  .heads-up b{color:var(--blood-text)}
  .heads-up .hu-line{display:none;margin:8px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .heads-up.down p{display:none}
  .heads-up.down .hu-line{display:block}
  .hu-toggle{position:absolute;top:8px;right:10px;font:inherit;font-size:12px;letter-spacing:.04em;
             text-transform:uppercase;color:var(--blood-text);background:transparent;
             border:1px solid var(--blood);border-radius:6px;padding:4px 9px;cursor:pointer}

  /* the learning note: says out loud that this is a teacher as much as a tool */
  .learn{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);
         border-left:4px solid var(--bronze);border-radius:var(--r);padding:14px 16px;margin:16px 0 0}
  .learn p{margin:0;color:var(--ink-dim);max-width:none}
  .learn b{color:var(--ink)}

  h2{font-size:14px;text-transform:uppercase;letter-spacing:.09em;color:var(--bronze);margin:30px 0 12px;font-weight:600}
  .step{display:flex;gap:10px;align-items:baseline}
  .step b{color:var(--blood-text);font-variant-numeric:tabular-nums}
  .opt{font-size:11px;color:var(--ink-faint);letter-spacing:.06em}

  /* level switch */
  .levels{display:flex;gap:0;margin:22px 0 0;border:1px solid var(--line);border-radius:10px;overflow:hidden;
          background:var(--card);width:max-content;max-width:100%}
  .levels button{background:transparent;border:0;border-right:1px solid var(--line);color:var(--ink-dim);
         padding:10px 16px;font:inherit;font-size:14.5px;font-weight:650;cursor:pointer}
  .levels button:last-child{border-right:0}
  .levels button.on{background:var(--blood-text);color:#fff}
  .levels button span{display:block;font-size:11.5px;font-weight:500;opacity:.8}
  .lvlnote{font-size:13.5px;color:var(--ink-faint);margin:8px 0 0}

  .layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:26px;align-items:start;margin-top:8px}
  .side{position:sticky;top:14px}
  body.lvl3 .blocks{display:none}
  body.lvl3 .layout{grid-template-columns:minmax(0,1fr)}
  body.lvl3 .side{position:static}
  body.lvl1 .editor{display:none}

  .panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
  label.lb{display:block;font-size:12px;color:var(--ink-faint);margin:10px 0 4px;font-weight:600;letter-spacing:.02em}
  input[type=text],select,textarea{width:100%;background:#fff;color:var(--ink);border:1px solid var(--line);
       border-radius:7px;padding:8px 10px;font:inherit;font-size:15px}
  input[type=text]:focus,select:focus,textarea:focus{outline:2px solid var(--blood);outline-offset:-1px}
  .seg{display:flex;gap:8px;flex-wrap:wrap}
  .seg label{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:8px;
             padding:7px 12px;cursor:pointer;font-size:14.5px}
  .seg label:has(input:checked){border-color:var(--blood);box-shadow:0 0 0 1px var(--blood) inset}
  .chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
  .chip{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-size:13px;
        cursor:pointer;color:var(--ink-dim);font:inherit;font-size:13px}
  .chip:hover{border-color:var(--blood);color:var(--blood-text)}
  .hint{font-size:13px;color:var(--ink-faint);margin:8px 0 0}

  .patterns{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
  .pat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 12px;text-align:left;cursor:pointer;
       font:inherit;color:var(--ink)}
  .pat:hover{border-color:var(--blood)}
  .pat b{display:block;font-size:14px}
  .pat span{display:block;font-size:12.5px;color:var(--ink-faint);margin-top:2px}

  .rule{display:grid;grid-template-columns:26px minmax(0,1.2fr) minmax(0,1.1fr) auto auto;gap:8px;align-items:center;
        background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-bottom:8px}
  .rule .n{font-weight:700;color:var(--blood-text);text-align:center;font-variant-numeric:tabular-nums}
  .rule .alive{display:flex;gap:6px;align-items:center;font-size:13.5px;white-space:nowrap}
  .rule .moves{display:flex;gap:4px}
  .rule .moves button{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;width:28px;height:28px;
        cursor:pointer;font-size:13px;color:var(--ink-dim);padding:0}
  .rule .moves button:hover{border-color:var(--blood);color:var(--blood-text)}
  .rule .na{font-size:12.5px;color:var(--ink-faint);grid-column:span 2}
  .fallback{display:flex;gap:8px;align-items:center;background:#fff;border:1px dashed var(--line);border-radius:9px;
        padding:9px 12px;font-size:14.5px}
  .mod{display:grid;grid-template-columns:minmax(64px,.6fr) minmax(0,1.3fr) minmax(0,1fr) auto;gap:8px;align-items:center;
       background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-bottom:8px}
  .checks label{display:flex;gap:9px;align-items:flex-start;font-size:14.5px;margin:6px 0;cursor:pointer}
  .checks label small{display:block;color:var(--ink-faint);font-size:12.5px}
  button.add{background:transparent;border:1px dashed var(--line);border-radius:8px;padding:7px 12px;
        font:inherit;font-size:14px;color:var(--blood-text);cursor:pointer}
  button.add:hover{border-color:var(--blood)}
  button.primary{background:var(--blood);color:#1b0d06;border:0;border-radius:8px;padding:9px 18px;
        font:inherit;font-weight:700;cursor:pointer}
  button.ghost{background:transparent;color:var(--ink-dim);border:1px solid var(--line);border-radius:8px;
        padding:8px 14px;font:inherit;cursor:pointer}

  /* the macro window */
  .win{background:var(--win);border:1px solid #000;border-radius:10px;box-shadow:0 4px 18px rgba(0,0,0,.25)}
  .win .bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;
            border-bottom:1px solid var(--win-line);color:#9a9a9f;font-size:12.5px}
  .win .bar b{color:var(--win-ink);font-weight:600;letter-spacing:.03em}
  .count{font-variant-numeric:tabular-nums}
  .count.over{color:var(--k-bad);font-weight:700}
  .code{padding:12px 14px 14px;font:14.5px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--win-ink);
        white-space:pre-wrap;overflow-wrap:anywhere;min-height:64px}
  .code .tk{border-radius:3px;cursor:pointer;padding:1px 0;transition:background .1s}
  .code .tk:hover,.code .tk.sel{background:rgba(255,255,255,.14);outline:1px solid rgba(255,255,255,.25)}
  .k-cmd{color:var(--k-cmd);font-weight:700}.k-unit{color:var(--k-unit)}.k-cond{color:var(--k-cond)}
  .k-mod{color:var(--k-mod)}.k-name{color:var(--k-name);font-weight:600}.k-meta{color:var(--k-meta)}
  .k-punct{color:var(--k-punct)}.k-empty{color:var(--k-empty);font-weight:700}.k-bad{color:var(--k-bad);text-decoration:underline wavy}
  .win .actions{display:flex;gap:8px;padding:0 12px 12px;flex-wrap:wrap}
  .win .actions button{background:#26262a;color:var(--win-ink);border:1px solid #3a3a40;border-radius:7px;
        padding:7px 14px;font:inherit;font-size:14px;cursor:pointer}
  .win .actions button.copy{background:var(--blood);border-color:var(--blood);color:#1b0d06;font-weight:700}
  .win .actions .tip{color:#8a8a92;font-size:12.5px;align-self:center}

  .editor{margin-top:12px}
  .editor textarea{font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-height:120px;resize:vertical}
  .sync{font-size:13px;color:var(--ink-faint);margin:6px 0 0;min-height:1.2em}
  .sync.off{color:var(--blood-text)}

  .explain{margin-top:12px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--blood);
           border-radius:9px;padding:10px 14px;font-size:14.5px;min-height:52px}
  .explain b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
  .explain .muted{color:var(--ink-faint)}

  .read{margin:14px 0 0}
  .read h3,.pieces h3,.checksout h3{font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);
        margin:0 0 6px;font-weight:650}
  .read ol{margin:0;padding-left:20px;color:var(--ink)}
  .read li{margin:3px 0}
  .checksout{margin:14px 0 0}
  .checksout ul{list-style:none;margin:0;padding:0}
  .checksout li{padding:7px 10px 7px 12px;border-radius:7px;margin:5px 0;font-size:14px;border-left:4px solid}
  .checksout li.bad{background:rgba(217,70,70,.10);border-color:#c93a3a}
  .checksout li.warn{background:rgba(212,85,43,.10);border-color:var(--blood)}
  .checksout li.info{background:rgba(0,0,0,.04);border-color:var(--line);color:var(--ink-dim)}
  .checksout .ok{font-size:14px;color:#2f7d4f}
  .checksout .caveat{font-size:12.5px;color:var(--ink-faint);margin:8px 0 0}
  .pieces{margin:14px 0 0}
  .pieces dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:14px}
  .pieces dt{font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--win);border-radius:5px;padding:1px 7px;
        align-self:start;cursor:pointer;white-space:nowrap;max-width:14em;overflow:hidden;text-overflow:ellipsis}
  .pieces dd{margin:0;color:var(--ink-dim)}
  .pieces dt.sel{outline:2px solid var(--blood)}

  .readany textarea{font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-height:110px}
  .readany .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}

  p{max-width:68ch;color:var(--ink-dim)}
  footer{margin-top:56px;padding-top:20px;border-top:1px solid var(--line);color:var(--ink-faint);font-size:14px}
  .hidden{display:none !important}

  .peek{display:none}
  @media (max-width:860px){
    .peek{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;gap:10px;align-items:center;
          background:var(--win);color:var(--win-ink);padding:9px 12px calc(9px + env(safe-area-inset-bottom));
          border-top:2px solid var(--blood);box-shadow:0 -4px 14px rgba(0,0,0,.25)}
    .peek code{flex:1;min-width:0;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;
          overflow:hidden;text-overflow:ellipsis;color:var(--win-ink)}
    .peek button{background:var(--blood);border:0;border-radius:7px;color:#1b0d06;font:inherit;font-size:13px;
          font-weight:700;padding:7px 11px;white-space:nowrap}
    body.lvl3 .peek,body.peekoff .peek{display:none}
    .wrap{padding-bottom:120px}
    .layout{grid-template-columns:minmax(0,1fr)}
    .side{position:static}
    .rule{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr)}
    .rule .alive{grid-column:2}
    .rule .moves{grid-column:3;justify-content:flex-end}
    .mod{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
    .levels{width:100%}
    .levels button{flex:1;padding:9px 8px;font-size:13.5px}
    h1{font-size:25px}
  }

  /* the page pair: Builder and Examiner, two addresses, one look */
  .pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0 0}
  .pair a{display:block;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink)}
  .pair a b{display:block;font-size:15.5px}
  .pair a span{display:block;font-size:13px;color:var(--ink-faint)}
  .pair a:hover{border-color:var(--blood)}
  .pair a.on{border-color:var(--blood-text);box-shadow:0 0 0 1px var(--blood-text) inset;background:#fff}
  .pair a.on b{color:var(--blood-text)}

  /* examiner: line by line */
  .lines{display:grid;gap:8px}
  .line{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px}
  .line .lc{background:var(--win);color:var(--win-ink);border-radius:6px;padding:5px 9px;
            font:13.5px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
  .line .lc .tk{cursor:pointer;border-radius:3px}
  .line .lc .tk:hover,.line .lc .tk.sel{background:rgba(255,255,255,.14);outline:1px solid rgba(255,255,255,.25)}
  .line .le{font-size:14.5px;color:var(--ink)}
  .line .ln{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ink-faint);text-transform:uppercase}
  .paste textarea{font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-height:170px;resize:vertical}
  .exnote{font-size:13px;color:var(--ink-faint);margin:8px 0 0;min-height:1.2em}
  .blocked{font-size:14px;color:var(--ink-dim);background:#fff;border:1px dashed var(--line);border-radius:9px;padding:12px 14px}
  @media (max-width:860px){ .pair{grid-template-columns:minmax(0,1fr)} }

  /* keybind trap under "Hold a key": always shown, compact */
  .modwarn{margin:10px 0 0;font-size:13.5px;color:var(--ink-dim);background:rgba(212,85,43,.08);
           border:1px solid var(--blood);border-radius:8px;padding:9px 12px;max-width:none}
  .modwarn b{color:var(--blood-text)}
