/* 鹿踊子 ── 和のデザイン（生成り・墨・朱・金・藍） 全ページ共通 */
:root {
  --kinari: #f6f1e7;
  --kinari-2: #ede5d5;
  --washi: #fbf8f2;
  --sumi: #1f1b18;
  --sumi-2: #5b524a;
  --ai: #2c4a73;
  --shu: #a8412d;
  --kin: #b08d4a;
  --line: #d9cfbd;
  --yoru: #1a1715;
  --mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --gothic: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; background: var(--kinari); color: var(--sumi); font-family: var(--gothic); line-height: 1.95; letter-spacing: .04em; overflow-x: hidden; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0; opacity: .045;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
img { max-width: 100%; display: block; }
a { color: var(--ai); }
.wrap { position: relative; z-index: 1; max-width: 1120px; margin: 0 auto; padding: 0 20px; }
.narrow { max-width: 820px; }
main { position: relative; z-index: 1; }

/* ヘッダー */
.header { position: sticky; top: 0; z-index: 30; background: color-mix(in srgb, var(--kinari) 93%, transparent); backdrop-filter: blur(6px); border-bottom: 1px solid var(--line); }
.header .wrap { display: flex; align-items: center; justify-content: space-between; height: 68px; gap: 16px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--sumi); }
.hanko { width: 38px; height: 38px; border-radius: 4px; background: var(--shu); color: #fff; display: inline-grid; place-items: center; font-family: var(--mincho); font-size: 1.1rem; flex: none; }
.brand b { font-family: var(--mincho); font-size: 1.2rem; letter-spacing: .2em; display: block; line-height: 1.3; }
.brand small { font-size: .66rem; letter-spacing: .2em; color: var(--sumi-2); }
.nav { display: flex; gap: 22px; }
.nav a { color: var(--sumi); text-decoration: none; font-size: .88rem; letter-spacing: .12em; border-bottom: 1px solid transparent; padding-bottom: 2px; }
.nav a:hover, .nav a[aria-current] { border-color: var(--shu); }
.menu-btn { display: none; background: none; border: 1px solid var(--line); padding: 5px 12px; font-family: inherit; cursor: pointer; color: var(--sumi); }
@media (max-width: 820px) {
  .menu-btn { display: block; }
  .nav { display: none; position: absolute; top: 68px; left: 0; right: 0; flex-direction: column; gap: 0; background: var(--kinari); border-bottom: 1px solid var(--line); padding: 6px 20px 16px; }
  .nav.open { display: flex; }
  .nav a { padding: 12px 0; border-bottom: 1px solid var(--line); }
}

/* パンくず（いまいる場所） */
.crumbs { position: relative; z-index: 1; font-size: .76rem; color: var(--sumi-2); padding: 14px 0 0; letter-spacing: .08em; }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 8px; }
.crumbs li + li::before { content: "›"; margin-right: 8px; color: var(--kin); }
.crumbs a { color: var(--sumi-2); }

/* ボタン */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 26px; border: 1px solid var(--sumi); background: var(--sumi); color: var(--kinari); text-decoration: none; font-family: var(--mincho); letter-spacing: .12em; font-size: .95rem; cursor: pointer; transition: background .3s, color .3s; line-height: 1.5; }
.btn:hover { background: transparent; color: var(--sumi); }
.btn.ghost { background: transparent; color: var(--sumi); }
.btn.ghost:hover { background: var(--sumi); color: var(--kinari); }
.btn.shu { background: var(--shu); border-color: var(--shu); color: #fff; }
.btn.shu:hover { background: transparent; color: var(--shu); }
.btn.kin { background: var(--kin); border-color: var(--kin); color: var(--yoru); }
.btn.kin:hover { background: transparent; color: var(--kin); }
.btn.ghost-l { background: transparent; border-color: rgba(246, 241, 231, .6); color: var(--kinari); }
.btn.ghost-l:hover { background: var(--kinari); color: var(--yoru); }
.cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.cta.center { justify-content: center; }

/* セクション・見出し */
.section { position: relative; z-index: 1; padding: 84px 0; }
.section.alt { background: var(--kinari-2); }
.wave { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='30' viewBox='0 0 60 30'%3E%3Cg fill='none' stroke='%23c9bca4' stroke-width='1' opacity='.35'%3E%3Cpath d='M0 30a30 30 0 0 1 60 0M10 30a20 20 0 0 1 40 0M20 30a10 10 0 0 1 20 0'/%3E%3Cpath d='M-30 15a30 30 0 0 1 60 0M-20 15a20 20 0 0 1 40 0M-10 15a10 10 0 0 1 20 0M30 15a30 30 0 0 1 60 0M40 15a20 20 0 0 1 40 0M50 15a10 10 0 0 1 20 0'/%3E%3C/g%3E%3C/svg%3E"); }
.sec-head { text-align: center; margin-bottom: 44px; }
.sec-head h2, .sec-head h1 { font-family: var(--mincho); font-weight: 700; font-size: clamp(1.5rem, 3.6vw, 2.1rem); letter-spacing: .24em; margin: 0; line-height: 1.5; }
.sec-head .en { font-size: .72rem; letter-spacing: .4em; color: var(--shu); margin: 6px 0 0; }
.sec-head .desc { margin: 16px auto 0; max-width: 640px; color: var(--sumi-2); font-size: .93rem; }
.page-head { padding: 54px 0 10px; }
h3 { font-family: var(--mincho); letter-spacing: .1em; }
.prose p { margin: 0 0 1.2em; }
.prose h3 { font-size: 1.2rem; margin: 2.2em 0 .6em; padding-left: 14px; border-left: 3px solid var(--shu); line-height: 1.5; }
.muted { color: var(--sumi-2); }
.small { font-size: .84rem; }

/* カード類 */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 22px; }
.card { background: var(--washi); border: 1px solid var(--line); padding: 26px 24px; position: relative; }
.card h3 { margin: 0 0 8px; font-size: 1.1rem; }
.card p { margin: 0; font-size: .9rem; color: var(--sumi-2); }
.card .num { font-family: var(--mincho); color: var(--shu); font-size: 1.4rem; position: absolute; top: 14px; right: 20px; }
a.card { text-decoration: none; color: inherit; transition: transform .3s, box-shadow .3s; }
a.card:hover { transform: translateY(-4px); box-shadow: 0 16px 28px -18px rgba(31, 27, 24, .5); }
a.card .go { display: inline-block; margin-top: 12px; font-family: var(--mincho); color: var(--shu); font-size: .88rem; letter-spacing: .1em; }

/* 箇条書き（朱の点） */
.points { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.points li { padding-left: 1.6em; position: relative; }
.points li::before { content: ""; position: absolute; left: .3em; top: .78em; width: 7px; height: 7px; background: var(--shu); transform: rotate(45deg); }
.voices { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.voices li { background: var(--washi); border: 1px solid var(--line); padding: 16px 20px; font-family: var(--mincho); font-size: .95rem; }

/* 表 */
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .9rem; background: var(--washi); }
th, td { border-bottom: 1px solid var(--line); padding: 12px 14px; text-align: left; vertical-align: top; }
th { font-family: var(--mincho); font-weight: 700; white-space: nowrap; color: var(--sumi); background: var(--kinari-2); width: 32%; }
thead th { background: var(--sumi); color: var(--kinari); width: auto; }
td.c, th.c { text-align: center; }
.stars { color: var(--shu); letter-spacing: .1em; white-space: nowrap; }
.stars .off { color: var(--line); }

/* 難易度 */
.levels { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.level { background: var(--washi); border: 1px solid var(--line); padding: 14px 18px; }
.level b { font-family: var(--mincho); letter-spacing: .1em; }
.level .stars { float: right; }
.level p { margin: 6px 0 0; font-size: .82rem; color: var(--sumi-2); clear: both; }

/* プラン */
.plans { display: grid; gap: 26px; }
.plan { background: var(--washi); border: 1px solid var(--line); border-top: 4px solid var(--sumi-2); padding: 30px 30px 26px; }
.plan.reco { border-top-color: var(--shu); box-shadow: 0 18px 34px -24px rgba(168, 65, 45, .55); }
.plan.gold { border-top-color: var(--kin); }
.plan-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px 20px; border-bottom: 1px solid var(--line); padding-bottom: 12px; margin-bottom: 14px; }
.plan-head h3 { margin: 0; font-size: 1.35rem; }
.plan-head .price { font-family: var(--mincho); font-size: 1.6rem; font-weight: 700; color: var(--shu); }
.plan-head .price small { font-size: .78rem; color: var(--sumi-2); font-weight: 400; margin-left: 4px; }
.plan .for { font-family: var(--mincho); font-weight: 700; margin: 0 0 6px; }
.plan .tag { display: inline-block; background: var(--shu); color: #fff; font-size: .72rem; padding: 1px 10px; letter-spacing: .1em; margin-bottom: 10px; }
.plan h4 { font-family: var(--mincho); font-size: .95rem; letter-spacing: .1em; margin: 18px 0 8px; }
.plan .inc { columns: 2 240px; column-gap: 28px; margin: 0; padding: 0; list-style: none; font-size: .88rem; }
.plan .inc li { break-inside: avoid; padding-left: 1.3em; position: relative; margin-bottom: 4px; }
.plan .inc li::before { content: "✓"; position: absolute; left: 0; color: var(--shu); }
.can, .cannot { font-size: .88rem; padding: 12px 16px; margin: 10px 0 0; }
.can { background: #eef1e6; border-left: 3px solid #6f8f5a; }
.cannot { background: #f1ead9; border-left: 3px solid var(--shu); }
.can b, .cannot b { display: block; font-family: var(--mincho); }
.cond { font-size: .86rem; margin-top: 14px; }
.cond th { width: 40%; }
.plan .cta { margin-top: 20px; }

/* 流れ（ステップ） */
.steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; border-left: 2px solid var(--line); margin-left: 18px; }
.steps li { position: relative; padding: 0 0 26px 34px; }
.steps li::before { content: attr(data-n); position: absolute; left: -19px; top: 0; width: 36px; height: 36px; border-radius: 50%; background: var(--sumi); color: var(--kinari); display: grid; place-items: center; font-family: var(--mincho); font-size: .9rem; }
.steps h3 { margin: 4px 0 4px; font-size: 1.05rem; }
.steps p { margin: 0; font-size: .9rem; color: var(--sumi-2); }

/* FAQ */
.faq details { background: var(--washi); border: 1px solid var(--line); margin-bottom: 10px; }
.faq summary { cursor: pointer; padding: 16px 20px 16px 52px; font-family: var(--mincho); font-weight: 700; position: relative; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: "問"; position: absolute; left: 16px; top: 15px; width: 26px; height: 26px; background: var(--sumi); color: var(--kinari); display: grid; place-items: center; font-size: .78rem; }
.faq summary::after { content: "＋"; position: absolute; right: 18px; top: 16px; color: var(--shu); }
.faq details[open] summary::after { content: "－"; }
.faq .a { padding: 0 20px 18px 52px; position: relative; font-size: .92rem; color: var(--sumi-2); }
.faq .a::before { content: "答"; position: absolute; left: 16px; top: 0; width: 26px; height: 26px; background: var(--shu); color: #fff; display: grid; place-items: center; font-size: .78rem; font-family: var(--mincho); }

/* ネタバレ注意 */
.spoiler { border: 1px dashed var(--shu); background: var(--washi); }
.spoiler summary { cursor: pointer; padding: 14px 20px; font-family: var(--mincho); color: var(--shu); font-weight: 700; }
.spoiler .in { padding: 0 24px 10px; }

/* 作品ページのサブメニュー */
.subnav { position: sticky; top: 68px; z-index: 20; background: color-mix(in srgb, var(--washi) 95%, transparent); border-bottom: 1px solid var(--line); }
.subnav ul { list-style: none; margin: 0 auto; padding: 0 20px; max-width: 1120px; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.subnav a { display: block; padding: 11px 12px; font-size: .8rem; letter-spacing: .08em; text-decoration: none; color: var(--sumi-2); white-space: nowrap; border-bottom: 2px solid transparent; }
.subnav a[aria-current] { color: var(--sumi); border-color: var(--shu); font-weight: 700; }

/* 作品の大きな見出し */
.work-hero { position: relative; z-index: 1; background: var(--yoru); color: var(--kinari); overflow: hidden; }
.work-hero .bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .38; }
.work-hero .bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--yoru) 15%, transparent 85%); }
.work-hero .wrap { padding-top: 84px; padding-bottom: 96px; }
.work-hero .kicker { font-family: var(--mincho); color: var(--kin); letter-spacing: .3em; font-size: .85rem; margin: 0; }
.work-hero h1 { font-family: var(--mincho); font-size: clamp(1.9rem, 5vw, 3.3rem); letter-spacing: .12em; line-height: 1.45; margin: 10px 0 6px; }
.work-hero .en-t { font-family: var(--mincho); letter-spacing: .3em; font-size: .85rem; opacity: .75; margin: 0; }
.work-hero .catch { font-family: var(--mincho); font-size: clamp(1.1rem, 2.6vw, 1.45rem); letter-spacing: .14em; margin: 26px 0 12px; }
.work-hero .lead { max-width: 640px; color: rgba(246, 241, 231, .85); font-size: .94rem; }
.work-hero .gensaku { font-family: var(--mincho); color: var(--kin); letter-spacing: .2em; margin-top: 10px; }
.page-hero { position: relative; z-index: 1; background: var(--yoru); color: var(--kinari); padding: 46px 0 50px; }
.page-hero .kicker { font-family: var(--mincho); color: var(--kin); letter-spacing: .25em; font-size: .8rem; margin: 0; }
.page-hero h1 { font-family: var(--mincho); letter-spacing: .18em; margin: 6px 0 0; font-size: clamp(1.5rem, 3.6vw, 2.2rem); line-height: 1.5; }
.page-hero .crumbs, .page-hero .crumbs a { color: rgba(246, 241, 231, .7); }
.page-hero .crumbs { padding: 0 0 18px; }

.feature-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; border: 1px solid var(--line); background: var(--washi); }
.feature-list li { padding: 18px 18px 18px 46px; position: relative; font-size: .9rem; border: 1px solid var(--line); margin: -1px 0 0 -1px; }
.feature-list li::before { content: "◆"; position: absolute; left: 18px; top: 18px; color: var(--shu); font-size: .8rem; }

/* 作品一覧（脚本の店） */
.works { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 28px; }
.work { text-decoration: none; color: inherit; display: block; }
.work .cover { aspect-ratio: 3 / 4.2; position: relative; overflow: hidden; box-shadow: 0 10px 24px -14px rgba(31, 27, 24, .5); transition: transform .4s, box-shadow .4s; background: var(--washi); }
a.work:hover .cover { transform: translateY(-6px); box-shadow: 0 22px 32px -18px rgba(31, 27, 24, .55); }
.work h3 { font-size: 1.02rem; margin: 14px 0 2px; line-height: 1.5; }
.work .meta { font-size: .76rem; color: var(--sumi-2); letter-spacing: .08em; }
.badge { display: inline-block; font-size: .68rem; letter-spacing: .1em; border: 1px solid currentColor; padding: 0 8px; margin-left: 6px; vertical-align: 1px; }
.badge.on { color: var(--shu); } .badge.wip { color: var(--ai); } .badge.show { color: var(--sumi-2); }
.tcover { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; padding: 10% 8%; }
.tcover::before { content: ""; position: absolute; inset: 6%; border: 1px solid var(--c); opacity: .5; }
.tcover .band { position: absolute; left: 0; right: 0; top: 0; height: 9%; background: var(--c); }
.tcover .t { writing-mode: vertical-rl; font-family: var(--mincho); font-weight: 700; font-size: clamp(1.05rem, 2.2vw, 1.4rem); letter-spacing: .2em; margin-top: 12%; max-height: 66%; line-height: 1.5; }
.tcover .t.en { writing-mode: horizontal-tb; text-align: center; letter-spacing: .08em; font-size: 1.05rem; margin-top: 32%; }
.tcover .a { position: absolute; bottom: 9%; font-family: var(--mincho); font-size: .72rem; letter-spacing: .3em; color: var(--sumi-2); }
.icover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.icover-t { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 14px 14px; font-family: var(--mincho); font-weight: 700; font-size: .98rem; letter-spacing: .1em; color: var(--kinari); background: linear-gradient(transparent, rgba(26, 23, 21, .92) 45%); text-align: center; line-height: 1.5; }

/* 目立つ作品（脚本の店） */
.pickup { display: grid; grid-template-columns: 1.1fr 1fr; background: var(--yoru); color: var(--kinari); text-decoration: none; overflow: hidden; }
@media (max-width: 820px) { .pickup { grid-template-columns: 1fr; } }
.pickup img { width: 100%; height: 100%; object-fit: cover; min-height: 260px; }
.pickup .txt { padding: 34px 32px; }
.pickup .kicker { color: var(--kin); font-family: var(--mincho); letter-spacing: .25em; font-size: .8rem; margin: 0; }
.pickup h3 { font-size: clamp(1.3rem, 3vw, 1.8rem); margin: 8px 0 12px; line-height: 1.5; }
.pickup p { color: rgba(246, 241, 231, .82); font-size: .9rem; margin: 0 0 8px; }
.pickup .price { font-family: var(--mincho); color: var(--kin); }

/* 入口（トップページ） */
.gate { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line); background: var(--washi); text-decoration: none; color: inherit; overflow: hidden; transition: box-shadow .3s; }
.gate:hover { box-shadow: 0 22px 40px -26px rgba(31, 27, 24, .6); }
@media (max-width: 760px) { .gate { grid-template-columns: 1fr; } }
.gate .img { background: var(--yoru); position: relative; min-height: 240px; }
.gate .img img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.gate .txt { padding: 32px 30px; }
.gate .en { color: var(--shu); font-size: .72rem; letter-spacing: .35em; margin: 0; }
.gate h2 { font-family: var(--mincho); font-size: clamp(1.4rem, 3vw, 1.9rem); letter-spacing: .18em; margin: 6px 0 12px; }
.gate p { color: var(--sumi-2); font-size: .92rem; margin: 0 0 16px; }

/* えんデビ！の入口 */
.endevi { display: grid; grid-template-columns: auto 1fr; gap: 30px; align-items: center; background: var(--washi); border: 1px solid var(--line); padding: 26px 32px; text-decoration: none; color: inherit; border-radius: 2px; }
@media (max-width: 680px) { .endevi { grid-template-columns: 1fr; text-align: center; } .endevi-img { justify-content: center; } }
.endevi-img { display: flex; }
.endevi-img img { width: 120px; height: auto; }
.endevi-img img + img { margin-left: -26px; }
.endevi .en { color: var(--shu); font-size: .72rem; letter-spacing: .35em; margin: 0; }
.endevi h2 { font-family: var(--mincho); font-size: 1.6rem; letter-spacing: .14em; margin: 2px 0 6px; }
.endevi p { margin: 0 0 14px; color: var(--sumi-2); font-size: .9rem; }

/* 鹿踊子について */
.about-in { display: grid; grid-template-columns: 200px 1fr; gap: 40px; align-items: start; }
@media (max-width: 680px) { .about-in { grid-template-columns: 1fr; text-align: center; } }
.about-name { text-align: center; }
.hanko.big { width: 76px; height: 76px; font-size: 2.2rem; border-radius: 6px; }
.about-name h2 { font-family: var(--mincho); font-size: 2rem; letter-spacing: .3em; margin: 14px 0 0; }
.about-name .yomi { font-size: .78rem; color: var(--sumi-2); letter-spacing: .15em; margin: 0; }
.about-text { text-align: left; }
.about-text p { margin: 0 0 1em; }

/* 最後の呼びかけ */
.final { background: var(--yoru); color: var(--kinari); }
.final .prose p { color: rgba(246, 241, 231, .86); }
.final .sec-head h2 { color: var(--kinari); }

