:root{
  --bg:#fff8fc;
  --paper:#fffdfd;
  --ink:#3b2e43;
  --muted:#756879;
  --pink:#f49bc5;
  --pink-deep:#ee66ad;
  --pink-soft:#ffddea;
  --lav:#c8afe8;
  --lav-deep:#705783;
  --night:#34293d;
  --line:#ebdce9;
  --header-h:100px;
  --shadow:0 26px 80px rgba(83,55,92,.15);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{margin:0;color:var(--ink);background:var(--bg);font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP","Yu Gothic",Meiryo,serif;overflow-x:hidden}
body.menu-open{overflow:hidden}
img{display:block;width:100%;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
::selection{background:var(--pink-soft);color:var(--night)}
.skip-link{position:fixed;left:12px;top:-80px;z-index:999;background:#fff;padding:10px 14px;border-radius:12px;box-shadow:var(--shadow)}
.skip-link:focus{top:12px}

/* HEADER */
.site-header{position:fixed;inset:0 0 auto 0;height:var(--header-h);z-index:100;display:grid;grid-template-columns:260px 1fr auto;align-items:center;gap:clamp(18px,2.8vw,46px);padding:0 clamp(28px,4.5vw,78px);background:rgba(255,253,255,.94);border-bottom:1px solid rgba(235,218,233,.92);backdrop-filter:blur(20px) saturate(1.08);transition:.3s ease}
.site-header.is-scrolled{height:78px;background:rgba(255,253,255,.97);box-shadow:0 10px 35px rgba(73,52,84,.08)}
.brand{width:220px;display:block;overflow:hidden;border-radius:18px}
.brand img{height:74px;object-fit:cover;object-position:center;mix-blend-mode:multiply;transition:.3s}
.site-header.is-scrolled .brand img{height:60px}
.global-nav{justify-self:center;display:flex;height:100%;align-items:stretch;gap:clamp(14px,2vw,32px)}
.nav-link{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:max-content;padding:0 2px;font:700 .75rem/1 Arial,sans-serif;letter-spacing:.14em;color:#47384f;transition:.2s}
.nav-link small{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:.59rem;letter-spacing:.03em;font-weight:500;color:#75687a}
.nav-link::after{content:"";position:absolute;left:50%;bottom:0;width:0;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--pink-deep),var(--lav));transform:translateX(-50%);transition:width .25s ease}
.nav-link:hover,.nav-link.is-active{color:var(--pink-deep)}
.nav-link:hover::after,.nav-link.is-active::after{width:100%}
.header-actions{display:flex;align-items:center;gap:10px}
.mini-social{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-family:Arial,sans-serif;font-weight:700;color:#604a6b;transition:.2s}
.mini-social:hover{background:#f7e9f1;color:var(--pink-deep);transform:translateY(-2px)}
.contact-button{display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;background:linear-gradient(120deg,#9a729e,#82618d);color:#fff;font-size:.77rem;letter-spacing:.05em;box-shadow:0 10px 28px rgba(108,77,122,.2);transition:.25s}
.contact-button:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(108,77,122,.26)}
.menu-button{display:none;border:0;background:transparent;width:44px;height:44px;padding:10px;cursor:pointer}
.menu-button span{display:block;width:24px;height:1px;background:var(--ink);margin:6px auto;transition:.25s}

/* HERO */
.hero{position:relative;min-height:100svh;padding-top:var(--header-h);display:grid;grid-template-columns:minmax(0,51.5%) minmax(0,48.5%);overflow:hidden;background:#fffafc}
.hero::before{content:"";position:absolute;inset:var(--header-h) 0 0;pointer-events:none;background:radial-gradient(circle at 75% 38%,rgba(255,255,255,.98) 0 24%,rgba(255,250,253,.78) 47%,transparent 69%),linear-gradient(112deg,#f4deea 0%,#f9ebf3 42%,#fff 63%,#fff9fd 100%);z-index:0}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:17%;z-index:4;pointer-events:none;background:linear-gradient(to top,rgba(255,247,251,.96),rgba(255,247,251,.64) 35%,transparent)}
.hero-left,.hero-right{position:relative;z-index:2;min-height:calc(100svh - var(--header-h));will-change:transform}
.hero-left{overflow:hidden;background:#f5e5ee}
.hero-left-art{position:absolute;inset:0;background-image:url('../images/hero-left.webp');background-size:cover;background-position:center 47%;filter:saturate(.96) brightness(1.02)}
.hero-left-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,235,245,.03) 0%,transparent 68%,rgba(255,250,253,.96) 100%),linear-gradient(to top,rgba(255,246,251,.2),transparent 28%);pointer-events:none}
.hero-right{display:flex;align-items:center;justify-content:center;padding:clamp(56px,6vw,96px) clamp(74px,7vw,126px) clamp(118px,10vw,155px) clamp(42px,4vw,72px)}
.hero-copy{position:relative;width:min(100%,720px);z-index:5}
.hero-overline{margin:0 0 22px;font:800 .66rem/1 Arial,sans-serif;letter-spacing:.31em;color:#9f82a5}
.hero-title{margin:0;font-size:clamp(3rem,5.25vw,5.7rem);line-height:1.34;font-weight:600;letter-spacing:.035em;color:#352b3b;text-wrap:balance}
.hero-title span{display:block;white-space:nowrap}
.hero-title em{font-style:normal;color:var(--pink-deep);font-size:1.12em;font-weight:700;text-shadow:0 8px 26px rgba(235,103,170,.12)}
.title-stroke{width:min(82%,520px);height:17px;margin:4px 0 24px;background:linear-gradient(90deg,transparent 0 4%,rgba(238,102,173,.85) 14% 84%,transparent 98%);mask:linear-gradient(175deg,transparent 0 38%,#000 42% 51%,transparent 55%);opacity:.6}
.hero-hand{position:absolute;margin:0;font-family:"Segoe Print","Comic Sans MS",cursive;font-style:italic;color:var(--pink-deep);line-height:1.25;transform:rotate(-6deg);text-shadow:0 2px 16px rgba(255,255,255,.95)}
.hero-hand-top{right:0;top:-28px;font-size:clamp(.95rem,1.35vw,1.35rem);text-align:center}
.hero-description{margin:0;color:#66596d;font-size:clamp(.86rem,.98vw,1rem);line-height:2.05;letter-spacing:.035em}
.favorite-row{display:flex;gap:clamp(10px,1.15vw,17px);margin-top:26px;flex-wrap:wrap}
.favorite-item{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:68px;color:#57465f;font-size:.74rem;transition:.22s}
.favorite-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;font-family:Arial,sans-serif;font-size:1.25rem;color:#76588f;background:linear-gradient(145deg,rgba(255,220,236,.96),rgba(225,212,250,.96));box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),0 9px 22px rgba(109,80,121,.08)}
.favorite-item:nth-child(5) .favorite-icon{color:#e75fa6}.favorite-item:hover{transform:translateY(-4px);color:var(--pink-deep)}
.hero-actions{display:flex;gap:14px;margin-top:30px}
.hero-button{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;width:min(48%,280px);padding:15px 20px;border-radius:999px;color:#fff;overflow:hidden;box-shadow:0 12px 34px rgba(101,70,114,.2);transition:.24s}
.hero-button::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.22),transparent 45%);opacity:.7}
.hero-button.primary{background:linear-gradient(115deg,#ef73b4,#c76ca9)}
.hero-button.secondary{background:linear-gradient(115deg,#72577f,#936987)}
.hero-button:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(101,70,114,.28)}
.button-symbol{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.18);font-size:1.18rem}.button-symbol.play{font-size:.82rem}
.hero-button>span:nth-child(2){position:relative;z-index:1;display:grid;gap:4px}.hero-button strong{font:700 .93rem/1 Arial,sans-serif;letter-spacing:.17em}.hero-button small{font-size:.7rem;opacity:.9}.arrow{position:relative;z-index:1;font-size:1.8rem;font-family:Arial,sans-serif;opacity:.9}
.hero-charms{position:absolute;right:2.2%;top:6%;width:150px;height:210px;z-index:3;pointer-events:none}
.charm{position:absolute;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.56);border:1px solid rgba(236,213,232,.8);box-shadow:0 18px 38px rgba(102,73,113,.12);backdrop-filter:blur(7px);animation:float 5s ease-in-out infinite}.charm.moon{left:22px;top:5px;width:62px;height:62px;font-size:2rem;color:#b18ac8}.charm.bow{right:0;top:55px;width:56px;height:56px;border-radius:20px;color:#3e3148;transform:rotate(45deg);animation-delay:-1.2s}.charm.heart{left:28px;bottom:10px;width:48px;height:48px;font-size:1.5rem;color:var(--pink-deep);animation-delay:-2s}
@keyframes float{50%{transform:translateY(-10px) rotate(2deg)}}
.hero-side-note{position:absolute;z-index:7;right:14px;top:31%;display:flex;flex-direction:column;align-items:center;gap:5px;padding:18px 10px 14px;border-radius:6px;background:rgba(255,253,255,.82);border:1px solid rgba(237,217,233,.9);box-shadow:0 14px 34px rgba(81,58,89,.08);writing-mode:vertical-rl;font-size:.72rem;letter-spacing:.09em;color:#67566d}.hero-side-note b{font-size:1.15rem;color:var(--pink-deep)}
.hero-footer-note{position:absolute;z-index:6;left:3.6%;bottom:4.1%;display:flex;align-items:center;gap:13px;color:#8c778e;font-size:.76rem;letter-spacing:.08em}.hero-footer-note i{width:30px;height:1px;background:#cbb2c9}
.scroll-cue{position:absolute;z-index:8;left:50%;bottom:3.5%;transform:translateX(-50%);display:grid;justify-items:center;gap:6px;color:#63536a}.scroll-cue small{font:700 .6rem/1 Arial,sans-serif;letter-spacing:.16em}.mouse{display:block;width:18px;height:30px;border:1px solid #65526e;border-radius:999px;position:relative}.mouse i{position:absolute;width:2px;height:6px;left:50%;top:5px;transform:translateX(-50%);background:#6f5a75;border-radius:99px;animation:wheel 1.7s ease-in-out infinite}@keyframes wheel{0%,100%{opacity:.25;transform:translate(-50%,0)}50%{opacity:1;transform:translate(-50%,8px)}}
.hero-animate{opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease}.hero.is-ready .hero-animate{opacity:1;transform:none}.hero.is-ready .hero-animate:nth-child(2){transition-delay:.08s}.hero.is-ready .hero-animate:nth-child(3){transition-delay:.15s}.hero.is-ready .hero-animate:nth-child(5){transition-delay:.23s}.hero.is-ready .hero-animate:nth-child(6){transition-delay:.32s}.hero.is-ready .hero-animate:nth-child(7){transition-delay:.41s}

/* CONTENT */
.intro-strip{position:relative;z-index:9;padding:19px 24px;text-align:center;background:linear-gradient(90deg,#b695c7,#d5a1c4,#a88bc1);color:#fff;border-top:1px solid rgba(255,255,255,.65);box-shadow:0 -12px 34px rgba(76,51,88,.08)}
.intro-strip p{margin:0;letter-spacing:.2em;font-size:.88rem}.intro-strip em{font-style:normal;color:#fff0f8}
.section{padding:clamp(82px,9vw,132px) clamp(24px,7vw,110px);background:linear-gradient(180deg,#fff 0%,#fff9fc 100%)}
.section-heading{max-width:760px;margin:0 auto 48px;text-align:center}.section-kicker{margin:0;font:800 .7rem/1.2 Arial,sans-serif;letter-spacing:.25em;color:var(--lav-deep)}.section-kicker.light{color:#eadcf0}.section-heading h2{font-size:clamp(2rem,4vw,3.5rem);margin:.33em 0 .4em;letter-spacing:.04em}.section-heading>p:last-child{color:var(--muted);line-height:1.9}
.about-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:28px;max-width:1200px;margin:auto}.profile-card,.concept-card{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.profile-card{display:grid;grid-template-columns:.9fr 1.1fr;overflow:hidden}.profile-image-wrap{min-height:520px}.profile-image-wrap img{height:100%;object-fit:cover;object-position:center top}.profile-copy{padding:clamp(28px,4vw,54px);display:flex;flex-direction:column;justify-content:center}.name-row h3{font-size:clamp(2.2rem,4vw,4rem);margin:0}.name-row span{display:block;margin-top:.35rem;font:700 .72rem/1 Arial,sans-serif;letter-spacing:.28em;color:var(--pink-deep)}dl{margin:34px 0 0}dl div{display:grid;grid-template-columns:90px 1fr;padding:15px 0;border-bottom:1px dashed var(--line)}dt{font-size:.78rem;color:var(--muted)}dd{margin:0;font-weight:700;line-height:1.7}.concept-card{padding:clamp(30px,4vw,52px);position:relative;overflow:hidden}.concept-card::after{content:"♡";position:absolute;right:-20px;bottom:-48px;font-size:12rem;color:#f7d9ea}.concept-card>*{position:relative;z-index:1}.card-label{font:800 .7rem/1 Arial,sans-serif;letter-spacing:.22em;color:var(--lav-deep)}.concept-quote{font-size:clamp(2rem,4vw,3.5rem);line-height:1.4;color:var(--pink-deep);margin:28px 0}.concept-card>p:not(.concept-quote){line-height:2;color:var(--muted)}.signature-card{margin-top:28px;text-align:right;font-family:"Segoe Print","Comic Sans MS",cursive;font-size:2rem;color:var(--pink-deep)}
.stream{padding-top:40px}.stream-panel{max-width:1200px;margin:auto;padding:clamp(32px,5vw,64px);border-radius:34px;background:linear-gradient(130deg,#342b40 0%,#635178 62%,#a16d91 100%);color:#fff;display:grid;grid-template-columns:1fr .8fr;gap:40px;align-items:center;box-shadow:0 30px 70px rgba(44,34,58,.24)}.stream-panel h2{font-size:clamp(2rem,4vw,3.7rem);margin:.35em 0}.stream-panel p{line-height:1.9;color:#eee1ef}.stream-card{padding:28px;border-radius:24px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(8px)}.live-pill{display:inline-block;padding:8px 12px;border-radius:999px;background:#fff;color:var(--pink-deep);font:800 .62rem/1 Arial,sans-serif;letter-spacing:.15em}.stream-title{font-size:1.35rem!important;font-weight:700;margin:22px 0 6px!important}.stream-note{margin:0!important;font-size:.9rem}
.gallery-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:16px}.gallery-item{position:relative;margin:0;border-radius:24px;overflow:hidden;background:#eee}.gallery-item img{height:100%;object-fit:cover;transition:.45s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item figcaption{position:absolute;left:14px;bottom:14px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.84);backdrop-filter:blur(10px);font:800 .62rem/1 Arial,sans-serif;letter-spacing:.16em}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}
.schedule{padding-top:52px}.schedule-card{max-width:1000px;margin:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:26px;padding:24px 28px;border-radius:26px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.schedule-date{display:grid;place-items:center;width:74px;height:74px;border-radius:22px;background:linear-gradient(145deg,#ffe1ee,#e4d7fb);font:800 .7rem/1 Arial,sans-serif;letter-spacing:.18em;color:#745982}.schedule-card div{display:grid;gap:6px}.schedule-card strong{font-size:1.12rem}.schedule-card small{color:var(--muted)}.schedule-card>a{padding:12px 16px;border-radius:999px;background:#f9edf4;color:#845f82;font-size:.78rem;font-weight:700}.schedule-card>a span{margin-left:8px}
.link-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:1050px;margin:auto}.social-link{display:grid;gap:6px;padding:25px;border-radius:22px;background:#fff;border:1px solid var(--line);transition:.25s}.social-link:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.social-link span{font-size:1.7rem;color:var(--pink-deep)}.social-link strong{font-size:1.1rem}.social-link small{color:var(--muted)}
.master-guide-section{max-width:1200px;margin:20px auto 100px;padding:0 24px;display:grid;grid-template-columns:.65fr 1.35fr;gap:34px;align-items:center}.master-guide-copy h2{font-size:clamp(2rem,4vw,3.2rem);margin:.45em 0}.master-guide-copy p{color:var(--muted);line-height:1.9}.master-guide-image{display:block;border-radius:26px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.site-footer{text-align:center;padding:58px 24px 70px;background:#2f2938;color:#f9f2fa}.footer-brand{width:210px;margin:0 auto 18px;border-radius:18px;mix-blend-mode:screen;opacity:.94}.site-footer p{color:#d9cadb}.site-footer small{color:#9f91a7}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}.reveal.is-visible{opacity:1;transform:none}

/* TABLET */
@media (max-width:1280px){
  :root{--header-h:86px}.site-header{grid-template-columns:205px 1fr auto;padding:0 26px;gap:20px}.brand{width:185px}.brand img{height:65px}.global-nav{gap:15px}.nav-link{font-size:.69rem}.header-actions .mini-social:nth-of-type(3){display:none}.contact-button{padding:10px 14px}.hero{grid-template-columns:50% 50%}.hero-right{padding-left:28px;padding-right:58px}.hero-title{font-size:clamp(2.8rem,5.2vw,4.8rem)}.hero-charms{transform:scale(.86);transform-origin:top right}.hero-side-note{display:none}.favorite-icon{width:54px;height:54px}.favorite-item{min-width:60px}
}

@media (max-width:1020px){
  .site-header{grid-template-columns:auto 1fr auto}.brand{z-index:102;width:180px}.header-actions{display:none}.menu-button{display:block;justify-self:end;z-index:102}.menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .global-nav{position:fixed;inset:0;z-index:101;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:rgba(255,249,252,.985);backdrop-filter:blur(22px);opacity:0;visibility:hidden;transform:translateY(-12px);transition:.25s}.global-nav.open{opacity:1;visibility:visible;transform:none}.nav-link{height:auto;padding:9px 24px;font-size:.95rem}.nav-link::after{bottom:2px}.nav-link small{font-size:.68rem}
  .hero{display:block;min-height:auto;padding-top:var(--header-h)}.hero::before{inset:var(--header-h) 0 0}.hero-left{min-height:66svh}.hero-left-art{background-position:center 43%}.hero-left-wash{background:linear-gradient(to bottom,transparent 70%,rgba(255,249,252,.96) 100%)}.hero-right{min-height:auto;padding:44px 24px 120px;text-align:center;background:linear-gradient(180deg,#fffafd 0%,#fff 100%)}.hero-copy{max-width:760px}.hero-overline{margin-bottom:16px}.hero-title span{white-space:normal}.hero-hand-top{position:static;margin:0 0 4px;transform:none;text-align:center}.title-stroke{margin-left:auto;margin-right:auto}.hero-description{max-width:630px;margin:auto}.favorite-row{justify-content:center}.hero-actions{justify-content:center}.hero-button{width:min(44%,280px)}.hero-charms{display:none}.hero-footer-note{display:none}.scroll-cue{bottom:2.2%}.about-grid,.stream-panel,.master-guide-section{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}.link-grid{grid-template-columns:repeat(2,1fr)}
}

/* PHONE */
@media (max-width:640px){
  :root{--header-h:72px}.site-header{padding:0 14px env(safe-area-inset-right) 0 env(safe-area-inset-left);padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.brand{width:150px}.brand img{height:54px}.site-header.is-scrolled{height:68px}.site-header.is-scrolled .brand img{height:50px}.hero-left{min-height:57svh}.hero-left-art{background-position:42% 45%}.hero-right{padding:30px 18px 104px}.hero-overline{letter-spacing:.22em;font-size:.57rem}.hero-title{font-size:clamp(2.2rem,11vw,3.2rem);line-height:1.38}.hero-description{font-size:.84rem;line-height:1.95}.desktop-only{display:none}.favorite-row{gap:6px;margin-top:21px}.favorite-item{min-width:53px;font-size:.65rem}.favorite-icon{width:45px;height:45px;font-size:1.05rem}.hero-actions{display:grid;gap:10px}.hero-button{width:min(100%,360px);margin:auto}.hero-footer-note{display:none}.intro-strip{padding:15px 16px}.intro-strip p{font-size:.72rem;letter-spacing:.1em}.section{padding:74px 18px}.profile-card{grid-template-columns:1fr}.profile-image-wrap{min-height:430px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:340px}.gallery-item.tall,.gallery-item.wide{grid-row:auto;grid-column:auto}.link-grid{grid-template-columns:1fr}.master-guide-section{padding:0 18px;margin-bottom:70px}.concept-quote{font-size:2rem}.schedule-card{grid-template-columns:auto 1fr;gap:16px;padding:20px}.schedule-card>a{grid-column:1/-1;text-align:center}.schedule-date{width:62px;height:62px;border-radius:18px}
}

@media (max-width:420px){.brand{width:138px}.favorite-row{gap:3px}.favorite-item{min-width:49px}.favorite-icon{width:42px;height:42px}.hero-title{font-size:2.35rem}.stream-panel{padding:26px 20px}}
@media (max-height:760px) and (min-width:1021px){.site-header{height:82px}.hero{padding-top:82px}.hero-left,.hero-right{min-height:calc(100svh - 82px)}.hero-right{padding-top:34px;padding-bottom:92px}.hero-title{font-size:clamp(2.8rem,4.6vw,4.5rem)}.favorite-icon{width:50px;height:50px}.hero-actions{margin-top:21px}.hero-description{line-height:1.85}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.hero-animate,.reveal{opacity:1!important;transform:none!important}.hero-left,.hero-right{transform:none!important}}

/* =========================================================
   VER.4 PRECISION TUNING
   Reference: 1920x1080 desktop / 375x667 iPhone SE captures
   Goal: preserve the approved visual direction while tightening
   character framing, title scale, margins and small-screen fold.
   ========================================================= */

/* The extracted hero artwork already contains its own lower caption
   and SCROLL mark, so avoid drawing a second copy over it. */
.hero-footer-note,
.scroll-cue{display:none}

/* Desktop: give the copy a little more breathing room and keep the
   two Japanese title lines comfortably inside the right column. */
@media (min-width:1281px){
  .hero{grid-template-columns:minmax(0,52%) minmax(0,48%)}
  .hero-left-art{background-position:49% 47%}
  .hero-right{
    padding-top:clamp(46px,4.4vw,76px);
    padding-right:clamp(58px,4.8vw,92px);
    padding-bottom:clamp(106px,8vw,138px);
    padding-left:clamp(44px,3.25vw,64px)
  }
  .hero-copy{width:min(100%,770px)}
  .hero-overline{margin-bottom:18px;font-size:.64rem;letter-spacing:.29em}
  .hero-title{
    font-size:clamp(3.55rem,4.22vw,5rem);
    line-height:1.31;
    letter-spacing:.025em
  }
  .hero-title em{font-size:1.10em}
  .hero-hand-top{right:1.5%;top:-24px;font-size:clamp(.92rem,1.12vw,1.22rem)}
  .title-stroke{width:min(74%,470px);margin-top:0;margin-bottom:22px}
  .hero-description{font-size:clamp(.84rem,.88vw,.96rem);line-height:1.98}
  .favorite-row{margin-top:24px;gap:clamp(9px,.9vw,15px)}
  .favorite-item{min-width:64px;gap:7px;font-size:.72rem}
  .favorite-icon{width:56px;height:56px;font-size:1.18rem}
  .hero-actions{margin-top:27px;gap:13px}
  .hero-button{width:min(48%,292px);padding:14px 19px}
  .hero-charms{right:1.55%;top:5.2%;transform:scale(.94);transform-origin:top right}
  .hero-side-note{right:1.15%}
}

/* 1280-class laptops: reduce the headline before it reaches the
   edge while keeping the approved two-column composition. */
@media (min-width:1021px) and (max-width:1280px){
  .hero{grid-template-columns:51.5% 48.5%}
  .hero-left-art{background-position:49% 47%}
  .hero-right{padding-left:30px;padding-right:46px;padding-top:42px;padding-bottom:104px}
  .hero-copy{width:min(100%,650px)}
  .hero-title{font-size:clamp(2.8rem,4.45vw,3.75rem);line-height:1.32;letter-spacing:.02em}
  .hero-title em{font-size:1.09em}
  .hero-hand-top{top:-19px;right:0;font-size:.92rem}
  .title-stroke{width:72%;margin-bottom:20px}
  .hero-description{font-size:.82rem;line-height:1.92}
  .favorite-row{margin-top:21px;gap:8px}
  .favorite-item{min-width:55px;font-size:.68rem}
  .favorite-icon{width:49px;height:49px;font-size:1.05rem}
  .hero-actions{margin-top:23px}
  .hero-button{padding:13px 16px}
}

/* Tablet/mobile: the artwork becomes its own visual panel.  Using a
   bounded viewport height avoids the image consuming almost the whole
   first screen on short phones. */
@media (max-width:1020px){
  .hero-left{min-height:clamp(330px,52svh,520px)}
  .hero-left-art{background-position:47% 44%}
  .hero-right{padding-top:34px;padding-bottom:88px}
  .hero-copy{width:min(100%,700px)}
  .hero-title{line-height:1.34}
  .title-stroke{margin-bottom:20px}
}

/* Phone precision pass.  Keep the approved title on exactly two lines
   even on 375px-wide devices, reduce dead space, and bring the right
   panel into view earlier on iPhone SE-sized screens. */
@media (max-width:640px){
  :root{--header-h:70px}
  .site-header{
    height:var(--header-h);
    padding-left:max(13px,env(safe-area-inset-left));
    padding-right:max(13px,env(safe-area-inset-right))
  }
  .brand{width:144px;border-radius:14px}
  .brand img{height:52px}
  .site-header.is-scrolled{height:64px}
  .site-header.is-scrolled .brand img{height:48px}
  .menu-button{width:42px;height:42px;padding:9px}

  .hero-left{min-height:clamp(300px,48svh,430px)}
  .hero-left-art{background-position:46% 43%}
  .hero-left-wash{background:linear-gradient(to bottom,transparent 76%,rgba(255,249,252,.95) 100%)}

  .hero-right{padding:24px 17px 72px;text-align:center}
  .hero-copy{width:100%;max-width:420px;margin-inline:auto}
  .hero-hand-top{margin-bottom:3px;font-size:.78rem;line-height:1.18}
  .hero-overline{margin-bottom:13px;font-size:.52rem;letter-spacing:.20em}
  .hero-title{
    font-size:clamp(1.78rem,8.8vw,2.15rem);
    line-height:1.33;
    letter-spacing:.012em;
    text-wrap:normal
  }
  .hero-title span{white-space:nowrap}
  .hero-title em{font-size:1.08em}
  .title-stroke{width:min(68%,220px);height:12px;margin-top:1px;margin-bottom:16px}
  .hero-description{max-width:350px;font-size:.78rem;line-height:1.88;letter-spacing:.015em}
  .favorite-row{margin-top:18px;gap:4px;flex-wrap:nowrap;justify-content:center}
  .favorite-item{min-width:48px;gap:6px;font-size:.62rem}
  .favorite-icon{width:40px;height:40px;font-size:.96rem}
  .hero-actions{margin-top:20px;gap:9px}
  .hero-button{width:min(100%,340px);min-height:58px;padding:11px 16px}
  .button-symbol{width:34px;height:34px;font-size:1rem}
  .hero-button strong{font-size:.82rem;letter-spacing:.14em}
  .hero-button small{font-size:.64rem}
  .arrow{font-size:1.55rem}

  .intro-strip{padding:13px 14px}
  .intro-strip p{font-size:.68rem;letter-spacing:.08em}

  .section{padding:68px 17px}
  .section-heading{margin-bottom:34px}
  .section-heading h2{margin:.38em 0 .62em}
  .section-heading>p:last-child{line-height:1.8}
  .profile-card{border-radius:24px}
  .profile-image-wrap{min-height:0;aspect-ratio:3/4}
  .profile-copy{padding:28px 24px 30px}
  dl{margin-top:24px}
  dl div{grid-template-columns:76px 1fr;padding:13px 0}
  .concept-card{padding:28px 24px}
}

/* Very short phones such as iPhone SE in landscape-height emulation. */
@media (max-width:420px) and (max-height:700px){
  .hero-left{min-height:clamp(286px,45svh,315px)}
  .hero-right{padding-top:20px}
  .hero-hand-top{font-size:.74rem}
  .hero-overline{margin-bottom:11px}
  .hero-title{font-size:clamp(1.72rem,8.55vw,2rem);line-height:1.30}
  .title-stroke{margin-bottom:13px}
  .hero-description{font-size:.75rem;line-height:1.78}
}

/* =========================================================
   VER.5 STREAM SHOWCASE
   Main stream hub: next stream / upcoming / archive
   ========================================================= */
.stream-showcase{
  position:relative;
  padding-top:clamp(86px,8vw,116px);
  padding-bottom:clamp(94px,9vw,132px);
  overflow:hidden;
  background:
    radial-gradient(circle at 14% 18%,rgba(244,155,197,.20),transparent 29%),
    radial-gradient(circle at 88% 74%,rgba(200,175,232,.22),transparent 31%),
    linear-gradient(145deg,#302838 0%,#45364f 48%,#73546d 100%);
  color:#fff;
}
.stream-showcase::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.55;
  background-image:
    radial-gradient(circle at 20% 23%,rgba(255,255,255,.8) 0 1px,transparent 1.6px),
    radial-gradient(circle at 74% 16%,rgba(255,255,255,.6) 0 1px,transparent 1.6px),
    radial-gradient(circle at 81% 61%,rgba(255,255,255,.45) 0 1px,transparent 1.6px),
    radial-gradient(circle at 36% 82%,rgba(255,255,255,.45) 0 1px,transparent 1.6px);
  background-size:210px 210px,280px 280px,240px 240px,310px 310px;
}
.stream-shell{position:relative;z-index:1;max-width:1220px;margin:0 auto}
.stream-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:38px}
.stream-heading h2{margin:.25em 0 0;font-size:clamp(2.4rem,4.4vw,4rem);letter-spacing:.06em}
.stream-heading>p{max-width:430px;margin:0 0 7px;text-align:right;color:#e8dce9;line-height:1.95}

.stream-feature-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);gap:22px;align-items:stretch}
.stream-hero-card,.stream-next-card,.stream-upcoming,.stream-archives{border:1px solid rgba(255,255,255,.17);box-shadow:0 28px 70px rgba(19,12,25,.28)}
.stream-hero-card{position:relative;min-height:520px;margin:0;border-radius:32px;overflow:hidden;background:#201b27}
.stream-hero-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;transition:transform .75s cubic-bezier(.2,.7,.2,1)}
.stream-hero-card:hover>img{transform:scale(1.025)}
.stream-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,18,31,.10) 20%,rgba(27,20,34,.24) 52%,rgba(28,20,36,.92) 100%)}
.stream-hero-topline{position:absolute;left:24px;top:24px;display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:999px;background:rgba(34,27,42,.58);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);font:800 .63rem/1 Arial,sans-serif;letter-spacing:.16em}
.stream-state-dot{width:8px;height:8px;border-radius:50%;background:#c6adc9;box-shadow:0 0 0 5px rgba(198,173,201,.12)}
.stream-state-dot.is-live{background:#ff579a;box-shadow:0 0 0 6px rgba(255,87,154,.15);animation:streamPulse 1.4s ease-in-out infinite}
@keyframes streamPulse{50%{box-shadow:0 0 0 10px rgba(255,87,154,0)}}
.stream-hero-copy{position:absolute;left:clamp(24px,4vw,44px);right:clamp(24px,4vw,44px);bottom:clamp(26px,4vw,42px);z-index:2}
.stream-hero-eyebrow{margin:0 0 10px!important;color:#f6cfe1!important;font:800 .68rem/1 Arial,sans-serif!important;letter-spacing:.24em}
.stream-hero-copy h3{max-width:660px;margin:0;font-size:clamp(2rem,3.2vw,3.35rem);line-height:1.35;letter-spacing:.04em}
.stream-hero-copy>p:last-child{margin:13px 0 0;color:#f2e7f1;line-height:1.7}

.stream-next-card{position:relative;display:flex;flex-direction:column;padding:clamp(28px,3.2vw,42px);border-radius:32px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,247,252,.91));color:var(--ink);overflow:hidden}
.stream-next-card::after{content:"♡";position:absolute;right:-18px;bottom:-54px;font-size:11rem;line-height:1;color:rgba(235,102,173,.10);transform:rotate(-10deg);pointer-events:none}
.stream-next-card>*{position:relative;z-index:1}
.stream-next-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.stream-next-label{font:800 .66rem/1 Arial,sans-serif;letter-spacing:.23em;color:var(--lav-deep)}
.stream-status-chip{padding:8px 12px;border-radius:999px;background:#f2e7f4;color:#80658b;font-size:.69rem;font-weight:700}
.stream-status-chip.is-live{background:#ffe0ed;color:#d84486}
.stream-next-date{margin-top:clamp(34px,4.2vw,54px);font:700 clamp(1.35rem,2.2vw,2rem)/1.2 Arial,sans-serif;letter-spacing:.08em;color:var(--pink-deep)}
.stream-next-title{margin:12px 0 0;font-size:clamp(1.75rem,2.5vw,2.55rem);line-height:1.48;letter-spacing:.025em}
.stream-next-description{margin:17px 0 0;color:var(--muted);line-height:1.9;font-size:.9rem}
.stream-meta-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}
.stream-meta-list>div{padding:14px 15px;border-radius:17px;background:#fbf1f6;border:1px solid #f1deeb}
.stream-meta-list span{display:block;margin-bottom:7px;font:800 .55rem/1 Arial,sans-serif;letter-spacing:.17em;color:#aa8dab}
.stream-meta-list strong{display:block;font-size:.85rem;line-height:1.5}
.stream-countdown{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:14px 15px;border-radius:17px;background:#3a3042;color:#fff}
.stream-countdown span{font:800 .56rem/1 Arial,sans-serif;letter-spacing:.18em;color:#dacbdd}
.stream-countdown strong{font:700 1rem/1 Arial,sans-serif;letter-spacing:.09em}
.stream-watch-button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;margin-top:auto;padding:15px 18px;border-radius:999px;background:linear-gradient(115deg,#ed72b3,#a36d9d);color:#fff;box-shadow:0 15px 34px rgba(173,87,143,.24);transition:.25s}
.stream-watch-button:not(.is-disabled):hover{transform:translateY(-3px);box-shadow:0 20px 40px rgba(173,87,143,.31)}
.stream-watch-button.is-disabled{cursor:default;opacity:.88}
.stream-watch-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.19);font-size:.75rem}
.stream-watch-button>span:nth-child(2){display:grid;gap:4px}
.stream-watch-button strong{font:800 .8rem/1 Arial,sans-serif;letter-spacing:.13em}
.stream-watch-button small{font-size:.62rem;opacity:.86}
.stream-watch-arrow{font:400 1.5rem/1 Arial,sans-serif}

.stream-content-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:22px;margin-top:22px}
.stream-upcoming,.stream-archives{padding:clamp(26px,3.4vw,40px);border-radius:30px;background:rgba(255,255,255,.075);backdrop-filter:blur(12px)}
.stream-block-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:23px}
.stream-block-heading>div>span{font:800 .6rem/1 Arial,sans-serif;letter-spacing:.23em;color:#e2cbe6}
.stream-block-heading h3{margin:7px 0 0;font-size:1.55rem;letter-spacing:.04em}
.stream-block-heading>p{margin:0;color:#cfc0d1;font-size:.75rem}
.stream-block-heading>a{font:700 .72rem/1 Arial,sans-serif;letter-spacing:.08em;color:#f2d6e5}
.stream-block-heading>a span{margin-left:8px}
.upcoming-list{display:grid;gap:10px}
.upcoming-item{display:grid;grid-template-columns:66px 1fr auto;gap:16px;align-items:center;padding:15px;border-radius:20px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.10);transition:.22s}
.upcoming-item:hover{background:rgba(255,255,255,.11);transform:translateX(3px)}
.upcoming-date{display:grid;place-items:center;align-content:center;width:60px;height:60px;border-radius:18px;background:linear-gradient(145deg,rgba(244,155,197,.28),rgba(200,175,232,.27));border:1px solid rgba(255,255,255,.12)}
.upcoming-date small{font:800 .48rem/1 Arial,sans-serif;letter-spacing:.13em;color:#f3dcea}
.upcoming-date strong{margin-top:5px;font:700 .95rem/1 Arial,sans-serif}
.upcoming-tag{font:700 .57rem/1 Arial,sans-serif;letter-spacing:.12em;color:#f3c7db}
.upcoming-item h4{margin:5px 0 4px;font-size:.92rem}
.upcoming-item p{margin:0;color:#cabdcd;font-size:.7rem}
.upcoming-arrow{font-size:1.25rem;color:#f2a8cb}

.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.archive-card{overflow:hidden;border-radius:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.10);transition:.25s}
.archive-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.115)}
.archive-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:#2c2434}
.archive-thumb img{width:100%;height:100%;object-fit:cover;object-position:center 32%;transition:.4s}
.archive-card:hover .archive-thumb img{transform:scale(1.04)}
.archive-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(31,24,38,.58))}
.archive-play{position:absolute;z-index:2;left:12px;bottom:11px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.88);color:#7a5d83;font-size:.65rem;box-shadow:0 8px 20px rgba(24,17,29,.24)}
.archive-copy{padding:15px 15px 17px}
.archive-copy>span{font:800 .52rem/1 Arial,sans-serif;letter-spacing:.16em;color:#f0b9d3}
.archive-copy h4{margin:7px 0 5px;font-size:.85rem}
.archive-copy p{margin:0;color:#cbbdce;font-size:.65rem;line-height:1.5}

@media (max-width:1020px){
  .stream-heading{align-items:start}
  .stream-feature-grid,.stream-content-grid{grid-template-columns:1fr}
  .stream-hero-card{min-height:520px}
  .stream-next-card{min-height:470px}
  .archive-grid{grid-template-columns:repeat(3,1fr)}
}

@media (max-width:640px){
  .stream-showcase{padding:66px 16px 78px}
  .stream-heading{display:block;margin-bottom:28px;text-align:center}
  .stream-heading h2{font-size:2.2rem}
  .stream-heading>p{max-width:330px;margin:16px auto 0;text-align:center;font-size:.82rem}
  .stream-feature-grid{gap:14px}
  .stream-hero-card{min-height:390px;border-radius:25px}
  .stream-hero-card>img{object-position:center 38%}
  .stream-hero-topline{left:16px;top:16px;padding:8px 10px}
  .stream-hero-copy{left:20px;right:20px;bottom:22px}
  .stream-hero-copy h3{font-size:1.8rem;line-height:1.42}
  .stream-hero-copy>p:last-child{font-size:.78rem}
  .stream-next-card{min-height:0;padding:25px 21px;border-radius:25px}
  .stream-next-date{margin-top:30px;font-size:1.25rem}
  .stream-next-title{font-size:1.75rem}
  .stream-next-description{font-size:.8rem}
  .stream-meta-list{grid-template-columns:1fr;margin-top:20px}
  .stream-watch-button{margin-top:22px;padding:13px 15px}
  .stream-content-grid{gap:14px;margin-top:14px}
  .stream-upcoming,.stream-archives{padding:23px 17px;border-radius:25px}
  .stream-block-heading{align-items:start;margin-bottom:18px}
  .stream-block-heading>p{display:none}
  .stream-block-heading h3{font-size:1.35rem}
  .upcoming-item{grid-template-columns:56px 1fr auto;gap:11px;padding:12px}
  .upcoming-date{width:52px;height:52px;border-radius:15px}
  .upcoming-item h4{font-size:.8rem;line-height:1.45}
  .archive-grid{grid-template-columns:1fr}
  .archive-card{display:grid;grid-template-columns:43% 57%;align-items:stretch}
  .archive-thumb{aspect-ratio:auto;min-height:118px}
  .archive-copy{display:flex;flex-direction:column;justify-content:center;padding:14px}
}

@media (max-width:390px){
  .stream-showcase{padding-left:14px;padding-right:14px}
  .stream-hero-card{min-height:360px}
  .stream-hero-copy h3{font-size:1.65rem}
  .stream-next-card{padding:23px 18px}
  .stream-next-title{font-size:1.6rem}
  .upcoming-item{grid-template-columns:50px 1fr auto;gap:9px}
  .upcoming-date{width:48px;height:48px}
}

/* =========================================================
   VER.6 GALLERY SHOWCASE
   Featured visual / category filter / responsive collection / lightbox
   ========================================================= */
.gallery-showcase{
  position:relative;
  overflow:hidden;
  padding-top:clamp(92px,9vw,132px);
  padding-bottom:clamp(100px,10vw,148px);
  background:
    radial-gradient(circle at 10% 10%,rgba(244,155,197,.14),transparent 26%),
    radial-gradient(circle at 88% 82%,rgba(200,175,232,.18),transparent 28%),
    linear-gradient(180deg,#fff 0%,#fff8fc 48%,#fff 100%);
}
.gallery-showcase::before{
  content:"♡";
  position:absolute;
  left:-52px;
  top:230px;
  font-size:18rem;
  line-height:1;
  color:rgba(238,102,173,.035);
  transform:rotate(-14deg);
  pointer-events:none;
}
.gallery-heading{margin-bottom:clamp(42px,5vw,64px)}
.gallery-shell{position:relative;z-index:1;max-width:1220px;margin:0 auto}

.gallery-feature{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);
  min-height:560px;
  overflow:hidden;
  border:1px solid rgba(232,215,232,.96);
  border-radius:34px;
  background:rgba(255,255,255,.9);
  box-shadow:0 30px 80px rgba(83,55,92,.13);
}
.gallery-feature-media{
  position:relative;
  display:block;
  width:100%;
  min-height:560px;
  padding:0;
  border:0;
  overflow:hidden;
  background:#2e2835;
  cursor:zoom-in;
}
.gallery-feature-media img{width:100%;height:100%;object-fit:cover;object-position:center 28%;transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .45s ease}
.gallery-feature-media:hover img{transform:scale(1.028);filter:saturate(1.03)}
.gallery-feature-vignette{position:absolute;inset:0;background:linear-gradient(90deg,transparent 58%,rgba(35,27,41,.24) 100%),linear-gradient(180deg,transparent 62%,rgba(34,25,41,.28) 100%);pointer-events:none}
.gallery-feature-number{position:absolute;left:26px;bottom:24px;color:rgba(255,255,255,.88);font:700 .72rem/1 Arial,sans-serif;letter-spacing:.25em;text-shadow:0 3px 16px rgba(0,0,0,.26)}
.gallery-feature-copy{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(36px,5vw,70px);overflow:hidden}
.gallery-feature-copy::after{content:"♡";position:absolute;right:-32px;bottom:-68px;font-size:12rem;line-height:1;color:rgba(238,102,173,.08);transform:rotate(-13deg);pointer-events:none}
.gallery-feature-copy>*{position:relative;z-index:1}
.gallery-feature-kicker{margin:0 0 18px;font:800 .66rem/1 Arial,sans-serif;letter-spacing:.25em;color:var(--lav-deep)}
.gallery-feature-tag{align-self:flex-start;padding:8px 12px;border-radius:999px;background:linear-gradient(120deg,#fbebf3,#eee7fb);font:800 .6rem/1 Arial,sans-serif;letter-spacing:.14em;color:#836785}
.gallery-feature-copy h3{margin:26px 0 20px;font-size:clamp(2.2rem,3.9vw,4rem);line-height:1.42;letter-spacing:.035em;font-weight:600}
.gallery-feature-copy>p:not(.gallery-feature-kicker){margin:0;color:var(--muted);font-size:.9rem;line-height:2}
.gallery-feature-button{align-self:flex-start;display:flex;align-items:center;gap:18px;margin-top:32px;padding:13px 18px 13px 20px;border:1px solid #ead5e5;border-radius:999px;background:#fff;color:#725d78;font-size:.78rem;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 10px 26px rgba(82,57,91,.08);transition:.24s ease}
.gallery-feature-button:hover{transform:translateY(-2px);border-color:#e5bcd4;color:var(--pink-deep);box-shadow:0 15px 32px rgba(82,57,91,.13)}
.gallery-feature-button span:last-child{font:400 1.1rem/1 Arial,sans-serif}

.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:42px 0 22px;padding:0 2px}
.gallery-filters{display:flex;gap:9px;flex-wrap:wrap}
.gallery-filter{padding:10px 15px;border:1px solid #eadce8;border-radius:999px;background:rgba(255,255,255,.82);color:#76647b;font:800 .62rem/1 Arial,sans-serif;letter-spacing:.14em;cursor:pointer;transition:.2s ease}
.gallery-filter:hover{border-color:#e8bdd5;color:var(--pink-deep);transform:translateY(-1px)}
.gallery-filter.is-active{border-color:transparent;background:linear-gradient(115deg,#ef79b7,#a977a1);color:#fff;box-shadow:0 10px 24px rgba(182,104,157,.20)}
.gallery-count{margin:0;color:#a28fa7;font:700 .62rem/1 Arial,sans-serif;letter-spacing:.18em;white-space:nowrap}
.gallery-count span{color:var(--pink-deep);font-size:.78rem}

.gallery-collection{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.gallery-card{
  position:relative;
  display:block;
  aspect-ratio:3/4.05;
  min-width:0;
  padding:0;
  border:0;
  border-radius:24px;
  overflow:hidden;
  background:#ede5ee;
  color:#fff;
  text-align:left;
  cursor:zoom-in;
  box-shadow:0 14px 38px rgba(75,52,83,.10);
  transition:opacity .28s ease,transform .28s ease,box-shadow .28s ease;
}
.gallery-card[hidden]{display:none!important}
.gallery-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px rgba(75,52,83,.17)}
.gallery-card-media{position:absolute;inset:0;display:block}
.gallery-card-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .45s ease}
.gallery-card:nth-child(1) .gallery-card-media img{object-position:center 35%}
.gallery-card:nth-child(2) .gallery-card-media img{object-position:center 30%}
.gallery-card:nth-child(3) .gallery-card-media img{object-position:center 28%}
.gallery-card:nth-child(4) .gallery-card-media img{object-position:center 32%}
.gallery-card:nth-child(5) .gallery-card-media img{object-position:center 28%}
.gallery-card:nth-child(6) .gallery-card-media img{object-position:center 31%}
.gallery-card:nth-child(7) .gallery-card-media img{object-position:center 29%}
.gallery-card:hover .gallery-card-media img{transform:scale(1.045);filter:saturate(1.03)}
.gallery-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,27,41,0) 45%,rgba(34,27,41,.18) 63%,rgba(33,25,40,.86) 100%);transition:.35s ease}
.gallery-card:hover .gallery-card-overlay{background:linear-gradient(180deg,rgba(34,27,41,.02) 38%,rgba(34,27,41,.20) 59%,rgba(33,25,40,.90) 100%)}
.gallery-card-copy{position:absolute;z-index:2;left:18px;right:16px;bottom:17px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 12px}
.gallery-card-copy small{grid-column:1/-1;font:800 .55rem/1 Arial,sans-serif;letter-spacing:.17em;color:#f6cbe0}
.gallery-card-copy strong{font-size:.86rem;line-height:1.45;letter-spacing:.02em}
.gallery-card-copy em{font:800 .5rem/1 Arial,sans-serif;letter-spacing:.13em;font-style:normal;color:#f7dbe9;opacity:.85}
.gallery-note{margin:25px 0 0;text-align:center;color:#9a879e;font-size:.76rem;letter-spacing:.04em}

.gallery-lightbox{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility .24s ease}
.gallery-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.gallery-lightbox-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(29,22,34,.82);backdrop-filter:blur(12px);cursor:zoom-out}
.gallery-lightbox-panel{position:relative;z-index:1;display:grid;place-items:center;width:min(94vw,1180px);height:min(92svh,860px);padding:0 70px}
.gallery-lightbox-figure{display:grid;grid-template-rows:minmax(0,1fr) auto;width:100%;height:100%;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.15);border-radius:28px;background:#221b29;box-shadow:0 34px 100px rgba(0,0,0,.42)}
.gallery-lightbox-image-wrap{min-height:0;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#241d2b,#3a2c42)}
.gallery-lightbox-image-wrap img{width:100%;height:100%;object-fit:contain}
.gallery-lightbox-figure figcaption{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:17px 22px 18px;background:#fff;color:var(--ink)}
.gallery-lightbox-figure figcaption>div{display:grid;gap:5px}
.gallery-lightbox-figure figcaption span{font:800 .55rem/1 Arial,sans-serif;letter-spacing:.16em;color:var(--pink-deep)}
.gallery-lightbox-figure figcaption strong{font-size:.98rem;letter-spacing:.03em}
.gallery-lightbox-figure figcaption>p{margin:0;color:#9b899f;font:700 .6rem/1 Arial,sans-serif;letter-spacing:.15em}
.gallery-lightbox-close,.gallery-lightbox-nav{position:absolute;z-index:3;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.13);color:#fff;backdrop-filter:blur(10px);cursor:pointer;transition:.2s ease}
.gallery-lightbox-close{right:12px;top:12px;width:44px;height:44px;border-radius:50%;font:300 1.55rem/1 Arial,sans-serif}
.gallery-lightbox-nav{top:50%;width:48px;height:68px;border-radius:24px;font:300 2.3rem/1 Arial,sans-serif;transform:translateY(-50%)}
.gallery-lightbox-prev{left:7px}.gallery-lightbox-next{right:7px}
.gallery-lightbox-close:hover,.gallery-lightbox-nav:hover{background:rgba(255,255,255,.23);border-color:rgba(255,255,255,.36)}
body.gallery-modal-open{overflow:hidden}

@media (max-width:1020px){
  .gallery-feature{grid-template-columns:1fr;min-height:0}
  .gallery-feature-media{min-height:520px}
  .gallery-feature-media img{object-position:center 26%}
  .gallery-feature-copy{padding:38px 36px 44px}
  .gallery-feature-copy h3 br{display:none}
  .gallery-collection{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width:640px){
  .gallery-showcase{padding:70px 15px 82px}
  .gallery-heading{margin-bottom:32px}
  .gallery-heading h2{font-size:2.05rem;line-height:1.42}
  .gallery-heading>p:last-child{max-width:335px;margin-inline:auto;font-size:.8rem}
  .gallery-feature{border-radius:25px}
  .gallery-feature-media{min-height:390px}
  .gallery-feature-media img{object-position:center 27%}
  .gallery-feature-number{left:18px;bottom:16px}
  .gallery-feature-copy{padding:27px 22px 31px;text-align:left}
  .gallery-feature-kicker{margin-bottom:13px;font-size:.58rem}
  .gallery-feature-tag{padding:7px 10px;font-size:.54rem}
  .gallery-feature-copy h3{margin:19px 0 14px;font-size:2rem;line-height:1.38}
  .gallery-feature-copy>p:not(.gallery-feature-kicker){font-size:.79rem;line-height:1.86}
  .gallery-feature-button{margin-top:22px;padding:11px 15px 11px 17px;font-size:.72rem}
  .gallery-toolbar{display:block;margin:28px 0 16px}
  .gallery-filters{display:grid;grid-template-columns:repeat(4,max-content);gap:7px;overflow-x:auto;padding:0 0 7px;scrollbar-width:none}
  .gallery-filters::-webkit-scrollbar{display:none}
  .gallery-filter{padding:9px 12px;font-size:.55rem}
  .gallery-count{margin-top:8px;text-align:right;font-size:.54rem}
  .gallery-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .gallery-card{border-radius:18px;box-shadow:0 10px 25px rgba(75,52,83,.09)}
  .gallery-card:hover{transform:none}
  .gallery-card-copy{left:12px;right:11px;bottom:12px;display:block}
  .gallery-card-copy small{display:block;margin-bottom:5px;font-size:.46rem}
  .gallery-card-copy strong{display:block;font-size:.7rem;line-height:1.4}
  .gallery-card-copy em{display:none}
  .gallery-note{margin-top:18px;font-size:.67rem}

  .gallery-lightbox{padding:10px}
  .gallery-lightbox-panel{width:100%;height:min(90svh,740px);padding:48px 0 58px}
  .gallery-lightbox-figure{border-radius:22px}
  .gallery-lightbox-figure figcaption{padding:14px 15px 15px;gap:14px}
  .gallery-lightbox-figure figcaption strong{font-size:.82rem}
  .gallery-lightbox-close{right:3px;top:0;width:40px;height:40px}
  .gallery-lightbox-nav{top:auto;bottom:4px;width:44px;height:44px;border-radius:50%;transform:none}
  .gallery-lightbox-prev{left:calc(50% - 52px)}
  .gallery-lightbox-next{right:calc(50% - 52px)}
}

@media (max-width:390px){
  .gallery-showcase{padding-left:13px;padding-right:13px}
  .gallery-feature-media{min-height:360px}
  .gallery-feature-copy{padding:24px 19px 28px}
  .gallery-feature-copy h3{font-size:1.8rem}
  .gallery-card-copy strong{font-size:.66rem}
}


/* =========================================================
   VER.6.1 GALLERY CLICK RELIABILITY FIX
   ========================================================= */
[data-gallery-open]{
  pointer-events:auto;
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(238,102,173,.12);
}
.gallery-card-media,
.gallery-card-media img,
.gallery-card-overlay,
.gallery-card-copy,
.gallery-card-copy *{
  pointer-events:none;
}
.gallery-feature-media img,
.gallery-feature-media .gallery-feature-vignette,
.gallery-feature-media .gallery-feature-number{
  pointer-events:none;
}


/* =========================================================
   VER.6.3 DESKTOP LIGHTBOX FIT FIX
   Keep portrait artwork fully visible inside the viewport.
   ========================================================= */
@media (min-width:641px){
  .gallery-lightbox{
    padding:24px;
  }

  .gallery-lightbox-panel{
    width:min(86vw,780px);
    height:min(86dvh,840px);
    max-height:calc(100dvh - 48px);
    padding:0 62px;
  }

  .gallery-lightbox-figure{
    width:100%;
    height:100%;
    max-height:100%;
  }

  .gallery-lightbox-image-wrap{
    min-width:0;
    min-height:0;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .gallery-lightbox-image-wrap img{
    display:block;
    width:auto;
    height:100%;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    object-position:center center;
  }

  .gallery-lightbox-figure figcaption{
    flex:0 0 auto;
  }

  .gallery-lightbox-close{
    right:7px;
    top:7px;
  }

  .gallery-lightbox-prev{left:4px}
  .gallery-lightbox-next{right:4px}
}

/* Slightly tighter fit for notebook / shorter desktop viewports. */
@media (min-width:641px) and (max-height:820px){
  .gallery-lightbox{
    padding:16px;
  }
  .gallery-lightbox-panel{
    width:min(82vw,700px);
    height:min(84dvh,690px);
    max-height:calc(100dvh - 32px);
    padding:0 58px;
  }
  .gallery-lightbox-figure figcaption{
    padding:13px 18px 14px;
  }
}

/* =========================================================
   VER.7 SCHEDULE HUB
   Shared data with STREAM via SCHEDULE_EVENTS in main.js
   ========================================================= */
.schedule-showcase{
  position:relative;
  padding-top:92px;
  padding-bottom:110px;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 18%,rgba(244,155,197,.11),transparent 28%),
    radial-gradient(circle at 92% 82%,rgba(200,175,232,.15),transparent 29%),
    linear-gradient(180deg,#fffdfd 0%,#fff8fc 100%);
}
.schedule-showcase::before{
  content:"";
  position:absolute;
  left:-70px;
  top:210px;
  width:230px;
  height:230px;
  border:2px solid rgba(244,155,197,.10);
  border-radius:50% 50% 46% 54%;
  transform:rotate(18deg);
  pointer-events:none;
}
.schedule-showcase::after{
  content:"♡";
  position:absolute;
  right:3.8%;
  top:150px;
  color:rgba(238,102,173,.10);
  font:300 9rem/1 Arial,sans-serif;
  transform:rotate(9deg);
  pointer-events:none;
}
.schedule-heading{margin-bottom:48px}
.schedule-heading h2{font-size:clamp(2.5rem,4.4vw,4.4rem)}
.schedule-shell{position:relative;z-index:1;width:min(1240px,calc(100% - 48px));margin:0 auto}
.schedule-top-grid{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(330px,.72fr);gap:22px;align-items:stretch}
.schedule-week-card,.schedule-next-card,.schedule-list-section{
  border:1px solid rgba(225,205,222,.9);
  box-shadow:0 24px 64px rgba(76,54,85,.10);
}
.schedule-week-card{padding:36px 38px 32px;border-radius:32px;background:rgba(255,255,255,.86);backdrop-filter:blur(14px)}
.schedule-card-head,.schedule-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px}
.schedule-card-head h3,.schedule-list-head h3{margin:8px 0 0;font-size:clamp(1.45rem,2vw,2rem);font-weight:600;letter-spacing:.025em}
.schedule-mini-label{font:800 .61rem/1 Arial,sans-serif;letter-spacing:.2em;color:#7b6087}
.schedule-mini-label.pink{color:var(--pink-deep)}
.schedule-month{margin:0;color:#a28fa6;font:700 .72rem/1 Arial,sans-serif;letter-spacing:.1em}
.schedule-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-top:29px}
.schedule-day{
  min-width:0;
  padding:15px 7px 13px;
  border:1px solid #eee1ec;
  border-radius:20px;
  background:linear-gradient(180deg,#fff,#fffafd);
  text-align:center;
  transition:.22s ease;
}
a.schedule-day:hover{transform:translateY(-3px);border-color:#eabfd8;box-shadow:0 12px 28px rgba(88,61,96,.11)}
.schedule-day.is-today{border-color:#e7b6d3;background:linear-gradient(180deg,#fff4f9,#fff)}
.schedule-day.has-event{box-shadow:inset 0 -3px 0 rgba(238,102,173,.23)}
.schedule-day-name{display:block;color:#a08da5;font:800 .52rem/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.schedule-day-number{display:block;margin-top:9px;font:500 1.18rem/1 Arial,sans-serif;color:#49394f}
.schedule-day-status{display:grid;place-items:center;width:31px;height:31px;margin:12px auto 8px;border-radius:50%;background:#f7f1f6;color:#b2a5b5;font:700 .85rem/1 Arial,sans-serif}
.schedule-day-status.talk{background:#fde4f0;color:#e765a6}.schedule-day-status.sing{background:#eee5fb;color:#896ab0}.schedule-day-status.game{background:#e8e3f3;color:#654d7a}.schedule-day-status.special{background:#fceada;color:#c58267}
.schedule-day small{display:block;color:#98899c;font:700 .53rem/1 Arial,sans-serif;letter-spacing:.06em}
.schedule-week-note{display:flex;align-items:center;gap:10px;margin-top:21px;padding-top:19px;border-top:1px dashed #eadde8;color:#8c7a91}
.schedule-week-note>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fceaf3;color:var(--pink-deep);font-family:Arial,sans-serif}
.schedule-week-note p{margin:0;font-size:.74rem;line-height:1.65}

.schedule-next-card{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:38px 34px 32px;
  border-radius:32px;
  color:#fff;
  background:linear-gradient(145deg,#3c3047 0%,#6d537a 58%,#aa7899 120%);
  box-shadow:0 28px 70px rgba(55,40,66,.24);
}
.schedule-next-card::before{content:"";position:absolute;inset:auto -75px -88px auto;width:230px;height:230px;border-radius:50%;border:1px solid rgba(255,255,255,.15)}
.schedule-next-card::after{content:"";position:absolute;inset:auto -20px -36px auto;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.05)}
.schedule-next-ornament{position:absolute;right:28px;top:25px;color:#e6d1f3;font:300 2.35rem/1 Arial,sans-serif;opacity:.85}
.schedule-next-date{margin:34px 0 0;color:#f2d9e9;font:800 .72rem/1 Arial,sans-serif;letter-spacing:.18em}
.schedule-next-card h3{position:relative;z-index:1;margin:15px 0 13px;font-size:clamp(1.55rem,2.15vw,2.2rem);line-height:1.48;font-weight:600}
.schedule-next-copy{position:relative;z-index:1;margin:0;color:#e8dce9;font-size:.79rem;line-height:1.9}
.schedule-next-meta{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:28px 0 0}
.schedule-next-meta div{padding:13px 14px;border:1px solid rgba(255,255,255,.13);border-radius:16px;background:rgba(255,255,255,.07)}
.schedule-next-meta dt{color:#d9c7dd;font:800 .51rem/1 Arial,sans-serif;letter-spacing:.16em}
.schedule-next-meta dd{margin:7px 0 0;font-size:.78rem;font-weight:700;line-height:1.35}
.schedule-next-button{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding:14px 17px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(255,255,255,.13);font-size:.76rem;font-weight:700;transition:.2s ease}
.schedule-next-button:hover{background:rgba(255,255,255,.21);transform:translateY(-2px)}
.schedule-next-button.is-disabled{opacity:.68;cursor:default}
.schedule-next-button.is-disabled:hover{transform:none;background:rgba(255,255,255,.13)}

.schedule-list-section{margin-top:22px;padding:34px 38px 38px;border-radius:32px;background:rgba(255,255,255,.9)}
.schedule-list-head{align-items:center}
.schedule-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.schedule-legend span{display:flex;align-items:center;gap:6px;color:#8f7e93;font:700 .61rem/1 Arial,sans-serif}
.schedule-legend i{display:block;width:8px;height:8px;border-radius:50%}
.schedule-legend i.talk{background:#ee77b1}.schedule-legend i.sing{background:#a989d1}.schedule-legend i.game{background:#705783}.schedule-legend i.special{background:#d99a7d}
.schedule-event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}
.schedule-event-card{position:relative;display:grid;grid-template-columns:105px 1fr auto;gap:18px;align-items:center;min-width:0;padding:18px 18px 18px 19px;border:1px solid #eee1ec;border-radius:22px;background:linear-gradient(135deg,#fff,#fffafd);transition:.22s ease}
a.schedule-event-card:hover{transform:translateY(-3px);border-color:#e8bfd6;box-shadow:0 15px 32px rgba(78,56,87,.10)}
.schedule-event-card::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:999px;background:#d9cbd9}
.schedule-event-card.talk::before{background:#ee77b1}.schedule-event-card.sing::before{background:#a989d1}.schedule-event-card.game::before{background:#705783}.schedule-event-card.special::before{background:#d99a7d}
.schedule-event-date{display:grid;gap:7px;padding-right:14px;border-right:1px solid #eee1ec}
.schedule-event-date span{color:#9b899f;font:800 .55rem/1 Arial,sans-serif;letter-spacing:.1em}
.schedule-event-date strong{font:700 1rem/1 Arial,sans-serif;color:#55425e}
.schedule-event-main{min-width:0}
.schedule-event-category{color:#a77898;font:800 .51rem/1 Arial,sans-serif;letter-spacing:.13em}
.schedule-event-main h4{margin:7px 0 5px;font-size:.94rem;line-height:1.45}
.schedule-event-main p{margin:0;color:#918095;font-size:.7rem;line-height:1.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-event-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#f9edf4;color:var(--pink-deep);font-family:Arial,sans-serif;font-weight:700}
.schedule-empty-state{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:18px;min-height:150px;padding:30px;border:1px dashed #e5d4e2;border-radius:24px;background:linear-gradient(135deg,#fffafd,#fff);text-align:left}
.schedule-empty-symbol{display:grid;place-items:center;width:58px;height:58px;flex:0 0 auto;border-radius:50%;background:linear-gradient(145deg,#ffe2ef,#eee5fb);color:var(--pink-deep);font:400 1.65rem/1 Arial,sans-serif}
.schedule-empty-state strong{font-size:1rem}.schedule-empty-state p{margin:6px 0 0;color:#927f96;font-size:.75rem;line-height:1.6}

@media (max-width:1020px){
  .schedule-showcase{padding-top:78px;padding-bottom:90px}
  .schedule-shell{width:min(100% - 36px,820px)}
  .schedule-top-grid{grid-template-columns:1fr}
  .schedule-next-card{min-height:390px}
  .schedule-week{gap:7px}
  .schedule-event-list{grid-template-columns:1fr}
}

@media (max-width:640px){
  .schedule-showcase{padding:72px 0 80px}
  .schedule-showcase::after{display:none}
  .schedule-heading{margin-bottom:34px;padding-inline:18px}
  .schedule-heading h2{font-size:2.15rem;line-height:1.4}
  .schedule-heading>p:last-child{max-width:330px;margin-inline:auto;font-size:.78rem}
  .schedule-shell{width:calc(100% - 26px)}
  .schedule-week-card,.schedule-next-card,.schedule-list-section{border-radius:25px}
  .schedule-week-card{padding:25px 16px 21px}
  .schedule-card-head{align-items:center}
  .schedule-card-head h3,.schedule-list-head h3{font-size:1.3rem}
  .schedule-month{font-size:.61rem}
  .schedule-week{gap:4px;margin-top:22px}
  .schedule-day{padding:11px 2px 10px;border-radius:14px}
  .schedule-day-name{font-size:.44rem}
  .schedule-day-number{margin-top:7px;font-size:.91rem}
  .schedule-day-status{width:25px;height:25px;margin:9px auto 6px;font-size:.7rem}
  .schedule-day small{font-size:.44rem}
  .schedule-week-note{margin-top:16px;padding-top:15px;align-items:flex-start}
  .schedule-week-note p{font-size:.65rem}
  .schedule-next-card{min-height:0;padding:29px 22px 24px}
  .schedule-next-ornament{right:21px;top:20px;font-size:1.9rem}
  .schedule-next-date{margin-top:28px;font-size:.61rem}
  .schedule-next-card h3{font-size:1.55rem;margin-top:13px}
  .schedule-next-copy{font-size:.73rem}
  .schedule-next-meta{margin-top:22px;grid-template-columns:1fr;gap:7px}
  .schedule-next-meta div{padding:11px 12px}
  .schedule-next-button{margin-top:22px}
  .schedule-list-section{padding:25px 16px 20px}
  .schedule-list-head{display:block}
  .schedule-legend{justify-content:flex-start;gap:10px 12px;margin-top:16px}
  .schedule-legend span{font-size:.55rem}
  .schedule-event-list{margin-top:19px}
  .schedule-event-card{grid-template-columns:75px 1fr 34px;gap:10px;padding:14px 11px 14px 14px;border-radius:18px}
  .schedule-event-date{padding-right:8px}
  .schedule-event-date span{font-size:.48rem}.schedule-event-date strong{font-size:.78rem}
  .schedule-event-category{font-size:.45rem}
  .schedule-event-main h4{font-size:.77rem;margin-top:5px}
  .schedule-event-main p{font-size:.61rem}
  .schedule-event-icon{width:32px;height:32px;font-size:.75rem}
  .schedule-empty-state{min-height:132px;gap:13px;padding:23px 16px}
  .schedule-empty-symbol{width:47px;height:47px;font-size:1.3rem}
  .schedule-empty-state strong{font-size:.82rem}.schedule-empty-state p{font-size:.65rem}
}

@media (max-width:390px){
  .schedule-shell{width:calc(100% - 22px)}
  .schedule-week-card{padding-left:13px;padding-right:13px}
  .schedule-week{gap:3px}
  .schedule-day-number{font-size:.86rem}
  .schedule-day small{font-size:.41rem}
}

/* =========================================================
   VER.8 LINK / CONTACT / FOOTER
   ========================================================= */
.link-hub{
  position:relative;
  overflow:hidden;
  padding-top:100px;
  padding-bottom:112px;
  background:
    radial-gradient(circle at 88% 22%,rgba(200,175,232,.17),transparent 25%),
    radial-gradient(circle at 7% 86%,rgba(244,155,197,.13),transparent 27%),
    linear-gradient(180deg,#fff 0%,#fff8fc 100%);
}
.link-hub::before{
  content:"♡";position:absolute;left:2.5%;top:175px;color:rgba(238,102,173,.075);
  font:300 11rem/1 Arial,sans-serif;transform:rotate(-12deg);pointer-events:none;
}
.link-heading{margin-bottom:48px}
.link-heading h2{font-size:clamp(2.5rem,4.2vw,4.25rem)}
.link-shell{position:relative;z-index:1;width:min(1240px,calc(100% - 48px));margin:0 auto}
.social-portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.social-portal{
  position:relative;display:grid;grid-template-columns:66px 1fr auto;align-items:center;gap:21px;
  min-height:148px;padding:24px 26px;border:1px solid rgba(226,208,224,.94);border-radius:30px;
  background:rgba(255,255,255,.91);box-shadow:0 22px 60px rgba(78,55,86,.085);overflow:hidden;
  transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease;
}
.social-portal::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--portal-accent,#f49bc5)}
.social-portal::after{content:"";position:absolute;right:-45px;bottom:-65px;width:175px;height:175px;border-radius:50%;background:var(--portal-wash,rgba(244,155,197,.11));pointer-events:none}
.social-portal.youtube{--portal-accent:#ef6aa9;--portal-wash:rgba(244,155,197,.15)}
.social-portal.x-social{--portal-accent:#584761;--portal-wash:rgba(88,71,97,.09)}
.social-portal.instagram{--portal-accent:#b895d2;--portal-wash:rgba(184,149,210,.14)}
.social-portal.tiktok{--portal-accent:#d88bad;--portal-wash:rgba(216,139,173,.13)}
.social-portal:hover:not([aria-disabled="true"]){transform:translateY(-5px);border-color:#e9c8db;box-shadow:0 29px 72px rgba(78,55,86,.13)}
.social-portal[aria-disabled="true"]{cursor:default}
.social-portal-icon{position:relative;z-index:1;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:linear-gradient(145deg,#ffe3ef,#ece4fa);color:#755987;font:700 1.45rem/1 Arial,sans-serif;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}
.social-portal-copy{position:relative;z-index:1;display:grid;gap:6px;min-width:0}
.social-portal-copy small{color:#a684a6;font:800 .57rem/1 Arial,sans-serif;letter-spacing:.18em}
.social-portal-copy strong{font:600 1.65rem/1.1 Georgia,"Times New Roman",serif;color:#413348}
.social-portal-copy em{font-style:normal;color:#8c7b90;font-size:.75rem;line-height:1.55}
.social-portal-arrow{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid #eadde8;color:#886889;font:400 1rem/1 Arial,sans-serif}
.social-portal[aria-disabled="true"] .social-portal-arrow{opacity:.35}
.link-sub-grid{display:grid;grid-template-columns:1.45fr .55fr;gap:16px;margin-top:16px}
.brand-guide-link,.link-message-card{min-height:220px;border:1px solid rgba(226,208,224,.94);border-radius:30px;background:rgba(255,255,255,.92);box-shadow:0 22px 60px rgba(78,55,86,.075);overflow:hidden}
.brand-guide-link{display:grid;grid-template-columns:250px 1fr auto;align-items:center;gap:26px;padding:18px 25px 18px 18px;transition:.24s ease}
.brand-guide-link:hover{transform:translateY(-4px);box-shadow:0 28px 70px rgba(78,55,86,.12)}
.brand-guide-thumb{height:184px;overflow:hidden;border-radius:20px;background:#f7edf3}
.brand-guide-thumb img{height:100%;object-fit:cover;object-position:center}
.brand-guide-copy{display:grid;gap:8px}
.brand-guide-copy small,.link-message-card>small{font:800 .57rem/1 Arial,sans-serif;letter-spacing:.18em;color:#9d7ca0}
.brand-guide-copy strong{font:600 1.55rem/1.2 Georgia,"Times New Roman",serif;color:#49384f}
.brand-guide-copy em{font-style:normal;color:#8e7c92;font-size:.76rem;line-height:1.55}
.brand-guide-arrow{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#f7ebf2;color:#8d6789}
.link-message-card{position:relative;display:flex;flex-direction:column;justify-content:center;padding:32px 34px;background:linear-gradient(145deg,#42344c,#785982 60%,#ad789a 130%);color:#fff}
.link-message-card::after{content:"";position:absolute;right:-52px;bottom:-55px;width:190px;height:190px;border:1px solid rgba(255,255,255,.14);border-radius:50%}
.link-message-card>small{color:#f2cde0}
.link-message-card p{position:relative;z-index:1;margin:20px 0 22px;font-size:clamp(1.35rem,2vw,2rem);line-height:1.7;font-weight:500}
.link-message-card p em{font-style:normal;color:#ffc0dd}
.link-message-heart{position:absolute;right:28px;top:23px;font:300 2.4rem/1 Arial,sans-serif;color:#e9c9ef}
.link-signature{position:relative;z-index:1;align-self:flex-end;font-family:"Segoe Print","Comic Sans MS",cursive;font-style:italic;font-size:1.15rem;color:#ffd3e8;transform:rotate(-5deg)}

.contact-showcase{position:relative;padding:112px 24px;background:linear-gradient(180deg,#fff8fc 0%,#f6edf6 100%);overflow:hidden}
.contact-showcase::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 40%,rgba(255,255,255,.72),transparent 35%),radial-gradient(circle at 85% 70%,rgba(200,175,232,.13),transparent 30%);pointer-events:none}
.contact-shell{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);width:min(1180px,100%);margin:0 auto;border:1px solid rgba(222,201,219,.92);border-radius:38px;background:#fff;box-shadow:0 30px 90px rgba(78,55,86,.14);overflow:hidden}
.contact-visual{position:relative;min-height:560px;overflow:hidden;background:#eadbe7}
.contact-visual img{height:100%;object-fit:cover;object-position:center 31%}
.contact-visual-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(60,43,68,.05),rgba(60,43,68,.08)),linear-gradient(to top,rgba(48,36,57,.35),transparent 50%)}
.contact-visual p{position:absolute;left:36px;bottom:34px;margin:0;color:#fff;font:italic 1.35rem/1.32 "Segoe Print","Comic Sans MS",cursive;text-shadow:0 3px 22px rgba(36,26,42,.3);transform:rotate(-4deg)}
.contact-panel{display:flex;flex-direction:column;justify-content:center;padding:64px 68px}
.contact-panel h2{margin:12px 0 20px;font-size:clamp(2.4rem,4vw,4rem);font-weight:500;letter-spacing:.06em}
.contact-lead{margin:0;color:#827286;font-size:.86rem;line-height:2}
.contact-status{display:flex;align-items:center;gap:16px;margin:34px 0 15px;padding:17px 19px;border:1px solid #ecdce8;border-radius:20px;background:linear-gradient(110deg,#fffafd,#fff)}
.contact-status-icon{display:grid;place-items:center;width:47px;height:47px;border-radius:50%;background:linear-gradient(145deg,#ffe2ef,#eee4fa);color:#d762a0;font:700 1.05rem/1 Arial,sans-serif}
.contact-status div{display:grid;gap:6px}
.contact-status small{color:#aa8bad;font:800 .52rem/1 Arial,sans-serif;letter-spacing:.16em}
.contact-status strong{font-size:.9rem}
.contact-main-button{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 21px;border-radius:999px;background:linear-gradient(115deg,#ee72b3,#8c688f);color:#fff;box-shadow:0 16px 38px rgba(106,75,115,.2);transition:.22s ease}
.contact-main-button>span:first-child{display:grid;gap:4px}.contact-main-button small{font:800 .52rem/1 Arial,sans-serif;letter-spacing:.16em;opacity:.78}.contact-main-button strong{font-size:.86rem;letter-spacing:.03em}.contact-main-button>span:last-child{font:400 1.25rem/1 Arial,sans-serif}.contact-main-button:hover:not(.is-disabled){transform:translateY(-3px);box-shadow:0 21px 45px rgba(106,75,115,.27)}
.contact-main-button.is-disabled{opacity:.7;cursor:default;filter:saturate(.72)}
.contact-note{margin:15px 3px 0;color:#a18fa5;font-size:.66rem;line-height:1.65}

.site-footer-v8{position:relative;padding:0;background:linear-gradient(150deg,#2d2635 0%,#3e3048 55%,#62455d 130%);color:#f9f1f8;overflow:hidden;text-align:center}
.site-footer-v8::before{content:"♡";position:absolute;left:-18px;bottom:-60px;color:rgba(255,255,255,.04);font:300 16rem/1 Arial,sans-serif;transform:rotate(-10deg)}
.footer-inner{position:relative;z-index:1;width:min(1120px,calc(100% - 48px));margin:0 auto;padding:76px 0 28px}
.footer-logo{display:block;width:235px;margin:0 auto 23px;border-radius:20px;overflow:hidden;background:rgba(255,255,255,.95)}
.footer-logo img{height:82px;object-fit:cover;mix-blend-mode:multiply}
.footer-catch{margin:0;font-size:1.15rem;letter-spacing:.12em}.footer-en{margin:11px 0 0;color:#f0b8d5;font:italic .92rem/1.4 "Segoe Print","Comic Sans MS",cursive}
.footer-nav{display:flex;justify-content:center;gap:clamp(17px,3vw,36px);flex-wrap:wrap;margin:38px auto 27px;padding:22px 0;border-top:1px solid rgba(255,255,255,.10);border-bottom:1px solid rgba(255,255,255,.10)}
.footer-nav a{color:#d9ccdc;font:700 .65rem/1 Arial,sans-serif;letter-spacing:.15em;transition:.2s}.footer-nav a:hover{color:#ffb7d8}
.footer-socials{display:flex;justify-content:center;gap:10px;margin-bottom:43px}.footer-socials a{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.06);font:700 .9rem/1 Arial,sans-serif;color:#f3e8f4;transition:.2s}.footer-socials a:hover:not([aria-disabled="true"]){transform:translateY(-3px);background:rgba(255,255,255,.13);color:#ffbad9}.footer-socials a[aria-disabled="true"]{opacity:.55;cursor:default}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:22px;border-top:1px solid rgba(255,255,255,.09);color:#a99bad}.footer-bottom small{font-size:.62rem}.footer-bottom span{font:700 .54rem/1 Arial,sans-serif;letter-spacing:.18em}

@media (max-width:1020px){
  .link-hub{padding-top:84px;padding-bottom:94px}.link-shell{width:min(100% - 36px,820px)}
  .social-portal{grid-template-columns:58px 1fr auto;min-height:134px;padding:20px;gap:17px}.social-portal-icon{width:58px;height:58px}
  .link-sub-grid{grid-template-columns:1fr}.brand-guide-link{grid-template-columns:220px 1fr auto}
  .contact-shell{grid-template-columns:1fr 1fr}.contact-panel{padding:50px 42px}.contact-visual{min-height:510px}
}

@media (max-width:640px){
  .link-hub{padding:72px 0 80px}.link-hub::before{display:none}.link-heading{margin-bottom:34px;padding-inline:18px}.link-heading h2{font-size:2.08rem;line-height:1.45}.link-heading>p:last-child{max-width:330px;margin-inline:auto;font-size:.78rem}
  .link-shell{width:calc(100% - 26px)}.social-portal-grid{grid-template-columns:1fr;gap:10px}
  .social-portal{grid-template-columns:50px 1fr 32px;min-height:112px;padding:16px 15px;border-radius:22px;gap:14px}.social-portal-icon{width:50px;height:50px;font-size:1.1rem}.social-portal-copy small{font-size:.48rem}.social-portal-copy strong{font-size:1.25rem}.social-portal-copy em{font-size:.65rem}.social-portal-arrow{width:32px;height:32px}
  .link-sub-grid{gap:10px;margin-top:10px}.brand-guide-link,.link-message-card{border-radius:22px}.brand-guide-link{grid-template-columns:100px 1fr 32px;min-height:128px;gap:14px;padding:12px}.brand-guide-thumb{height:104px;border-radius:15px}.brand-guide-copy small{font-size:.46rem}.brand-guide-copy strong{font-size:1.05rem}.brand-guide-copy em{font-size:.61rem}.brand-guide-arrow{width:32px;height:32px}.link-message-card{min-height:180px;padding:25px 23px}.link-message-card p{font-size:1.34rem;margin:18px 0}.link-message-heart{right:22px;top:18px;font-size:1.9rem}.link-signature{font-size:1rem}
  .contact-showcase{padding:78px 13px}.contact-shell{grid-template-columns:1fr;border-radius:28px}.contact-visual{min-height:345px}.contact-visual img{object-position:center 29%}.contact-visual p{left:22px;bottom:21px;font-size:1rem}.contact-panel{padding:35px 23px 31px}.contact-panel h2{font-size:2.12rem;margin:10px 0 16px}.contact-lead{font-size:.74rem;line-height:1.9}.contact-status{margin-top:27px;padding:14px;border-radius:17px}.contact-status-icon{width:42px;height:42px}.contact-status strong{font-size:.78rem}.contact-main-button{padding:15px 17px}.contact-main-button strong{font-size:.75rem}.contact-note{font-size:.61rem}
  .footer-inner{width:calc(100% - 32px);padding:58px 0 24px}.footer-logo{width:190px;margin-bottom:19px}.footer-logo img{height:69px}.footer-catch{font-size:.93rem;letter-spacing:.08em}.footer-en{font-size:.78rem}.footer-nav{gap:18px 20px;margin-top:30px}.footer-nav a{font-size:.58rem}.footer-socials{margin-bottom:34px}.footer-bottom{display:grid;justify-content:center;gap:10px}.footer-bottom span{order:-1}
}

@media (max-width:390px){
  .link-shell{width:calc(100% - 22px)}.social-portal{padding-left:13px;padding-right:13px}.social-portal-copy em{font-size:.6rem}
  .brand-guide-link{grid-template-columns:88px 1fr 28px;gap:11px}.brand-guide-thumb{height:92px}.brand-guide-arrow{width:28px;height:28px}
  .contact-showcase{padding-left:11px;padding-right:11px}.contact-visual{min-height:325px}
}

/* =========================================================
   VER.9 RELEASE POLISH
   OGP / share UI / loading optimizations
   ========================================================= */
.footer-share{display:grid;justify-items:center;gap:12px;margin:0 auto 34px}
.footer-share-label{color:#bcaec1;font:800 .54rem/1 Arial,sans-serif;letter-spacing:.2em}
.footer-share-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}
.footer-share-actions button{appearance:none;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.07);color:#f6edf7;padding:10px 15px;font:700 .66rem/1 Arial,sans-serif;letter-spacing:.035em;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease;color-scheme:light}
.footer-share-actions button span{margin-left:6px;color:#f2b8d4}
.footer-share-actions button:hover{transform:translateY(-2px);background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.24)}
.footer-share-actions button:focus-visible{outline:2px solid #ffb8da;outline-offset:3px}
.footer-share-status{min-height:1.2em;color:#efbfd7;font-size:.66rem}


@media (max-width:640px){
  .footer-share{margin-bottom:28px}.footer-share-actions{gap:7px}.footer-share-actions button{padding:9px 12px;font-size:.61rem}.footer-share-status{font-size:.61rem}
}

/* STREAM CMS text support - Ver.10.4 */
.stream-heading > p[data-stream-section-lead]{white-space:pre-line}
.archive-card.is-disabled{cursor:default}
.archive-card.is-disabled:hover{transform:none}
.archive-card{color:inherit;text-decoration:none}
.stream-archive-empty{grid-column:1/-1;margin:0;padding:36px;text-align:center;color:rgba(255,255,255,.72);border:1px dashed rgba(255,255,255,.16);border-radius:18px}

/* CMS editable TOP text - Ver.10.6 */
@media (max-width:1020px){
  .hero-description[data-top-description]{white-space:normal!important}
}
