*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:Inter,system-ui,sans-serif;overflow:hidden;background:#2a1148;-webkit-font-smoothing:antialiased}.app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:linear-gradient(180deg,#12082b,#2a1148 55%,#4c1d95);touch-action:manipulation}@keyframes appear{0%{opacity:0}to{opacity:1}}.glow{position:absolute;border-radius:50%;pointer-events:none;animation:breathe 8s ease-in-out infinite}.g1{width:70vmin;height:70vmin;top:4%;left:8%;background:radial-gradient(circle,rgba(244,114,182,.16) 0%,transparent 68%)}.g2{width:60vmin;height:60vmin;top:16%;right:4%;background:radial-gradient(circle,rgba(253,224,71,.13) 0%,transparent 68%);animation-delay:-4s}@keyframes breathe{0%,to{opacity:.7}50%{opacity:1}}.banner{position:absolute;top:3vh;left:50%;translate:-50% 0;z-index:20;background:#d93a3a;border:3px solid #fde68a;border-radius:10px;padding:8px 20px;box-shadow:0 6px 20px #00000073;rotate:-2deg;animation:banner-sway 5s ease-in-out infinite;pointer-events:none}.banner span{font:800 clamp(1.1rem,5vw,1.7rem) "Inter",sans-serif;letter-spacing:.06em;color:#fff;text-shadow:0 2px 0 #a82826;white-space:nowrap}@keyframes banner-sway{0%,to{rotate:-2deg}50%{rotate:2deg}}.stage{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer}.bleacher{position:absolute;left:-4vw;right:-4vw;border-radius:10px 10px 0 0;background:linear-gradient(180deg,#5b3a6e,#45285a);box-shadow:0 -4px 14px #0000004d}.b5{bottom:0;height:83vh;background:linear-gradient(180deg,#432653,#31183f)}.b4{bottom:0;height:63vh;background:linear-gradient(180deg,#4f3061,#3d2050)}.b3{bottom:0;height:42vh}.b2{bottom:0;height:21vh;background:linear-gradient(180deg,#6b4680,#52306b)}.b1{bottom:0;height:4vh;background:linear-gradient(180deg,#7c5595,#5e3a78)}.crowd{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.row{position:absolute;left:0;right:0;display:flex;justify-content:center}.row-0{bottom:83vh;gap:clamp(2px,.8vw,10px)}.row-1{bottom:63vh;gap:clamp(3px,1.2vw,14px)}.row-2{bottom:42vh;gap:clamp(4px,2vw,20px)}.row-3{bottom:21vh;gap:clamp(5px,3.2vw,30px)}.row-4{bottom:4vh;gap:clamp(8px,5vw,40px)}.row-0 .girl{width:clamp(30px,8vw,48px)}.row-1 .girl{width:clamp(36px,10vw,58px)}.row-2 .girl{width:clamp(44px,12.5vw,70px)}.row-3 .girl{width:clamp(54px,15.5vw,84px)}.row-4 .girl{width:clamp(64px,19vw,100px)}.girl{position:relative;animation:wave-jump 3.4s ease-in-out infinite;animation-delay:var(--wave, 0s)}@keyframes wave-jump{0%,18%,to{translate:0 0}8%{translate:0 -12px}}.girl svg{display:block;width:100%;height:auto;overflow:visible}.arm{transform-box:view-box}.girl .arm-l{transform-origin:23px 40px;animation:shake-l var(--shake, .5s) ease-in-out infinite alternate}.girl .arm-r{transform-origin:37px 40px;animation:shake-r var(--shake, .5s) ease-in-out infinite alternate}@keyframes shake-l{0%{rotate:-14deg}to{rotate:16deg}}@keyframes shake-r{0%{rotate:14deg}to{rotate:-16deg}}.mascot{position:absolute;right:14px;bottom:2.5vh;width:clamp(62px,18vw,92px);z-index:14;pointer-events:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4))}.mascot svg{display:block;width:100%;height:auto;overflow:visible}.mascot .arm-l{transform-origin:18px 30px;animation:shake-l .55s ease-in-out infinite alternate}.mascot .arm-r{transform-origin:72px 30px;animation:shake-r .55s ease-in-out infinite alternate}.mascot-tag{display:block;text-align:center;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:#fff9;margin-top:2px}.say{position:absolute;bottom:calc(100% + 5px);left:50%;translate:-50% 0;background:#fffffff2;color:#24405c;font-size:.7rem;font-weight:600;white-space:nowrap;padding:5px 10px;border-radius:12px;box-shadow:0 2px 8px #00000059;animation:say-pop 2.4s ease-out both;pointer-events:none;z-index:26}.say:after{content:"";position:absolute;top:100%;left:50%;translate:-50% 0;border:5px solid transparent;border-top-color:#fffffff2}.say-l{left:-6px;translate:0 0}.say-l:after{left:18px;translate:0 0}.say-r{left:auto;right:-6px;translate:0 0}.say-r:after{left:auto;right:18px;translate:0 0}@keyframes say-pop{0%{opacity:0;transform:translateY(6px) scale(.7)}10%{opacity:1;transform:translateY(0) scale(1.05)}16%{transform:scale(1)}84%{opacity:1}to{opacity:0;transform:translateY(-6px)}}.burst{position:absolute;width:0;height:0;pointer-events:none;z-index:30}.burst span{position:absolute;width:7px;height:10px;border-radius:2px;animation:burst-fly .85s ease-out both}@keyframes burst-fly{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(240deg)}}.back-link{position:fixed;top:12px;left:12px;z-index:60;width:38px;height:38px;display:grid;place-items:center;font:600 1.15rem Inter,sans-serif;color:#fff;text-decoration:none;background:#140f2d73;border:1px solid rgba(255,255,255,.3);border-radius:50%;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.page-footer{position:fixed;left:14px;bottom:12px;z-index:60;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#ffffff73}@media(max-width:480px){.app{min-height:100dvh}.banner{top:max(10px,env(safe-area-inset-top));width:max-content;max-width:calc(100vw - 118px);padding:6px 12px;border-width:2px}.banner span{font-size:clamp(.85rem,4.3vw,1.15rem);letter-spacing:.035em}.back-link{top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));width:36px;height:36px}.row-0{bottom:82dvh;gap:2px}.row-1{bottom:62dvh;gap:3px}.row-2{bottom:41dvh;gap:4px}.row-3{bottom:20dvh;gap:6px}.row-4{bottom:2dvh;gap:12px}.b5{height:82dvh}.b4{height:62dvh}.b3{height:41dvh}.b2{height:20dvh}.b1{height:2dvh}.row-0 .girl{width:clamp(29px,8.3vw,40px)}.row-1 .girl{width:clamp(34px,9.8vw,47px)}.row-2 .girl{width:clamp(40px,11.7vw,56px)}.row-3 .girl{width:clamp(50px,14.6vw,70px)}.row-4 .girl{width:clamp(60px,18vw,82px)}.mascot{right:max(8px,env(safe-area-inset-right));bottom:calc(1.5dvh + env(safe-area-inset-bottom));width:clamp(54px,16vw,72px)}.mascot-tag,.page-footer{display:none}.say{max-width:min(150px,48vw);white-space:normal;text-align:center;font-size:.62rem;line-height:1.15;padding:4px 7px}.g1{left:-18vmin}.g2{right:-20vmin}}@media(max-height:560px)and (orientation:landscape){.banner{top:8px;padding:4px 10px}.banner span{font-size:.9rem}.row-0{bottom:77vh}.row-1{bottom:58vh}.row-2{bottom:39vh}.row-3{bottom:17vh}.row-4{bottom:1vh}.mascot{width:54px}}
