@font-face{font-family:Nunito;src:url(/fonts/nunito.ttf);font-weight:200 1000;font-display:swap}@font-face{font-family:Syne;src:url(/fonts/syne.ttf);font-weight:400 800;font-display:swap}:root{color:#44324d;font-synthesis:none;--pink:#b83272;--cream:#fffaf0;--blue:#267d99;--ink:#44324d;background:#c9ddef;font-family:Nunito,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.52}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #9961d5}canvas{touch-action:none;width:100%;height:100%;position:fixed;inset:0}.hidden{display:none!important}#topbar{z-index:3;top:env(safe-area-inset-top,0px);pointer-events:none;align-items:center;gap:9px;padding:18px 28px;display:flex;position:fixed;left:0;right:0}#topbar>*{pointer-events:auto}.icon-button{width:46px;height:46px;color:var(--ink);background:#fffaf0e8;border:1px solid #fff9;border-radius:16px;flex-shrink:0;place-items:center;font-size:25px;font-weight:900;text-decoration:none;display:grid;box-shadow:0 3px #64577720}.wordmark{letter-spacing:-.7px;text-shadow:0 1px #fff8;flex:1;font:800 18px/.95 Syne,sans-serif}.wordmark>span{color:var(--pink);display:block}.wordmark small{letter-spacing:1.5px;margin-top:6px;font:900 8px Nunito,sans-serif;display:block}.sheet{z-index:4;background:#fffaf0f2;border:1px solid #fff;border-radius:28px;width:390px;max-height:calc(100dvh - 100px);padding:28px;position:fixed;top:50%;left:6vw;overflow:auto;transform:translateY(-43%);box-shadow:0 10px #6e52881c,0 22px 65px #40314c25}.petal-label{letter-spacing:1.6px;color:#9c597b;font-size:9px;font-weight:1000}h1{letter-spacing:-2.5px;margin:20px 0;font:800 clamp(36px,4vw,56px)/1.03 Syne,sans-serif}h1 em,h2 em{color:var(--pink);font-style:normal}h2{letter-spacing:-1.4px;margin:15px 0;font:800 30px/1.07 Syne,sans-serif}p{font-size:14px;line-height:1.6}.intro{color:#79697d;max-width:28ch;margin:18px 0 24px}.primary,.secondary,#join-form button{background:var(--pink);color:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:48px;padding:11px 16px;font-size:14px;font-weight:900;transition:background .15s,transform .15s;display:flex;box-shadow:0 4px #7f23501c,inset 0 1px #ffffff35}.primary:hover{background:#982560}.primary:active,.secondary:active{transform:translateY(2px)}.secondary{color:#674b6f;box-shadow:none;background:#f1eaf1;border:1px solid #decede}.secondary:hover{background:#e9ddeb}.mode-buttons{gap:12px;display:grid}.small{text-align:center;color:#817183;margin:16px 0 0;font-size:10px}#join-form label{color:#796a7e;margin-bottom:5px;font-size:11px;font-weight:800;display:block}.join-row{gap:8px;display:flex}.join-row input{letter-spacing:3px;text-transform:uppercase;background:#fffdf8;border:1px solid #e1d4df;border-radius:12px;width:60%;min-width:0;min-height:44px;padding:10px 14px}.join-row button{width:40%;box-shadow:none;background:#66517e}#welcome-status:empty{display:none}#welcome-status:not(:empty){color:#9a3153;background:#ffe4e5;border:1px solid #e8b9cf;border-radius:10px;margin:0 0 12px;padding:9px 11px;font-size:12px;line-height:1.4}#welcome.sheet{background:linear-gradient(125deg,#fffbf3f5,#fff5f6f7);grid-template-columns:1fr 1fr;gap:32px;width:min(810px,88vw);padding:32px 36px;display:grid}.welcome-copy{padding:4px 12px 0 0;position:relative}.welcome-copy:after{content:"✿";color:#ed94bc25;pointer-events:none;font:100px/1 Nunito;position:absolute;bottom:10px;right:4px}.welcome-actions{border-left:1px solid #e5d6e3;min-width:0;padding:4px 0 4px 28px}.capacity-note{letter-spacing:.7px;color:#996486;flex-wrap:wrap;gap:7px;font-size:8px;font-weight:900;display:flex}.capacity-note span{background:#fff9;border:1px solid #e6cfdc;border-radius:20px;padding:7px 9px}.nick-label{text-transform:uppercase;letter-spacing:1px;margin-bottom:5px;font-size:11px;font-weight:900;display:block}#nickname{width:100%;min-height:44px;color:var(--ink);background:#fffdf8;border:1px solid #e1d4df;border-radius:12px;padding:8px 12px}#nick-note{color:#897489;margin:7px 0 15px;font-size:10px;line-height:1.3}#lobby{text-align:center}#invite-code{letter-spacing:7px;color:var(--pink);margin:20px 0;font:800 38px Syne,sans-serif;display:block}#lobby-status{font-weight:800}#hud{z-index:2;top:max(16px,env(safe-area-inset-top));background:#fffaf1f0;border:1px solid #fff;border-radius:20px;align-items:center;gap:18px;padding:10px 18px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px #68527715}.team-health{letter-spacing:1px;grid-template-columns:1fr auto;gap:4px;width:115px;font-size:9px;display:grid}.team-health b{color:var(--pink);text-overflow:ellipsis;white-space:nowrap;max-width:90px;overflow:hidden}.team-health.blue b{color:var(--blue)}meter{appearance:none;grid-area:2/1/auto/3;width:100%;height:12px}meter::-webkit-meter-bar{background:#e8dfea;border:0;border-radius:20px}meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#d25e9b,#ef9cbc);border-radius:20px}.blue meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#56aac4,#9ce1e8)}meter::-moz-meter-bar{background:#d25e9b}.blue meter::-moz-meter-bar{background:#56aac4}.round-label{color:var(--ink);text-align:center;white-space:nowrap;background:0 0;min-height:44px;padding:0}.round-label>span{letter-spacing:1.7px;font-size:8px}.round-label strong{font-size:12px;display:block}.round-label small{color:#84758b;font-size:9px;display:block}body.playing .wordmark{visibility:hidden}#controls{z-index:3;bottom:max(17px,env(safe-area-inset-bottom));background:#fffaf1f5;border:1px solid #fff;border-radius:23px;align-items:center;gap:22px;width:min(740px,100% - 40px);padding:12px 16px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 5px #4e336622,0 12px 32px #47325518}.gift-picker{gap:6px;display:flex}.gift{color:#8a7193;background:#f2eaf1;border:1px solid #0000;border-radius:14px;min-width:64px;min-height:48px;font-size:24px;line-height:1}.gift span{margin-top:3px;font-size:9px;font-weight:900;display:block}.gift.selected{color:#a52f69;background:#f9dcea;border-color:#d887b4}.slider-label{flex:1;grid-template-columns:1fr auto;gap:0 8px;min-width:85px;font-size:10px;font-weight:900;display:grid}.slider-label output{color:var(--pink)}.slider-label input{accent-color:#bb497f;grid-column:1/3;width:100%;min-width:0;height:31px;margin:0}#fire{background:#57376e;width:125px;min-height:51px;font-size:15px}#fire:hover{background:#6e418a}#announcement{z-index:3;text-align:center;pointer-events:none;background:#fffaf1f2;border:1px solid #fff;border-radius:16px;max-width:70%;padding:10px 22px;font-size:14px;font-weight:900;position:fixed;top:24%;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #4d335f20}.modal{z-index:7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#57406560;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{text-align:center;background:var(--cream);border:1px solid #fff;border-radius:28px;width:min(430px,94vw);max-height:92dvh;padding:30px;overflow:auto;box-shadow:0 14px 70px #34204330}.modal-card p{color:#89758e}.modal-card button+button{margin-top:12px}.result-flowers{color:#be4885;letter-spacing:7px;font-size:42px}.rotate-icon{color:#bf4475;font-size:60px;line-height:1}.music-button{color:#915271;background:#f8e7ef;border:1px solid #e9ccd9;border-radius:12px;width:100%;min-height:44px;margin:0 0 14px;padding:8px;font-size:11px;font-weight:900}.dance-caption{text-align:center;pointer-events:none;color:#fff0db;text-shadow:0 2px 10px #40274870;gap:3px;display:grid;position:absolute;inset:20% 8% auto 49%}.dance-caption>span{letter-spacing:4px;font:800 clamp(24px,4vw,48px) Syne}.dance-caption strong{letter-spacing:2px;text-transform:uppercase;font-size:11px}.dance-caption small{letter-spacing:3px;margin-top:5px;font-size:8px}#scene-loading{z-index:5;color:#835878;pointer-events:none;background:#fffaf0e8;border-radius:30px;padding:9px 15px;font-size:11px;font-weight:900;position:fixed;bottom:16px;right:24px}dialog{z-index:10;background:var(--cream);color:var(--ink);border:1px solid #fff;border-radius:24px;max-width:520px;max-height:90dvh;padding:28px}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#4b365e80}dialog .icon-button{float:right}dialog ol{padding-left:24px}dialog li{padding:7px;font-size:14px;line-height:1.5}dialog p{color:#89758e;font-size:12px}#community.sheet{grid-template-columns:230px 1fr;gap:26px;width:min(860px,92vw);padding:25px;display:grid;left:4vw}.community-aside h2{font-size:38px}.community-aside p{font-size:12px}.capacity-pills{flex-wrap:wrap;gap:6px;display:flex}.capacity-pills span{background:#efe3f2;border-radius:20px;padding:6px 10px;font-size:11px;font-weight:900}.community-content{min-width:0;overflow:auto}#community-list{gap:8px;display:grid}.player-card{background:#fffdf8;border:1px solid #e6d8e5;border-radius:16px;align-items:center;gap:10px;padding:8px;display:flex}.player-avatar{color:#a22e60;background:#f3d4e1;border-radius:12px;flex-shrink:0;place-items:center;width:36px;height:36px;font:800 18px Syne;display:grid}.player-card strong{flex:1;min-width:0;font-size:14px}.player-card button{width:auto;min-height:44px;padding:8px 12px}.community-empty{text-align:center;color:#887291;border:1px dashed #cdb5d2;border-radius:18px;padding:28px 15px}#community-invite{background:#f7dce7;border:1px solid #d597b1;border-radius:16px;margin-bottom:12px;padding:14px}#community-invite>strong{font-size:14px}#community-invite>div{gap:8px;margin-top:10px;display:flex}#community-invite button{min-height:44px;padding:8px 12px;font-size:12px}@media (orientation:landscape){#result{-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(90deg,#62517a45,#0000 65%);place-items:center start;padding-left:5vw}#result .modal-card{background:#fffaf0f5;width:min(340px,36vw)}#result h2{font-size:28px}body[data-phase=result] #hud{display:none}}@media (max-height:550px) and (orientation:landscape){#topbar{padding:9px 14px}.wordmark{font-size:15px}.icon-button{width:44px;height:44px}.sheet{max-height:none;padding:20px 26px;top:67px;bottom:12px;transform:none}#welcome.sheet{gap:24px;width:min(800px,88vw);padding:18px 28px}#welcome h1{letter-spacing:-2px;margin:14px 0;font-size:38px}#welcome .intro{margin:12px 0 16px;font-size:12px;line-height:1.5}#welcome .mode-buttons{gap:7px}.welcome-actions{padding:0 0 0 24px}#nick-note{margin:5px 0 10px;font-size:9px}.primary,.secondary,#join-form button{min-height:44px;padding:8px 13px;font-size:12px}.petal-label{font-size:8px}.capacity-note{gap:4px;font-size:7px}.capacity-note span{padding:6px 8px}.join-row input{padding:7px 12px}.sheet #join-form label{font-size:10px}#hud{gap:12px;padding:7px 14px;top:8px}.team-health{width:88px}#controls{gap:14px;padding:7px 13px;bottom:10px}.gift{min-height:44px}#fire{min-height:46px}#announcement{padding:8px 16px;font-size:12px;top:25%}.modal-card{padding:20px}#result .modal-card{padding:18px 22px}#result h2{margin:10px 0;font-size:25px}#result p{margin:8px 0 14px;font-size:11px}.result-flowers{font-size:27px;line-height:1.1}#result .music-button{margin-bottom:5px;font-size:10px}.dance-caption{inset:21% 8% auto 50%}.dance-caption>span{font-size:34px}#lobby h2{font-size:25px}#lobby #invite-code{margin:10px 0}#community.sheet{gap:22px;padding:16px 22px;top:67px;bottom:12px}#community-title{margin:10px 0;font-size:31px}#community-status{font-size:11px;line-height:1.4}.community-aside>p{margin:8px 0}.player-card{padding:5px 8px}#community-list{gap:6px}}@media (orientation:portrait){#topbar{gap:7px;padding:16px 12px}.wordmark{font-size:14px}.wordmark small{font-size:6px}.icon-button{width:42px;height:44px;font-size:22px}.sheet{width:90%;max-height:calc(100dvh - 118px);top:50%;left:5%;transform:translateY(-42%)}#welcome.sheet{width:90%;padding:24px;display:block}#welcome h1{margin:13px 0;font-size:37px}#welcome h1 em br{display:none}#welcome .intro{max-width:none;margin:12px 0 18px;font-size:12px}.capacity-note{display:none}.welcome-copy{padding:0}.welcome-copy:after{font-size:70px;bottom:15px;right:0}.welcome-actions{border-left:0;padding:0}.mode-buttons{gap:10px}#hud{justify-content:space-between;gap:8px;width:94%;top:77px}.team-health{width:80px}#controls{flex-wrap:wrap;gap:10px}.gift-picker{width:40%}.slider-label{width:25%}#fire{width:100%}.modal-card h2{font-size:28px}#community.sheet{width:90%;padding:20px;display:block;left:5%}.community-aside h2{font-size:30px}.community-aside h2 br{display:none}.community-aside{margin-bottom:14px}.player-card button{font-size:12px}.dance-caption{display:none}}@media (max-height:370px) and (orientation:landscape){#welcome h1{font-size:30px}#welcome .intro{font-size:11px}.capacity-note{display:none}#welcome.sheet{padding:14px 22px;top:62px}#result .modal-card{padding:12px 18px}#result p{margin:6px 0}.result-flowers{display:none}.modal-card button+button{margin-top:7px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}#result{pointer-events:none}#result .modal-card{pointer-events:auto}
