/*
Theme Name: Underbar Official
Theme URI: https://un-san.com/
Author: Cielkocka
Description: CMS対応テーマ — NEWS / DISCOGRAPHY / LIVE をカスタム投稿タイプで管理。静的ページ（WORLD, PROFILE, CONTACT）はstatic-routerでフォールバック。
Version: 3.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: underbar-official
*/

/* ================================================================
   Base styles (formerly site.css)
   ================================================================ */

:root{color-scheme:dark;--bg:#291837;--panel:#3a1f49;--panel2:#75569a;--white:#fff;--muted:rgba(255,255,255,.74)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--white);font-family:"Bodoni 72","Times New Roman","Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.09em;line-height:1.7}.site-header{position:sticky;top:0;z-index:30;height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 48px;background:rgba(41,24,55,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.18);box-shadow:0 2px 24px rgba(0,0,0,.25)}.brand{color:#fff;text-decoration:none;font-size:14px;font-weight:600;white-space:nowrap}.site-header nav{display:flex;gap:28px;align-items:center;justify-content:flex-end}.site-header nav a{color:#fff;text-decoration:none;font-size:15px;line-height:1;font-weight:600;letter-spacing:.18em;white-space:nowrap}.site-header nav a.active,.site-header nav a:hover{opacity:.72}.hero{height:calc(100svh - 80px);min-height:760px;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.hero-slider{display:flex;gap:20px;overflow:hidden;padding:42px 0 0;transform:translateX(-180px)}.hero-slider img{width:460px;aspect-ratio:16/9;object-fit:cover;flex:0 0 auto}.home-section,.archive-page{padding:48px clamp(28px,7vw,112px) 80px}.orn-head{display:flex;align-items:center;justify-content:center;gap:48px;margin:0 auto 36px}.orn-head img{width:220px;height:14px;object-fit:fill}.orn-head h1{margin:0;font-size:32px;line-height:1.2;font-weight:500;letter-spacing:.06em}.orn-tabs{display:flex;justify-content:center;align-items:center;gap:46px;flex-wrap:wrap;margin:0 auto 46px}.orn-tabs span{min-width:128px;min-height:44px;display:inline-grid;place-items:center;padding:5px 20px;border:1px solid rgba(255,255,255,.72);border-radius:999px;font-size:20px;background:rgba(60,30,74,.38);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.line-panel{max-width:1040px;margin:0 auto;border:1px solid rgba(255,255,255,.15);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,rgba(58,31,73,.95),rgba(48,24,64,.85));box-shadow:0 8px 40px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.08)}.line-row{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:18px;min-height:136px;padding:28px 32px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08);transition:background .3s}.line-row:last-of-type{border-bottom:1px solid rgba(255,255,255,.08)}.line-row:hover{background:rgba(255,255,255,.04)}.line-row strong{font-size:18px;font-weight:600;line-height:1.7;letter-spacing:.08em}.news-line strong{grid-column:1/-1;margin-top:10px}.live-line{grid-template-columns:auto 1fr}.live-line strong{font-size:18px;font-weight:600}.live-section-title{display:none}.line-date{font-size:16px;color:var(--muted);font-weight:600}.pill{min-width:82px;padding:3px 16px;border:1px solid rgba(255,255,255,.25);border-radius:999px;text-align:center;font-size:13px;line-height:1.35;color:rgba(255,255,255,.85);background:rgba(255,255,255,.04)}.read-more{height:80px;display:flex;align-items:center;justify-content:center;gap:34px;color:rgba(255,255,255,.6);text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.14em;transition:color .3s}.read-more:hover{color:#fff}.read-more span{font-size:28px;line-height:1;transition:transform .3s}.read-more:hover span{transform:translateY(3px)}.world-band{position:relative;display:block;height:454px;overflow:hidden;color:#fff;text-decoration:none}.world-band img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.72);transition:transform .8s ease,filter .8s ease}.world-band:hover img{transform:scale(1.03);filter:brightness(.85)}.world-band span{position:absolute;left:clamp(42px,8vw,120px);bottom:54px;font-size:clamp(28px,5vw,68px);letter-spacing:.2em}.disc-panel{max-width:1040px;margin:0 auto;padding:48px 40px 72px;border-radius:12px;background:linear-gradient(160deg,#4e2864,#3a1c50);box-shadow:0 12px 48px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.06);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:72px 66px}.disc-item{display:flex;flex-direction:column;align-items:center;color:#fff;text-align:center;text-decoration:none;min-width:0}.disc-cover{width:100%;aspect-ratio:1;display:block;background:rgba(0,0,0,.18);overflow:hidden;border-radius:4px;box-shadow:0 4px 20px rgba(0,0,0,.35);transition:transform .4s ease,box-shadow .4s ease}.disc-cover img{width:100%;height:100%;object-fit:cover;display:block}.disc-item:hover .disc-cover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.5)}.disc-tag{margin-top:18px;min-width:104px;padding:3px 16px;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:15px;color:rgba(255,255,255,.85);background:rgba(255,255,255,.04)}.disc-date{margin-top:9px;font-size:14px;color:var(--muted)}.disc-item strong{margin-top:6px;font-size:18px;font-weight:500;line-height:1.5;letter-spacing:.06em}.image-button{display:flex;align-items:center;justify-content:center;margin:36px auto 0;width:210px;height:58px;border:1px solid rgba(255,255,255,.35);border-radius:999px;color:#fff;text-decoration:none;letter-spacing:.12em;transition:background .3s,border-color .3s,box-shadow .3s}.image-button:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);box-shadow:0 0 20px rgba(200,160,220,.15)}.movie-empty,.movie-page{min-height:calc(100svh - 80px)}.page-hero{padding:86px clamp(42px,7vw,112px) 42px;border-bottom:1px solid rgba(255,255,255,.32)}.page-hero h1{margin:0;font-weight:400;font-size:clamp(50px,9vw,104px);letter-spacing:.18em}.kicker{margin:0;color:#fff;font-size:14px;letter-spacing:.18em}.back{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border:1px solid rgba(255,255,255,.75);color:#fff;text-decoration:none;background:transparent}.detail{max-width:980px;margin:0 auto;padding:64px clamp(22px,5vw,54px)}.detail header{margin:32px 0}.detail h1{margin:12px 0 0;font-size:clamp(30px,5vw,58px);line-height:1.26;font-weight:400;letter-spacing:.04em}.meta{display:flex;gap:12px;flex-wrap:wrap;color:#fff;font-size:14px;letter-spacing:.08em}.detail-cover{width:min(720px,100%);max-height:760px;object-fit:contain;display:block;margin:28px auto;background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.32)}.richtext{font-family:system-ui,-apple-system,sans-serif;letter-spacing:0;font-size:16px;color:#fff}.richtext p{margin:0 0 1.1em}.richtext figure{margin:30px 0}.richtext img{max-width:100%;height:auto;display:block;margin:auto}.richtext a{color:#fff}.profile-page{padding:48px clamp(28px,7vw,112px) 80px}.profile-pane{max-width:840px;min-height:0;margin:0 auto;padding:28px 64px 24px;border-radius:12px;background:var(--panel2);display:flex;flex-direction:column;align-items:center}.profile-pane.is-dark{background:#000}.profile-pane .orn-head{margin-bottom:20px;gap:28px}.profile-pane .orn-head img{width:140px}.profile-pane .orn-head h1{font-size:32px;letter-spacing:.18em}.profile-photo{width:200px;height:200px;object-fit:cover;object-position:center top;border-radius:4px;flex-shrink:0}.profile-pane h2{margin:12px 0 2px;font-size:24px;font-weight:300;letter-spacing:.08em}.profile-text{width:100%;max-width:640px;color:#fff;font-size:14px;font-weight:300;letter-spacing:.08em;line-height:1.75}.profile-text p{margin:8px 0}.change-button{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;flex-shrink:0;width:52px;height:52px;border:1px solid rgba(255,255,255,.25);border-radius:50%;color:rgba(255,255,255,.6);text-decoration:none;font-size:22px;line-height:1;background:rgba(255,255,255,.03);transition:background .3s,border-color .3s,color .3s,box-shadow .3s;cursor:pointer}.change-button:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4);color:#fff;box-shadow:0 0 16px rgba(200,160,220,.1)}.change-button:active{transform:scale(.92)}.profile-pane:not(:target) + .profile-pane{display:none}.profile-pane:target{display:flex}.profile-page:has(#pro02:target) #pro01{display:none}.profile-page:has(#pro02:target) #pro02{display:flex}.world-page{position:relative;min-height:calc(100svh - 80px);height:1680px;overflow:hidden;background-image:var(--world-bg);background-size:cover;background-position:center top}.world-page h1{position:absolute;top:105px;left:0;right:0;margin:0;text-align:center;font-size:68px;font-weight:400;letter-spacing:.08em}.world-rule{position:absolute;top:220px;left:50%;width:2px;height:180px;background:rgba(255,255,255,.8)}.world-copy{position:absolute;top:455px;left:50%;width:min(690px,58vw);transform:translateX(-50%);display:grid;place-items:center}.world-copy img{width:100%;display:block}.world-copy p{position:absolute;margin:0;text-align:center;font-size:22px;line-height:1.65;letter-spacing:.2em}.world-change{position:absolute;top:620px;right:74px;width:150px;height:150px;border-radius:50%;background:#2b1837;color:#fff;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:34px;line-height:1}.world-change span{margin-top:8px;font-size:17px;text-align:center;letter-spacing:.08em;line-height:1.25}.world-profile{position:absolute;left:110px;bottom:260px;max-width:510px}.world-profile h2{font-size:36px;font-weight:500;letter-spacing:.08em}.world-profile p{font-size:16px;line-height:1.9}.world-character{position:absolute;right:70px;bottom:70px;width:min(48vw,760px)}.world-lore{background:#12081a}.lore-block{position:relative;min-height:720px;background-image:linear-gradient(90deg,rgba(41,24,55,.86),rgba(41,24,55,.18)),var(--lore-bg);background-size:cover;background-position:center;display:flex;align-items:center;padding:92px clamp(32px,8vw,132px)}.lore-block.is-reverse{justify-content:flex-end;background-image:linear-gradient(270deg,rgba(41,24,55,.86),rgba(41,24,55,.18)),var(--lore-bg)}.lore-block.is-red{background-image:linear-gradient(90deg,rgba(28,0,10,.9),rgba(80,0,20,.22)),var(--lore-bg)}.lore-block.is-red.is-reverse{background-image:linear-gradient(270deg,rgba(28,0,10,.9),rgba(80,0,20,.22)),var(--lore-bg)}.lore-overlay{width:min(560px,100%);padding:34px 38px;border:1px solid rgba(255,255,255,.62);background:rgba(41,24,55,.58);backdrop-filter:blur(2px)}.is-red .lore-overlay{background:rgba(0,0,0,.62)}.lore-overlay h2{margin:0 0 18px;font-size:42px;font-weight:400;letter-spacing:.12em}.lore-overlay p{margin:0;font-size:17px;line-height:2;letter-spacing:.08em}.static-body{max-width:980px;margin:0 auto;padding:52px clamp(22px,5vw,54px);color:#fff;font-family:system-ui,-apple-system,sans-serif;letter-spacing:0}.static-body a{color:#fff}.site-footer{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;padding:28px 48px;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.4);font-size:13px;letter-spacing:.06em}.site-footer span+span{display:none}.site-header.is-scrolled{box-shadow:0 4px 32px rgba(0,0,0,.4)}
@media(max-width:900px){.site-header{height:auto;min-height:80px;align-items:flex-start;flex-direction:column;padding:20px}.site-header nav{width:100%;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:20px}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{font-size:13px}.site-header nav a::after{display:none}.hero{height:62svh;min-height:430px}.hero-slider{transform:none;padding-left:20px}.hero-slider img{width:280px}.home-section,.archive-page{padding:56px 20px 80px}.orn-head{gap:16px;margin-bottom:44px}.orn-head img{width:72px}.orn-head h1{font-size:28px}.orn-tabs{gap:16px}.orn-tabs span{min-width:96px;font-size:16px}.line-row{grid-template-columns:1fr;gap:8px;min-height:126px;padding:24px 20px}.line-row strong,.live-line strong{font-size:17px}.disc-panel{grid-template-columns:1fr;gap:42px;padding:28px 22px}.world-band{height:300px}.world-band span{left:24px;bottom:32px}.profile-page{padding:32px 16px 48px}.profile-pane{min-height:auto;padding:24px 20px 24px}.profile-pane .orn-head h1{font-size:24px}.profile-pane .orn-head img{width:60px}.profile-pane .orn-head{margin-bottom:32px}.profile-photo{width:220px;height:220px;border-radius:4px}.profile-pane h2{font-size:22px;margin-top:20px}.profile-text{font-size:14px;line-height:1.8}.profile-text p{margin:14px 0}.change-button{margin-top:28px;width:48px;height:48px;font-size:20px}.world-page{height:980px}.world-page h1{top:72px;font-size:42px}.world-rule{top:160px;height:120px}.world-copy{top:310px;width:86vw}.world-copy p{font-size:14px}.world-change{top:500px;right:20px;width:110px;height:110px}.world-profile{left:24px;bottom:120px;max-width:330px}.world-character{right:-120px;bottom:20px;width:520px}.detail{padding-top:40px}}

/* WORLD page reconstruction overrides */
.site-header{position:relative}
.world-page{position:relative;height:auto;min-height:0;overflow:hidden;background-image:var(--world-bg);background-size:cover;background-position:center top}
.world-page.alter{background-position:center top}
.world-opening{position:relative;height:600px;display:flex;flex-direction:column;align-items:center}
.world-opening h1{position:relative;top:auto;left:auto;right:auto;margin:0;padding-top:78px;text-align:center;font-size:62px;font-weight:400;letter-spacing:.08em;line-height:1.22}
.world-page.alter .world-opening h1{font-size:58px;line-height:1.35}
.world-rule{position:absolute;top:185px;left:50%;width:2px;height:170px;background:rgba(255,255,255,.8)}
.world-page.alter .world-rule{display:none}
.world-copy{position:absolute;top:320px;left:50%;width:min(690px,58vw);transform:translateX(-50%);display:grid;place-items:center}
.world-page.alter .world-copy{top:380px;width:min(650px,58vw)}
.world-copy img{width:100%;display:block}
.world-copy p{position:absolute;margin:0;text-align:center;font-size:20px;line-height:1.65;letter-spacing:.18em}
.world-intro{position:relative;height:620px;background:linear-gradient(180deg,rgba(157,146,219,.12),#9d92db 70%)}
.world-page.alter .world-intro{height:560px;background:linear-gradient(180deg,rgba(0,0,0,.08),#000 58%)}
.world-profile{position:absolute;left:110px;top:145px;bottom:auto;max-width:540px;z-index:2}
.world-page.alter .world-profile{top:35px;max-width:560px}
.world-profile h2{margin:0 0 48px;font-size:36px;font-weight:600;letter-spacing:.08em;line-height:1.2}
.world-profile h2::before{content:"";display:inline-block;width:64px;height:1px;margin:0 24px 10px 0;background:#fff}
.world-page.alter .world-profile h2::before{display:none}
.world-profile p{margin:0;font-size:16px;line-height:1.9;letter-spacing:.08em}
.world-character{position:absolute;right:140px;bottom:45px;width:min(40vw,585px)}
.world-page.alter .world-character{display:none}
.world-change.fixed{position:fixed;top:auto;right:38px;bottom:34px;z-index:40;width:118px;height:118px;background:#2b1837;border:1px solid rgba(255,255,255,.15);font-size:26px;box-shadow:0 8px 22px rgba(0,0,0,.22)}
.world-change.fixed span{margin-top:6px;font-size:13px;line-height:1.2;letter-spacing:.08em}
.world-planet{position:relative;min-height:635px;overflow:hidden;background-image:linear-gradient(180deg,rgba(15,14,28,.26),rgba(21,18,34,.52)),var(--planet-bg);background-size:cover;background-position:center;color:#fff}
.world-planet.alter{background-image:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.62)),var(--planet-bg)}
.planet-city{position:absolute;left:11%;bottom:12%;width:min(39vw,650px);display:block}
.planet-copy{position:absolute;right:14%;max-width:560px;text-align:left;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.55)}
.planet-copy.star{top:15%}
.planet-copy.people{top:53%}
.planet-copy h2{margin:0 0 22px;font-size:34px;font-weight:600;letter-spacing:.1em;line-height:1.2}
.planet-copy p{margin:0;font-size:15px;line-height:1.9;letter-spacing:.08em}
.dabalantis-section{position:relative;min-height:1040px;padding:96px 0 100px;background-image:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.32)),var(--dab-bg);background-size:cover;background-position:center;background-attachment:fixed;color:#fff}
.dabalantis-section.alter{background-image:linear-gradient(rgba(0,0,0,.48),rgba(0,0,0,.82)),var(--dab-bg);color:#fff}
.dab-content{width:min(1040px,86vw);margin:0 auto;text-align:center}
.dab-content .roman{margin:0 0 8px;font-size:18px;line-height:1.2;letter-spacing:.55em}
.dab-content h2{margin:0 0 36px;font-size:44px;font-weight:400;line-height:1.25;letter-spacing:.12em}
.dab-text{margin:0 auto 48px;padding:34px 44px;background:rgba(255,255,255,.82);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);text-align:left;font-size:14px;line-height:1.9;letter-spacing:.08em;color:#2d2d2d}
.dabalantis-section.alter .dab-text{background:#050505;color:#fff}
.dab-text p{margin:0}
.dab-content>img{width:min(720px,76vw);display:block;margin:24px auto 36px;border-radius:8px;box-shadow:0 4px 24px rgba(0,0,0,.25)}
@media(max-width:900px){
  .world-opening{height:560px}
  .world-opening h1{padding-top:72px;font-size:38px}
  .world-page.alter .world-opening h1{font-size:34px}
  .world-rule{top:145px;height:120px}
  .world-copy,.world-page.alter .world-copy{top:300px;width:88vw}
  .world-copy p{font-size:13px;line-height:1.65}
  .world-intro,.world-page.alter .world-intro{height:auto;min-height:560px;padding:64px 24px 48px}
  .world-profile,.world-page.alter .world-profile{position:relative;left:auto;top:auto;max-width:100%}
  .world-profile h2{font-size:28px;margin-bottom:28px}
  .world-profile p{font-size:14px}
  .world-character{right:-90px;bottom:8px;width:430px;opacity:.86}
  .world-planet{min-height:740px;padding:64px 24px 48px}
  .planet-city{position:relative;left:auto;bottom:auto;width:100%;margin:260px auto 0}
  .planet-copy{left:24px;right:24px;max-width:none}
  .planet-copy.star{top:58px}
  .planet-copy.people{top:230px}
  .planet-copy h2{font-size:26px}
  .planet-copy p{font-size:13px}
  .dabalantis-section{min-height:0;padding:70px 0 76px}
  .dab-content{width:88vw}
  .dab-content h2{font-size:34px}
  .dab-content .roman{font-size:13px;letter-spacing:.42em}
  .dab-text{padding:24px 22px;font-size:12px}
  .world-change.fixed{right:18px;bottom:18px;width:92px;height:92px;font-size:21px}
  .world-change.fixed span{font-size:10px}
}

/* === HOME page enhancements === */

/* 1. Hero slider → infinite scroll animation */
.hero-slider{overflow:hidden;padding:42px 0 0;position:relative;mask-image:linear-gradient(90deg,transparent,#000 60px,#000 calc(100% - 60px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 60px,#000 calc(100% - 60px),transparent)}
.slider-track{display:flex;gap:20px;animation:slider-scroll 28s linear infinite;width:max-content}
.slider-track img{width:460px;aspect-ratio:16/9;object-fit:cover;flex:0 0 auto;border-radius:6px}
@keyframes slider-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.hero-slider:hover .slider-track{animation-play-state:paused}

/* 2. NEWS layout: date + pill on one row, title full-width below */
.news-line{grid-template-columns:auto auto 1fr;align-items:center;gap:12px 18px;min-height:auto;padding:22px 32px}
.news-line .line-date{grid-column:1;grid-row:1}
.news-line .pill{grid-column:2;grid-row:1}
.news-line strong{grid-column:1/-1;grid-row:2;margin-top:4px;font-size:17px;font-weight:600;line-height:1.6}

/* 3. WORLD band text → centered */
.world-band{display:flex;align-items:center;justify-content:center;position:relative}
.world-band-text{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:clamp(28px,5vw,68px);letter-spacing:.28em;text-shadow:0 4px 24px rgba(0,0,0,.6)}

/* 4. MOVIE grid with YouTube embeds */
.movie-grid{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
.movie-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:8px;background:#000}
.movie-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%}

/* 5. SNS links */
.sns-section{padding-bottom:120px}
.sns-links{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;max-width:800px;margin:0 auto}
.sns-btn{display:flex;flex-direction:column;align-items:center;gap:10px;color:#fff;text-decoration:none;padding:18px 24px;border:1px solid rgba(255,255,255,.15);border-radius:12px;min-width:120px;background:rgba(255,255,255,.02);transition:background .35s,border-color .35s,transform .35s,box-shadow .35s}
.sns-btn:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.35);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.sns-btn svg{opacity:.85}
.sns-btn span{font-size:13px;letter-spacing:.08em;font-weight:500}

/* 6. Mobile overrides for new sections */
@media(max-width:900px){
  .slider-track img{width:280px}
  .news-line{padding:18px 20px}
  .news-line strong{font-size:15px}
  .world-band-text{font-size:clamp(22px,6vw,42px);letter-spacing:.18em}
  .movie-grid{grid-template-columns:1fr;gap:20px}
  .sns-links{gap:16px}
  .sns-btn{min-width:100px;padding:14px 16px}
  .sns-btn span{font-size:12px}
}

/* ================================================================
   CMS template styles
   ================================================================ */

/* -- フィルタータブ -- */
.filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin: 24px auto;
  max-width: 900px;
  padding: 0 16px;
}
.filter-tab {
  padding: 8px 22px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 20px;
  color: rgba(255,255,255,.5);
  font-size: 13px;
  text-decoration: none;
  letter-spacing: .06em;
  transition: background .3s, color .3s, border-color .3s, box-shadow .3s;
}
.filter-tab:hover {
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.3);
}
.filter-tab.active {
  background: rgba(255,255,255,.1);
  color: #fff;
  border-color: rgba(255,255,255,.4);
  box-shadow: 0 0 12px rgba(200,160,220,.12);
}

/* -- LIVE セクションタイトル -- */
.live-section-title {
  font-family: "Bodoni 72","Times New Roman","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size: 20px;
  letter-spacing: .15em;
  text-align: center;
  margin: 32px 0 12px;
  color: rgba(255,255,255,.7);
}

/* -- シングル記事共通 -- */
.single-page {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 16px 60px;
}
.news-meta, .show-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.news-title, .release-title, .show-title {
  font-family: "Bodoni 72","Times New Roman","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size: 24px;
  margin: 0 0 20px;
  line-height: 1.5;
}
.news-thumb img, .show-thumb img, .release-cover img {
  width: 100%;
  height: auto;
  border-radius: 4px;
  margin-bottom: 20px;
}
.news-body, .release-body, .show-body {
  line-height: 1.9;
  font-size: 15px;
}
.news-body a, .release-body a, .show-body a {
  color: #c9a0dc;
}

/* -- LIVE 詳細 dl -- */
.show-details {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 8px 16px;
  margin: 24px 0;
  font-size: 14px;
}
.show-details dt {
  color: rgba(255,255,255,.5);
}
.show-link {
  display: inline-block;
  padding: 10px 28px;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  margin-top: 16px;
  transition: .2s;
}
.show-link:hover {
  background: rgba(255,255,255,.1);
}

/* -- Release 詳細 -- */
.release-info {
  text-align: center;
  margin-bottom: 24px;
}
.release-cover {
  max-width: 400px;
  margin: 0 auto 24px;
}
.release-tracklist {
  margin: 24px 0;
  padding: 16px;
  background: rgba(255,255,255,.04);
  border-radius: 4px;
}
.release-tracklist h3 {
  font-size: 14px;
  letter-spacing: .15em;
  margin: 0 0 12px;
  color: rgba(255,255,255,.5);
}

/* -- 戻るリンク（ボタン型） -- */
.back-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 260px;
  margin: 56px auto 0;
  padding: 16px 0;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  font-size: 15px;
  letter-spacing: .12em;
  transition: background .3s, border-color .3s, color .3s, box-shadow .3s;
}
.back-link:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.5);
  color: #fff;
  box-shadow: 0 0 20px rgba(200,160,220,.12);
}

/* -- Upcoming pill -- */
.upcoming-pill {
  background: #c9a0dc;
  color: #1a0d24;
}

/* -- ページネーション -- */
.pagination {
  text-align: center;
  margin: 32px 0;
}
.pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 8px;
}
.pagination a, .pagination span {
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 4px;
  color: rgba(255,255,255,.6);
  text-decoration: none;
  font-size: 14px;
}
.pagination .current {
  background: rgba(255,255,255,.12);
  color: #fff;
  border-color: rgba(255,255,255,.4);
}
.pagination a:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}

/* -- No posts -- */
.no-posts {
  text-align: center;
  padding: 40px;
  color: rgba(255,255,255,.4);
}

/* -- エラー404 -- */
.error-404 {
  text-align: center;
  padding: 80px 16px;
}
.error-404 h1 {
  font-size: 72px;
  margin: 0 0 16px;
}

/* -- ハンバーガー -- */
.hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #fff;
  margin: 5px 0;
  transition: .3s;
}
@media (max-width: 900px) {
  .hamburger { display: block; }
}

