.hero-art,.activity-visual,.portrait-stack{will-change:transform}
.hero-art{position:relative}
.hero-phone{position:relative;z-index:2}
.hero-glow{position:absolute;width:72%;height:58%;top:18%;right:4%;border-radius:50%;background:#ffd34399;filter:blur(34px);animation:glowPulse 5s ease-in-out infinite}
.live-badge{position:absolute;z-index:3;left:4%;top:33%;width:205px;filter:drop-shadow(0 12px 18px #0003);animation:badgeFloat 4.5s ease-in-out infinite}
.live-badge img{width:100%;height:auto;display:block}
.activity-ring{position:absolute;width:64%;aspect-ratio:1;border:1px solid #ffca37aa;border-radius:50%;animation:ringSpin 18s linear infinite}
.activity-ring:after{content:"";position:absolute;inset:9%;border:1px dashed #ff9f1c66;border-radius:50%}
.hero-copy-motion h1{animation:headlineIn .9s cubic-bezier(.2,.8,.2,1) both}
.hero-copy-motion p{animation:copyIn .7s cubic-bezier(.2,.8,.2,1) both}
.hero-copy-motion p:nth-of-type(2){animation-delay:.12s}.hero-copy-motion p:nth-of-type(3){animation-delay:.24s}.hero-copy-motion p:nth-of-type(4){animation-delay:.36s}.hero-copy-motion p:nth-of-type(5){animation-delay:.48s}.hero-copy-motion .download-row{animation:copyIn .7s .6s both}
.topic-track span{transition:transform .35s ease,box-shadow .35s ease}.topic-track span:hover{transform:translateY(-8px) rotate(-1deg);box-shadow:0 13px 22px #0005}
.download,.store{transition:transform .35s ease,filter .35s ease}.download:hover,.store:hover{transform:translateY(-5px) scale(1.04);filter:drop-shadow(0 8px 12px #0002)}
.portrait-stack:hover{filter:saturate(1.08);transform:scale(1.015)}
.contact-form input:focus,.contact-form textarea:focus{outline:3px solid #ffb35b66;border-color:var(--orange);box-shadow:0 8px 24px #ff761d18;transform:translateY(-2px)}
.contact-form input,.contact-form textarea{transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
@keyframes headlineIn{from{opacity:0;transform:translateY(28px) scale(.98);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes copyIn{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes glowPulse{0%,100%{opacity:.5;transform:scale(.92)}50%{opacity:.8;transform:scale(1.06)}}
@keyframes badgeFloat{0%,100%{transform:translate3d(0,0,0) rotate(-2deg)}50%{transform:translate3d(-8px,-12px,0) rotate(2deg)}}
@keyframes ringSpin{to{transform:rotate(360deg)}}
@media(max-width:900px){.live-badge{width:145px;left:0;top:32%}.hero-glow{width:85%;right:0}.activity-ring{width:90%}.topic-track span:hover{transform:none}.portrait-stack:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
.legal-page .legal-lead{animation:legalLeadIn .75s .05s both}.legal-page article{animation:legalIn .7s both}.legal-page article:nth-of-type(2){animation-delay:.1s}.legal-page article:nth-of-type(3){animation-delay:.18s}.legal-page article:nth-of-type(4){animation-delay:.26s}.legal-page article:nth-of-type(5){animation-delay:.34s}
html[lang="ja"] .hero-copy p,html[lang="ja"] .activity-copy p,html[lang="ja"] .activity-copy li,html[lang="ja"] .contact-intro p,html[lang="ja"] .legal-page p{line-height:1.5}html[lang="ja"] .legal-page h1{letter-spacing:0}html[lang="ja"] .topic-track span{font-size:18px}
@keyframes legalLeadIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes legalIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* Japanese copy needs more vertical breathing room than the English layout. */
html[lang="ja"] body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,Arial,sans-serif}
html[lang="ja"] .site-header{padding-left:clamp(24px,4vw,70px);padding-right:clamp(24px,4vw,70px)}
html[lang="ja"] .nav{gap:28px}
html[lang="ja"] .home-hero{padding-top:92px;min-height:980px}
html[lang="ja"] .hero-copy{max-width:650px;padding-top:26px}
html[lang="ja"] .hero-copy h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(58px,5.7vw,96px);line-height:1.12;margin-bottom:48px;word-break:keep-all}
html[lang="ja"] .hero-copy p{font-size:19px;line-height:1.75;margin-bottom:30px;max-width:600px}
html[lang="ja"] .download-row{margin-top:42px}
html[lang="ja"] .topic-strip{padding-top:52px;padding-bottom:52px}
html[lang="ja"] .topic-track{gap:34px}
html[lang="ja"] .topic-track span{padding-right:28px;line-height:1.45}
html[lang="ja"] .curious{gap:130px;padding-top:88px;padding-bottom:125px}
html[lang="ja"] .curious h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;line-height:1.12}
html[lang="ja"] .activity-copy{padding-top:112px;padding-bottom:94px}
html[lang="ja"] .activity-copy h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;line-height:1.12;margin-bottom:52px}
html[lang="ja"] .activity-copy p{line-height:1.72;margin:0 0 28px}
html[lang="ja"] .activity-copy li{line-height:1.65;margin:24px 0}
html[lang="ja"] .people-pill{margin-top:46px;padding-top:30px;padding-bottom:30px;line-height:1.45}
html[lang="ja"] .contact-page{padding-top:108px;padding-bottom:108px;gap:10vw}
html[lang="ja"] .contact-intro h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;line-height:1.12;margin-bottom:58px}
html[lang="ja"] .contact-intro p{line-height:1.75;margin-bottom:30px}
html[lang="ja"] .contact-form{padding:56px 52px}
html[lang="ja"] .contact-form h3{line-height:1.25;margin-bottom:14px}
html[lang="ja"] .contact-form>p{line-height:1.65;margin-bottom:42px}
html[lang="ja"] .contact-form label{line-height:1.45;margin:32px 0}
html[lang="ja"] .legal-page{padding-top:118px;padding-bottom:72px}
html[lang="ja"] .legal-page h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;line-height:1.15;margin-bottom:46px}
html[lang="ja"] .legal-lead{line-height:1.8;padding:46px 48px}
html[lang="ja"] .legal-page article{padding:70px 0}
html[lang="ja"] .legal-page article h2{line-height:1.3;margin-bottom:34px}
html[lang="ja"] .legal-page article p{line-height:1.85;padding:44px 48px}
html[lang="ja"] footer{padding-top:34px;padding-bottom:34px}
html[lang="ja"] footer nav{gap:38px}
html[lang="ja"] .topic-strip{margin-top:8px}
html[lang="ja"] .topic-track{row-gap:30px}
html[lang="ja"] .topic-track > span{min-height:76px}
html[lang="ja"] .hero-art{margin-top:12px}
html[lang="ja"] .legal-page article + article{margin-top:8px}
@media(max-width:900px){
  html[lang="ja"] .site-header{padding-top:16px;padding-bottom:16px}
  html[lang="ja"] .nav{gap:16px}
  html[lang="ja"] .home-hero{padding-top:70px}
  html[lang="ja"] .hero-copy{padding-top:0}
  html[lang="ja"] .hero-copy h1{font-size:55px;line-height:1.18;margin-bottom:38px}
  html[lang="ja"] .hero-copy p{font-size:16px;line-height:1.8;margin-bottom:26px}
  html[lang="ja"] .download-row{margin-top:34px;gap:12px}
  html[lang="ja"] .topic-strip{padding-top:28px;padding-bottom:28px}
  html[lang="ja"] .topic-track span{padding-right:20px}
  html[lang="ja"] .topic-track{row-gap:18px}
  html[lang="ja"] .topic-track > span{min-height:58px}
  html[lang="ja"] .curious{gap:38px;padding-top:64px;padding-bottom:74px}
  html[lang="ja"] .curious h2{line-height:1.18}
  html[lang="ja"] .activity-copy{padding-top:70px;padding-bottom:66px}
  html[lang="ja"] .activity-copy h2{line-height:1.18;margin-bottom:38px}
  html[lang="ja"] .activity-copy p{line-height:1.8;margin-bottom:25px}
  html[lang="ja"] .activity-copy li{line-height:1.75;margin:19px 0}
  html[lang="ja"] .people-pill{margin-top:36px;padding:25px 24px}
  html[lang="ja"] .contact-page{padding-top:76px;padding-bottom:78px;gap:48px}
  html[lang="ja"] .contact-intro h2{line-height:1.18;margin-bottom:40px}
  html[lang="ja"] .contact-intro p{line-height:1.8;margin-bottom:25px}
  html[lang="ja"] .contact-form{padding:34px 22px}
  html[lang="ja"] .contact-form>p{line-height:1.7;margin-bottom:32px}
  html[lang="ja"] .contact-form label{line-height:1.5;margin:26px 0}
  html[lang="ja"] .legal-page{padding-top:76px;padding-bottom:44px}
  html[lang="ja"] .legal-page h1{line-height:1.2;margin-bottom:34px}
  html[lang="ja"] .legal-lead{line-height:1.8;padding:28px 24px}
  html[lang="ja"] .legal-page article{padding:46px 0}
  html[lang="ja"] .legal-page article h2{line-height:1.35;margin-bottom:25px}
  html[lang="ja"] .legal-page article p{line-height:1.9;padding:28px 24px}
  html[lang="ja"] footer{padding-top:28px;padding-bottom:28px}
  html[lang="ja"] footer nav{gap:16px}
}

/* Five first-time topic pills: a soft, staggered bounce keeps the strip alive. */
.topic-track > span{position:relative;transform-origin:50% 100%;will-change:transform,box-shadow;animation:topicBounce 4.8s cubic-bezier(.22,.8,.28,1) infinite}
.topic-track > span:nth-child(1){animation-delay:0s}
.topic-track > span:nth-child(2){animation-delay:.24s}
.topic-track > span:nth-child(3){animation-delay:.48s}
.topic-track > span:nth-child(4){animation-delay:.72s}
.topic-track > span:nth-child(5){animation-delay:.96s}
.topic-track > span > img{flex:0 0 auto}
.topic-track > span > span{display:block;background:transparent;color:inherit;border-radius:0;padding:0;font:inherit;line-height:1.25}
.topic-track:hover > span{animation-play-state:paused}
.topic-track > span:hover{z-index:2;transform:translateY(-9px) rotate(-1deg) scale(1.025);box-shadow:0 16px 26px #0006}
@keyframes topicBounce{0%,58%,100%{transform:translateY(0) rotate(0);box-shadow:0 0 0 #0000}63%{transform:translateY(-11px) rotate(-1.4deg);box-shadow:0 13px 20px #0004}68%{transform:translateY(0) rotate(.5deg);box-shadow:0 4px 8px #0002}72%{transform:translateY(-4px) rotate(-.4deg);box-shadow:0 7px 12px #0003}76%{transform:translateY(0) rotate(0);box-shadow:0 0 0 #0000}}
@media(max-width:900px){.topic-track > span{animation-duration:5.6s}.topic-track:hover > span{animation-play-state:running}.topic-track > span:hover{transform:none;box-shadow:none}}
@media(prefers-reduced-motion:reduce){.topic-track > span{animation:none!important}}
/* Final Japanese hero spacing override, matching the supplied reference crop. */
html[lang="ja"] .hero-copy p:last-of-type{margin-bottom:22px}
html[lang="ja"] .download-row{margin-top:30px;gap:26px}
html[lang="ja"] .download-row .text-link{margin-left:8px}
@media(max-width:900px){
  html[lang="ja"] .download-row{margin-top:26px;gap:14px}
  html[lang="ja"] .download-row .text-link{margin-left:4px}
}

/* Enlarge and visually center each topic icon inside its white label. */
.topic-track > span{
  min-height:84px;
  padding:8px 28px 8px 14px;
  gap:16px;
}
.topic-track > span > img{
  width:72px;
  height:72px;
  object-fit:contain;
  display:block;
  flex:0 0 72px;
}
@media(max-width:900px){
  .topic-track > span{
    min-height:66px;
    padding:6px 20px 6px 10px;
    gap:12px;
  }
  .topic-track > span > img{
    width:56px;
    height:56px;
    flex-basis:56px;
  }
}

/* Give the participant avatars a soft, staggered presence. */
.people-pill{
  overflow:hidden;
}
.avatar-row{
  align-items:center;
  min-height:72px;
  padding:4px 0 8px;
}
.avatar-row img{
  position:relative;
  z-index:1;
  width:68px;
  height:68px;
  flex:0 0 68px;
  object-fit:cover;
  transform-origin:50% 100%;
  will-change:transform,filter;
  animation:avatarFloat 4.8s ease-in-out infinite;
  transition:transform .28s ease,filter .28s ease,z-index .28s ease;
}
.avatar-row img:nth-child(1){animation-delay:0s}
.avatar-row img:nth-child(2){animation-delay:.18s}
.avatar-row img:nth-child(3){animation-delay:.36s}
.avatar-row img:nth-child(4){animation-delay:.54s}
.avatar-row img:nth-child(5){animation-delay:.72s}
.avatar-row img:nth-child(6){animation-delay:.9s}
.avatar-row img:nth-child(7){animation-delay:1.08s}
.avatar-row img:hover{
  z-index:3;
  transform:translateY(-9px) scale(1.16);
  filter:brightness(1.08) saturate(1.12);
}
.avatar-row:has(img:hover) img:not(:hover){
  filter:brightness(.92);
}
@keyframes avatarFloat{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-5px) rotate(-1deg)}
}
@media(max-width:900px){
  .avatar-row{min-height:60px;padding-bottom:4px}
  .avatar-row img{
    width:56px;
    height:56px;
    flex-basis:56px;
  }
  .avatar-row img:hover{transform:translateY(-6px) scale(1.12)}
}
@media(prefers-reduced-motion:reduce){
  .avatar-row img{animation:none!important}
}

.legal-page article > ul{
  margin:0;
  padding:30px 44px 30px 68px;
  border:1px solid var(--orange);
  border-radius:25px;
  background:#fff9df;
  font-size:25px;
  line-height:1.5;
}
.legal-page article > ul li{
  margin:12px 0;
}
.legal-page .legal-email{
  color:var(--orange);
  font-weight:800;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}
@media(max-width:900px){
  .legal-page article > ul{
    padding:22px 20px 22px 42px;
    font-size:18px;
    line-height:1.7;
  }
}
