:root{--bg:#f7f3ff;--card:#fff;--ink:#2c2340;--sub:#6f6485;--line:#e6dcf6;--p1:#7c4de7;--p2:#ec4899;--soft:#f1eaff}
*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Yu Gothic",sans-serif;line-height:1.85}
a{color:var(--p1)}
header{background:linear-gradient(135deg,var(--p1),var(--p2));color:#fff}
.head{max-width:920px;margin:auto;padding:18px 22px;display:flex;justify-content:space-between;align-items:center}
.brand{font-weight:900;color:#fff;text-decoration:none}.head nav a{color:#fff;margin-left:18px;font-size:.85rem}
main{width:100%;max-width:820px;margin:auto;padding:46px 22px 80px}.crumb{font-size:.78rem;color:var(--sub);margin-bottom:24px}
.label{display:inline-block;padding:5px 12px;background:var(--soft);color:var(--p1);border-radius:99px;font-size:.76rem;font-weight:800}
h1{font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.35;margin:14px 0;overflow-wrap:anywhere}.lead{font-size:1.05rem;color:var(--sub)}
.summary,.note,.source{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;margin:28px 0;overflow-wrap:anywhere}.summary{border-left:6px solid var(--p1)}
h2{font-size:1.45rem;margin:44px 0 12px}.steps{counter-reset:item;padding:0;list-style:none}
.steps li{counter-increment:item;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 18px 18px 58px;margin:12px 0;position:relative;overflow-wrap:anywhere}
.steps li:before{content:counter(item);position:absolute;left:18px;top:18px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--p1);color:#fff;font-weight:900}
.warn{border-left:6px solid #d68c20}.cta{margin:44px 0;padding:28px;text-align:center;color:#fff;background:linear-gradient(135deg,var(--p1),var(--p2));border-radius:22px}
.cta a{display:inline-block;margin-top:10px;background:#fff;color:var(--p1);padding:12px 24px;border-radius:99px;text-decoration:none;font-weight:900}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.card{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;text-decoration:none;color:var(--ink)}
.card b{display:block;margin-bottom:6px}.card span{font-size:.82rem;color:var(--sub)}footer{border-top:1px solid var(--line);padding:28px 20px;text-align:center;font-size:.75rem;color:var(--sub)}
@media(max-width:600px){.head nav{display:none}main{padding-top:32px}.source{overflow-wrap:anywhere}}
