.ps-hero-icon { width: 96px; height: 96px; border-radius: 22px; box-shadow: 0 8px 28px rgba(0,0,0,0.45); margin-bottom: 14px; }
.lx-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 24px; }
.lx-feat h4 { font-size: 0.98rem; color: var(--accent-cyan); margin-bottom: 6px; }
.lx-feat p { font-size: 0.86rem; color: var(--text-secondary); line-height: 1.7; }
.lx-feat-server { border-color: rgba(245, 158, 11, 0.35) !important; background: rgba(245, 158, 11, 0.05) !important; }
.lx-feat-server h4 { color: #f59e0b; }
.lx-feat-client { border-color: rgba(56, 189, 248, 0.35) !important; background: rgba(56, 189, 248, 0.05) !important; }
.ps-block p { font-size: 0.92rem; color: var(--text-secondary); line-height: 1.8; margin-top: 10px; }
.ps-block h3 { font-size: 1.1rem; color: var(--accent-cyan); }
.ps-block code { font-family: var(--font-mono); font-size: 0.85em; background: rgba(4,19,36,0.7); border: 1px solid var(--border-accent); border-radius: 5px; padding: 1px 6px; }
.ps-scope { border-color: rgba(245, 158, 11, 0.35) !important; background: rgba(245, 158, 11, 0.05) !important; }
.ps-scope h3 { color: #f59e0b; }
.ps-h { font-size: 1.15rem; text-align: center; color: var(--accent-cyan); margin-bottom: 14px; }
.ps-lead { text-align: center; font-size: 0.86rem; color: var(--text-secondary); line-height: 1.7; max-width: 720px; margin: 0 auto 6px; }
.ps-cap { text-align: center; font-size: 0.8rem; color: var(--text-muted); margin-top: 10px; line-height: 1.7; }
.ps-shots { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.ps-shot { margin: 0; }
.ps-shot img { width: 100%; height: auto; display: block; border-radius: 12px; box-shadow: 0 18px 44px rgba(0,0,0,0.55); cursor: zoom-in; border: 1px solid rgba(148,163,184,0.18); }
.zoom-overlay { position: fixed; inset: 0; z-index: 10000; background: rgba(2, 6, 23, 0.92); display: none; overflow: auto; cursor: zoom-out; -webkit-overflow-scrolling: touch; }
.zoom-overlay.open { display: block; }
.zoom-overlay img { display: block; margin: 0 auto; max-width: none; width: min(1200px, max(96vw, 900px)); height: auto; padding: 24px 0; }
.zoom-close { position: fixed; top: 14px; right: 18px; z-index: 10001; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(148, 163, 184, 0.5); background: rgba(15, 23, 42, 0.85); color: #e2e8f0; font-size: 1.3rem; line-height: 1; cursor: pointer; }
/* 報告書の例: 印刷した紙のような見た目。中の書式は .rs-report の下に閉じ込める */
.rs-report-wrap { margin: 0 auto; max-width: 900px; }
.rs-report-scroll { max-height: 760px; overflow: auto; padding: 10px 0 8px; -webkit-overflow-scrolling: touch; border-radius: 4px; }
.rs-report { display: flex; justify-content: center; }
.rs-report-en { display: none; }
html:not([lang="ja"]) .rs-report-ja { display: none; }
html:not([lang="ja"]) .rs-report-en { display: flex; }
.rs-report .rp-sheet { box-sizing: border-box; width: 794px; max-width: 100%; padding: 34px 34px 40px; background: #fff; color: #1a1a1a;
  box-shadow: 0 22px 60px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.08);
  font-family: -apple-system, 'Segoe UI', 'Hiragino Sans', 'Noto Sans CJK JP', sans-serif; font-size: 12px; line-height: 1.6; text-align: left; }
.rs-report .rp-sheet * { box-sizing: border-box; }
.rs-report h1 { font-size: 20px; margin: 0 0 12px; color: #1a1a1a; font-weight: 700; letter-spacing: 0; }
.rs-report h2 { font-size: 15px; margin: 22px 0 6px; border-bottom: 2px solid #333; padding-bottom: 4px; color: #1a1a1a; font-weight: 700; letter-spacing: 0; }
.rs-report h3 { font-size: 13px; margin: 16px 0 6px; color: #1a1a1a; font-weight: 700; letter-spacing: 0; }
.rs-report p, .rs-report li { color: #1a1a1a; }
.rs-report ul, .rs-report ol { margin: 6px 0; padding-left: 22px; }
.rs-report table { border-collapse: collapse; margin: 8px 0; background: #fff; max-width: 100%; }
.rs-report th, .rs-report td { border: 1px solid #bbb; padding: 3px 7px; text-align: left; vertical-align: top; overflow-wrap: anywhere; color: #1a1a1a; }
.rs-report th { background: #eee; font-weight: 700; }
.rs-report code { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11px; background: #f1f1f1; padding: 0 3px; border-radius: 3px; color: #1a1a1a; }
.rs-report blockquote { margin: 8px 0; padding: 4px 14px; border-left: 4px solid #3b82f6; background: #f5f8ff; }
@media (max-width: 480px) { .ps-shots { grid-template-columns: 1fr; } }
