
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --c:#f4f0e3;--cd:#ddd2b0;--cm:#bfad88;
  --n:#0d1420;--nm:#162035;
  --g:#7c5e0c;--gl:#a8801a;--gp:#c8a63c;
  --br:#5a3a14;
  --jp:'Noto Serif JP',serif;
  --en:'Cormorant Garamond',Georgia,serif;
}
html{scroll-behavior:smooth}
body{background:var(--n);color:var(--c);font-family:var(--jp);font-weight:300;overflow-x:hidden;}
a{color:inherit;text-decoration:none}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.06) 4px),
  repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(0,0,0,.06) 4px);opacity:.25;}

#hd{position:sticky;top:0;z-index:200;background:var(--n);border-bottom:2px solid var(--gp);padding:.55rem 1.8rem;display:flex;justify-content:space-between;align-items:center;}
.hd-brand{display:flex;align-items:center;gap:.8rem}
.hd-crest{display:grid;grid-template-columns:repeat(6,3px);grid-template-rows:repeat(6,3px);gap:1px;}
.p1{background:var(--gp)}.p0{background:transparent}
.hd-title{font-size:.9rem;letter-spacing:.35em;color:var(--gp);font-weight:300}
.hd-nav{display:flex}
.hd-nav a{font-family:var(--en);font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c);opacity:.85;padding:.35rem .8rem;border-left:1px solid rgba(200,166,60,.15);transition:all .15s;}
.hd-nav a:hover{opacity:1;color:var(--gp)}
.hd-btn{font-family:var(--en);font-size:.58rem;letter-spacing:.32em;text-transform:uppercase;background:var(--gp);color:var(--n);padding:.35rem 1rem;border:2px solid var(--gp);transition:all .15s;}
.hd-btn:hover{background:transparent;color:var(--gp)}

#map-sec{position:relative;z-index:1;background:var(--nm);border-bottom:2px solid var(--gp);}
.map-bar{background:var(--n);border-bottom:1px solid rgba(200,166,60,.2);padding:.5rem 1.5rem;display:flex;justify-content:space-between;align-items:center;}
.map-bar-l{display:flex;align-items:center;gap:.7rem;font-family:var(--en);font-size:.72rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gp);opacity:.95;}
.blink{width:6px;height:6px;background:var(--gp);animation:blink 1.2s step-end infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.map-bar-r{font-family:var(--en);font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gp);opacity:.65;}
.map-wrap{position:relative;max-width:980px;margin:0 auto;}
#mc{display:block;width:100%;cursor:crosshair;image-rendering:pixelated;image-rendering:crisp-edges;}
#tip{position:absolute;background:var(--n);border:1px solid var(--gp);border-left:3px solid var(--gp);padding:.4rem .85rem;font-family:var(--en);font-size:.65rem;letter-spacing:.1em;color:var(--gp);pointer-events:none;opacity:0;transition:opacity .15s;z-index:10;line-height:1.6;max-width:220px;}
#tip.show{opacity:1}
#tip .tn{font-size:.72rem;color:var(--c);display:block;margin-bottom:.15rem;}
#tip .td{font-size:.58rem;color:rgba(200,166,60,.6);display:block;}
.map-status{background:var(--n);border-top:1px solid rgba(200,166,60,.18);padding:.4rem 1.5rem;display:flex;gap:2rem;flex-wrap:wrap;align-items:center;}
.ms{display:flex;align-items:center;gap:.5rem;font-family:var(--en);font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gp);opacity:.6;}
.msv{color:var(--c);opacity:1;font-size:1.15rem;letter-spacing:.06em;font-weight:400;}
.msbar{width:44px;height:3px;background:rgba(200,166,60,.15);}
.msbar-f{height:100%;background:var(--gp);}

