:root{
  --bg:#f6eef7;
  --bg2:#fdf7f2;
  --ink:#4a3b52;
  --muted:#8a7a92;
  --accent:#c77d9e;
  --accent2:#9b86c9;
  --gold:#d8b26a;
  --card:#ffffffcc;
  --line:#e7d6e8;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:#fbeff2}
body{
  margin:0;min-height:100vh;color:var(--ink);
  font-family:"Zen Maru Gothic",system-ui,sans-serif;line-height:1.8;
  background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 60%,#fbeff2 100%) fixed;
  overflow-x:hidden;
}
.sky{position:fixed;inset:0;pointer-events:none;z-index:0}
.sky span{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 8px 2px #fff8;animation:tw 4s ease-in-out infinite}
.sky span:nth-child(1){top:8%;left:12%}
.sky span:nth-child(2){top:18%;left:82%;animation-delay:.6s}
.sky span:nth-child(3){top:34%;left:6%;animation-delay:1.2s}
.sky span:nth-child(4){top:46%;left:92%;animation-delay:1.8s}
.sky span:nth-child(5){top:64%;left:16%;animation-delay:2.4s}
.sky span:nth-child(6){top:76%;left:74%;animation-delay:3s}
.sky span:nth-child(7){top:12%;left:52%;animation-delay:.9s}
.sky span:nth-child(8){top:88%;left:40%;animation-delay:2s}
@keyframes tw{0%,100%{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}

.hero,main,footer{position:relative;z-index:1}
.hero{text-align:center;padding:48px 16px 8px}
.moon{width:92px;height:92px;filter:drop-shadow(0 0 18px #f3d9a8aa)}
.eyebrow{margin:8px 0 0;letter-spacing:.3em;font-size:.72rem;color:var(--accent2);text-transform:uppercase}
h1{font-family:"Shippori Mincho",serif;font-weight:700;font-size:clamp(1.9rem,6vw,2.8rem);margin:4px 0 4px;letter-spacing:.08em}
.lead{margin:0;color:var(--muted)}
.today{margin:6px 0 20px;font-size:.9rem;color:var(--accent)}

.tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:#fff9;border:1px solid var(--line);max-width:100%}
.tabs button{border:0;background:none;font:inherit;color:var(--muted);padding:8px 16px;border-radius:999px;cursor:pointer;white-space:nowrap;font-size:.95rem}
.tabs button[aria-selected=true]{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 4px 12px #c77d9e44}

main{max-width:640px;margin:0 auto;padding:16px}
.panel{background:var(--card);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:24px;padding:28px 20px;box-shadow:0 10px 30px #9b86c91f}
h2{font-family:"Shippori Mincho",serif;text-align:center;margin:0 0 4px;font-size:1.4rem;letter-spacing:.1em}
h2::before,h2::after{content:"❀";color:var(--accent);font-size:.8em;margin:0 .6em}
.hint{text-align:center;color:var(--muted);font-size:.9rem;margin:0 0 20px}

.form{display:flex;flex-direction:column;align-items:center;gap:14px}
.form .row{display:flex;gap:12px}
label{display:flex;flex-direction:column;font-size:.85rem;color:var(--muted);gap:4px;width:100%;max-width:320px}
.row label{width:auto}
select,input{font:inherit;font-size:1rem;color:var(--ink);padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:#fff;min-width:96px}
input:focus,select:focus{outline:2px solid var(--accent2);outline-offset:1px}
.heart{color:var(--accent);font-size:1.4rem;line-height:1}
.btn{font:inherit;font-weight:700;letter-spacing:.15em;color:#fff;border:0;border-radius:999px;padding:12px 40px;cursor:pointer;
  background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 6px 16px #c77d9e55;transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
.btn.ghost{background:#fff;color:var(--accent);border:1px solid var(--accent);box-shadow:none;padding:8px 20px;text-decoration:none;letter-spacing:.05em;font-weight:500}

.result{margin-top:24px;padding-top:20px;border-top:1px dashed var(--line);animation:fade .6s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sign{text-align:center}
.sign .glyph{font-size:2.6rem;line-height:1;color:var(--accent2)}
.sign .name{font-family:"Shippori Mincho",serif;font-size:1.3rem;font-weight:700}
.sign .rank{display:inline-block;margin-top:4px;font-size:.85rem;color:#fff;background:var(--gold);border-radius:999px;padding:0 12px}
.stars{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;max-width:300px;margin:18px auto;font-size:.95rem}
.stars dd{margin:0;color:var(--gold);letter-spacing:.1em}
.stars dd .off{color:#e8dccb}
.msg{background:#fff;border-radius:16px;padding:14px 16px;margin:12px 0;border:1px solid var(--line)}
.lucky{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}
.lucky span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 14px;font-size:.88rem}
.swatch{display:inline-block;width:.9em;height:.9em;border-radius:50%;vertical-align:-.1em;margin-right:4px;border:1px solid #0001}
.share{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}

.percent{font-family:"Shippori Mincho",serif;text-align:center;font-size:3.2rem;font-weight:700;color:var(--accent);line-height:1.1}
.percent small{font-size:1.2rem}
.pair{text-align:center;color:var(--muted);margin:0}
.meter{height:10px;border-radius:999px;background:#f1e4ef;overflow:hidden;max-width:320px;margin:10px auto}
.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:999px;transition:width 1s ease}

.deck{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-width:420px;margin:0 auto}
.deck button{aspect-ratio:2/3;border-radius:10px;border:1px solid #fff;cursor:pointer;padding:0;
  background:
    radial-gradient(circle at 50% 50%,#fff6 0 18%,transparent 19%),
    repeating-linear-gradient(45deg,#b9a3dc 0 6px,#a38cd0 6px 12px);
  box-shadow:0 4px 10px #9b86c955;transition:transform .2s}
.deck button:hover{transform:translateY(-6px) rotate(-2deg)}
.deck.done button{opacity:.35;pointer-events:none}
.tcard{width:150px;aspect-ratio:2/3;margin:0 auto;border-radius:14px;background:linear-gradient(160deg,#fff,#f7ecf6);border:2px solid var(--gold);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:0 8px 20px #d8b26a44;animation:flip .8s ease}
.tcard.rev .tsym{transform:rotate(180deg)}
.tcard .tnum{font-size:.8rem;color:var(--gold);letter-spacing:.2em}
.tcard .tsym{font-size:3rem;line-height:1}
.tcard .tname{font-family:"Shippori Mincho",serif;font-weight:700;text-align:center;padding:0 6px}
@keyframes flip{from{transform:rotateY(90deg)}to{transform:none}}
.tpos{text-align:center;margin:10px 0 0;color:var(--accent2);font-weight:700}

footer{text-align:center;color:var(--muted);font-size:.82rem;padding:32px 16px 40px}
.copy{opacity:.7}

@media (max-width:420px){
  .hero{padding-top:32px}
  .tabs button{padding:8px 11px;font-size:.88rem}
  .panel{padding:24px 14px}
  .deck{gap:6px}
}
