/* TOP専用。既存ヒーローや下層ページのスタイルは変更しない。 */
#kws-opening {
  position:fixed; inset:0; z-index:2147483001;
  display:grid; place-items:center; overflow:hidden; isolation:isolate;
  background:#F0EAE0; color:#141210;
  padding:calc(32px + env(safe-area-inset-top)) 24px calc(60px + env(safe-area-inset-bottom));
  opacity:1; transition:opacity .45s ease,visibility .45s;
  font-family:'Work Sans',system-ui,sans-serif;
}
#kws-opening.kws-opening--leaving { opacity:0; visibility:hidden; pointer-events:none; }
#kws-opening::before {
  content:""; position:absolute; inset:-20%; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse at 75% 25%,rgba(196,123,30,.10),transparent 50%),radial-gradient(ellipse at 15% 80%,rgba(196,123,30,.07),transparent 50%);
  animation:kwsOpeningLight 5s ease-in-out both;
}
#kws-opening .kws-opening__rings { position:absolute; inset:0; z-index:-1; pointer-events:none; display:grid; place-items:center; }
#kws-opening .kws-opening__ring {
  position:absolute; width:min(72vw,760px); aspect-ratio:1; border:1px solid rgba(196,123,30,.15); border-radius:50%;
  animation:kwsOpeningRing 2.8s ease-out both;
}
#kws-opening .kws-opening__ring:nth-child(2) { width:min(82vw,870px); opacity:.65; animation-delay:.12s; }
#kws-opening .kws-opening__ring:nth-child(3) { width:min(92vw,980px); opacity:.4; animation-delay:.24s; }
#kws-opening .kws-opening__content { position:relative; width:100%; max-width:1080px; min-height:300px; display:grid; place-items:center; text-align:center; }
#kws-opening .kws-opening__message { grid-area:1/1; width:100%; animation:kwsOpeningMessageOut .45s ease 2.35s both; }
#kws-opening .kws-opening__line { display:block; font-family:'DM Serif Display',Georgia,serif; font-weight:700; font-size:clamp(30px,4.4vw,60px); line-height:1.55; letter-spacing:.03em; animation:kwsOpeningText .8s ease .12s both; }
#kws-opening .kws-opening__line--amber { color:#C47B1E; margin-top:8px; animation-delay:.7s; }
#kws-opening .kws-opening__rule { width:200px; height:1px; margin:26px auto 20px; background:#C47B1E; transform-origin:center; animation:kwsOpeningRule .65s ease 1.25s both; }
#kws-opening .kws-opening__sub { font-size:clamp(13px,1.7vw,20px); line-height:1.9; animation:kwsOpeningText .65s ease 1.55s both; }
#kws-opening .kws-opening__brand { grid-area:1/1; width:100%; animation:kwsOpeningText .65s ease 2.45s both; }
#kws-opening .kws-opening__brand::before { content:""; display:block; width:60px; height:2px; background:#C47B1E; margin:0 auto 28px; }
#kws-opening .kws-opening__name { font-family:'DM Serif Display',Georgia,serif; font-weight:700; font-size:clamp(23px,3.4vw,44px); line-height:1.6; }
#kws-opening .kws-opening__tagline { font-size:clamp(12px,1.5vw,19px); color:#C47B1E; margin-top:20px; line-height:1.8; }
#kws-opening .kws-opening__skip { position:absolute; right:max(24px,env(safe-area-inset-right)); bottom:calc(24px + env(safe-area-inset-bottom)); border:0; border-bottom:1px solid rgba(20,18,16,.35); background:transparent; color:#141210; padding:12px 4px; min-height:44px; cursor:pointer; font:inherit; font-size:12px; }
#kws-opening .kws-opening__skip:focus-visible { outline:2px solid #C47B1E; outline-offset:5px; }
@keyframes kwsOpeningText { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes kwsOpeningRule { from { opacity:0; transform:scaleX(0); } to { opacity:1; transform:scaleX(1); } }
@keyframes kwsOpeningMessageOut { to { opacity:0; transform:translateY(-6px); } }
@keyframes kwsOpeningRing { from { opacity:0; transform:scale(.94) rotate(-4deg); } to { transform:scale(1) rotate(0); } }
@keyframes kwsOpeningLight { from { opacity:0; transform:translateX(-2%); } 40%,100% { opacity:1; transform:translateX(1%); } }
@media(max-width:767px) {
  #kws-opening { padding-inline:20px; }
  #kws-opening .kws-opening__content { min-height:240px; }
  #kws-opening .kws-opening__line { font-size:clamp(24px,6.4vw,40px); letter-spacing:0; }
  #kws-opening .kws-opening__line--amber { margin-top:16px; }
  #kws-opening .kws-opening__rule { width:130px; margin-block:24px 18px; }
  #kws-opening .kws-opening__ring { width:105vw; }
  #kws-opening .kws-opening__ring:nth-child(2) { width:125vw; }
  #kws-opening .kws-opening__ring:nth-child(3) { width:145vw; }
}
@media(prefers-reduced-motion:reduce) { #kws-opening { display:none; } #kws-opening,#kws-opening * { animation:none!important; transition:none!important; } }
@media print { #kws-opening { display:none; } }
