:root{--gva-yellow: #FCD746;--gva-teal: #5DCDBA;--gva-midnight: #081B17;--paper: #F3EFE7;--ink: #0E2621;--glass: rgba(255, 252, 245, .9);--shadow: 0 12px 40px rgba(8, 27, 23, .22);--display: "Fredoka", "Avenir Next", system-ui, sans-serif;--ui: "DM Sans", system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui)}body.live{height:100dvh;overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none}#scene{display:none}body.live #scene{display:block;position:fixed;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}body.live #scene:active{cursor:grabbing}#scene:focus,#scene:focus-visible{outline:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--gva-yellow);color:var(--gva-midnight);padding:10px 14px;border-radius:10px;font-weight:700}.skip:focus{top:12px}.btn{font:600 15px/1 var(--ui);border:0;border-radius:999px;padding:12px 18px;cursor:pointer;color:var(--ink);background:var(--glass);box-shadow:var(--shadow);text-decoration:none;display:inline-flex;align-items:center;gap:8px;min-height:44px}.btn:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--gva-teal);outline-offset:2px}.btn.primary{background:var(--gva-yellow);color:var(--gva-midnight)}.btn.ghost{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.top{position:relative;display:flex;justify-content:space-between;align-items:flex-start;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}body.live .top{position:fixed;top:0;left:0;right:0;z-index:5;pointer-events:none}.top>*{pointer-events:auto}.brand img{display:block;width:clamp(150px,17vw,240px);height:auto;filter:drop-shadow(0 4px 10px rgba(8,27,23,.35))}.top-right{display:none;flex-direction:column;align-items:flex-end;gap:10px}body.live .top-right{display:flex}.avatar{width:52px;height:52px;border-radius:50%;border:3px solid var(--gva-midnight);background:var(--gva-yellow);display:grid;place-items:center;padding:0;box-shadow:var(--shadow);cursor:not-allowed}.avatar svg{width:26px;height:26px;fill:var(--gva-midnight)}.games-btn{font:700 16px/1 var(--ui);padding:12px 22px;border:3px solid var(--gva-midnight);background:var(--gva-yellow);color:var(--gva-midnight)}.minimap{padding:0;border:3px solid var(--gva-midnight);border-radius:18px;background:#0e2621d1;box-shadow:var(--shadow);cursor:pointer;overflow:hidden}.minimap canvas{display:block;width:140px;height:120px}.prompt{position:fixed;left:0;top:0;z-index:4;transform:translate(-50%,-100%);pointer-events:none;display:grid;justify-items:center;gap:4px;padding:12px 22px;border-radius:16px;white-space:nowrap;background:#081b17db;border:3px solid var(--gva-yellow);color:#fff;box-shadow:var(--shadow)}.prompt strong{font:700 20px/1.1 var(--display)}.prompt span{font:500 14px/1.25 var(--ui);opacity:.9}.prompt span{white-space:normal;text-align:center;max-width:min(340px,calc(100vw - 80px))}.prompt.soon{border-color:var(--gva-teal)}.hint{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:4;margin:0;padding:10px 16px;border-radius:999px;background:#081b17b8;color:#fff;font:500 14px var(--ui);white-space:normal;text-align:center;width:max-content;max-width:calc(100vw - 32px);transition:opacity .8s;pointer-events:none}.hint.fade{opacity:0}.hint .touch,body.touch .hint .desk{display:none}body.touch .hint .touch{display:inline}body.touch .hint{bottom:auto;top:calc(max(14px,env(safe-area-inset-top)) + 168px)}.stick{position:fixed;z-index:6;left:calc(36px + env(safe-area-inset-left));bottom:calc(36px + env(safe-area-inset-bottom));width:128px;height:128px;border-radius:50%;background:#081b1759;border:3px solid rgba(255,255,255,.75);touch-action:none}.stick span{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:var(--gva-yellow);border:3px solid var(--gva-midnight)}.play-btn{position:fixed;z-index:6;right:calc(30px + env(safe-area-inset-right));bottom:calc(40px + env(safe-area-inset-bottom));width:104px;height:104px;border-radius:50%;border:4px solid var(--gva-midnight);background:var(--gva-yellow);color:var(--gva-midnight);font:700 22px var(--display);box-shadow:var(--shadow);touch-action:manipulation}.play-btn:disabled{opacity:.45}.play-btn.small{font-size:15px}.loader{display:none}body.live .loader{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;background:var(--paper);z-index:20;transition:opacity .5s ease,visibility .5s}.loader img{width:96px;height:96px;object-fit:contain;animation:bob 1.6s ease-in-out infinite}.loader p{font:600 18px var(--display);margin:0}.loader .bar{width:180px;height:6px;border-radius:6px;background:#081b171a;overflow:hidden}.loader .bar span{display:block;height:100%;width:8%;background:var(--gva-teal);transition:width .2s}.loader.done{opacity:0;visibility:hidden}@keyframes bob{50%{transform:translateY(-8px)}}.catalog{padding:24px 16px 40px;max-width:1100px;margin:0 auto}body.live .catalog{position:fixed;inset:0;z-index:26;max-width:none;overflow:auto;background:#f3efe7f7;padding:max(24px,env(safe-area-inset-top)) 16px 40px;display:none}body.live .catalog.open{display:block}.catalog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1100px;margin:0 auto 18px}.catalog h2{font:700 30px var(--display);margin:0}.cards{list-style:none;padding:0;margin:0 auto;max-width:1100px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.card{background:var(--card-bg);color:var(--card-fg);border-radius:18px;padding:18px;border:3px solid var(--card-accent);display:grid;gap:6px;align-content:start}.card h3{font:700 22px var(--display);margin:0}.card p{margin:0;color:#fff;opacity:.9;font-size:15px;line-height:1.4}.card .card-genre{font:700 12px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--card-accent)}.card .card-where{font-size:13px;opacity:.75}.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.game{position:fixed;inset:0;z-index:30;background:#000;display:flex;flex-direction:column}.game-bar{display:flex;justify-content:space-between;align-items:center;padding:max(8px,env(safe-area-inset-top)) 12px 8px;background:var(--gva-midnight);color:#fff;font:600 16px var(--display)}.game iframe{flex:1;width:100%;border:0;background:#000}.noscript{text-align:center;padding:12px}@media(max-width:600px){.brand img{width:128px}.avatar{width:44px;height:44px}.minimap canvas{width:104px;height:89px}.prompt strong{font-size:17px}.prompt{padding:10px 16px}}.pick{--u: clamp(.5px, min(calc(100vw / 1672), calc(100vh / 941)), 1.3px);position:fixed;inset:0;z-index:7;pointer-events:none;font-family:var(--ui);color:var(--gva-midnight)}.pick>*{pointer-events:auto}.pick-title{position:absolute;left:50%;top:calc(var(--u) * 28);transform:translate(-50%);margin:0;height:calc(var(--u) * 82);padding:0 calc(var(--u) * 42);display:flex;align-items:center;white-space:nowrap;border-radius:999px;background:#fdf1daf0;border:calc(var(--u) * 2) solid rgba(255,255,255,.8);box-shadow:0 calc(var(--u) * 8) calc(var(--u) * 26) #081b1738;font:700 calc(var(--u) * 60) / 1 var(--ui);letter-spacing:-.015em}.pick-chars{position:absolute;inset:0;pointer-events:none}.pick-char{position:absolute;left:0;top:0;padding:0;border:0;border-radius:calc(var(--u) * 40);background:transparent;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}.pick-char:focus-visible{outline:calc(var(--u) * 4) solid var(--gva-yellow);outline-offset:calc(var(--u) * 4)}.pick-panel{position:absolute;left:50%;bottom:calc(var(--u) * 41);transform:translate(-50%);width:calc(var(--u) * 603);padding:calc(var(--u) * 18) calc(var(--u) * 33) calc(var(--u) * 26);border-radius:calc(var(--u) * 32);background:#fbf0def2;border:calc(var(--u) * 2) solid rgba(255,255,255,.8);box-shadow:0 calc(var(--u) * 14) calc(var(--u) * 44) #081b1747;display:grid;justify-items:center;gap:calc(var(--u) * 17)}.pick-swatches{display:flex;gap:calc(var(--u) * 23.5)}.pick-swatch{width:calc(var(--u) * 46);height:calc(var(--u) * 46);padding:0;border-radius:50%;border:0;cursor:pointer;background:var(--sw);display:grid;place-items:center;box-shadow:inset 0 calc(var(--u) * -3) 0 #0000001f}.pick-swatch svg{width:58%;height:58%;fill:none;stroke:#fff;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;visibility:hidden}.pick-swatch[aria-checked=true]{outline:calc(var(--u) * 3) solid var(--gva-midnight);outline-offset:calc(var(--u) * 4)}.pick-swatch[aria-checked=true] svg{visibility:visible}.pick-swatch:focus-visible{outline-color:var(--gva-teal);outline-width:calc(var(--u) * 4)}.pick-row{display:flex;gap:calc(var(--u) * 19)}.pick-name{margin:0;width:calc(var(--u) * 262);height:calc(var(--u) * 51);padding:0 calc(var(--u) * 6) 0 calc(var(--u) * 22);border-radius:999px;border:calc(var(--u) * 2.5) solid var(--gva-midnight);background:#fff;display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u) * 6)}.pick-name output{min-width:0;font:700 calc(var(--u) * 26) / 1 var(--ui);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pick-reroll{flex:none;width:calc(var(--u) * 40);height:calc(var(--u) * 40);padding:0;border-radius:50%;border:0;cursor:pointer;background:#5dcdba38;display:grid;place-items:center}.pick-reroll svg{width:64%;height:64%;fill:none;stroke:var(--gva-midnight);stroke-width:1.8}.pick-reroll svg circle{fill:var(--gva-midnight);stroke:none}.pick-reroll:hover{background:#5dcdba66}.pick-enter{width:calc(var(--u) * 262);height:calc(var(--u) * 51);padding:0;border:0;border-radius:999px;cursor:pointer;background:var(--gva-yellow);color:var(--gva-midnight);font:700 calc(var(--u) * 28) / 1 var(--ui);box-shadow:0 calc(var(--u) * 4) 0 #d9a91c,0 calc(var(--u) * 10) calc(var(--u) * 22) #081b1738}.pick-enter:active{transform:translateY(calc(var(--u) * 2));box-shadow:0 calc(var(--u) * 2) 0 #d9a91c}.pick :is(button):focus-visible{outline:calc(var(--u) * 4) solid var(--gva-teal);outline-offset:calc(var(--u) * 3)}.pick-back{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));min-height:44px;padding:0 20px;border-radius:999px;cursor:pointer;border:2px solid rgba(255,255,255,.8);background:#fdf1daf0;color:var(--gva-midnight);font:700 18px/1 var(--ui);box-shadow:var(--shadow)}@media(max-aspect-ratio:4/5),(max-width:520px){.pick-back{top:auto;bottom:calc(100% - 52px);font-size:15px;padding:0 14px}}html.picking :is(.top-right,.hint,.stick,.play-btn,.prompt,.invite,.skip){display:none!important}html.picking .brand img{width:calc(clamp(.5px,min(calc(100vw / 1672),calc(100vh / 941)),1.3px)*327)}@media(max-aspect-ratio:4/5),(max-width:520px){.pick{--u: clamp(.5px, calc(100vw / 426), 1.3px)}.pick-title{top:calc(max(14px,env(safe-area-inset-top)) + var(--u) * 52);height:calc(var(--u) * 46);padding:0 calc(var(--u) * 22);font-size:calc(var(--u) * 28)}.pick-panel{width:calc(100vw - 24px);bottom:max(12px,env(safe-area-inset-bottom));padding:calc(var(--u) * 16) calc(var(--u) * 16) calc(var(--u) * 18);gap:calc(var(--u) * 14);border-radius:calc(var(--u) * 26)}.pick-swatches{gap:calc(var(--u) * 16)}.pick-swatch{width:calc(var(--u) * 44);height:calc(var(--u) * 44)}.pick-row{flex-direction:column;width:100%;gap:calc(var(--u) * 12)}.pick-name{width:100%;height:calc(var(--u) * 52)}.pick-name output{font-size:calc(var(--u) * 24)}.pick-reroll{width:calc(var(--u) * 42);height:calc(var(--u) * 42)}.pick-enter{width:100%;height:calc(var(--u) * 58);font-size:calc(var(--u) * 26)}html.picking .brand img{width:128px}}@media(pointer:coarse){.pick-swatch{width:max(44px,calc(var(--u) * 46));height:max(44px,calc(var(--u) * 46))}.pick-name{height:max(50px,calc(var(--u) * 52))}.pick-reroll{width:44px;height:44px}.pick-enter{min-height:48px}}@media(max-height:520px)and (min-aspect-ratio:4/5){.pick{--u: clamp(.5px, calc(100vh / 620), 1.3px)}.pick-title{top:10px}.pick-panel{bottom:8px}}.invite{position:fixed;z-index:5;left:50%;top:max(20px,env(safe-area-inset-top));transform:translate(-50%);display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:0 32px;border-radius:999px;cursor:pointer;border:2px solid rgba(255,255,255,.8);background:#fdf1daf0;color:var(--gva-midnight);box-shadow:var(--shadow);font:700 26px/1 var(--ui);white-space:nowrap}.invite svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}html:not(.no-welcome) .invite{display:none!important}.invite.count svg{display:none}.who{position:fixed;z-index:6;left:50%;top:calc(max(20px,env(safe-area-inset-top)) + 70px);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 16px;border-radius:22px;background:#fdf1daf7;color:var(--gva-midnight);box-shadow:var(--shadow);border:2px solid rgba(255,255,255,.8);max-width:calc(100vw - 32px)}.who strong{font:600 22px/1.1 var(--display)}.who-note{font:500 14px/1.3 var(--ui);text-align:center}.who-note:empty{display:none}.who-row{display:flex;gap:8px}.who .btn{background:#fff;border:2px solid var(--gva-midnight);font-weight:700}.who .who-x{min-width:44px;justify-content:center;font-size:20px}html.picking .who,html.acct-modal .who{display:none!important}@media(max-width:600px){.who{top:calc(max(14px,env(safe-area-inset-top)) + 120px)}}@media(max-width:600px){.invite{left:max(16px,env(safe-area-inset-left));transform:none;top:calc(max(14px,env(safe-area-inset-top)) + 56px);min-height:40px;padding:0 14px;font-size:15px;gap:7px}.invite svg{width:18px;height:18px}}.catalog-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.avatar:not(:disabled){cursor:pointer}.avatar.in{background:var(--gva-teal)}.pick-signin{border:0;background:none;padding:calc(var(--u) * 4) calc(var(--u) * 8);margin-top:calc(var(--u) * -6);cursor:pointer;color:var(--gva-midnight);font:600 calc(var(--u) * 19) / 1.2 var(--ui);text-decoration:underline;text-underline-offset:3px}@media(pointer:coarse){.pick-signin{min-height:44px}}.acct,.runover{--u: clamp(.45px, min(calc(100vw / 1672), calc(100vh / 941)), 1.3px);position:fixed;inset:0;z-index:30;display:grid;background:#081b1747}.acct{place-items:center;padding:16px}.acct-card,.run-card{background:#fbf6ecf2;border:2px solid rgba(255,255,255,.85);color:var(--gva-midnight);box-shadow:0 18px 60px #081b1752}.acct-card{position:relative;width:min(460px,100%);max-height:calc(100dvh - 32px);overflow:auto;border-radius:28px;padding:28px 28px 22px;display:grid;gap:12px}.acct-x{position:absolute;right:10px;top:10px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;cursor:pointer}.acct-x svg{width:22px;height:22px;stroke:var(--gva-midnight);stroke-width:2.4;stroke-linecap:round;fill:none}.acct-title{margin:0;font:700 30px/1.1 var(--display)}.acct-sub{margin:-6px 0 4px;font:500 15px/1.3 var(--ui);opacity:.8}.acct-step{display:grid;gap:12px}.acct-q{margin:0;font:500 17px/1.4 var(--ui)}.acct-row{display:flex;gap:10px}.acct-row select{flex:1}.acct-label{font:700 15px/1 var(--ui)}.acct-in,.acct-row select{width:100%;min-height:50px;padding:0 16px;border-radius:14px;border:2px solid rgba(8,27,23,.25);background:#fff;color:var(--gva-midnight);font:500 18px/1 var(--ui)}.acct-in.code{letter-spacing:.3em;font:700 24px/1 var(--ui);text-align:center}.acct-in:focus,.acct-row select:focus{outline:3px solid var(--gva-teal);outline-offset:1px;border-color:transparent}.acct-go{min-height:52px;border:0;border-radius:999px;cursor:pointer;background:var(--gva-yellow);color:var(--gva-midnight);font:700 19px/1 var(--ui);box-shadow:0 4px #d9a91c}.acct-go:active{transform:translateY(2px);box-shadow:0 2px #d9a91c}.acct-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.acct-link{border:0;background:none;padding:10px 4px;min-height:44px;cursor:pointer;color:var(--gva-midnight);font:600 15px/1 var(--ui);text-decoration:underline;text-underline-offset:3px}.acct-hint{margin:-4px 0 0;font:400 14px/1.35 var(--ui);opacity:.75}.acct-msg{margin:0;min-height:1.3em;font:600 15px/1.3 var(--ui);color:#0b6b5b}.acct-msg.bad,.run-msg.bad{color:#b3261e}.acct-msg:empty{min-height:0}.acct-captcha:empty{display:none}.acct-privacy{justify-self:center;font:500 13px/1.3 var(--ui);color:var(--gva-midnight);opacity:.75}.runover{align-items:center;justify-items:end;padding-right:calc(50vw - var(--u) * 836 + var(--u) * 260);background:#081b171f}.run-card{width:calc(var(--u) * 740);min-height:calc(var(--u) * 640);border-radius:calc(var(--u) * 52);padding:calc(var(--u) * 34) calc(var(--u) * 54) calc(var(--u) * 40);display:grid;justify-items:center;align-content:center;gap:calc(var(--u) * 14);text-align:center}.run-title{margin:0;font:700 calc(var(--u) * 64) / 1 var(--ui);letter-spacing:-.01em}.run-score{margin:0;font:700 calc(var(--u) * 196) / .9 var(--display);letter-spacing:-.005em}.run-score.long{font-size:calc(var(--u) * 150)}.run-rank{margin:0;min-height:1.1em;font:700 calc(var(--u) * 46) / 1.1 var(--ui);letter-spacing:-.01em}.run-save{width:100%;height:calc(var(--u) * 92);margin-top:calc(var(--u) * 12);border:0;border-radius:999px;cursor:pointer;background:var(--gva-yellow);color:var(--gva-midnight);font:700 calc(var(--u) * 46) / 1 var(--ui);box-shadow:0 calc(var(--u) * 5) 0 #d9a91c}.run-save:disabled{opacity:.6;cursor:progress}.run-note{margin:0;font:500 calc(var(--u) * 26) / 1.3 var(--ui)}.run-msg{margin:0;font:600 calc(var(--u) * 24) / 1.3 var(--ui)}.run-msg:empty{display:none}.run-later{border:0;background:none;cursor:pointer;padding:calc(var(--u) * 8) calc(var(--u) * 16);min-height:44px;color:var(--gva-midnight);font:700 calc(var(--u) * 34) / 1 var(--ui);text-decoration:underline;text-underline-offset:calc(var(--u) * 5)}@media(max-aspect-ratio:4/5),(max-width:520px){.runover{--u: clamp(.4px, .125vw , 1.3px);justify-items:center;align-items:end;padding:0 12px max(12px,env(safe-area-inset-bottom))}.run-card{width:100%;min-height:0;border-radius:26px}.run-save{height:max(56px,calc(var(--u) * 92));font-size:max(22px,calc(var(--u) * 46))}}@media(max-height:520px)and (min-aspect-ratio:4/5){.runover{--u: clamp(.4px, calc(100vh / 760), 1.3px)}.acct{place-items:start center}}html.acct-modal :is(.invite,.prompt,.hint,.play-btn,.stick,.games-btn,.minimap){display:none!important}body:has(#prompt:not([hidden])) .invite{display:none!important}.welcome-live{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0 0;font:600 15px/1.2 var(--ui);color:var(--gva-midnight)}.welcome-live[hidden]{display:none}.welcome-live i{width:9px;height:9px;border-radius:50%;background:#2fbf71;box-shadow:0 0 0 3px #2fbf7138}
