body.home{height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column}.home #header{flex:none}.home #main{flex:1;min-height:0;display:flex;flex-direction:column}.home #footer{display:none}.hero{flex:1;min-height:0;position:relative;isolation:isolate;padding:32px var(--pad) 0;display:flex;flex-direction:column;background:#fff}.hero-art{position:absolute;z-index:-1;left:0;right:0;top:25px;bottom:0;width:100%;height:calc(100% - 25px);object-fit:contain;object-position:right bottom;pointer-events:none}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:14px;font-weight:700;letter-spacing:.07em}.hero-top .event-label{font-size:14px;letter-spacing:-.03em}.hero-headline{font-family:Pretendard,Arial,sans-serif;font-weight:900;font-size:clamp(80px,min(14.2vw,18.4svh),230px);line-height:.88;letter-spacing:-.073em;max-width:100%;margin-top:clamp(30px,7svh,90px);width:max-content}.hero-headline .line{white-space:nowrap;display:block}.hero-headline .gradient-text,.slogan span{background:linear-gradient(100deg,#2524bb,#a740d2 48%,#f18c61);background-clip:text;-webkit-background-clip:text;color:transparent}.year-line{display:flex;align-items:center;gap:.3em;font-size:.68em;margin-top:.48em;letter-spacing:-.07em}.year-line img{width:.72em;height:.72em;filter:invert(22%) sepia(98%) saturate(6500%) hue-rotate(239deg) brightness(95%)}.hero-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:25px 0 40px}.slogan{font-size:clamp(22px,min(2.3vw,3.4svh),40px);line-height:1.42;font-weight:700;letter-spacing:-.055em}.slogan span{display:inline-block}.hero-description{font-size:clamp(14px,1vw,14px);line-height:1.9;color:#656b80;margin-top:20px}.date-card{background:#fffffff0;backdrop-filter:blur(10px);border:1px solid #e4e5ed;padding:26px;width:260px;flex-shrink:0}.date-number{font-family:Pretendard,Arial,sans-serif;font-size:clamp(38px,4.1vw,60px);letter-spacing:-.08em;line-height:1.1}.date-number small{font-family:Pretendard,sans-serif;font-size:14px;font-weight:700;letter-spacing:0;margin-left:12px}.date-card p{font-size:14px;line-height:1.9;margin-top:16px}.date-card a{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:18px;font-size:14px}.date-card .icon{width:14px;height:14px}.hero-credit{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:14px;font-weight:700;padding:19px 0 20px}.hero-credit a{display:flex;gap:8px;align-items:center;font-size:14px}.hero-credit .icon{width:12px;height:12px}.marquee{flex:none;height:76px;display:flex;align-items:center;overflow:hidden;background:#3532ff;color:white}.marquee-track{display:flex;align-items:center;width:max-content;animation:marquee 38s linear infinite;font-family:Pretendard,Arial,sans-serif;font-size:39px;letter-spacing:-.04em}.marquee-group{display:flex;align-items:center;gap:34px;padding-right:34px;white-space:nowrap}.marquee img{width:32px;height:32px;filter:invert(70%) sepia(80%) saturate(500%) hue-rotate(195deg)}@keyframes marquee{to{transform:translateX(-50%)}}@media(min-aspect-ratio:19/10){.hero-headline{font-size:20svh;margin-top:5svh}.hero-art{object-fit:contain}.hero-bottom{padding-bottom:22px}.date-card{padding:20px}.hero-description{margin-top:12px}}@media(max-height:720px) and (min-width:801px){:root{--header:72px}.hero{padding-top:20px}.hero-headline{margin-top:5svh;font-size:18svh}.hero-bottom{padding:15px 0 20px}.hero-description{margin-top:10px;font-size:14px}.slogan{font-size:23px}.date-card{width:220px;padding:16px 20px}.date-number{font-size:38px}.date-card p{margin-top:10px;font-size:14px}.date-card a{margin-top:12px;padding-top:12px}.hero-credit{padding:12px 0;font-size:14px}.marquee{height:58px}.marquee-track{font-size:30px}}@media(max-width:800px){.hero{padding-top:23px}.hero-top{font-size:14px}.hero-top .event-label{font-size:14px}.hero-top .edition{display:none}.hero-headline{font-size:min(16.8vw,12svh);margin-top:7svh}.year-line{margin-top:.32em;font-size:.75em}.hero-art{top:28%;height:72%;width:140%;max-width:none;left:auto;right:0;object-fit:contain;object-position:right bottom}.hero-bottom{padding:15px 0 23px;align-items:flex-end;gap:15px}.slogan{font-size:clamp(21px,3.3vw,27px)}.hero-description{font-size:14px;line-height:1.8;max-width:220px}.date-card{width:200px;padding:18px}.date-number{font-size:39px}.hero-credit{font-size:14px;padding:15px 0;line-height:1.6}.hero-credit a{font-size:14px;max-width:75px}.marquee{height:56px}.marquee-track{font-size:28px}.marquee-group{gap:25px;padding-right:25px}.marquee img{width:24px;height:24px}}@media(max-width:520px){.hero-top>span:nth-child(2){max-width:140px;text-align:right;font-size:14px}.hero-headline{font-size:16.7vw;margin-top:6svh}.hero-art{top:28%;height:72%;width:170%;right:-10%}.hero-bottom{position:relative;flex:1;display:block;padding-top:30px;padding-bottom:16px}.slogan{font-size:22px}.hero-description{display:none}.date-card{position:absolute;right:0;bottom:18px;width:172px;padding:16px;background:#ffffffec}.date-number{font-size:33px}.date-number small{font-size:14px}.date-card p{font-size:14px;margin-top:10px}.date-card a{font-size:14px;margin-top:12px;padding-top:11px}.hero-credit>span{max-width:245px;font-size:14px}.hero-credit a{font-size:14px;max-width:65px}.hero-credit{padding:12px 0}.marquee{height:48px}.marquee-track{font-size:24px}}@media(max-width:520px) and (max-height:700px){.hero{padding-top:17px}.hero-headline{margin-top:4svh}.hero-bottom{padding-top:22px}.slogan{font-size:19px}.date-card{padding:12px;width:159px;bottom:13px}.date-number{font-size:28px}.date-card p{font-size:14px}.hero-credit{padding:10px 0}.marquee{height:42px}}
/* Approved hero proportions: display title spans roughly 64% of desktop width. */
@media(min-width:1101px) and (min-height:721px){.hero-headline{font-size:clamp(110px,min(15.2vw,20svh),240px)}.date-card{width:clamp(220px,17.9vw,280px)}}
@media(min-width:1101px) and (min-height:721px){:root{--header:80px}.hero-headline{font-size:clamp(110px,min(16.3vw,21.4svh),255px);margin-top:8svh}.hero-bottom{padding-bottom:64px}.marquee{height:92px}}
.floorplan-image{display:block;width:100%;height:auto}
@media(max-width:520px){.hero-art{right:0}}
/* Keep desktop composition independent of text intrinsic height at 100vh. */
@media(min-width:1101px) and (min-height:721px){.hero-headline{position:absolute;left:var(--pad);top:14.5%;margin:0}.hero-bottom{position:absolute;left:var(--pad);right:var(--pad);bottom:46px;padding:0 0 32px}.hero-credit{margin-top:auto}}
@media(min-width:1101px) and (min-height:721px){.hero-headline{font-size:clamp(110px,min(15.2vw,20svh),240px)}.year-line{margin-top:.4em}.hero-bottom{bottom:70px}}