/* -- MOVIE ページ -- */
.movie-page {
  max-width: 900px;
  padding-bottom: 80px;
}
.movie-category {
  margin-bottom: 56px;
}
.movie-cat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 800px;
  margin: 0 auto 16px;
  padding: 0 16px;
}
.movie-cat-title {
  font-family: "Bodoni 72","Times New Roman","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size: 20px;
  letter-spacing: .1em;
  margin: 0;
}
.movie-yt-link {
  padding: 6px 18px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 20px;
  color: rgba(255,255,255,.6);
  font-size: 12px;
  text-decoration: none;
  transition: .2s;
}
.movie-yt-link:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
  border-color: rgba(255,255,255,.5);
}
.movie-panel {
  max-width: 800px;
  margin: 0 auto;
  padding: 28px 24px;
}
.movie-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.movie-card {
  display: block;
  text-decoration: none;
  color: #fff;
  transition: opacity .2s;
}
.movie-card:hover {
  opacity: .8;
}
.movie-thumb {
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: rgba(255,255,255,.04);
}
.movie-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.movie-play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: .85;
  pointer-events: none;
}
.movie-card-title {
  font-size: 13px;
  line-height: 1.5;
  margin: 10px 0 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.movie-card-date {
  font-size: 12px;
  color: rgba(255,255,255,.45);
}

/* -- CONTACT ページ -- */
.contact-page {
  padding-bottom: 80px;
}
.contact-page .line-panel {
  max-width: 700px;
  margin: 0 auto;
  padding: 40px 48px 48px;
}
.contact-lead {
  font-size: 13px;
  line-height: 1.9;
  color: rgba(255,255,255,.6);
  margin: 0 0 32px;
}
.contact-page .page-body p { margin: 0; }

/* CF7 フォーム全体 */
.contact-page .wpcf7 form {
  max-width: 100%;
}
.contact-page .wpcf7 form > p,
.contact-page .wpcf7 form > label {
  display: block;
  margin-bottom: 28px;
}
.contact-page .wpcf7 label {
  display: block;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: .05em;
}
/* 入力フィールド */
.contact-page .wpcf7 input[type="text"],
.contact-page .wpcf7 input[type="email"],
.contact-page .wpcf7 textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: 10px;
  padding: 14px 16px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 4px;
  color: #fff;
  font-size: 15px;
  font-family: inherit;
  transition: border-color .2s;
}
.contact-page .wpcf7 input[type="text"]:focus,
.contact-page .wpcf7 input[type="email"]:focus,
.contact-page .wpcf7 textarea:focus {
  outline: none;
  border-color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.08);
}
.contact-page .wpcf7 textarea {
  min-height: 180px;
  resize: vertical;
}

