:root{
  --black:#101010;--paper:#fff;--gray:#d9d8d2;--yellow:#f1c108;--orange:#e94c1e;--blue:#109dd3;--green:#2dab42;
  --mobile-max:480px;--gutter:31px;--pc-total:1208px;
  --font-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-en:"Jost","Arial Rounded MT Bold",Arial,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--black);font-family:var(--font-jp)}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}img,video{display:block;max-width:100%}
button,a{touch-action:manipulation}::selection{background:#f1c108;color:#111}

/* ===== desktop composition: 480 + 30 + 480 + 42 + 176 = 1208 ===== */
.desktop-stage{width:100%;min-height:100vh;background:#fff}.pc-side{display:none}.mobile-column{width:100%;max-width:none;margin-inline:auto;background:#fafbfd;min-height:100vh;overflow:clip}
@media(min-width:1100px){
  .desktop-stage{width:var(--pc-total);margin-inline:auto;display:grid;grid-template-columns:480px 480px 176px;column-gap:30px;align-items:start}
  .desktop-stage>.mobile-column{grid-column:2;width:480px;margin:0}
  .pc-side{display:block;position:sticky;top:0;height:100vh;overflow:hidden}
  .pc-left{grid-column:1;grid-row:1}.pc-right{grid-column:3;grid-row:1;margin-left:12px;width:176px}
  .mobile-only{display:none!important}.mobile-header,.mobile-menu,.hero-mobile-menu{display:none!important}
}

/* ===== PC fixed FV ===== */
.pc-fv{position:relative;width:480px;height:100vh;background:#1b627e;overflow:hidden}
.pc-fv video{width:100%;height:100%;object-fit:cover}
.pc-fv::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.03) 50%,rgba(0,0,0,.38));pointer-events:none}
.pc-fv-logo{position:absolute;z-index:2;left:31px;top:28px;width:177px}.pc-fv-logo img{width:100%}
.pc-fv-date{position:absolute;z-index:2;left:31px;bottom:34px;color:white}.pc-fv-date strong{font:800 60px/.9 var(--font-en);letter-spacing:-2px}.pc-fv-date p{margin:9px 0 0;font:700 12px/1.6 var(--font-en);letter-spacing:.08em}
.pc-fv-badge{position:absolute;z-index:2;right:25px;bottom:150px;width:76px;aspect-ratio:1;border-radius:50%;background:#f1c108;display:grid;place-items:center;color:#111;font:800 11px/1.2 var(--font-en);text-align:center;transform:rotate(-9deg);transition:transform .25s ease}.pc-fv-badge:hover{transform:rotate(-4deg) scale(1.08)}

/* ===== PC right accordion nav ===== */
.pc-nav{padding-top:118px;font-family:var(--font-en)}
.pc-nav-group{border-bottom:1px solid #111}
.pc-nav-button{width:100%;padding:16px 1px;border:0;background:none;display:flex;align-items:center;justify-content:space-between;text-align:left;font-weight:600;font-size:17px;letter-spacing:.05em;cursor:pointer;transition:opacity .2s,transform .2s}
.pc-nav-button:hover{opacity:.55;transform:translateX(3px)}.pc-nav-button::after{content:"＋";font-family:Arial;font-size:16px;font-weight:400}.pc-nav-group.is-open .pc-nav-button::after{content:"−"}
.pc-nav-links{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.pc-nav-links>div{overflow:hidden}.pc-nav-links a{display:block;padding:0 0 10px 8px;font:700 12px/1.55 var(--font-jp);opacity:.72;transition:opacity .2s,transform .2s}.pc-nav-links a:hover{opacity:1;transform:translateX(3px)}.pc-nav-group.is-open .pc-nav-links{grid-template-rows:1fr}
.pc-social{display:flex;gap:28px;padding-top:28px}.pc-social a{width:30px;height:30px;display:grid;place-items:center;transition:opacity .2s,transform .2s}.pc-social a:hover{opacity:.55;transform:scale(1.08)}.pc-social img{width:30px;height:30px;object-fit:contain}

/* ===== mobile header ===== */
.mobile-header{height:60px;border:1px solid #111;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 31px;position:sticky;top:0;z-index:50;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-5px);transition:opacity .25s,transform .25s,visibility .25s}
.mobile-header.is-visible,.inner-page .mobile-header{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.mobile-header-logo{width:305px;max-width:calc(100% - 56px);height:30px;display:flex;align-items:center}.mobile-header-logo img{width:100%;height:auto}
.menu-toggle{width:35px;height:35px;flex:0 0 35px;border:0;border-radius:50%;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;cursor:pointer;transition:transform .22s}.menu-toggle:hover{transform:scale(1.08)}.menu-toggle span{width:17px;height:1px;background:#fff;transition:transform .22s,opacity .22s}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.hero-mobile-menu{position:absolute;z-index:8;right:31px;top:30px}
.mobile-menu{position:fixed;z-index:100;inset:0 auto 0 50%;translate:-50% 0;width:min(100%,480px);height:100dvh;background:#fff;border-left:1px solid #111;border-right:1px solid #111;padding:82px 31px 36px;display:block;overflow:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-14px);transition:transform .48s cubic-bezier(.22,1,.36,1),opacity .32s ease,visibility 0s linear .48s;will-change:transform,opacity}.mobile-menu.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:transform .48s cubic-bezier(.22,1,.36,1),opacity .32s ease,visibility 0s}.mobile-menu-close{position:absolute;right:31px;top:19px;width:38px;height:38px;border:0;background:transparent;padding:0;cursor:pointer}.mobile-menu-close::before,.mobile-menu-close::after{content:"";position:absolute;left:8px;top:18px;width:22px;height:1.5px;background:#111}.mobile-menu-close::before{transform:rotate(45deg)}.mobile-menu-close::after{transform:rotate(-45deg)}.mobile-menu-close:hover{opacity:.5}.mobile-menu details{border-bottom:1px solid #111}.mobile-menu summary{list-style:none;cursor:pointer;padding:13px 0;font:600 17px var(--font-en);letter-spacing:.05em}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary::after{content:"＋";float:right}.mobile-menu details[open] summary::after{content:"−"}.mobile-menu a{display:block;padding:4px 0 10px 8px;font-size:12px;font-weight:700;opacity:.75}

/* ===== shared typography / controls ===== */
.section{position:relative}.section-heading{text-align:center}.section-heading h2{font:500 48px/1.15 var(--font-en);letter-spacing:2.4px;margin:0}.section-heading p{font-size:14px;letter-spacing:.7px;font-weight:700;margin:6px 0 0}.section-heading.light{color:#fff}
.rule{height:1px;background:#111;width:418px;max-width:calc(100% - 62px);margin-inline:auto}
.pill{display:flex;align-items:center;justify-content:center;width:270px;height:68px;border:1px solid #111;border-radius:999px;background:#fff;font-weight:700;font-size:12px;letter-spacing:.6px;margin-inline:auto;transition:background .2s,color .2s,border-color .2s,transform .2s}.pill:hover,.pill:focus-visible{background:#111;color:#fff}.pill:active{transform:scale(.98)}.pill.dark{background:#fff;color:#111}.pill.dark:hover{background:#111;color:#fff;border-color:#fff}.pill.small{width:150px;height:38px}
a:focus-visible,button:focus-visible{outline:2px solid #e94c1e;outline-offset:3px}

/* ===== HERO ===== */
.hero{height:852px;position:relative;overflow:hidden;background:#4a94b5}.hero>img.hero-photo{width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 50%,rgba(0,0,0,.2))}
.hero-logo{position:absolute;z-index:3;left:31px;top:31px;width:174px}.hero-logo img{width:100%;filter:none}
.hero-date{position:absolute;z-index:3;left:31px;bottom:31px;color:#fff}.hero-date strong{font:800 61px/.85 var(--font-en);letter-spacing:-2px}.hero-date span{display:block;margin-top:10px;font:700 11px/1.55 var(--font-en);letter-spacing:.08em}
.hero-event-meta{position:absolute;z-index:3;right:31px;bottom:35px;color:#fff;text-align:right;font:700 11px/1.5 var(--font-en)}
.hero-crowd{position:absolute;z-index:4;right:20px;top:540px;width:120px;height:120px;display:grid;place-items:center;transition:transform .25s}.hero-crowd:hover{transform:scale(1.05) rotate(-4deg)}.hero-crowd .disc{width:70px;height:70px;border-radius:50%;background:#f1c108;display:grid;place-items:center}.hero-crowd .disc img{width:44px}

/* ===== TOP topics ===== */
.top-topics{padding:80px 30px 74px}.top-topics .rule{margin-top:29px}.topics-list{margin-top:29px}.topic-row{display:grid;grid-template-columns:189px 1fr;gap:29px;align-items:center;min-height:154px}.topic-thumb{width:189px;height:139px;border-radius:10px;overflow:hidden}.topic-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .32s}.topic-type{display:block;font-size:12px;letter-spacing:.6px;margin-bottom:5px}.topic-body h3{font-size:16px;line-height:1.55;letter-spacing:.8px;margin:0 0 5px}.topic-body time{font-size:12px;color:#7b7b7b;letter-spacing:.6px}.topic-row:hover .topic-thumb img{transform:scale(1.055)}.topic-row:hover .topic-body{opacity:.62}.top-topics .pill{margin-top:22px}

/* ===== CONCEPT / Figma yellow + blue voice area ===== */
.concept{padding:34px 31px 0;overflow:hidden;background-color:#f1c108;color:#fff;background-image:radial-gradient(circle,rgba(255,255,255,.22) 1px,transparent 1.25px);background-size:4px 4px}
.concept .section-heading,.concept .concept-lead,.concept .concept-copy,.concept>.pill{position:relative;z-index:1}
.concept .section-heading h2{color:#fff;font-size:48px;line-height:1;letter-spacing:2.4px}.concept .section-heading p{color:#fff;font-size:14px;line-height:17px;letter-spacing:.7px;margin-top:10px}
.concept-lead{width:418px;max-width:100%;text-align:center;margin:25px auto 0;font-size:20px;line-height:40px;letter-spacing:2px;font-weight:800}.concept-lead span{display:block;white-space:nowrap}
.concept-copy{position:relative;margin:25px auto 0;width:418px;max-width:100%;font-size:18px;line-height:38px;letter-spacing:1.8px;font-weight:400;color:#fff;max-height:422px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 0 74%,rgba(0,0,0,.92) 84%,rgba(0,0,0,.45) 94%,transparent 100%);mask-image:linear-gradient(#000 0 74%,rgba(0,0,0,.92) 84%,rgba(0,0,0,.45) 94%,transparent 100%);transition:max-height .68s cubic-bezier(.22,1,.36,1)}
.concept-copy p{margin:0}.concept-copy p+p{margin-top:24px}.concept-more{display:block;opacity:1}.concept-more>p{overflow:visible}.concept.is-expanded .concept-copy{max-height:1400px;-webkit-mask-image:none;mask-image:none}.concept.is-expanded .concept-more{opacity:1}.concept .pill{margin-top:28px;background:#fff;color:#111;border-color:#111}.concept .pill:hover{background:#111;color:#fff;border-color:#111}.concept-more-toggle{cursor:pointer}
.voices{position:relative;z-index:2;height:500px;margin:40px -31px 0;padding:29px 0 0;background:#0497db;color:#fff;overflow:hidden}
.voices-title{width:418px;max-width:calc(100% - 62px);height:44px;margin:0 auto 26px;text-align:center;font-size:28px;line-height:44px;letter-spacing:2.8px;font-weight:800;white-space:nowrap}
.voices-marquee{width:100%;overflow:hidden}
.voices-track{display:flex;width:max-content;height:48px;gap:30px;margin-top:30px;will-change:transform;animation:voice-flow 54s linear infinite}
.voices-track:first-child{margin-top:0;margin-left:-8px}.voices-track:nth-child(2){margin-left:-159px;animation-direction:reverse;animation-duration:58s}.voices-track:nth-child(3){margin-left:-33px;animation-duration:62s}.voices-track:nth-child(4){margin-left:-81px;margin-top:40px;animation-direction:reverse;animation-duration:60s}.voices-track:nth-child(5){margin-left:-137px;animation-duration:64s}
.voice-item{width:max-content;height:48px;flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;white-space:nowrap;background:transparent}
.voice-item img{position:static;width:48px;height:48px;flex:0 0 48px;border:1px solid #fff;border-radius:50%;object-fit:cover}
.voice-item span{position:static;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:max-content;min-width:0;max-width:none;height:42px;border:1px solid #fff;border-radius:100px;padding:0 22px;overflow:visible;white-space:nowrap;font-size:16px;line-height:19px;letter-spacing:1.6px;font-weight:800}
@keyframes voice-flow{to{transform:translateX(-50%)}}

/* ===== flowing border ===== */
.flow-border{height:29px;background-image:url('assets/wave-marquee.png');background-size:auto 29px;background-repeat:repeat-x;animation:wave-flow 8s linear infinite}.concept-bottom-border{transform:scaleY(-1);transform-origin:center}@keyframes wave-flow{to{background-position:-377px 0}}

/* ===== horizontal endless carousels ===== */
.carousel{overflow:hidden}.carousel-track{display:flex;gap:30px;overflow-x:auto;opacity:0;transition:opacity .22s ease;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:0 124px 4px;cursor:grab;-webkit-overflow-scrolling:touch}.carousel-track.is-ready{opacity:1}.carousel-track::-webkit-scrollbar{display:none}.carousel-track.is-dragging{cursor:grabbing;scroll-snap-type:none}.shop-card{flex:0 0 231px;scroll-snap-align:center}.shop-photo{width:231px;height:248px;overflow:hidden;position:relative;background:#ddd;-webkit-clip-path:polygon(0.76% 46.88%, 2.42% 66.46%, 2.78% 71.45%, 2.64% 87.88%, 21.12% 96.99%, 29.72% 98.04%, 36.82% 98.53%, 43.37% 98.96%, 47.95% 99.35%, 51.28% 99.76%, 68.08% 99.24%, 71.01% 98.62%, 72.39% 98.68%, 75.03% 98.12%, 81.84% 97.44%, 91.49% 93.68%, 97.38% 86.16%, 97.86% 80.80%, 98.64% 75.95%, 99.61% 64.99%, 99.96% 62.20%, 99.61% 53.85%, 99.79% 43.20%, 98.04% 25.26%, 96.34% 11.44%, 83.27% 1.55%, 75.13% 1.21%, 69.33% 0.24%, 66.79% 0.32%, 64.89% 0.02%, 63.03% 0.32%, 57.15% 0.24%, 49.53% 0.57%, 44.54% 0.15%, 37.70% 0.82%, 33.84% 0.56%, 27.01% 1.06%, 12.52% 3.58%, 4.41% 8.52%, 0.41% 21.25%, 0.41% 26.82%, 0.05% 29.35%);clip-path:polygon(0.76% 46.88%, 2.42% 66.46%, 2.78% 71.45%, 2.64% 87.88%, 21.12% 96.99%, 29.72% 98.04%, 36.82% 98.53%, 43.37% 98.96%, 47.95% 99.35%, 51.28% 99.76%, 68.08% 99.24%, 71.01% 98.62%, 72.39% 98.68%, 75.03% 98.12%, 81.84% 97.44%, 91.49% 93.68%, 97.38% 86.16%, 97.86% 80.80%, 98.64% 75.95%, 99.61% 64.99%, 99.96% 62.20%, 99.61% 53.85%, 99.79% 43.20%, 98.04% 25.26%, 96.34% 11.44%, 83.27% 1.55%, 75.13% 1.21%, 69.33% 0.24%, 66.79% 0.32%, 64.89% 0.02%, 63.03% 0.32%, 57.15% 0.24%, 49.53% 0.57%, 44.54% 0.15%, 37.70% 0.82%, 33.84% 0.56%, 27.01% 1.06%, 12.52% 3.58%, 4.41% 8.52%, 0.41% 21.25%, 0.41% 26.82%, 0.05% 29.35%)}.shop-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s,opacity .35s}.shop-card:hover .shop-photo img{transform:scale(1.055);opacity:.92}.shop-caption{display:flex;align-items:center;gap:9px;width:231px;margin-top:8px;padding-left:20px;box-sizing:border-box;font-size:16px;font-weight:800}.lineup-text{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.lineup-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:opacity .2s}.lineup-category{display:block;max-width:100%;margin:0;font-size:.8em;line-height:1.35;font-weight:500;letter-spacing:.04em;color:#777;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shop-card:hover .lineup-name{opacity:.62}.lineup-instagram{width:25px;height:25px;flex:0 0 25px;margin-left:auto;border:1px solid currentColor;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;transition:transform .2s,opacity .2s}.lineup-instagram:hover{transform:scale(1.1);opacity:.72}.lineup-instagram img{width:13px;height:13px;object-fit:contain}.insta-dot{width:25px;height:25px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;flex:0 0 25px}.insta-dot img{width:13px;height:13px;object-fit:contain}.pick{position:absolute;left:7px;top:9px;width:60px;height:60px;background:#f1c108;color:#fff;border-radius:50%;display:grid;place-items:center;font-size:42px;font-weight:900;transform:rotate(-10deg)}
.top-shop{padding:76px 0 80px}.top-shop .carousel{margin-top:36px}.top-shop .pill{margin-top:28px}

/* MOVE */
.move{padding:75px 0 82px}.movie-track{padding-inline:100px;gap:20px}.movie-card{flex:0 0 279px;height:496px;position:relative;overflow:hidden;scroll-snap-align:center;background:#ddd}.movie-card>img{width:100%;height:100%;object-fit:cover;transition:transform .35s,opacity .35s}.movie-card:hover>img{transform:scale(1.04);opacity:.78}.play{position:absolute;left:50%;top:50%;translate:-50% -50%;width:36px;height:36px;border-radius:50%;background:#fff;display:grid;place-items:center;padding-left:2px;transition:transform .2s,background .2s,color .2s}.movie-card:hover .play{transform:scale(1.14);background:#111;color:#fff}.movie-embed{background:#fff}.movie-embed iframe{width:100%;height:100%;border:0;display:block}.move .carousel{margin-top:35px}.move .pill{margin-top:40px}

/* ARTIST */
.artist{background:#000;color:#fff;padding:74px 0 75px}.artist .carousel{margin-top:36px}.artist .insta-dot,.artist .lineup-instagram{background:#fff;color:#111;border-color:#fff}.artist .lineup-category{color:rgba(255,255,255,.68)}.artist-actions{display:grid;gap:20px;margin-top:33px}.artist-actions .pill{margin:0 auto}

/* INFORMATION */
.information{padding:87px 31px 92px}.info-list{margin:50px 0 0}.info-list>div{min-height:69px;border-bottom:1px solid #111;display:grid;grid-template-columns:130px 1fr;align-items:center;padding:0 10px;font-size:16px;font-weight:800;letter-spacing:.8px}.info-list dt,.info-list dd{margin:0}.access-buttons{display:flex;gap:9px}.access-chip{width:92px;height:38px;border:1px solid #111;border-radius:999px;display:grid;place-items:center;font-size:11px;transition:background .2s,color .2s}.access-chip:hover{background:#111;color:#fff}.map-frame{margin-top:24px;width:100%;height:447px;overflow:hidden}.map-frame iframe{display:block;width:100%;height:100%;border:0}
.sponsors{padding:74px 31px 110px}.sponsors .section-heading h2{font-size:28px}.sponsor-logos{display:grid;grid-template-columns:1fr 1fr;gap:27px 20px;align-items:center;justify-items:center;margin-top:52px}.sponsor-logos img{max-height:44px;object-fit:contain}.sponsor-logos a:nth-child(3){grid-column:1/-1}.sponsor-logos a{transition:opacity .2s}.sponsor-logos a:hover{opacity:.55}

/* SERIES */
.series-section{background:#d9d8d2;padding:77px 31px 92px}.series-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 18px;margin-top:36px}.series-card img{width:100%;height:200px;object-fit:cover;transition:transform .3s}.series-card:first-child{grid-column:1/-1}.series-card:first-child img{height:418px}.series-card p{font-size:12px;line-height:1.75;letter-spacing:1.1px;font-weight:800;margin:9px 0 0}.series-card:hover{opacity:.82}.series-card:hover img{transform:scale(1.015)}.series-section .pill{margin-top:34px}

/* ===== footer ===== */
.footer{background:#191919;color:#fff;padding:72px 31px 25px;min-height:883px}.footer-top{display:flex;justify-content:space-between;align-items:flex-start}.footer-logo{width:165px;flex:0 0 165px}.footer-logo img{width:100%;height:auto}.footer-social{display:flex;gap:18px;padding-top:58px}.footer-social a{width:31px;height:31px;display:grid;place-items:center;transition:opacity .2s,transform .2s}.footer-social a:hover{opacity:.58;transform:scale(1.08)}.footer-social img{width:100%;height:100%;object-fit:contain;filter:invert(1)}.footer-nav{margin-top:60px;display:grid;grid-template-columns:1fr 1fr;gap:48px 67px}.footer-nav h3{margin:0 0 20px;padding-bottom:10px;border-bottom:1px solid #fff;font:600 16px/1.2 var(--font-en);letter-spacing:.04em}.footer-nav a{display:block;font-size:16px;font-weight:700;line-height:1.75;transition:opacity .2s,transform .2s}.footer-nav a:hover{opacity:.6;transform:translateX(3px)}.footer-bottom{margin-top:118px;font-size:12px;font-weight:700;line-height:2}.footer-bottom strong{display:block;margin-bottom:2px}.footer-legal{display:flex;justify-content:space-between;align-items:flex-end;margin-top:42px;gap:20px;white-space:nowrap}.footer-legal a{text-decoration:underline}.footer-legal small{font-size:10px}

/* ===== Inner page shared ===== */
.inner-page{background:#fafbfd;min-height:100vh}.inner-page-main{padding:17px 31px 90px}.page-title{font:500 48px/1.2 var(--font-en);letter-spacing:2.4px;margin:0 0 27px}.page-title small{font:700 14px/1.4 var(--font-jp);letter-spacing:.7px;display:block;margin-top:5px}
.inner-footer-gap{height:90px}

/* topics page */
.topic-grid{display:grid;gap:34px}.topic-article-card{display:block}.topic-article-card .image{width:100%;height:308px;overflow:hidden;background:#ddd}.topic-article-card .image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.topic-article-card:hover .image img{transform:scale(1.035)}.topic-article-card .meta{padding-top:14px}.topic-article-card .meta .type{font-size:12px;letter-spacing:.8px}.topic-article-card h2{font-size:18px;line-height:1.55;margin:6px 0;font-weight:800}.topic-article-card time{font-size:12px;color:#777}.load-more{margin-top:44px}

/* SHOP page */
.shop-feature-list{display:grid;gap:50px}.shop-feature{display:block}.shop-feature .image{width:calc(100% + 62px);margin-left:-31px;height:320px;overflow:hidden}.shop-feature .image img{width:100%;height:100%;object-fit:cover}.shop-feature .caption{padding-top:12px;display:flex;align-items:center;gap:9px;font-size:18px;font-weight:800}.shop-feature .caption .lineup-category{font-size:.8em;color:#777;font-weight:500}.shop-feature .caption .lineup-instagram{margin-left:auto}.shop-grid-item .grid-caption{display:flex;align-items:center;gap:8px;margin-top:9px}.shop-grid-item .grid-caption .lineup-text{min-width:0}.shop-grid-item .grid-caption h3{margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shop-grid-item .grid-caption .lineup-category{font-size:.8em;margin-top:2px;color:#777;font-weight:500}.shop-grid-item .grid-caption .lineup-instagram{margin-left:auto}.shop-feature .lineup-instagram,.shop-grid-item .lineup-instagram{width:34px;height:34px;flex-basis:34px}.shop-feature .lineup-instagram img,.shop-grid-item .lineup-instagram img{width:18px;height:18px}.shop-grid-page{margin-top:50px;display:grid;grid-template-columns:1fr 1fr;gap:44px 18px}.shop-grid-page .image{height:200px;overflow:hidden}.shop-grid-page img{width:100%;height:100%;object-fit:cover}.shop-grid-page h3{font-size:15px;margin:9px 0 0}

/* SERIES page */
.series-page-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 18px}.series-page-grid .wide{grid-column:1/-1}.series-page-grid img{width:100%;height:200px;object-fit:cover}.series-page-grid .wide img{height:418px}.series-page-grid h2{font-size:16px;line-height:1.55;margin:10px 0 4px}.series-page-grid p{font-size:12px;line-height:1.7;margin:0}

/* article modal */
.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.58);display:none;align-items:center;justify-content:center;padding:20px}.modal.is-open{display:flex}.modal-card{width:min(100%,480px);max-height:90dvh;overflow:auto;background:#fff;position:relative}.modal-close{position:sticky;float:right;top:15px;right:15px;z-index:3;width:38px;height:38px;border:0;border-radius:50%;background:#000;color:#fff;font-size:22px;cursor:pointer}.modal-image{width:100%;height:308px;object-fit:cover}.modal-content{padding:26px 31px 38px}.modal-type{font-size:12px}.modal-content h2{font-size:24px;line-height:1.45;margin:8px 0}.modal-content time{font-size:12px;color:#777}.modal-content .article-body{font-size:14px;line-height:2;margin-top:28px;font-weight:600}

@media(max-width:479px){
  :root{--u:calc(100vw / 480)}
  .mobile-column{width:100%}
  .hero{height:calc(852 * var(--u))}.hero-logo{left:calc(31 * var(--u));top:calc(31 * var(--u));width:calc(174 * var(--u))}.hero-mobile-menu{right:calc(31 * var(--u));top:calc(30 * var(--u))}
  .hero-date{left:calc(31 * var(--u));bottom:calc(31 * var(--u))}.hero-date strong{font-size:calc(61 * var(--u))}.hero-event-meta{right:calc(31 * var(--u));bottom:calc(35 * var(--u));font-size:calc(11 * var(--u))}.hero-crowd{top:calc(540 * var(--u));right:calc(20 * var(--u));width:calc(120 * var(--u));height:calc(120 * var(--u))}
  .mobile-header{height:calc(60 * var(--u));padding:0 calc(31 * var(--u))}.mobile-header-logo{width:calc(305 * var(--u));height:auto}.menu-toggle{width:calc(35 * var(--u));height:calc(35 * var(--u));flex-basis:calc(35 * var(--u))}.menu-toggle span{width:calc(17 * var(--u))}
  .mobile-menu{padding:calc(82 * var(--u)) calc(31 * var(--u)) calc(36 * var(--u))}.mobile-menu-close{right:calc(31 * var(--u));top:calc(19 * var(--u));width:calc(38 * var(--u));height:calc(38 * var(--u))}.mobile-menu-close::before,.mobile-menu-close::after{left:calc(8 * var(--u));top:calc(18 * var(--u));width:calc(22 * var(--u))}
  .section-heading h2{font-size:calc(48 * var(--u))}.section-heading p{font-size:calc(14 * var(--u))}.rule{width:calc(418 * var(--u))}.pill{width:calc(270 * var(--u));height:calc(68 * var(--u));font-size:calc(12 * var(--u))}
  .top-topics{padding:calc(80 * var(--u)) calc(30 * var(--u)) calc(74 * var(--u))}.topic-row{grid-template-columns:calc(189 * var(--u)) 1fr;gap:calc(29 * var(--u));min-height:calc(154 * var(--u))}.topic-thumb{width:calc(189 * var(--u));height:calc(139 * var(--u))}.topic-body h3{font-size:calc(16 * var(--u))}.topic-type,.topic-body time{font-size:calc(12 * var(--u))}
  .concept{padding:calc(34 * var(--u)) calc(31 * var(--u)) 0}.concept .section-heading h2{font-size:calc(48 * var(--u))}.concept .section-heading p{font-size:calc(14 * var(--u));line-height:calc(17 * var(--u));margin-top:calc(10 * var(--u))}.concept-lead{width:calc(418 * var(--u));margin-top:calc(25 * var(--u));font-size:calc(20 * var(--u));line-height:calc(40 * var(--u));letter-spacing:calc(2 * var(--u))}.concept-copy{width:calc(418 * var(--u));margin-top:calc(25 * var(--u));font-size:calc(18 * var(--u));line-height:calc(38 * var(--u));letter-spacing:calc(1.8 * var(--u));max-height:calc(422 * var(--u))}.concept-copy p+p{margin-top:calc(24 * var(--u))}.concept.is-expanded .concept-copy{max-height:calc(1400 * var(--u))}.concept .pill{margin-top:calc(28 * var(--u))}.voices{height:calc(500 * var(--u));margin:calc(40 * var(--u)) calc(-31 * var(--u)) 0;padding:calc(29 * var(--u)) 0 0}.voices-title{width:calc(418 * var(--u));height:calc(44 * var(--u));margin-bottom:calc(26 * var(--u));font-size:calc(28 * var(--u));line-height:calc(44 * var(--u));letter-spacing:calc(2.8 * var(--u))}.voices-track{height:calc(48 * var(--u));gap:calc(30 * var(--u));margin-top:calc(30 * var(--u))}.voices-track:first-child{margin-left:calc(-8 * var(--u))}.voices-track:nth-child(2){margin-left:calc(-159 * var(--u))}.voices-track:nth-child(3){margin-left:calc(-33 * var(--u))}.voices-track:nth-child(4){margin-left:calc(-81 * var(--u));margin-top:calc(40 * var(--u))}.voices-track:nth-child(5){margin-left:calc(-137 * var(--u))}.voice-item{width:max-content;height:calc(48 * var(--u));flex-basis:auto;gap:calc(10 * var(--u))}.voice-item img{width:calc(48 * var(--u));height:calc(48 * var(--u));flex-basis:calc(48 * var(--u))}.voice-item span{width:max-content;min-width:0;max-width:none;height:calc(42 * var(--u));padding:0 calc(22 * var(--u));font-size:calc(16 * var(--u));line-height:calc(19 * var(--u));letter-spacing:calc(1.6 * var(--u))}
  .flow-border{height:calc(29 * var(--u));background-size:auto calc(29 * var(--u))}
  .carousel-track{gap:calc(30 * var(--u));padding-inline:calc(124 * var(--u))}.shop-card{flex-basis:calc(231 * var(--u))}.shop-photo{width:calc(231 * var(--u));height:calc(248 * var(--u))}.shop-caption{width:calc(231 * var(--u));padding-left:calc(20 * var(--u));font-size:calc(16 * var(--u));gap:calc(8 * var(--u))}.shop-caption .lineup-category{font-size:.8em;gap:calc(2 * var(--u))}.lineup-instagram,.insta-dot{width:calc(25 * var(--u));height:calc(25 * var(--u));flex-basis:calc(25 * var(--u))}.lineup-instagram img,.insta-dot img{width:calc(13 * var(--u));height:calc(13 * var(--u))}.pick{width:calc(60 * var(--u));height:calc(60 * var(--u));font-size:calc(42 * var(--u))}
  .movie-track{padding-inline:calc(100 * var(--u));gap:calc(20 * var(--u))}.movie-card{flex-basis:calc(279 * var(--u));height:calc(496 * var(--u))}
  .information{padding-left:calc(31 * var(--u));padding-right:calc(31 * var(--u))}.info-list>div{grid-template-columns:calc(130 * var(--u)) 1fr;font-size:calc(16 * var(--u));min-height:calc(69 * var(--u))}.map-frame{height:calc(447 * var(--u))}
  .series-section{padding-left:calc(31 * var(--u));padding-right:calc(31 * var(--u))}.series-card img{height:calc(200 * var(--u))}.series-card:first-child img{height:calc(418 * var(--u))}
  .footer{padding-left:calc(31 * var(--u));padding-right:calc(31 * var(--u))}.footer-logo{width:calc(165 * var(--u));flex-basis:calc(165 * var(--u))}.footer-social{gap:calc(18 * var(--u));padding-top:calc(58 * var(--u))}.footer-social a{width:calc(31 * var(--u));height:calc(31 * var(--u))}.footer-nav{gap:calc(48 * var(--u)) calc(67 * var(--u))}.footer-nav h3,.footer-nav a{font-size:calc(16 * var(--u))}.footer-bottom{margin-top:calc(118 * var(--u));font-size:calc(12 * var(--u))}.footer-legal{margin-top:calc(42 * var(--u))}.footer-legal small{font-size:calc(10 * var(--u))}
  .inner-page-main{padding-left:calc(31 * var(--u));padding-right:calc(31 * var(--u))}.page-title{font-size:calc(48 * var(--u))}.topic-article-card .image{height:calc(308 * var(--u))}.shop-feature .image{height:calc(320 * var(--u));width:calc(100% + 62 * var(--u));margin-left:calc(-31 * var(--u))}.shop-grid-page .image,.series-page-grid img{height:calc(200 * var(--u))}.series-page-grid .wide img{height:calc(418 * var(--u))}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media(min-width:1100px){
  .mobile-column .hero{display:none}
  .top-topics{padding-top:78px}
}

.legal-page{font-size:14px;line-height:2}.legal-page p{margin:0}

/* ===== v2.7 lineup list refinements ===== */
.image-placeholder{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  background:#d7d7d7;color:#7a7a7a;font-size:14px;font-weight:600;letter-spacing:.08em;
}
.shop-photo .image-placeholder{position:absolute;inset:0}
.shop-feature-list.shop-all-single{gap:50px}
.shop-feature-list.shop-all-single .shop-feature{width:100%}

/* ARTIST: pinned = 1 column, remaining = 2 columns */
.artist-grid-page{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;max-width:100%;box-sizing:border-box;overflow:visible}
.artist-grid-page.no-single-before{margin-top:0}
.artist-grid-page .shop-grid-item{min-width:0;width:100%;overflow:hidden}
.artist-grid-page .shop-grid-item .image{width:100%;max-width:100%}
.artist-grid-page .shop-grid-item .grid-caption{width:100%;min-width:0;box-sizing:border-box}
.artist-grid-page .shop-grid-item .lineup-text{min-width:0}
.artist-grid-page .shop-grid-item .lineup-instagram{flex:none}

@media(max-width:479px){
  .shop-feature-list.shop-all-single{gap:calc(50 * var(--u))}
  .artist-grid-page{gap:calc(44 * var(--u)) calc(18 * var(--u));grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .artist-grid-page .shop-grid-item{min-width:0}
  .artist-grid-page .image{width:100%;height:calc(200 * var(--u))}
}

/* v2.8: lineup whole-card links, map tabs */
.lineup-card-link{color:inherit;text-decoration:none;display:block}
.lineup-card-link .lineup-instagram{pointer-events:none}
.shop-feature.lineup-card-link,.shop-grid-item.lineup-card-link{color:inherit}
.map-panels{margin-top:24px}
.map-panels .map-frame{margin-top:0}
.map-panel[hidden]{display:none!important}
.map-tab{font:inherit;cursor:pointer;background:#fff}
.map-tab.is-active{background:#111;color:#fff}


/* ===== v2.9 refinements ===== */
/* Lineup cards: whole card is clickable, with a clear but restrained hover response. */
.lineup-card-link{transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .24s ease}
.lineup-card-link:hover{transform:translateY(-4px);opacity:.88}
.shop-feature.lineup-card-link:hover,.shop-grid-item.lineup-card-link:hover{transform:translateY(-4px)}
.shop-feature.lineup-card-link .image img,.shop-grid-item.lineup-card-link .image img{transition:filter .28s ease}
.shop-feature.lineup-card-link:hover .image img,.shop-grid-item.lineup-card-link:hover .image img{filter:brightness(.93)}

/* Map tabs: make the change visually unmistakable even when the two embed positions are close. */
.access-chip{transition:background-color .24s ease,color .24s ease,transform .2s ease}
.access-chip:hover{transform:translateY(-1px)}
.map-caption{margin-top:22px;font-size:12px;font-weight:700;letter-spacing:.08em;color:#777}
.map-panels{margin-top:8px}
.map-panel.is-active{animation:mapFade .32s ease both}
@keyframes mapFade{from{opacity:.25;transform:translateY(4px)}to{opacity:1;transform:none}}

/* Sponsor strip inspired by the reference: one horizontal, endlessly flowing row. */
.sponsors{padding:52px 0 70px;overflow:hidden}
.sponsors .section-heading{padding:0 31px}
.sponsor-marquee{margin-top:30px;border-top:1px solid #ddd;border-bottom:1px solid #ddd;overflow:hidden;background:#fff}
.sponsor-track{display:flex;align-items:center;width:max-content;animation:sponsorFlow 26s linear infinite;will-change:transform}
.sponsor-marquee:hover .sponsor-track,.sponsor-marquee:focus-within .sponsor-track{animation-play-state:paused}
.sponsor-item{width:190px;height:96px;display:grid;place-items:center;padding:12px 24px;box-sizing:border-box;flex:0 0 190px;transition:opacity .2s ease,transform .2s ease}
.sponsor-item img{display:block;max-width:100%;max-height:54px;object-fit:contain}
.sponsor-item:hover,.sponsor-item:focus-visible{opacity:.48;transform:scale(1.03)}
@keyframes sponsorFlow{to{transform:translateX(-25%)}}

/* Instagram API Reel cards */
.instagram-api-reel video,.instagram-api-reel>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease,filter .35s ease}
.instagram-api-reel:hover video,.instagram-api-reel:hover>img{transform:scale(1.035);filter:brightness(.82)}

@media(max-width:479px){
  .sponsors .section-heading{padding-inline:calc(31 * var(--u))}
  .sponsor-item{width:calc(190 * var(--u));height:calc(96 * var(--u));flex-basis:calc(190 * var(--u));padding:calc(12 * var(--u)) calc(24 * var(--u))}
  .sponsor-item img{max-height:calc(54 * var(--u))}
}

/* Local interview videos */
.interview-video-card video{width:100%;height:100%;object-fit:cover;display:block;background:#111}
.interview-video-card.is-active .play{opacity:0;transform:scale(.85);pointer-events:none}
.interview-video-card .play{transition:opacity .25s ease,transform .25s ease,background .2s,color .2s}
.interview-video-card:hover video{filter:brightness(.9)}

/* ===== v3.4 mobile HOME / annual lineup / timetable / privacy / sponsor refinements ===== */
.mobile-menu-home{
  width:110px;
  height:42px;
  display:grid!important;
  place-items:center;
  box-sizing:border-box;
  border:1px solid #111;
  border-radius:999px;
  background:#fff;
  color:#111;
  padding:0!important;
  margin:0 0 18px;
  font:700 15px var(--font-en);
  letter-spacing:.06em;
  opacity:1!important;
  transition:background-color .22s ease,color .22s ease,transform .2s ease;
}
.mobile-menu-home:hover{background:#111;color:#fff;transform:translateY(-1px)}
.mobile-menu-home::after{content:none}

/* sponsor area: tighter vertical rhythm */
.sponsors{padding-top:28px;padding-bottom:42px}
.sponsors .section-heading{margin-bottom:0}
.sponsor-marquee{margin-top:18px}
.sponsor-item{height:68px;padding-top:8px;padding-bottom:8px}
.sponsor-item img{max-height:40px}

/* interview movies: always show a poster while the compact video is loading */
.interview-video-card{background:#e7e7e7}
.interview-video-card video{background:#e7e7e7}

/* timetable modal */
.timetable-modal{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.62);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility 0s linear .25s}
.timetable-modal.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .25s ease,visibility 0s}
.timetable-modal-card{position:relative;width:min(100%,480px);max-height:92dvh;overflow:auto;background:#fff;padding:24px}
.timetable-modal-close{position:sticky;float:right;top:0;z-index:2;width:38px;height:38px;border:0;border-radius:50%;background:#111;color:#fff;font-size:22px;line-height:1;cursor:pointer}
.timetable-modal-card h2{font:600 36px/1.15 var(--font-en);letter-spacing:.06em;margin:18px 0 20px}
.timetable-modal-card h2 small{display:block;font:700 12px/1.5 var(--font-jp);letter-spacing:.08em;margin-top:6px}
.timetable-modal-body img{width:100%;height:auto;display:block}
.timetable-modal-body iframe{width:100%;height:74dvh;border:0;display:block;background:#eee}

/* privacy */
.legal-page{font-size:14px;line-height:1.95}
.privacy-section{padding:0 0 28px;margin:0 0 28px;border-bottom:1px solid #d9d9d9}
.privacy-section:last-child{border-bottom:0;margin-bottom:0}
.privacy-section h2{font-size:17px;line-height:1.6;margin:0 0 10px;font-weight:700}
.privacy-section p{margin:0 0 10px;font-weight:400}
.privacy-updated{margin-top:24px!important;color:#777;font-size:12px}

@media(max-width:479px){
  .mobile-menu-home{width:calc(110 * var(--u));height:calc(42 * var(--u));padding:0!important;margin-bottom:calc(18 * var(--u));font-size:calc(15 * var(--u))}
  .sponsors{padding-top:calc(28 * var(--u));padding-bottom:calc(42 * var(--u))}
  .sponsor-marquee{margin-top:calc(18 * var(--u))}
  .sponsor-item{height:calc(68 * var(--u));padding-top:calc(8 * var(--u));padding-bottom:calc(8 * var(--u))}
  .sponsor-item img{max-height:calc(40 * var(--u))}
  .timetable-modal-card{padding:calc(24 * var(--u))}
  .timetable-modal-card h2{font-size:calc(36 * var(--u))}
}


/* ===== v3.5 menu HOME / access button / sponsor spacing fixes ===== */
/* HOME follows the same visual rhythm as the accordion rows */
.mobile-menu-home-row{
  display:block!important;
  width:100%;
  padding:13px 0!important;
  margin:0;
  border-bottom:1px solid #111;
  color:#111;
  background:#fff;
  font:600 17px var(--font-en)!important;
  letter-spacing:.05em;
  opacity:1!important;
  transition:opacity .2s ease,transform .2s ease;
}
.mobile-menu-home-row:hover{opacity:.55!important;transform:translateX(3px)}

.pc-nav-home{
  display:block;
  width:100%;
  padding:16px 1px;
  border-bottom:1px solid #111;
  color:#111;
  background:#fff;
  font:600 17px var(--font-en);
  letter-spacing:.05em;
  transition:opacity .2s ease,transform .2s ease;
}
.pc-nav-home:hover{opacity:.55;transform:translateX(3px)}

/* Venue / parking buttons: white background, black text and black border */
.access-chip,
.access-chip.is-active,
.map-tab.is-active{
  background:#fff!important;
  color:#111!important;
  border-color:#111!important;
}
.access-chip:hover,
.access-chip:focus-visible{
  background:#111!important;
  color:#fff!important;
}

/* Tighten the gap between the map and sponsor section */
.information{padding-bottom:24px!important}
.sponsors{padding-top:8px!important;padding-bottom:34px!important}
.sponsor-marquee{margin-top:14px!important}

@media(max-width:479px){
  .mobile-menu-home-row{padding:calc(13 * var(--u)) 0!important;font-size:calc(17 * var(--u))!important}
  .information{padding-bottom:calc(24 * var(--u))!important}
  .sponsors{padding-top:calc(8 * var(--u))!important;padding-bottom:calc(34 * var(--u))!important}
  .sponsor-marquee{margin-top:calc(14 * var(--u))!important}
}

/* CMS article thumbnail placeholder */
.article-placeholder{object-fit:contain!important;background:#f1f2f3!important;padding:12%!important;box-sizing:border-box}


/* v3.7: keep TOPICS thumbnails fully visible on list/detail */
.topic-article-card .image{aspect-ratio:189/139;height:auto;background:#f3f4f5;display:grid;place-items:center}
.topic-article-card .image img{width:100%;height:100%;object-fit:contain}
.modal-image{width:100%;height:auto;max-height:70vh;object-fit:contain;background:#f3f4f5;display:block}

/* ===== v3.9: desktop background / center-column shadow ===== */
body,
.desktop-stage,
.inner-page,
.inner-page-main,
.mobile-column{
  background:#fff;
}

@media (min-width:1000px){
  .desktop-stage>.mobile-column{
    box-shadow:0 0 14px rgba(0,0,0,.2);
    position:relative;
    z-index:2;
  }
  .pc-left,
  .pc-right{
    background:#fff;
  }
}


/* v4.0: empty SERIES state */
.series-empty-message{
  grid-column: 1 / -1;
  margin: 48px 0 72px;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
  color: #777;
}

/* SEO用の個別記事URL。既存レイアウトには影響しない。 */
.article-detail-page{padding-top:44px;padding-bottom:72px}.article-detail-card{background:#fff}.article-detail-image{display:block;width:100%;height:auto;max-height:70vh;object-fit:contain;background:#f3f4f5}.article-detail-content{padding:28px 30px 44px}.article-detail-content h1{font-size:24px;line-height:1.45;margin:8px 0 10px}.article-detail-content time{font-size:12px;color:#777}.article-detail-content .article-body{font-size:14px;line-height:2;margin-top:28px;font-weight:400}.article-detail-content .article-body img{max-width:100%;height:auto}.article-detail-content .article-body a{text-decoration:underline}.article-back{display:inline-block;margin-top:34px;font-size:13px;font-weight:700;text-decoration:underline}.article-not-found{font-size:14px;line-height:2;margin:28px 0 36px}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}


/* ===== v4.3 Figma-faithful FIRST VIEW =====
   Figma TOP frame: 480 × 852
   logo  x31 / y30 / w172.239
   crowd x341.997 / y541 / w121.436 / h120.398
   info  x31.171 / y740 / w417.829 / h89.268
*/
.hero,
.pc-fv{background:#1b627e}
.hero>.hero-video,
.pc-fv>video{
  position:absolute;inset:0;width:100%;height:100%;max-width:none;
  object-fit:cover;object-position:center center;
}
.hero-shade,.pc-fv::after{background:none!important}

/* Figma logo geometry */
.hero-logo{left:31px;top:30px;width:172.239px}
.pc-fv-logo{left:31px;top:3.521%;width:172.239px;z-index:4}
.hero-logo img,.pc-fv-logo img{width:100%;height:auto;display:block}

/* Figma crowdfunding geometry */
.hero-crowd{
  left:341.997px;right:auto;top:541px;width:121.436px;height:120.398px;
  display:block;transform:none;z-index:4;
}
.pc-fv-badge{
  position:absolute;z-index:4;left:341.997px;right:auto;top:63.498%;bottom:auto;
  width:121.436px;height:120.398px;background:none;border-radius:0;
  display:block;color:#111;transform:none;
}
.hero-crowd:hover,.pc-fv-badge:hover{transform:scale(1.035)}
.fv-crowd-ring{position:relative;display:block;width:100%;height:100%}
.fv-crowd-ring .disc{
  position:absolute;left:26.355px;top:25.828px;width:68.71px;height:68.71px;
  border-radius:50%;overflow:hidden;background:#ea4747;display:grid;place-items:center;
}
.fv-crowd-ring .disc img{width:100%;height:100%;object-fit:cover}
.fv-crowd-ring-top,.fv-crowd-ring-bottom{
  position:absolute;left:0;width:100%;text-align:center;color:#111;
  font:700 6px/1 var(--font-jp);letter-spacing:.04em;white-space:nowrap;
}
.fv-crowd-ring-top{top:7px;transform:rotate(8deg)}
.fv-crowd-ring-bottom{bottom:7px;transform:rotate(-8deg)}

/* Figma lower information block geometry */
.hero-date{left:31.171px;top:740px;bottom:auto;color:#fff;z-index:3}
.hero-date strong{font-size:61px;line-height:.85;letter-spacing:-2px}
.hero-date span{margin-top:8px;font-size:11px;line-height:1.5;letter-spacing:.08em}
.hero-event-meta{right:31px;top:746px;bottom:auto;font-size:11px;line-height:1.5;letter-spacing:.04em}
.pc-fv-date{left:31.171px;top:86.854%;bottom:auto;z-index:3}
.pc-fv-date strong{font-size:61px;line-height:.85;letter-spacing:-2px}
.pc-fv-date p{margin:8px 0 0;font-size:11px;line-height:1.5;letter-spacing:.08em}
.pc-fv-meta{position:absolute;z-index:3;right:31px;top:87.56%;color:#fff;text-align:right;font:700 11px/1.5 var(--font-en);letter-spacing:.04em}

@media(max-width:479px){
  .hero-logo{left:calc(31 * var(--u));top:calc(30 * var(--u));width:calc(172.239 * var(--u))}
  .hero-crowd{left:calc(341.997 * var(--u));right:auto;top:calc(541 * var(--u));width:calc(121.436 * var(--u));height:calc(120.398 * var(--u))}
  .fv-crowd-ring .disc{left:calc(26.355 * var(--u));top:calc(25.828 * var(--u));width:calc(68.71 * var(--u));height:calc(68.71 * var(--u))}
  .fv-crowd-ring-top,.fv-crowd-ring-bottom{font-size:calc(6 * var(--u))}
  .fv-crowd-ring-top{top:calc(7 * var(--u))}.fv-crowd-ring-bottom{bottom:calc(7 * var(--u))}
  .hero-date{left:calc(31.171 * var(--u));top:calc(740 * var(--u));bottom:auto}
  .hero-date strong{font-size:calc(61 * var(--u))}
  .hero-date span{margin-top:calc(8 * var(--u));font-size:calc(11 * var(--u))}
  .hero-event-meta{right:calc(31 * var(--u));top:calc(746 * var(--u));bottom:auto;font-size:calc(11 * var(--u))}
}


/* ===== v4.4 FV exact Figma vector assets + sound control ===== */
/* The lower information artwork and free-admission badge are the supplied Figma SVGs. */
.fv-info-graphic,.fv-free-badge{position:absolute;z-index:3;display:block;height:auto;pointer-events:none}
.hero-info-graphic{left:31px;top:740px;width:418px}
.hero-free-badge{left:31px;top:651px;width:80px}
.pc-fv-info-graphic{left:31px;top:86.854%;width:418px}
.pc-fv-free-badge{left:31px;top:76.408%;width:80px}
/* Keep only the red crowdfunding mark; remove the previously reconstructed date ring. */
.fv-crowd-ring-top,.fv-crowd-ring-bottom{display:none!important}
/* The old hand-built date/location text is no longer used. */
.hero-date,.hero-event-meta,.pc-fv-date,.pc-fv-meta{display:none!important}

.fv-sound-toggle{
  position:absolute;z-index:7;width:42px;height:42px;border:1.5px solid rgba(255,255,255,.92);
  border-radius:999px;background:rgba(0,0,0,.46);color:#fff;display:grid;place-items:center;
  padding:0;cursor:pointer;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  transition:transform .2s ease,background .2s ease,opacity .2s ease;
}
.fv-sound-toggle:hover{transform:scale(1.06);background:rgba(0,0,0,.68)}
.fv-sound-toggle:focus-visible{outline:2px solid #fff;outline-offset:3px}
.fv-sound-toggle .sound-icon{position:absolute;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fv-sound-toggle .sound-icon path:first-child{fill:currentColor;stroke:none}
.fv-sound-toggle .sound-icon-on{display:none}
.fv-sound-toggle.is-sound-on .sound-icon-off{display:none}
.fv-sound-toggle.is-sound-on .sound-icon-on{display:block}
/* Lower-right, but above the Figma information strip so none of its text is covered. */
.hero-sound-toggle{right:20px;bottom:112px}
.pc-fv-sound-toggle{right:20px;bottom:13.15%}

@media(max-width:479px){
  .hero-info-graphic{left:calc(31 * var(--u));top:calc(740 * var(--u));width:calc(418 * var(--u))}
  .hero-free-badge{left:calc(31 * var(--u));top:calc(651 * var(--u));width:calc(80 * var(--u))}
  .hero-sound-toggle{right:calc(20 * var(--u));bottom:calc(112 * var(--u));width:calc(42 * var(--u));height:calc(42 * var(--u));border-width:max(1px,calc(1.5 * var(--u)))}
  .hero-sound-toggle .sound-icon{width:calc(22 * var(--u));height:calc(22 * var(--u))}
}

/* ===== v4.6 opening intro + FV control refinement ===== */
.site-intro{
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  background:#fff;
  pointer-events:auto;
  -webkit-clip-path:circle(150vmax at 50% 50%);
  clip-path:circle(150vmax at 50% 50%);
  /* Hold the supplied mark for .8s, then let the same visible mark
     disappear together with the circular closing motion. */
  animation:siteIntroReveal .95s cubic-bezier(.76,0,.24,1) .8s forwards;
  will-change:clip-path;
}
.site-intro-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:11px;
  width:min(50vw,460px);
}
.site-intro-brand img{display:block;height:auto}
.site-intro-symbols-svg{width:24.12%;max-width:157px}
.site-intro-wordmark{width:100%;max-width:651px}
@keyframes siteIntroReveal{
  0%{-webkit-clip-path:circle(150vmax at 50% 50%);clip-path:circle(150vmax at 50% 50%);visibility:visible}
  99%{visibility:visible}
  100%{-webkit-clip-path:circle(0 at 50% 50%);clip-path:circle(0 at 50% 50%);visibility:hidden;pointer-events:none}
}
@media (prefers-reduced-motion:reduce){
  .site-intro{animation:siteIntroReduced .01s linear .8s forwards}
  @keyframes siteIntroReduced{to{opacity:0;visibility:hidden;pointer-events:none}}
}
@media (max-width:600px){
  .site-intro-brand{width:min(68vw,300px);gap:8px}
}

/* Crowdfunding button is intentionally hidden/removed for now. */
.hero-crowd,.pc-fv-badge{display:none!important}

/* Align the sound control to the right edge of the lower Figma info SVG,
   and leave a little more breathing room before that SVG. */
.hero-sound-toggle{right:31px;bottom:130px}
.pc-fv-sound-toggle{right:31px;bottom:15.26%}
@media (max-width:479px){
  .hero-sound-toggle{
    right:calc(31 * var(--u));
    bottom:calc(130 * var(--u));
  }
}


/* ===== v4.7 microCMS banner strip ===== */
.top-banners{
  width:100%;
  padding:30px 0 0;
  background:#fff;
  overflow:hidden;
}
.top-banner-track{
  display:flex;
  gap:14px;
  width:100%;
  box-sizing:border-box;
  padding:0 31px;
}
.top-banner-track.is-scrollable{
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.top-banner-track.is-scrollable::-webkit-scrollbar{display:none}
.top-banner-item{
  display:block;
  flex:0 0 418px;
  width:418px;
  min-width:0;
  scroll-snap-align:start;
  overflow:hidden;
  background:#fff;
  color:inherit;
  text-decoration:none;
}
.top-banner-item img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
a.top-banner-item{transition:opacity .22s ease,transform .26s cubic-bezier(.22,1,.36,1)}
a.top-banner-item:hover{opacity:.82;transform:scale(.992)}

@media(max-width:479px){
  .top-banners{padding-top:calc(30 * var(--u))}
  .top-banner-track{gap:calc(14 * var(--u));padding-inline:calc(31 * var(--u))}
  .top-banner-item{flex-basis:calc(418 * var(--u));width:calc(418 * var(--u))}
}


/* ===== v4.8 banner / intro / SP menu / tablet refinements ===== */
/* Intro is shown only once per browser tab/session. The class is set synchronously
   before the intro markup is parsed, so page-to-page navigation does not flash it. */
.skip-site-intro .site-intro{display:none!important;animation:none!important}

/* HOME uses exactly the same visual weight as the accordion headings on SP. */
.mobile-menu-home-row{
  padding:13px 0!important;
  font:600 17px var(--font-en)!important;
  letter-spacing:.05em!important;
}

/* SNS controls inside the SP/tablet menu. */
.mobile-menu-social{
  display:flex;
  align-items:center;
  gap:30px;
  padding:28px 0 12px;
}
.mobile-menu-social a{
  display:grid!important;
  place-items:center;
  width:38px;
  height:38px;
  padding:0!important;
  opacity:1!important;
  transition:opacity .2s ease,transform .2s ease;
}
.mobile-menu-social a:hover{opacity:.55!important;transform:scale(1.07)}
.mobile-menu-social img{width:100%;height:100%;object-fit:contain}

/* Tablets: keep the 480px Figma layout intact, but use a deliberate two-panel
   composition when enough width exists. This avoids stretched/cropped components. */
@media (min-width:768px) and (max-width:1099px){
  .desktop-stage{
    width:min(100%,960px);
    margin-inline:auto;
    display:grid;
    grid-template-columns:minmax(288px,1fr) 480px;
    align-items:start;
    background:#fff;
  }
  .desktop-stage>.mobile-column{
    grid-column:2;
    width:480px;
    margin:0;
    box-shadow:0 0 14px rgba(0,0,0,.16);
    position:relative;
    z-index:2;
  }
  .pc-left{
    display:block;
    grid-column:1;
    grid-row:1;
    position:sticky;
    top:0;
    height:100vh;
    overflow:hidden;
  }
  .pc-left .pc-fv{width:100%;height:100vh}
  .pc-fv-logo{left:6.46%;width:35.88%}
  .pc-fv-free-badge{left:6.46%;width:16.67%}
  .pc-fv-info-graphic{left:6.46%;width:87.08%}
  .pc-fv-sound-toggle{right:6.46%;width:42px;height:42px}
  .pc-right{display:none!important}
  .mobile-column .hero{display:none}
  .hero-mobile-menu{display:none!important}
  .mobile-header{width:100%}
  .mobile-menu{width:480px}
}

/* Smaller tablets keep the mobile composition centered and intentionally framed. */
@media (min-width:600px) and (max-width:767px){
  .mobile-column{box-shadow:0 0 14px rgba(0,0,0,.14)}
  .mobile-menu{width:480px}
}

@media(max-width:479px){
  /* Override the old scaled HOME rule so HOME is not visually smaller than TOPICS. */
  .mobile-menu-home-row{padding:13px 0!important;font-size:17px!important}
  .mobile-menu-social{gap:30px;padding:28px 0 12px}
  .mobile-menu-social a{width:38px;height:38px}
}

/* ===== v4.9 tablet full-width refinements =====
   Tablet should use the whole viewport rather than a 480px framed column.
   This keeps section/background colors full-bleed and prevents the 480px
   composition from being visually cropped in portrait tablet view. */
@media (min-width:600px) and (max-width:1099px){
  html,body,.desktop-stage{width:100%;max-width:none;background:#fff}
  .desktop-stage{display:block!important;margin:0!important}
  .pc-left,.pc-right{display:none!important}
  .desktop-stage>.mobile-column,
  .mobile-column{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    box-shadow:none!important;
    background:#fff!important;
    overflow:hidden;
  }

  /* Tablet FV: full-width 480:852 composition. All Figma overlays use
     percentages derived from the original 480×852 coordinates. */
  .mobile-column .hero{
    display:block!important;
    width:100%;
    height:auto!important;
    aspect-ratio:480 / 852;
    position:relative;
    overflow:hidden;
  }
  .hero>.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .hero-logo{left:6.4583%;top:3.5211%;width:35.8831%}
  .hero-mobile-menu{display:flex!important;right:6.4583%;top:3.5211%}
  .hero-free-badge{left:6.4583%;top:76.4085%;width:16.6667%}
  .hero-info-graphic{left:6.4939%;top:86.8545%;width:87.0477%}
  .hero-sound-toggle{
    position:absolute!important;
    left:auto!important;
    top:auto!important;
    right:6.4583%!important;
    bottom:15.2582%!important;
    width:clamp(42px,5.5vw,52px);
    height:clamp(42px,5.5vw,52px);
    margin:0!important;
    transform:none;
  }
  .hero-sound-toggle .sound-icon{width:52.38%;height:52.38%}

  /* Let all content/background sections fill the tablet viewport. */
  .top-topics,.concept,.top-shop,.move,.artist,.information,.sponsors,
  .series-section,.footer,.inner-page,.inner-page-main{
    width:100%;
    max-width:none;
  }
  .rule{width:auto;max-width:none;margin-inline:6.4583%}
  .concept{padding-left:6.4583%;padding-right:6.4583%}
  .concept-lead,.concept-copy{width:100%;max-width:none}
  .voices{margin-left:-7.4074%;margin-right:-7.4074%;width:auto}
  .voices-title{width:87.0833%;max-width:none}
  .information,.sponsors,.series-section,.footer,.inner-page-main{
    padding-left:6.4583%;
    padding-right:6.4583%;
  }

  /* Banner: tighter handoff from FV and full-width tablet use. */
  .top-banners{padding-top:10px!important;width:100%;background:#fff}
  .top-banner-track{padding-inline:6.4583%;gap:16px}
  .top-banner-item{flex-basis:87.0833%;width:87.0833%}
  .top-banner-track.is-single .top-banner-item{flex-basis:87.0833%;width:87.0833%}

  /* Header/menu stay centered but are not constrained by the old 480px page. */
  .mobile-header{width:100%}
  .mobile-menu{width:min(100%,600px)}
}

/* Banner spacing is intentionally compact on phones too. */
@media (max-width:599px){
  .top-banners{padding-top:10px!important}
}


/* ===== v5.0 tablet width + FV sound position fix =====
   Keep the 480px cap only on phone-sized layouts. Tablets must be allowed
   to use the full viewport width. */
@media (min-width:600px) and (max-width:1099px){
  .mobile-column,.desktop-stage>.mobile-column{max-width:none!important;width:100%!important}
  .hero-sound-toggle{
    position:absolute!important;
    left:auto!important;
    top:auto!important;
    right:6.4583%!important;
    bottom:15.2582%!important;
  }
}
