:root{
  --forest-deep:#345B45;--forest:#4E8062;--leaf:#8FBF7E;--leaf-soft:#BCDBAC;
  --cream:#FBF6EC;--cream-deep:#F0E7D3;--kraft:#E0C49A;--honey:#E6A45C;
  --sakura:#F4A9BE;--sakura-soft:#FBD7E1;--sakura-deep:#E36A82;--orange:#EE8A4E;
  --ink:#2E2A24;--ink-soft:#6A6052;--paper:#FFFDF7;--shadow:rgba(78,90,75,.18);
  --maru:"Zen Maru Gothic",sans-serif;--kaku:"Zen Kaku Gothic New",sans-serif;
  --en-head:"Baloo 2",sans-serif;--en-body:"Nunito",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:var(--kaku);color:var(--ink);background:var(--cream);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;height:auto;display:block;}
li{list-style:none;}
.wrap{width:min(1000px,90%);margin-inline:auto;}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1);}
.reveal.in{opacity:1;transform:none;}
.mu-img{width:100%;height:100%;object-fit:contain;display:block;}
.en{font-family:var(--en-body);color:var(--forest);}
.sec-en{font-family:var(--maru);font-weight:900;color:var(--forest-deep);line-height:1.3;}
.sec-ja{font-family:var(--en-body);font-weight:700;color:var(--leaf);display:block;letter-spacing:.06em;line-height:1.4;}
.sp-br{display:none;}

/* ===== カーブ区切り ===== */
.curve{display:block;width:100%;height:70px;}
.curve svg{display:block;width:100%;height:100%;}

