:root{--bg:#fbf7ef;--card:#fff;--ink:#2b2622;--sub:#6b625a;--line:#e6ddd0;--accent:#2f6fbf;--go:#2e8b57;--goBg:#e9f6ec;--ng:#c8403a;--ngBg:#fbecea;--mark:#fff3c4}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;font-size:18px;line-height:1.85}
main{max-width:720px;margin:0 auto;padding:24px 16px 64px}
header.hero{background:var(--card);border-radius:20px;padding:28px 22px;box-shadow:0 2px 10px rgba(0,0,0,.05);margin-bottom:28px}
.kicker{display:inline-block;background:#eef3fb;color:var(--accent);font-size:14px;font-weight:700;padding:2px 12px;border-radius:99px}
h1{font-size:28px;line-height:1.45;margin:12px 0 6px}
h1 small{display:block;font-size:20px;color:var(--sub);font-weight:700}
h2{font-size:23px;line-height:1.5;margin:44px 0 14px;padding-left:12px;border-left:6px solid var(--accent)}
h3{font-size:19px;margin:24px 0 8px}
p{margin:0 0 14px}
b,strong{font-weight:800}
ul,ol{padding-left:1.4em;margin:0 0 14px}
li{margin:4px 0}
.box{background:var(--card);border-radius:16px;padding:18px 18px 6px;margin:14px 0;border:1px solid var(--line)}
.note{background:#f4efe6;border-left:5px solid #c9b79c;border-radius:8px;padding:12px 16px;margin:14px 0}
.toc{background:var(--card);border-radius:16px;padding:16px 18px;border:1px solid var(--line)}
.toc a{color:var(--accent);text-decoration:none;font-weight:700}
.toc li{margin:6px 0}
.flow{display:grid;gap:8px;margin:16px 0}
.step{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.step b{display:block}
.step span{color:var(--sub);font-size:16px}
.step.last{border:2px solid var(--ng);background:var(--ngBg)}
.stop{margin-left:22px;background:var(--goBg);border:2px solid var(--go);border-radius:12px;padding:6px 14px;font-weight:800}
.stop small{display:block;font-weight:400;color:var(--go);font-size:13px}
.five{list-style:none;padding:0;counter-reset:n}
.five li{counter-increment:n;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px 12px 62px;position:relative;margin:10px 0}
.five li::before{content:counter(n);position:absolute;left:14px;top:12px;width:36px;height:36px;border-radius:50%;border:3px solid var(--accent);color:var(--accent);font-weight:800;display:flex;align-items:center;justify-content:center}
.five li span{display:block;color:var(--sub);font-size:16px}
.do{background:var(--card);border-radius:18px;padding:6px 18px 10px;margin:22px 0;border:1px solid var(--line)}
.do h2{margin-top:18px}
.steps{background:#f7f9fd;border-radius:12px;padding:12px 14px 12px 2.2em;margin:10px 0 16px}
.yaku{border:2px solid var(--ng);border-radius:14px;overflow:hidden;margin:12px 0}
.yaku .n{background:var(--ngBg);padding:10px 14px;font-weight:800}
.yaku .y{background:var(--goBg);padding:8px 14px}
table{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px;overflow:hidden;font-size:16px}
th,td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
th{background:#f0ebe2}
.check{list-style:none;padding:0}
.check label{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;cursor:pointer}
.check input{width:26px;height:26px;flex:0 0 26px;margin-top:3px;accent-color:var(--go)}
.check input:checked+span{color:var(--sub);text-decoration:line-through}
.done{display:none;background:var(--goBg);border:2px solid var(--go);border-radius:12px;padding:12px 16px;font-weight:800;margin-top:12px}
.done.show{display:block}
.src{font-size:15px;color:var(--sub)}
footer{margin-top:40px;text-align:center;font-size:14px;color:var(--sub)}
.top{position:fixed;right:14px;bottom:14px;background:var(--accent);color:#fff;border-radius:99px;padding:8px 14px;font-size:14px;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.2)}
@media (min-width:600px){h1{font-size:34px}}