/* ラジオボタン（ピル型） */
.contact-page .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.contact-page .wpcf7-radio .wpcf7-list-item {
  margin: 0 !important;
}
.contact-page .wpcf7-radio .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 28px;
  font-size: 13px;
  font-weight: normal;
  cursor: pointer;
  transition: .2s;
  margin-bottom: 0;
  color: rgba(255,255,255,.65);
}
.contact-page .wpcf7-radio .wpcf7-list-item label:hover {
  border-color: rgba(255,255,255,.45);
  color: #fff;
}
.contact-page .wpcf7-radio .wpcf7-list-item:has(input:checked) label {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.5);
  color: #fff;
}

/* プライバシーポリシーリンク */
.privacy-note {
  margin: 28px 0 12px !important;
}
.privacy-note a {
  display: inline-block;
  padding: 10px 24px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 4px;
  color: rgba(255,255,255,.65);
  font-size: 13px;
  text-decoration: none;
  transition: .2s;
}
.privacy-note a:hover {
  background: rgba(255,255,255,.06);
  color: #fff;
  border-color: rgba(255,255,255,.4);
}

/* 同意チェック */
.contact-page .wpcf7-acceptance {
  margin: 16px 0 8px;
  font-size: 14px;
}
.contact-page .wpcf7-acceptance label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: normal;
  cursor: pointer;
}
.contact-page .wpcf7-acceptance input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: rgba(255,255,255,.6);
}