/* ====== HERO ====== */
.hero-wrapper{position:relative;min-height:92svh;background:radial-gradient(130% 90% at 50% -8%, #FCE9EF 0%, #FBF1E4 46%, var(--cream) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(48px,7vw,80px) 24px clamp(64px,11vw,120px);overflow:hidden;}
.petal-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 30px),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - 30px),transparent 100%);}
.petal{position:absolute;top:-8%;}
@keyframes fall{0%{transform:translateY(-10vh);opacity:0;}8%{opacity:1;}100%{transform:translateY(110vh);opacity:.85;}}
@keyframes sway{0%{transform:translateX(0) rotate(0);}50%{transform:translateX(30px) rotate(180deg);}100%{transform:translateX(0) rotate(360deg);}}
.hero-inner{position:relative;z-index:2;}
.hero-wrapper .eyebrow{font-family:var(--maru);font-weight:700;letter-spacing:.18em;font-size:clamp(1rem,2.6vw,1.25rem);color:var(--sakura-deep);}
.hero-wrapper .eyebrow .en{font-family:var(--en-head);font-weight:700;display:block;font-size:clamp(.84rem,2vw,1rem);color:var(--forest);letter-spacing:.16em;margin-top:6px;}
.mu-portrait{width:min(520px,26vw);aspect-ratio:1;border-radius:50%;margin:clamp(10px,2svh,24px) auto;background:radial-gradient(circle at 50% 40%, #fff 0%, #FCEFF3 70%, #F8DDE5 100%);border:8px solid var(--paper);box-shadow:0 24px 54px rgba(180,120,140,.30), inset 0 0 0 2px var(--sakura-soft);overflow:hidden;}
.mu-portrait .mu-img{padding:13%;}
h1.name{font-family:var(--maru);font-weight:900;color:var(--ink);font-size:clamp(3.2rem,7vw,5.2rem);letter-spacing:.06em;padding-left:.3em;line-height:1;text-shadow:0 4px 0 rgba(244,169,190,.45);}
.name-en{margin-top:16px;line-height:0;}
.name-en .name-logo{display:block;width:auto;height:clamp(24px,4.4vw,36px);margin-inline:auto;}
.tagline{font-family:var(--maru);font-weight:700;color:var(--forest-deep);font-size:clamp(1.05rem,3.6vw,1.5rem);margin-top:22px;line-height:1.9;}
.lede{max-width:34em;margin:14px auto 0;font-size:.96rem;color:var(--ink-soft);white-space:nowrap;}
.lede .en{display:block;font-size:.72rem;color:var(--forest);margin-top:8px;white-space:normal;}

/* ====== STORY ====== */
.story-wrapper{background:#F3EAD8;padding:clamp(48px,8vw,84px) 0;}
.story-wrapper .wrap{max-width:760px;text-align:center;}
.story-wrapper .eyebrow{display:block;font-family:var(--maru);font-weight:700;letter-spacing:.16em;font-size:clamp(.82rem,2.2vw,1rem);color:var(--honey);margin-bottom:10px;}
.story-wrapper .sec-en{font-size:clamp(1.8rem,5vw,2.5rem);}
.story-wrapper .sec-ja{font-size:.9rem;margin-top:6px;}
.story-wrapper .lead{font-size:.96rem;color:var(--ink-soft);line-height:1.9;margin:20px auto 0;max-width:36em;}
.story-wrapper .lead .say{font-family:var(--maru);font-weight:700;color:var(--sakura-deep);}
.story-wrapper .lead .en{display:block;font-size:.74rem;color:var(--forest);margin-top:16px;line-height:1.6;}
.story-wrapper .emphasis{font-family:var(--maru);font-weight:900;color:var(--forest-deep);font-size:clamp(1.2rem,4.4vw,2.05rem);line-height:1.6;margin:26px auto 6px;white-space:nowrap;}
.story-wrapper .emphasis .big{display:inline-block;color:var(--sakura-deep);font-size:1.3em;background:linear-gradient(transparent 64%, var(--sakura-soft) 64%);padding:0 .1em;}
.grow{margin:40px auto 0;text-align:center;}
.grow-svg{display:inline-block;width:min(260px,58%);height:auto;overflow:visible;}
.grow-svg .soil-mound{fill:#4b3521;}
.grow-svg .speck{fill:#3f2d1b;}
.grow-svg .g-seed{transform-box:fill-box;transform-origin:center;animation:seedFall 6.5s ease-in-out infinite;}
.grow-svg .g-seed ellipse{fill:var(--kraft);}
.grow-svg .g-stem{fill:none;stroke:#8fb35f;stroke-width:7;stroke-linecap:round;stroke-dasharray:135;stroke-dashoffset:135;animation:stemDraw 6.5s ease-in-out infinite;}
.grow-svg .g-cots{transform-box:fill-box;transform-origin:bottom;animation:cotBurst 6.5s cubic-bezier(.2,1.3,.4,1) infinite;}
.grow-svg .cot{fill:#7ba84e;}
.grow-svg .lvein{stroke:#6a9a54;stroke-width:3;stroke-linecap:round;fill:none;}
.grow-svg .leaf-a .lblade{fill:#456e3b;}
.grow-svg .leaf-b .lblade{fill:#588c4d;}
.grow-svg .leaf-b .lvein{stroke:#7cab65;}
.grow-svg .leaf-a .bigleaf{transform-box:fill-box;transform-origin:right;animation:leafGrowA 6.5s cubic-bezier(.2,1.2,.4,1) infinite;}
.grow-svg .leaf-b .bigleaf{transform-box:fill-box;transform-origin:left;animation:leafGrowB 6.5s cubic-bezier(.2,1.2,.4,1) infinite;}
.grow-svg .bud-shell{fill:#8fb35f;}
.grow-svg .bud-slit{fill:#e58aa0;}
.grow-svg .g-flower{transform-box:view-box;transform-origin:110px 84px;animation:budNod 6.5s cubic-bezier(.3,1,.5,1) infinite;}
.grow-svg .g-bud{animation:budFade 6.5s ease-in-out infinite;}
.grow-svg .g-open{transform-box:fill-box;transform-origin:center;animation:petalsOpen 6.5s cubic-bezier(.2,1.15,.4,1) infinite;}
.grow-svg .petals path{fill:#e58aa0;}
.grow-svg .fcenter{fill:#f3c3d2;}
.grow-svg .g-plant{animation:plantFade 6.5s ease-in-out infinite;}
@keyframes seedFall{0%{opacity:0;transform:translateY(-140px) scale(1)}5%{opacity:1;transform:translateY(-95px) scale(1)}12%{opacity:1;transform:translateY(0) scale(1,.88)}15%{opacity:1;transform:translateY(-6px) scale(1)}18%{opacity:1;transform:translateY(0) scale(1)}22%{opacity:1;transform:translateY(0) scale(1)}30%,100%{opacity:0;transform:translateY(0) scale(.4)}}
@keyframes stemDraw{0%,10%{stroke-dashoffset:135}24%{stroke-dashoffset:105}44%{stroke-dashoffset:105}60%,100%{stroke-dashoffset:0}}
@keyframes cotBurst{0%,22%{opacity:0;transform:scale(0)}32%{opacity:1;transform:scale(1.12)}36%,44%{opacity:1;transform:scale(1)}54%,100%{opacity:0;transform:scale(.85)}}
@keyframes leafGrowA{0%,46%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.06)}66%,100%{opacity:1;transform:scale(1)}}
@keyframes leafGrowB{0%,52%{opacity:0;transform:scale(0)}66%{opacity:1;transform:scale(1.06)}72%,100%{opacity:1;transform:scale(1)}}
@keyframes budNod{0%,58%{opacity:0}64%,100%{opacity:1}}
@keyframes budFade{0%,78%{opacity:1}86%,100%{opacity:0}}
@keyframes petalsOpen{0%,78%{transform:scale(0)}90%{transform:scale(1.05)}95%,100%{transform:scale(1)}}
@keyframes plantFade{0%,92%{opacity:1}98%,100%{opacity:0}}
.grow-steps{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:clamp(6px,1.6vw,16px);margin:22px auto 0;max-width:640px;}
.grow-steps .gs{display:flex;flex-direction:column;align-items:center;gap:2px;}
.grow-steps .gs-ja{font-family:var(--maru);font-weight:700;color:var(--forest-deep);font-size:clamp(.86rem,2.4vw,1rem);white-space:nowrap;}
.grow-steps .gs-en{font-family:var(--en-body);font-weight:700;color:var(--honey);font-size:.72rem;letter-spacing:.04em;}
.grow-steps .gs-arrow{color:var(--kraft);font-weight:700;font-size:1.1rem;line-height:1;}
.grow-steps .gs{opacity:.32;transform:scale(.95);}
.grow-steps .gs:nth-of-type(1){animation:gstep1 6.5s ease-in-out infinite;}
.grow-steps .gs:nth-of-type(2){animation:gstep2 6.5s ease-in-out infinite;}
.grow-steps .gs:nth-of-type(3){animation:gstep3 6.5s ease-in-out infinite;}
@keyframes gstep1{0%,18%{opacity:1;transform:scale(1.05)}28%,100%{opacity:.32;transform:scale(.95)}}
@keyframes gstep2{0%,26%{opacity:.32;transform:scale(.95)}36%,68%{opacity:1;transform:scale(1.05)}78%,100%{opacity:.32;transform:scale(.95)}}
@keyframes gstep3{0%,74%{opacity:.32;transform:scale(.95)}84%,98%{opacity:1;transform:scale(1.05)}100%{opacity:.32;transform:scale(.95)}}

/* ====== COSPLAY（全幅アーチ・切り抜き風・中央＝選択キャラ）====== */
.cosplay-slider-wrapper{padding:200px 0 84px;background:#F3EAD8;}
.cosplay-slider-wrapper .head{text-align:center;margin-bottom:30px;}
.cosplay-slider-wrapper .head .sec-en{font-size:clamp(1.7rem,5vw,2.4rem);}
.cosplay-slider-wrapper .head .sec-ja{font-size:.9rem;margin-top:6px;}
.cos-stage{position:relative;width:100%;margin-top:26px;}
.cos-track{position:relative;min-height:200px;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 85%,transparent 100%);mask-image:linear-gradient(to bottom,#000 85%,transparent 100%);}
.cos-item{position:absolute;left:50%;top:100%;width:clamp(90px,8.5vw,110px);aspect-ratio:1/1;padding:0;border:none;background:transparent;cursor:pointer;transform-origin:center;transition:transform .5s cubic-bezier(.2,.75,.3,1),opacity .4s ease;outline:none;backface-visibility:hidden;-webkit-backface-visibility:hidden;}
.cos-item:focus-visible{outline:2px solid var(--sakura-deep);outline-offset:3px;border-radius:14px;}
.cos-item img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(1.6px 0 0 #fff) drop-shadow(-1.6px 0 0 #fff) drop-shadow(0 1.6px 0 #fff) drop-shadow(0 -1.6px 0 #fff) drop-shadow(0 12px 16px rgba(120,90,80,.26));backface-visibility:hidden;-webkit-backface-visibility:hidden;}
.cos-item.active img{filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(0 20px 26px rgba(120,90,80,.4));}
.cos-item[data-i="15"] img{clip-path:inset(0 0 12% 0);}
/* 入場：花火のように中央から放射状に飛び出す（弾む easing） */
.cos-track.cos-burst .cos-item{transition:transform .72s cubic-bezier(.18,1.25,.4,1),opacity .5s ease;}
.cos-nav{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;margin-top:18px;}
.cos-pager{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:min(600px,92vw);}
.cos-pager-list{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;}
.cos-pager-list li{display:flex;}
.cos-pg-num{width:44px;height:44px;border-radius:50%;border:none;background:var(--cream-deep);color:var(--ink-soft);font-family:var(--maru);font-weight:700;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .2s;}
.cos-pg-num:hover{background:var(--kraft);color:#fff;transform:translateY(-2px);}
.cos-pager-list li.active .cos-pg-num{background:var(--sakura);color:var(--ink);}
.cos-pager-list li.dots span{display:flex;align-items:center;justify-content:center;width:28px;height:44px;color:var(--kraft);font-weight:700;letter-spacing:.04em;}
.cos-pg-arrow{width:46px;height:46px;border-radius:50%;border:none;background:var(--leaf-soft);color:var(--forest);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;}
.cos-pg-arrow svg{width:20px;height:20px;}
.cos-pg-arrow:hover{background:var(--leaf);transform:translateY(-2px);}
.cos-pg-num:focus-visible,.cos-pg-arrow:focus-visible{outline:2px solid var(--sakura-deep);outline-offset:2px;}
.cos-hero{position:absolute;left:50%;bottom:70px;transform:translateX(-50%);transform-origin:bottom center;width:clamp(215px,18vw,300px);height:auto;object-fit:contain;object-position:bottom center;z-index:6;pointer-events:none;filter:drop-shadow(1.8px 0 0 #fff) drop-shadow(-1.8px 0 0 #fff) drop-shadow(0 1.8px 0 #fff) drop-shadow(0 -1.8px 0 #fff) drop-shadow(0 18px 24px rgba(120,90,80,.4));transition:opacity .5s ease;backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity;isolation:isolate;}

/* ====== EVENTS（破線・時系列）====== */
.events-wrapper{padding:88px 0 170px;background:var(--cream);}
.events-wrapper .head{text-align:center;margin-bottom:18px;}
.events-wrapper .head .eyebrow{display:block;font-family:var(--maru);font-weight:700;letter-spacing:.16em;font-size:clamp(.82rem,2.2vw,1rem);color:var(--honey);margin-bottom:10px;}
.events-wrapper .head .sec-en{font-size:clamp(1.7rem,5vw,2.4rem);}
.events-wrapper .head .sec-ja{font-size:.9rem;margin-top:6px;}
.events-wrapper .head .desc{color:var(--ink-soft);max-width:37em;margin:14px auto 0;font-size:.96rem;white-space:nowrap;}
.events-wrapper .head .desc .en,.cosplay-slider-wrapper .head p .en{display:block;font-size:.74rem;margin-top:8px;line-height:1.7;white-space:normal;}
.trail{position:relative;margin-top:48px;}
.trail::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:repeating-linear-gradient(var(--kraft) 0 12px, transparent 12px 24px);transform:translateX(-50%);}
.scene{position:relative;display:flex;align-items:center;gap:clamp(16px,4vw,44px);margin-bottom:50px;}
.scene:nth-child(even){flex-direction:row-reverse;}
.polaroid{flex:0 0 clamp(150px,34vw,220px);background:var(--paper);padding:12px 12px 36px;border-radius:8px;box-shadow:0 16px 34px var(--shadow);position:relative;transform:rotate(-3deg);transition:transform .3s ease;border:1px solid var(--cream-deep);}
.scene:nth-child(even) .polaroid{transform:rotate(3deg);}
.polaroid:hover{transform:rotate(0) scale(1.03);}
.polaroid .pic{aspect-ratio:1/1;border-radius:4px;overflow:hidden;background:#FCEFF3;}
.polaroid .pic .mu-img{padding:7%;}
.polaroid .pic .mu-img.mu-crop-b{transform:scale(1.2);transform-origin:center top;}
.polaroid .cap{font-family:var(--maru);font-weight:700;color:var(--ink-soft);font-size:.84rem;text-align:center;margin-top:8px;}
.polaroid .washi{position:absolute;top:-14px;left:50%;transform:translateX(-50%) rotate(-4deg);min-width:60px;padding:4px 14px;border-radius:4px;opacity:.92;font-family:"Yomogi",var(--maru),sans-serif;font-weight:400;font-size:.86rem;color:var(--ink-soft);text-align:center;white-space:nowrap;line-height:1.3;}
.scene:nth-child(even) .polaroid .washi{transform:translateX(-50%) rotate(4deg);}
.scene .note{flex:1;min-width:0;background:var(--cream);}
.scene .ep{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.scene:nth-child(even) .ep{justify-content:flex-end;}
.scene:nth-child(even) .note{text-align:right;}
.scene .season{font-family:var(--en-head);font-weight:700;font-size:.82rem;letter-spacing:.06em;color:#fff;padding:4px 14px;border-radius:999px;}
.season.spring{background:var(--sakura);}.season.sports{background:var(--leaf);}.season.summer{background:#5BB6D6;}.season.autumn{background:var(--honey);}.season.winter{background:#9FB7C9;}
.scene .no{font-family:var(--en-head);font-weight:700;font-size:.74rem;color:var(--kraft);}
.scene h3{font-family:var(--maru);font-weight:900;color:var(--forest-deep);font-size:clamp(1.3rem,3.2vw,1.8rem);line-height:1.4;margin-bottom:8px;}
.scene h3 .en{display:block;font-family:var(--en-body);font-weight:700;font-size:.68rem;color:var(--forest);letter-spacing:.02em;line-height:1.4;margin-top:3px;}
.scene p{color:var(--ink-soft);font-size:.95rem;line-height:1.9;}
.scene .seed{display:inline-flex;align-items:center;gap:7px;margin-top:10px;font-family:var(--maru);font-weight:700;color:var(--sakura-deep);font-size:.84rem;}
.scene:nth-child(even) .seed{flex-direction:row-reverse;}
.scene .seed svg{width:16px;height:16px;}

/* ====== PROFILE ====== */
.profile-wrapper{padding:88px 0;}
.profile-wrapper .head{text-align:center;margin-bottom:40px;}
.profile-wrapper .head .sec-en{font-size:clamp(1.7rem,5vw,2.4rem);}
.profile-wrapper .head .sec-ja{font-size:.9rem;margin-top:6px;}
.pcard{background:var(--paper);border-radius:28px;padding:clamp(28px,5vw,48px);padding-left:clamp(46px,6vw,66px);box-shadow:0 26px 60px var(--shadow);border:1px solid var(--cream-deep);position:relative;display:grid;grid-template-columns:minmax(150px,300px) 1fr;gap:clamp(16px,1vw,46px);align-items:center;}
.pcard::before{content:"";position:absolute;left:24px;top:28px;bottom:28px;width:12px;border-radius:4px;background:repeating-linear-gradient(var(--cream-deep) 0 12px, transparent 12px 30px);opacity:.7;}
.frame{position:relative;background:transparent;padding:0;border:none;box-shadow:none;transform:none;}
.info-peek{position:absolute;top:0;right:0;display:flex;flex-direction:column;align-items:center;gap:2px;z-index:3;pointer-events:none;}
.info-peek img{width:clamp(50px,7vw,80px);}
.peek-bubble{font-family:"Yomogi",var(--maru),sans-serif;font-size:.92rem;color:var(--ink-soft);white-space:nowrap;}
.frame .pic{aspect-ratio:4/5;background:transparent;border:2.5px solid var(--forest);border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 5px var(--paper),inset 0 0 0 6.5px var(--leaf-soft);}
.frame .pic .mu-img{padding:9%;}
.pcard .info{padding-left:14px;position:relative;min-width:0;}
dl.rows{margin-top:14px;}
dl.rows > div{display:grid;grid-template-columns:8.5em 1fr;gap:4px 16px;padding:13px 0;border-bottom:1px dashed var(--cream-deep);}
dl.rows > div:last-child{border-bottom:0;}
dt{font-family:var(--maru);font-weight:700;color:var(--forest);font-size:.92rem;}
dd{color:var(--ink);font-weight:500;font-size:.96rem;}
dd .mark{color:var(--sakura-deep);font-weight:700;font-family:var(--maru);}
@media(min-width:861px){dl.rows dd{white-space:nowrap;}}

/* ====== FRIENDS（全員）====== */
.friends{padding:88px 0;}
.friends .head{text-align:center;margin-bottom:40px;}
.friends .head .sec-en{font-size:clamp(1.7rem,5vw,2.4rem);}
.friends .head .sec-ja{font-size:.9rem;margin-top:6px;}
.fgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.friend{background:var(--paper);border:1px solid var(--cream-deep);border-radius:22px;padding:18px 12px 22px;text-align:center;box-shadow:0 14px 32px var(--shadow);transition:transform .25s ease;}
.friend:hover{transform:translateY(-6px);}
.friend .av{width:100%;aspect-ratio:1/1;border-radius:16px;overflow:hidden;margin-bottom:12px;}
.friend .av .mu-img{padding:9%;}
.friend.pink .av{background:#FCE3EC;}.friend.blue .av{background:#DCF1F8;}.friend.green .av{background:#E3F1DC;}.friend.orange .av{background:#FCE6D6;}.friend.book .av{background:#F1EFEA;}
.friend h3{font-family:var(--maru);font-weight:700;color:var(--forest-deep);font-size:.98rem;}
.friend .role{font-size:.7rem;color:var(--leaf);font-family:var(--en-head);font-weight:700;letter-spacing:.06em;margin:4px 0 6px;}
.friend p{font-size:.8rem;color:var(--ink-soft);line-height:1.7;}

/* ====== BANNER（敷き詰め＋フィルター・日本語メイン）====== */
.banner-boundary{position:relative;z-index:5;}
.banner-boundary .banner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;width:min(880px,95%);display:grid;grid-template-columns:1fr minmax(286px,.92fr);align-items:stretch;gap:0;text-align:left;background:radial-gradient(circle,rgba(243,190,208,.4) 3.4px,transparent 4px) 0 0/44px 44px,radial-gradient(circle,rgba(246,221,160,.4) 3.4px,transparent 4px) 22px 0/44px 44px,radial-gradient(circle,rgba(199,229,184,.4) 3.4px,transparent 4px) 0 22px/44px 44px,radial-gradient(circle,rgba(190,226,239,.4) 3.4px,transparent 4px) 22px 22px/44px 44px,linear-gradient(116deg,#FFFFFF 0%,#FFFCF8 60%,#FFFEFB 100%);border:3px solid var(--sakura);border-radius:20px;box-shadow:0 16px 34px rgba(158,112,108,.16);padding:clamp(16px,2vw,22px);overflow:hidden;container-type:inline-size;}
.banner-boundary .copy{grid-column:1;display:flex;flex-direction:column;justify-content:center;min-width:0;container-type:inline-size;}
.banner-boundary .tag{display:inline-block;font-family:var(--maru);font-weight:700;font-size:.94rem;letter-spacing:.05em;color:var(--sakura-deep);}
.banner-boundary .big{display:flex;flex-direction:column;gap:1px;font-family:var(--maru);font-weight:900;color:var(--forest-deep);line-height:1.12;margin-top:4px;}
.banner-boundary .big-1,.banner-boundary .big-2{font-size:min(2.4rem,9.6cqi);white-space:nowrap;}
.banner-boundary .big-line2{display:flex;align-items:center;gap:clamp(8px,1.2vw,14px);}
.banner-boundary .big .line-g{color:#06C755;}
.banner-boundary .en-sub{font-family:var(--en-body);font-weight:700;color:var(--forest);font-size:.82rem;margin-top:8px;}
.banner-boundary .lead{font-family:var(--maru);font-weight:500;color:var(--ink-soft);font-size:.9rem;margin:14px 0 0;line-height:1.95;}
.banner-boundary .badge-count{flex:0 0 auto;display:inline-flex;align-items:center;background:#06C755;color:#fff;font-family:var(--maru);font-weight:900;font-size:clamp(1rem,3cqi,1.32rem);letter-spacing:.01em;padding:5px 14px;border-radius:9px;line-height:1;box-shadow:0 3px 8px rgba(6,199,85,.2);}
.banner-boundary .badge-count .num{font-size:1.25em;letter-spacing:.02em;margin:0 1px 2px;}
.banner-boundary .showcase{grid-column:2;position:relative;align-self:stretch;min-height:clamp(188px,25vw,236px);margin:calc(-1 * clamp(16px,2vw,22px)) calc(-1 * clamp(16px,2vw,22px)) calc(-1 * clamp(16px,2vw,22px)) 0;}
.banner-boundary .panels{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#fff;padding:0 0 0 3px;border-radius:0;overflow:hidden;}
.banner-boundary .panel{background:var(--c,#eee);display:flex;align-items:center;justify-content:center;padding-bottom:max(20%,56px);}
.banner-boundary .panel img{width:min(90%,112px);height:auto;object-fit:contain;}
.banner-boundary .actions{position:absolute;left:8px;right:8px;bottom:8px;width:78%;margin:0 0 0 auto;display:flex;align-items:flex-end;justify-content:center;gap:clamp(12px,2vw,20px);padding-bottom:3%;}
.banner-boundary .qr{flex:0 0 auto;width:clamp(52px,6.4vw,76px);display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;}
.banner-boundary .qr img{width:100%;height:auto;aspect-ratio:1;border-radius:10px;background:#fff;padding:4px;box-shadow:0 4px 10px rgba(120,90,80,.16);}
.banner-boundary .qr span{order:-1;width:100%;font-family:var(--maru);font-weight:700;font-size:.54rem;color:var(--ink-soft);line-height:1.2;text-align:center;white-space:normal;}
.banner-boundary .cta{display:inline-flex;align-items:center;font-family:var(--maru);font-weight:700;font-size:clamp(.86rem,2.6cqi,1rem);color:#fff;text-decoration:none;background:linear-gradient(135deg,#F472A0,#E8617C);border-radius:999px;padding:11px 20px;transition:transform .34s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;}
.banner-boundary .cta::after{content:"▶";font-size:.68em;margin-left:6px;}
.banner-boundary .cta:hover{transform:scale(1.06);}

/* ====== FRIENDS SLIDER（中央＋右上横並び・MUU大文字背景）====== */
.friends-slider-wrapper{position:relative;padding:84px 0 92px;background:var(--cream);overflow:hidden;}
.mfs-marquee{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);white-space:nowrap;font-family:var(--en-head);font-weight:800;font-size:clamp(9rem,30vw,24rem);line-height:1;color:rgba(92,86,78,.075);letter-spacing:.05em;pointer-events:none;animation:slideL 30s linear infinite;will-change:transform;z-index:0;}
@keyframes slideL{from{transform:translate(0,-50%);}to{transform:translate(-50%,-50%);}}
.friends-slider-wrapper .wrap{position:relative;z-index:2;}
.mfs-head{text-align:center;margin-bottom:30px;}
.mfs-head .sec-en{font-size:clamp(1.7rem,5vw,2.4rem);}
.mfs-head .sec-ja{font-size:.9rem;margin-top:6px;}
.mfs-stage{position:relative;min-height:470px;}
.mfs-thumbs{position:absolute;top:0;right:0;display:flex;gap:14px;z-index:3;}
.mfs-thumb{position:relative;width:clamp(72px,9vw,98px);height:clamp(72px,9vw,98px);border:none;background:transparent;cursor:pointer;padding:0;transition:transform .25s ease;}
.mfs-thumb:hover{transform:translateY(-8px) scale(1.05);}
.mfs-thumb img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 10px 16px rgba(120,90,80,.2));}
.mfs-feature{position:absolute;left:0;bottom:0;width:100%;display:flex;align-items:center;gap:clamp(24px,4.5vw,64px);max-width:900px;}
.mfs-info{flex:1;min-width:0;}
.mfs-portrait{position:relative;flex:0 0 clamp(250px,38vw,400px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 42%,#fff 0%,var(--mfs-bg,#FCEFF3) 70%,var(--mfs-bg2,#F8DDE5) 100%);border:8px solid var(--paper);box-shadow:0 24px 54px var(--shadow);overflow:hidden;display:flex;align-items:center;justify-content:center;}
/* シークレットのじらしメッセージ（サムネ=ホバーでタグ風バブル／シルエット=ホバーで白文字） */
.mfs-thumb .mfs-tease,.mfs-portrait .mfs-tease{opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;}
.mfs-thumb .mfs-tease{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%,6px);white-space:nowrap;font-family:"Yomogi",var(--maru),sans-serif;font-weight:400;font-size:clamp(.52rem,1.9vw,.7rem);color:var(--forest-deep);z-index:6;}
.mfs-thumb:hover .mfs-tease,.mfs-thumb:focus-visible .mfs-tease{opacity:1;transform:translate(-50%,0);}
.mfs-portrait .mfs-tease{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:14%;font-family:"Yomogi",var(--maru),sans-serif;font-weight:400;font-size:clamp(1.15rem,3.6vw,1.7rem);line-height:1.5;color:#fff;letter-spacing:.03em;text-shadow:0 2px 10px rgba(0,0,0,.3);}
.mfs-portrait.secret:hover .mfs-tease{opacity:1;}
.mfs-tease.tight{letter-spacing:-.13em;}
.mfs-portrait img{width:100%;height:100%;object-fit:contain;padding:12%;}
/* シークレット（カラーのムゥ）：キラキラ＝色付きの背景はそのまま、体だけシルエット化 */
.mfs-thumb.secret img{filter:brightness(0) drop-shadow(0 10px 16px rgba(120,90,80,.2));}
.mfs-portrait.secret img{filter:brightness(0);}
.mfs-info h3{font-family:var(--maru);font-weight:900;color:var(--forest-deep);font-size:clamp(1.4rem,3.6vw,2rem);}
.mfs-info .role{font-family:var(--en-head);font-weight:700;color:var(--leaf);letter-spacing:.08em;font-size:.84rem;margin:5px 0 12px;}
.mfs-info p{color:var(--ink-soft);font-size:.9rem;line-height:1.9;max-width:27em;}
.mfs-info .mfs-job{display:inline-block;font-family:var(--maru);font-weight:700;font-size:.82em;color:var(--forest-deep);background:var(--leaf-soft);padding:2px 13px;border-radius:999px;margin:5px 0;}
@media(max-width:760px){
  .mfs-stage{min-height:auto;}
  .mfs-thumbs{position:static;justify-content:center;flex-wrap:nowrap;gap:clamp(5px,1.6vw,14px);margin-bottom:clamp(20px,5vw,32px);}
  .mfs-thumb{width:clamp(46px,19vw,98px);height:clamp(46px,19vw,98px);}
  .mfs-feature{position:static;flex-direction:column;text-align:center;max-width:100%;}
  .mfs-info p{margin-inline:auto;font-size:.84rem;max-width:27em;}
}

/* ====== WISH ====== */
.wish-wrapper{background:radial-gradient(120% 100% at 50% 0%, var(--forest) 0%, var(--forest-deep) 72%);color:var(--cream);text-align:center;padding:clamp(56px,10vw,96px) clamp(20px,5vw,24px) 100px;position:relative;overflow:hidden;}
.wish-wrapper .eyebrow{font-family:var(--maru);font-weight:700;letter-spacing:.16em;font-size:clamp(.82rem,2.2vw,1rem);color:var(--honey);}
.wish-wrapper blockquote{font-family:var(--maru);font-weight:900;font-size:clamp(1.5rem,5.5vw,2.4rem);line-height:1.6;margin:18px auto 12px;max-width:18em;}
.wish-wrapper blockquote .u{background:linear-gradient(transparent 60%, rgba(244,169,190,.55) 60%);padding:0 .1em;}
.wish-wrapper .en{display:block;font-family:var(--en-body);font-weight:600;font-size:.8rem;color:var(--leaf-soft);max-width:30em;margin:14px auto 0;line-height:1.6;}

/* ====== 共通フッター：このページ用の上書き ====== */
/* display:flow-root＝子(.footer-bottom)の下マージンが外へ相殺してbody背景(クリーム)が帯状に出るのを防ぐ */
footer{margin-top:0;background:#fff;display:flow-root;}


/* responsive */
/* 縦長ビューポート（ポートレート＝タブレット/スマホ縦持ち）ではヒーローを画面全高にせず、
   中身＋パディングの高さに。svhの92%強制で上下に無駄な余白が出るのを防ぐ（横長は従来どおり全高） */
@media(max-aspect-ratio:1/1){
  .hero-wrapper{min-height:auto;}
}
@media(max-width:860px){
  .pcard{grid-template-columns:1fr;padding-left:60px;}
  .frame{max-width:300px;margin:0 auto;}
  .pcard .info{padding-left:0;}
  .fgrid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:767.98px){
  .banner-boundary .banner{grid-template-columns:1fr;text-align:center;width:min(1000px,92%);gap:16px;}
  .events-wrapper{padding-bottom:calc(170px + 11.5vw);}
  .cosplay-slider-wrapper{padding-top:calc(200px + 11.5vw);}
  .banner-boundary .copy{align-items:center;}
  .banner-boundary .big{align-items:center;}
  .banner-boundary .lead{font-size:.82rem;}
  .banner-boundary .badge-count{font-size:clamp(16px,4.5vw,18px);padding:2px 8px;}
  .banner-boundary .showcase{grid-column:1;min-height:clamp(168px,45vw,225px);margin:0 calc(-1 * clamp(16px,2vw,22px)) calc(-1 * clamp(16px,2vw,22px));}
  .banner-boundary .panels{padding:0;}
  .banner-boundary .panel img{width:min(90%,146px);}
  .banner-boundary .actions{justify-content:center;width:auto;}
  .banner-boundary .cta{padding:10px 24px;}
  .banner-boundary .qr{display:none;}
  .peek-bubble{font-size:.8rem;}
  .mu-portrait{width:min(320px,68vw);}
  .hero-wrapper{min-height:auto;}
  footer::before{background-image:url(https://ik.imagekit.io/yumephoto/yumeportal/footer/bg_footer-top_sp.png?updatedAt=1752114198808);}
}
@media(max-width:600px){
  dl.rows > div{grid-template-columns:1fr;gap:2px 0;}
  footer{margin-top:2%;}
  .grow-steps{flex-direction:column;gap:8px;}
  .grow-steps .gs-arrow{transform:rotate(90deg);}
}
@media(max-width:640px){
  .sp-br{display:inline;}
  .trail::before{left:24px;}
  .scene,.scene:nth-child(even){flex-direction:column;align-items:flex-start;padding-left:8px;text-align:left;}
  .scene:nth-child(even) .note,.scene:nth-child(even) .ep{text-align:left;justify-content:flex-start;}
  .scene:nth-child(even) .seed{flex-direction:row;}
  .polaroid{align-self:center;flex:0 0 auto;width:min(50vw,260px);}
  .fgrid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:480px){
  .cos-hero{bottom:56px;}
  .cos-pager{gap:6px;width:min(360px,96vw);}
  .cos-pager-list{gap:6px;}
  .cos-pg-num{width:38px;height:38px;font-size:.9rem;}
  .cos-pg-arrow{width:40px;height:40px;}
  .cos-pg-arrow svg{width:18px;height:18px;}
}
@media(max-width:412px){
  .banner-boundary .lead{font-size:3vw;}
}
@media(max-width:400px){
  .br-400{display:none;}
  .lede{white-space:normal;}
}
@media(max-width:375px){
  .br-375{display:none;}
}
@media(prefers-reduced-motion:reduce){.petal,.mfs-marquee{animation:none !important;}.reveal{transition:none;opacity:1;transform:none;}html{scroll-behavior:auto;}.grow-svg *{animation:none !important;}.grow-svg .g-seed,.grow-svg .g-cots,.grow-svg .g-bud{opacity:0;}.grow-svg .g-stem{stroke-dashoffset:0;}.grow-svg .bigleaf,.grow-svg .g-open{opacity:1;transform:scale(1);}.grow-svg .g-flower{opacity:1;transform:none;}.grow-steps .gs{animation:none !important;opacity:1;transform:none;}}