.panels{display:grid;grid-template-columns:repeat(3,1fr);background:var(--c);color:var(--n);border-bottom:1px solid var(--cd);}
.pcell{padding:1.8rem 2rem;border-right:1px solid var(--cd);position:relative;}
.pcell:last-child{border-right:none}
.pcell::before{content:'';position:absolute;top:0;left:0;width:7px;height:7px;border-top:2px solid var(--gp);border-left:2px solid var(--gp);}
.pcell::after{content:'';position:absolute;bottom:0;right:0;width:7px;height:7px;border-bottom:2px solid var(--gp);border-right:2px solid var(--gp);}
.p-ico{font-size:1.3rem;display:block;margin-bottom:.5rem}
.p-lbl{font-family:var(--en);font-size:.82rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(13,20,32,.5);display:block;margin-bottom:.3rem;}
.p-val{font-family:var(--en);font-size:2.4rem;color:var(--n);line-height:1;display:block;margin-bottom:.2rem;}
.p-sub{font-size:.88rem;letter-spacing:.05em;color:rgba(13,20,32,.6)}

.sec{position:relative;z-index:1;}
.sec.lt{background:var(--c);color:var(--n);}
.sec.md{background:#111a2a;color:var(--c);border-top:1px solid rgba(200,166,60,.15);border-bottom:1px solid rgba(200,166,60,.15);}
.sec.dk{background:var(--n);color:var(--c);border-top:2px solid var(--gp);}
.sw{max-width:900px;margin:0 auto;padding:3rem 2rem}
.sh{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.8rem;}
.stt{display:flex;align-items:center;gap:.65rem;}
.px3{width:10px;height:10px;display:inline-grid;grid-template-columns:repeat(3,1fr);gap:1px;flex-shrink:0;}
.qi{background:var(--g)}.qi0{background:transparent}
.sn{font-weight:300;font-size:1.1rem;letter-spacing:.22em;}
.sm{font-family:var(--en);font-size:.72rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gp);border-bottom:1px solid rgba(110,80,16,.3);padding-bottom:.05rem;transition:color .15s;}
.sm:hover{color:var(--gl)}.dk .sm{color:var(--c);border-color:rgba(244,240,227,.4);}

.nl{border-top:2px solid var(--cd);}
.ni{display:grid;grid-template-columns:78px 48px 1fr;gap:.9rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--cd);}
.nd{font-family:var(--en);font-size:.72rem;letter-spacing:.15em;color:var(--cm);}
.nt{font-family:var(--en);font-size:.46rem;letter-spacing:.25em;text-transform:uppercase;padding:.12rem .38rem;border:1px solid;text-align:center;}
.nt.ev{color:var(--g);border-color:rgba(110,80,16,.4)}.nt.nw{color:var(--n);border-color:var(--n)}.nt.in{color:var(--cm);border-color:var(--cd)}
.nb{font-size:.92rem;letter-spacing:.05em;line-height:1.7}.nb a:hover{color:var(--g)}

.qg{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1px;background:rgba(200,166,60,.08);margin-top:1.8rem;}
.qc{background:rgba(244,240,227,.06);border:1px solid rgba(200,166,60,.12);padding:1.3rem;position:relative;transition:background .15s;}
.qc:hover{background:rgba(200,166,60,.1);border-color:rgba(200,166,60,.3)}
.qnum{position:absolute;top:.6rem;left:.8rem;font-family:var(--en);font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gp);opacity:.32;}
.qst{position:absolute;top:.6rem;right:.7rem;display:flex;align-items:center;gap:.3rem;}
.qdot{width:4px;height:4px;background:var(--g);animation:blink 2s ease-in-out infinite}
.qstxt{font-family:var(--en);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--g);}
.qdate{display:flex;align-items:baseline;gap:.3rem;margin-top:1.1rem;margin-bottom:.6rem;}
.qmo{font-family:var(--en);font-size:.72rem;letter-spacing:.4em;text-transform:uppercase;color:var(--g);}
.qdy{font-family:var(--en);font-size:1.5rem;letter-spacing:.04em;color:var(--c);line-height:1;}
.qname{font-weight:400;font-size:.86rem;letter-spacing:.1em;margin-bottom:.35rem;color:var(--c);}
.qname a{color:var(--c);text-decoration:none;}
.qname a:hover{color:var(--gp);}
.qmeta{font-size:.78rem;letter-spacing:.04em;color:rgba(200,166,60,.5);line-height:1.8}

