:root{
  --bg:#FBF8FC; --ink:#2E2740; --mute:#6B6380; --fuji:#7C64A8; --fuji-d:#5E4A86; --usu:#EEE7F6; --line:#DCD2EA;
  --gold:#A8832E; --gold-l:#E8D29A; --dawn:#F6E1E7; --ok:#2F7D62; --ng:#B4475A;
  --mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.9 var(--sans);letter-spacing:.02em}
a{color:var(--fuji-d);text-underline-offset:3px}
a:hover{color:var(--gold)}
:focus-visible{outline:3px solid var(--gold-l);outline-offset:2px;border-radius:4px}
img{max-width:100%;height:auto}
.wrap{max-width:760px;margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:var(--mincho);font-weight:700;line-height:1.45;letter-spacing:.04em}
h1{font-size:1.75rem;margin:.4em 0 .6em}
h2{font-size:1.32rem;margin:2.2em 0 .7em;padding-bottom:.35em;border-bottom:1px solid var(--line)}
h3{font-size:1.1rem;margin:1.8em 0 .5em}
h2.sub{font-size:1.12rem;border:0;margin-top:2.4em}
p{margin:0 0 1.1em}
.small,small{font-size:.86rem;color:var(--mute)}

/* header */
header.site{background:linear-gradient(180deg,var(--dawn),var(--bg));border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 18px;padding-top:10px;padding-bottom:8px;max-width:1080px}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--mincho);font-weight:700;font-size:1.3rem;color:var(--ink);text-decoration:none;letter-spacing:.12em}
.logo img{border-radius:50%;border:1px solid var(--gold-l)}
.gnav{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:.9rem}
.gnav a{color:var(--ink);text-decoration:none;padding:4px 0}
.gnav a:hover{color:var(--fuji)}
.crumbs{font-size:.8rem;color:var(--mute);margin:14px 0 0}
.crumbs a{color:var(--mute)}

