/* FV-only poster composition. Approved copy, dates and all following sections stay intact. */
@font-face{font-family:'Ramen Poster';src:url('./assets/display.ttf?v=0b8589fa01') format('truetype');font-weight:400;font-style:normal;font-display:swap}
.hero--poster{--poster-green:#00853e;background-color:var(--poster-green)}
.hero--poster .hero-inner{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);grid-template-areas:'heading art' 'details art';gap:0 28px;padding-block:32px 36px}
.hero-heading{grid-area:heading;position:relative;z-index:3;min-width:0}
.hero-details{grid-area:details;position:relative;z-index:3;min-width:0}
.hero--poster .hero-intro{font-size:12px;margin-bottom:12px;padding-left:0}
.hero--poster .hero-intro:before{display:none}
.hero--poster .poster-display{font-family:'Ramen Poster',var(--display);font-weight:400;line-height:1.15;letter-spacing:0;text-shadow:none;text-wrap:nowrap}
.hero--poster .poster-display>span{margin:0;font-size:inherit;letter-spacing:0;-webkit-text-stroke:0}
.hero--poster .poster-display>.poster-kicker{font-family:var(--body);font-size:21px;font-weight:800;color:white;margin-bottom:10px}
.hero--poster .poster-display>.poster-ramen-word{font-size:clamp(74px,8vw,108px);line-height:1.25;color:white;text-shadow:3px 3px 0 var(--dark),6px 6px 0 var(--dark);transform:rotate(-3deg);transform-origin:left center}
.hero--poster .poster-display>.poster-rally-word{display:table;max-width:100%;font-size:clamp(37px,4.2vw,56px);line-height:1.55;background:var(--yellow);color:var(--dark);padding:0 12px 3px;box-shadow:5px 6px 0 var(--dark);transform:rotate(-2deg);margin-top:2px}
.hero--poster .formal-name{font-family:var(--body);font-weight:400;font-size:10px;line-height:1.55;letter-spacing:normal;-webkit-text-stroke:0;text-shadow:none;white-space:normal;margin-top:16px}
.hero--poster .hero-reward{margin-top:24px;background:var(--cream);border:2px solid var(--dark);border-radius:0;outline:none;box-shadow:5px 5px 0 var(--dark);padding:10px 16px 8px;grid-template-columns:94px minmax(0,1fr);column-gap:14px}
.hero--poster .hero-reward>img{height:90px}
.hero--poster .hero-reward h2{font-size:24px;line-height:1.4}
.hero--poster .hero-reward strong{background:var(--yellow);padding-inline:3px}
.hero--poster .hero-reward>div>p{font-size:12px}
.hero--poster .certificate-line{font-size:11px;margin-top:3px;padding-top:4px}
.hero--poster .dates{margin-top:22px}
.hero--poster .dates>div>span{background:var(--dark);border:0;padding:2px 7px;font-size:11px}
.hero--poster .dates strong{font-size:30px;letter-spacing:0}
.hero--poster .hero-cta{border-radius:0;border:2px solid var(--dark);box-shadow:4px 4px 0 var(--dark);margin-top:18px}
.hero--poster .hero-note{font-size:11px;line-height:1.7;margin-top:14px;color:white}
.hero--poster .hero-visual{grid-area:art;min-height:0;height:auto;margin:0;align-self:stretch}
.hero--poster .hero-ramen{width:112%;left:-9%;top:30%;transform:rotate(-12deg)}
.hero--poster .hero-vanta{width:37%;right:-2%;bottom:5%}
.hero--poster .hero-slogan{top:7%;left:10%;font-size:30px}
.hero--poster .hero-visual>p{bottom:6%;left:0;right:auto;top:auto;font-size:17px}
.hero--poster .hero-team-stamp{width:84px;height:84px;top:4%;right:0}
.hero--poster .hero-team-stamp>b{font-size:31px}
.hero--poster .hero-team-stamp>span{font-size:7px}
.hero--poster .hero-visual:before,.hero--poster .hero-visual:after{width:100%;height:auto;aspect-ratio:1;top:23%;left:0}
.hero--poster .art-rays{top:20%;left:-10%;width:120%;opacity:.5}
.hero--poster .ramen-steam{top:25%;left:51%}
.hero--poster .festival-backdrop:before{opacity:.6}
.hero--poster .watermark-eleven{opacity:.08}
/* Phones read straight down: rally > supplied artwork > benefit > dates > shops. */
@media(max-width:900px){
 .hero--poster .hero-inner{width:min(580px,calc(100% - 40px));grid-template-columns:minmax(0,1fr);grid-template-areas:'heading' 'art' 'details';padding-block:20px 24px}
 .hero--poster .hero-intro{text-align:center;font-size:11px;margin-bottom:5px}
 .hero--poster .poster-display{text-align:center}
 .hero--poster .poster-display>.poster-kicker{font-size:18px;margin-bottom:2px}
 .hero--poster .poster-display>.poster-ramen-word{font-size:clamp(64px,20vw,104px);line-height:1.2;transform-origin:center}
 .hero--poster .poster-display>.poster-rally-word{font-size:clamp(32px,10.3vw,55px);padding:0 9px 3px;line-height:1.5;margin:4px auto 0}
 .hero--poster .formal-name{text-align:center;font-size:9px;margin-top:11px}
 .hero--poster .hero-visual{height:clamp(148px,40vw,225px);margin-top:9px}
 .hero--poster .hero-ramen{width:64%;left:11%;top:10%;transform:rotate(-12deg)}
 .hero--poster .hero-vanta{width:25%;right:0;bottom:0}
 .hero--poster .hero-slogan{top:2%;left:-2%;font-size:clamp(13px,3.6vw,20px);line-height:1.45;transform:rotate(-8deg)}
 .hero--poster .hero-slogan>span{padding:0 5px 2px;margin-bottom:4px}
 .hero--poster .hero-slogan>span:nth-child(2){margin-left:8px}
 .hero--poster .hero-slogan>span:nth-child(3){margin-left:16px}
 .hero--poster .hero-visual>p{font-size:9px;padding:5px 9px;left:0;bottom:0;top:auto;right:auto;transform:rotate(-5deg);border-width:1px}
 .hero--poster .hero-team-stamp{width:48px;height:48px;right:3%;top:0;outline-offset:-4px}
 .hero--poster .hero-team-stamp>b{font-size:17px}
 .hero--poster .hero-team-stamp>span{font-size:4px}
 .hero--poster .hero-visual:before,.hero--poster .hero-visual:after{display:none}
 .hero--poster .art-rays{width:65%;left:12%;top:-20%;opacity:.5}
 .hero--poster .ramen-steam{width:38px;height:38px;left:54%;top:-5%}
 .hero--poster .hero-visual .party-piece{display:none}
 .hero--poster .hero-reward{margin-top:12px;padding:8px 12px 6px;grid-template-columns:78px minmax(0,1fr);column-gap:10px}
 .hero--poster .hero-reward>img{height:78px}
 .hero--poster .hero-reward h2{font-size:22px;line-height:1.4}
 .hero--poster .hero-reward>div>p{font-size:10px;margin-bottom:1px}
 .hero--poster .certificate-line{font-size:10px}
 .hero--poster .dates{margin-top:17px;gap:14px;justify-content:space-between}
 .hero--poster .dates>div>span{font-size:10px;padding-inline:5px}
 .hero--poster .dates strong{font-size:25px}
 .hero--poster .hero-cta{margin-top:13px;min-height:52px}
 .hero--poster .hero-note{font-size:10px;margin-top:12px}
}
@media(max-width:359px){
 .hero--poster .hero-inner{width:calc(100% - 32px)}
 .hero--poster .hero-reward{grid-template-columns:65px minmax(0,1fr);padding-inline:8px;column-gap:8px}
 .hero--poster .hero-reward h2{font-size:20px}
 .hero--poster .hero-reward>img{height:70px}
 .hero--poster .hero-reward>div>p,.hero--poster .certificate-line{font-size:9px}
 .hero--poster .dates{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:8px}
 .hero--poster .dates p{gap:3px}
 .hero--poster .dates strong{font-size:20px}
 .hero--poster .dates small{font-size:8px}
 .hero--poster .dates i{width:12px;height:12px;font-size:8px}
 .hero--poster .dates>div>span{font-size:9px;white-space:nowrap;padding-inline:3px}
}
/* Finite title entrance; no ongoing movement of words, dates, reward or CTA. */
@media(prefers-reduced-motion:no-preference){
 .motion-enabled .hero--poster .poster-ramen-word.reveal-in{animation:poster-title-land 810ms ease-out both}
 .motion-enabled .hero--poster .poster-rally-word.reveal-in{animation:poster-band-land 720ms ease-out 180ms both}
}
@keyframes poster-title-land{from{opacity:.5;transform:translateY(-18px) rotate(-6deg) scale(1.08)}75%{opacity:1;transform:translateY(2px) rotate(-2deg) scale(.99)}to{opacity:1;transform:rotate(-3deg)}}
@keyframes poster-band-land{from{opacity:.5;transform:translateX(-20px) rotate(-5deg)}to{opacity:1;transform:rotate(-2deg)}}