/* 送信ボタン */
.contact-page .wpcf7 input[type="submit"] {
  display: block;
  width: 220px;
  margin: 36px auto 0;
  padding: 16px 0;
  background: transparent;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 4px;
  color: #fff;
  font-size: 15px;
  letter-spacing: .2em;
  cursor: pointer;
  transition: .25s;
}
.contact-page .wpcf7 input[type="submit"]:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.55);
}

/* CF7 レスポンスメッセージ */
.contact-page .wpcf7-response-output {
  text-align: center;
  font-size: 14px;
  margin-top: 20px;
  border-color: rgba(255,255,255,.2) !important;
}

/* -- レスポンシブ追加 -- */
@media (max-width: 900px) {
  .news-title, .release-title, .show-title { font-size: 20px; }
  .release-cover { max-width: 280px; }
  .show-details { grid-template-columns: 1fr; }
  /* MOVIE */
  .movie-card-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .movie-cat-header { padding: 0 12px; }
  .movie-panel { padding: 16px 12px; }
  .movie-card-title { font-size: 11px; }
  .movie-play-icon svg { width: 32px; height: 32px; }
  /* CONTACT */
  .contact-page .line-panel { padding: 28px 20px 36px; }
  .contact-page .wpcf7-radio { gap: 8px; }
  .contact-page .wpcf7-radio .wpcf7-list-item label { padding: 8px 16px; font-size: 12px; }
}

