@charset "UTF-8";
/* =====================================================
   GP 15th Anniversary LP — v4 "SHOWTIME"
   ・FV：ネオン街オープニング＋WebGL街並み
   ・THE CAST（スタッフ58名）
   ・BLUEPRINT（会場レイアウト）
   ・全体の演出言語（ネオン／マーキー電球）
   既存 style.css を変更せず、本ファイルで上書きする
===================================================== */
:root{
  --neon-core:#fff6ea;
  --neon-mid:#ffcf96;
  --bulb:#ffe2a8;
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* -----------------------------------------------------
   0. 共通ユーティリティ
----------------------------------------------------- */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* -----------------------------------------------------
   1. OPENING「SHOWTIME」オーバーレイ
----------------------------------------------------- */
#showtime{
  position:fixed;inset:0;z-index:9999;
  display:none;overflow:hidden;
  background:#050505;
  contain:layout paint size;
}
html.st-run #showtime{display:block}
#showtime.is-through{pointer-events:none}
#stBulbs{position:absolute;inset:0;width:100%;height:100%}

.st-neon{
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);
  text-align:center;white-space:nowrap;
  will-change:transform,opacity;
}
.st-kicker{
  font-family:var(--cond);font-weight:300;
  font-size:clamp(10px,1vw,12px);letter-spacing:.62em;text-indent:.62em;
  color:rgba(245,245,242,.72);
  margin-bottom:2.2em;opacity:0;
}
.st-line1{
  font-family:var(--cond);font-weight:500;
  font-size:clamp(34px,6.6vw,108px);
  letter-spacing:.07em;line-height:1;
}
.nl{position:relative;display:inline-block;color:rgba(255,236,214,.075)}
.nl i{
  position:absolute;left:0;top:0;
  font-style:normal;color:var(--neon-core);
  opacity:0;
  text-shadow:
    0 0 2px #fff,
    0 0 8px var(--neon-mid),
    0 0 18px #ff9a3d,
    0 0 40px var(--orange),
    0 0 84px rgba(238,123,35,.55);
}
.st-line2{
  position:relative;display:inline-block;
  margin-top:.62em;padding:.38em 1.2em .4em;
  font-family:var(--cond);font-weight:500;
  font-size:clamp(15px,2.2vw,34px);
  letter-spacing:.72em;text-indent:.72em;line-height:1;
}
.st-tube{
  position:absolute;inset:0;border-radius:999px;
  border:2px solid rgba(255,236,214,.075);
}
.st-tube i{
  position:absolute;inset:-2px;border-radius:999px;
  border:2px solid #fff3e6;opacity:0;
  box-shadow:0 0 6px var(--neon-mid),0 0 18px var(--orange),0 0 38px rgba(238,123,35,.5),inset 0 0 10px rgba(238,123,35,.6);
}

