/* tech-sharing — Claude Code Memory 拆解, code-forward dark theme */
.tpl-tech-sharing{
  --bg:#0d1117;--bg-soft:#161b22;--surface:#161b22;--surface-2:#1c2230;
  --border:rgba(139,148,158,.18);--border-strong:rgba(139,148,158,.35);
  --text-1:#e6edf3;--text-2:#8b949e;--text-3:#6e7681;
  --accent:#7ee787;--accent-2:#79c0ff;--accent-3:#ff7b72;
  --grad:linear-gradient(120deg,#7ee787 0%,#79c0ff 60%,#d2a8ff 100%);
  --grad-soft:linear-gradient(120deg,rgba(126,231,135,.12),rgba(121,192,255,.12));
  --radius:10px;--radius-lg:16px;
  --shadow:0 12px 40px rgba(0,0,0,.4);
  font-family:'Inter','Noto Sans SC',sans-serif;
}
.tpl-tech-sharing{background:#0d1117;color:var(--text-1)}

/* ---------- CRITICAL: lock body, no vertical scroll ---------- */
html.tpl-tech-sharing,body.tpl-tech-sharing{
  overflow:hidden!important;
  height:100%!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
.tpl-tech-sharing .deck{
  overflow:hidden!important;
  width:100vw!important;
  height:100vh!important;
  position:relative!important;
}

/* ---------- slide: 16:9 fixed, no scroll, top-aligned ---------- */
.tpl-tech-sharing .slide{
  padding:48px 80px;
  overflow:hidden;
  justify-content:flex-start;
  gap:0;
  background:#0d1117;
  color:var(--text-1);
}
.tpl-tech-sharing .slide::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(60% 45% at 90% 8%,rgba(121,192,255,.08),transparent 55%),
    radial-gradient(50% 40% at 10% 92%,rgba(126,231,135,.05),transparent 55%);
  pointer-events:none;z-index:0;
}
.tpl-tech-sharing .slide>*{position:relative;z-index:1}

/* cover & closing: centered */
.tpl-tech-sharing .slide.center.tc{
  justify-content:center;
}

/* ---------- typography — sized for 16:9 ---------- */
.tpl-tech-sharing .h1{font-size:64px;line-height:1.08;font-weight:800;letter-spacing:-.025em;color:#fff;margin:0 0 14px}
.tpl-tech-sharing .h2{font-size:42px;line-height:1.18;font-weight:700;letter-spacing:-.02em;color:#fff;margin:0 0 10px}
.tpl-tech-sharing h3{font-size:26px;line-height:1.25;color:#fff;margin:0 0 8px}
.tpl-tech-sharing h4{font-size:18px;line-height:1.3;color:#fff;margin:0 0 6px}
.tpl-tech-sharing .kicker{color:var(--accent);font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;text-transform:none;letter-spacing:.03em;margin:0 0 8px}
.tpl-tech-sharing .kicker::before{content:"> "}
.tpl-tech-sharing .mono{font-family:'JetBrains Mono','IBM Plex Mono',monospace}
.tpl-tech-sharing .lede{color:var(--text-2);font-size:18px;line-height:1.5;max-width:70ch}
.tpl-tech-sharing .dim{color:var(--text-2)}
.tpl-techsharing .dim2{color:var(--text-3)}
.tpl-tech-sharing .deck-footer{color:var(--text-3)}
.tpl-tech-sharing strong{color:#fff}

/* ---------- terminal ---------- */
.tpl-tech-sharing .terminal{
  background:#010409;border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.45);
  font-family:'JetBrains Mono',monospace;font-size:14px;line-height:1.55;
}
.tpl-tech-sharing .terminal .bar{
  display:flex;align-items:center;gap:7px;padding:8px 14px;
  background:#161b22;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-3);
}
.tpl-tech-sharing .terminal .dot{width:10px;height:10px;border-radius:50%;background:#ff5f56}
.tpl-tech-sharing .terminal .dot:nth-child(2){background:#ffbd2e}
.tpl-tech-sharing .terminal .dot:nth-child(3){background:#27c93f}
.tpl-tech-sharing .terminal pre{margin:0;padding:16px 20px;color:#e6edf3;overflow:auto;max-height:420px}
.tpl-tech-sharing .kw{color:#ff7b72}
.tpl-tech-sharing .fn{color:#d2a8ff}
.tpl-tech-sharing .str{color:#a5d6ff}
.tpl-tech-sharing .cmt{color:#8b949e;font-style:italic}
.tpl-tech-sharing .num{color:#79c0ff}

/* ---------- cards ---------- */
.tpl-tech-sharing .card{
  background:var(--surface);border:1px solid var(--border);box-shadow:none;
  border-radius:var(--radius);padding:20px 22px;
}
.tpl-tech-sharing .card-accent{border-top:3px solid var(--accent)}
.tpl-tech-sharing .card h4{font-size:17px;font-weight:700;margin:0 0 6px}
.tpl-tech-sharing .card p{line-height:1.55;font-size:15px;margin:0 0 4px}
.tpl-tech-sharing .card .tag{margin-top:8px}

/* ---------- tags & pills ---------- */
.tpl-tech-sharing .pill{background:var(--surface-2);color:var(--text-2);border-color:var(--border);font-size:12px}
.tpl-tech-sharing .pill-accent{background:rgba(126,231,135,.12);color:var(--accent);border-color:rgba(126,231,135,.35)}
.tpl-tech-sharing .tag{
  display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:5px;
  font-family:'JetBrains Mono',monospace;font-size:11px;
  background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);
}

/* ---------- agenda rows ---------- */
.tpl-tech-sharing .agenda-row{display:flex;align-items:baseline;gap:20px;padding:14px 0;border-bottom:1px dashed var(--border);font-family:'JetBrains Mono',monospace;font-size:13px}
.tpl-tech-sharing .agenda-row .num{color:var(--accent);flex:none;width:40px;font-size:14px}
.tpl-tech-sharing .agenda-row .t{color:#fff;font-size:22px;flex:1;font-family:'Inter',sans-serif;font-weight:600}
.tpl-tech-sharing .agenda-row .d{color:var(--text-3);font-size:12px}

/* ---------- speaker ---------- */
.tpl-tech-sharing .speaker{display:flex;align-items:center;gap:12px;margin-top:24px}
.tpl-tech-sharing .speaker .av{width:44px;height:44px;border-radius:50%;background:var(--grad)}
.tpl-tech-sharing .speaker b{display:block;color:#fff;font-size:16px}
.tpl-tech-sharing .speaker span{color:var(--text-3);font-size:12px;font-family:'JetBrains Mono',monospace}

/* ---------- grid ---------- */
.tpl-tech-sharing .g2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.tpl-tech-sharing .g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}

/* ---------- stack ---------- */
.tpl-tech-sharing .stack{display:flex;flex-direction:column}
.tpl-tech-sharing .stack>*+*{margin-top:10px}

/* ---------- spacing ---------- */
.tpl-tech-sharing .mt-s{margin-top:6px}
.tpl-tech-sharing .mt-m{margin-top:16px}
.tpl-tech-sharing .mt-l{margin-top:24px}
.tpl-tech-sharing .mb-s{margin-bottom:6px}
.tpl-tech-sharing .mb-m{margin-bottom:14px}

/* ---------- notes ---------- */
.tpl-tech-sharing .notes{display:none}

/* ---------- slide number ---------- */
.tpl-tech-sharing .slide-number{background:var(--surface-2);padding:2px 9px;border-radius:5px;font-size:11px}

/* ---------- divider ---------- */
.tpl-tech-sharing .divider-accent{height:2px;width:56px;background:var(--accent);border-radius:2px}