/* ================================================================
   Scroll Animations
   ================================================================ */

/* --- Base animation class (applied by JS) --- */
.anim-in {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .75s cubic-bezier(.22,1,.36,1),
              transform .75s cubic-bezier(.22,1,.36,1);
}
.anim-in.is-visible {
  opacity: 1;
  transform: none;
}

/* Staggered children (cards, items) */
.anim-stagger > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s cubic-bezier(.22,1,.36,1),
              transform .6s cubic-bezier(.22,1,.36,1);
}
.anim-stagger.is-visible > *:nth-child(1) { transition-delay: .05s; }
.anim-stagger.is-visible > *:nth-child(2) { transition-delay: .12s; }
.anim-stagger.is-visible > *:nth-child(3) { transition-delay: .19s; }
.anim-stagger.is-visible > *:nth-child(4) { transition-delay: .26s; }
.anim-stagger.is-visible > *:nth-child(5) { transition-delay: .33s; }
.anim-stagger.is-visible > *:nth-child(6) { transition-delay: .40s; }
.anim-stagger.is-visible > * {
  opacity: 1;
  transform: none;
}

/* Ornamental header shimmer */
@keyframes orn-shimmer {
  0%, 100% { opacity: .7; }
  50% { opacity: 1; }
}
.orn-head img {
  animation: orn-shimmer 4s ease-in-out infinite;
}
.orn-head img:last-child {
  animation-delay: 2s;
}

