*{box-sizing:border-box}html,body{margin:0;background:#020914;color:#fff;font:16px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}button,select{font:inherit}button{cursor:pointer}#stage{position:relative;aspect-ratio:16/9;max-width:100vw;max-height:calc(100vh - 68px);width:min(100vw,calc((100vh - 68px)*16/9));margin:0 auto;overflow:hidden;background:radial-gradient(ellipse at 51% 58%,#193047 0,#071726 43%,#030914 92%);isolation:isolate}.stars{position:absolute;inset:0;z-index:-1;opacity:.95}.star{position:absolute;background:white;width:2px;height:2px;border-radius:50%;box-shadow:0 0 7px #d9fbff;animation:twinkle 4s ease-in-out infinite}.nebula{position:absolute;z-index:-1;inset:-25%;background:radial-gradient(ellipse at 55% 60%,#2b84602d 0%,transparent 40%),radial-gradient(ellipse at 20% 34%,#1e4d8a25,transparent 39%);transform:rotate(-10deg)}@keyframes twinkle{50%{opacity:.24;transform:scale(.5)}}.stage-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:6% 12%}.stage-inner>*{animation:enter 1s both}.splash .eyebrow,.eyebrow{color:#8feac3;letter-spacing:.2em;font-weight:800;font-size:clamp(10px,1.1vw,19px)}.splash-heart{font-size:clamp(36px,6vw,110px);margin:4% 0 0;filter:drop-shadow(0 0 20px #37e6aa77)}.splash h1,.end h1{font-size:clamp(32px,5.7vw,106px);letter-spacing:-.055em;line-height:1.05;margin:.2em 0;font-weight:900}.splash p,.end p{font-size:clamp(14px,1.7vw,32px);color:#c9d7e4}.stage-mark{position:absolute;right:3.6%;bottom:3%;font-size:clamp(8px,.8vw,15px);color:#b0c2ce;letter-spacing:.14em;font-weight:800}.stage-mark span{color:#60e6aa}.slide-progress{position:absolute;height:4px;left:0;right:0;bottom:0;background:#ffffff1c}.slide-progress>div{background:linear-gradient(90deg,#6cda9d,#b7f5dc);height:100%;width:0;transition:width .15s}.gratitude{width:100%;max-width:1200px;display:flex;flex-direction:column;align-items:center}.gratitude .icon{font-size:clamp(27px,4vw,78px);filter:drop-shadow(0 0 26px #42f8ad55)}.gratitude .to{font-size:clamp(28px,4vw,78px);font-weight:850;letter-spacing:-.04em;line-height:1.12;margin:.19em 0}.gratitude .dept{font-size:clamp(12px,1.3vw,25px);color:#8fe8c0}.gratitude .message{font-size:clamp(17px,2.1vw,40px);line-height:1.5;letter-spacing:-.02em;font-weight:470;color:#f6fffc;max-width:1120px;max-height:48vh;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;margin:4% 0}.gratitude .from{font-size:clamp(12px,1.35vw,25px);color:#bdcdd8}.gratitude .cat{font-size:clamp(10px,1.05vw,20px);letter-spacing:.13em;color:#66dfa8;text-transform:uppercase;font-weight:750}.top-slide .ranks{display:flex;align-items:flex-end;justify-content:center;gap:3vw;margin:5% 0}.rank{min-width:22%;border:1px solid #89eebc44;border-radius:16px;padding:2vw 1vw;background:#ffffff0c;min-height:10vw}.rank.first{min-height:14vw;background:#53db9940;border-color:#86ffd3a3;transform:translateY(-1vw)}.rank .medal{font-size:clamp(21px,2.6vw,50px)}.rank .name{font-weight:760;font-size:clamp(13px,1.65vw,32px);overflow-wrap:anywhere}.rank .count{color:#9fe8c3;font-size:clamp(11px,1vw,20px)}.end .big-heart{font-size:clamp(60px,7vw,145px)}.toolbar{height:68px;display:flex;justify-content:center;align-items:center;gap:9px;padding:10px;flex-wrap:wrap;background:#091521;border-top:1px solid #ffffff22}.control{background:#182e3c;color:#f0fff7;border:1px solid #3e6872;border-radius:9px;padding:8px 12px;text-decoration:none;font-weight:650;font-size:12px}.control.primary{background:#189d72;border-color:#189d72}.control:hover{background:#255065}.speed-label{font-size:12px;color:#c2d4d3}.speed-label select{padding:7px;background:#182e3c;border:1px solid #3e6872;border-radius:8px;color:white}#position{color:#8ea5ad;font-size:11px;min-width:80px;text-align:center}@keyframes enter{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:640px){#stage{max-height:none;width:100vw;aspect-ratio:16/9}.stage-inner{padding:5% 8%}.toolbar{height:auto;justify-content:flex-start;padding:10px}.control{padding:6px 8px;font-size:11px}.gratitude .message{margin:2% 0}.rank{min-height:60px}.rank.first{min-height:75px}}

.crawl-wrap{perspective:480px;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}.crawl-text{max-width:75%;color:#e3f5ed;text-align:center;transform-origin:50% 100%;transform:rotateX(31deg) translateY(95%);animation:starcrawl 12s linear both}.crawl-text h1{font-size:clamp(26px,4vw,80px);line-height:1.2;letter-spacing:-.04em}.crawl-text h2{font-size:clamp(22px,3.3vw,65px);color:#86f2b9}.crawl-text p{font-size:clamp(17px,2.1vw,40px);line-height:1.6}@keyframes starcrawl{0%{opacity:0;transform:rotateX(31deg) translateY(95%) scale(.88)}8%{opacity:1}84%{opacity:1}100%{opacity:0;transform:rotateX(31deg) translateY(-78%) scale(.65)}}

.gratitude .cat{max-width:90%;text-align:center;overflow-wrap:anywhere;line-height:1.5}
