:root{--ink:#342b41;--muted:#746a7c;--line:#e9deeb;--paper:#fffdfd;--accent:#6550a4;--accent-soft:#f1edff;--rose:#b84d6d;--shadow:0 18px 52px rgba(66,49,83,.11)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 10% 5%,#ffeef3 0,transparent 27rem),radial-gradient(circle at 92% 15%,#eeebff 0,transparent 31rem),#fffafb;color:var(--ink);font-family:"Hiragino Maru Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.75}
a{color:inherit}
button{font:inherit}
.wrap{width:min(1060px,calc(100% - 32px));margin:auto;padding:20px 0 64px}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.brand{text-decoration:none;font-weight:900;color:#684f7d;letter-spacing:.05em}
.back{font-size:.86rem;color:var(--muted);text-decoration:none}
.hero{position:relative;overflow:hidden;padding:clamp(28px,6vw,64px);border:1px solid var(--line);border-radius:32px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(247,241,255,.92));box-shadow:var(--shadow)}
.hero:after{content:attr(data-symbol);position:absolute;right:clamp(10px,5vw,55px);top:-25px;font-size:clamp(9rem,25vw,18rem);line-height:1;color:rgba(101,80,164,.08);pointer-events:none}
.eyebrow{margin:0 0 8px;color:var(--accent);font-weight:900;font-size:.82rem;letter-spacing:.12em}
h1{position:relative;z-index:1;margin:0;font-size:clamp(1.75rem,5.5vw,3.2rem);line-height:1.35}
.date{position:relative;z-index:1;margin:10px 0 0;color:var(--muted);font-weight:700}
.lead{position:relative;z-index:1;max-width:44rem;margin:22px 0 0;font-size:clamp(1rem,2.6vw,1.18rem)}
.score-row{position:relative;z-index:1;display:flex;align-items:center;gap:18px;margin-top:26px}
.score{display:grid;place-items:center;width:92px;aspect-ratio:1;border-radius:50%;background:var(--accent);color:white;box-shadow:0 10px 28px rgba(101,80,164,.28)}
.score strong{font-size:2rem;line-height:1}.score small{font-size:.65rem}
.theme strong{display:block;color:var(--rose);font-size:1.25rem}.theme span{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}
.card{padding:24px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.92);box-shadow:0 10px 32px rgba(66,49,83,.07)}
.card h2{margin:0 0 14px;font-size:1.22rem}.card p{margin:0;color:var(--muted)}
.meters{display:grid;gap:14px}
.meter-head{display:flex;justify-content:space-between;font-weight:800}.meter-track{height:9px;overflow:hidden;border-radius:999px;background:#eee8f0}.meter-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#d36f91)}
.lucky{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.lucky div{padding:14px;border-radius:16px;background:var(--accent-soft)}.lucky small{display:block;color:var(--muted)}.lucky strong{display:block;margin-top:3px}
.period{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.period .card:first-child{background:linear-gradient(140deg,#fff,#f3efff)}
.share{margin-top:20px;text-align:center}.share h2{margin-bottom:8px}.share p{margin:0 0 18px;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.btn{min-height:46px;padding:10px 18px;border:1px solid var(--accent);border-radius:999px;background:white;color:var(--accent);font-weight:900;cursor:pointer;text-decoration:none}.btn.primary{background:var(--accent);color:white}.btn:focus-visible{outline:3px solid #e2a8bb;outline-offset:3px}
#shareStatus{min-height:1.6em;margin-top:10px;color:var(--muted);font-size:.85rem}
.signs{margin-top:24px}.signs h2{text-align:center}.sign-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.sign-grid a{padding:12px 6px;border:1px solid var(--line);border-radius:14px;background:white;text-align:center;text-decoration:none;font-size:.82rem;font-weight:800}.sign-grid a[aria-current="page"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.note{margin:22px auto 0;max-width:48rem;color:var(--muted);font-size:.78rem;text-align:center}
@media(max-width:700px){.wrap{width:min(100% - 20px,1060px);padding-top:12px}.hero{border-radius:24px;padding:26px 20px}.grid,.period{grid-template-columns:1fr}.sign-grid{grid-template-columns:repeat(3,1fr)}.card{padding:20px}.top{padding:0 4px}.score{width:78px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
