:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#17283d;background:#f3f7fc}*{box-sizing:border-box}body{margin:0}a{color:#0649a9}a:focus-visible{outline:3px solid #d69e28;outline-offset:3px}header{background:#14283d;color:white;padding:1rem max(1rem,calc((100vw - 1100px)/2))}header a{color:white;text-decoration:none;font-weight:700}main{max-width:1100px;margin:auto;padding:clamp(1.2rem,4vw,3rem)}h1{font-size:clamp(2rem,5vw,3.2rem);margin:.2rem 0 1rem}h2{margin:0 0 .75rem}p,li{line-height:1.6}p{max-width:72ch}.intro{font-size:1.15rem;color:#4c5b6c}.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin:2rem 0}.role{display:block;padding:1.5rem;border:1px solid #dce4ed;border-radius:16px;background:white;text-decoration:none;color:inherit;box-shadow:0 5px 20px #1739580d}.role:hover{border-color:#0753ba;transform:translateY(-2px)}.role strong{display:block;font-size:1.15rem}.role span{display:block;margin-top:.35rem;color:#526171}.step{background:white;border:1px solid #dce4ed;border-radius:16px;padding:1.4rem;margin:1rem 0}.step img{display:block;max-width:100%;height:auto;border:1px solid #cfd9e6;border-radius:8px;margin:1rem 0}.hint{padding:1rem 1.25rem;border-left:4px solid #0753ba;background:#e8f1ff;border-radius:4px}.back{display:inline-block;margin-top:2rem;font-weight:700}footer{padding:2rem;text-align:center;color:#596b7d}ol{padding-left:1.5rem}@media(prefers-reduced-motion:reduce){.role:hover{transform:none}}

details{border-top:1px solid #dce4ed;padding:.7rem 0}details:last-child{border-bottom:1px solid #dce4ed}summary{cursor:pointer;font-weight:700;color:#0649a9}summary:focus-visible{outline:3px solid #d69e28;outline-offset:3px}details p{margin:.6rem 0}li img{margin-left:-1.5rem;max-width:calc(100% + 1.5rem)}h3{margin:1.5rem 0 .5rem}dt{margin-top:.8rem}dd{margin:.25rem 0 0}
.role img{display:block;width:96px;height:96px;object-fit:contain;margin:-12px 0 0 -12px}.role:focus-visible{outline:3px solid #d69e28;outline-offset:4px}
.guide-toc{margin:1.5rem 0 2rem;padding:1.25rem 1.4rem;background:#e8f1ff;border:1px solid #cbdcf3;border-radius:12px}
.guide-toc h2{font-size:1.1rem;margin:0 0 .7rem}
.guide-toc ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.45rem 1rem;margin:0;padding-left:1.25rem}
.guide-toc li{line-height:1.4}
.guide-toc a{font-weight:600;text-underline-offset:.15em}
.step[id]{scroll-margin-top:1.25rem}
