/* Kodachi dashboard manual: the chapter-walkthrough player.
   Palette and type follow the Command Deck docs template (kp/css/docs-deck.css). */
:root{
  --dd-neon:#9FEF00;--dd-neon-bright:#b6ff1a;--dd-neon-dim:#6fa800;
  --dd-t1:#e8f0e0;--dd-t2:#aab4be;--dd-t3:#8a93a0;
  --dd-panel:#060906;--dd-panel2:#070b07;--dd-bd:rgba(159,239,0,.16);--dd-bd2:rgba(159,239,0,.34);
  --dd-mono:'JetBrains Mono',ui-monospace,monospace;
  --dd-disp:'Orbitron',sans-serif;
}
.dd-wrap{max-width:1320px;margin:0 auto;padding:0 22px 56px}
.dd-stage{display:grid;grid-template-columns:238px minmax(0,1fr);gap:14px;align-items:start;margin-top:18px}

/* chapter rail */
.dd-chapters{position:sticky;top:78px;border:1px solid var(--dd-bd2);border-radius:12px;background:var(--dd-panel);overflow:hidden}
.dd-ch{display:grid;grid-template-columns:32px 1fr;gap:8px;align-items:center;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--dd-bd);background:none;cursor:pointer;color:var(--dd-t2);font:inherit}
.dd-ch:last-child{border-bottom:0}
.dd-ch .n{font-family:var(--dd-disp);font-weight:800;font-size:15px;color:var(--dd-t3)}
.dd-ch b{display:block;font-size:13px;font-weight:600;color:var(--dd-t1);line-height:1.25}
.dd-ch small{display:block;font-family:var(--dd-mono);font-size:10px;letter-spacing:.07em;color:var(--dd-t3);text-transform:uppercase;margin-top:2px}
.dd-ch:hover{background:rgba(159,239,0,.05)}
.dd-ch.on{background:rgba(159,239,0,.09);box-shadow:inset 3px 0 0 var(--dd-neon)}
.dd-ch.on .n{color:var(--dd-neon)}
.dd-ch.done .n{color:var(--dd-neon-dim)}