/* Hero text entrance */
@keyframes hero-fade {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}

/* ================================================================
   WORLD Page Premium Effects
   ================================================================ */

/* Parallax-like fixed backgrounds */
.world-page {
  background-attachment: fixed;
}

/* Opening section: dramatic text entrance */
.world-opening h1 {
  animation: world-title-in 1.2s cubic-bezier(.22,1,.36,1) both;
}
@keyframes world-title-in {
  from { opacity: 0; transform: translateY(40px); letter-spacing: .2em; }
  to   { opacity: 1; transform: none; letter-spacing: .08em; }
}

/* Rule line grows in */
.world-rule {
  animation: rule-grow 1s .6s cubic-bezier(.22,1,.36,1) both;
  transform-origin: top;
}
@keyframes rule-grow {
  from { transform: scaleY(0); opacity: 0; }
  to   { transform: scaleY(1); opacity: 1; }
}

/* World copy fade in */
.world-copy {
  animation: world-copy-in 1s .9s cubic-bezier(.22,1,.36,1) both;
}
@keyframes world-copy-in {
  from { opacity: 0; transform: translateX(-50%) translateY(20px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* Glow effect on world headings */
.world-profile h2 {
  text-shadow: 0 0 30px rgba(200,160,240,.2);
}
.world-page.alter .world-profile h2 {
  text-shadow: 0 0 30px rgba(180,40,60,.25);
}

/* Lore blocks: enhanced atmosphere */
.lore-overlay {
  transition: background .4s, box-shadow .4s;
}
.lore-overlay:hover {
  background: rgba(41,24,55,.72);
  box-shadow: 0 0 40px rgba(160,120,200,.1);
}
.is-red .lore-overlay:hover {
  background: rgba(0,0,0,.75);
  box-shadow: 0 0 40px rgba(180,40,60,.12);
}

/* Floating glow particles (CSS-only) */
.world-intro::before,
.world-intro::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(60px);
  opacity: .25;
  animation: float-glow 8s ease-in-out infinite alternate;
}
.world-intro::before {
  width: 300px; height: 300px;
  background: rgba(157,146,219,.5);
  top: 20%; left: 10%;
}
.world-intro::after {
  width: 200px; height: 200px;
  background: rgba(200,160,240,.4);
  bottom: 15%; right: 15%;
  animation-delay: 4s;
}
.world-page.alter .world-intro::before {
  background: rgba(140,20,40,.4);
}
.world-page.alter .world-intro::after {
  background: rgba(180,40,60,.3);
}
@keyframes float-glow {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(30px, -20px) scale(1.15); }
}

/* Dabalantis section glow */
.dabalantis-section .dab-content h2 {
  text-shadow: 0 2px 20px rgba(0,0,0,.3);
}
.dabalantis-section.alter .dab-content h2 {
  text-shadow: 0 0 30px rgba(180,40,60,.2);
}

/* Planet section atmosphere */
.world-planet::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 80%, rgba(157,146,219,.12), transparent 60%);
  pointer-events: none;
}
.world-planet.alter::after {
  background: radial-gradient(ellipse at 30% 80%, rgba(140,20,40,.1), transparent 60%);
}

