/* ============================================================
   生命讃歌 Hymn to Life — 専用スタイル（日本語・繁体字 共通）
   配色：深い宇宙青 / 温かいアイボリー / 落ち着いた金 / ワイン
   第3版指令準拠：黒一色廃止・可読性AA・固有名詞は .keep のみで保護
   ============================================================ */
:root{
  --navy-a:#07162F; --navy-b:#102B55; --navy-deep:#0a1c3a;
  --ivory:#F7F2E8; --ivory-2:#efe7da; --paper:#fffdf8;
  --gold:#C6A04A; --gold-2:#806019; --gold-soft:#d9be7e;
  --wine:#7c2e3a;
  --tx-dark:#E4DDCC;
  --nm-dark:#FFFFFF;
  --tx-iv:#394455;
  --nm-iv:#13233F;
  --line:rgba(198,160,74,.16);
  --serif:'Cormorant Garamond','Noto Serif JP','Noto Serif TC',serif;
  --serifja:'Noto Serif JP','Noto Serif TC',serif;
  --sans:'Inter','Noto Sans JP','Noto Sans TC',system-ui,sans-serif;
}
html[lang="zh-Hant"]{--serifja:'Noto Serif TC','Noto Serif JP',serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--navy-a);color:var(--tx-dark);font-family:var(--sans);line-height:1.85;
  -webkit-font-smoothing:antialiased;font-size:16px}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.keep{display:inline-block;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
.brk{overflow-wrap:anywhere;word-break:break-all}

.hnav{position:sticky;top:0;z-index:200;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px clamp(16px,4vw,44px);background:rgba(7,18,40,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hnav .brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:18px;color:#fff;letter-spacing:.08em}
.hnav .brand .logotype{font-family:var(--serifja);font-size:19px;letter-spacing:.12em;line-height:1;white-space:nowrap}
.hnav .links{display:flex;gap:clamp(10px,1.5vw,24px);flex-wrap:wrap}
.hnav .links a{font-size:13px;color:#cfc7b2;letter-spacing:.04em;padding:4px 2px}
.hnav .links a:hover,.hnav .links a:focus-visible{color:#fff}
.hlang{display:flex;gap:2px;border:1px solid rgba(198,160,74,.5);border-radius:999px;padding:3px}
.hlang a{font-size:12px;padding:6px 13px;border-radius:999px;color:#cfc7b2;min-height:32px;display:flex;align-items:center}
.hlang a.on{background:var(--gold);color:#0a1c3a;font-weight:700}
.navbtn{display:none;background:none;border:1px solid rgba(198,160,74,.5);border-radius:8px;color:#e9dfc6;
  width:44px;height:40px;cursor:pointer;font-size:18px;align-items:center;justify-content:center}
@media(max-width:820px){
  .hnav .links{position:fixed;inset:60px 0 auto 0;flex-direction:column;gap:0;background:var(--navy-b);
    border-bottom:1px solid var(--line);padding:8px 0;display:none}
  .hnav .links.open{display:flex}
  .hnav .links a{padding:14px clamp(16px,5vw,32px);font-size:15px;width:100%;border-top:1px solid rgba(255,255,255,.06)}
  .navbtn{display:flex}
}

.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(18px,5vw,48px)}
section{position:relative;padding:clamp(54px,8vw,100px) 0;overflow:hidden}
.s-blue{background:linear-gradient(160deg,var(--navy-a),var(--navy-b));color:var(--tx-dark)}
.s-blue h1,.s-blue h2,.s-blue h3,.s-blue h4{color:var(--nm-dark)}
.s-ivory{background:var(--ivory);color:var(--tx-iv)}
.s-ivory h1,.s-ivory h2,.s-ivory h3,.s-ivory h4{color:var(--nm-iv)}
.s-ivory .eye{color:var(--gold-2)}
.s-ivory .lead{color:var(--tx-iv)}
.s-blue::before,.s-ivory::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(1120px,88%);height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);opacity:.5}
.s-blue::after{content:"";position:absolute;top:0;left:0;right:0;height:190px;pointer-events:none;opacity:.10;
  background:repeating-conic-gradient(from 90deg at 50% -40px,var(--gold) 0deg .06deg,transparent .06deg 6deg)}
.eye{font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;margin-bottom:16px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0}
h2.sec{font-size:clamp(27px,3.8vw,46px);line-height:1.34;margin-bottom:10px;text-wrap:balance}
h1.big{font-size:clamp(30px,5vw,60px);line-height:1.25;margin-bottom:14px}
.lead{color:var(--tx-dark);line-height:1.95;max-width:70ch;font-size:16px}
.s-blue .lead{color:#cdd6e4}
.note-sm{font-size:12.5px;line-height:1.7;opacity:.85}

.hhero{background:radial-gradient(120% 130% at 50% -6%,#16305e 0%,#0a1c3a 52%,#06152f 100%);
  color:var(--tx-dark);text-align:center;padding:clamp(56px,9vw,96px) 0 clamp(40px,6vw,66px)}
.hhero .rays{position:absolute;inset:0 0 auto 0;height:60%;pointer-events:none;opacity:.14;
  background:repeating-conic-gradient(from 90deg at 50% -30px,var(--gold) 0 .05deg,transparent .05deg 5.2deg)}
.hhero .wrap{position:relative;z-index:2}
.hhero .tag{color:var(--gold-soft);letter-spacing:.3em;font-size:clamp(11px,1.4vw,15px);font-weight:600}
.hhero h1{font-family:var(--serif);font-weight:700;font-size:clamp(56px,13vw,144px);letter-spacing:.14em;line-height:1.02;margin:12px 0 2px;
  background:linear-gradient(180deg,#f2dfa6,#d9be7e 46%,#b0872f);-webkit-background-clip:text;background-clip:text;color:transparent}
.hhero .en{font-family:var(--serif);font-style:italic;letter-spacing:.26em;color:#e6d6ad;font-size:clamp(16px,2.4vw,30px)}
.hhero .rule{width:min(360px,64%);height:1px;margin:26px auto 22px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.hhero .sub{font-family:var(--serifja);font-size:clamp(17px,2.2vw,25px);color:#efe7d4;line-height:1.7;margin:0 0 8px}
.hhero .from{color:#aebbd2;font-size:clamp(13px,1.5vw,16px)}
.hhero .when{display:inline-flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;margin-top:28px;background:var(--ivory);
  color:#1b2740;border-radius:12px;padding:14px clamp(16px,3vw,30px);font-weight:700;font-size:clamp(14px,1.6vw,19px);
  box-shadow:0 18px 40px -22px rgba(0,0,0,.6)}
.hhero .when b{color:var(--gold-2)}
.hhero .when .sep{color:var(--gold);opacity:.6}

/* --- 公式ポスター：金線の額縁。原寸比率(31:43 = 1488:2064)を厳密に保持し、枠は画像にぴったり密着 --- */
.kv{max-width:500px;margin:34px auto 0}
.kv button.kvbtn{
  display:block;width:100%;padding:10px;margin:0;cursor:zoom-in;position:relative;line-height:0;
  background:linear-gradient(155deg,#16305e 0%,#0a1c3a 58%,#0e2247 100%);
  border:1px solid rgba(198,160,74,.92);border-radius:3px;
  box-shadow:0 26px 62px rgba(0,0,0,.55), inset 0 0 22px rgba(198,160,74,.10);
  -webkit-tap-highlight-color:transparent}
/* 内側の細い金線 */
.kv button.kvbtn::before{content:"";position:absolute;inset:4px;pointer-events:none;
  border:1px solid rgba(198,160,74,.42);border-radius:1px}
/* 四隅の飾り金具 */
.kv button.kvbtn::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold));
  background-repeat:no-repeat;
  background-size:15px 1px,1px 15px, 15px 1px,1px 15px, 15px 1px,1px 15px, 15px 1px,1px 15px;
  background-position:
    left 3px top 3px, left 3px top 3px,
    right 3px top 3px, right 3px top 3px,
    left 3px bottom 3px, left 3px bottom 3px,
    right 3px bottom 3px, right 3px bottom 3px;
  opacity:.9}
.kv button.kvbtn:hover{border-color:var(--gold-soft)}
.kv button.kvbtn:focus-visible{outline:3px solid var(--gold-soft);outline-offset:3px}
/* 画像本体：原寸比率を固定し、いかなる環境でも変形させない */
.kv img{display:block;width:100%;height:auto;aspect-ratio:31/43;object-fit:contain}
.kv .cap{color:#aebbd2;font-size:12px;margin-top:12px;text-align:center;line-height:1.6}
@media(max-width:480px){.kv{max-width:340px}.kv button.kvbtn{padding:8px}}
.lb{position:fixed;inset:0;background:rgba(4,10,24,.94);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px}
.lb.on{display:flex}
.lb img{max-width:96%;max-height:88%;width:auto;height:auto;object-fit:contain;border-radius:8px}
.lb .lbcap{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#e9dcbc;font-size:13px;padding:0 20px}
.lb .close{position:absolute;top:14px;right:16px;width:44px;height:44px;border-radius:50%;border:1px solid var(--gold-soft);
  background:rgba(0,0,0,.4);color:#fff;font-size:22px;cursor:pointer}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:1px;background:rgba(19,35,63,.12);
  border:1px solid rgba(19,35,63,.14);border-radius:14px;overflow:hidden;margin-top:30px}
.s-ivory .fact{background:var(--paper)}
.fact{padding:22px 20px}
.fact .k{font-size:11px;letter-spacing:.14em;color:var(--gold-2);text-transform:uppercase}
.fact .v{font-size:15px;margin-top:6px;line-height:1.65;color:var(--nm-iv);min-width:0;overflow-wrap:break-word}

.hymn-person-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:26px;margin-top:40px;align-items:stretch}
.hymn-person-card{display:flex;flex-direction:column;height:100%;background:var(--paper);border:1px solid rgba(19,35,63,.1);
  border-radius:14px;overflow:hidden;box-shadow:0 14px 34px -20px rgba(11,28,60,.45)}
.hymn-person-card .phbtn{display:block;width:100%;padding:0;margin:0;border:0;background:#eceae2;cursor:zoom-in;position:relative;line-height:0}
.hymn-person-card .ph{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 50%;background:#eceae2}
.hymn-person-card .phbtn::after{content:"⤢";position:absolute;right:8px;bottom:8px;width:28px;height:28px;border-radius:50%;
  background:rgba(7,22,47,.62);color:#f0e3c2;font-size:14px;line-height:28px;text-align:center;opacity:0;transition:opacity .18s}
.hymn-person-card .phbtn:hover::after,.hymn-person-card .phbtn:focus-visible::after{opacity:1}
.hymn-person-card .phbtn:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.hymn-person-card .body{display:flex;flex-direction:column;flex:1}
.hymn-person-card details.msg{margin-top:auto}
.hymn-person-card .body{padding:16px 18px 20px}
.hymn-person-card h3{font-family:var(--serifja);font-size:20px;color:var(--nm-iv);margin:0 0 3px;line-height:1.35}
.hymn-person-card .role{font-size:11px;letter-spacing:.12em;color:var(--gold-2);text-transform:uppercase;margin-bottom:9px}
.hymn-person-card .bio{font-size:15px;color:var(--tx-iv);line-height:1.75}
@media(max-width:480px){.hymn-person-card .bio{font-size:16px}}
details.msg{margin-top:12px;border-top:1px solid rgba(19,35,63,.12);padding-top:10px}
details.msg summary{cursor:pointer;color:var(--gold-2);font-size:13px;font-weight:600;list-style:none;min-height:32px;display:flex;align-items:center}
details.msg summary::-webkit-details-marker{display:none}
details.msg summary .lbl-close{display:none}
details.msg[open] summary .lbl-open{display:none}
details.msg[open] summary .lbl-close{display:inline}
details.msg .m{font-size:15px;color:var(--tx-iv);line-height:1.85;margin-top:8px}

.feat{display:grid;grid-template-columns:280px 1fr;gap:34px;align-items:center;margin-top:34px;
  border-top:1px solid rgba(19,35,63,.12);padding-top:34px}
.feat>picture{display:block;width:100%}
.feat>picture img,.feat>img{width:100%;height:auto;object-fit:contain;aspect-ratio:auto;border-radius:12px;
  box-shadow:0 16px 38px -20px rgba(11,28,60,.5)}
.feat h3{font-family:var(--serifja);font-size:23px;color:var(--nm-iv);margin:0 0 3px}
.feat .role{font-size:11px;letter-spacing:.12em;color:var(--gold-2);text-transform:uppercase;margin-bottom:10px}
.feat .bio{font-size:15px;color:var(--tx-iv);line-height:1.85}
@media(max-width:680px){.feat{grid-template-columns:1fr;gap:18px}.feat>img{max-width:320px}}

.duo2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:26px}
@media(max-width:680px){.duo2{grid-template-columns:1fr}}
.duo2 figure{margin:0}
.duo2 figure img{width:100%;height:auto;object-fit:contain;aspect-ratio:auto;border-radius:12px;box-shadow:0 14px 32px -18px rgba(11,28,60,.5)}
.duo2 figcaption{font-size:14px;color:var(--tx-iv);margin-top:10px;line-height:1.7}
.duo2 .txtonly{background:var(--paper);border:1px solid rgba(19,35,63,.1);border-radius:12px;padding:20px 22px;font-size:14px;color:var(--tx-iv);line-height:1.7}
.imgnote{font-size:12px;color:#6f695a;margin-top:8px}

.tk-banner{background:linear-gradient(90deg,rgba(198,160,74,.16),rgba(198,160,74,.05));border:1px solid rgba(198,160,74,.45);
  border-radius:12px;padding:16px 20px;margin-bottom:24px;font-weight:700;color:var(--nm-iv)}
.price-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}
@media(max-width:620px){.price-row{grid-template-columns:repeat(2,1fr)}}
.price{border:1px solid rgba(19,35,63,.14);border-radius:12px;padding:20px 12px;text-align:center;background:var(--paper)}
.price .s{font-size:12px;letter-spacing:.1em;color:var(--gold-2)}
.price .p{font-family:var(--serif);font-size:27px;margin:6px 0 0;color:var(--nm-iv)}
.sellers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}
@media(max-width:680px){.sellers{grid-template-columns:1fr}}
.seller{background:var(--paper);border:1px solid rgba(19,35,63,.12);border-radius:14px;padding:22px;text-align:center}
.seller .qr{width:132px;height:132px;background:#fff;border-radius:10px;padding:8px;margin:0 auto 12px;display:block;border:1px solid #eee}
.seller .nm{font-weight:700;margin-bottom:12px;color:var(--nm-iv)}
.buy{display:inline-block;width:100%;min-height:46px;border-radius:999px;padding:13px 18px;font-weight:700;font-size:15px;letter-spacing:.02em;transition:.2s}
.buy.pre{background:#e3ddcf;color:#8a8064;border:1px solid rgba(19,35,63,.14);cursor:not-allowed}
.buy.on{background:var(--gold);color:#0a1c3a}
.buy.on:hover{background:var(--gold-soft)}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:820px){.grid2{grid-template-columns:1fr}}
.box{background:var(--paper);border:1px solid rgba(19,35,63,.12);border-radius:14px;padding:clamp(22px,3vw,30px)}
.s-blue .box{background:rgba(255,255,255,.04);border-color:rgba(198,160,74,.22);color:var(--tx-dark)}
.s-blue .box h3{color:#fff}
.win{background:var(--paper);border:1px solid rgba(19,35,63,.12);border-radius:14px;padding:22px 24px}
.win h3{font-size:17px;color:var(--nm-iv);margin:0 0 6px}
.win .tgt{font-size:13px;color:var(--tx-iv);line-height:1.7;margin-bottom:12px}
.win a.tel,.win a.mail{display:inline-block;font-family:var(--serif);font-size:20px;color:var(--gold-2);margin:2px 0}
.win .hours{font-size:12px;color:#7c7a6c;margin-top:6px}
.mail{overflow-wrap:anywhere}
.form{display:flex;flex-direction:column;gap:16px;margin-top:8px}
.form .fld label{font-size:13px;color:var(--tx-iv);display:block;margin-bottom:6px;font-weight:600}
.s-blue .form .fld label{color:var(--tx-dark)}
.req{color:#b0424a}
.form input,.form select,.form textarea{width:100%;font-size:16px;font-family:inherit;color:var(--nm-iv);background:#fff;
  border:1px solid rgba(19,35,63,.25);border-radius:10px;padding:13px 14px;min-height:46px}
.form textarea{min-height:130px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.form .chk{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--tx-iv)}
.s-blue .form .chk{color:var(--tx-dark)}
.form .chk input{width:auto;min-height:auto;margin-top:4px}
.grid2f{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:620px){.grid2f{grid-template-columns:1fr}}
.hp{position:absolute;left:-9999px}
.btn-send{align-self:flex-start;background:var(--gold);color:#0a1c3a;border:0;border-radius:999px;padding:15px 36px;
  font-weight:700;letter-spacing:.04em;cursor:pointer;min-height:48px;font-size:15px}
.btn-send:hover{background:var(--gold-soft)}
.btn-line{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--gold-2);color:var(--gold-2);border-radius:999px;
  padding:12px 26px;font-size:14px;margin-top:10px;min-height:44px}
.s-blue .btn-line{border-color:var(--gold-soft);color:var(--gold-soft)}
.btn-line:hover{background:var(--gold);color:#0a1c3a;border-color:var(--gold)}
.err{display:none;background:#f7e7e5;border:1px solid #d8a8a4;border-radius:10px;padding:14px 16px;margin-bottom:16px;color:#7a2a26;font-size:14px}
.phone-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
@media(max-width:620px){.phone-grid{grid-template-columns:1fr}}
.phone{border:1px solid rgba(198,160,74,.3);border-radius:12px;padding:16px 18px;background:rgba(255,255,255,.03)}
.phone .pl{font-size:12px;color:var(--gold-soft)}
.phone .pv{font-family:var(--serif);font-size:20px;margin-top:5px;color:#fff}

.credits{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:28px}
.credits .k{font-size:11px;letter-spacing:.14em;color:var(--gold-soft);text-transform:uppercase}
.credits .v{font-size:15px;margin-top:5px;line-height:1.7;color:var(--tx-dark);min-width:0;overflow-wrap:break-word}
details.faq{border-bottom:1px solid rgba(19,35,63,.14);padding:16px 0}
details.faq summary{cursor:pointer;font-weight:600;color:var(--nm-iv);font-size:15.5px;list-style:none;min-height:32px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary:before{content:"＋ ";color:var(--gold-2)}
details.faq[open] summary:before{content:"− ";color:var(--gold-2)}
details.faq .a{color:var(--tx-iv);line-height:1.8;margin-top:10px;font-size:14.5px}
.foot{background:#061020;padding:48px 0 32px;border-top:1px solid var(--line);color:#9fb0c8;font-size:13px;text-align:center}
.foot a{color:#cfd8e6}
.foot .ft-title{font-family:var(--serif);font-size:18px;color:var(--gold-soft);margin-bottom:10px}
.anchor{scroll-margin-top:72px}
.story h3,.story .storyh2{font-family:var(--serifja);font-size:clamp(19px,2.4vw,26px);margin:38px 0 12px;color:var(--nm-dark)}
.hhero h1.big{font-size:clamp(26px,4.4vw,50px);line-height:1.38;letter-spacing:.02em;
  font-family:var(--serifja);font-weight:600;max-width:22ch;text-shadow:none;text-wrap:balance}
.hhero h1.storyh1{font-family:var(--serifja);font-weight:600;font-size:clamp(24px,4vw,40px);letter-spacing:.02em;
  line-height:1.5;margin:6px auto 16px;max-width:26ch;text-shadow:none}
.hhero .storylead{font-size:clamp(15px,2.3vw,21px);color:var(--gold-soft);letter-spacing:.04em;line-height:1.85;
  margin:0 auto 10px;max-width:40ch;text-wrap:balance}
.story p{line-height:2.05;margin:0 0 18px;font-size:16px}
.story .quote{font-family:var(--serif);font-size:clamp(20px,2.8vw,30px);color:var(--gold-soft);line-height:1.6;
  margin:28px 0;padding-left:20px;border-left:3px solid var(--gold)}
/* 発起人写真：比率は画像本来のもの（960×1440）に任せる。aspect-ratio を強制すると
   環境によって縦長に歪むため指定しない。width/height属性がレイアウトずれを防ぐ。 */
.story picture{display:block}
.story .side{display:block;width:100%;height:auto;max-width:440px;margin:8px auto 26px;
  border-radius:12px;box-shadow:0 20px 44px -22px rgba(0,0,0,.6)}
@media(max-width:560px){.story .side{max-width:min(100%,320px)}}

/* --- V4再: 固有名詞の分断防止・レスポンシブ --- */
.nb{white-space:nowrap}
.nbx{display:inline-block;white-space:nowrap}
@media(max-width:400px){.nb{white-space:normal;word-break:keep-all;overflow-wrap:normal}}
@media(max-width:560px){.hymn-person-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .hymn-person-card h3{font-size:18px}.hymn-person-card .body{padding:13px 13px 16px}}
@media(max-width:360px){.hymn-person-grid{grid-template-columns:1fr}}

/* ============================================================
   公演の主旨（マニフェスト）— 本公演の核心。埋もれさせない。
   ============================================================ */
.manifesto{position:relative;margin:52px auto 0;max-width:900px;padding:clamp(34px,5vw,58px) clamp(24px,4.5vw,54px);
  background:linear-gradient(158deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  border:1px solid rgba(198,160,74,.55);border-radius:6px;
  box-shadow:0 30px 70px -34px rgba(0,0,0,.75), inset 0 0 40px rgba(198,160,74,.07)}
.manifesto::before{content:"";position:absolute;inset:5px;border:1px solid rgba(198,160,74,.22);border-radius:3px;pointer-events:none}
/* 四隅の飾り */
.manifesto::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.85;
  background-image:
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold)),
    linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold));
  background-repeat:no-repeat;
  background-size:20px 1px,1px 20px, 20px 1px,1px 20px, 20px 1px,1px 20px, 20px 1px,1px 20px;
  background-position:
    left 4px top 4px, left 4px top 4px, right 4px top 4px, right 4px top 4px,
    left 4px bottom 4px, left 4px bottom 4px, right 4px bottom 4px, right 4px bottom 4px}

/* 冒頭の宣言 */
.manifesto .decl{font-family:var(--serifja);font-weight:600;text-align:center;
  font-size:clamp(20px,2.9vw,33px);line-height:1.75;letter-spacing:.02em;color:var(--gold-soft);
  margin:0 0 6px;text-wrap:balance}
.manifesto .decl em{font-style:normal;color:#fff}
.manifesto .rule{width:min(300px,60%);height:1px;margin:30px auto 28px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent)}

/* 「単なるコンサートではない」宣言 */
.manifesto .not{text-align:center;font-family:var(--serifja);font-size:clamp(17px,2.1vw,23px);
  line-height:1.8;color:#fff;margin:0 0 26px;text-wrap:balance}

/* 3つの行動 */
.manifesto .acts{display:grid;gap:14px;max-width:620px;margin:0 auto 30px;padding:0;list-style:none}
.manifesto .acts li{position:relative;padding:14px 18px 14px 52px;font-size:clamp(15px,1.7vw,17px);
  line-height:1.85;color:#e7ecf5;background:rgba(255,255,255,.045);
  border-left:2px solid var(--gold);border-radius:0 4px 4px 0}
.manifesto .acts li::before{content:"";position:absolute;left:22px;top:50%;transform:translateY(-50%);
  width:12px;height:1px;background:var(--gold-soft)}
.manifesto .acts b{color:#fff;font-weight:700}

/* 結び */
.manifesto .close{text-align:center;font-family:var(--serifja);font-size:clamp(16px,2vw,21px);
  line-height:1.9;color:var(--gold-soft);margin:0;padding-top:24px;
  border-top:1px solid rgba(198,160,74,.25);text-wrap:balance}
.manifesto .close b{color:#fff;font-weight:600}

@media(max-width:560px){
  .manifesto{margin-top:38px;border-radius:4px;padding:28px 18px}
  .manifesto .decl{font-size:19px;line-height:1.7}
  .manifesto .rule{margin:22px auto 20px}
  .manifesto .not{font-size:16px;margin-bottom:20px}
  .manifesto .acts{gap:10px;margin-bottom:22px}
  .manifesto .acts li{padding:12px 13px 12px 38px;font-size:15px;line-height:1.75}
  .manifesto .acts li::before{left:16px;width:9px}
  .manifesto .close{font-size:15.5px;padding-top:20px}
  .manifesto::after{background-size:14px 1px,1px 14px,14px 1px,1px 14px,14px 1px,1px 14px,14px 1px,1px 14px}
}
@media(max-width:380px){
  .manifesto{padding:24px 14px}
  .manifesto .decl{font-size:17.5px}
}