/* 作者 */
.author { display: grid; grid-template-columns: 220px 1fr; gap: 36px; align-items: start; }
@media (max-width: 680px) { .author { grid-template-columns: 1fr; } }
.photo-ph { aspect-ratio: 3 / 4; background: var(--kinari-2); border: 1px dashed var(--sumi-2); display: grid; place-items: center; color: var(--sumi-2); font-size: .82rem; max-width: 220px; margin: 0 auto; }
.comment { background: var(--washi); border: 1px solid var(--line); padding: 28px 30px; font-family: var(--mincho); }

/* 曲目 */
.songs td:first-child { font-family: var(--mincho); color: var(--shu); width: 3em; }
.songs td.t { font-family: var(--mincho); font-weight: 700; }

/* 申し込みフォーム */
.form { background: var(--washi); border: 1px solid var(--line); padding: 32px; }
.field { margin-bottom: 16px; }
.field label { display: block; font-weight: 700; font-size: .86rem; margin-bottom: 4px; }
.field .req { color: #fff; background: var(--shu); font-size: .68rem; margin-left: 6px; padding: 0 6px; font-weight: 400; }
.field input, .field select, .field textarea { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid var(--line); background: #fff; color: var(--sumi); }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--ai); outline-offset: -1px; }
.field [aria-invalid="true"] { border-color: var(--shu); }
.field .err { color: var(--shu); font-size: .78rem; min-height: 1em; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 600px) { .grid2 { grid-template-columns: 1fr; } .form { padding: 22px 18px; } }
.done { text-align: center; padding: 40px 10px; }

/* 特商法 */
.legal dt { font-family: var(--mincho); font-weight: 700; margin-top: 18px; padding-left: 12px; border-left: 3px solid var(--shu); }
.legal dd { margin: 4px 0 0 15px; font-size: .92rem; color: var(--sumi-2); }

.note { background: var(--washi); border-left: 3px solid var(--kin); padding: 12px 16px; font-size: .86rem; color: var(--sumi-2); }
.next-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 50px; }
.next-links a { display: block; padding: 14px 18px; background: var(--washi); border: 1px solid var(--line); text-decoration: none; color: var(--sumi); font-family: var(--mincho); letter-spacing: .08em; font-size: .92rem; }
.next-links a::after { content: " →"; color: var(--shu); }

/* フッター */
.footer { position: relative; z-index: 1; background: var(--yoru); color: rgba(246, 241, 231, .75); padding: 50px 20px 34px; font-size: .82rem; }
.footer .cols { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 1.2fr 2fr; gap: 30px; }
@media (max-width: 720px) { .footer .cols { grid-template-columns: 1fr; } }
.footer .brand { color: var(--kinari); }
.footer .brand small { color: rgba(246, 241, 231, .6); }
.footer ul { list-style: none; margin: 0; padding: 0; columns: 2 160px; }
.footer li { margin-bottom: 6px; }
.footer a { color: rgba(246, 241, 231, .8); text-decoration: none; }
.footer a:hover { color: var(--kin); }
.footer h4 { font-family: var(--mincho); color: var(--kin); letter-spacing: .2em; font-weight: 400; margin: 0 0 10px; font-size: .85rem; }
.footer .copy { text-align: center; margin: 34px 0 0; font-size: .74rem; letter-spacing: .1em; }
.draft { position: fixed; left: 12px; bottom: 12px; z-index: 40; background: var(--shu); color: #fff; font-size: .72rem; padding: 3px 12px; letter-spacing: .1em; }

.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .9s, transform .9s; }
.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } .js .reveal { opacity: 1; transform: none; } }

/* スマホの調整 */
.menu-btn { white-space: nowrap; }
.work-hero .crumbs, .work-hero .crumbs a { color: rgba(246, 241, 231, .75); }
.songs { min-width: 560px; }
.songs td.t { white-space: nowrap; }
.songs td:nth-child(3) { white-space: nowrap; }
@media (max-width: 600px) {
  .brand small { display: none; }
  .draft { right: 12px; text-align: center; font-size: .66rem; }
  .section { padding: 64px 0; }
}