/* the player */
.dd-intro{border:1px solid var(--dd-bd);border-radius:10px;padding:10px 14px;margin:0 0 10px;background:rgba(159,239,0,.03);font-size:13.5px;color:var(--dd-t2)}
.dd-intro b{color:var(--dd-neon);font-family:var(--dd-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;margin-right:8px}
.dd-player{border:1px solid var(--dd-bd2);border-radius:12px;overflow:clip;background:#000;box-shadow:0 18px 50px rgba(0,0,0,.6)}
/* the dock: explanation plus transport, pinned to the bottom of the window while the frame scrolls */
.dd-dock{position:sticky;bottom:0;z-index:6;background:#030503;box-shadow:0 -10px 30px rgba(0,0,0,.55)}
.dd-dock .dd-bar{margin-top:0;border-radius:0;border-width:1px 0 0}
.dd-frame{position:relative;width:100%;aspect-ratio:1440/900;background:#000;overflow:hidden}
/* a captured screen sets its own aspect ratio inline; 1440/900 is only the fallback */
.dd-frame img.dd-shot{position:absolute;inset:0;width:100%;height:100%;display:block;user-select:none;-webkit-user-drag:none}
.dd-frame iframe{position:absolute;left:0;top:0;width:1440px;height:900px;border:0;transform-origin:0 0;pointer-events:none;background:#000}
.dd-hs{position:absolute;border:1px solid transparent;border-radius:6px;cursor:pointer;z-index:3;transition:border-color .16s,background .16s}
.dd-hs:hover{border-color:rgba(159,239,0,.6);background:rgba(159,239,0,.07)}
.dd-hs:focus-visible{outline:2px solid var(--dd-neon);outline-offset:1px;border-color:var(--dd-neon);background:rgba(159,239,0,.1)}
.dd-frame.dd-showall .dd-hs{border-color:rgba(159,239,0,.2)}
.dd-spot{position:absolute;z-index:2;border:2px solid var(--dd-neon);border-radius:8px;pointer-events:none;
  box-shadow:0 0 0 3px rgba(159,239,0,.2),0 0 32px rgba(159,239,0,.45),inset 0 0 16px rgba(159,239,0,.12);
  transition:left .45s cubic-bezier(.2,.8,.2,1),top .45s cubic-bezier(.2,.8,.2,1),width .45s cubic-bezier(.2,.8,.2,1),height .45s cubic-bezier(.2,.8,.2,1)}
.dd-spot i{position:absolute;left:-1px;top:-22px;font-family:var(--dd-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;background:var(--dd-neon);color:#000;padding:2px 7px;border-radius:5px;white-space:nowrap;font-style:normal}
.dd-screenlbl{position:absolute;right:10px;bottom:10px;z-index:4;font-family:var(--dd-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dd-neon);background:rgba(0,0,0,.78);border:1px solid var(--dd-bd2);border-radius:999px;padding:3px 9px}

/* subtitle bar */
.dd-sub{position:relative;border-top:1px solid var(--dd-bd2);background:linear-gradient(180deg,#050805,#030503);padding:13px 18px}
.dd-sub .dd-line{position:absolute;left:0;top:0;height:2px;background:var(--dd-neon);width:0;box-shadow:0 0 8px var(--dd-neon)}
.dd-eyebrow{font-family:var(--dd-mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--dd-neon);display:flex;gap:10px;align-items:center}
.dd-eyebrow .cnt{margin-left:auto;color:var(--dd-t3)}
.dd-sub h3,.dd-sub .dd-steph{margin:6px 0 4px;font-size:18px;font-weight:600;color:var(--dd-t1);font-family:inherit}
.dd-sub p{margin:0;color:var(--dd-t2);font-size:14px;max-width:none}
.dd-sub p b{color:var(--dd-t1)}
.dd-meta{margin-top:6px;font-family:var(--dd-mono);font-size:11.5px;color:var(--dd-t3);display:flex;gap:14px;flex-wrap:wrap}
.dd-meta span{display:inline-flex;gap:6px;align-items:center}
.dd-meta b{color:var(--dd-t2);font-weight:400}
.dd-kbd{font-family:var(--dd-mono);font-size:11px;color:var(--dd-neon);border:1px solid var(--dd-bd2);border-radius:5px;padding:1px 6px;background:#030503}

/* step chips */
.dd-chips{display:flex;gap:6px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--dd-bd);background:#040604;max-height:132px;overflow-y:auto}
.dd-chip{font-family:var(--dd-mono);font-size:10.5px;color:var(--dd-t2);border:1px solid var(--dd-bd);border-radius:999px;padding:4px 9px;background:#050805;cursor:pointer;display:inline-flex;gap:5px;align-items:center}
.dd-chip b{color:var(--dd-t3);font-weight:400}
.dd-chip:hover{border-color:var(--dd-neon);color:var(--dd-t1)}
.dd-chip.on{background:var(--dd-neon);color:#000;border-color:var(--dd-neon)}
.dd-chip.on b{color:#000}

/* transport */
.dd-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;border:1px solid var(--dd-bd);border-radius:12px;background:var(--dd-panel);padding:10px 12px}
.dd-btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--dd-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dd-t1);border:1px solid var(--dd-bd2);border-radius:9px;padding:8px 12px;background:#050805;cursor:pointer;transition:border-color .15s,color .15s}
.dd-btn:hover{border-color:var(--dd-neon);color:var(--dd-neon)}
.dd-btn.pri{background:rgba(159,239,0,.12);border-color:var(--dd-neon);color:var(--dd-neon)}
.dd-btn svg{width:12px;height:12px;fill:currentColor}
.dd-count{font-family:var(--dd-mono);font-size:12px;color:var(--dd-t2);letter-spacing:.05em}
.dd-count b{color:var(--dd-neon);font-weight:500}
.dd-spacer{flex:1}
.dd-sel{font-family:var(--dd-mono);font-size:12px;color:var(--dd-t1);background:#050805;border:1px solid var(--dd-bd2);border-radius:9px;padding:7px 10px}
.dd-switch{display:inline-flex;border:1px solid var(--dd-bd2);border-radius:9px;overflow:hidden}
.dd-switch button{font-family:var(--dd-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:7px 11px;color:var(--dd-t2);background:none;border:0;cursor:pointer}
.dd-switch button.on{background:rgba(159,239,0,.14);color:var(--dd-neon)}

/* per-chapter reference table */
.dd-table-wrap{margin-top:12px;border:1px solid var(--dd-bd);border-radius:12px;background:var(--dd-panel);overflow:hidden}
.dd-table-wrap>summary{list-style:none;cursor:pointer;padding:11px 14px;font-family:var(--dd-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--dd-neon);display:flex;align-items:center;gap:10px}
.dd-table-wrap>summary::-webkit-details-marker{display:none}
.dd-table-wrap>summary::after{content:'+';margin-left:auto;font-size:14px;color:var(--dd-t3)}
.dd-table-wrap[open]>summary::after{content:'-'}
.dd-table-scroll{overflow-x:auto}
table.dd-table{width:100%;border-collapse:collapse;font-size:13.5px}
table.dd-table th{text-align:left;font-family:var(--dd-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--dd-t3);padding:8px 12px;border-top:1px solid var(--dd-bd2);border-bottom:1px solid var(--dd-bd)}
table.dd-table td{padding:9px 12px;border-bottom:1px solid var(--dd-bd);color:var(--dd-t2);vertical-align:top}
table.dd-table td:first-child{width:38px}
table.dd-table td b{color:var(--dd-t1);font-weight:600}
table.dd-table tr{cursor:pointer}
table.dd-table tr:hover td{background:rgba(159,239,0,.03)}
table.dd-table tr.on td{background:rgba(159,239,0,.07);color:var(--dd-t1)}
table.dd-table .no{width:22px;height:22px;border-radius:999px;border:1px solid var(--dd-bd2);font-family:var(--dd-mono);font-size:11px;display:inline-flex;align-items:center;justify-content:center;color:var(--dd-t2)}
table.dd-table tr.on .no{background:var(--dd-neon);color:#000;border-color:var(--dd-neon)}
table.dd-table .src{font-family:var(--dd-mono);font-size:11px;color:var(--dd-t3);display:block;margin-top:3px}

.dd-note{margin-top:14px;font-family:var(--dd-mono);font-size:11.5px;color:var(--dd-t3);line-height:1.65}
.dd-note b{color:var(--dd-t2);font-weight:500}

/* index / hub cards */
.dd-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:16px;margin-top:18px}
.dd-card{display:flex;flex-direction:column;border:1px solid var(--dd-bd2);border-radius:14px;overflow:hidden;background:var(--dd-panel);color:inherit;text-decoration:none;transition:transform .15s,border-color .15s}
.dd-card:hover{transform:translateY(-2px);border-color:var(--dd-neon)}
.dd-card .pic{aspect-ratio:16/10;background:#000;border-bottom:1px solid var(--dd-bd);overflow:hidden}
.dd-card .pic img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}
.dd-card .body{padding:14px 16px 16px}
.dd-card h3{margin:0 0 4px;font-size:17px;color:var(--dd-t1)}
.dd-card p{margin:0;font-size:13.5px;color:var(--dd-t2)}
.dd-card .row{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.dd-tag{font-family:var(--dd-mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--dd-t2);border:1px solid var(--dd-bd);border-radius:999px;padding:3px 9px;background:#040604}
.dd-tag b{color:var(--dd-neon);font-weight:500}

@media (max-width:900px){
  .dd-stage{grid-template-columns:1fr}
  .dd-chapters{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
  .dd-ch{border-bottom:1px solid var(--dd-bd)}
  .dd-sub h3,.dd-sub .dd-steph{font-size:16px}
  .dd-sub p{font-size:13.5px}
}
@media (max-width:560px){
  .dd-wrap{padding:0 16px 40px}
  .dd-chips{max-height:104px}
}
@media (prefers-reduced-motion:reduce){
  .dd-spot{transition:none}
  .dd-card:hover{transform:none}
}

/* the pages a chapter covers, named and clickable, so a reader can see at a glance that a
   dashboard page is in the manual rather than having to play the chapter to find out */
.dd-pages{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:9px 14px;border-top:1px solid var(--dd-bd);background:#050805}
.dd-pl-lead{font-family:var(--dd-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dd-neon);margin-right:4px}
.dd-pl{font-family:var(--dd-mono);font-size:11px;color:var(--dd-t1);border:1px solid var(--dd-bd2);border-radius:7px;padding:4px 9px;background:#040604;cursor:pointer}
.dd-pl:hover{border-color:var(--dd-neon);color:var(--dd-neon)}
.dd-pl.on{background:rgba(159,239,0,.14);border-color:var(--dd-neon);color:var(--dd-neon)}

/* "Know this": the comparative card. It sits under the subtitle, closed by default so the
   walkthrough stays a walkthrough, and stays mounted while consecutive steps share a topic so
   that opening it once does not have to be done again on the next control. */
.dd-wisdom:empty{display:none}
.dd-wis{border-top:1px solid var(--dd-bd);background:linear-gradient(180deg,#060a06,#040604)}
.dd-wis>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:10px 14px;flex-wrap:wrap}
.dd-wis>summary::-webkit-details-marker{display:none}
.dd-wis>summary::after{content:'+';margin-left:auto;font-family:var(--dd-mono);font-size:14px;color:var(--dd-neon);line-height:1}
.dd-wis[open]>summary::after{content:'\2212'}
.dd-wis>summary:hover .dd-wis-t{color:var(--dd-neon)}
.dd-wis-tag{font-family:var(--dd-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#040604;background:var(--dd-neon);border-radius:999px;padding:3px 8px;flex:none}
.dd-wis-t{font-family:var(--dd-disp);font-size:13.5px;color:var(--dd-t1);letter-spacing:.01em}
.dd-wis-n{font-family:var(--dd-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--dd-t3);border:1px solid var(--dd-bd2);border-radius:999px;padding:2px 8px}
.dd-wis-body{padding:0 14px 14px;border-top:1px dashed var(--dd-bd)}
.dd-wis-lede{margin:11px 0 0;font-size:13px;line-height:1.62;color:var(--dd-t2)}
.dd-wis-rows{list-style:none;margin:11px 0 0;padding:0;display:grid;gap:7px}
.dd-wis-rows li{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:8px 10px;border:1px solid var(--dd-bd);border-radius:8px;background:#040604}
.dd-wis-rows li b{font-family:var(--dd-mono);font-size:11.5px;color:var(--dd-neon);letter-spacing:.02em;font-weight:500}
.dd-wis-rows li span{font-size:12.8px;line-height:1.6;color:var(--dd-t2)}
.dd-wis-rule{margin:11px 0 0;font-size:13px;line-height:1.6;color:var(--dd-t1);border-left:2px solid var(--dd-neon);padding:2px 0 2px 11px}
.dd-wis-rule b{font-family:var(--dd-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dd-neon);display:block;margin-bottom:3px;font-weight:500}
.dd-wis-src{margin:10px 0 0;font-size:11.5px;line-height:1.55;color:var(--dd-t3)}
@media (max-width:560px){
  .dd-wis-rows li{grid-template-columns:1fr;gap:3px}
  .dd-wis-t{font-size:12.5px}
}

/* The payload did not arrive. Without this the frame was an empty 735px box under a confident
   hero, with no message and no console error a reader could act on. */
.dd-loadfail{margin:0;padding:38px 24px;text-align:center;color:var(--dd-t2);font-size:14px;line-height:1.7}

/* One line that says the picture is not a picture. Measured: nothing on any page told a reader
   the boxes were clickable, and the frame's cursor computed to `auto`. */
.dd-hint{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 14px;border-top:1px solid var(--dd-bd);background:#050805;font-size:12px;color:var(--dd-t3)}
.dd-hint b{color:var(--dd-neon);font-family:var(--dd-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}

/* Live replica: the frame scrolls, the iframe inside it is as tall as the frozen page. Before this
   the frame clipped at its 16:9 height and a tall island's lower containers were unreachable. */
.dd-frame.dd-live{overflow:hidden}
.dd-frame.dd-live iframe{pointer-events:none}
.dd-frame.dd-live .dd-hs,.dd-frame.dd-live .dd-spot{display:none}