.rg{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1px;background:var(--cd);margin-top:1.8rem;}
.rc{background:var(--c);padding:1.3rem .9rem;text-align:center;transition:background .15s;}
.rc:hover{background:rgba(200,166,60,.06)}
.rsp{width:48px;height:48px;margin:0 auto .75rem;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:1px;}
.s1{background:var(--gp)}.s0{background:transparent}.sh_{background:var(--g)}.ss{background:#e8d4b8}
.rname{font-weight:400;font-size:.8rem;letter-spacing:.16em;color:var(--n);margin-bottom:.18rem}
.rrank{font-family:var(--en);font-size:.5rem;letter-spacing:.28em;text-transform:uppercase;color:var(--cm);}
.rc.vac{opacity:.28;border:1px dashed var(--cd);background:transparent}

.ekl{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1px;background:rgba(200,166,60,.1);margin-top:1.8rem;}
.ek{background:var(--n);padding:1.4rem;border-left:3px solid transparent;transition:all .15s;}
.ek:hover{background:rgba(200,166,60,.04);border-left-color:var(--gp)}.ek.rec{border-left-color:var(--gp);background:rgba(200,166,60,.03)}
.eico{font-size:1.1rem;display:block;margin-bottom:.6rem}.ejp{font-weight:400;font-size:.86rem;letter-spacing:.16em;color:var(--c);margin-bottom:.12rem}
.een{font-family:var(--en);font-size:.52rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gp);opacity:.75;display:block;margin-bottom:.85rem;}
.efl{list-style:none;font-size:.68rem;letter-spacing:.04em;color:rgba(200,166,60,.48);line-height:2.1}.efl li::before{content:'▸ ';font-size:.58rem}
.ecta{text-align:center;margin-top:2.8rem}
.ebtn{font-family:var(--en);font-size:.68rem;letter-spacing:.38em;text-transform:uppercase;background:var(--gp);color:var(--n);padding:.85rem 2.8rem;border:2px solid var(--gp);display:inline-block;transition:all .2s;}
.ebtn:hover{background:transparent;color:var(--gp)}

.bbody{font-weight:200;font-size:clamp(.86rem,1.8vw,1rem);letter-spacing:.1em;line-height:2.5;color:var(--br);max-width:540px;margin-bottom:2.2rem;}
.blinks{display:flex;gap:.7rem;flex-wrap:wrap}
.bbtn{font-family:var(--en);font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--n);border:1px solid rgba(12,19,34,.3);padding:.5rem 1.1rem;transition:all .2s;}
.bbtn:hover{background:var(--n);color:var(--gp);border-color:var(--n)}

#ft{position:relative;z-index:1;background:var(--n);border-top:2px solid var(--gp);padding:1.8rem 2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
.ftl{font-family:var(--en);font-size:.65rem;letter-spacing:.38em;text-transform:uppercase;color:rgba(200,166,60,.28);}
.ftr{display:flex;gap:1.4rem}.ftr a{font-family:var(--en);font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(200,166,60,.26);transition:color .2s;}
.ftr a:hover{color:var(--gp)}

