:root{--ink:#02001e;--paper:#0d092b;--red:#00ed7b;--cyan:#9a6bff;--yellow:#63b8ba;--line:#ffffff26}body{background:var(--ink);color:#fff;font-family:'Noto Sans JP',sans-serif}a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:5px}.site-header{background:var(--ink);border-bottom:1px solid var(--line);height:100px;gap:28px}.brand{width:235px}.brand-crop{display:block;position:relative;aspect-ratio:2.95;width:100%;overflow:hidden}.brand-crop img,.brand .brand-crop img{position:absolute;width:250%;max-width:none;height:auto;left:-122%;top:-76%}.global-nav{font-size:11px;gap:24px}.header-cta{box-shadow:none;background:none;color:var(--red);border:1px solid var(--red);font-size:11px}.header-cta:hover{transform:none;box-shadow:none;background:#00ed7b15}.language-switch{background:none;border-color:var(--line)}.language-option-ja,.lang-en .language-option-en{color:#fff}.lang-en .language-option-ja{color:#888}.hero{height:auto;min-height:740px;background:var(--ink);padding:42px 7vw 70px;overflow:hidden}.hero:after,.hero-noise{display:none}.hero-content,.hero-content.reveal,.hero-content.reveal.visible{position:relative;inset:auto;transform:none;width:100%;display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:auto 1fr auto;gap:0 6vw}.eyebrow{grid-column:1/-1;background:none;transform:none;color:#b6b1cf;font-size:10px;letter-spacing:.22em;margin-bottom:24px}.hero h1.hero-title{grid-column:1;grid-row:2/4;margin:0;width:100%;font-size:inherit;line-height:1}.hero-title .hero-logo{display:block;position:relative;aspect-ratio:1.19;overflow:hidden}.hero-logo img{position:absolute;width:236%;max-width:none;left:-11%;top:-23%}.hero-title-ja{grid-column:2;color:#fff;font-size:clamp(25px,3vw,44px);line-height:1.65;margin:45px 0 28px}.event-announcement{grid-column:2;position:static;width:100%;margin:0;align-self:start;background:none;color:white;outline:0;box-shadow:none;transform:none;border:0;border-top:1px solid var(--line);padding-top:24px}.event-announcement-head{background:none;border:0;gap:12px}.event-announcement-label{background:none;color:var(--red);font-size:10px;padding:5px 8px;border:1px solid #00ed7b66}.event-announcement-caption{font-size:9px;padding:0;color:#b6b1cf}.event-details{display:flex;gap:28px;margin-top:18px}.event-detail{padding:0}.event-detail+.event-detail{border:0}.event-detail-label{font-size:8px;color:#b6b1cf;margin-bottom:12px}.event-detail strong{font-family:Arial,sans-serif;font-size:clamp(28px,3vw,45px);font-weight:800;letter-spacing:-.04em}.event-location strong{font-family:'Noto Sans JP',sans-serif;font-size:clamp(24px,2.5vw,36px)}.event-detail small{font-size:9px;color:#b6b1cf;margin-top:10px}.hero-ticket{position:relative;inset:auto;width:41%;margin:25px 0 0 auto;background:none;color:#fff;border-left:0;border-block:1px solid var(--line);padding:18px 0;align-items:center}.hero-ticket-copy small,.hero-ticket-copy strong{display:block}.hero-ticket-copy small{font-size:9px;letter-spacing:.2em;color:var(--red);margin-bottom:7px}.hero-ticket-copy strong{font-size:12px}.hero-ticket b{font-size:25px}.hero-scroll{writing-mode:initial;inset:auto;bottom:36px;left:7vw}.hero-scroll i{width:60px;height:1px}.ticker{background:linear-gradient(110deg,#a065ff,#729ccb,#00ed7b);color:var(--ink);height:48px;border:0;letter-spacing:.18em}.ticker .ticker-track{display:flex;flex-shrink:0;width:max-content;animation:ticker 32s linear infinite}.ticker-group{display:block;flex-shrink:0;min-width:100vw;white-space:nowrap}@media(prefers-reduced-motion:reduce){.ticker .ticker-track{animation:none}}.section{padding:100px 7vw}.section-number{color:#b6b1cf;top:35px}.concept{grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:start}.concept-visual{position:sticky;top:90px;text-align:center;padding-top:50px}.concept-visual:before{display:none}.orb-crop{display:block;position:relative!important;inset:auto!important;background:none!important;border-radius:0!important;box-shadow:none!important;width:80%!important;height:auto!important;aspect-ratio:1.13;margin:auto;overflow:hidden}.orb-crop img{position:absolute;width:610%;max-width:none;height:auto;left:-299%;top:-65%}.concept-visual>p{font:800 clamp(20px,2.5vw,36px)/1.2 Arial,sans-serif;letter-spacing:-.04em;margin:35px 0 22px}.concept-visual .visual-caption{position:static;display:block;width:auto;height:auto;background:none;color:#b6b1cf;border-radius:0;box-shadow:none;font-size:8px;letter-spacing:.18em}.kicker{font-size:11px}h2{font-size:clamp(35px,4vw,56px);line-height:1.5}.concept-copy>p:not(.kicker){color:#b6b1cf;border:0;padding:0;font-size:13px;line-height:2.3;margin-bottom:22px}.concept-copy>p.statement{color:white;border-left:2px solid var(--red);padding-left:20px;font-size:18px;font-weight:700}.outlooks{margin-top:30px}.outlooks strong{font-size:12px;color:var(--red)}.outlooks b{font-size:18px;line-height:1.7;margin:14px 0}.outlooks span{color:#b6b1cf;font-size:12px;line-height:2.1}.news{border-block:1px solid var(--line)}.news-grid{grid-template-columns:1fr 1fr;gap:30px}.news-card{background:none;border-top:1px solid var(--line);padding:24px 35px 20px 0;min-height:170px}.news-card:hover{transform:none;box-shadow:none}.news-card time,.news-card .tag{color:#b6b1cf}.news-card>a{right:0}.news-card h3{font-weight:500}.about{background:var(--ink)}.about:before{display:none}.about .section-heading>p,.feature-card p{color:#b6b1cf}.feature-card{background:none;border:0;border-top:1px solid var(--line);padding:30px 0;min-height:auto}.feature-card .num{font-size:13px;color:#b6b1cf;top:25px}.feature-card .icon{margin-bottom:25px}.feature-card h3{font-size:18px;line-height:1.6}.entry{background:none;padding-top:30px}.entry-card{max-width:none;background:linear-gradient(120deg,#24133f,#063c30);border:1px solid var(--line);box-shadow:none;padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:0 60px;text-align:left}.entry-card:before{display:none}.entry-card>.kicker{grid-column:1/-1}.entry-card h2{font-size:40px;line-height:1.5}.entry-card>p.entry-lead{grid-column:1;font-size:12px;color:#d1ccdf;line-height:2;margin:0}.entry-options{grid-column:2;grid-row:2/4;align-self:center;border-left:1px solid var(--line);padding-left:45px}.entry-option-label{font-size:10px;letter-spacing:.18em;color:var(--red)}.entry-option h3{font-size:22px}.entry-option>p:not(.entry-option-label){font-size:12px;line-height:2;color:#d1ccdf}.application-note{border-top:1px solid var(--line);padding-top:20px}footer{border-color:var(--line)}.footer-main>.brand-crop{max-width:280px}.footer-main>p{color:#fff;font-size:18px}.footer-main div{color:#b6b1cf}.footer-main b{color:var(--red)}.footer-bottom{border-color:var(--line);color:#b6b1cf}.reveal{opacity:1;transform:none}.lang-en .hero-title-ja{font-size:30px}
@media(max-width:1000px){.site-header{gap:18px}.brand{width:195px}.header-cta{display:none}.global-nav{gap:16px}.hero{min-height:0}.hero-title-ja{font-size:28px}.event-details{gap:20px}.event-detail strong{font-size:30px}.event-location strong{font-size:26px}.event-announcement-caption{display:none}.entry-card{padding:40px;gap:0 35px}.entry-options{padding-left:30px}.entry-card h2{font-size:34px}}
@media(max-width:900px){.global-nav.open{top:100px;background:var(--paper)}.concept{grid-template-columns:1fr}.concept-visual{position:static;padding:0}.orb-crop{max-width:300px}.concept-visual>p{font-size:30px}.concept{gap:55px}.hero-content{left:auto;right:auto;top:auto}.feature-grid{gap:25px}}
@media(max-width:600px){.site-header{height:80px;gap:14px}.brand{width:185px}.brand img{height:auto}.global-nav.open{top:80px}.menu-toggle{width:34px;background:none;padding:6px}.hero{height:auto;min-height:0;padding:24px 24px 44px;background:var(--ink)}.hero-content,.hero-content.reveal{display:flex;flex-direction:column;gap:0;align-items:stretch}.eyebrow{font-size:8px;text-align:center;letter-spacing:.08em;margin:0 0 20px}.hero h1.hero-title{font-size:inherit;width:100%;margin:0}.hero-title-ja{font-size:24px;line-height:1.6;margin:24px 0}.hero-title-ja br{display:none}.event-announcement{position:static;padding-top:20px;box-shadow:none;outline:none}.event-announcement-head{border:0}.event-announcement-label{width:auto;font-size:10px;padding:5px 8px}.event-details{justify-content:space-between}.event-detail{padding:0}.event-detail strong{font-size:34px}.event-location strong{font-size:28px}.event-detail small{font-size:9px}.hero-ticket{position:static;width:100%;margin-top:28px;padding:18px 0}.hero-ticket-copy strong{white-space:normal}.section{padding:70px 24px}.concept{padding-top:90px}.concept-visual img{height:auto}.concept-copy h2{font-size:38px}.concept-copy>p:not(.kicker){font-size:13px}.news-grid{grid-template-columns:1fr;gap:0}.section-heading h2{font-size:32px}.news-card{min-height:160px}.about .section-heading>p{white-space:normal}.about .section-heading h2{font-size:34px}.entry{padding-top:10px}.entry-card{display:block;padding:32px 24px}.entry-card h2{font-size:33px}.entry-options{padding:22px 0 0;margin-top:25px;border-left:0;border-top:1px solid var(--line)}.footer-main>.brand-crop{grid-column:1/-1;width:240px}.footer-main>p{font-size:22px;margin-top:0}.footer-bottom{line-height:1.7}.lang-en .hero-title-ja{font-size:24px}}

.hero h1.hero-title{min-width:0}.hero-title .hero-logo{width:100%;height:auto;min-height:0}.orb-crop{display:block!important}@media(max-width:600px){.hero-content,.hero-content.reveal,.hero-content.reveal.visible{display:block;width:100%;height:auto}.hero h1.hero-title{display:block;width:100%;min-width:100%;height:auto;margin:0}.hero-title .hero-logo{width:100%;height:auto;aspect-ratio:1.19}.hero-title-ja br{display:block}.hero-title-ja{font-size:23px}.hero-ticket{width:100%}}

:root{--ink:#000021}.outlooks{margin-bottom:28px}.event-details{flex-wrap:wrap}.lang-en .event-location strong{font-size:clamp(18px,2vw,28px)}@media(max-width:600px){.lang-en .event-location strong{font-size:19px}.lang-en .event-detail strong{font-size:28px}.lang-en .event-details{gap:20px}}

/* Fixed source rectangles include breathing room around every logo edge.
   Coordinates refer to the original 4000 x 2250 brand sheet. */
.brand-crop{aspect-ratio:1700/620}
.brand-crop img,.brand .brand-crop img{width:235.294118%;height:auto;max-width:none;left:-112.941176%;top:-67.741935%;object-fit:initial}
.hero-title .hero-logo{aspect-ratio:1700/1420}
.hero-logo img{width:235.294118%;height:auto;left:-9.411765%;top:-28.169014%;object-fit:initial}
.orb-crop{aspect-ratio:730/630}
.concept-visual .orb-crop img{width:547.945205%;height:auto;max-width:none;left:-263.013699%;top:-66.666667%;object-fit:initial}
.about .section-heading{align-items:flex-start;flex-wrap:wrap}
.about .section-heading h2{font-size:clamp(28px,3.4vw,48px);white-space:normal;overflow-wrap:normal}
.about .section-heading>div{min-width:0;max-width:100%}
.news-grid>.news-card:only-child{grid-column:1/-1}
.artist-apply-button{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;padding:18px 22px;background:var(--red);color:var(--ink);font-size:13px;font-weight:700;border:1px solid var(--red);transition:background .2s}
.artist-apply-button:hover{background:#71ffb5}
.artist-apply-button{cursor:pointer}
/* Only wide desktop views need to lift the event details beneath the copy. */
@media(min-width:1600px){.hero-content,.hero-content.reveal,.hero-content.reveal.visible{grid-template-rows:auto auto 1fr}.hero-title-ja{align-self:start}.event-announcement{align-self:start}}
@media(max-width:600px){.hero-title .hero-logo{aspect-ratio:1700/1420}.about .section-heading h2{font-size:clamp(26px,7vw,34px);line-height:1.45}.brand{flex-shrink:1;min-width:0}.language-switch,.menu-toggle{flex-shrink:0}}

/* A live music setting first; practical details follow the introduction. */
.hero{min-height:760px;height:auto;padding:80px 7vw 42px;background:linear-gradient(90deg,rgba(0,0,20,.78),rgba(0,0,20,.4) 50%,rgba(0,0,20,.08)),url("assets/hero-live-2027-v2.png") center/cover}
.hero-content,.hero-content.reveal,.hero-content.reveal.visible{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:0}
.hero .eyebrow{order:0;color:#ddd8e6;padding:0;margin:0 0 28px;text-align:left;font-size:11px}
.hero .hero-title-ja{order:1;margin:0 0 28px;color:#fff;font-size:clamp(27px,3.5vw,52px);font-weight:700;line-height:1.6;text-align:left;letter-spacing:.025em}
.hero .hero-title-ja br{display:block}
.hero h1.hero-title{order:2;width:auto;min-width:0;margin:0;font-family:"Barlow Condensed",sans-serif;font-size:clamp(70px,8vw,116px);line-height:.95;letter-spacing:-.025em}
.hero-title span{white-space:normal}
.hero-title span+span{font-size:.31em;letter-spacing:.08em;margin-top:12px;line-height:1.2}
.hero-intro{order:3;font-size:13px;line-height:1.9;margin:24px 0 0;max-width:540px;color:#eee}
.hero .event-announcement{order:4;position:static;align-self:auto;width:auto;max-width:100%;margin:32px 0 0;padding:20px 0 0;background:none;color:white;border:0;border-top:1px solid #ffffff55;outline:none;box-shadow:none;transform:none}
.event-announcement-head{display:block}
.hero .event-announcement-label{display:block;width:auto;color:var(--red);border:0;padding:0;font-size:9px;letter-spacing:.2em}
.announcement-date{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:25px;font-weight:700;margin:10px 0 4px;line-height:1.5}
.announcement-date span{font-size:13px}
.announcement-location{font-size:12px;line-height:1.8;margin:0}
.hero .hero-ticket{position:relative;inset:auto;width:280px;max-width:100%;margin:26px 0 0;padding:14px 0}
.hero-scroll{display:none}
.lang-en .hero .hero-title-ja{font-size:clamp(26px,3vw,44px);line-height:1.25;letter-spacing:0;max-width:760px}
.about .section-heading>p{white-space:normal}
@media(max-width:600px){
.hero{padding:48px 24px 32px;min-height:0;height:auto;background-position:60% center;background-size:cover;background-repeat:no-repeat}
.hero .eyebrow{font-size:8px;margin-bottom:24px;letter-spacing:.14em}
.hero .hero-title-ja{font-size:clamp(21px,5.6vw,32px);margin:0 0 30px;align-self:auto}
.hero h1.hero-title{font-size:clamp(60px,16vw,90px);width:100%;margin:0}
.hero-title span+span{font-size:.29em;letter-spacing:.06em}
.hero-intro{font-size:12px;max-width:300px;margin-top:22px}
.hero .event-announcement{margin-top:28px}
.announcement-date{font-size:23px}
.hero .hero-ticket{width:100%;margin-top:24px}
.lang-en .hero .hero-title-ja{font-size:28px}
}
@media(max-width:600px){.hero .hero-title-ja{font-size:clamp(17px,5.3vw,30px);letter-spacing:0}}

/* Keep the concept heading in two meaningful lines on narrow screens. */
@media(max-width:600px){
  html[lang="ja"] .concept-copy .concept-heading{font-size:clamp(22px,7.7vw,38px);line-height:1.55;letter-spacing:-.04em}
  html[lang="ja"] .concept-heading>span{white-space:nowrap}
}
/* Size artist headings against the narrower card, keeping Japanese phrases intact. */
@media(max-width:600px){
  .entry-card{container-type:inline-size}
  html[lang="ja"] .entry-card .entry-heading{font-size:clamp(20px,6.3vw,33px);font-size:clamp(18px,10cqi,33px);line-height:1.6;letter-spacing:-.04em}
  html[lang="ja"] .entry-heading>span{white-space:nowrap}
  html[lang="ja"] .entry-option .artist-call-heading{font-size:clamp(16px,4.5vw,22px);font-size:clamp(14px,8.7cqi,22px);line-height:1.6;letter-spacing:0;white-space:nowrap}
}
@media(max-width:600px){html[lang="ja"] .entry-card .entry-heading>span{font:inherit;letter-spacing:inherit}}

/* Festival announcements and practical information. */
.concept-copy .concept-heading{line-height:1.5;overflow-wrap:anywhere}
.about .section-heading h2{font-size:clamp(28px,4vw,56px);line-height:1.2;overflow-wrap:anywhere}
.festival-details{padding-top:80px}
.festival-updates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px}
.festival-update{border-top:1px solid var(--line);padding-top:28px}
.festival-update h2,.event-information h2{font-size:clamp(26px,3vw,40px);line-height:1.4;letter-spacing:0}
.festival-update p{font-size:14px;line-height:2;color:#d1ccdf}
.festival-update .coming-soon{font-family:"Barlow Condensed",sans-serif;font-size:36px;font-weight:700;color:var(--red);margin:20px 0}
.event-information{margin-top:80px}
.event-information table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.8;text-align:left}
.event-information th,.event-information td{padding:18px 20px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.event-information thead{background:#ffffff08}
.event-information tbody th{width:25%;font-weight:500}
.entry-card .entry-heading>span{white-space:normal!important;overflow-wrap:anywhere}
@media(max-width:600px){.festival-updates{grid-template-columns:1fr;gap:48px}.festival-details{padding-top:60px}.event-information{margin-top:56px}.event-information th,.event-information td{padding:16px 10px;font-size:12px}.event-information tbody th{width:23%}}

/* Title-only font traced from the original, user-owned logo lettering. */
@font-face{font-family:"Omatsuri Title";src:url("assets/fonts/omatsuri-title.woff2") format("woff2");font-style:normal;font-weight:900;font-display:swap}
.hero h1.hero-title{font-family:"Omatsuri Title",sans-serif;font-synthesis:none}
@media(max-width:600px){.hero h1.hero-title{font-size:clamp(42px,14vw,84px)}}

/* Two scenes connect the statement to live music and the city. */
.concept-photo-story{position:static;display:grid;gap:30px;padding:8px 0 0;text-align:left}
.concept-photo{position:relative;margin:0;min-width:0}
.concept-photo-story .concept-photo img{display:block;position:static;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.concept-photo-street{width:92%}
.concept-photo figcaption{display:flex;gap:14px;align-items:center;padding-top:12px;color:#b6b1cf;font:700 11px/1.5 "Barlow Condensed",sans-serif;letter-spacing:.16em}
.concept-photo figcaption span{position:static;display:inline;width:auto;height:auto;border-radius:0;background:none;box-shadow:none;font:inherit;color:var(--red)}
@media(min-width:601px) and (max-width:900px){.concept-photo-story{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.concept-photo-street{width:100%;margin-top:36px}}
.hero .hero-title-ja,.concept-copy .concept-heading{text-wrap:balance}
@media(max-width:600px){.hero{background-position:85% center;background-image:linear-gradient(90deg,rgba(0,0,20,.83),rgba(0,0,20,.45)),url("assets/hero-live-2027-v2.png")}.concept-photo-story{grid-template-columns:minmax(0,1fr);gap:22px}.concept-photo-street{width:100%;margin-top:0}.concept-photo figcaption{gap:8px;font-size:9px;letter-spacing:.1em}}

/* Lead with the supplied festival logo; let the photographs tell the concept. */
.hero{background:#000;min-height:0;padding:24px 7vw 48px}
.hero .hero-content,.hero .hero-content.reveal,.hero .hero-content.reveal.visible{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:0 7vw;align-items:start}
.hero .eyebrow{grid-column:1/-1;order:0;margin:0 0 6px}
.hero h1.hero-title{grid-column:1/-1;order:1;width:100%;font-size:inherit;margin:0 0 40px}
.hero-title .festival-logo{display:block;width:100%;height:auto;max-width:1200px;margin:0 auto}
.hero-title .hero-edition{display:block;font:700 clamp(15px,2vw,24px)/1.3 'Barlow Condensed',sans-serif;letter-spacing:.3em;color:var(--red);margin:0;text-align:center}
.hero .hero-title-ja{grid-column:1;grid-row:3;order:2;font-size:clamp(23px,2.8vw,40px);margin:0;max-width:620px}
.hero .hero-intro{grid-column:1;grid-row:4;order:3;max-width:620px;margin-top:20px}
.hero .event-announcement{grid-column:2;grid-row:3/5;order:4;width:100%;margin:0;padding-top:20px}
.hero .hero-ticket{width:calc((100% - 7vw)/2.2);margin:24px 0 0 auto}
.concept-photo-story{gap:32px}
.concept-photo-story .concept-photo img{aspect-ratio:1672/941;object-fit:contain}
.concept-photo-acoustic{width:100%;justify-self:end}
@media(min-width:601px) and (max-width:900px){.concept-photo-story{grid-template-columns:repeat(2,minmax(0,1fr))}.concept-photo-acoustic{width:100%;margin-top:0}.concept-photo-live{width:100%;justify-self:center}}
@media(max-width:600px){
  .hero{background:#000;padding:28px 20px 32px}
  .hero .hero-content,.hero .hero-content.reveal,.hero .hero-content.reveal.visible{display:flex;flex-direction:column;gap:0;align-items:stretch}
  .hero .eyebrow{font-size:8px;margin-bottom:12px}
  .hero h1.hero-title{width:100%;min-width:0;margin:0 0 36px}
  .hero-title .hero-edition{font-size:15px;margin-top:8px}
  .hero .hero-title-ja,.lang-en .hero .hero-title-ja{font-size:25px;margin:0;line-height:1.6}
  .hero .hero-intro{max-width:none;margin-top:18px}
  .hero .event-announcement{margin-top:28px}
  .hero .hero-ticket{width:100%;margin-top:24px}
  .concept-photo-story{gap:24px}
  .concept-photo-acoustic{width:100%}
}

/* Readable body copy across Japanese and English layouts. */
:root{--body-size:17px;--body-copy:#e0ddea}
body{font-size:var(--body-size);line-height:1.8}
.hero .hero-intro,
.concept-copy>p:not(.kicker),
.feature-card p,
.festival-update p:not(.coming-soon),
.entry-card>p.entry-lead,
.entry-option>p:not(.entry-option-label){font-size:var(--body-size);line-height:1.95;letter-spacing:.025em;color:var(--body-copy)}
.concept-copy>p:not(.kicker){max-width:38em;margin:0 0 1.5em}
.hero .hero-intro{max-width:38em}
.feature-card p{margin:0 0 1.15em}
.feature-card h3{font-size:22px;line-height:1.65;margin-bottom:22px}
.feature-grid{gap:36px}
.announcement-location{font-size:16px;line-height:1.9;margin-top:8px;color:var(--body-copy)}
.announcement-date{font-size:30px;gap:8px 10px;margin-top:16px}
.announcement-date span{font-size:16px}
.hero .event-announcement-label,.hero .eyebrow,.kicker,.entry-option-label{font-size:13px;line-height:1.6}
.hero-ticket-copy small{font-size:12px;line-height:1.5}
.hero-ticket-copy strong{font-size:16px;line-height:1.7;white-space:normal}
.news-card h3{font-size:19px;line-height:1.8}
.news-card time,.news-card .tag{font-size:14px;line-height:1.6}
.event-information table{font-size:17px;line-height:1.9}
.event-information th,.event-information td{padding:22px 20px}
.artist-apply-button{font-size:16px;line-height:1.6;min-height:56px}
.entry-card{gap:0 48px}
.entry-options{padding-left:32px}
.entry-option>p.application-note{font-size:14px}
.concept-photo figcaption{font-size:13px;line-height:1.6;color:var(--body-copy)}
.section-number{font-size:13px;color:#cbc6dd}
.global-nav{font-size:14px;gap:20px}
.language-switch{font-size:13px;min-height:40px}
.footer-main div{font-size:15px;line-height:1.8;gap:12px;color:var(--body-copy)}
.footer-main b{font-size:13px}
.footer-bottom{font-size:12px;line-height:1.8;gap:18px;color:#cbc6dd}
@media(min-width:901px) and (max-width:1200px){
  .site-header{gap:18px;padding-inline:3vw}
  .global-nav{gap:14px;font-size:13px}
  .header-cta{display:none}
  .concept{gap:5vw;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
}
@media(min-width:601px) and (max-width:1000px){
  .entry-card{display:block}
  .entry-card>p.entry-lead{max-width:38em}
  .entry-options{border-left:0;border-top:1px solid var(--line);padding:28px 0 0;margin-top:32px}
}
@media(max-width:600px){
  :root{--body-size:16px}
  .hero .hero-intro,.concept-copy>p:not(.kicker),.feature-card p,.festival-update p:not(.coming-soon),.entry-card>p.entry-lead,.entry-option>p:not(.entry-option-label){line-height:1.95;letter-spacing:.015em}


  .hero .eyebrow{font-size:11px;letter-spacing:.1em}
  .announcement-date{font-size:26px}
  .announcement-date span,.announcement-location{font-size:15px}
  .hero-ticket-copy strong{font-size:16px}
  .concept-copy>p:not(.kicker){margin-bottom:1.5em}
  .feature-card h3{font-size:21px}
  .feature-grid{gap:24px}
  .news-card h3{font-size:17px;margin-right:0}
  .event-information th,.event-information td{font-size:15px;padding:18px 10px}
  .event-information tbody th{width:25%}
  .entry-card{padding:32px 20px}
  .entry-options{padding:24px 0 0}
  .entry-option>p.application-note{font-size:14px}
  .concept-photo figcaption{font-size:12px}
  .global-nav{font-size:16px}
  .footer-bottom{font-size:12px;letter-spacing:.04em}
}

/* A single centered composition keeps the logo as the main focus. */
.hero{padding:16px 7vw 64px}
.hero .hero-content,.hero .hero-content.reveal,.hero .hero-content.reveal.visible{display:block}
.hero h1.hero-title{margin:0 0 36px}
.hero .hero-intro{width:100%;max-width:46em;margin:0 auto;text-align:center;text-wrap:pretty}
.hero .hero-ticket{width:360px;max-width:100%;margin:32px auto 0;padding:18px 0}
@media(max-width:600px){
  .hero{padding:16px 20px 40px}
  .hero h1.hero-title{margin-bottom:28px}
  .hero .hero-intro{text-align:left;max-width:38em}
  .hero .hero-ticket{width:100%;margin:28px auto 0}
}

/* Give the host city and year a clear place in the festival identity. */
.hero-title .hero-edition{
  font-size:clamp(36px,5.5vw,76px);
  font-weight:800;
  line-height:1.1;
  letter-spacing:.12em;
  margin:8px 0 0;
  padding-left:.12em;
}
@media(max-width:600px){
  .hero-title .hero-edition{font-size:clamp(32px,9vw,48px);letter-spacing:.1em;padding-left:.1em;margin-top:14px}
  .hero h1.hero-title{margin-bottom:32px}
}

/* Section headings now stand alone, without the small editorial labels. */
.concept{padding-top:72px}
.concept-copy .concept-heading{margin-top:0}
.concept-photo-story{padding-top:0}
.about{padding-top:64px;border-top:1px solid var(--line)}
.about .section-heading h2{margin-top:0}
@media(max-width:600px){
  .concept{padding-top:48px;gap:40px}
  .about{padding-top:48px}
  .about .section-heading{margin-bottom:36px}
}

/* Keep the application dates prominent beside the application action. */
.hero-deadline{display:block;margin-top:10px;color:var(--red);font-size:16px;font-weight:700;line-height:1.6}
.application-schedule{margin:24px 0 28px;border:1px solid var(--red);background:#031c16}
.application-schedule p{margin:0;padding:22px 24px}
.application-schedule .application-deadline{background:var(--red);color:var(--ink)}
.schedule-label{display:block;font-size:14px;font-weight:700;line-height:1.6;letter-spacing:.04em;margin-bottom:10px}
.application-deadline time{display:block;font-size:clamp(24px,2.4vw,34px);font-weight:900;line-height:1.4;letter-spacing:-.025em}
.application-announcement{color:#fff}
.schedule-date{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;font-size:clamp(20px,1.7vw,25px);font-weight:700;line-height:1.5}
.schedule-planned{font-size:14px;font-weight:500;color:#d0e9df}
.lang-en .application-deadline time{font-size:clamp(23px,2.1vw,30px)}
.lang-en .schedule-date{font-size:21px}
@media(max-width:600px){
  .application-schedule p{padding:20px 16px}
  .schedule-label{font-size:13px}
  .application-deadline time{font-size:clamp(22px,6.5vw,30px)}
  .schedule-date{font-size:21px}
  .hero-deadline{font-size:15px}
}

/* Preserve the intended two-line Japanese concept headline. */
.concept-copy{container-type:inline-size;min-width:0}
html[lang="ja"] .concept-copy .concept-heading{font-size:clamp(20px,9.5cqi,56px);line-height:1.55;letter-spacing:-.04em;text-wrap:initial;overflow-wrap:normal}
html[lang="ja"] .concept-heading>span{white-space:nowrap}

/* Preserve each supplied concept photograph in its original proportions. */
.concept-photo-story .concept-photo img{aspect-ratio:auto;height:auto}


.hero-edition .hero-weekday{display:inline-block;font-size:.5em;font-weight:800;letter-spacing:.06em;vertical-align:baseline}


/* Consistent line icons for venues, international exchange, and musical variety. */
.feature-card .icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:8px 0 28px;border:1px solid currentColor;border-radius:18px;background:color-mix(in srgb,currentColor 7%,transparent)}
.feature-card .icon svg{display:block;width:42px;height:42px;flex:none}
@media(max-width:600px){.feature-card .icon{width:58px;height:58px;border-radius:16px;margin-bottom:24px}.feature-card .icon svg{width:38px;height:38px}}

/* Use one section divider above the feature cards. */
.about .feature-card{border-top:0}


/* Balance the shorter facts against the longer genre description on desktop. */
@media(min-width:901px){
  .about .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
  .about .feature-card{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto;gap:14px 20px;align-content:start;min-width:0;padding:28px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025)}
  .about .feature-card:nth-child(1){grid-column:1;grid-row:1}
  .about .feature-card:nth-child(2){grid-column:1;grid-row:2}
  .about .feature-card:nth-child(3){grid-column:2;grid-row:1/3}
  .about .feature-card .icon{grid-column:1;grid-row:1;width:52px;height:52px;margin:0;border-radius:14px;align-self:start}
  .about .feature-card .icon svg{width:34px;height:34px}
  .about .feature-card h3{grid-column:2;margin:0;align-self:center;font-size:21px;line-height:1.6}
  .about .feature-card p{grid-column:2;margin:0;align-self:start;line-height:1.85}
}

/* A clear invitation to keep up with the festival on social media. */
.social-follow{padding:0 0 48px;margin-bottom:48px;border-bottom:1px solid var(--line)}
.social-follow h2{font-size:clamp(26px,3vw,40px);line-height:1.5;margin:0 0 16px;color:var(--red);letter-spacing:0}
.social-follow p{font-size:var(--body-size);line-height:1.9;color:var(--body-copy);margin:0;max-width:48em}
@media(max-width:600px){.social-follow{padding-bottom:32px;margin-bottom:36px}}
.social-follow-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}
.social-follow-links a{display:flex;align-items:center;gap:16px;padding:18px 22px;border:1px solid #ffffff55;border-radius:8px;font-size:15px;transition:background .2s,border-color .2s}
.social-follow-links a strong{font-size:18px;color:#fff}
.social-follow-links a span{color:var(--body-copy)}
.social-follow-links a span:last-child{margin-left:auto;color:var(--red);font-size:22px}
.social-follow-links a:hover{background:#ffffff0c;border-color:var(--red)}
@media(max-width:600px){.social-follow-links{flex-direction:column}.social-follow-links a{padding:16px;gap:12px;font-size:13px}.social-follow-links a strong{font-size:16px}}

.social-instagram-icon{display:block;width:22px;height:22px;flex-shrink:0;color:#fff}


/* Social updates section. */
.festival-details .social-follow{margin:0;padding:0;border:0;text-align:center}
.festival-details .social-follow p{margin-inline:auto}
.festival-details .social-follow-links{justify-content:center}

/* Organizer credit above the footer; preserve the supplied logo's colors. */
.organizer{padding:12px 24px 72px;text-align:center}
.organizer h2{margin:0 0 24px;color:var(--red);font-size:14px;font-weight:700;letter-spacing:.16em}
.organizer-link{display:inline-flex;flex-direction:column;align-items:center;gap:14px;max-width:100%;padding:12px 16px;border-radius:8px}
.organizer-logo{display:block;width:280px;max-width:100%;overflow:hidden;background:#fff;border-radius:6px;transition:transform .2s}
.organizer-logo img{display:block;width:100%;height:auto;transform:scale(.82);transform-origin:center}
.organizer-company{font-size:16px;font-weight:700;color:#fff}
.organizer-link:hover .organizer-logo{transform:translateY(-3px)}
.organizer-link:focus-visible{outline:2px solid var(--red);outline-offset:6px}
@media(max-width:600px){.organizer{padding:8px 20px 48px}.organizer-logo{width:250px}}
@media(prefers-reduced-motion:reduce){.organizer-logo{transition:none}.organizer-link:hover .organizer-logo{transform:none}}


/* Keep the introduction together and reserve the accent fill for the action. */
.entry-intro{display:contents}
.entry-intro .entry-lead{font-size:var(--body-size);line-height:1.95;letter-spacing:.025em;color:var(--body-copy);margin:0}
.application-schedule{border-color:var(--line);background:rgba(0,0,0,.18);border-radius:10px;overflow:hidden}
.application-schedule .application-deadline{background:transparent;color:#fff;border-bottom:1px solid var(--line)}
.application-deadline .schedule-label{color:var(--body-copy)}
.application-deadline time{color:#fff}
.application-announcement .schedule-label{color:var(--body-copy)}
.entry .artist-apply-button{border-radius:8px;font-size:17px;font-weight:900;min-height:64px;box-shadow:0 5px 20px rgba(0,237,123,.12)}
@media(min-width:1001px){
  .entry-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;padding:48px;gap:40px}
  .entry-intro{display:block;min-width:0}
  .entry-intro .kicker{margin:0 0 24px}
  .entry-intro .entry-heading{font-size:clamp(32px,3.3vw,48px);line-height:1.5;margin:0 0 28px}
  .entry-intro .entry-lead{max-width:34em}
  .entry-card .entry-options{grid-column:2;grid-row:1;align-self:start;padding-left:32px}
  .entry-option-label{margin-top:0}
  .application-schedule{margin:20px 0 24px}
  .application-schedule p{padding:18px 20px}
  .application-deadline time{font-size:clamp(24px,2.2vw,32px)}
  .schedule-date{font-size:22px}
}

/* Readable application labels in both languages. */
.entry-intro .kicker,.entry-option .entry-option-label{font-family:'Noto Sans JP',sans-serif;font-size:14px;font-weight:700;line-height:1.7;letter-spacing:.04em}
