/* Página de obras. Sin fuentes web y sin estilos en línea: la CSP solo admite 'self'. */
:root{
  --navy:#1f2e5e; --gold:#dfac32; --cream:#faf7f0; --muted:#555c6e;
  --sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",Meiryo,system-ui,-apple-system,sans-serif;
  --serif:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Times New Roman",serif;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow-x:hidden}
body{
  background:var(--cream); color:var(--navy); font-family:var(--sans);
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding:max(28px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));
  -webkit-text-size-adjust:100%; -webkit-font-smoothing:antialiased;
}
main{position:relative; width:100%; max-width:560px; overflow:hidden}
.kamon{
  position:absolute; left:50%; top:50%; width:min(520px,100%); height:auto;
  transform:translate(-50%,-50%); opacity:.06; pointer-events:none; user-select:none;
}
.logo{position:relative; width:min(340px,82%); height:auto; margin:0 auto}
.place{
  position:relative; margin:18px 0 0; font-size:clamp(12px,3vw,14px);
  letter-spacing:.32em; color:var(--muted);
}
.rule{
  position:relative; width:84px; height:1px; border:0; margin:30px auto;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.soon{
  position:relative; margin:0; font-family:var(--serif); font-weight:700;
  font-size:clamp(30px,8vw,46px); letter-spacing:.2em; color:var(--navy);
}
.lines{position:relative; margin:18px 0 0; font-size:clamp(13px,3.4vw,15px); line-height:2; color:var(--muted)}
.lines span{display:block}
.contact{position:relative; list-style:none; margin:0; padding:0; line-height:2.2; font-size:clamp(13px,3.4vw,15px)}
.contact a{color:var(--navy); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:2px}
.contact a:hover{color:#2a3c73}
footer{
  position:relative; margin-top:34px; font-size:11px; letter-spacing:.2em; color:var(--muted); opacity:.75;
}