.rv{opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s ease}
.rv.on{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}
@media(max-width:680px){
  #hd{flex-wrap:wrap;padding:.45rem 1rem;gap:.3rem;}
  .hd-brand{flex:0 0 auto;}
  .hd-title{font-size:.72rem;letter-spacing:.18em;}
  .hd-crest{grid-template-columns:repeat(6,2.5px);grid-template-rows:repeat(6,2.5px);}
  .hd-nav{order:3;flex:0 0 100%;overflow-x:auto;gap:0;-webkit-overflow-scrolling:touch;border-top:1px solid rgba(200,166,60,.15);padding-top:.3rem;}
  .hd-nav a{font-size:.62rem;letter-spacing:.18em;padding:.28rem .55rem;}
  .hd-btn{font-size:.55rem;letter-spacing:.2em;padding:.3rem .7rem;}
  .panels{grid-template-columns:1fr 1fr}.ni{grid-template-columns:1fr;gap:.2rem}.sw{padding:2rem 1.2rem}
}
@media(max-width:400px){.panels{grid-template-columns:1fr}}

/* ── HERO ────────────────────────────── */
#hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 560px;
  max-height: 860px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #04080e;
}

#hero-content {
  position: relative;
  z-index: 10;
  text-align: center;
  padding: 2rem;
  animation: heroFadeIn 2s ease both;
}

.hero-pre {
  font-family: var(--en);
  font-size: .75rem;
  letter-spacing: .5em;
  text-transform: uppercase;
  color: rgba(200,166,60,.6);
  margin-bottom: 1.8rem;
  animation: heroFadeIn 2s .3s ease both;
}

.hero-title {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  margin-bottom: 1.4rem;
}

.hero-title-jp {
  font-weight: 200;
  font-size: clamp(2.2rem, 7vw, 4.2rem);
  letter-spacing: .42em;
  color: var(--c);
  text-shadow:
    0 0 40px rgba(200,166,60,.6),
    0 0 80px rgba(200,166,60,.25);
  animation: heroGlow 3s 1s ease both;
  display: block;
}

.hero-title-en {
  font-family: var(--en);
  font-size: clamp(1rem, 2.5vw, 1.4rem);
  letter-spacing: .45em;
  color: rgba(200,166,60,.7);
  text-transform: uppercase;
  display: block;
  animation: heroFadeIn 2s .8s ease both;
}

.hero-catch {
  font-weight: 200;
  font-size: clamp(1.5rem, 3.5vw, 2rem);
  letter-spacing: .2em;
  color: rgba(200,166,60,.95);
  margin-bottom: 1.2rem;
  animation: heroFadeIn 2s 1.2s ease both;
}

.hero-decl {
  font-weight: 200;
  font-size: clamp(1rem, 2.2vw, 1.25rem);
  letter-spacing: .1em;
  line-height: 2.4;
  color: rgba(244,240,227,.8);
  margin-bottom: 2.8rem;
  animation: heroFadeIn 2s 1.6s ease both;
}

.hero-cta {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  animation: heroFadeIn 2s 2s ease both;
}

.btn-primary {
  font-family: var(--en);
  font-size: .72rem;
  letter-spacing: .38em;
  text-transform: uppercase;
  background: var(--gp);
  color: var(--n);
  padding: .9rem 2.4rem;
  border: 2px solid var(--gp);
  transition: all .2s;
  position: relative;
  overflow: hidden;
}
.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.15) 50%, transparent 100%);
  transform: translateX(-100%);
  transition: transform .4s;
}
.btn-primary:hover::before { transform: translateX(100%); }
.btn-primary:hover { background: #e6d080; border-color: #e6d080; }

.btn-secondary {
  font-family: var(--en);
  font-size: .72rem;
  letter-spacing: .38em;
  text-transform: uppercase;
  background: transparent;
  color: var(--gp);
  padding: .9rem 2.4rem;
  border: 2px solid rgba(200,166,60,.4);
  transition: all .2s;
}
.btn-secondary:hover { border-color: var(--gp); color: #e6d080; }

.hero-scroll {
  position: absolute;
  bottom: 1.8rem;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--en);
  font-size: .5rem;
  letter-spacing: .5em;
  text-transform: uppercase;
  color: rgba(200,166,60,.3);
  animation: heroScroll 2s 3s ease both, scrollBob 2s 4s ease-in-out infinite;
  z-index: 10;
}

@keyframes heroFadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: none; }
}
@keyframes heroGlow {
  from { opacity: 0; text-shadow: none; }
  to   { opacity: 1; text-shadow: 0 0 40px rgba(200,166,60,.6), 0 0 80px rgba(200,166,60,.25); }
}
@keyframes heroScroll {
  from { opacity: 0; } to { opacity: 1; }
}
@keyframes scrollBob {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%     { transform: translateX(-50%) translateY(5px); }
}

