:root{--deep:#070b16; --brass:#c9a227; --brass2:#e7c65a; --cream:#f4efe4;
      --dim:#9fb0cb; --line:rgba(201,162,39,.30)}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent}
html,body{margin:0; min-height:100%; background:var(--deep); color:var(--cream);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif}
h1,h2,h3,p,dd,dt,span,b{line-break:strict; word-break:auto-phrase; overflow-wrap:normal}
#bg{position:fixed; inset:0; background:url(assets/bg_tower.jpg) center/cover no-repeat; background-position:34% 44%}
#veil{position:fixed; inset:0;
  background:linear-gradient(180deg,rgba(7,11,22,.70) 0%,rgba(7,11,22,.34) 26%,
    rgba(7,11,22,.86) 58%,rgba(7,11,22,.97) 100%)}
main{position:relative; min-height:100dvh; display:flex; align-items:center; justify-content:center;
  padding:30px 20px calc(30px + env(safe-area-inset-bottom))}
.in{width:100%; max-width:780px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:18px}
.cat{font-size:12px; letter-spacing:.44em; text-indent:.44em; color:var(--brass); font-weight:700; text-shadow:0 2px 12px rgba(0,0,0,.9)}
#logo{width:min(88%,540px); filter:drop-shadow(0 6px 26px rgba(0,0,0,.8))}
.lead{margin:2px 0 4px; font-size:13.5px; line-height:2.05; color:#e2e9f5; text-shadow:0 2px 12px rgba(0,0,0,.95)}
.lead b{color:var(--brass2)}
.cards{display:flex; gap:14px; width:100%; flex-wrap:wrap; justify-content:center; margin-top:2px}
a.card{flex:1 1 260px; max-width:340px; text-decoration:none; color:var(--cream);
  background:rgba(10,16,30,.66); border:1px solid var(--line); border-radius:14px;
  padding:20px 20px 18px; backdrop-filter:blur(5px); text-align:left; display:block;
  transition:transform .18s ease, background .18s ease}
a.card:active{transform:translateY(1px); background:rgba(20,30,52,.85)}
a.card.main{background:linear-gradient(180deg,rgba(201,162,39,.24),rgba(10,16,30,.72)); border-color:var(--brass)}
a.card .n{font-size:11px; letter-spacing:.2em; color:var(--brass); font-weight:700}
a.card b{display:block; font-size:18px; margin:7px 0 6px; letter-spacing:.04em}
a.card span{display:block; font-size:12px; line-height:1.85; color:var(--dim)}
a.card .t{display:inline-block; margin-top:10px; font-size:11px; color:var(--brass2);
  border-bottom:1px solid var(--line); padding-bottom:2px}
.foot{margin-top:6px; font-size:11px; color:#7d8aa4; line-height:1.9}
.contact{margin-top:14px; padding-top:14px; width:100%; max-width:520px; border-top:1px solid rgba(201,162,39,.22)}
.contact .lbl{font-size:10.5px; letter-spacing:.22em; color:var(--brass)}
.contact .org{margin-top:6px; font-size:13px; color:#dfe6f2; letter-spacing:.04em}

/* この世界の言葉 */
.words{width:100%; max-width:640px; margin-top:8px; padding:20px 20px 6px;
  background:rgba(10,16,30,.6); border:1px solid var(--line); border-radius:14px; backdrop-filter:blur(5px); text-align:left}
.words h2{margin:0 0 14px; font-size:13px; letter-spacing:.2em; color:var(--brass); font-weight:700; text-align:center}
.words dl{margin:0}
.words dl > div{padding:11px 0; border-top:1px solid rgba(201,162,39,.16)}
.words dl > div:first-child{border-top:0}
.words dt{font-size:13.5px; letter-spacing:.06em; color:var(--brass2)}
.words dd{margin:5px 0 0; font-size:12px; line-height:1.9; color:var(--dim)}

/* 企画概要のページ */
.doc{width:100%; max-width:720px; text-align:left}
.doc .back{display:inline-block; margin-bottom:16px; font-size:11px; letter-spacing:.14em; color:var(--brass2); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:2px}
.doc h1{margin:0 0 6px; font-size:21px; letter-spacing:.08em; font-weight:700}
.doc .sub{margin:0 0 22px; font-size:12px; letter-spacing:.14em; color:var(--brass)}
.doc section{margin:0 0 22px; padding:18px 18px 14px; background:rgba(10,16,30,.62);
  border:1px solid var(--line); border-radius:14px; backdrop-filter:blur(5px)}
.doc h2{margin:0 0 10px; font-size:12px; letter-spacing:.2em; color:var(--brass); font-weight:700}
.doc p{margin:0 0 10px; font-size:13px; line-height:2.0; color:#e2e9f5}
.doc p:last-child{margin-bottom:0}
.doc ul{margin:0; padding-left:1.1em}
.doc li{font-size:13px; line-height:2.0; color:#e2e9f5; margin-bottom:6px}
.doc li b{color:var(--brass2)}
.doc .note{font-size:11.5px; color:var(--dim); line-height:1.95}
.doc .two{display:flex; gap:14px; flex-wrap:wrap}
.doc .two > div{flex:1 1 240px; padding:14px; border:1px solid rgba(201,162,39,.2); border-radius:10px; background:rgba(7,11,22,.45)}
.doc .two h3{margin:0 0 7px; font-size:13px; letter-spacing:.06em; color:var(--brass2)}
.doc .two p{font-size:12px; line-height:1.95; margin:0}
.doc .cta{display:inline-block; margin-top:4px; padding:13px 22px; border-radius:10px;
  background:linear-gradient(180deg,rgba(201,162,39,.26),rgba(10,16,30,.7)); border:1px solid var(--brass);
  color:var(--cream); text-decoration:none; font-size:14px; letter-spacing:.08em}

/* 用語説明ページ */
.words-doc .word{display:flex; gap:16px; align-items:flex-start; margin:0 0 18px; padding:16px;
  background:rgba(10,16,30,.62); border:1px solid var(--line); border-radius:14px; backdrop-filter:blur(5px)}
.words-doc .word img{width:38%; max-width:230px; height:auto; border-radius:10px; border:1px solid rgba(201,162,39,.24); flex:none}
.words-doc .w-body{flex:1; min-width:0}
.words-doc h2{margin:0 0 2px; font-size:16px; letter-spacing:.06em; color:var(--cream); font-weight:600}
.words-doc .w-en{margin:0 0 9px; font-size:10px; letter-spacing:.18em; color:var(--brass)}
.words-doc .word p:not(.w-en){margin:0; font-size:12.5px; line-height:1.95; color:#dbe3f0}
.words-doc .word b{color:var(--brass2)}
@media(max-width:520px){
  .words-doc .word{flex-direction:column; gap:12px}
  .words-doc .word img{width:100%; max-width:none}
}
