/* トップページ専用の見た目（章ページには影響しない） */
body.home{background:#efe6d2;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45  0 0 0 0 .38  0 0 0 0 .25  0 0 0 .07 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.sky{position:relative;overflow:hidden;color:#f6f2e9;text-align:center;padding:18px 16px 0;background:radial-gradient(ellipse at 50% 0%,#2c4a7a 0%,#1b3156 45%,#101d38 100%)}
.sky .ret{display:block;text-align:left;color:#cfd8e8;font:13px sans-serif;max-width:1000px;margin:0 auto}
.sky .stars{position:absolute;inset:0;pointer-events:none}
.sky .stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;opacity:.7;animation:tw 4s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:.25}50%{opacity:.95}}
.sky h1{position:relative;margin:14px 0 0;font-size:42px;letter-spacing:.16em;font-weight:600}
.sky .sub{position:relative;margin:0;color:#e8c98f;letter-spacing:.35em}
.sky .lead{position:relative;max-width:34em;margin:14px auto 0;font-size:15px;line-height:1.9;color:#dfe6f2}
.stage{position:relative;max-width:1000px;height:360px;margin:6px auto 0}
.stage svg.lines{position:absolute;inset:0;width:100%;height:100%}
.stage .ln{stroke:#e8c98f;stroke-width:1.2;opacity:.55;vector-effect:non-scaling-stroke;stroke-dasharray:3 5;fill:none}
.star{position:absolute;transform:translate(-50%,-50%);border:0;background:none;color:#f6f2e9;cursor:pointer;font:600 14px/1.3 "Hiragino Sans","Yu Gothic",sans-serif;text-align:center;padding:0;width:96px}
.star .dot{display:block;width:22px;height:22px;margin:0 auto 5px;border-radius:50%;background:var(--pc);box-shadow:0 0 0 5px rgba(255,255,255,.08),0 0 22px 4px var(--pc);animation:pulse 3.4s ease-in-out infinite;transition:transform .2s}
.star:hover .dot,.star.on .dot{transform:scale(1.35)}
.star.on{color:#ffe7b0}
.star small{display:block;font-weight:400;font-size:11px;color:#b8c4da}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(255,255,255,.07),0 0 14px 2px var(--pc)}50%{box-shadow:0 0 0 7px rgba(255,255,255,.12),0 0 28px 7px var(--pc)}}
.stage .hint{position:absolute;left:0;right:0;bottom:2px;font:12px sans-serif;color:#9fb0cd}
.skyline{display:block;width:100%;height:70px;color:#0b1427;margin-top:-4px}
.skyline path,.skyline rect{fill:currentColor}
.home main{max-width:1040px}
.home .chips{display:none}
.home .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.tcard{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:#fffaf0;border-radius:6px;overflow:hidden;box-shadow:0 1px 0 #d8cdb3,0 8px 18px -10px rgba(40,30,10,.45);transition:transform .2s,box-shadow .2s;position:relative}
.tcard:hover{transform:translateY(-4px) rotate(-.3deg);box-shadow:0 1px 0 #d8cdb3,0 16px 26px -12px rgba(40,30,10,.55)}
.tcard .th{position:relative;height:132px;background:linear-gradient(160deg,var(--pc),var(--pd));color:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;overflow:hidden}
.tcard .th::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 15%,rgba(255,255,255,.28),transparent 45%),repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 2px,transparent 2px 14px)}
.tcard .th .ic{position:relative;width:84px;height:84px;filter:drop-shadow(0 2px 0 rgba(0,0,0,.18))}
.tcard .th .bg{position:absolute;right:-8px;bottom:-24px;width:120px;height:120px;color:rgba(255,255,255,.14);transform:rotate(-12deg)}
.tcard .th b{position:absolute;left:12px;top:8px;font:600 11px sans-serif;letter-spacing:.1em;background:rgba(0,0,0,.22);padding:1px 8px;border-radius:10px}
.tcard .bd{padding:12px 16px 16px;border-top:3px solid var(--pc)}
.tcard small{font:12px sans-serif;color:#7a6f58}
.tcard h3{margin:3px 0 6px;font-size:17px;line-height:1.55}
.tcard .qq{margin:0;font-size:14px;line-height:1.7;color:#4a4f5e;position:relative;padding-left:22px}
.tcard .qq::before{content:"問";position:absolute;left:0;top:2px;width:17px;height:17px;border-radius:50%;background:var(--pc);color:#fff;font:600 10px/17px sans-serif;text-align:center}
.cnt{max-width:1040px;margin:0 auto 14px;padding:0 4px;font:13px sans-serif;color:#6b6250;display:flex;justify-content:space-between;align-items:center}
.cnt button{border:1px solid #8a7c5c;background:none;color:#5b4f33;border-radius:14px;padding:2px 12px;font:12px sans-serif;cursor:pointer}
[data-p="A"]{--pc:#d08a2e;--pd:#9a5a14}
[data-p="B"]{--pc:#3f78b5;--pd:#1f4a7e}
[data-p="C"]{--pc:#c24f3f;--pd:#8a2a24}
[data-p="D"]{--pc:#7a5fb0;--pd:#483478}
[data-p="E"]{--pc:#2f9482;--pd:#16604f}
[data-p="F"]{--pc:#cc5c85;--pd:#8d2f58}
[data-p="G"]{--pc:#8a9a30;--pd:#566312}
[data-p="H"]{--pc:#8a6a3a;--pd:#5a3f1c}
@media(max-width:640px){.sky h1{font-size:32px}.stage{height:470px}.stage .hint{top:0;bottom:auto}.home .grid{grid-template-columns:1fr}.tcard .th{height:112px}}
@media(prefers-reduced-motion:reduce){.sky .stars i,.star .dot{animation:none}.tcard{transition:none}}

.tcard .th .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tcard .th.hasimg{height:156px}
.tcard .th.hasimg::before{background:linear-gradient(180deg,rgba(0,0,0,.18),transparent 40%)}
.tcard .th.hasimg .ic{display:none}
.tcard .th.hasimg b{z-index:1}
.note{max-width:1040px;margin:18px auto 0;padding:0 4px;font:12px/1.7 sans-serif;color:#6b6250}

.sbar{max-width:1040px;margin:0 auto 12px;padding:0 4px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.sbar input{flex:1;min-width:220px;max-width:420px;border:1px solid #b9ab8a;border-radius:20px;background:#fffaf0;padding:8px 16px;font:15px sans-serif;color:#3a3427}
.sbar input:focus{outline:2px solid #3f78b5;outline-offset:1px}
#rd{font:13px sans-serif;color:#6b6250}
.none{grid-column:1/-1;font:14px sans-serif;color:#6b6250;padding:16px 4px}
.tcard .rdm{position:absolute;right:10px;top:8px;z-index:2;font:600 11px sans-serif;background:rgba(255,250,240,.92);color:#4a4f5e;border-radius:10px;padding:1px 9px}
.tcard.isrd .bd{opacity:.82}
.nxg{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:8px 0 24px}
.nxg .tcard h3{font-size:16px}
.cats{display:block}
.cat{margin:0 0 34px}
.cat .ch{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:0 0 8px;border-bottom:2px solid var(--pc);font-size:20px;letter-spacing:.06em;color:#3a3427}
.cat .ch .cd{width:14px;height:14px;border-radius:50%;background:var(--pc);box-shadow:0 0 0 4px rgba(0,0,0,.06)}
.cat .ch small{font:13px sans-serif;color:#7a6f58;letter-spacing:0;margin-left:4px}
.intro{display:block;max-width:1040px;margin:0 auto 16px;padding:12px 18px;background:#fffaf0;border-left:5px solid #e8c98f;border-radius:4px;text-decoration:none;color:#3a3427;box-shadow:0 1px 0 #d8cdb3}
.intro b{display:block;font-size:17px}.intro span{font:13px sans-serif;color:#6b6250}
.intro:hover{background:#fff3da}