/* ── トップ：花札「紅葉に鹿」の世界 ── */
.hf-hero { position: relative; z-index: 1; overflow: hidden; color: var(--kinari);
  background:
    radial-gradient(ellipse at 70% 40%, rgba(181, 31, 23, .32), transparent 60%),
    radial-gradient(ellipse at 20% 90%, rgba(201, 162, 74, .14), transparent 55%),
    #120d0b; }
.hf-hero::before { content: ""; position: absolute; inset: 0; opacity: .12; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-width='1'%3E%3Cpath d='M0 40a40 40 0 0 1 80 0M13 40a27 27 0 0 1 54 0M26 40a14 14 0 0 1 28 0'/%3E%3Cpath d='M-40 20a40 40 0 0 1 80 0M-27 20a27 27 0 0 1 54 0M-14 20a14 14 0 0 1 28 0M40 20a40 40 0 0 1 80 0M53 20a27 27 0 0 1 54 0M66 20a14 14 0 0 1 28 0'/%3E%3C/g%3E%3C/svg%3E");
  -webkit-mask-image: linear-gradient(transparent 55%, #000); mask-image: linear-gradient(transparent 55%, #000); }
.hf-in { position: relative; max-width: 1080px; margin: 0 auto; padding: 70px 20px 20px; display: grid; grid-template-columns: 1fr 1.1fr; gap: 40px; align-items: center; }
@media (max-width: 760px) { .hf-in { grid-template-columns: 1fr; padding-top: 44px; gap: 30px; } }
.hf-title { display: flex; flex-direction: row-reverse; justify-content: center; gap: 30px; }
.hf-title h1 { writing-mode: vertical-rl; margin: 0; display: flex; gap: 14px; align-items: flex-start; }
.hf-title .mei { font-family: var(--mincho); font-weight: 800; font-size: clamp(3.6rem, 9vw, 6.4rem); letter-spacing: .14em; line-height: 1;
  background: linear-gradient(180deg, #f3dc9a, #c9a24a 55%, #8f6b26); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 2px 0 rgba(0, 0, 0, .5)); }
.hf-title .yomi { font-family: var(--mincho); font-size: .95rem; letter-spacing: .6em; color: rgba(246, 241, 231, .7); padding-top: .6em; }
.hf-title .catch { writing-mode: vertical-rl; margin: 0; padding-top: 4.5em; font-family: var(--mincho); font-size: 1.15rem; letter-spacing: .4em; color: var(--kinari); }
.hf-title .catch::before { content: ""; display: block; width: 1px; height: 3.2em; margin: 0 auto 1em; background: var(--kin); }
.hf-cards { position: relative; width: min(340px, 78vw); aspect-ratio: 300 / 470; margin: 0 auto; }
.fuda { border-radius: 14px; box-shadow: 0 30px 50px -24px rgba(0, 0, 0, .9), 0 0 0 1px rgba(201, 162, 74, .5); }
.fuda svg { display: block; width: 100%; height: auto; }
.hf-cards .fuda { position: absolute; inset: 0; }
.hf-cards .main { transform: rotate(3deg); animation: yure 9s ease-in-out infinite; }
.hf-cards .back { background:
    repeating-linear-gradient(45deg, rgba(0, 0, 0, .18) 0 6px, transparent 6px 12px), #6b1410;
  border: 8px solid #1a1310; }
.hf-cards .b1 { transform: rotate(-11deg) translate(-26%, 4%); }
.hf-cards .b2 { transform: rotate(-4deg) translate(-13%, 1%); background: repeating-linear-gradient(-45deg, rgba(0, 0, 0, .18) 0 6px, transparent 6px 12px), #1f1a17; }
@keyframes yure { 0%, 100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1.5deg) translateY(-8px); } }
.hf-lead { position: relative; text-align: center; padding: 30px 20px 80px; }
.hf-lead p { font-family: var(--mincho); letter-spacing: .14em; color: rgba(246, 241, 231, .85); margin: 0; }

/* 舞い落ちる紅葉と金の羽 */
.mai-sky { position: absolute; inset: 0; pointer-events: none; }
.mai { position: absolute; top: -60px; left: var(--x); width: calc(34px * var(--s)); height: calc(34px * var(--s)); opacity: 0;
  animation: mai var(--t) linear var(--d) infinite; }
.mai svg { width: 100%; height: 100%; overflow: visible; }
.mai.aka { fill: #c3271c; }
.mai.kin { fill: #d9b45a; width: calc(18px * var(--s)); height: calc(46px * var(--s)); }
@keyframes mai {
  0% { transform: translate(0, 0) rotate(var(--r)); opacity: 0; }
  8% { opacity: .9; }
  50% { transform: translate(60px, 50vh) rotate(calc(var(--r) + 200deg)); }
  90% { opacity: .8; }
  100% { transform: translate(-20px, 110vh) rotate(calc(var(--r) + 380deg)); opacity: 0; }
}

/* 三枚の札 */
.hf-menu { background: var(--kinari); }
.fuda-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; max-width: 900px; margin: 0 auto; }
@media (max-width: 680px) { .fuda-row { grid-template-columns: 1fr; max-width: 260px; } }
.fuda-link { text-decoration: none; color: inherit; text-align: center; }
.fuda-link .fuda { transition: transform .5s, box-shadow .5s; box-shadow: 0 18px 30px -18px rgba(0, 0, 0, .6); }
.fuda-link:hover .fuda { transform: translateY(-10px) rotate(-1.5deg); box-shadow: 0 30px 40px -20px rgba(0, 0, 0, .6); }
.fuda-link h3 { font-size: 1.15rem; letter-spacing: .2em; margin: 18px 0 2px; }
.fuda-link p { margin: 0; font-size: .82rem; color: var(--sumi-2); }
.fuda.paper { aspect-ratio: 300 / 470; background: #ece1c6; border: 9px solid #1a1310; display: grid; place-items: center; overflow: hidden; }
.fuda-img { display: flex; flex-direction: column; align-items: center; }
.fuda-img img { width: 72%; }
.fuda-img img + img { margin-top: -18%; }
.hf-dark { background: #120d0b; }
.hf-dark .sec-head h2 { color: var(--kinari); }
.hf-dark .sec-head .en { color: var(--kin); }
@media (prefers-reduced-motion: reduce) { .mai-sky { display: none; } }
@media (max-width: 760px) { .hf-cards { width: min(300px, 62vw); } }

/* ── 四季（開いた日の季節で切りかわる） ── */
.k-haru, .k-natsu, .k-aki, .k-fuyu { display: none; }
html[data-season="haru"] .k-haru, html[data-season="natsu"] .k-natsu,
html[data-season="aki"] .k-aki, html[data-season="fuyu"] .k-fuyu,
html:not([data-season]) .k-aki { display: block; }
html[data-season="haru"] .hf-hero { background: radial-gradient(ellipse at 70% 40%, rgba(214, 120, 150, .3), transparent 60%), radial-gradient(ellipse at 20% 90%, rgba(201, 162, 74, .14), transparent 55%), #150e10; }
html[data-season="natsu"] .hf-hero { background: radial-gradient(ellipse at 70% 40%, rgba(46, 110, 90, .38), transparent 60%), radial-gradient(ellipse at 20% 90%, rgba(63, 111, 154, .22), transparent 55%), #0b1112; }
html[data-season="fuyu"] .hf-hero { background: radial-gradient(ellipse at 70% 40%, rgba(150, 170, 195, .26), transparent 60%), radial-gradient(ellipse at 20% 90%, rgba(201, 162, 74, .1), transparent 55%), #0f1216; }
.mai.hana { fill: #f4c6cf; width: calc(16px * var(--s)); height: calc(16px * var(--s)); }
.mai.yuki { width: calc(12px * var(--s)); height: calc(12px * var(--s)); animation-name: yuki; }
.mai.hotaru { width: calc(20px * var(--s)); height: calc(20px * var(--s)); top: auto; bottom: 10%; animation-name: hotaru; }
@keyframes yuki {
  0% { transform: translate(0, 0); opacity: 0; } 10% { opacity: .9; }
  50% { transform: translate(24px, 50vh); } 100% { transform: translate(-10px, 110vh); opacity: .6; }
}
@keyframes hotaru {
  0% { transform: translate(0, 0); opacity: 0; } 15% { opacity: 1; } 30% { opacity: .2; } 45% { opacity: 1; }
  60% { transform: translate(40px, -30vh); opacity: .3; } 75% { opacity: 1; }
  100% { transform: translate(-20px, -60vh); opacity: 0; }
}

/* 季節の札：重ならないように（.fuda svg より強く） */
html .k-haru, html .k-natsu, html .k-aki, html .k-fuyu { display: none; }

/* ── 新しいヘッダー：上の帯はなし。金の名前＋右上の「目録」 ── */
html { scroll-padding-top: 60px; }
.hd { position: absolute; top: 0; left: 0; right: 0; z-index: 30; padding: 22px 28px; pointer-events: none; }
.hd-brand { pointer-events: auto; display: inline-flex; flex-direction: column; text-decoration: none; line-height: 1.2; }
.hd-brand b { font-family: var(--mincho); font-weight: 700; font-size: 1.35rem; letter-spacing: .3em;
  background: linear-gradient(180deg, #f3dc9a, #c9a24a 60%, #9a7430); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hd-brand small { font-size: .58rem; letter-spacing: .42em; color: rgba(246, 241, 231, .55); margin-top: 4px; }
.menu-fab { position: fixed; top: 16px; right: 18px; z-index: 60; width: 62px; height: 62px; border-radius: 50%;
  background: rgba(18, 13, 11, .82); backdrop-filter: blur(4px); border: 1px solid rgba(201, 162, 74, .7); color: #e7cf8e;
  display: grid; place-items: center; align-content: center; gap: 5px; cursor: pointer; font-family: var(--mincho); transition: background .3s, transform .3s; }
.menu-fab:hover { background: #1f1714; transform: rotate(-6deg); }
.menu-fab .bars { width: 20px; height: 7px; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }
.menu-fab .t { font-size: .68rem; letter-spacing: .2em; padding-left: .2em; }
.menu-fab[aria-expanded="true"] .bars { height: 0; border-bottom: 0; transform: rotate(45deg); }
.menu-ov { position: fixed; inset: 0; z-index: 55; color: var(--kinari); overflow-y: auto;
  background: radial-gradient(ellipse at 70% 30%, rgba(181, 31, 23, .25), transparent 60%), #120d0b; }
.menu-ov::before { content: ""; position: absolute; inset: 0; opacity: .1; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-width='1'%3E%3Cpath d='M0 40a40 40 0 0 1 80 0M13 40a27 27 0 0 1 54 0M26 40a14 14 0 0 1 28 0'/%3E%3Cpath d='M-40 20a40 40 0 0 1 80 0M-27 20a27 27 0 0 1 54 0M-14 20a14 14 0 0 1 28 0M40 20a40 40 0 0 1 80 0M53 20a27 27 0 0 1 54 0M66 20a14 14 0 0 1 28 0'/%3E%3C/g%3E%3C/svg%3E"); }
.menu-ov:not([hidden]) { animation: ov-in .45s ease; }
@keyframes ov-in { from { opacity: 0; } to { opacity: 1; } }
.ov-in { position: relative; min-height: 100%; display: flex; flex-direction: row-reverse; align-items: center; justify-content: center; gap: 56px; padding: 100px 24px 60px; }
.ov-brand { writing-mode: vertical-rl; margin: 0; font-family: var(--mincho); font-weight: 800; font-size: 3rem; letter-spacing: .2em;
  background: linear-gradient(180deg, #f3dc9a, #c9a24a 55%, #8f6b26); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ov-brand small { font-size: .8rem; font-weight: 400; letter-spacing: .5em; margin-top: 1em; display: inline-block; color: rgba(246, 241, 231, .6); -webkit-text-fill-color: rgba(246, 241, 231, .6); }
.menu-ov ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: row-reverse; gap: 8px; }
.menu-ov li a { writing-mode: vertical-rl; display: flex; align-items: center; gap: 14px; padding: 18px 14px; text-decoration: none; color: var(--kinari);
  border-right: 1px solid rgba(201, 162, 74, .25); transition: color .3s, background .3s; }
.menu-ov li:first-child a { border-right: 0; }
.menu-ov li a:hover, .menu-ov li a[aria-current] { color: #e7cf8e; background: rgba(201, 162, 74, .07); }
.menu-ov .ja { font-family: var(--mincho); font-size: 1.35rem; letter-spacing: .3em; }
.menu-ov .en { font-size: .58rem; letter-spacing: .3em; color: rgba(201, 162, 74, .8); }
@media (max-width: 700px) {
  .ov-in { flex-direction: column; gap: 24px; padding-top: 90px; }
  .ov-brand { writing-mode: horizontal-tb; font-size: 2rem; }
  .ov-brand small { margin: 0 0 0 1em; }
  .menu-ov ul { flex-direction: column; gap: 0; width: min(320px, 100%); }
  .menu-ov li a { writing-mode: horizontal-tb; border-right: 0; border-bottom: 1px solid rgba(201, 162, 74, .25); justify-content: space-between; padding: 16px 6px; }
}
/* 帯がなくなった分の調整 */
.page-hero { padding-top: 96px; }
.subnav { top: 0; }
.hf-in { padding-top: 96px; }
.footer .brand { display: inline-block; }
@media (max-width: 600px) { .hd { padding: 18px 20px; } .menu-fab { width: 54px; height: 54px; top: 12px; right: 12px; } }

/* ── あなたの空（天気） ── */
.tenki-cv { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
.hf-hero .hf-in, .hf-hero .hf-lead { z-index: 1; }
.hf-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 1.2s, background 1.2s; z-index: 0; }
html[data-weather="kumori"] .hf-hero::after { opacity: 1; background: linear-gradient(180deg, rgba(70, 72, 80, .55), rgba(30, 30, 34, .2) 60%, transparent); }
html[data-weather="kiri"] .hf-hero::after { opacity: 1; background: linear-gradient(180deg, rgba(200, 200, 205, .14), rgba(200, 200, 205, .3) 55%, rgba(200, 200, 205, .12)); animation: kiri 14s ease-in-out infinite; }
html[data-weather="ame"] .hf-hero::after, html[data-weather="kaminari"] .hf-hero::after { opacity: 1; background: linear-gradient(180deg, rgba(40, 50, 66, .55), rgba(20, 24, 32, .25)); }
html[data-weather="yuki"] .hf-hero::after { opacity: 1; background: linear-gradient(180deg, rgba(150, 165, 185, .28), transparent 70%); }
html[data-weather="hare"] .hf-hero::after { opacity: 1; background: radial-gradient(ellipse at 85% 0%, rgba(255, 214, 140, .32), transparent 55%), conic-gradient(from 200deg at 85% 0%, transparent 0 8deg, rgba(255, 220, 160, .07) 8deg 12deg, transparent 12deg 22deg, rgba(255, 220, 160, .06) 22deg 25deg, transparent 25deg); }
html[data-weather="hare-yoru"] .hf-hero::after { opacity: 1; background: radial-gradient(circle at 94% 12%, rgba(255, 244, 210, .9) 0 22px, rgba(255, 244, 210, .12) 23px 70px, transparent 140px); }
@keyframes kiri { 50% { opacity: .65; } }
.tenki { margin-top: 18px; text-align: center; }
.tenki-btn { background: transparent; border: 1px solid rgba(201, 162, 74, .5); color: rgba(246, 241, 231, .85); font-family: var(--mincho); font-size: .8rem; letter-spacing: .14em; padding: 6px 16px; border-radius: 99px; cursor: pointer; }
.tenki-btn:hover { border-color: var(--kin); color: #e7cf8e; }
.tenki-msg { margin: 10px 0 0 !important; font-size: .82rem; letter-spacing: .1em; color: rgba(246, 241, 231, .8) !important; }
.tenki-msg b { color: #e7cf8e; font-weight: 700; }
.tenki-msg small { display: block; font-size: .64rem; letter-spacing: .05em; color: rgba(246, 241, 231, .5); margin-top: 4px; font-family: var(--gothic); }
.tenki-msg a { color: inherit; }

/* ── 鹿踊子とは ── */
.about2 { background: var(--kinari); }
.about-lead { text-align: center; font-family: var(--mincho); font-size: clamp(1.05rem, 2.4vw, 1.3rem); line-height: 2.3; letter-spacing: .14em; margin: 0 0 56px; }
.about-lead .sp { display: none; }
@media (max-width: 600px) { .about-lead .sp { display: inline; } .about-lead { text-align: left; } }
.about-block { position: relative; padding: 34px 0 10px 64px; border-top: 1px solid var(--line); }
.about-block .num { position: absolute; left: 0; top: 34px; font-family: var(--mincho); font-size: 1.8rem; color: var(--kin); line-height: 1; }
.about-block h3 { font-size: 1.25rem; margin: 0 0 16px; border: 0; padding: 0; }
.about-last { font-family: var(--mincho); font-size: 1.08rem; color: var(--shu); line-height: 2.1; }
@media (max-width: 600px) { .about-block { padding-left: 0; } .about-block .num { position: static; display: block; margin-bottom: 8px; } }

/* ── 長い作品名を1行に収める ── */
.pickup .txt { container-type: inline-size; }
.pickup h3 { white-space: nowrap; letter-spacing: .04em; font-size: min(1.8rem, 5.6cqi); }
.work { container-type: inline-size; }
.work h3 { white-space: nowrap; letter-spacing: 0; font-size: min(1.02rem, 6.1cqi); }
.icover-t { white-space: nowrap; letter-spacing: 0; font-size: min(.98rem, 6.1cqi); padding-left: 6px; padding-right: 6px; }
.work-hero .wrap { container-type: inline-size; }
.work-hero h1 { white-space: nowrap; letter-spacing: .06em; font-size: min(3.3rem, 5.6cqi); }
.page-hero .kicker { white-space: nowrap; letter-spacing: .12em; }

/* 利用者別のおすすめ（5枚）：上に3枚・下に2枚を中央に */
.cards-5 { display: flex; flex-wrap: wrap; justify-content: center; }
.cards-5 .card { flex: 0 1 calc((100% - 44px) / 3); }
@media (max-width: 900px) { .cards-5 .card { flex-basis: calc((100% - 22px) / 2); } }
@media (max-width: 600px) { .cards-5 .card { flex-basis: 100%; } }
.footer .credit { text-align: center; margin: 30px 0 0; font-size: .68rem; letter-spacing: .05em; color: rgba(246, 241, 231, .5); }
.footer .credit a { text-decoration: underline; }
.footer .credit + .copy { margin-top: 8px; }

/* ── 少し明るく（高級感はそのまま）：黒→深い焦げ茶・臙脂 ── */
:root { --yoru: #2f2622; }
.hf-hero { background:
    radial-gradient(ellipse at 70% 38%, rgba(190, 46, 34, .42), transparent 62%),
    radial-gradient(ellipse at 18% 85%, rgba(214, 172, 86, .24), transparent 58%),
    linear-gradient(180deg, #33261f, #2a1f1b); }
html[data-season="haru"] .hf-hero { background: radial-gradient(ellipse at 70% 38%, rgba(222, 130, 160, .4), transparent 62%), radial-gradient(ellipse at 18% 85%, rgba(214, 172, 86, .22), transparent 58%), linear-gradient(180deg, #3a2a2f, #2c2025); }
html[data-season="natsu"] .hf-hero { background: radial-gradient(ellipse at 70% 38%, rgba(60, 140, 112, .42), transparent 62%), radial-gradient(ellipse at 18% 85%, rgba(80, 130, 175, .3), transparent 58%), linear-gradient(180deg, #213230, #1b2828); }
html[data-season="fuyu"] .hf-hero { background: radial-gradient(ellipse at 70% 38%, rgba(170, 188, 212, .34), transparent 62%), radial-gradient(ellipse at 18% 85%, rgba(214, 172, 86, .16), transparent 58%), linear-gradient(180deg, #2c323b, #23282f); }
.hf-hero::before { opacity: .16; }
.hf-dark { background: linear-gradient(180deg, #2f2622, #382c27); }
.menu-ov { background: radial-gradient(ellipse at 70% 30%, rgba(190, 46, 34, .3), transparent 60%), #2e2420; }
.work-hero .bg { opacity: .55; }
.work-hero .bg::after { background: linear-gradient(90deg, var(--yoru) 12%, rgba(47, 38, 34, .35) 85%); }
.pickup { background: #3a2e29; }

/* ── 天気ボタン（右上・目録の左） ── */
.tenki-btn { position: fixed; top: 16px; right: 90px; z-index: 60; width: 62px; height: 62px; border-radius: 50%; padding: 0;
  background: rgba(18, 13, 11, .82); backdrop-filter: blur(4px); border: 1px solid rgba(201, 162, 74, .7); color: #e7cf8e;
  display: grid; place-items: center; align-content: center; gap: 0; cursor: pointer; font-family: var(--mincho); transition: background .3s, transform .3s; }
.tenki-btn:hover { background: #1f1714; transform: rotate(6deg); border-color: var(--kin); }
.tenki-btn .ji { font-size: .8rem; letter-spacing: .15em; padding-left: .15em; line-height: 1.2; }
.tenki-btn[data-on] .ji { font-size: 1.25rem; letter-spacing: 0; padding: 0; font-weight: 700; }
.tenki-btn small { font-size: .62rem; color: rgba(246, 241, 231, .8); line-height: 1.1; }
.tenki-btn[data-on] { cursor: default; }
.tenki-btn[data-on]:hover { transform: none; }
.hf-lead .tenki-msg { margin-top: 14px !important; }
@media (max-width: 600px) { .tenki-btn { width: 54px; height: 54px; top: 12px; right: 74px; } }

/* ── 稽古場 ── */
.keiko-teaser { background: var(--kinari); }
.kt { display: grid; grid-template-columns: 1.3fr 1fr; gap: 0; text-decoration: none; color: var(--kinari); background: linear-gradient(135deg, #3a2c26, #2a201c); border: 1px solid rgba(201, 162, 74, .5); overflow: hidden; transition: box-shadow .4s; }
.kt:hover { box-shadow: 0 24px 44px -26px rgba(0, 0, 0, .8); }
@media (max-width: 760px) { .kt { grid-template-columns: 1fr; } }
.kt-txt { padding: 36px 34px; }
.kt .en { color: var(--kin); font-size: .7rem; letter-spacing: .35em; margin: 0; }
.kt h2 { font-family: var(--mincho); font-size: 2rem; letter-spacing: .3em; margin: 6px 0 10px; color: #f0dca4; }
.kt p { color: rgba(246, 241, 231, .82); font-size: .9rem; margin: 0 0 18px; }
.kt-list { list-style: none; margin: 0; padding: 30px; display: grid; gap: 10px; align-content: center; border-left: 1px solid rgba(201, 162, 74, .3); background: rgba(0, 0, 0, .15); }
@media (max-width: 760px) { .kt-list { border-left: 0; border-top: 1px solid rgba(201, 162, 74, .3); } }
.kt-list li { font-family: var(--mincho); letter-spacing: .14em; }
.kt-list b { color: var(--kin); margin-right: 12px; }

.kb-intro { text-align: center; font-family: var(--mincho); line-height: 2.2; letter-spacing: .1em; margin: 0; }
.kb-intro small { font-family: var(--gothic); color: var(--sumi-2); letter-spacing: .05em; }
.section.kb { scroll-margin-top: 50px; }
.kb .sec-head { position: relative; }
.kb-num { display: block; font-family: var(--mincho); color: var(--kin); font-size: 1.6rem; line-height: 1; margin-bottom: 8px; }
.kb-form { margin-bottom: 24px; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 16px; }
@media (max-width: 700px) { .grid3 { grid-template-columns: 1fr; } }
.check { display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--shu); }
.kb-out table { margin-bottom: 14px; }
.kb-out tr.sum th, .kb-out tr.sum td { font-family: var(--mincho); font-size: 1.15rem; color: var(--shu); background: #fff7ee; }
.kb-out td { text-align: right; white-space: nowrap; }
.kb-out .big { font-family: var(--mincho); font-size: 1.3rem; margin: 0 0 4px; }
.kb-out .big b { font-size: 2.6rem; color: var(--shu); }
.warn { background: #f1ead9; border-left: 3px solid var(--shu); padding: 12px 16px; font-size: .88rem; }
.hook-box { margin-top: 30px; background: var(--washi); border: 1px solid var(--kin); padding: 24px 26px; }
.hook-box p { margin: 0; }
.hook { margin: 8px 0 0 !important; font-size: .82rem; color: var(--shu) !important; }

/* カウントダウン */
.cd { text-align: center; background: linear-gradient(135deg, #3a2c26, #2a201c); color: var(--kinari); padding: 34px 20px; margin-bottom: 30px; border: 1px solid rgba(201, 162, 74, .6); position: relative; }
.cd::before { content: ""; position: absolute; inset: 6px; border: 1px solid rgba(201, 162, 74, .3); pointer-events: none; }
.cd p { margin: 0; }
.cd-k { font-family: var(--mincho); letter-spacing: .4em; color: var(--kin); font-size: .9rem; }
.cd-n { font-family: var(--mincho); display: flex; justify-content: center; align-items: baseline; gap: 12px; }
.cd-n b { font-size: clamp(4rem, 14vw, 6.5rem); line-height: 1.1; background: linear-gradient(180deg, #f3dc9a, #c9a24a 60%, #9a7430); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cd-n span { font-size: 1.2rem; letter-spacing: .2em; }
.cd-d { letter-spacing: .14em; color: rgba(246, 241, 231, .8); }
.cd-s { margin-top: 12px !important; font-size: .9rem; color: rgba(246, 241, 231, .85); }
.cd-s b { color: #f0dca4; }
.cd-past { text-align: center; }

/* 逆算した日程 */
.yo-list { list-style: none; padding: 0; margin: 0 0 24px; border-left: 2px solid var(--kin); margin-left: 8px; }
.yo-list li { position: relative; display: grid; grid-template-columns: 11.5em 1fr; gap: 6px 18px; padding: 0 0 20px 22px; }
@media (max-width: 600px) { .yo-list li { grid-template-columns: 1fr; } }
.yo-list li::before { content: ""; position: absolute; left: -7px; top: 7px; width: 12px; height: 12px; border-radius: 50%; background: var(--kinari); border: 2px solid var(--kin); }
.yo-list li.hon::before { background: var(--shu); border-color: var(--shu); width: 16px; height: 16px; left: -9px; }
.yo-list li.hon b { color: var(--shu); font-size: 1.1rem; }
.yo-list li.past { opacity: .5; }
.yo-list time { font-family: var(--mincho); font-size: .9rem; color: var(--sumi-2); }
.yo-list b { font-family: var(--mincho); letter-spacing: .06em; }
.yo-list p { margin: 2px 0 0; font-size: .84rem; color: var(--sumi-2); }
.yo-list .tag { font-size: .68rem; margin-left: 8px; border: 1px solid var(--sumi-2); padding: 0 6px; color: var(--sumi-2); }

/* 人数から探す */
.nin-hit { display: grid; gap: 4px; background: var(--washi); border: 1px solid var(--kin); padding: 18px 22px; text-decoration: none; color: inherit; }
.nin-hit .badge { justify-self: start; margin: 0; }
.nin-hit b { font-family: var(--mincho); font-size: 1.15rem; }
.nin-hit small { color: var(--sumi-2); }
.nin-hit .go { color: var(--shu); font-family: var(--mincho); }

@media print {
  .hd, .menu-fab, .tenki-btn, .subnav, .page-hero, .footer, .draft, .no-print, .kb:not(#yo), .kb-intro, #yo-note, .kb-form { display: none !important; }
  body { background: #fff; } body::before { display: none; }
  .cd { background: #fff; color: #000; } .cd-n b { color: #000; -webkit-text-fill-color: #000; }
}

/* ════════════════════════════════════════════════
   華やかな和（2026/10/15 リニューアル）
   角を丸く・明るい生成りと桜・紅・藤・若草・金
   ════════════════════════════════════════════════ */
:root {
  --kinari: #fffaf4;
  --kinari-2: #f7f1e3;
  --washi: #ffffff;
  --sumi: #3b2f2c;
  --sumi-2: #7c6b66;
  --shu: #c9a14a;
  --beni: #b8304c;
  --sakura: #f7cdd6;
  --fuji: #9a83c8;
  --wakaba: #8db46a;
  --kin: #c9a14a;
  --line: #ece3cf;
  --yoru: #141d42;
  --gothic: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", sans-serif;
  --r: 22px;
}
body { background: var(--kinari); color: var(--sumi); letter-spacing: .03em; line-height: 2; }
body::before { opacity: .025; }

/* 見出し：英語の小見出しはやめて、金の小花の飾りに */
.sec-head h2, .sec-head h1 { letter-spacing: .14em; }
.sec-head .en { display: none; }
.sec-head h2::after { content: ""; display: block; width: 74px; height: 14px; margin: 14px auto 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 74 14'%3E%3Cpath d='M0 7h26M48 7h26' stroke='%23c9a14a' stroke-width='1'/%3E%3Cg transform='translate(37 7)' fill='%23d0405a'%3E%3Cellipse rx='2.4' ry='5.6'/%3E%3Cellipse rx='2.4' ry='5.6' transform='rotate(72)'/%3E%3Cellipse rx='2.4' ry='5.6' transform='rotate(144)'/%3E%3Cellipse rx='2.4' ry='5.6' transform='rotate(216)'/%3E%3Cellipse rx='2.4' ry='5.6' transform='rotate(288)'/%3E%3Ccircle r='2' fill='%23f3d58a'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat; }
.sec-head .desc { color: var(--sumi-2); }

/* 区切りの背景：淡い桜色と生成りのグラデーション */
.section.alt { background: linear-gradient(180deg, #f7f1e3, #fff6ef); }
.wave { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='30' viewBox='0 0 60 30'%3E%3Cg fill='none' stroke='%23f0b9c4' stroke-width='1' opacity='.45'%3E%3Cpath d='M0 30a30 30 0 0 1 60 0M10 30a20 20 0 0 1 40 0M20 30a10 10 0 0 1 20 0'/%3E%3Cpath d='M-30 15a30 30 0 0 1 60 0M-20 15a20 20 0 0 1 40 0M-10 15a10 10 0 0 1 20 0M30 15a30 30 0 0 1 60 0M40 15a20 20 0 0 1 40 0M50 15a10 10 0 0 1 20 0'/%3E%3C/g%3E%3C/svg%3E"), linear-gradient(180deg, #f7f1e3, #fff6ef); }

/* ボタン：丸く、紅のグラデーション */
.btn { border-radius: 999px; padding: 13px 30px; letter-spacing: .1em; font-family: var(--gothic); font-weight: 500; border-width: 1.5px; box-shadow: 0 8px 20px -12px rgba(184, 48, 76, .6); }
.btn:hover { transform: translateY(-2px); }
.btn { background: var(--sumi); }
.btn.shu, .btn.kin { background: linear-gradient(135deg, #3a4680, #1f2850); border-color: transparent; color: #fff; }
.btn.shu:hover, .btn.kin:hover { background: linear-gradient(135deg, #e97089, #ca3d58); color: #fff; }
.btn.kin { background: linear-gradient(135deg, #f0d27e, #c9a14a); color: #4a2a12; }
.btn.kin:hover { background: linear-gradient(135deg, #f6dc90, #d3ab55); color: #4a2a12; }
.btn.ghost { background: #fff; color: var(--beni); border-color: #e0cfa8; box-shadow: none; }
.btn.ghost:hover { background: #f7f1e3; color: var(--beni); }
.btn.ghost-l { border-color: rgba(255, 255, 255, .6); box-shadow: none; }
.btn { transition: transform .25s, background .3s, color .3s; }

/* カード・箱：角を丸く、影はやわらかく、線は薄く */
.card, .plan, .form, .note, .warn, .hook-box, .comment, .voices li, .level, .faq details, .next-links a, .nin-hit, .spoiler, .feature-list, .pro, .cannot, .can, .kb-out table, .table-wrap, .about-block, .gate, .kt, .pickup, .endevi, .sumbox, .photo-ph { border-radius: var(--r); }
.card, .plan, .form, .comment, .level, .faq details, .next-links a, .nin-hit, .hook-box, .voices li { border: 0; background: #fff; box-shadow: 0 14px 34px -22px rgba(15, 23, 51, .35), 0 0 0 1px rgba(201, 161, 74, .7); }
.card .num, .kb-num { font-family: var(--gothic); font-weight: 700; color: #fff; background: linear-gradient(135deg, #3a4680, #1f2850); width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: .95rem; }
.kb-num { margin: 0 auto 10px; }
.note { border-left: 0; background: #fff7f0; box-shadow: inset 0 0 0 1px #f3e1c8; }
.warn, .cannot { border-left: 0; background: #f7f1e3; box-shadow: inset 0 0 0 1px #f6cdd6; }
.can { border-left: 0; background: #f0f6e8; box-shadow: inset 0 0 0 1px #d6e6c3; }
.table-wrap { overflow: hidden; box-shadow: 0 0 0 1px var(--line); }
table { background: #fff; }
th { background: #f7f1e3; }
thead th { background: linear-gradient(135deg, #1f2850, #3a4680); }
.feature-list { overflow: hidden; border: 0; box-shadow: 0 14px 34px -22px rgba(15, 23, 51, .35); }
.feature-list li { border-color: #f5e6e3; }
.feature-list li::before { content: "✿"; color: var(--shu); }
.points li::before { background: var(--shu); border-radius: 50%; transform: none; width: 7px; height: 7px; }
.plan { border-top: 0; overflow: hidden; position: relative; }
.plan::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, #c9b5e4, #f2c1cc); }
.plan.reco::before { background: linear-gradient(90deg, #3a4680, #1f2850); }
.plan.gold::before { background: linear-gradient(90deg, #f0d27e, #c9a14a); }
.plan .tag { border-radius: 999px; padding: 2px 14px; background: linear-gradient(135deg, #3a4680, #1f2850); }
.plan-head .price { color: var(--beni); }
.badge { border-radius: 999px; padding: 0 10px; }
.field input, .field select, .field textarea { border-radius: 12px; border-color: #e4d9c2; }
.faq summary::before { border-radius: 50%; background: var(--fuji); }
.faq .a::before { border-radius: 50%; background: var(--shu); }
.steps { border-left-color: #e0cfa8; }
.steps li::before { background: linear-gradient(135deg, #3a4680, #1f2850); }
.prose h3 { border-left: 0; padding-left: 0; }
.prose h3::before { content: "✿ "; color: var(--shu); }

/* 作品の表紙カード */
.work .cover { border-radius: 16px; }
.tcover::before { border-radius: 10px; }

/* 夜の帯（見出し・フッター・目録）：茶色→紅藤のグラデーション */
.page-hero, .footer, .final { background: linear-gradient(135deg, #141d42 0%, #1f2850 55%, #2e3a72 100%); }
.page-hero { border-radius: 0 0 40px 40px; }
.work-hero { background: #141d42; }
.work-hero .bg::after { background: linear-gradient(90deg, rgba(15, 23, 51, .95) 15%, rgba(122, 47, 76, .35) 85%); }
.subnav { background: rgba(255, 250, 244, .95); }
.subnav a[aria-current] { border-color: var(--shu); color: var(--beni); }
.menu-ov { background: radial-gradient(ellipse at 70% 30%, rgba(240, 150, 170, .35), transparent 60%), linear-gradient(135deg, #141d42, #1f2850); }
.menu-fab, .tenki-btn { background: rgba(15, 23, 51, .78); }
.footer .copy, .footer .credit { color: rgba(255, 240, 240, .6); }

/* トップの大きな見出し：明るい紅藤と金の光 */
.hf-hero, html[data-season="aki"] .hf-hero { background:
    radial-gradient(ellipse at 72% 38%, rgba(255, 170, 120, .35), transparent 58%),
    radial-gradient(ellipse at 15% 85%, rgba(243, 213, 138, .32), transparent 55%),
    linear-gradient(160deg, #5a2038 0%, #8c2e45 50%, #c0504a 100%); }
html[data-season="haru"] .hf-hero { background: radial-gradient(ellipse at 72% 38%, rgba(255, 210, 225, .45), transparent 58%), radial-gradient(ellipse at 15% 85%, rgba(243, 213, 138, .3), transparent 55%), linear-gradient(160deg, #5b2a52 0%, #a24a72 55%, #e08aa0 100%); }
html[data-season="natsu"] .hf-hero { background: radial-gradient(ellipse at 72% 38%, rgba(160, 230, 200, .3), transparent 58%), radial-gradient(ellipse at 15% 85%, rgba(243, 213, 138, .26), transparent 55%), linear-gradient(160deg, #173a4a 0%, #1f6266 55%, #3f8f7a 100%); }
html[data-season="fuyu"] .hf-hero { background: radial-gradient(ellipse at 72% 38%, rgba(220, 230, 255, .35), transparent 58%), radial-gradient(ellipse at 15% 85%, rgba(243, 213, 138, .22), transparent 55%), linear-gradient(160deg, #2b2f5a 0%, #4d5a8f 55%, #8d9ac4 100%); }
.hf-hero::before { opacity: .12; }
/* 下のふちを雲の形に */
.hf-hero::after { z-index: 0; }
.hf-hero { padding-bottom: 40px; }
.hf-hero > .kumo-edge { position: absolute; left: 0; right: 0; bottom: -1px; height: 60px; z-index: 2; pointer-events: none; }

/* 販売中の作品：明るいカードに */
.hf-dark { background: linear-gradient(180deg, #fff6ef, #f7f1e3); }
.hf-dark .sec-head h2 { color: var(--sumi); }
.pickup { background: #fff; color: var(--sumi); box-shadow: 0 24px 50px -30px rgba(15, 23, 51, .5); overflow: hidden; }
.pickup .kicker { color: var(--shu); }
.pickup p { color: var(--sumi-2); }
.pickup .price { color: var(--beni); font-weight: 700; }
.pickup img { border-radius: 0; }
a.work:hover .cover, .pickup:hover { transform: translateY(-4px); }
.pickup { transition: transform .4s; }

/* 稽古場の案内：桜と藤のグラデーション */
.kt { background: linear-gradient(135deg, #1f2850 0%, #3a4680 55%, #4a5a96 100%); border: 0; box-shadow: 0 24px 50px -30px rgba(15, 23, 51, .6); }
.kt-list { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .25); }
.kt-list b { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: rgba(255, 255, 255, .9); color: var(--beni); font-family: var(--gothic); font-size: .8rem; }
.kt h2 { color: #fff1d6; }
.cd { background: linear-gradient(135deg, #1f2850, #3a4680 60%, #4a5a96); border: 0; border-radius: var(--r); }
.cd::before { border-radius: 16px; border-color: rgba(255, 230, 200, .35); }
.yo-list { border-left-color: #e0cfa8; }
.yo-list li::before { border-color: var(--shu); }

/* 鹿踊子とは：本文は「想いを読む」で開く */
.about-lead { margin-bottom: 30px; }
.about-more { text-align: center; }
.about-more summary { list-style: none; display: inline-flex; cursor: pointer; }
.about-more summary::-webkit-details-marker { display: none; }
.about-more summary span { display: inline-block; padding: 12px 34px; border-radius: 999px; background: #fff; color: var(--beni); box-shadow: 0 0 0 1.5px #e0cfa8; font-weight: 500; letter-spacing: .1em; }
.about-more summary span::after { content: "  ＋"; }
.about-more[open] summary span::after { content: "  －"; }
.about-more .about-body { text-align: left; margin-top: 30px; }
.about-block { border-top: 0; background: #fff; padding: 30px 32px; margin-bottom: 18px; box-shadow: 0 14px 34px -24px rgba(15, 23, 51, .35); }
.about-block .num { position: static; display: grid; margin-bottom: 10px; }
.about-block h3::before { content: none; }
.about-last { color: var(--beni); }
.btn { background: linear-gradient(135deg, #2a3566, #1a2246); border-color: transparent; color: #fff; }
.btn:hover { background: linear-gradient(135deg, #9a4670, #7a3360); color: #fff; }
.btn[disabled] { background: #e9dcdc; color: var(--sumi-2); box-shadow: none; }
.hf-title .mei { filter: drop-shadow(0 3px 6px rgba(10, 15, 35, .45)); }
.hf-lead p { font-size: 1rem; color: #fff; text-shadow: 0 1px 8px rgba(10, 15, 35, .4); }

/* ── 天気ボタン：押すと日付・時刻・天気が出る横長の札に ── */
.tenki-btn[data-on] { width: auto; height: 62px; border-radius: 999px; padding: 0 22px 0 8px; display: flex; align-items: center; gap: 10px; text-align: left; }
.tenki-btn[data-on] .ji { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 240, 210, .16); font-size: 1.3rem; }
.tenki-btn .tx { display: grid; line-height: 1.35; }
.tenki-btn .tx small { font-size: .66rem; color: rgba(255, 240, 225, .75); letter-spacing: .06em; }
.tenki-btn .tx b { font-size: .9rem; color: #fff3d6; letter-spacing: .08em; font-weight: 700; }
@media (max-width: 600px) { .tenki-btn[data-on] { height: 54px; padding-right: 14px; } .tenki-btn[data-on] .ji { width: 40px; height: 40px; font-size: 1.1rem; } .tenki-btn .tx small { font-size: .6rem; } .tenki-btn .tx b { font-size: .8rem; } }
.tenki-tip { position: fixed; top: 86px; right: 18px; z-index: 61; max-width: 280px; background: rgba(15, 23, 51, .92); color: #fff; font-size: .78rem; line-height: 1.6; padding: 10px 14px; border-radius: 14px; opacity: 0; transform: translateY(-6px); transition: opacity .3s, transform .3s; pointer-events: none; }
.tenki-tip.on { opacity: 1; transform: none; }
/* 夜の色をゆっくり重ねる */
.yoru-veil { position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0; transition: opacity 2.4s ease;
  background: radial-gradient(ellipse at 80% 10%, rgba(120, 140, 220, .25), transparent 55%), linear-gradient(180deg, rgba(14, 18, 52, .62), rgba(30, 20, 60, .35)); }
html[data-yoru] .yoru-veil { opacity: 1; }
.hf-hero::after { transition: opacity 2.4s ease, background 2.4s ease; }
.tenki-cv { opacity: 0; transition: opacity 2s ease; }
html[data-weather] .tenki-cv { opacity: 1; }

/* ════════ 作品目録（しぼりこみ） ════════ */
.kb-lead { margin: 10px 0 0; color: rgba(251, 247, 238, .85); letter-spacing: .08em; }
.cat-filter { background: #fff; border-radius: var(--r); padding: 22px 26px; box-shadow: 0 14px 34px -22px rgba(15, 23, 51, .35), 0 0 0 1px rgba(201, 161, 74, .7); display: grid; gap: 14px; }
.cf-row { display: grid; grid-template-columns: 6em 1fr; align-items: center; gap: 10px; }
@media (max-width: 600px) { .cf-row { grid-template-columns: 1fr; gap: 6px; } }
.cf-k { font-weight: 700; color: var(--beni); font-size: .9rem; }
.cf-n { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; }
.cf-n input { width: 7em; font: inherit; padding: 8px 12px; border-radius: 12px; border: 1px solid #e4d9c2; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; cursor: pointer; }
.chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.chip span { display: inline-block; padding: 7px 18px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1.5px #efd3d9; font-size: .88rem; color: var(--sumi); transition: background .2s, color .2s, box-shadow .2s; }
.chip input:checked + span { background: linear-gradient(135deg, #3a4680, #1f2850); color: #fff; box-shadow: none; }
.chip input:focus-visible + span { outline: 2px solid var(--fuji); outline-offset: 2px; }
.cat-count { margin: 26px 0 12px; color: var(--sumi-2); font-size: .9rem; }
.wks { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.wk { display: grid; grid-template-columns: 120px 1fr; gap: 18px; background: #fff; border-radius: var(--r); padding: 18px; text-decoration: none; color: inherit;
  box-shadow: 0 14px 34px -22px rgba(15, 23, 51, .35), 0 0 0 1px rgba(201, 161, 74, .7); transition: transform .3s, box-shadow .3s; }
a.wk:hover { transform: translateY(-4px); box-shadow: 0 24px 40px -24px rgba(15, 23, 51, .45), 0 0 0 1px rgba(240, 190, 200, .9); }
.wk[hidden] { display: none; }
.wk-cover { position: relative; aspect-ratio: 3 / 4.2; border-radius: 12px; overflow: hidden; background: var(--washi); }
.wk-cover .icover-t { font-size: .72rem; padding: 26px 6px 8px; }
.wk-cover .tcover .t { font-size: .95rem; }
.wk-cover .tcover .a { font-size: .6rem; }
.wk-body h3 { font-size: 1.05rem; margin: 6px 0 4px; line-height: 1.5; letter-spacing: .04em; }
.wk-catch { margin: 0 0 4px; font-family: var(--mincho); color: var(--beni); font-size: .86rem; }
.wk-desc { margin: 0 0 8px; font-size: .82rem; color: var(--sumi-2); line-height: 1.8; }
.wk-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.tg { font-size: .7rem; padding: 1px 10px; border-radius: 999px; background: #eef0f7; color: #2a3566; }
.wk-facts { margin: 6px 0 0; font-size: .76rem; color: var(--sumi-2); }
.wk-price { margin: 4px 0 0; font-weight: 700; color: var(--beni); font-size: .85rem; }
.badge.wip { color: #2a3566; }
.cat-empty { text-align: center; padding: 30px; }
.cat-help { margin-top: 40px; text-align: center; background: linear-gradient(135deg, #f7f1e3, #f4eee0); border-radius: var(--r); padding: 26px; }
.cat-help p { margin: 0 0 12px; }

/* ════════ あなた専属プロデューサー ════════ */
.kb-app { padding: 40px 0 80px; }
.karte { background: #fff; border-radius: 28px; padding: 30px 30px 18px; box-shadow: 0 20px 44px -28px rgba(15, 23, 51, .45), 0 0 0 1px rgba(201, 161, 74, .7); scroll-margin-top: 20px; }
.karte-head h2 { font-family: var(--mincho); font-size: 1.4rem; letter-spacing: .14em; margin: 0 0 12px; }
.kf { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 14px; margin-top: 16px; }
@media (max-width: 900px) { .kf { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .kf { grid-template-columns: 1fr; } }
.kf label, .fl { display: grid; gap: 4px; font-size: .8rem; font-weight: 700; color: var(--sumi-2); }
.kf input, .kf select, .fl input { font: inherit; font-weight: 400; font-size: .95rem; padding: 10px 12px; border-radius: 12px; border: 1px solid #e4d9c2; background: #fffdf8; color: var(--sumi); width: 100%; }
.kf input:focus, .kf select:focus, .fl input:focus, .mail:focus { outline: 2px solid var(--fuji); outline-offset: 0; border-color: transparent; }
.karte-saved { margin: 14px 0 0; font-size: .74rem; color: var(--sumi-2); }

/* しかP */
.shikap { display: flex; align-items: flex-start; gap: 12px; margin: 0 0 18px; }
.shikap-face { flex: none; width: 56px; height: 56px; filter: drop-shadow(0 6px 10px rgba(15, 23, 51, .25)); animation: fuwa 4s ease-in-out infinite; }
.shikap-face svg { width: 100%; height: 100%; }
@keyframes fuwa { 50% { transform: translateY(-4px) rotate(-3deg); } }
.shikap-say { position: relative; margin: 4px 0 0; background: #fff4e6; border-radius: 18px; padding: 12px 16px; font-size: .9rem; line-height: 1.8; box-shadow: inset 0 0 0 1px #f3dcb8; }
.shikap-say::before { content: ""; position: absolute; left: -7px; top: 16px; width: 14px; height: 14px; background: #fff4e6; transform: rotate(45deg); box-shadow: -1px 1px 0 #f3dcb8; }
.shikap-say b { display: block; font-size: .72rem; color: #b07a2a; letter-spacing: .12em; }
.shikap.light .shikap-say { background: rgba(255, 255, 255, .95); color: var(--sumi); }
.shikap.light .shikap-say::before { background: rgba(255, 255, 255, .95); box-shadow: none; }
.kt-side { padding: 26px; display: grid; align-content: center; gap: 14px; border-left: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .08); }
.kt-side .kt-list { padding: 0; border: 0; background: none; }
@media (max-width: 760px) { .kt-side { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .25); } }
@media (prefers-reduced-motion: reduce) { .shikap-face { animation: none; } }

/* いつも見える帯 */
.kb-bar { position: sticky; top: 10px; z-index: 25; margin: 22px auto 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; padding: 10px 20px; border-radius: 999px;
  background: rgba(15, 23, 51, .92); backdrop-filter: blur(6px); color: #fff; font-size: .82rem; box-shadow: 0 12px 30px -18px rgba(15, 23, 51, .8); max-width: calc(100% - 150px); }
@media (max-width: 700px) { .kb-bar { max-width: 100%; top: 76px; border-radius: 18px; } }
.bar-cd b { font-size: 1.3rem; color: #ffd98a; margin: 0 2px; font-family: var(--mincho); }
.bar-cd.muted { color: rgba(255, 255, 255, .75); }
.bar-info { color: rgba(251, 247, 238, .85); }
.bar-edit { margin-left: auto; color: #ffd98a; font-size: .78rem; }

/* 道具のタブ */
.kb-tabs { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; margin: 26px 0 18px; }
@media (max-width: 1000px) { .kb-tabs { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 560px) { .kb-tabs { grid-template-columns: repeat(2, 1fr); } }
.kb-tab { display: grid; justify-items: center; gap: 6px; padding: 14px 8px; border: 0; border-radius: 18px; background: #fff; cursor: pointer; font-family: var(--gothic); font-size: .8rem; color: var(--sumi);
  box-shadow: 0 10px 24px -18px rgba(15, 23, 51, .45), 0 0 0 1px rgba(201, 161, 74, .8); transition: transform .2s, background .2s; line-height: 1.4; }
.kb-tab svg { width: 28px; height: 28px; color: var(--beni); }
.kb-tab:hover { transform: translateY(-2px); }
.kb-tab[aria-selected="true"] { background: linear-gradient(135deg, #3a4680, #1f2850); color: #fff; box-shadow: 0 14px 26px -16px rgba(192, 52, 79, .8); }
.kb-tab[aria-selected="true"] svg { color: #fff; }
.kb-tab:focus-visible { outline: 3px solid var(--fuji); outline-offset: 2px; }

/* パネル */
.kb-panel { background: #fff; border-radius: 28px; padding: 32px; box-shadow: 0 20px 44px -28px rgba(15, 23, 51, .45), 0 0 0 1px rgba(201, 161, 74, .7); }
@media (max-width: 600px) { .kb-panel, .karte { padding: 22px 18px; border-radius: 22px; } }
.pt { font-family: var(--mincho); font-size: 1.45rem; letter-spacing: .12em; margin: 0 0 18px; }
.st { font-size: 1rem; margin: 30px 0 12px; color: var(--beni); letter-spacing: .06em; }
.hint { font-size: .84rem; color: var(--sumi-2); margin: 10px 0; }
.hint a { color: var(--beni); }
.row-btns { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 0; }
.go-link { margin: 4px 0 0 !important; }
.go-link a { color: var(--beni); font-size: .82rem; }
.yo-list li.late time { color: var(--beni); font-weight: 700; }
.yo-list .tag { border-radius: 999px; border-color: var(--shu); color: var(--beni); background: #f7f1e3; }
.pick { background: linear-gradient(135deg, #f7f1e3, #f4eee0); border-radius: 18px; padding: 18px 22px; }
.pick p { margin: 0; font-size: .88rem; }
.pick-k { color: var(--sumi-2); font-size: .76rem !important; }
.pick-t { font-family: var(--mincho); font-size: 1.2rem !important; color: var(--beni); margin: 2px 0 6px !important; }
.links { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.links.sm { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); margin-top: 8px; }
.lk { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 16px; border-radius: 14px; background: #fbf7ee; color: var(--sumi); text-decoration: none; font-size: .86rem; box-shadow: inset 0 0 0 1px #f3dcd8; transition: background .2s; }
.lk:hover { background: #f7f1e3; }
.lk span { color: var(--beni); }
.mail { width: 100%; font: inherit; font-size: .86rem; line-height: 1.8; padding: 16px; border-radius: 16px; border: 1px solid #e4d9c2; background: #fffdf8; color: var(--sumi); resize: vertical; }
.ck { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.ck label, .kz label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; padding: 8px 12px; border-radius: 12px; }
.ck label:hover, .kz label:hover { background: #fff6f4; }
.ck input, .kz input { width: 20px; height: 20px; margin-top: 4px; accent-color: var(--shu); flex: none; }
.ck input:checked + span { color: var(--sumi-2); text-decoration: line-through; }
.where { display: grid; gap: 12px; }
.w { background: #fbf7ee; border-radius: 16px; padding: 16px 18px; box-shadow: inset 0 0 0 1px #f3e2dc; }
.w b { color: var(--beni); }
.w p { margin: 4px 0 0; font-size: .86rem; color: var(--sumi-2); }
.fl { margin: 12px 0; max-width: 420px; }
.fl.sm { max-width: 220px; margin: 0; }
.kf3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 10px; }
@media (max-width: 600px) { .kf3 { grid-template-columns: 1fr; } }
.kf3 .fl { margin: 0; }
.kz-top { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 20px; }
.kz { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.kz label { align-items: center; }
.kz-n { flex: 1; display: grid; }
.kz-n small { color: var(--sumi-2); font-size: .76rem; }
.kz-q { font-size: .84rem; color: var(--sumi-2); white-space: nowrap; }
.kz-have { font-size: .7rem; padding: 1px 8px; border-radius: 999px; background: #f0f6e8; color: #4f7a35; opacity: 0; }
.kz li.have .kz-have { opacity: 1; }
.kz li.have .kz-n b { color: var(--sumi-2); text-decoration: line-through; }
@media (max-width: 600px) { .kz-q { display: none; } }
.rent { margin-top: 26px; background: #fbf7ee; border-radius: 20px; padding: 18px 22px; }
.rent .st { margin-top: 0; }
.sd-q { border: 0; padding: 0; margin: 0 0 18px; }
.sd-q legend { font-weight: 700; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }
.sd-q legend span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--fuji); color: #fff; font-size: .8rem; }
.sd-wait { text-align: center; padding: 20px; background: #faf6fc; border-radius: 16px; }
.sd-result { margin-top: 20px; border-radius: 24px; padding: 28px; text-align: center; background: linear-gradient(135deg, #f7f1e3, #f4eee0); box-shadow: inset 0 0 0 1px #f0d6dc; }
.sd-k { margin: 0; color: var(--sumi-2); font-size: .8rem; letter-spacing: .14em; }
.sd-t { margin: 6px 0 14px; font-family: var(--mincho); font-size: 1.5rem; color: var(--beni); }
.sd-meter { height: 12px; border-radius: 999px; background: #f3e4e8; overflow: hidden; max-width: 360px; margin: 0 auto; }
.sd-meter span { display: block; height: 100%; width: var(--v); border-radius: 999px; background: linear-gradient(90deg, #f0d27e, #3a4680); animation: grow 1s ease; }
@keyframes grow { from { width: 0; } }
.sd-v { margin: 6px 0 12px; } .sd-v b { font-size: 1.6rem; color: var(--beni); font-family: var(--mincho); }
.sd-result h4 { margin: 14px 0 6px; font-size: .9rem; }
.sd-ok, .sd-ng { list-style: none; padding: 0; margin: 0 auto; max-width: 520px; text-align: left; display: grid; gap: 6px; }
.sd-ok li::before { content: "✿ "; color: var(--shu); }
.sd-ng li::before { content: "△ "; color: var(--fuji); }
.sd-ok li, .sd-ng li { font-size: .88rem; }
.sd-result .row-btns { justify-content: center; margin-top: 20px; }
.big-res { margin-top: 18px; text-align: center; background: linear-gradient(135deg, #f7f1e3, #f4eee0); border-radius: 20px; padding: 22px; }
.big-res p { margin: 0; } .big-res b { font-size: 2.4rem; color: var(--beni); font-family: var(--mincho); }
.ryo td { text-align: right; white-space: nowrap; }
.ryo tr.sum th, .ryo tr.sum td { color: var(--beni); font-size: 1.05rem; background: #f7f1e3; }
.kb-tools { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 26px; }
.kb-toast { position: fixed; left: 50%; bottom: 30px; transform: translate(-50%, 20px); background: rgba(15, 23, 51, .95); color: #fff; padding: 10px 22px; border-radius: 999px; font-size: .88rem; opacity: 0; transition: opacity .3s, transform .3s; z-index: 70; pointer-events: none; }
.kb-toast.on { opacity: 1; transform: translate(-50%, 0); }
@media print { .kb-tabs, .kb-bar, .kb-tools, .karte, .shikap, .row-btns, .links { display: none !important; } .kb-panel[hidden] { display: block !important; } .kb-panel { box-shadow: none; margin-bottom: 20px; break-inside: avoid; } }
.wks { align-items: start; }
.wk-cover .icover-t { display: none; }
.hf-hero > .kumo-edge { width: 100%; }
.about-plain { background: #fff; border-radius: var(--r); padding: 30px 34px; box-shadow: 0 14px 34px -24px rgba(15, 23, 51, .35); }
.about-plain p { margin: 0 0 1.4em; line-height: 2.1; }
.about-plain p:last-child { margin-bottom: 0; }
@media (max-width: 600px) { .about-plain { padding: 22px 20px; } }
/* 見出しの下の一文は1行に収める（幅に合わせて文字が小さくなる） */
.page-hero .wrap { container-type: inline-size; }
.page-hero .kb-lead { white-space: nowrap; letter-spacing: .04em; font-size: min(1rem, 2.7cqi); }
.page-hero h1 { white-space: nowrap; font-size: min(2.2rem, 6.8cqi); }

/* ════════ トップ：3つの箱（読む・演じる・支える） ════════ */
.mon { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 980px; margin: 26px auto 0; text-align: left; }
@media (max-width: 760px) { .mon { grid-template-columns: 1fr; max-width: 420px; } }
.mon-box { position: relative; display: grid; align-content: start; gap: 4px; padding: 24px 24px 22px; border-radius: 26px; text-decoration: none; color: var(--sumi);
  background: rgba(255, 250, 244, .96); box-shadow: 0 24px 44px -26px rgba(10, 15, 35, .8), inset 0 0 0 1px rgba(255, 255, 255, .7); transition: transform .3s, box-shadow .3s; }
.mon-box:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -26px rgba(10, 15, 35, .9), inset 0 0 0 2px #f0d27e; }
.mon-box.main { background: linear-gradient(160deg, #fff6e2, #ffeef0); box-shadow: 0 24px 44px -26px rgba(10, 15, 35, .8), inset 0 0 0 2px #f0d27e; }
.mon-ic { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #3a4680, #1f2850); color: #fff; margin-bottom: 8px; }
.mon-ic svg { width: 28px; height: 28px; }
.mon-ic.face { background: none; width: 56px; height: 56px; }
.mon-ic.face svg { width: 56px; height: 56px; }
.mon-k { font-size: .74rem; color: var(--beni); letter-spacing: .2em; }
.mon-box b { font-family: var(--mincho); font-size: 1.3rem; letter-spacing: .08em; line-height: 1.4; }
.mon-d { font-size: .84rem; color: var(--sumi-2); line-height: 1.8; }
.mon-go { margin-top: 10px; font-weight: 700; color: var(--beni); font-size: .88rem; }
.hf-lead { padding-bottom: 70px; }
.footer .cols { grid-template-columns: 1fr 1fr 1.6fr; }
@media (max-width: 860px) { .footer .cols { grid-template-columns: 1fr; } }
.footer .f-main { columns: 1; }

/* ════════ 小説 ════════ */
.nv-list { display: grid; gap: 24px; max-width: 900px; margin: 0 auto; }
.nv-card { display: grid; grid-template-columns: 170px 1fr; gap: 26px; align-items: center; background: #fff; border-radius: 26px; padding: 22px; text-decoration: none; color: inherit;
  box-shadow: 0 16px 36px -24px rgba(15, 23, 51, .45), 0 0 0 1px rgba(201, 161, 74, .7); transition: transform .3s; }
.nv-card:hover { transform: translateY(-4px); }
@media (max-width: 600px) { .nv-card { grid-template-columns: 110px 1fr; gap: 16px; padding: 16px; } .nv-intro { display: none; } }
.nv-cover { position: relative; aspect-ratio: 3 / 4.3; border-radius: 14px; overflow: hidden; background: #fffdf8; display: flex; flex-direction: column; align-items: center; padding: 14% 10%;
  box-shadow: 0 14px 26px -16px rgba(10, 15, 35, .6), inset 0 0 0 1px rgba(0, 0, 0, .05); container-type: inline-size; }
.nv-cover::before { content: ""; position: absolute; inset: 6%; border: 1px solid var(--c); opacity: .45; border-radius: 8px; }
.nv-cover .band { position: absolute; left: 0; right: 0; top: 0; height: 8%; background: var(--c); }
.nv-cover .t { writing-mode: vertical-rl; font-family: var(--mincho); font-weight: 700; font-size: 11cqi; letter-spacing: .14em; line-height: 1.4; max-height: 74%; margin-top: 6%; }
.nv-cover .a { position: absolute; bottom: 8%; font-family: var(--mincho); font-size: 7cqi; letter-spacing: .3em; color: var(--sumi-2); }
.nv-cover.img { padding: 0; }
.nv-cover.img img { width: 100%; height: 100%; object-fit: cover; }
.nv-cv-t { position: absolute; left: 0; right: 0; bottom: 0; padding: 30% 6% 8%; text-align: center; font-family: var(--mincho); font-weight: 700; font-size: 8cqi; color: #fff; background: linear-gradient(transparent, rgba(10, 15, 35, .85) 45%); line-height: 1.5; }
.nv-kind { margin: 0; font-size: .76rem; color: var(--beni); letter-spacing: .14em; }
.nv-body h3 { font-size: 1.3rem; margin: 2px 0 6px; line-height: 1.5; }
.nv-catch { margin: 0 0 8px; font-family: var(--mincho); color: var(--beni); }
.nv-intro { margin: 0 0 10px; font-size: .86rem; color: var(--sumi-2); line-height: 1.9; }
.nv-go { font-weight: 700; color: var(--beni); font-size: .88rem; }
.nv-soon { text-align: center; color: var(--sumi-2); font-size: .88rem; margin-top: 26px; }
.nv-hero .nv-hero-in { display: grid; grid-template-columns: 200px 1fr; gap: 34px; align-items: center; margin-top: 10px; }
@media (max-width: 680px) { .nv-hero .nv-hero-in { grid-template-columns: 1fr; } .nv-hero .nv-cover { max-width: 160px; } }
.nv-hero h1 { white-space: normal; font-size: clamp(1.5rem, 4vw, 2.2rem); }
.nv-vols { margin: 6px 0 0; font-size: .82rem; color: rgba(251, 247, 238, .8); }
.nv-hero-catch { font-family: var(--mincho); font-size: 1.15rem; color: #fff1d6; margin: 14px 0 6px; }
.nv-hero-intro { color: rgba(251, 247, 238, .88); font-size: .92rem; max-width: 620px; }
.nv-dis { opacity: .6; cursor: default; }
.nv-dis:hover { background: transparent; color: var(--kinari); transform: none; }
.nv-vol { background: #fff; border-radius: var(--r); padding: 22px 26px; margin-bottom: 14px; box-shadow: 0 14px 34px -24px rgba(15, 23, 51, .35); }
.nv-vol h3 { margin: 0 0 8px; font-size: 1rem; color: var(--beni); }
.nv-vol p { margin: 0; line-height: 2; }
.tameshi { background: #fffdf8; border-radius: 22px; padding: 34px 38px; font-family: var(--mincho); font-size: 1.02rem; line-height: 2.2; letter-spacing: .04em;
  box-shadow: 0 18px 40px -28px rgba(15, 23, 51, .5), inset 0 0 0 1px #f1e4d8; max-height: 70vh; overflow-y: auto; }
.tameshi p { margin: 0 0 .9em; text-indent: 1em; }
.tameshi p:first-child { text-indent: 0; }
.tameshi .tm-sep { text-align: center; text-indent: 0; color: var(--sumi-2); }
@media (max-width: 600px) { .tameshi { padding: 24px 20px; font-size: .96rem; } }
.nv-hikari { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.nv-hikari li { background: #fff; border-radius: 18px; padding: 16px 22px; font-family: var(--mincho); box-shadow: 0 12px 30px -24px rgba(15, 23, 51, .4); }
.nv-hikari li::before { content: "✿ "; color: var(--shu); }
.nv-two { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 680px) { .nv-two { grid-template-columns: 1fr; } }
.nv-box { background: linear-gradient(135deg, #f7f1e3, #f4eee0); border-radius: 24px; padding: 26px 28px; }
.nv-box h3 { margin: 0 0 10px; color: var(--beni); font-size: 1.1rem; }
.nv-box p { margin: 0; line-height: 2; }
.nv-stage { margin-top: 26px; text-align: center; background: #fff; border-radius: 24px; padding: 24px; box-shadow: 0 0 0 1.5px #f0d27e; }
.nv-stage p { margin: 0 0 12px; }
/* 表紙の文字の大きさ（表紙の幅ごとに決める） */
.nv-cover { container-type: normal; }
.nv-cover .t { font-size: 1.15rem; }
.nv-cover .a { font-size: .66rem; }
.nv-cv-t { font-size: .82rem; }
.nv-hero .nv-cover .t { font-size: 1.3rem; }
@media (max-width: 600px) { .nv-card .nv-cover .t { font-size: .82rem; } .nv-card .nv-cv-t { font-size: .64rem; } .nv-card .nv-cover .a { font-size: .55rem; } }
.mon-box b { white-space: nowrap; font-size: 1.18rem; }
.nv-cover { color: var(--sumi); }
.nv-cover .t { font-size: 1rem; letter-spacing: .08em; }
.nv-hero .nv-cover .t { font-size: 1.15rem; }
.hf-lead { container-type: inline-size; }
.hf-lead > p { white-space: nowrap; font-size: min(1rem, 3.2cqi); letter-spacing: .1em; }

/* ════════ トップ：花札（短冊札）3枚 ════════ */
.tan-row { display: flex; justify-content: center; align-items: flex-start; gap: clamp(14px, 3vw, 40px); margin: 30px auto 0; max-width: 900px; }
.tan { flex: 0 1 220px; text-decoration: none; color: #fff; text-align: center; }
.tan-card { border-radius: 14px; box-shadow: 0 26px 40px -22px rgba(5, 8, 20, .9), 0 0 0 1px rgba(201, 162, 74, .6); transition: transform .4s cubic-bezier(.2, .8, .2, 1), box-shadow .4s; }
.tan-card svg { display: block; width: 100%; height: auto; }
.tan:nth-child(1) .tan-card { transform: rotate(-5deg) translateY(10px); }
.tan:nth-child(3) .tan-card { transform: rotate(5deg) translateY(10px); }
.tan:hover .tan-card, .tan:focus-visible .tan-card { transform: translateY(-14px) rotate(0); box-shadow: 0 34px 50px -22px rgba(5, 8, 20, .95), 0 0 0 2px #f0d27e; }
.tan p { margin: 18px 0 0; font-size: .84rem; line-height: 1.8; color: rgba(255, 245, 238, .92); text-shadow: 0 1px 6px rgba(10, 15, 35, .5); }
@media (max-width: 640px) {
  .tan-row { flex-direction: column; align-items: center; gap: 26px; }
  .tan { flex: none; width: min(230px, 64vw); }
  .tan:nth-child(1) .tan-card, .tan:nth-child(3) .tan-card { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .tan-card { transition: none; } }

/* 小説：感想10個・巻の表紙・Coming Soon */
.kanso { list-style: none; counter-reset: k; padding: 0; margin: 0; display: grid; gap: 12px; }
.kanso li { counter-increment: k; position: relative; background: #fff; border-radius: 18px; padding: 16px 20px 16px 58px; line-height: 1.9; box-shadow: 0 12px 30px -24px rgba(15, 23, 51, .4); }
.kanso li::before { content: counter(k); position: absolute; left: 16px; top: 15px; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #f0d27e, #c9a14a); color: #4a2a12; font-weight: 700; font-size: .8rem; }
.nv-vol { display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: start; }
.nv-vol-img { width: 96px; border-radius: 8px; box-shadow: 0 10px 20px -12px rgba(10, 15, 35, .6); }
@media (max-width: 520px) { .nv-vol { grid-template-columns: 1fr; } }
.nv-card.soon { opacity: .9; }
.nv-soon-tag { display: inline-block; margin: 0 0 6px; padding: 2px 14px; border-radius: 999px; background: linear-gradient(135deg, #f0d27e, #c9a14a); color: #4a2a12; font-weight: 700; font-size: .78rem; letter-spacing: .12em; }

/* 作品目録（小説・舞台脚本すべて） */
.cf-q { display: block; }
.cf-q input { width: 100%; font: inherit; padding: 10px 16px; border-radius: 999px; border: 1px solid #e4d9c2; background: #fffdf8; }
.cf-q input:focus, .cf-n input:focus { outline: 2px solid var(--fuji); border-color: transparent; }
.cf-note { margin: 0; font-size: .8rem; color: var(--beni); }
.wk { cursor: default; }
.wk-kinds { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.kd { font-size: .7rem; padding: 1px 10px; border-radius: 999px; font-weight: 700; }
.kd.novel { background: #eef4fb; color: #2c4a73; }
.kd.stage { background: #f7f1e3; color: var(--beni); }
.wk-kinds .badge { margin-left: 0; }
.wk-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.wk-btn { font-size: .8rem; font-weight: 700; padding: 6px 14px; border-radius: 999px; text-decoration: none; color: var(--beni); box-shadow: inset 0 0 0 1.5px #e0cfa8; background: #fff; }
.wk-btn.main { background: linear-gradient(135deg, #3a4680, #1f2850); color: #fff; box-shadow: none; }
.wk-btn:hover { filter: brightness(1.05); }

/* 読みどころ：数字なし・見出しは1行 */
.nv-mido { grid-template-columns: repeat(2, 1fr); max-width: 980px; margin: 0 auto; }
@media (max-width: 680px) { .nv-mido { grid-template-columns: 1fr; } }
.nv-mido .card { container-type: inline-size; }
.nv-mido .card h3 { white-space: nowrap; font-size: min(1.1rem, 5.4cqi); letter-spacing: .04em; margin-bottom: 10px; }

/* 読みどころメモ：鉛筆で書いた付箋 */
.fusen { list-style: none; margin: 0 auto; padding: 10px 0 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 22px 18px; max-width: 960px; }
.fusen li { position: relative; font-family: "Yomogi", "Klee One", cursive; color: #4b4a4f; font-size: 1.02rem; line-height: 1.75; letter-spacing: .02em;
  padding: 26px 20px 20px; background: #fff7b8; box-shadow: 0 10px 18px -12px rgba(60, 40, 20, .45), 0 1px 0 rgba(0, 0, 0, .04);
  border-radius: 2px 2px 14px 2px; transform: rotate(-1.5deg); width: 230px; }
.fusen li::before { content: ""; position: absolute; top: -9px; left: 50%; width: 70px; height: 20px; transform: translateX(-50%) rotate(-3deg);
  background: rgba(255, 255, 255, .55); box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.fusen li:nth-child(5n+1) { background: #fff7b8; width: 250px; transform: rotate(-2deg); }
.fusen li:nth-child(5n+2) { background: #fde2e7; width: 200px; transform: rotate(1.8deg) translateY(8px); }
.fusen li:nth-child(5n+3) { background: #e3f0fb; width: 280px; transform: rotate(-.8deg); }
.fusen li:nth-child(5n+4) { background: #e6f4dc; width: 215px; transform: rotate(2.4deg) translateY(4px); }
.fusen li:nth-child(5n+5) { background: #f1e8fb; width: 240px; transform: rotate(-2.6deg) translateY(10px); }
.fusen li:nth-child(3n) { font-size: 1.1rem; padding: 30px 22px 24px; }
.fusen li:nth-child(4n) { font-size: .96rem; }
.fusen li:nth-child(7) { width: 300px; }
@media (max-width: 600px) { .fusen li, .fusen li:nth-child(n) { width: min(100%, 300px); } }
.nv-syn p { margin: 0 0 1em; line-height: 2.1; }
.nv-cover-pair { position: relative; aspect-ratio: 3 / 4.3; }
.nv-cover-pair img { position: absolute; width: 72%; border-radius: 10px; box-shadow: 0 12px 22px -14px rgba(10, 15, 35, .7); }
.nv-cover-pair img:first-child { left: 0; top: 0; transform: rotate(-4deg); }
.nv-cover-pair img:last-child { right: 0; bottom: 0; transform: rotate(4deg); }
.nv-series { background: linear-gradient(135deg, #eef7f8, #fff); }
.nv-order { text-align: center; margin-top: 18px; font-family: var(--mincho); }
.nv-order b { color: var(--beni); font-size: 1.2rem; }
.nv-prep { text-align: center; background: #fffdf8; border-radius: 22px; padding: 40px 20px; font-family: var(--mincho); color: var(--sumi-2); box-shadow: inset 0 0 0 1px #f1e4d8; }

/* 費用の目安・ホールリスト・収支計画表 */
.kb-tabs { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 760px) { .kb-tabs { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 460px) { .kb-tabs { grid-template-columns: repeat(2, 1fr); } }
.ytab th, .ytab td { font-size: .86rem; }
.ytab td { white-space: nowrap; }
.ytab td.small { white-space: normal; }
.srcs { font-size: .72rem; color: var(--sumi-2); margin: 8px 0 0; line-height: 1.7; }
.srcs a { color: var(--sumi-2); }
.ex { margin-top: 12px; background: #fbf7ee; border-radius: 16px; padding: 10px 16px; }
.ex summary { cursor: pointer; font-weight: 700; color: var(--beni); font-size: .88rem; }
.ex-list { margin: 10px 0 0; padding-left: 1.2em; font-size: .86rem; line-height: 1.9; }
.htab td, .htab th { font-size: .84rem; vertical-align: middle; }
.htab select { font: inherit; padding: 4px 8px; border-radius: 10px; border: 1px solid #e4d9c2; }
.mini { font: inherit; font-size: .78rem; padding: 4px 12px; border-radius: 999px; border: 1.5px solid #e0cfa8; background: #fff; color: var(--beni); cursor: pointer; }
.mini:hover { background: #f7f1e3; }
.hadd { margin-top: 16px; background: #fbf7ee; border-radius: 18px; padding: 16px; }
.hadd .btn { margin-top: 10px; }
.hlist { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.hlist li { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; background: #fff; border-radius: 16px; padding: 14px 18px; box-shadow: inset 0 0 0 1px #ece3cf; }
.hlist li.near { box-shadow: inset 0 0 0 2px #f0d27e; }
.hlist b { display: block; }
.hlist small { color: var(--sumi-2); }
.hlist p { margin: 4px 0 0; font-size: .86rem; }
.hbtn { display: flex; gap: 8px; align-items: center; }
.hbtn .lk { padding: 6px 14px; }
.pl { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 760px) { .pl { grid-template-columns: 1fr; } }
.pltab { width: 100%; }
.pltab th { font-weight: 400; width: auto; }
.pltab th small { display: block; font-size: .7rem; color: var(--sumi-2); }
.pltab th.sub { padding-left: 26px; font-size: .82rem; color: var(--sumi-2); }
.pltab td { width: 42%; text-align: right; }
.pltab input { font: inherit; width: 100%; padding: 6px 10px; border-radius: 10px; border: 1px solid #e4d9c2; background: #fffdf8; }
.pltab input.pl-v { text-align: right; }
.pltab input.pl-n { border-color: transparent; background: transparent; padding-left: 0; }
.pltab input.pl-n:focus { border-color: #e4d9c2; background: #fff; }
.pltab input.sm { width: 4.5em; display: inline-block; margin-right: 4px; padding: 2px 6px; }
.pltab .pl-calc { font-weight: 700; }
.pltab tr.sum th, .pltab tr.sum td { font-weight: 700; color: var(--beni); background: #f7f1e3; }
.pl .mini { margin-top: 8px; }
.pl-res { margin-top: 22px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.pl-res > div { border-radius: 20px; padding: 18px 20px; text-align: center; background: linear-gradient(135deg, #f7f1e3, #f4eee0); }
.pl-res p { margin: 0; font-size: .8rem; color: var(--sumi-2); }
.pl-res b { display: block; font-family: var(--mincho); font-size: 1.7rem; margin-top: 4px; }
.pl-res small { font-size: .72rem; color: var(--sumi-2); }
.pl-res.plus > div:first-child b { color: #3f7a3a; }
.pl-res.minus > div:first-child b { color: var(--beni); }
/* 花札3枚は、どの画面でも横に3枚並べる */
.tan-row { flex-direction: row !important; flex-wrap: nowrap; align-items: flex-start !important; gap: clamp(8px, 2.4vw, 32px) !important; max-width: 720px; }
.tan, .tan:nth-child(n) { flex: 1 1 0 !important; width: auto !important; max-width: 200px; min-width: 0; }
.tan p { font-size: clamp(.58rem, 1.9vw, .8rem); margin-top: 12px; letter-spacing: .02em; }
@media (max-width: 640px) {
  .tan:nth-child(1) .tan-card { transform: rotate(-4deg) translateY(6px); }
  .tan:nth-child(3) .tan-card { transform: rotate(4deg) translateY(6px); }
  .tan p br { display: none; }
}
.hs { background: #fbf7ee; border-radius: 18px; padding: 16px; }
.hs .chips { margin-top: 10px; }
.hs-count { margin: 16px 0 8px; }
.hs-count b { color: var(--beni); font-size: 1.2rem; }
.hs-list li { padding: 10px 16px; }
.mini[disabled] { opacity: .5; cursor: default; }

/* ════════ トップ：紅葉の枝に吊るした三枚の青短 ════════ */
.eda { position: relative; margin: 36px calc(50% - 50vw) 0; width: 100vw; }
.eda-svg { display: block; width: 100%; height: clamp(90px, 12vw, 150px); filter: drop-shadow(0 10px 10px rgba(5, 8, 20, .35)); }
.aotan-row { position: relative; display: flex; justify-content: center; gap: clamp(28px, 9vw, 130px); margin-top: calc(-1 * clamp(40px, 5.5vw, 70px)); padding: 0 12px; }
.aotan-item { display: flex; flex-direction: column; align-items: center; text-decoration: none; color: #fff; width: clamp(84px, 22vw, 170px); transform-origin: 50% 0; animation: yureru 6s ease-in-out infinite; }
.aotan-item:nth-child(2) { animation-delay: -2s; animation-duration: 7s; }
.aotan-item:nth-child(3) { animation-delay: -4s; animation-duration: 6.5s; }
@keyframes yureru { 0%, 100% { transform: rotate(-1.6deg); } 50% { transform: rotate(1.6deg); } }
.himo { width: 2px; height: clamp(26px, 4vw, 46px); background: linear-gradient(#2a1a12, #6b4a30); }
.aotan { position: relative; display: flex; justify-content: center; width: clamp(52px, 9vw, 86px); height: clamp(210px, 30vw, 330px); padding: clamp(16px, 2.4vw, 26px) 0 clamp(26px, 3.4vw, 40px);
  background: linear-gradient(170deg, #4a48a8 0%, #34338c 45%, #262472 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 92%, 0 100%);
  box-shadow: inset 0 0 0 2px rgba(15, 10, 50, .55); transition: filter .3s; }
.aotan::before { content: ""; position: absolute; inset: 5px 5px 14px; border: 1px solid rgba(220, 210, 255, .35); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 94%, 0 100%); pointer-events: none; }
.aotan::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 9px; background: rgba(15, 10, 50, .45); }
.aotan-t { writing-mode: vertical-rl; font-family: "Yuji Syuku", "Shippori Mincho", serif; font-weight: 700; color: #fdf8ec; letter-spacing: .12em; line-height: 1;
  font-size: clamp(1.15rem, 3vw, 2rem); text-shadow: 0 1px 0 rgba(0, 0, 0, .35); }
.aotan-item:nth-child(3) .aotan-t { font-size: clamp(.78rem, 1.75vw, 1.22rem); letter-spacing: .04em; }
.aotan-item:hover, .aotan-item:focus-visible { animation-play-state: paused; }
.aotan-item:hover .aotan, .aotan-item:focus-visible .aotan { filter: brightness(1.2) drop-shadow(0 0 12px rgba(240, 210, 126, .7)); }
.aotan-item:focus-visible { outline: none; }
.aotan-d { margin-top: 14px; text-align: center; font-size: clamp(.6rem, 1.6vw, .82rem); line-height: 1.8; color: rgba(255, 245, 238, .92); text-shadow: 0 1px 6px rgba(60, 10, 30, .5); }
@media (max-width: 520px) { .aotan-d br { display: none; } }
@media (prefers-reduced-motion: reduce) { .aotan-item { animation: none; } }
.hf-hero { overflow: hidden; }
@media (min-width: 521px) { .aotan-d { white-space: nowrap; } }

/* 青短（見本の色 #6e2178・ゆるく反った帯・下は斜めにまっすぐ） */
.aotan { background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20380%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M10%208%20C38%203%2066%203%2094%209%20C90%20120%2097%20250%2090%20356%20L8%20374%20C14%20252%204%20124%2010%208%20Z%22%20fill%3D%22%236e2178%22%20stroke%3D%22%2324081f%22%20stroke-width%3D%222.5%22%20stroke-linejoin%3D%22round%22/%3E%3Cpath%20d%3D%22M14%2014%20C38%2010%2062%2010%2088%2015%22%20fill%3D%22none%22%20stroke%3D%22%238a3a96%22%20stroke-width%3D%222%22%20opacity%3D%22.6%22/%3E%3C/svg%3E") center / 100% 100% no-repeat; clip-path: none; box-shadow: none; filter: drop-shadow(0 10px 12px rgba(30, 5, 20, .45)); }
.aotan::before, .aotan::after { content: none; }
.aotan-item:hover .aotan, .aotan-item:focus-visible .aotan { filter: brightness(1.18) drop-shadow(0 0 12px rgba(240, 210, 126, .7)); }

/* 青短：切れ目のない長方形の紙。和紙のすき目と金砂子、上の穴にひもを通す */
.aotan { background:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22120%22%20height%3D%22300%22%3E%3Crect%20x%3D%2274.7%22%20y%3D%22222.5%22%20width%3D%222.7%22%20height%3D%222.5%22%20transform%3D%22rotate%2883%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.92%22/%3E%3Crect%20x%3D%223.5%22%20y%3D%22139.7%22%20width%3D%223.1%22%20height%3D%222.0%22%20transform%3D%22rotate%2820%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.55%22/%3E%3Crect%20x%3D%2256.3%22%20y%3D%2274.0%22%20width%3D%222.2%22%20height%3D%221.9%22%20transform%3D%22rotate%281%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.83%22/%3E%3Crect%20x%3D%2249.0%22%20y%3D%2254.6%22%20width%3D%222.9%22%20height%3D%221.6%22%20transform%3D%22rotate%289%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.56%22/%3E%3Crect%20x%3D%2274.1%22%20y%3D%2238.0%22%20width%3D%221.0%22%20height%3D%222.4%22%20transform%3D%22rotate%2826%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.85%22/%3E%3Crect%20x%3D%22115.2%22%20y%3D%2249.8%22%20width%3D%221.4%22%20height%3D%221.5%22%20transform%3D%22rotate%2825%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.74%22/%3E%3Crect%20x%3D%2281.3%22%20y%3D%2261.4%22%20width%3D%223.1%22%20height%3D%222.1%22%20transform%3D%22rotate%2849%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.63%22/%3E%3Crect%20x%3D%2243.3%22%20y%3D%2249.8%22%20width%3D%221.3%22%20height%3D%221.1%22%20transform%3D%22rotate%2838%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.87%22/%3E%3Crect%20x%3D%2270.3%22%20y%3D%22178.8%22%20width%3D%222.6%22%20height%3D%221.1%22%20transform%3D%22rotate%2845%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.87%22/%3E%3Crect%20x%3D%2257.7%22%20y%3D%2294.7%22%20width%3D%222.1%22%20height%3D%222.1%22%20transform%3D%22rotate%287%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.62%22/%3E%3Crect%20x%3D%22112.7%22%20y%3D%22284.8%22%20width%3D%221.8%22%20height%3D%221.6%22%20transform%3D%22rotate%2870%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.85%22/%3E%3Crect%20x%3D%2243.9%22%20y%3D%22173.6%22%20width%3D%221.0%22%20height%3D%221.1%22%20transform%3D%22rotate%2823%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.78%22/%3E%3Crect%20x%3D%22114.5%22%20y%3D%2235.7%22%20width%3D%221.5%22%20height%3D%222.3%22%20transform%3D%22rotate%2859%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.65%22/%3E%3Crect%20x%3D%2242.6%22%20y%3D%22157.4%22%20width%3D%222.7%22%20height%3D%221.2%22%20transform%3D%22rotate%2847%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.89%22/%3E%3Crect%20x%3D%224.4%22%20y%3D%22283.7%22%20width%3D%221.2%22%20height%3D%221.5%22%20transform%3D%22rotate%2878%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.66%22/%3E%3Crect%20x%3D%2217.8%22%20y%3D%2282.7%22%20width%3D%222.5%22%20height%3D%221.1%22%20transform%3D%22rotate%2887%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.64%22/%3E%3Crect%20x%3D%2221.3%22%20y%3D%2223.5%22%20width%3D%221.3%22%20height%3D%222.1%22%20transform%3D%22rotate%2861%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.57%22/%3E%3Crect%20x%3D%225.8%22%20y%3D%22296.0%22%20width%3D%222.2%22%20height%3D%221.6%22%20transform%3D%22rotate%2830%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.83%22/%3E%3Crect%20x%3D%2241.3%22%20y%3D%2275.1%22%20width%3D%222.4%22%20height%3D%221.2%22%20transform%3D%22rotate%2881%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.51%22/%3E%3Crect%20x%3D%2259.2%22%20y%3D%22251.5%22%20width%3D%221.3%22%20height%3D%222.2%22%20transform%3D%22rotate%2816%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.78%22/%3E%3Crect%20x%3D%2294.6%22%20y%3D%2232.0%22%20width%3D%222.0%22%20height%3D%221.2%22%20transform%3D%22rotate%2853%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.63%22/%3E%3Crect%20x%3D%2254.4%22%20y%3D%22299.8%22%20width%3D%222.9%22%20height%3D%222.6%22%20transform%3D%22rotate%2858%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.93%22/%3E%3Crect%20x%3D%2282.7%22%20y%3D%2295.3%22%20width%3D%221.6%22%20height%3D%221.8%22%20transform%3D%22rotate%2818%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.55%22/%3E%3Crect%20x%3D%2298.6%22%20y%3D%22159.5%22%20width%3D%221.4%22%20height%3D%222.5%22%20transform%3D%22rotate%2843%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.58%22/%3E%3Crect%20x%3D%2259.0%22%20y%3D%22154.6%22%20width%3D%222.2%22%20height%3D%221.8%22%20transform%3D%22rotate%288%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.85%22/%3E%3Crect%20x%3D%2293.0%22%20y%3D%22208.4%22%20width%3D%222.5%22%20height%3D%222.2%22%20transform%3D%22rotate%2846%2060%20150%29%22%20fill%3D%22%23e9c66a%22%20opacity%3D%220.75%22/%3E%3C/svg%3E") center top / 100% auto repeat-y,
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22160%22%20height%3D%22160%22%3E%3Cfilter%20id%3D%22f%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.9%200.04%22%20numOctaves%3D%223%22%20seed%3D%227%22/%3E%3CfeColorMatrix%20values%3D%220%200%200%200%201%20%200%200%200%200%201%20%200%200%200%200%201%20%200%200%200%20.55%200%22/%3E%3C/filter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url%28%23f%29%22/%3E%3C/svg%3E") center / 160px 160px,
    linear-gradient(90deg, #5a1a63 0%, #742585 30%, #6e2178 70%, #561760 100%);
  background-blend-mode: normal, soft-light, normal;
  border-radius: 2px; clip-path: none;
  box-shadow: inset 0 0 0 1px rgba(10, 15, 35, .55), inset 0 0 18px rgba(10, 15, 35, .35), 0 12px 16px -8px rgba(5, 8, 20, .55);
  filter: none; padding-top: clamp(30px, 4vw, 44px); }
.aotan::before { content: ""; position: absolute; top: clamp(9px, 1.2vw, 13px); left: 50%; width: 7px; height: 7px; margin-left: -3.5px; border-radius: 50%;
  background: #3a2a22; box-shadow: inset 0 1px 2px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 240, 220, .25); border: 0; clip-path: none; inset: auto; }
.aotan::after { content: none; }
.himo { width: 2px; height: clamp(34px, 5vw, 56px); margin-bottom: calc(-1 * clamp(15px, 1.9vw, 19px)); position: relative; z-index: 1;
  background: linear-gradient(#2a1a12, #b8902f 60%, #d9b45a); }
.aotan-t { color: #fbf3e2; text-shadow: 0 0 1px rgba(255, 255, 255, .3), 0 1px 2px rgba(20, 0, 25, .55); }
.aotan-item:hover .aotan, .aotan-item:focus-visible .aotan { filter: brightness(1.15); box-shadow: inset 0 0 0 1px rgba(240, 210, 126, .8), inset 0 0 18px rgba(30, 5, 35, .3), 0 0 18px rgba(240, 210, 126, .55); }
.aotan-item { position: relative; }
.himo { position: absolute; top: 0; left: 50%; margin: 0 0 0 -1px; height: calc(clamp(34px, 5vw, 56px) + 14px); z-index: 2; }
.aotan { margin-top: clamp(34px, 5vw, 56px); }
.aotan::before { top: 10px; }

/* 作品目録：1行に1作品の横長カード（小説ページと同じ形） */
.wks { grid-template-columns: 1fr !important; max-width: 900px; margin: 0 auto; gap: 20px; }
.wk { grid-template-columns: 150px 1fr; gap: 26px; align-items: center; padding: 22px; border-radius: 26px; }
.wk-body h3 { font-size: 1.25rem; }
.wk-desc { font-size: .88rem; }
@media (max-width: 600px) { .wk { grid-template-columns: 100px 1fr; gap: 16px; padding: 16px; } .wk-body h3 { font-size: 1.05rem; } }
.cat-count { max-width: 900px; margin-left: auto; margin-right: auto; }
/* しかP（絵の差しかえ） */
.shikap-face { width: 60px; height: 60px; border-radius: 50%; overflow: hidden; background: #fffaf2; box-shadow: 0 0 0 2px #f0d27e, 0 6px 12px rgba(15, 23, 51, .25); filter: none; }
.shikap-face img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shikap-face.big { width: clamp(96px, 16vw, 150px); height: auto; border-radius: 0; overflow: visible; background: none; box-shadow: none; filter: drop-shadow(0 8px 10px rgba(15, 23, 51, .25)); }
.shikap-face.big img { height: auto; object-fit: contain; }
.karte-head .shikap { align-items: center; }

/* 鹿踊子とは：和紙の手紙 */
.tegami { position: relative; background: #fffdf8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8 .05' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .45 0 0 0 0 .35 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  border-radius: 6px; padding: clamp(28px, 5vw, 52px) clamp(22px, 6vw, 64px) clamp(70px, 8vw, 84px);
  box-shadow: 0 22px 44px -30px rgba(15, 23, 51, .55), inset 0 0 0 1px #efe2d0; font-family: var(--mincho); line-height: 2.25; letter-spacing: .05em; }
.tegami::before { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(201, 161, 74, .45); border-radius: 3px; pointer-events: none; }
.tegami p { margin: 0 0 1.3em; text-indent: 1em; }
.tegami:not(.open) > p:first-child { margin-bottom: 0; -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent); }
.tegami-sign { text-align: right; text-indent: 0 !important; color: var(--beni); letter-spacing: .3em; }
.tegami-btn { position: absolute; left: 50%; bottom: clamp(22px, 3vw, 30px); transform: translateX(-50%); font: inherit; font-family: var(--gothic); font-size: .9rem; letter-spacing: .12em;
  padding: 10px 30px; border-radius: 999px; border: 0; cursor: pointer; color: #fff; background: linear-gradient(135deg, #2a3566, #1a2246); box-shadow: 0 8px 18px -10px rgba(106, 42, 82, .8); }
.tegami-btn:hover { filter: brightness(1.1); }

/* ════════ 鹿踊子より：巻物 ════════ */
.maki { position: relative; max-width: 760px; margin: 0 auto; padding-bottom: 70px; }
.jiku { position: relative; z-index: 2; display: flex; align-items: center; margin: 0 -26px; height: 26px; }
.jiku-bo { flex: 1; height: 22px; border-radius: 11px;
  background: linear-gradient(#e8c98a 0%, #b8893d 35%, #7a5320 70%, #4a3010 100%);
  box-shadow: 0 6px 10px -4px rgba(40, 20, 5, .55); }
.jiku-hana { width: 22px; height: 30px; border-radius: 6px; background: radial-gradient(circle at 40% 35%, #6b4a30, #2a1a0e 70%); box-shadow: inset 0 0 0 2px #c9a14a; flex: none; }
.jiku-shita .jiku-bo { background-image: repeating-linear-gradient(90deg, rgba(255, 240, 200, .18) 0 3px, transparent 3px 28px), linear-gradient(#e8c98a 0%, #b8893d 35%, #7a5320 70%, #4a3010 100%); }
.maki.rolling .jiku-shita .jiku-bo { animation: korogaru .5s linear infinite; }
@keyframes korogaru { to { background-position: 28px 0, 0 0; } }
.maki-paper { position: relative; overflow: hidden; margin: -4px 0; transition: height 1.6s cubic-bezier(.45, .05, .25, 1);
  background: #fffaf0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8 .05' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .45 0 0 0 0 .35 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  box-shadow: inset 14px 0 18px -14px rgba(120, 80, 40, .35), inset -14px 0 18px -14px rgba(120, 80, 40, .35), 0 20px 40px -30px rgba(15, 23, 51, .5); }
.maki-paper::before, .maki-paper::after { content: ""; position: absolute; top: 0; bottom: 0; width: 18px; background: linear-gradient(90deg, #5a1f2e, #7a2a3e); opacity: .9; }
.maki-paper::before { left: 0; } .maki-paper::after { right: 0; }
.maki-in { padding: 34px clamp(40px, 7vw, 72px) 36px; font-family: var(--mincho); line-height: 2.25; letter-spacing: .05em; }
.maki-in p { margin: 0 0 1.3em; text-indent: 1em; }
.maki:not(.open):not(.rolling) .maki-in { -webkit-mask-image: linear-gradient(#000 45%, transparent 100%); mask-image: linear-gradient(#000 45%, transparent 100%); }
.maki-sign { text-align: right; text-indent: 0 !important; margin-top: 1.6em !important; }
.maki-sign::after { content: "鹿"; display: inline-grid; place-items: center; width: 34px; height: 34px; margin-left: 12px; vertical-align: middle; border-radius: 4px; border: 2px solid #2a3566; color: #2a3566; font-size: .9rem; transform: rotate(-6deg); }
/* ボタン：房のついた木札 */
.maki-btn { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  font: inherit; font-family: var(--mincho); font-size: 1rem; letter-spacing: .3em; color: #fbefd2; padding: 10px 26px 10px 20px; border: 0; border-radius: 4px;
  background: linear-gradient(#5a3a22, #3b2414); box-shadow: inset 0 0 0 1px #c9a14a, inset 0 0 0 4px #3b2414, inset 0 0 0 5px rgba(201, 161, 74, .6), 0 10px 18px -10px rgba(40, 20, 5, .7); transition: filter .25s, transform .25s; }
.maki-btn:hover { filter: brightness(1.15); transform: translateX(-50%) translateY(-2px); }
.maki-btn:focus-visible { outline: 3px solid #f0d27e; outline-offset: 3px; }
.maki-fusa { position: relative; width: 10px; height: 10px; border-radius: 50%; background: #2a3566; box-shadow: 0 0 0 2px #f0d27e; }
.maki-fusa::after { content: ""; position: absolute; left: 50%; top: 9px; width: 8px; height: 18px; margin-left: -4px; border-radius: 0 0 4px 4px;
  background: repeating-linear-gradient(90deg, #2a3566 0 1.5px, #a00a22 1.5px 3px); }
@media (prefers-reduced-motion: reduce) { .maki-paper { transition: none; } .maki.rolling .jiku-shita .jiku-bo { animation: none; } }
@media (max-width: 600px) { .jiku { margin: 0 -10px; } .maki-in { padding: 26px 30px; } }
.maki-sign::after { content: none; }
/* 目録：項目の左右にゆとりを */
.ov-in { gap: clamp(48px, 8vw, 110px); }
.menu-ov ul { gap: clamp(10px, 1.6vw, 22px); }
.menu-ov li a { padding: 22px clamp(18px, 2.4vw, 30px); gap: 20px; }
.menu-ov .en { letter-spacing: .35em; }
@media (max-width: 700px) { .menu-ov ul { gap: 0; } .menu-ov li a { padding: 16px 8px; } }
/* 目録：四角い枠を出さない。今のページ・選んだ項目は、文字の色と金の点で示す */
.menu-ov:focus { outline: none; }
.menu-ov li a, .menu-ov li a:hover, .menu-ov li a[aria-current] { background: none; }
.menu-ov li a { position: relative; outline: none; transition: color .25s; }
.menu-ov li a:hover .ja, .menu-ov li a:focus-visible .ja { color: #f3dc9a; }
.menu-ov li a[aria-current] .ja { color: #f3dc9a; }
.menu-ov li a::before { content: ""; position: absolute; top: 6px; left: 50%; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: #f0d27e; opacity: 0; transform: scale(.4); transition: opacity .25s, transform .25s; }
.menu-ov li a[aria-current]::before, .menu-ov li a:hover::before, .menu-ov li a:focus-visible::before { opacity: 1; transform: none; }
@media (max-width: 700px) { .menu-ov li a::before { top: 50%; left: -6px; margin: -3px 0 0; } }

/* 舞台脚本の作品ページ */
.wfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; margin: 0 0 70px; }
.wfacts div { background: #fff; border-radius: 22px; padding: 18px 22px; box-shadow: 0 14px 34px -26px rgba(15, 23, 51, .45); }
.wfacts dt { font-size: .8rem; color: var(--beni, #2a3566); letter-spacing: .14em; }
.wfacts dd { margin: 4px 0 0; font-family: var(--mincho); font-weight: 700; line-height: 1.6; }
.syn p { line-height: 2.15; }
.gender { margin-top: 26px; background: linear-gradient(135deg, #f7f1e3, #f4eee0); border-radius: 24px; padding: 22px 28px; }
.gender h3 { margin: 0 0 6px; font-size: 1.05rem; color: var(--beni, #2a3566); }
.gender p { margin: 0; }
.roles { margin: 0; display: grid; gap: 10px; }
.roles div { display: grid; grid-template-columns: 13em 1fr; gap: 6px 20px; background: #fff; border-radius: 18px; padding: 14px 22px; }
.roles dt { font-family: var(--mincho); font-weight: 700; }
.roles dd { margin: 0; font-size: .92rem; color: var(--sumi-2); }
@media (max-width: 640px) { .roles div { grid-template-columns: 1fr; } }
.daihon { background: #fffdf8; border-radius: 22px; padding: clamp(24px, 4vw, 44px); max-height: 78vh; overflow-y: auto; box-shadow: inset 0 0 0 1px #eadfca, 0 20px 40px -30px rgba(80, 50, 30, .45); font-family: var(--mincho); }
.daihon:focus-visible { outline: 2px solid var(--kin); }
.dh-title { text-align: center; font-size: 1.35rem; font-weight: 700; letter-spacing: .12em; margin: 0 0 28px; }
.dh-title small { display: block; font-size: .85rem; font-weight: 400; color: var(--sumi-2); margin-top: 4px; }
.dh-h { font-weight: 700; color: var(--shu); margin: 30px 0 12px; padding-bottom: 6px; border-bottom: 1px solid #eadfca; letter-spacing: .1em; }
.dh-t { margin: 10px 0 10px 4em; color: var(--sumi-2); font-size: .92rem; line-height: 1.9; }
.dh-s { display: grid; grid-template-columns: 5.5em 1fr; gap: 12px; margin: 8px 0; line-height: 1.95; }
.dh-s b { text-align: right; color: #2a3566; font-weight: 700; }
@media (max-width: 560px) { .dh-s { grid-template-columns: 1fr; gap: 0; } .dh-s b { text-align: left; } .dh-t { margin-left: 1em; } }
.dh-end { text-align: center; color: var(--kin); margin: 34px 0 0; letter-spacing: .2em; }
.enji { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; }
.enji li { background: linear-gradient(135deg, #f7f1e3, #f4eee0); border-radius: 24px; padding: 22px 24px; }
.enji b { font-family: var(--mincho); color: var(--beni, #2a3566); font-size: 1.05rem; }
.enji p { margin: 8px 0 0; line-height: 1.95; font-size: .93rem; }
.enji-sign { text-align: right; font-family: var(--mincho); margin: 14px 4px 0; }
.voices-wait { margin-top: 64px; text-align: center; border: 1px dashed var(--kin); border-radius: 24px; padding: 30px 26px; background: #fffdf8; }
.voices-wait h3 { margin: 0 0 8px; font-family: var(--mincho); }
.voices-wait p { margin: 0 auto 6px; max-width: 34em; }
.cards.feat { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
/* 青短は4本（小説・脚本・専属プロデューサー・脚本工房） */
.aotan-row { gap: clamp(10px, 4.5vw, 84px); }
.aotan-item { width: clamp(70px, 19vw, 160px); }
.aotan-item:nth-child(4) { animation-delay: -1s; animation-duration: 6.8s; }
@media (min-width: 521px) { .aotan-d { white-space: nowrap; font-size: clamp(.6rem, 1.15vw, .82rem); } }


/* ═════════ 星空テーマ（2026/11/3）：色は「紺・金・クリーム」の3つだけ
 * 背景は夜空。文章・表・入力欄はクリーム色のカードに載せて、読みやすく（ダークモードにはしない） ═════════ */
:root { --yoru: #0f1733; --kinari: #fbf7ee; --kinari-2: #f4eee0; --washi: #fffdf8; --shu: #8a6a2c; --beni: #2a3566; --ai: #2a3566; --kin: #c9a14a; --line: #e4d9c2; }
html { background: #0f1733; }
body { color: var(--sumi); background:
    radial-gradient(ellipse 80% 50% at 80% 0%, rgba(70, 90, 160, .35), transparent 70%),
    radial-gradient(ellipse 70% 60% at 0% 100%, rgba(60, 50, 120, .3), transparent 70%),
    linear-gradient(180deg, #0c1330 0%, #141d42 55%, #0f1733 100%) fixed; }
body::before { opacity: 1; background-image:
    radial-gradient(0.9px 0.9px at 32.4% 15.1%, rgba(255,246,220,0.53), transparent),
    radial-gradient(0.6px 0.6px at 53.6% 36.6%, rgba(255,246,220,0.70), transparent),
    radial-gradient(0.6px 0.6px at 3.7% 43.4%, rgba(255,246,220,0.54), transparent),
    radial-gradient(0.7px 0.7px at 42.5% 82.7%, rgba(255,246,220,0.59), transparent),
    radial-gradient(0.9px 0.9px at 62.7% 94.8%, rgba(255,246,220,0.66), transparent),
    radial-gradient(1.0px 1.0px at 97.6% 4.7%, rgba(255,246,220,0.62), transparent),
    radial-gradient(0.8px 0.8px at 14.4% 11.8%, rgba(255,246,220,0.83), transparent),
    radial-gradient(0.9px 0.9px at 18.1% 58.2%, rgba(255,246,220,0.65), transparent),
    radial-gradient(0.6px 0.6px at 54.8% 6.3%, rgba(255,246,220,0.58), transparent),
    radial-gradient(0.8px 0.8px at 68.0% 42.8%, rgba(255,246,220,0.73), transparent),
    radial-gradient(1.0px 1.0px at 45.3% 30.0%, rgba(255,246,220,0.78), transparent),
    radial-gradient(0.9px 0.9px at 24.4% 57.4%, rgba(255,246,220,0.85), transparent),
    radial-gradient(1.1px 1.1px at 72.9% 28.8%, rgba(255,246,220,0.55), transparent),
    radial-gradient(0.7px 0.7px at 41.8% 75.7%, rgba(255,246,220,0.70), transparent),
    radial-gradient(1.4px 1.4px at 3.9% 66.8%, rgba(255,246,220,0.83), transparent),
    radial-gradient(1.4px 1.4px at 87.5% 31.4%, rgba(255,246,220,0.84), transparent),
    radial-gradient(1.5px 1.5px at 58.0% 45.6%, rgba(255,246,220,0.98), transparent),
    radial-gradient(0.9px 0.9px at 47.4% 66.4%, rgba(255,246,220,0.88), transparent),
    radial-gradient(1.5px 1.5px at 64.7% 99.3%, rgba(255,246,220,0.71), transparent),
    radial-gradient(0.9px 0.9px at 38.6% 66.9%, rgba(255,246,220,0.78), transparent),
    radial-gradient(0.9px 0.9px at 16.8% 11.7%, rgba(255,246,220,0.91), transparent),
    radial-gradient(1.2px 1.2px at 12.9% 24.8%, rgba(255,246,220,0.95), transparent),
    radial-gradient(1.3px 1.3px at 8.1% 44.9%, rgba(255,246,220,0.95), transparent),
    radial-gradient(1.6px 1.6px at 81.9% 86.4%, rgba(255,246,220,0.88), transparent),
    radial-gradient(2.2px 2.2px at 35.9% 88.4%, rgba(255,246,220,0.83), transparent),
    radial-gradient(1.6px 1.6px at 17.6% 23.2%, rgba(255,246,220,0.90), transparent),
    radial-gradient(1.4px 1.4px at 58.9% 26.3%, rgba(255,246,220,0.88), transparent),
    radial-gradient(2.2px 2.2px at 36.9% 56.6%, rgba(255,246,220,0.94), transparent);
  background-size: 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 230px 230px, 410px 410px, 410px 410px, 410px 410px, 410px 410px, 410px 410px, 410px 410px, 410px 410px, 410px 410px, 410px 410px, 670px 670px, 670px 670px, 670px 670px, 670px 670px, 670px 670px; }
body::after { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0; background-image:
    radial-gradient(1.7px 1.7px at 51.5% 61.8%, rgba(255,246,220,0.91), transparent),
    radial-gradient(1.9px 1.9px at 90.0% 78.0%, rgba(255,246,220,0.98), transparent),
    radial-gradient(1.3px 1.3px at 39.2% 39.9%, rgba(255,246,220,0.96), transparent),
    radial-gradient(1.4px 1.4px at 6.2% 6.7%, rgba(255,246,220,0.92), transparent),
    radial-gradient(1.2px 1.2px at 34.0% 5.3%, rgba(255,246,220,0.92), transparent),
    radial-gradient(1.2px 1.2px at 10.1% 36.4%, rgba(255,246,220,0.99), transparent);
  background-size: 520px 520px, 520px 520px, 520px 520px, 520px 520px, 520px 520px, 520px 520px; animation: hoshi-mabataki 5s ease-in-out infinite alternate; }
@keyframes hoshi-mabataki { from { opacity: .15; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { body::after { animation: none; opacity: .6; } }

/* 見出しの帯・フッター・トップは、夜空をそのまま見せる */
.page-hero, .footer, .final, .work-hero, .about2, .section.alt, .wave { background: transparent !important; }
.hf-hero, html[data-season] .hf-hero { background: transparent !important; }
.hf-hero::before { opacity: .05; }
.hf-hero > .kumo-edge { display: none; }
.work-hero .bg { opacity: .22; }
.work-hero .bg::after { background: none; }
.page-hero { border-radius: 0 !important; box-shadow: none !important; }

/* 文章のかたまりは、クリーム色のカードに */
main .section > .wrap { background: var(--kinari); border-radius: 32px; padding: clamp(36px, 5vw, 64px) clamp(18px, 4vw, 56px); box-shadow: 0 30px 60px -36px rgba(0, 0, 0, .6), 0 0 0 1px rgba(201, 161, 74, .35); }
main .section { padding: 28px 0; }
main .section > .wrap.narrow { max-width: 900px; }
.subnav { background: transparent; }
.subnav a { color: rgba(251, 247, 238, .8); }

/* 紅・桃・藤の色を、金とクリームに */
.nv-box, .gender, .enji li, .cat-help, .kbi-steps li, .kb-opt, .kb-help { background: #f4eee0 !important; }
.wfacts div, .roles div, .card, .kanso li { box-shadow: 0 10px 24px -20px rgba(15, 23, 51, .5); }
.wfacts dt, .gender h3, .enji b, .nv-box h3 { color: var(--shu) !important; }
.dh-s b { color: var(--beni); }
.karte, .kb-panel { box-shadow: 0 30px 60px -36px rgba(0, 0, 0, .6), 0 0 0 1px rgba(201, 161, 74, .35); }

/* トップの花札・紅葉・青短は残して、色を少し落ち着かせる */
.hf-cards { filter: saturate(.75); }
.eda-svg { filter: saturate(.6) brightness(.9) drop-shadow(0 10px 10px rgba(0, 0, 0, .35)); }
.aotan { filter: saturate(.55) brightness(.85); }
.aotan-item:hover .aotan, .aotan-item:focus-visible .aotan { filter: saturate(.7) brightness(1.05); }

.sec-head h2::after {  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 74 14'%3E%3Cpath d='M0 7h26M48 7h26' stroke='%23c9a14a' stroke-width='1'/%3E%3Cg transform='translate(37 7)' fill='%23c9a14a'%3E%3Cellipse rx='2.4' ry='5.6'/%3E%3Cellipse rx='2.4' ry='5.6' transform='rotate(72)'/%3E%3Cellipse rx='2.4' ry='5.6' transform='rotate(144)'/%3E%3Cellipse rx='2.4' ry='5.6' transform='rotate(216)'/%3E%3Cellipse rx='2.4' ry='5.6' transform='rotate(288)'/%3E%3Ccircle r='2' fill='%23f3d58a'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat; } }
.card .num, .kb-num { background: linear-gradient(135deg, #e6c06a, #b0832e); color: #2a1d08; }
.card h3 { padding-right: 40px; }

/* 上演・観劇の感想（吹き出し） */
.vcs { margin-top: 56px; }
.vcs h3 { text-align: center; font-family: var(--mincho); letter-spacing: .14em; margin: 0 0 18px; }
.vc-two { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
@media (max-width: 680px) { .vc-two { grid-template-columns: 1fr; } }
.vc-k { margin: 0 0 8px; font-size: .82rem; font-weight: 700; color: var(--shu); letter-spacing: .12em; }
.vc { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.vc li { position: relative; background: #fff; border-radius: 18px; padding: 14px 18px; line-height: 1.85; font-size: .92rem; box-shadow: 0 10px 24px -20px rgba(15, 23, 51, .5); }
.vc li::before { content: ""; position: absolute; left: 22px; bottom: -7px; width: 14px; height: 14px; background: #fff; transform: rotate(45deg); }
.vc.aud li { background: #f4eee0; }
.vc.aud li::before { background: #f4eee0; left: auto; right: 22px; }
.vc-note { margin: 16px 0 0; font-size: .74rem; color: var(--sumi-2); text-align: center; }
.voices-wait { margin-top: 36px; }

/* カードの横幅を全ページでそろえる（脚本工房の作業画面だけは広いまま） */
main .section > .wrap, main .section > .wrap.narrow { max-width: 1000px; }
main .section > .wrap.kb-wrap { max-width: 1400px; }

.cards.feat .card h3 { padding-right: 0; }

/* 巻物：茶色 → 緑（深緑の軸・若竹色の表装・金の縁） */
.jiku-bo { background: linear-gradient(#cfe3c4 0%, #6f9a68 35%, #3d6440 70%, #22402a 100%); box-shadow: 0 6px 10px -4px rgba(5, 25, 10, .55); }
.jiku-shita .jiku-bo { background-image: repeating-linear-gradient(90deg, rgba(240, 255, 230, .18) 0 3px, transparent 3px 28px), linear-gradient(#cfe3c4 0%, #6f9a68 35%, #3d6440 70%, #22402a 100%); }
.jiku-hana { background: radial-gradient(circle at 40% 35%, #4e7a52, #16301c 70%); }
.maki-paper::before, .maki-paper::after { background: linear-gradient(90deg, #2f5a3a, #3f7650); }
.maki-btn { background: linear-gradient(#3f6e48, #24452c); box-shadow: inset 0 0 0 1px #c9a14a, inset 0 0 0 4px #24452c, inset 0 0 0 5px rgba(201, 161, 74, .6), 0 10px 18px -10px rgba(5, 25, 10, .7); }
.maki-fusa { background: #2f5a3a; }
.maki-fusa::after { background: repeating-linear-gradient(90deg, #2f5a3a 0 1.5px, #c9a14a 1.5px 3px); }
.vcs h3 small { font-size: .7em; letter-spacing: .05em; color: var(--sumi-2); margin-left: 4px; }
.author-photo { flex: none; width: clamp(150px, 22vw, 230px); background: radial-gradient(circle at 50% 55%, #fffaf0, #f1ead9 70%); border-radius: 50%; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; box-shadow: 0 0 0 3px #e6c06a; }
.author-photo img { width: 82%; height: auto; margin-top: 12%; }

/* ご相談・お問い合わせ */
.ct-k { margin: 0 0 8px; font-weight: 700; font-size: .9rem; }
.ct-kinds { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0 0 22px; }
@media (max-width: 640px) { .ct-kinds { grid-template-columns: 1fr 1fr; } }
.ct-kind input { position: absolute; opacity: 0; }
.ct-kind span { display: block; text-align: center; padding: 12px 6px; border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); cursor: pointer; font-weight: 700; font-size: .9rem; transition: background .2s, color .2s; }
.ct-kind.main span { font-size: 1rem; }
.ct-kind input:checked + span { background: #2a3566; color: #fbf7ee; box-shadow: inset 0 0 0 2px #c9a14a; }
.ct-kind input:focus-visible + span { outline: 2px solid #c9a14a; outline-offset: 2px; }
.ct-stage { border: 0; margin: 10px 0 6px; padding: 18px 18px 6px; background: #f4eee0; border-radius: 20px; }
.ct-stage legend { font-weight: 700; font-size: .88rem; padding: 0 6px; background: #f4eee0; border-radius: 8px; }

/* 作品ページの「上演プラン」（小さな一覧） */
.pmini { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 0 0 26px; }
.pm { position: relative; display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: var(--sumi); background: #fff; border-radius: 20px; padding: 18px 16px 16px; box-shadow: 0 10px 24px -20px rgba(15, 23, 51, .5), inset 0 0 0 1px var(--line); transition: transform .25s, box-shadow .25s; }
.pm:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -20px rgba(15, 23, 51, .6), inset 0 0 0 1px #c9a14a; }
.pm b { font-family: var(--mincho); font-size: .98rem; }
.pm-price { font-family: var(--mincho); font-weight: 700; font-size: 1.25rem; color: #2a3566; }
.pm-for { font-size: .76rem; color: var(--sumi-2); line-height: 1.6; }
.pm.reco { box-shadow: 0 16px 30px -20px rgba(15, 23, 51, .6), inset 0 0 0 2px #c9a14a; }
.pm-tag { position: absolute; top: -10px; right: 12px; background: linear-gradient(135deg, #e6c06a, #b0832e); color: #2a1d08; font-size: .68rem; font-weight: 700; border-radius: 999px; padding: 2px 10px; }
/* ご購入の流れ */
.buyflow { list-style: none; counter-reset: b; margin: 0 0 30px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
@media (max-width: 640px) { .buyflow { grid-template-columns: 1fr 1fr; } }
.buyflow li { counter-increment: b; text-align: center; background: #fff; border-radius: 18px; padding: 16px 10px; box-shadow: inset 0 0 0 1px var(--line); }
.buyflow li::before { content: counter(b); display: block; font-family: var(--mincho); font-weight: 800; font-size: 1.3rem; color: #b0832e; }
.buyflow b { display: block; font-family: var(--mincho); }
.buyflow small { display: block; font-size: .72rem; color: var(--sumi-2); margin-top: 2px; }
.pmini { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } .pm b { font-size: .9rem; line-height: 1.5; }

/* 基本の文字：「日本に、また新たな物語を。」と同じ しっぽり明朝（2026/11/4 本人の希望） */
:root { --gothic: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif; }
body, button, input, select, textarea { font-family: var(--mincho); }

/* フッター（2026/11/4 文字を減らした版） */
.footer .ft { max-width: 1000px; margin: 0 auto; text-align: center; }
.footer .ft .brand { display: inline-block; }
.ft-catch { font-family: var(--mincho); letter-spacing: .3em; color: rgba(251, 247, 238, .8); margin: 10px 0 22px; font-size: .9rem; }
.ft-nav { list-style: none; padding: 0; margin: 0 0 22px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 26px; columns: auto; }
.ft-nav a { color: rgba(251, 247, 238, .9); text-decoration: none; }
.ft-nav a:hover, .ft-legal a:hover { color: #f0d27e; }
.ft-legal { margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 0; font-size: .74rem; }
.ft-legal a { color: rgba(251, 247, 238, .6); text-decoration: none; padding: 0 12px; }
.ft-legal a + a { border-left: 1px solid rgba(201, 161, 74, .4); }
.footer .credit { font-size: .64rem; margin-top: 16px; }
/* 短冊：長い名前は字を小さく */
.aotan-item:nth-child(4) .aotan-t { font-size: clamp(.7rem, 1.5vw, 1.05rem); letter-spacing: .02em; }

/* 鹿踊子より：白い箱をやめて夜空に直接。巻物そのものを押して開け閉め */
main .section.about2 > .wrap { background: none; box-shadow: none; padding: 0 12px; }
.about2 { padding: 40px 0 80px !important; }
.maki { cursor: pointer; transition: transform .35s, filter .35s; }
.maki:hover { transform: translateY(-3px); filter: drop-shadow(0 0 18px rgba(240, 210, 126, .35)); }
.maki:hover .jiku-hana { box-shadow: inset 0 0 0 2px #f0d27e, 0 0 10px rgba(240, 210, 126, .7); }
.maki-h { font-family: var(--mincho); text-align: center; letter-spacing: .3em; font-size: clamp(1.3rem, 3vw, 1.7rem); margin: 0 0 1.2em; color: #2f5a3a; }
.maki-h::after { content: ""; display: block; width: 60px; height: 1px; margin: 12px auto 0; background: #c9a14a; }
.maki-btn { pointer-events: none; }
.maki:not(.open) .maki-fusa { animation: fusa-yure 2.4s ease-in-out infinite; }
@keyframes fusa-yure { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } }
@media (prefers-reduced-motion: reduce) { .maki:not(.open) .maki-fusa { animation: none; } }
.kf-sub { margin-top: 6px; font-size: .85em; }

/* 巻物の下に下がる「紐」（ひもとくボタンの代わり）：光って揺れて、引っぱりたくなる */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.maki { padding-bottom: 96px; }
.maki-himo { position: absolute; left: 50%; bottom: 6px; width: 44px; height: 92px; margin-left: -22px; padding: 0; border: 0; background: none; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; transform-origin: 50% 0; animation: himo-yure 3.2s ease-in-out infinite; }
.himo-cord { width: 3px; height: 46px; border-radius: 2px; background: repeating-linear-gradient(180deg, #f0d27e 0 4px, #c9a14a 4px 8px); box-shadow: 0 0 8px rgba(240, 210, 126, .8); }
.himo-knot { width: 14px; height: 14px; margin-top: -2px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff3c8, #e6c06a 45%, #a9822f); box-shadow: 0 0 12px rgba(240, 210, 126, .9); }
.himo-tassel { width: 16px; height: 26px; margin-top: -3px; border-radius: 3px 3px 8px 8px; background: repeating-linear-gradient(90deg, #f0d27e 0 2px, #c9a14a 2px 3.5px);
  -webkit-mask-image: linear-gradient(#000 60%, transparent); mask-image: linear-gradient(#000 60%, transparent); filter: drop-shadow(0 0 6px rgba(240, 210, 126, .8)); }
.maki:not(.open) .maki-himo .himo-knot, .maki:not(.open) .maki-himo .himo-cord { animation: himo-hikari 1.8s ease-in-out infinite; }
.maki:hover .maki-himo, .maki-himo:focus-visible { animation-play-state: paused; transform: translateY(8px); transition: transform .25s; }
.maki-himo:focus-visible { outline: 2px solid #f0d27e; outline-offset: 4px; border-radius: 8px; }
.maki.rolling .maki-himo { transform: translateY(14px); transition: transform .2s; }
.maki.open .maki-himo .himo-cord { height: 30px; }
@keyframes himo-yure { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes himo-hikari { 0%, 100% { box-shadow: 0 0 6px rgba(240, 210, 126, .55); filter: brightness(1); } 50% { box-shadow: 0 0 18px rgba(255, 230, 160, 1); filter: brightness(1.25); } }
@media (prefers-reduced-motion: reduce) { .maki-himo, .maki-himo span { animation: none !important; } }
.maki-himo { width: 56px; height: 104px; margin-left: -28px; }
.himo-cord { width: 4px; height: 50px; }
.himo-knot { width: 20px; height: 20px; }
.himo-tassel { width: 22px; height: 34px; }
/* 短冊の名前は短くしたので、4本とも同じ大きさに */
.aotan-item:nth-child(3) .aotan-t, .aotan-item:nth-child(4) .aotan-t { font-size: clamp(1.15rem, 3vw, 2rem); letter-spacing: .12em; }
.aotan-t { text-orientation: upright; }

/* 公演カルテ：入力欄の高さと位置をそろえる */
.kf { align-items: end; }
.kf > label, .kf-f { display: grid; grid-template-rows: auto 44px; gap: 4px; font-size: .8rem; font-weight: 700; color: var(--sumi-2); min-width: 0; }
.kf > label { white-space: nowrap; }
.kf input, .kf select { height: 44px; padding: 0 12px; box-sizing: border-box; }
.kf-k { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.kf-date { grid-template-rows: auto auto 44px; }
.kf-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.kf-seg label { display: block; }
.kf-seg input, .kf-days input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kf-seg span, .kf-days span { display: block; text-align: center; padding: 4px 0; border-radius: 999px; background: #f4eee0; font-weight: 700; font-size: .76rem; cursor: pointer; }
.kf-seg input:checked + span, .kf-days input:checked + span { background: #2a3566; color: #fbf7ee; }
.kf-wide { grid-column: span 2; }
.kf-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; align-items: center; }
.kf-days span { padding: 10px 0; font-size: .86rem; }
@media (max-width: 480px) { .kf-wide { grid-column: auto; } }
.kf-here { border: 0; background: none; padding: 0; font: inherit; font-size: .72rem; color: #2a3566; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.kt-file { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 4px 0 6px; }
.kt-file .btn { margin: 0; padding: 9px 20px; font-size: .88rem; }
.kt-open { cursor: pointer; }
.kt-last { font-size: .76rem; color: var(--sumi-2); }

/* 逆算：進みぐあい */
.yo-prog { display: flex; align-items: center; gap: 10px; margin: 14px 0 6px; font-size: .82rem; font-weight: 700; color: var(--sumi-2); }
.yo-bar { flex: 1; height: 10px; border-radius: 999px; background: #ece3cf; overflow: hidden; }
.yo-bar i { display: block; height: 100%; background: linear-gradient(90deg, #e6c06a, #b0832e); border-radius: 999px; }
.yo-list li { position: relative; }
.yo-st { display: inline-flex; gap: 2px; margin-top: 6px; background: #f4eee0; border-radius: 999px; padding: 2px; grid-column: 2; justify-self: start; }
.yo-st button { border: 0; background: none; border-radius: 999px; padding: 3px 12px; font: inherit; font-size: .74rem; font-weight: 700; color: var(--sumi-2); cursor: pointer; }
.yo-st button.on { background: #2a3566; color: #fbf7ee; }
.yo-list .tag.when { background: #eef0f7; color: #2a3566; }
.yo-list li.doing b::after { content: "途中"; margin-left: 8px; font-size: .7rem; color: #b0832e; }
.yo-done { margin: 14px 0 0; background: #f4eee0; border-radius: 16px; padding: 10px 16px; }
.yo-done summary { cursor: pointer; font-weight: 700; font-size: .88rem; }
.yo-done ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; }
.yo-done li { display: flex; justify-content: space-between; gap: 10px; font-size: .86rem; color: var(--sumi-2); text-decoration: line-through; }
.yo-done li button { text-decoration: none; border: 0; background: none; font: inherit; font-size: .74rem; color: #2a3566; cursor: pointer; }
/* 機材：マイクの本数 */
.kz-row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 12px; padding: 10px 14px; }
.kz-cnt { display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; white-space: nowrap; }
.kz-cnt input { width: 60px; padding: 6px 8px; border-radius: 10px; border: 1px solid #e4d9c2; font: inherit; text-align: right; }
/* 演目診断：ほかの作品 */
.sd-rank { list-style: none; padding: 0; margin: 6px 0 0; display: grid; gap: 6px; }
.sd-rank li { display: grid; grid-template-columns: 1fr 120px 3em; align-items: center; gap: 10px; font-size: .9rem; }
.sd-mini { height: 8px; border-radius: 999px; background: #ece3cf; overflow: hidden; }
.sd-mini i { display: block; width: var(--v); height: 100%; background: #2a3566; }
/* 上演料：作品の情報 */
.ryo-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin: 12px 0 16px; }
.ryo-info div { background: #fff; border-radius: 14px; padding: 10px 14px; box-shadow: inset 0 0 0 1px var(--line); }
.ryo-info dt { font-size: .72rem; color: var(--sumi-2); font-weight: 700; }
.ryo-info dd { margin: 2px 0 0; font-weight: 700; font-size: .9rem; }
.ryo-info small { display: block; font-size: .72rem; font-weight: 400; }
.ryo-info small.ok { color: #2f5a3a; } .ryo-info small.ng { color: #a0522d; }

/* 左上：鹿の角が生えた家（トップへ） */
.hd-home { pointer-events: auto; position: fixed; top: 16px; left: 18px; z-index: 60; width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; align-content: center; gap: 1px;
  background: rgba(15, 23, 51, .78); border: 1px solid rgba(201, 161, 74, .6); text-decoration: none; transition: transform .3s, border-color .3s; }
.hd-home svg { width: 32px; height: 30px; overflow: visible; }
.hd-home svg path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.hd-home .tsuno { stroke: #e6c06a; stroke-width: 2; }
.hd-home .ie { stroke: #fbf7ee; stroke-width: 2.6; }
.hd-home .to { stroke: #e6c06a; stroke-width: 2.2; }
.hd-home small { font-size: .5rem; letter-spacing: .2em; color: #e6c06a; padding-left: .2em; line-height: 1; }
.hd-home:hover, .hd-home:focus-visible { transform: rotate(-6deg); border-color: #f0d27e; outline: none; }
@media (max-width: 600px) { .hd-home { width: 54px; height: 54px; top: 12px; left: 12px; } .hd-home svg { width: 28px; height: 26px; } }

/* 余白を全体に詰めて、コンパクトに（2026/11/4） */
.page-hero { padding: 84px 0 18px; }
.page-hero .crumbs { padding-bottom: 10px; }
.work-hero .wrap { padding-top: 76px; padding-bottom: 40px; }
main .section { padding: 14px 0; }
main .section > .wrap { padding: clamp(24px, 3.4vw, 40px) clamp(16px, 3vw, 40px); }
.sec-head { margin-bottom: 24px; }
.kb-app { padding: 8px 0 40px; }
.karte { padding: 22px 26px 14px; }
.karte-head h2 { margin-bottom: 6px; }
.kb-tabs { margin: 16px 0 12px; }
.kb-bar { margin-top: 14px; }
.about2 { padding: 20px 0 50px !important; }
.hf-lead { padding-bottom: 40px; }
.footer { padding: 34px 20px 24px; }
.vcs { margin-top: 36px; }
.voices-wait { margin-top: 22px; padding: 20px; }
.work-hero .catch { margin: 14px 0 8px; }
.work-hero .cta { margin-top: 14px; }
.wfacts { margin-bottom: 28px; }
.syn p { line-height: 2; margin: 0 0 1em; }
.cards { gap: 14px; }
.hd-home .ie { stroke: #e6c06a; } .hd-home .to { stroke: #c9a14a; }
.hd-home svg { width: 36px; height: 34px; }

/* 作品ページ上部の表紙 */
.wh-cover { position: absolute; z-index: 1; right: max(24px, calc(50% - 560px)); top: 84px; width: clamp(150px, 20vw, 250px); height: auto; border-radius: 10px; box-shadow: 0 24px 40px -20px rgba(0, 0, 0, .7), 0 0 0 1px rgba(201, 161, 74, .5); transform: rotate(2deg); }
@media (max-width: 860px) { .wh-cover { position: static; display: block; margin: 0 auto 18px; transform: none; width: 46vw; } .work-hero { display: flex; flex-direction: column-reverse; } }

/* 文字だけの表紙（縦書き） */
.mcover { position: absolute; inset: 0; background: #f3ecda; display: flex; flex-direction: row-reverse; align-items: flex-start; justify-content: center; gap: 4cqw; padding: 13cqh 8cqw 10cqh; box-shadow: inset 0 0 0 3cqw #f3ecda, inset 0 0 0 calc(3cqw + 1px) #c9a14a, inset 0 0 0 calc(4.2cqw) #f3ecda, inset 0 0 0 calc(4.2cqw + 1px) rgba(201, 161, 74, .6); }
.mcover::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5.5cqh; background: var(--c); }
.mc-t { writing-mode: vertical-rl; font-family: var(--mincho); font-weight: 800; color: #2b2622; line-height: 1.35; letter-spacing: .08em; display: flex; flex-direction: column; gap: .1em; text-orientation: upright; }
.mc-t span { white-space: nowrap; }
.mc-t.l { font-size: 14cqw; } .mc-t.m { font-size: 10.5cqw; } .mc-t.s { font-size: 8.4cqw; }
.mc-sub { writing-mode: vertical-rl; font-family: var(--mincho); font-weight: 700; font-size: 6.4cqw; color: #4a4038; letter-spacing: .06em; margin-top: 18cqh; white-space: nowrap; }
.mc-a { position: absolute; left: 50%; bottom: 7cqh; transform: translateX(-50%); font-family: var(--mincho); font-size: 5cqw; letter-spacing: .4em; color: #5b524a; white-space: nowrap; }
.wh-cover { aspect-ratio: 3 / 4.2; overflow: hidden; }
.wh-cover .mcover { border-radius: 10px; }

.wk-cover, .wh-cover { container-type: size; }
.wh-cover { position: absolute; z-index: 1; right: max(24px, calc(50% - 560px)); top: 84px; width: clamp(150px, 20vw, 250px); height: auto; aspect-ratio: 3 / 4.2; border-radius: 10px; box-shadow: 0 24px 40px -20px rgba(0, 0, 0, .7); transform: rotate(2deg); }
@media (max-width: 860px) { .wh-cover { position: relative; right: auto; top: auto; margin: 0 auto 18px; transform: none; width: 46vw; } }
/* ページの終わりのボタン（枠なし・すっきり） */
.pg-end { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 26px 0 4px; }
.pg-end .btn { margin: 0; }
.vcs .vc { grid-template-columns: 1fr; }
.vcs .vc.aud li::before { left: 22px; right: auto; }

/* マウスカーソル：小さめの金の矢印。押せるところでは金の手のマーク */
html, body { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20d%3D%22M3%202%20L3%2022%20L8.5%2017%20L12.5%2026%20L16%2024.5%20L12%2015.8%20L19.5%2015.8%20Z%22%20fill%3D%22%23e6c06a%22%20stroke%3D%22%23141d42%22%20stroke-width%3D%222%22%20stroke-linejoin%3D%22round%22/%3E%3C/svg%3E") 2 1, auto; }
a, button, label, summary, select, [role="tab"], .maki, .chip, .wk-btn { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2222%22%20height%3D%2222%22%20viewBox%3D%220%200%2022%2022%22%3E%3Cpath%20d%3D%22M7%2013.2%20V3.5%20A1.5%201.5%200%200%201%2010%203.5%20V9%20V7.8%20A1.4%201.4%200%200%201%2012.8%207.8%20V9.5%20V8.6%20A1.4%201.4%200%200%201%2015.6%208.6%20V10%20V9.6%20A1.3%201.3%200%200%201%2018.2%209.6%20V14%20C18.2%2018%2015.7%2020.5%2012.2%2020.5%20H10.7%20C8.5%2020.5%207.1%2019.5%205.9%2017.7%20L3.2%2013.4%20A1.4%201.4%200%200%201%205.4%2011.7%20Z%22%20fill%3D%22%23f0d27e%22%20stroke%3D%22%23141d42%22%20stroke-width%3D%221.3%22%20stroke-linejoin%3D%22round%22/%3E%3Cpath%20d%3D%22M10%209%20V12.5%20M12.8%209.5%20V12.5%20M15.6%2010%20V12.5%22%20stroke%3D%22%23141d42%22%20stroke-width%3D%221%22%20stroke-linecap%3D%22round%22/%3E%3C/svg%3E") 8 2, pointer; }
input[type="text"], input[type="search"], input[type="email"], input[type="number"], input:not([type]), textarea { cursor: text; }
.mc-t.m2 { font-size: 12.4cqw; }
a.wk-cover { display: block; transition: transform .25s, box-shadow .25s; }
a.wk-cover:hover { transform: translateY(-3px); box-shadow: 0 12px 24px -14px rgba(15, 23, 51, .6); }
/* 性別が決まっている役：男性＝青、女性＝赤 */
.g-m { color: #2f5fae; font-weight: 700; }
.g-f { color: #c0392b; font-weight: 700; }
.roles dt.g-m, .roles dt.g-f { font-weight: 700; }
.g-key { margin-top: 6px !important; font-size: .76rem; color: var(--sumi-2); }
.kf-here[hidden] { display: none; }
.btn.off { background: #e8e1d0 !important; color: #8a8072 !important; box-shadow: none !important; cursor: default; pointer-events: none; }
.sales-note { text-align: center; background: #f4eee0; border-radius: 14px; padding: 10px 16px; font-size: .86rem; font-weight: 700; color: #6b5a3a; margin: 0 0 16px; }
.ct-wait { text-align: center; padding: 20px 10px; }
.ct-wait-t { font-family: var(--mincho); font-weight: 700; font-size: 1.15rem; margin: 0 0 6px; }