.st-skip{
  position:absolute;right:clamp(16px,2.4vw,34px);bottom:clamp(16px,3vh,30px);
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background:rgba(10,10,10,.4);border:1px solid rgba(245,245,242,.24);
  color:rgba(245,245,242,.78);
  font-family:var(--cond);font-weight:500;font-size:11px;letter-spacing:.32em;text-indent:.32em;
  padding:9px 16px;opacity:0;pointer-events:none;
  transition:opacity .5s ease,border-color .3s,color .3s;
}
.st-skip.is-on{opacity:1;pointer-events:auto}
.st-skip:hover,.st-skip:focus-visible{border-color:var(--orange);color:#fff;outline:none}

/* ロゴ着地の光（アナモルフィック・フレア＋光の輪） */
.st-flare,.st-burst{position:absolute;left:0;top:0;pointer-events:none;opacity:0;will-change:transform,opacity}
.st-flare{
  width:150vw;height:2px;margin-left:-75vw;margin-top:-1px;
  background:linear-gradient(90deg,transparent 0%,rgba(255,170,90,.0) 8%,rgba(255,190,120,.55) 34%,#fff 50%,rgba(255,190,120,.55) 66%,rgba(255,170,90,0) 92%,transparent 100%);
  box-shadow:0 0 18px 4px rgba(255,170,90,.55),0 0 60px 10px rgba(238,123,35,.35);
  mix-blend-mode:screen;
}
.st-burst{
  width:70vmin;height:70vmin;margin:-35vmin 0 0 -35vmin;border-radius:50%;
  background:radial-gradient(circle,rgba(255,240,215,.75) 0%,rgba(255,170,90,.35) 22%,rgba(238,123,35,.12) 46%,transparent 68%);
  mix-blend-mode:screen;
}

/* JSが読めなかった場合の保険：8秒で必ず本編を見せる */
html.st-run:not(.st-js) #showtime{animation:stFailsafeHide 0s linear 9s forwards}
@keyframes stFailsafeHide{to{opacity:0;visibility:hidden;pointer-events:none}}

/* -----------------------------------------------------
   2. FV（ネオン街）
----------------------------------------------------- */
.bg-hero{background:#050505}
.bg-hero .hb,.bg-hero .h-glow{display:none}
#heroGL,.hero-still{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-still{
  object-fit:cover;object-position:0% 62%;
  transform:scale(1.12);transform-origin:0% 62%;
  filter:saturate(1.06) contrast(1.06) brightness(.92);
}
html.gl-on .hero-still{visibility:hidden}
html:not(.gl-on) #heroGL{display:none}
.hero-veil{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(5,5,5,.94) 0%,rgba(5,5,5,.86) 24%,rgba(5,5,5,.56) 44%,rgba(5,5,5,.12) 60%,rgba(5,5,5,0) 70%),
    linear-gradient(0deg,rgba(5,5,5,.9) 0%,rgba(5,5,5,0) 32%),
    linear-gradient(180deg,rgba(5,5,5,.55) 0%,rgba(5,5,5,0) 16%);
}
@media(max-width:900px) and (orientation:portrait){
  .hero-still{object-position:50% 40%;transform-origin:50% 40%}
  .hero-veil{
    background:
      linear-gradient(180deg,rgba(5,5,5,.45) 0%,rgba(5,5,5,.0) 14%,rgba(5,5,5,.05) 40%,rgba(5,5,5,.72) 54%,rgba(5,5,5,.94) 72%,rgba(5,5,5,.97) 100%);
  }
}

/* FV要素：オープニング中は非表示（JSが段階的に出す） */
html.st-run #s0 [data-st],
html.st-run .hero-momentum{opacity:0}
html.st-run:not(.st-js) #s0 [data-st]{animation:stFailsafeShow 0s linear 9s forwards}
html.st-run:not(.st-js) .hero-momentum{animation:stFailsafeShow 0s linear 9s forwards}
@keyframes stFailsafeShow{to{opacity:1;translate:none;filter:none}}
.hero-15{display:none!important}

#s0 .sc-inner{position:relative;z-index:2}
.hero-momentum{transform-origin:46% 52%;will-change:transform,opacity,filter}
.hero-eyebrow{text-shadow:0 1px 18px rgba(0,0,0,.9)}
.hero-sub{text-shadow:0 2px 24px rgba(0,0,0,.95)}

/* 日程：劇場のリーダーボード風 */
.hero-date{
  background:rgba(8,8,8,.62);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border-color:rgba(245,245,242,.2);
  box-shadow:0 0 0 1px rgba(0,0,0,.4),0 18px 50px rgba(0,0,0,.5);
}

/* カウントダウン：パタパタ式フラップ */
.hero-count{
  margin-top:clamp(18px,2.8vh,28px);
  display:flex;align-items:flex-start;flex-wrap:wrap;
  gap:clamp(10px,1.4vw,20px);
}
.fl-unit{display:flex;flex-direction:column;align-items:center;gap:8px}
.fl-digits{display:flex;gap:3px}
.fl-sep{
  align-self:flex-start;
  font-family:var(--cond);font-weight:300;color:rgba(245,245,242,.35);
  font-size:clamp(22px,2.4vw,36px);line-height:clamp(40px,3.9vw,58px);
}
.flap{
  position:relative;display:block;
  width:clamp(27px,2.55vw,40px);height:clamp(40px,3.9vw,58px);
  perspective:220px;
  font-family:var(--cond);font-weight:500;
  font-size:clamp(25px,2.7vw,42px);line-height:1;color:#f5f5f2;
  font-variant-numeric:tabular-nums;
}
.flap>span{
  position:absolute;left:0;right:0;height:50%;overflow:hidden;
  background:#161616;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.flap>span b{
  position:absolute;left:0;right:0;height:200%;
  display:flex;align-items:center;justify-content:center;
  font-weight:500;
}
.flap .t,.flap .ft{top:0;border-radius:3px 3px 0 0;background:linear-gradient(180deg,#232323,#171717)}
.flap .b,.flap .fb{bottom:0;border-radius:0 0 3px 3px;background:linear-gradient(180deg,#121212,#1a1a1a)}
.flap .t b,.flap .ft b{top:0}
.flap .b b,.flap .fb b{top:-100%}
.flap .ft{transform-origin:50% 100%;z-index:2}
.flap .fb{transform-origin:50% 0;z-index:2;transform:rotateX(90deg)}
.flap::after{
  content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;z-index:3;
  background:rgba(0,0,0,.85);box-shadow:0 1px 0 rgba(255,255,255,.05);
}
.flap::before{ /* 盤面の縁 */
  content:"";position:absolute;inset:0;border-radius:3px;z-index:4;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 6px 16px rgba(0,0,0,.55);
}
.fl-unit .hc-label{font-size:clamp(9px,.85vw,10px);letter-spacing:.3em;text-indent:.3em}
.hero-count .st-show{
  display:none;
  font-family:var(--cond);font-weight:700;letter-spacing:.32em;
  font-size:clamp(20px,2.4vw,30px);color:#fff;
  text-shadow:0 0 10px #ffb26b,0 0 30px var(--orange);
}
.hero-count.is-showtime .fl-unit,.hero-count.is-showtime .fl-sep{display:none}
.hero-count.is-showtime .st-show{display:block}

@media(max-width:900px) and (orientation:portrait){
  #s0{align-items:flex-end}
  #s0 .sc-inner{padding-top:50svh;padding-bottom:clamp(40px,6svh,64px)}
  .hero-eyebrow{font-size:9.5px;letter-spacing:.2em;gap:10px;white-space:nowrap}
  .hero-eyebrow::before{width:22px;flex:0 0 auto}
  .hero-momentum{width:min(440px,76vw);margin:8px 0 10px}
  .hero-sub{font-size:13px;letter-spacing:.26em}
  .hero-date{display:flex;flex-wrap:nowrap;margin-top:16px}
  .hero-date span{font-size:10px;letter-spacing:.05em;padding:10px 7px;white-space:nowrap}
  .hero-count{margin-top:14px}
  .hero-scroll{display:none}
}
@media(max-width:900px){
  .flap{width:24px;height:36px;font-size:23px}
  .fl-sep{font-size:20px;line-height:36px}
  .hero-count{gap:8px}
}
/* タブレット縦（iPad等）：スマホ用の詰めすぎを戻す */
@media(min-width:600px) and (max-width:900px) and (orientation:portrait){
  .hero-eyebrow{font-size:11px;letter-spacing:.32em}
  .hero-momentum{width:min(520px,70vw)}
  .hero-sub{font-size:16px}
  .hero-veil{
    background:
      linear-gradient(180deg,rgba(5,5,5,.45) 0%,rgba(5,5,5,0) 12%,rgba(5,5,5,.04) 34%,rgba(5,5,5,.66) 47%,rgba(5,5,5,.92) 62%,rgba(5,5,5,.97) 100%);
  }
  .hero-date{display:inline-flex}
  .hero-date span{font-size:13px;letter-spacing:.14em;padding:12px 16px}
  .flap{width:30px;height:46px;font-size:30px}
  .fl-sep{font-size:24px;line-height:46px}
}
/* 横長の中間幅（iPad横・小型ノート）：日程ボックスを締めて劇場と重ならないように */
@media(orientation:landscape) and (min-width:901px) and (max-width:1180px){
  .hero-momentum{width:min(520px,50vw,64svh)}
  .hero-date span{font-size:13px;letter-spacing:.14em;padding:11px 15px}
}
/* 横長で低めの画面（13〜14インチのノートPC等）：ロゴを画面の高さに合わせて縮める */
@media(orientation:landscape) and (max-height:820px){
  #s0 .sc-inner{padding-top:clamp(64px,10svh,90px);padding-bottom:clamp(92px,14svh,130px)}
  .hero-momentum{width:min(600px,72vw,64svh)}
  .hero-date{margin-top:clamp(16px,2.6svh,28px)}
  .hero-date span{padding:11px clamp(12px,1.8vw,22px)}
  .hero-count{margin-top:clamp(12px,2svh,22px)}
  .flap{height:clamp(36px,6svh,52px);font-size:clamp(22px,3.8svh,36px);width:clamp(25px,4svh,36px)}
  .fl-sep{line-height:clamp(36px,6svh,52px)}
}
/* 横長で低い画面（小型ノートPC・スマホ横向き）：要素を詰めて1画面に収める */
@media(orientation:landscape) and (max-height:620px){
  #s0 .sc-inner{padding-top:72px;padding-bottom:64px}
  .hero-momentum{width:min(440px,46vw);margin:8px 0 10px}
  .hero-sub{font-size:14px}
  .hero-date{margin-top:14px}
  .hero-date span{padding:9px 14px;font-size:12px}
  .hero-count{margin-top:12px}
  .flap{width:22px;height:32px;font-size:20px}
  .fl-sep{font-size:18px;line-height:32px}
}

/* -----------------------------------------------------
   3. THE CAST
----------------------------------------------------- */
.bg-cast{background:#060606}
.bg-cast::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 30% 75% at 22% -8%,rgba(255,214,160,.11),transparent 62%),
    radial-gradient(ellipse 30% 75% at 78% -8%,rgba(238,123,35,.12),transparent 62%),
    radial-gradient(ellipse 70% 40% at 50% 112%,rgba(238,123,35,.14),transparent 70%);
}
.bg-cast::after{
  content:"";position:absolute;inset:0;opacity:.5;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 8px);
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 60%);mask-image:linear-gradient(180deg,#000,transparent 60%);
}
#s3c{display:block;padding-bottom:clamp(60px,9vh,110px)}
#s3c .sc-inner{max-width:1240px;padding-bottom:0}
.cast-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(20px,4vw,60px);align-items:end}
.cast-lead{margin-top:18px;max-width:640px;font-size:clamp(13px,1.5vw,15px);line-height:2.05;color:#cfcfcc}
.cast-count{text-align:right}
.cast-count b{
  display:block;font-family:var(--en);font-weight:900;
  font-size:clamp(72px,10vw,150px);line-height:.85;letter-spacing:-.02em;
  color:transparent;-webkit-text-stroke:1.5px rgba(238,123,35,.9);
  text-shadow:0 0 40px rgba(238,123,35,.18);
  font-variant-numeric:tabular-nums;
}
.cast-count span{display:block;margin-top:12px;font-family:var(--cond);font-weight:300;font-size:11px;letter-spacing:.42em;color:var(--orange)}

.cast-billing{
  display:flex;align-items:center;gap:18px;
  margin:clamp(34px,6vh,60px) 0 clamp(14px,2vh,20px);
  font-family:var(--cond);font-weight:500;font-size:12px;letter-spacing:.56em;color:rgba(245,245,242,.82);
}
.cast-billing::before,.cast-billing::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(245,245,242,.28),transparent)}
.cast-billing small{font-size:10px;letter-spacing:.3em;color:var(--orange)}

.cast-stars,.cw-set{list-style:none;margin:0;padding:0}
.cast-stars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1.2vw,16px)}
.cast-star{position:relative;margin:0;aspect-ratio:3/4.15;overflow:hidden;background:#0b0b0b;border:1px solid rgba(245,245,242,.08)}
.cast-star img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%;
  transition:opacity .55s ease,transform 1.4s var(--ease-out),filter .55s ease;
}
.cast-star img.on{opacity:0}
.cast-star:hover img,.cast-star:focus-within img{transform:scale(1.045)}
.cast-star:hover img.on,.cast-star:focus-within img.on,.cast-star.is-spot img.on{opacity:1}
.cast-star figcaption,.cw-card figcaption{position:relative}
.cast-star figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:clamp(28px,4vw,48px) clamp(12px,1.4vw,18px) clamp(12px,1.4vw,16px);
  background:linear-gradient(0deg,rgba(5,5,5,.95) 10%,rgba(5,5,5,0));
}
.cast-star .role,.cw-card .role{display:block;font-family:var(--cond);font-weight:300;letter-spacing:.3em;color:var(--orange)}
.cast-star .role{font-size:10px}
.cast-star .en{
  display:block;margin-top:6px;text-transform:uppercase;
  font-family:var(--cond);font-weight:700;font-size:clamp(15px,1.55vw,22px);letter-spacing:.06em;line-height:1.15;color:#fff;
  transition:text-shadow .4s ease;
}
.cast-star .jp{display:block;margin-top:4px;font-size:11px;letter-spacing:.18em;color:rgba(245,245,242,.66)}
.cast-star:hover .en,.cast-star:focus-within .en,.cast-star.is-spot .en{text-shadow:0 0 8px #ffb26b,0 0 24px var(--orange)}
.cast-star::after{ /* 照明枠 */
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(238,123,35,0);transition:box-shadow .4s ease;
}
.cast-star:hover::after,.cast-star:focus-within::after{box-shadow:inset 0 0 0 1px rgba(238,123,35,.7)}

.cast-wall{
  margin-top:clamp(30px,5vh,52px);
  display:grid;gap:clamp(10px,1.4vh,14px);
  transform:perspective(1600px) rotateX(var(--wtilt,0deg)) skewX(var(--wskew,0deg));
  transform-origin:50% 0;
}
.cw-row{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.cw-track{display:flex;width:max-content;will-change:transform;animation:cwMarq var(--dur,90s) linear infinite}
.cw-row:nth-child(2) .cw-track{animation-direction:reverse}
.cw-set{display:flex;gap:clamp(8px,.9vw,12px);padding-right:clamp(8px,.9vw,12px);margin:0}
@keyframes cwMarq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.cw-row.is-paused .cw-track,.cast-wall:hover .cw-track,.cast-wall.is-off .cw-track{animation-play-state:paused}
.cw-card{flex:0 0 auto;width:clamp(104px,9.4vw,140px);list-style:none}
.cw-card figure{position:relative;margin:0;aspect-ratio:630/963;overflow:hidden;background:#0b0b0b}
.cw-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%;
  filter:grayscale(.45) brightness(.95) contrast(1.04);
  transition:filter .4s ease,opacity .4s ease;
}
.cw-card img.on{opacity:0;filter:none}
.cw-card:hover img,.cw-card.is-spot img{filter:none}
.cw-card:hover img.on,.cw-card.is-spot img.on{opacity:1}
.cw-card figcaption{padding:8px 1px 0}
.cw-card .nm{
  display:block;font-family:var(--cond);font-weight:500;font-size:12px;letter-spacing:.07em;color:#f2f2ef;text-transform:uppercase;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s,text-shadow .3s;
}
.cw-card .nm:lang(ja){font-family:var(--jp);font-size:11.5px;letter-spacing:.1em;text-transform:none}
/* 英字名はクレジット風に「名／姓」の2行で組む（長い名前も省略されない） */
.cw-card .nm:not(:lang(ja)){white-space:normal;width:min-content;max-width:100%;min-height:2.4em;line-height:1.2;overflow:visible}
.cw-card .role{margin-top:3px;font-size:8.5px;letter-spacing:.2em;line-height:1.4}
.cw-card:hover .nm,.cw-card.is-spot .nm{color:#fff;text-shadow:0 0 8px #ffb26b,0 0 18px var(--orange)}

.cast-foot{
  max-width:1240px;margin:clamp(26px,4vh,40px) auto 0;padding:0 clamp(22px,6vw,80px);
  display:flex;justify-content:flex-end;
}
.cast-foot a{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--cond);font-weight:500;font-size:12px;letter-spacing:.28em;color:var(--orange);
  border-bottom:1px solid rgba(238,123,35,.5);padding-bottom:6px;transition:color .3s,border-color .3s;
}
.cast-foot a::after{content:"→";letter-spacing:0;transition:transform .3s}
.cast-foot a:hover{color:#fff;border-color:#fff}
.cast-foot a:hover::after{transform:translateX(5px)}

@media(max-width:900px){
  .cast-head{grid-template-columns:1fr;gap:18px}
  .cast-count{text-align:left;display:flex;align-items:baseline;gap:14px}
  .cast-count b{font-size:64px}
  .cast-count span{margin-top:0}
  .cast-stars{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cast-billing{gap:10px;font-size:10.5px;letter-spacing:.28em;white-space:nowrap}
  .cast-billing::before{flex:0 0 18px}
  .cast-billing::after{flex:1}
  .cw-card{width:96px}
  .cast-foot{justify-content:flex-start}
}

/* -----------------------------------------------------
   4. PROGRAM × BLUEPRINT
----------------------------------------------------- */
.bg-program{
  background:
    radial-gradient(ellipse 60% 55% at 70% 55%,rgba(238,123,35,.10),transparent 70%),
    radial-gradient(ellipse 80% 40% at 50% 100%,rgba(238,123,35,.14),transparent 70%),
    #070707;
}
.bg-program::after{
  content:"";position:absolute;inset:0;opacity:.55;
  background:
    repeating-linear-gradient(0deg,rgba(245,245,242,.035) 0 1px,transparent 1px 44px),
    repeating-linear-gradient(90deg,rgba(245,245,242,.035) 0 1px,transparent 1px 44px);
  -webkit-mask-image:radial-gradient(ellipse 70% 70% at 62% 52%,#000 30%,transparent 80%);
          mask-image:radial-gradient(ellipse 70% 70% at 62% 52%,#000 30%,transparent 80%);
}
.bp{position:relative;margin:0}
.bp-stage{position:relative;width:100%;aspect-ratio:1200/870;perspective:1800px}
.bp-view{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform,opacity}
.bp-view img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.bp-view--b{opacity:0}
.bp-scan{
  position:absolute;left:0;right:0;top:-14%;height:14%;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,rgba(238,123,35,0),rgba(238,123,35,.10) 72%,rgba(255,214,160,.7) 99%,rgba(255,255,255,0));
  mix-blend-mode:screen;
}
.bp-tag{
  position:absolute;left:var(--x);top:var(--y);z-index:3;
  width:0;height:0;opacity:0;
}
.bp-tag i{
  position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;
  background:var(--orange);
  box-shadow:0 0 0 4px rgba(238,123,35,.18),0 0 16px 2px rgba(238,123,35,.9);
}
.bp-tag i::after{
  content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid rgba(238,123,35,.6);
  animation:bpPing 2.2s var(--ease-out) infinite;
}
@keyframes bpPing{from{transform:scale(.4);opacity:1}to{transform:scale(2.2);opacity:0}}
.bp-tag span{
  position:absolute;left:18px;bottom:16px;white-space:nowrap;
  font-family:var(--cond);font-weight:500;font-size:11px;letter-spacing:.26em;color:#fff;
  padding:6px 10px 6px 11px;border:1px solid rgba(238,123,35,.65);background:rgba(8,8,8,.78);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.bp-tag span::before{ /* 引き出し線 */
  content:"";position:absolute;left:-14px;bottom:-12px;width:18px;height:1px;background:rgba(238,123,35,.8);
  transform:rotate(-40deg);transform-origin:100% 50%;
}
.bp-tag.is-left span{left:auto;right:18px}
.bp-tag.is-left span::before{left:auto;right:-14px;transform:rotate(40deg);transform-origin:0 50%}
.bp-cap{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;
  margin-top:10px;font-family:var(--cond);font-weight:300;font-size:11px;letter-spacing:.3em;color:rgba(245,245,242,.72);
}
.bp-cap b{font-weight:500;color:var(--orange);letter-spacing:.3em}
.bp-cap small{font-family:var(--jp);font-size:10px;letter-spacing:.12em;color:var(--gray)}
.bp-views{display:flex;gap:6px;align-items:center}
.bp-views em{font-style:normal;font-size:10px;letter-spacing:.2em;color:rgba(245,245,242,.4);transition:color .3s}
.bp-views em.is-act{color:var(--orange)}

@media(min-width:901px){
  #s5 .pinbox{display:block}
  #s5 .pg-stagewrap{position:absolute;left:0;top:0;bottom:0;width:44%;max-width:none;margin:0;padding:0;z-index:2}
  #s5 .pg-panel{
    left:clamp(22px,6vw,80px);right:auto;top:auto;bottom:clamp(40px,9vh,90px);transform:none;
    width:min(40vw,520px);max-width:none;
  }
  .bp{position:absolute;right:clamp(16px,3vw,56px);top:52%;transform:translateY(-50%);width:min(52vw,880px)}
}
@media(min-width:901px) and (max-height:760px){
  #s5 .pg-panel{left:clamp(22px,6vw,80px);right:auto;bottom:24px;padding:20px 24px}
  #s5 .pg-panel .pgp-desc{font-size:12px}
  .bp{width:min(50vw,760px)}
}
@media(max-width:900px){
  .bp{margin:26px 22px 0}
  .bp-tag span{font-size:9px;padding:4px 7px;letter-spacing:.18em}
  .bp-tag.is-mhide{display:none}
}

/* -----------------------------------------------------
   5. 演出言語の統一：ネオン見出し／マーキー電球
----------------------------------------------------- */
.sc-title.is-neon{animation:neonOn 1.15s linear 1 both}
.sc-title.is-lit{text-shadow:0 0 18px rgba(238,123,35,.22)}
@keyframes neonOn{
  0%{text-shadow:none;color:rgba(245,245,242,.55)}
  6%{text-shadow:0 0 8px rgba(255,210,160,.95),0 0 26px rgba(238,123,35,.8);color:#fff}
  10%{text-shadow:none;color:rgba(245,245,242,.5)}
  18%{text-shadow:0 0 8px rgba(255,210,160,.95),0 0 26px rgba(238,123,35,.8);color:#fff}
  22%{text-shadow:0 0 4px rgba(255,210,160,.4);color:rgba(245,245,242,.75)}
  32%{text-shadow:0 0 10px rgba(255,210,160,.9),0 0 34px rgba(238,123,35,.75);color:#fff}
  100%{text-shadow:0 0 18px rgba(238,123,35,.22);color:var(--white)}
}

/* ENTRY：マーキー電球フレーム */
#s8 .sc-inner{position:relative}
.en-bulbs{
  position:absolute;pointer-events:none;
  inset:clamp(46px,7vh,76px) clamp(6px,3vw,40px) clamp(36px,6vh,68px);
  --g:radial-gradient(circle,#fff3d6 0 1.6px,rgba(255,206,140,.55) 2.6px,rgba(255,170,90,0) 5px);
  background:
    var(--g) 0 0/22px 22px repeat-x,
    var(--g) 0 100%/22px 22px repeat-x,
    var(--g) 0 0/22px 22px repeat-y,
    var(--g) 100% 0/22px 22px repeat-y;
  opacity:.85;
  animation:bulbChase .9s steps(1,end) infinite;
}
.en-bulbs::after{
  content:"";position:absolute;inset:0;
  background:
    var(--g) 11px 0/22px 22px repeat-x,
    var(--g) 11px 100%/22px 22px repeat-x,
    var(--g) 0 11px/22px 22px repeat-y,
    var(--g) 100% 11px/22px 22px repeat-y;
  animation:bulbChase .9s steps(1,end) infinite reverse;
}
@keyframes bulbChase{0%{opacity:.95}50%{opacity:.28}}
.en-kicker{
  display:inline-block;margin-bottom:14px;
  font-family:var(--cond);font-weight:500;font-size:11px;letter-spacing:.5em;text-indent:.5em;color:#fff;
  padding:7px 14px;border:1px solid rgba(255,226,168,.5);
  text-shadow:0 0 8px rgba(255,190,120,.8);
}
@media(max-width:900px){.en-bulbs{inset:44px 8px 34px}}

@media (prefers-reduced-motion:reduce){
  .cw-track{animation:none}
  .cw-row{overflow-x:auto}
  .en-bulbs,.en-bulbs::after{animation:none}
}