/* ── 月・星アニメ用（canvas自体の演出補助）── */
#hero-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

/* ── ヒーロープレテキストのブリンクドット ── */

/* ── CTAボタンの ▶ 点滅 ── */

  50%       { opacity: 1; }
}


/* ── サブページ共通 ────────────────────────── */
/* ── サブページ共通 ──────────────────────── */
.subpage-main { min-height: 100vh; padding-top: 0; }

.subpage-hero {
  min-height: 320px;
  display: flex; align-items: flex-end;
  background: var(--n);
  border-bottom: 2px solid var(--gp);
  padding: 6rem 2rem 2.5rem;
  position: relative;
  overflow: hidden;
}
.subpage-hero::before {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.06) 4px),
              repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(0,0,0,.06) 4px);
  opacity: .2;
}
.subpage-hero-inner { position: relative; z-index: 1; max-width: 900px; margin: 0 auto; width: 100%; }
.sub-pre { font-family: var(--en); font-size: .55rem; letter-spacing: .6em; text-transform: uppercase; color: rgba(200,166,60,.45); display: block; margin-bottom: 1rem; }
.sub-title { font-weight: 200; font-size: clamp(1.6rem,5vw,2.8rem); letter-spacing: .3em; color: var(--c); text-shadow: 0 0 30px rgba(200,166,60,.3); margin-bottom: .6rem; }
.sub-sub { font-weight: 200; font-size: .88rem; letter-spacing: .12em; color: rgba(200,166,60,.5); line-height: 2; }

.subpage-body { max-width: 900px; margin: 0 auto; padding: 3rem 2rem 5rem; }

/* フロー */
.flow-list { list-style: none; display: flex; flex-direction: column; gap: 1.2rem; margin-bottom: 2.5rem; }
.flow-item { display: flex; align-items: flex-start; gap: 1.2rem; padding: 1.2rem 1.5rem; background: var(--c); border-left: 3px solid var(--gp); }
.flow-num { font-family: var(--en); font-size: 1.4rem; letter-spacing: .06em; color: var(--gp); flex-shrink: 0; line-height: 1; }
.flow-item strong { display: block; font-weight: 400; font-size: .9rem; letter-spacing: .1em; color: var(--n); margin-bottom: .25rem; }
.flow-item p { font-size: .78rem; letter-spacing: .06em; color: var(--cm); margin: 0; }

/* ランク小カード */
.rank-cards-small { display: flex; gap: 1px; background: var(--cd); margin-bottom: 2.5rem; flex-wrap: wrap; }
.rcs { flex: 1; min-width: 140px; background: var(--c); padding: 1.2rem; text-align: center; position: relative; }
.rcs.rec { background: rgba(200,166,60,.06); border: 1px solid var(--gp); }
.rcs-ico { font-size: 1.3rem; display: block; margin-bottom: .4rem; }
.rcs-name { font-weight: 400; font-size: .88rem; letter-spacing: .12em; color: var(--n); margin-bottom: .15rem; }
.rcs-en { font-family: var(--en); font-size: .5rem; letter-spacing: .32em; text-transform: uppercase; color: var(--cm); display: block; }
.rcs-badge { font-family: var(--en); font-size: .42rem; letter-spacing: .3em; text-transform: uppercase; background: var(--gp); color: var(--n); padding: .18rem .5rem; position: absolute; top: .5rem; right: .5rem; }