/* hero */
.home main.wrap{max-width:1080px}
.home .sec,.home .hero-txt{max-width:760px}
.hero{display:grid;grid-template-columns:1fr;gap:8px;margin:18px 0 10px}
.hero-art img{display:block;width:100%;border-radius:4px 60px 4px 60px}
.hero-yr{font-family:var(--mincho);font-size:3.4rem;line-height:1;margin:.3em 0 0;color:var(--gold);letter-spacing:.06em}
.hero h1{font-size:2rem;margin:.25em 0 .5em}
@media(min-width:900px){
  .hero{grid-template-columns:1fr 1.15fr;align-items:center;gap:40px}
  .hero-art{order:2}
  .home .sec{margin-left:auto;margin-right:auto}
}
.quick,.kuji{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 6px}
.quick label,.kuji label{font-size:.9rem;color:var(--mute)}
select{font:inherit;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
button{font:inherit;font-weight:700;cursor:pointer;border:0;border-radius:999px;padding:11px 22px;background:var(--fuji);color:#fff;letter-spacing:.06em}
button:hover{background:var(--fuji-d)}
.note{font-size:.82rem;color:var(--mute)}

/* 九星盤：サイトの顔 */
.board{margin:10px auto 18px;max-width:300px}
.board-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--gold);background:#fff}
.board .cell{aspect-ratio:1;border:1px solid var(--gold-l);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.board .cell.c{background:var(--usu)}
.board .cell.hl{background:var(--gold);color:#fff}
.board .dir{position:absolute;top:4px;left:6px;font-size:.62rem;color:var(--mute)}
.board .hl .dir{color:#fff}
.board .num{font-family:var(--mincho);font-size:1.9rem;font-weight:700;line-height:1}
.board .nm{font-size:.7rem;margin-top:4px}
.board figcaption{font-size:.8rem;color:var(--mute);text-align:center;margin-top:6px}
.split{display:grid;gap:18px;align-items:center}
@media(min-width:640px){.split{grid-template-columns:300px 1fr}}

/* アイラのことば */
.say{display:flex;gap:12px;align-items:flex-end;margin:18px 0 26px}
.say-img{flex:0 0 96px;width:96px}
.say-body{position:relative;background:var(--usu);border-radius:18px 18px 18px 4px;padding:14px 18px;font-size:.95rem}
.say-body p:last-child{margin-bottom:0}
@media(min-width:640px){.say-img{flex-basis:120px;width:120px}}

/* 本文 */
.prose{margin:8px 0 10px}
.prose h2:first-child{margin-top:1.2em}
.prose ul,.prose ol{padding-left:1.4em;margin:0 0 1.2em}
.prose li{margin:.25em 0}
.prose strong{background:linear-gradient(transparent 62%,var(--gold-l) 62%)}
.prose table{border-collapse:collapse;width:100%;margin:1em 0}
.prose th,.prose td{border:1px solid var(--line);padding:8px 10px;text-align:left}

/* 星の選択（盤と同じ3×3） */
.stars{list-style:none;padding:0;margin:10px 0 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.stars a{display:flex;align-items:baseline;gap:4px;justify-content:center;padding:10px 4px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink);font-size:.9rem;border-radius:6px}
.stars a span{font-family:var(--mincho);font-size:1.25rem;font-weight:700;color:var(--fuji)}
.stars a:hover{border-color:var(--gold)}
.stars .cur a{background:var(--usu)}
.nenun-list{list-style:none;padding:0;margin:0 0 24px}
.nenun-list a{display:grid;grid-template-columns:7.5em 1fr;gap:2px 12px;padding:12px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.nenun-list b{font-family:var(--mincho);font-size:1.1rem}
.nenun-list span{font-size:.9rem;color:var(--mute);align-self:center}
.meter{grid-column:1/-1;height:4px;background:var(--usu);border-radius:2px;position:relative}
.meter::after{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--v)*1%);background:var(--fuji);border-radius:2px}
.theme,.months,.eto{list-style:none;padding:0;margin:10px 0 22px;display:flex;flex-wrap:wrap;gap:8px}
.theme a,.months a,.eto a{display:block;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;color:var(--ink);font-size:.9rem}
.months .cur a{background:var(--fuji);color:#fff;border-color:var(--fuji)}
.eto b{font-family:var(--mincho);color:var(--fuji);margin-right:3px}
.menu{list-style:none;padding:0;margin:0;display:grid;gap:0 24px}
@media(min-width:640px){.menu{grid-template-columns:1fr 1fr}}
.menu a{display:block;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.menu b{font-family:var(--mincho);font-size:1.08rem;display:block}
.menu span{font-size:.86rem;color:var(--mute)}
.links{display:flex;flex-wrap:wrap;gap:6px 18px;margin:18px 0}
.links a::before{content:"› ";color:var(--gold)}
.more::before{content:"› ";color:var(--gold)}
.arts{padding-left:1.2em}
.arts li{margin:.4em 0}

/* 表 */
.tbl{border-collapse:collapse;width:100%;font-size:.92rem;margin:10px 0 20px;background:#fff}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:8px 8px;text-align:left;vertical-align:top}
.tbl thead th{font-weight:700;color:var(--mute);font-size:.82rem;border-bottom:1px solid var(--fuji)}
.scroll{overflow-x:auto}
.grid9 td,.grid9 th{text-align:center}
.grid9 a{text-decoration:none}
.ok{color:var(--ok)}.ng{color:var(--ng)}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:.92rem}
.facts dt{color:var(--mute)}.facts dd{margin:0}

/* グラフ */
.flow{width:100%;height:auto;display:block;margin:10px 0}
.flow text{font-size:13px;fill:var(--mute)}

/* 結果 */
.birth{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0;padding:16px;background:#fff;border:1px solid var(--line);border-radius:12px}
.birth .sel{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.birth label{font-size:.88rem;color:var(--mute);margin-right:4px}
.result{scroll-margin-top:16px}
.result .big{font-family:var(--mincho);font-size:1.3rem}
.err{color:var(--ng)}
.lovemonths{list-style:none;padding:0;margin:12px 0 24px}
.lovemonths li{display:grid;grid-template-columns:8.5em 5.5em 1fr;gap:4px 10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.lovemonths em{font-style:normal;font-weight:700}
.lovemonths .go em{color:var(--gold)}
.lovemonths .wait em{color:var(--mute)}
@media(max-width:560px){.lovemonths li{grid-template-columns:1fr auto}.lovemonths li div{grid-column:1/-1}}

/* おみくじ */
.kuji-box{width:120px;height:170px;margin:20px auto;border:2px solid var(--gold);border-radius:12px 12px 4px 4px;background:repeating-linear-gradient(90deg,#fff 0 14px,var(--usu) 14px 28px);display:flex;align-items:flex-start;justify-content:center}
.kuji-box span{writing-mode:vertical-rl;font-family:var(--mincho);margin-top:16px;background:#fff;padding:6px 3px;border:1px solid var(--gold-l)}
.kuji-box.shake{animation:shake .8s ease}
@keyframes shake{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}}
.kuji-card{text-align:center;margin:20px auto;padding:26px 16px;max-width:340px;background:#fff;border:2px solid var(--gold);border-radius:6px;box-shadow:0 0 0 6px var(--usu)}
.kuji-y{margin:0;color:var(--mute);font-size:.9rem}
.kuji-lv{font-family:var(--mincho);font-size:3.6rem;font-weight:700;line-height:1.2;margin:.1em 0;color:var(--fuji-d)}
.kuji-st{margin:0;font-family:var(--mincho)}
.kuji-pk{margin:.6em 0 0}
.kuji-pk b{color:var(--gold);font-size:1.2rem}
.share{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:20px 0}
.btn-x,.btn-sub{display:inline-block;padding:11px 22px;border-radius:999px;text-decoration:none;font-weight:700}
.btn-x{background:#111;color:#fff}.btn-x:hover{color:#fff;background:#333}
.btn-sub{border:1px solid var(--fuji);color:var(--fuji)}

/* タロット */
.deck{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;margin:20px 0}
.card{padding:0;border-radius:6px;aspect-ratio:3/5;background:none;border:0}
.card .back{display:block;width:100%;height:100%;border-radius:6px;border:2px solid var(--gold-l);background:radial-gradient(circle at 50% 50%,var(--gold-l) 0 6%,transparent 7%),repeating-linear-gradient(45deg,var(--fuji) 0 6px,var(--fuji-d) 6px 12px)}
.card:hover .back{transform:translateY(-4px)}
.deck.done .card:not(.open){opacity:.35}
.card.open{grid-column:span 2;grid-row:span 2}
.card .face{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background:#fff;border:2px solid var(--gold);border-radius:6px;color:var(--ink);animation:flip .5s ease}
.card.rev .face{transform:rotate(180deg)}
.card .face i{font-style:normal;font-family:var(--mincho);color:var(--gold);font-size:1.3rem}
.card .face b{font-family:var(--mincho);font-size:1rem;margin-top:6px;writing-mode:vertical-rl}
@keyframes flip{from{transform:rotateY(90deg)}to{transform:rotateY(0)}}
.card.rev .face{animation:none}

/* 暦 */
.cal{margin:16px 0;border:1px solid var(--line);background:#fff}
.cal-h,.cal-b{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-h span{text-align:center;font-size:.78rem;color:var(--mute);padding:4px 0;border-bottom:1px solid var(--line)}
.cal-b span{min-height:78px;border-right:1px solid var(--usu);border-bottom:1px solid var(--usu);padding:3px;font-size:.7rem;line-height:1.35}
.cal-b .lucky{background:#FFF8E6}
.cal-b b{display:block;font-size:.95rem}
.cal-b i{font-style:normal;color:var(--mute);display:block}
.tag{display:inline-block;font-size:.68rem;line-height:1.3;padding:1px 5px;margin:1px 2px 1px 0;border-radius:3px;background:var(--usu);color:var(--fuji-d)}
.t-tensyabi,.t-ichiryumanbaibi{background:var(--gold);color:#fff}
.t-fujojubi,.t-sanrinbou{background:#F3E3E6;color:var(--ng)}
.dates{padding-left:1.2em}
.dates.cols{columns:2;column-gap:28px}
@media(max-width:560px){.dates.cols{columns:1}.cal-b span{min-height:64px;font-size:.62rem}.cal-b .tag{display:block}}
.today-d b{font-family:var(--mincho);font-size:1.15rem}
.aila-full{max-width:300px;margin:0 auto}


/* footer */
footer.site{margin-top:60px;padding:30px 0 40px;background:var(--usu);font-size:.86rem}
footer .wrap{max-width:1080px}
.fnav{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(min-width:760px){.fnav{grid-template-columns:repeat(4,1fr)}}
.fnav b{display:block;font-family:var(--mincho);margin-bottom:4px}
.fnav a{display:block;color:var(--ink);text-decoration:none;padding:2px 0}
.copy{margin:26px 0 0;color:var(--mute);font-size:.78rem}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