/* Original organizer logo assets, with intrinsic proportions preserved. */
.organizer-logos{display:flex;align-items:center;gap:24px;min-width:0}.organizer-logo{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:14px}.organizer-logo img{display:block;width:auto;height:20px;object-fit:contain}
@media(max-width:800px){.organizer-logos{gap:16px}.organizer-logo{gap:7px;font-size:14px}.organizer-logo img{height:16px}}
@media(max-width:520px){.hero-credit{gap:8px}.organizer-logos{gap:12px}.organizer-logo{gap:6px;font-size:14px}.organizer-logo img{height:12px}}

/* Make room for the 14px minimum without scaling the text down. */
@media(max-width:800px){.hero-top>span:nth-child(2){display:none}.hero-credit>a{display:none}.organizer-logo{flex-shrink:0}.hero-credit{padding:14px 0}}
@media(max-width:520px){.date-card{width:190px}.hero-credit{padding:12px 0}.hero-credit .organizer-logos{flex-wrap:wrap;row-gap:8px}.date-card p{line-height:1.6}}
@media(max-width:520px) and (max-height:700px){.hero-headline{font-size:14vw;margin-top:3svh}.hero-bottom{padding-top:18px}.date-card{padding:12px;width:190px}.date-card p{margin-top:7px}.date-card a{margin-top:8px;padding-top:8px}}
/* Keep the slogan and description on the white field above the ribbon. */
@media(min-width:801px) and (min-height:721px){.hero-bottom>div:first-child{transform:translateY(-40px)}}
@media(min-width:801px) and (max-width:1100px) and (min-height:900px){.hero-bottom>div:first-child{transform:translateY(-80px)}}
@media(min-width:1101px) and (min-height:721px){.year-line{margin-top:.2em}}