/* フォーム */
.form-wrap { padding: 2rem 0; }
.jc-form { display: flex; flex-direction: column; gap: 1.4rem; }
.form-row { display: flex; flex-direction: column; gap: .4rem; }
.form-row label { font-size: .78rem; letter-spacing: .12em; color: var(--cm); }
.form-row .req { color: var(--gp); }
.form-row input, .form-row select, .form-row textarea {
  background: rgba(244,240,227,.06); border: 1px solid rgba(200,166,60,.2);
  color: var(--c); padding: .7rem 1rem; font-family: var(--jp); font-weight: 300;
  font-size: .88rem; letter-spacing: .06em; outline: none; transition: border-color .2s;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus { border-color: var(--gp); }
.form-row select option { background: var(--n); }
.form-submit { margin-top: .5rem; }
.entry-note { font-size: .72rem; letter-spacing: .06em; color: rgba(244,240,227,.3); line-height: 2.2; border-top: 1px solid rgba(200,166,60,.12); padding-top: 1.5rem; margin-top: 1rem; }

/* アーカイブ */
.archive-list { display: flex; flex-direction: column; }
.archive-item { display: grid; grid-template-columns: 90px 1fr auto auto; align-items: center; gap: .8rem; padding: .9rem 0; border-bottom: 1px solid var(--cd); }
.arc-date { font-family: var(--en); font-size: .58rem; letter-spacing: .15em; color: var(--cm); white-space: nowrap; }
.arc-title { font-size: .85rem; letter-spacing: .08em; color: var(--n); transition: color .15s; }
.arc-title:hover { color: var(--g); }
.arc-place { font-size: .65rem; letter-spacing: .06em; color: var(--cm); white-space: nowrap; }
.arc-tag { font-family: var(--en); font-size: .44rem; letter-spacing: .28em; text-transform: uppercase; color: var(--g); border: 1px solid rgba(110,80,16,.4); padding: .1rem .35rem; white-space: nowrap; }
.arc-years { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.arc-year-btn { font-family: var(--en); font-size: .54rem; letter-spacing: .3em; text-transform: uppercase; background: transparent; border: 1px solid var(--cd); color: var(--cm); padding: .35rem .8rem; cursor: pointer; transition: all .15s; }
.arc-year-btn.active, .arc-year-btn:hover { border-color: var(--gp); color: var(--gp); background: rgba(200,166,60,.05); }

/* About MVV */
.about-mvv { display: flex; flex-direction: column; gap: 0; margin-bottom: 3rem; }
.mvv-block { padding: 1.8rem 2rem; border-left: 3px solid var(--gp); margin-bottom: 1px; background: var(--c); }
.mvv-label { font-family: var(--en); font-size: .5rem; letter-spacing: .5em; text-transform: uppercase; color: var(--g); display: block; margin-bottom: .5rem; }
.mvv-text { font-weight: 400; font-size: 1.1rem; letter-spacing: .18em; color: var(--n); }
.mvv-values { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.mvv-values li { font-size: .85rem; letter-spacing: .1em; color: var(--n); padding-left: 1rem; position: relative; }
.mvv-values li::before { content: "▸ "; color: var(--g); position: absolute; left: 0; }

/* タブ */
.event-tabs { display: flex; gap: 0; margin-bottom: 0; border-bottom: 2px solid rgba(200,166,60,.2); }
.etab { font-family: var(--en); font-size: .58rem; letter-spacing: .35em; text-transform: uppercase; background: transparent; border: none; color: var(--cm); padding: .7rem 1.4rem; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all .15s; }
.etab.active { color: var(--gp); border-bottom-color: var(--gp); }

/* Prose */
.prose h2 { font-weight: 300; font-size: 1rem; letter-spacing: .2em; color: var(--n); margin: 2rem 0 .8rem; border-bottom: 1px solid var(--cd); padding-bottom: .4rem; }
.prose p { font-size: .88rem; letter-spacing: .06em; line-height: 2.2; color: var(--br); margin-bottom: 1rem; }
.prose ul { padding-left: 1.2rem; margin-bottom: 1rem; }
.prose ul li { font-size: .85rem; letter-spacing: .06em; line-height: 2; color: var(--br); }
.prose-date { font-family: var(--en); font-size: .58rem; letter-spacing: .2em; color: var(--cm); margin-bottom: 2rem; display: block; }

/* 共通 */
.sg-ttl { font-weight: 300; font-size: .95rem; letter-spacing: .22em; color: var(--n); margin-bottom: 1.4rem; padding-bottom: .5rem; border-bottom: 2px solid var(--cd); }
.back-link { font-family: var(--en); font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; }
.back-link a, .back-link { color: var(--cm); transition: color .15s; }
.back-link a:hover { color: var(--g); }
.event-cta, .res-cta { margin: 2.5rem 0; text-align: center; }
.event-body, .event-report, .about-history { font-size: .88rem; letter-spacing: .06em; line-height: 2.2; color: var(--br); margin-bottom: 2rem; }
.event-body p, .event-report p { margin-bottom: 1rem; }

/* CF7 上書き */
.wpcf7-form { display: flex; flex-direction: column; gap: 1.2rem; }
.wpcf7-form p { display: flex; flex-direction: column; gap: .4rem; margin: 0; }
.wpcf7-form label { font-size: .78rem; letter-spacing: .12em; color: var(--cm); }
.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form select,
.wpcf7-form textarea {
  background: rgba(244,240,227,.06); border: 1px solid rgba(200,166,60,.2);
  color: var(--c); padding: .7rem 1rem; font-family: var(--jp); font-weight: 300;
  font-size: .88rem; letter-spacing: .06em; outline: none; transition: border-color .2s; width: 100%;
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus { border-color: var(--gp); }
.wpcf7-form input[type=submit] {
  font-family: var(--en); font-size: .68rem; letter-spacing: .38em; text-transform: uppercase;
  background: var(--gp); color: var(--n); padding: .85rem 2.8rem;
  border: 2px solid var(--gp); cursor: pointer; transition: all .2s; align-self: flex-start;
}
.wpcf7-form input[type=submit]:hover { background: transparent; color: var(--gp); }


/* Googleフォーム */
.gform-wrap { margin-top: 1rem; background: rgba(244,240,227,.03); border: 1px solid rgba(200,166,60,.15); }
.gform-wrap iframe { display: block; min-height: 720px; }
.gform-link-fallback { padding: 2rem; text-align: center; background: rgba(244,240,227,.03); border: 1px solid rgba(200,166,60,.15); }
.gform-link-fallback p { font-size: .85rem; letter-spacing: .08em; color: var(--cm); margin-bottom: 1.5rem; }
.form-placeholder { font-size: .85rem; letter-spacing: .08em; color: rgba(200,166,60,.35); padding: 2rem; border: 1px dashed rgba(200,166,60,.2); text-align: center; }

/* SNS誘導 */
.entry-sns { margin-bottom: 3rem; }
.sns-desc { font-size: .82rem; letter-spacing: .08em; color: var(--cm); margin-bottom: 1.2rem; line-height: 2; }
.sns-btns { display: flex; gap: .8rem; flex-wrap: wrap; }
.sns-btn {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--en); font-size: .62rem; letter-spacing: .32em; text-transform: uppercase;
  padding: .75rem 1.6rem; border: 1px solid; transition: all .2s; text-decoration: none;
}
.sns-ig { color: #c8a63c; border-color: rgba(200,166,60,.4); }
.sns-ig:hover { background: rgba(200,166,60,.08); border-color: var(--gp); }
.sns-x  { color: var(--c); border-color: rgba(244,240,227,.2); }
.sns-x:hover { background: rgba(244,240,227,.06); border-color: rgba(244,240,227,.4); }

@media(max-width:600px) {
  .archive-item { grid-template-columns: 1fr; gap: .2rem; }
  .subpage-body { padding: 2rem 1.2rem 3rem; }
}
        