/* World change button pulse */
.world-change.fixed {
  animation: change-pulse 3s ease-in-out infinite;
}
@keyframes change-pulse {
  0%, 100% { box-shadow: 0 8px 22px rgba(0,0,0,.22); }
  50%      { box-shadow: 0 8px 32px rgba(0,0,0,.35), 0 0 16px rgba(200,160,240,.12); }
}

/* Smooth section transitions with gradient dividers */
.world-opening + .world-intro {
  margin-top: -1px;
}

/* ================================================================
   Global Link & Interactive Polish
   ================================================================ */
.site-header nav a {
  position: relative;
  transition: opacity .3s;
}
.site-header nav a::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 0;
  height: 1px;
  background: rgba(255,255,255,.6);
  transition: width .3s, left .3s;
}
.site-header nav a:hover::after,
.site-header nav a.active::after {
  width: 100%;
  left: 0;
}

/* Movie cards lift */
.movie-card {
  transition: opacity .3s, transform .35s;
}
.movie-card:hover {
  opacity: 1 !important;
  transform: translateY(-3px);
}
.movie-thumb {
  box-shadow: 0 4px 16px rgba(0,0,0,.3);
  transition: box-shadow .35s;
}
.movie-card:hover .movie-thumb {
  box-shadow: 0 8px 28px rgba(0,0,0,.45);
}

/* Slider images subtle hover */
.slider-track img {
  transition: filter .4s;
  filter: brightness(.9);
}
.slider-track img:hover {
  filter: brightness(1);
}

/* ================================================================
   Reduced Motion
   ================================================================ */
@media (prefers-reduced-motion: reduce) {
  .anim-in,
  .anim-stagger > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .slider-track { animation: none !important; }
  .orn-head img { animation: none !important; }
  .world-opening h1 { animation: none !important; }
  .world-rule { animation: none !important; }
  .world-copy { animation: none !important; }
  .world-change.fixed { animation: none !important; }
  .world-intro::before,
  .world-intro::after { animation: none !important; }
}

.lightbox-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;cursor:zoom-out}
.lightbox-overlay.active{opacity:1;pointer-events:auto}
.lightbox-overlay img{max-width:92vw;max-height:92vh;object-fit:contain;border-radius:4px;transform:scale(.9);transition:transform .3s}
.lightbox-overlay.active img{transform:scale(1)}
img.zoomable{cursor:zoom-in}