:root{--bg:#fbf7ee;--ink:#2a2a33;--sub:#6a6a76;--card:#fff;--line:#e8e0cc;--accent:#b5611a;--sky:#dff0f7}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:system-ui,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.8}main{max-width:720px;margin:0 auto;padding:16px 16px 64px}a{color:inherit}.top{border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:12px 16px;display:flex}.top nav{flex-wrap:wrap;gap:4px 16px;display:flex}.top nav a{font-size:.95rem;text-decoration:none}.brand{font-weight:700;text-decoration:none}.goalbar{background:var(--sky);padding:8px 16px;font-size:.85rem}.goalbar[hidden]{display:none}.bar{background:#fff;border-radius:99px;height:10px;margin-top:4px;overflow:hidden}.bar-fill{background:var(--accent);width:0;height:100%;transition:width .5s}.hero{padding:40px 0 24px}.hero h1{margin:0 0 12px;font-size:1.7rem;line-height:1.4}.hero p{color:var(--sub);margin:0 0 20px}.btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:12px;padding:12px 20px;font-size:1rem;text-decoration:none;display:inline-block}.btn.ghost{color:var(--ink);border:1px solid var(--line);background:0 0}h2{margin:32px 0 8px;font-size:1.15rem}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin:10px 0;padding:14px 16px;text-decoration:none;display:block}.tag{color:#fff;border-radius:99px;margin-right:6px;padding:0 8px;font-size:.75rem;display:inline-block}.stamps{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;display:grid}.stamp{aspect-ratio:1;text-align:center;color:#b8b2a2;background:#e9e5da;border:3px dashed #d3cdbd;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:8px;font-size:.7rem;line-height:1.3;display:flex}.stamp.got{color:#fff;box-shadow:0 0 0 3px var(--c);background:var(--c);border:3px solid #ffffffb3}.stamp .mark{font-size:1.6rem}.stamp:not(.got) .mark{filter:grayscale()brightness(.7);opacity:.35}label{margin:12px 0 4px;font-size:.9rem;display:block}input{border:1px solid var(--line);border-radius:8px;width:100%;padding:10px;font-size:1rem}table{border-collapse:collapse;background:var(--card);width:100%;font-size:.9rem}th,td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}th{background:#f3efe2}img{border:1px solid var(--line);border-radius:12px;max-width:100%;height:auto}.note{color:var(--sub);font-size:.85rem}.phrase{word-break:keep-all;overflow-wrap:anywhere}.theme-line{color:var(--accent);margin:24px 0 0;font-weight:700}.prompt{border-left:4px solid var(--accent);white-space:pre-wrap;background:#f3efe2;border-radius:6px;padding:8px 14px}.done-area{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:14px;margin:32px 0;padding:20px}.filters{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.filters button{font:inherit;background:var(--card);color:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:99px;padding:4px 14px;font-size:.9rem}.filters button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.goods{color:var(--sub);flex-wrap:wrap;gap:2px 12px;margin-top:4px;font-size:.85rem;display:flex}.card .arrow{float:right;color:var(--accent);margin-left:8px}.card[aria-disabled=true]{opacity:.6}[hidden]{display:none!important}.foot{border-top:1px solid var(--line);color:var(--sub);flex-wrap:wrap;justify-content:center;gap:4px 20px;padding:20px 16px 32px;font-size:.85rem;display:flex}.sticky{z-index:20;position:sticky;top:0}a[target=_blank]:after{content:"";vertical-align:-.05em;background:currentColor;width:.8em;height:.8em;margin-left:.25em;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E") 50%/contain no-repeat}.alert{background:#fdecec;border:1px solid #f0b4b4;border-radius:10px;margin:14px 0;padding:10px 14px}.intro{background:var(--card);border:1px solid var(--line);border-radius:14px;margin:16px 0 0;padding:12px 16px}.intro p{margin:6px 0}.next-nav{flex-wrap:wrap;gap:10px;margin:32px 0 8px;display:flex}.column{border:1px solid var(--line);background:#f6f1e3;border-radius:12px;margin:20px 0;padding:8px 14px}.column summary{cursor:pointer;font-weight:700}.toc{padding-left:0;list-style:none}.toc li{margin:6px 0}.stamp{font:inherit;cursor:pointer}.stamp:not(.got){font-size:.7rem}dialog{border:1px solid var(--line);background:var(--card);max-width:320px;color:var(--ink);border-radius:14px;padding:20px}dialog::backdrop{background:#00000059}dialog .row{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.confetti{z-index:100;pointer-events:none;animation:1.8s ease-in forwards fall;position:fixed;top:-12px}@keyframes fall{to{opacity:.9;transform:translateY(105vh)rotate(540deg)}}@media (prefers-reduced-motion:reduce){.confetti{display:none}}
