:root { --ink:#25282c; --muted:#565b61; --accent:#913c4e; --line:#deded9; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font:17px/1.9 "Yu Gothic UI","Yu Gothic",Meiryo,sans-serif; overflow-wrap:anywhere; }
a { color:var(--accent); text-underline-offset:4px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible { outline:3px solid #276bbb; outline-offset:5px; }
h1,h2,p,dl,dd { margin:0; }
h1,h2 { line-height:1.55; }
.skip-link { position:fixed; top:-80px; left:16px; padding:10px 18px; background:#fff; z-index:10; }
.skip-link:focus { top:10px; }
.site-header { border-bottom:1px solid var(--line); }
.header-inner { width:min(1080px,calc(100% - 48px)); min-height:78px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { color:var(--ink); font:italic 40px/1 Georgia,serif; letter-spacing:-2px; text-decoration:none; flex:none; }
.back-link { color:var(--ink); font-size:14px; }
.page { width:min(800px,calc(100% - 48px)); margin:28px auto 56px; }
.usage { margin-top:32px; }
h1 { font-size:clamp(25px,3.3vw,32px); margin-bottom:24px; }
.usage p+p { margin-top:18px; }
.lead { font-size:18px; }
.page-nav { display:flex; flex-wrap:wrap; gap:10px 22px; padding-block:20px; margin-top:24px; border-block:1px solid var(--line); font-size:15px; }
.guidance { margin-top:36px; scroll-margin-top:24px; }
.guidance h2 { font-size:24px; margin-bottom:14px; }
.requirements-list { margin:20px 0; border-top:1px solid var(--line); }
.requirements-list>div { display:grid; grid-template-columns:150px minmax(0,1fr); gap:20px; padding-block:10px; border-bottom:1px solid var(--line); }
.requirements-list dt { font-weight:700; }
.requirements-list dd { color:var(--muted); }
.document-list { padding-left:25px; margin:20px 0; }
.document-list li { margin:8px 0; padding-left:4px; }
.prohibited-actions { margin:24px 0; padding-left:25px; }
.prohibited-actions li { padding-left:4px; margin:14px 0; }
.prohibited-actions li::marker { color:var(--accent); }
.privacy { margin-top:42px; padding-top:32px; border-top:1px solid var(--line); }
h2 { font-size:26px; margin-bottom:20px; }
.privacy-list { margin-top:24px; }
.privacy-list>div { margin-top:22px; }
.privacy-list dt { font-weight:700; margin-bottom:6px; }
.privacy-list dd { color:var(--muted); }
.contact { font-style:normal; border-left:3px solid var(--accent); padding-left:18px; margin:30px 0 20px; }
.contact a { display:inline-block; margin-top:8px; }
.small { color:var(--muted); font-size:14px; line-height:1.85; margin-top:12px; }
.revision { color:var(--muted); font-size:13px; margin-top:24px; }
.site-footer { border-top:1px solid var(--line); text-align:center; color:var(--muted); padding:20px 24px; font-size:14px; }
@media(max-width:700px) {
  body { font-size:16px; }
  .header-inner,.page { width:calc(100% - 40px); }
  .header-inner { min-height:70px; gap:16px; }
  .brand { font-size:36px; }
  .back-link { font-size:13px; }
  .page { margin-top:20px; }
  .lead { font-size:17px; }
  .guidance h2 { font-size:22px; }
  .requirements-list>div { grid-template-columns:110px minmax(0,1fr); gap:12px; }
  .privacy { margin-top:32px; padding-top:26px; }
  h2 { font-size:23px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print {
  .site-header,.site-footer,.skip-link { display:none; }
  .page { width:100%; margin:0; }
  h1,h2,dt { break-after:avoid; }
  .contact,.prohibited-actions li,.requirements-list>div { break-inside:avoid; }
  a { color:inherit; }
}
