:root{
    --blue:#1f6feb; --blue-dim:#1a5fd0; --blue-soft:#eaf2ff; --green:#0e9e8e;
    --ink:#0f1720; --ink-dim:#3d4a58; --ink-soft:#5b6876; --ink-faint:#8794a3;
    --line:#e2e8f0; --bg:#f1f4f9; --bg-card:#fff; --bg-soft:#f7f9fc;
    --maxw:920px; --ease:cubic-bezier(.22,.7,.3,1);
    --shadow:0 1px 2px rgba(16,32,56,.05),0 8px 24px -14px rgba(16,32,56,.22);
    --safe-b:env(safe-area-inset-bottom,0px);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:"IBM Plex Sans JP",system-ui,sans-serif;background:var(--bg);
    color:var(--ink);line-height:1.9;-webkit-font-smoothing:antialiased}
  .mono{font-family:"IBM Plex Mono",monospace}
  a{color:var(--blue-dim);text-decoration:none}
  a:hover{text-decoration:underline}

  .topbar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.92);
    backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .topbar-in{max-width:var(--maxw);margin:0 auto;padding:13px clamp(16px,4vw,28px);
    display:flex;align-items:center;justify-content:space-between;gap:16px}
  .tb-logo{font-family:"Space Grotesk";font-weight:700;font-size:15px;
    letter-spacing:-.01em;color:var(--ink)}
  .tb-logo span{color:var(--blue)}
  .tb-back{font-size:12.5px;font-weight:600;color:var(--blue-dim)}

  .hero{max-width:var(--maxw);margin:0 auto;padding:clamp(30px,5vw,52px) clamp(16px,4vw,28px) 8px}
  .hero-k{font-family:"IBM Plex Mono";font-size:11px;letter-spacing:.14em;
    color:var(--blue-dim);font-weight:600}
  h1{font-family:"Space Grotesk","IBM Plex Sans JP";font-size:clamp(24px,4vw,33px);
    font-weight:700;letter-spacing:-.01em;margin-top:9px;line-height:1.4}
  .hero-s{color:var(--ink-soft);font-size:13.5px;margin-top:12px;max-width:640px}
  .hero-date{font-family:"IBM Plex Mono";font-size:11.5px;color:var(--ink-faint);margin-top:14px}

  .toc{max-width:var(--maxw);margin:22px auto 0;padding:0 clamp(16px,4vw,28px)}
  .toc-in{background:var(--bg-card);border:1px solid var(--line);border-radius:13px;
    padding:15px 18px;box-shadow:var(--shadow);display:flex;flex-wrap:wrap;gap:8px 18px}
  .toc a{font-size:12.5px;font-weight:600}

  main{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,28px) 60px}
  section.doc{background:var(--bg-card);border:1px solid var(--line);border-radius:13px;
    padding:clamp(20px,3vw,30px);box-shadow:var(--shadow);margin-top:20px;
    scroll-margin-top:70px}
  h2{font-family:"Space Grotesk","IBM Plex Sans JP";font-size:19px;font-weight:700;
    padding-bottom:11px;border-bottom:2px solid var(--blue-soft);margin-bottom:15px}
  h3{font-size:14.5px;font-weight:700;margin:20px 0 7px;color:var(--ink)}
  p{font-size:13.5px;color:var(--ink-dim);margin-bottom:11px}
  ul,ol{margin:0 0 12px 20px}
  li{font-size:13.5px;color:var(--ink-dim);margin-bottom:6px}
  .note{background:var(--blue-soft);border:1px solid #cfe2fd;border-left:4px solid var(--blue);
    border-radius:9px;padding:13px 16px;font-size:12.5px;color:var(--ink-dim);margin:14px 0}
  .note b{color:var(--blue-dim)}
  table{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0}
  th,td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
  th{background:var(--bg-soft);font-size:12px;font-weight:700;color:var(--ink-soft);white-space:nowrap}
  .contact-box{background:var(--bg-soft);border:1px solid var(--line);border-radius:10px;
    padding:15px 18px;margin-top:14px}
  .contact-box .cb-n{font-weight:700;font-size:14px}
  .contact-box .cb-a{font-size:12.5px;color:var(--ink-soft);line-height:1.85;margin-top:5px}

  footer{border-top:1px solid var(--line);background:var(--bg-soft);
    padding:26px clamp(16px,4vw,28px) calc(30px + var(--safe-b));margin-top:10px}
  .f-in{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;
    gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-faint)}
  .f-in nav{display:flex;flex-wrap:wrap;gap:6px 16px}

/* EMB-20: 表の目的を示す caption（レイアウトを変えずに支援技術へ伝える） */
.tbl-cap{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
