
:root{
  --bg:#f7f7fb; --ink:#111827; --muted:#6b7280; --brand:#16a34a;
  --warn:#fff9c4; --info:#e3f2fd; --danger:#ffebee; --line:#e5e7eb; --card:#ffffff;
}
*{box-sizing:border-box}
body{margin:0; font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif; color:var(--ink); background:var(--bg);}
a{color:#2563eb; text-decoration:none}
.container{max-width:1080px; margin:0 auto; padding:16px;}
header{position:sticky; top:0; background:rgba(255,255,255,.9); backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid var(--line); z-index:10;}
header .container{display:flex; align-items:center; gap:12px; padding-block:10px;}
.brand{font-weight:700; letter-spacing:.02em;}
.hero{padding:20px 0 8px}
.hero h1{font-size:clamp(20px,3.2vw,28px); margin:0 0 6px}
.hero p{color:var(--muted); margin:0}
.card{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px;}
.step{background:var(--card); border:1px dashed var(--line); border-radius:12px; padding:14px; margin:14px 0;}
.step h2{font-size:18px; margin:0 0 6px; color:#14532d}
.note{color:var(--muted);}
.shot{border:1px solid #cbd5e1; background:#fff; border-radius:12px; padding:8px; display:block; width:100%; height:auto;}
.grid-2{display:grid; grid-template-columns:1fr; gap:10px}
@media (min-width:860px){ .grid-2{grid-template-columns:1fr 1fr} }
.grid-3{display:grid; grid-template-columns:1fr; gap:12px}
@media (min-width:860px){ .grid-3{grid-template-columns:1fr 1fr 1fr} }
.badge{display:inline-block; background:#dcfce7; color:#065f46; padding:2px 8px; border-radius:999px; font-size:12px; font-weight:700}
.cta{display:flex; gap:10px; flex-wrap:wrap}
.btn{border:1px solid var(--line); background:#fff; padding:10px 14px; border-radius:10px; cursor:pointer}
.btn.primary{background:var(--brand); color:white; border-color:var(--brand);}
.hint{background:var(--warn); border:1px solid #facc15; border-radius:10px; padding:12px; margin:12px 0}
.tips{background:var(--info); border:1px solid #90caf9; border-radius:10px; padding:12px; margin:12px 0}
.error{background:var(--danger); border:1px solid #ef9a9a; border-radius:10px; padding:12px; margin:12px 0}
footer{color:var(--muted); padding:24px 0}
.kbd{font:12px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; background:#eef2ff; border:1px solid #c7d2fe; padding:2px 6px; border-radius:6px}
figure{margin:0}
.cap{font-weight:800; font-size:clamp(14px,2.2vw,18px); margin:6px 0 6px; color:#0f5132}
.toc nav{position:relative; border:1px solid var(--line); background:var(--card); border-radius:12px; padding:10px}
.toc a{display:block; padding:6px 8px; border-radius:8px; color:#6b7280}
.toc a:hover{background:#f3f4f6; color:#111827}
