:root{--jt-ink: #0f2b33;--jt-cream: #fff6e0;--jt-juice: #ff5e3a;--jt-lime: #8fd633;--jt-sky: #2ec6d6;--jt-shadow: rgba(8, 32, 40, .55);--jt-ui-font: "Trebuchet MS", "Avenir Next", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#0d3b4f;font-family:var(--jt-ui-font);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0}#stage{display:block;width:100%;height:100%;touch-action:none}#hud{position:absolute;inset:0;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.panel,.actions,.btn{pointer-events:auto}.stick{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:5}.stick--base{width:132px;height:132px;background:radial-gradient(circle,#fff6e029,#fff6e00d 70%);border:2px solid rgba(255,246,224,.35)}.stick--knob{width:62px;height:62px;background:#fff6e0d1;border:3px solid var(--jt-juice);box-shadow:0 4px 14px var(--jt-shadow)}.readout{position:absolute;bottom:calc(10px + env(safe-area-inset-bottom));left:calc(12px + env(safe-area-inset-left));padding:7px 10px;border-radius:10px;background:#0a28328c;color:var(--jt-cream);font-size:11px;line-height:1.35;font-variant-numeric:tabular-nums;white-space:pre;pointer-events:none;backdrop-filter:blur(6px)}.panel{position:absolute;top:calc(10px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));width:232px;max-height:calc(100% - 24px);display:flex;flex-direction:column;align-items:flex-end;z-index:10}.panel__toggle{border:0;border-radius:999px;padding:8px 16px;background:var(--jt-juice);color:var(--jt-cream);font-family:inherit;font-weight:700;font-size:12px;letter-spacing:.08em;box-shadow:0 3px 10px var(--jt-shadow);cursor:pointer}.panel__body{display:none;width:100%;margin-top:8px;padding:10px 12px;border-radius:14px;background:#0a2832d1;backdrop-filter:blur(10px);overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.panel.is-open .panel__body{display:block}.panel__row{display:grid;grid-template-columns:74px 1fr 38px;align-items:center;gap:6px;margin-bottom:7px}.panel__row--modes{grid-template-columns:74px 1fr 1fr}.panel__label{color:var(--jt-cream);font-size:10px;letter-spacing:.03em;opacity:.85}.panel__readout{color:var(--jt-lime);font-size:10px;text-align:right;font-variant-numeric:tabular-nums}.panel__row input[type=range]{width:100%;height:20px;accent-color:var(--jt-juice);touch-action:pan-y}.panel__mode{border:1px solid rgba(255,246,224,.3);border-radius:8px;padding:4px 2px;background:transparent;color:var(--jt-cream);font-family:inherit;font-size:9px;letter-spacing:.04em;cursor:pointer}.panel__mode.is-active{background:var(--jt-lime);border-color:var(--jt-lime);color:var(--jt-ink);font-weight:700}.panel__reset{width:100%;margin-top:6px;padding:7px;border:1px solid rgba(255,246,224,.25);border-radius:9px;background:transparent;color:var(--jt-cream);font-family:inherit;font-size:10px;letter-spacing:.04em;cursor:pointer}.scoreboard{position:absolute;top:calc(10px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));padding:8px 10px 7px;border-radius:13px;background:#0926309e;backdrop-filter:blur(8px);pointer-events:none;min-width:132px}.scoreboard__target{color:var(--jt-lime);font-size:9px;font-weight:700;letter-spacing:.13em;margin-bottom:5px;opacity:.95}.scorerow{display:grid;grid-template-columns:17px 1fr auto;align-items:center;gap:5px;padding:2px 4px;border-radius:7px;border-left:3px solid var(--row-color, #fff);margin-bottom:2px;transition:background .18s ease}.scorerow--you{background:#fff6e01c}.scorerow.is-bumped{animation:jt-bump .46s cubic-bezier(.3,1.6,.5,1)}@keyframes jt-bump{0%{transform:scale(1);background:#8fd6338c}40%{transform:scale(1.07)}to{transform:scale(1)}}.scorerow__glyph{font-size:13px;line-height:1}.scorerow__name{color:var(--jt-cream);font-size:10px;font-weight:700;letter-spacing:.05em}.scorerow__score{color:var(--jt-cream);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.centre{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:4vh 4vw}.banner{color:var(--jt-cream);font-size:clamp(20px,4.6vw,40px);font-weight:800;letter-spacing:.06em;text-align:center;text-shadow:0 4px 16px rgba(6,30,40,.75);animation:jt-pop .32s cubic-bezier(.2,1.5,.4,1)}.banner--big{font-size:clamp(24px,6vw,54px);color:var(--accent, var(--jt-cream))}.banner--count{font-size:clamp(56px,15vw,140px);color:var(--jt-cream);margin-bottom:30vh}.banner--juice{margin-bottom:26vh}.banner--juice{color:var(--jt-lime);font-size:clamp(46px,12vw,116px)}@keyframes jt-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.card{min-width:min(340px,84vw);padding:14px 18px 16px;border-radius:18px;background:#092630e6;backdrop-filter:blur(12px);box-shadow:0 12px 40px #04161e8c;animation:jt-pop .3s cubic-bezier(.2,1.4,.4,1)}.card__title{color:var(--jt-lime);font-size:11px;font-weight:800;letter-spacing:.16em;text-align:center;margin-bottom:10px}.card__title--champion{color:var(--accent, var(--jt-juice));font-size:clamp(15px,3vw,22px);letter-spacing:.1em}.champion{color:var(--jt-cream);font-size:clamp(20px,4.4vw,32px);font-weight:800;text-align:center;margin-bottom:12px}.card__hint{margin-top:10px;color:var(--jt-cream);opacity:.55;font-size:10px;text-align:center;letter-spacing:.05em}.resultrow{display:grid;grid-template-columns:30px 20px 1fr auto auto;align-items:center;gap:7px;padding:5px 7px;margin-bottom:3px;border-radius:9px;border-left:3px solid var(--accent, #fff);background:#fff6e012}.resultrow__place{font-size:13px;text-align:center}.resultrow__glyph{font-size:14px}.resultrow__name{color:var(--jt-cream);font-size:11px;font-weight:700;letter-spacing:.04em}.resultrow__pts{color:var(--jt-lime);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.resultrow__total{color:var(--jt-cream);opacity:.8;font-size:11px;font-variant-numeric:tabular-nums}.tie{display:inline-block;margin-left:5px;padding:1px 4px;border-radius:4px;background:var(--jt-juice);color:var(--jt-cream);font-size:8px;letter-spacing:.08em;vertical-align:middle}.actions{position:absolute;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;gap:10px;justify-content:center}.btn{border:0;border-radius:999px;padding:11px 22px;background:var(--jt-juice);color:var(--jt-cream);font-family:inherit;font-weight:800;font-size:12px;letter-spacing:.1em;box-shadow:0 4px 14px var(--jt-shadow);cursor:pointer}.btn--ghost{background:#092630cc;border:1px solid rgba(255,246,224,.3)}.spectating{position:absolute;left:50%;transform:translate(-50%);bottom:calc(58px + env(safe-area-inset-bottom));padding:5px 13px;border-radius:999px;background:#0926309e;color:var(--jt-cream);font-size:10px;letter-spacing:.1em;pointer-events:none;backdrop-filter:blur(6px)}@media (orientation: portrait){.btn--jump{right:6%;bottom:7%}.stickhint{left:12%;bottom:9%}.scoreboard{font-size:11px;padding:6px 8px}.topbar{gap:6px}.bots{grid-template-columns:1fr}.bots__planet{order:-1}}.topbar{position:absolute;top:calc(10px + env(safe-area-inset-top));right:calc(96px + env(safe-area-inset-right));display:flex;gap:7px;align-items:center;z-index:10;pointer-events:auto}.btn--menu{padding:8px 14px;font-size:11px}.btn--mute{padding:8px 12px;font-size:14px;background:#092630cc;border:1px solid rgba(255,246,224,.3)}.btn--mute-locked{background:var(--jt-juice);border-color:var(--jt-juice);font-size:10px;letter-spacing:.08em;animation:jt-nudge 2.2s ease-in-out infinite}@keyframes jt-nudge{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media (prefers-reduced-motion: reduce){.btn--mute-locked{animation:none}}.btn--jump{position:absolute;right:calc(22px + env(safe-area-inset-right));bottom:calc(26px + env(safe-area-inset-bottom));width:92px;height:92px;border-radius:50%;font-size:14px;letter-spacing:.1em;background:var(--jt-lime);color:var(--jt-ink);border:3px solid rgba(255,246,224,.75);touch-action:none;transition:transform 90ms ease,opacity .14s ease}.btn--jump.is-pressed{transform:scale(.9)}.btn--jump.is-cooling{opacity:.34;background:#092630cc;color:var(--jt-cream)}.setup{position:absolute;inset:0;display:flex;align-items:stretch;justify-content:center;background:#061e28f0;backdrop-filter:blur(10px);z-index:50;pointer-events:auto;padding:2vh 3vw;overflow:hidden}.setup__panel{width:min(560px,94vw);display:flex;flex-direction:column;height:100%;max-height:100%;min-height:0;padding:10px 14px 12px}.setup__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}.setup__title{color:var(--jt-lime);font-size:clamp(20px,5vw,34px);font-weight:800;letter-spacing:.14em;text-align:center;margin-bottom:14px}.setup__row{margin-bottom:12px}.setup__label{color:var(--jt-cream);opacity:.72;font-size:10px;font-weight:700;letter-spacing:.16em;margin-bottom:6px}.setup__choices{display:flex;flex-wrap:wrap;gap:6px}.chip{border:2px solid rgba(255,246,224,.22);border-left:4px solid var(--chip-color, rgba(255, 246, 224, .4));border-radius:10px;padding:7px 11px;background:#fff6e012;color:var(--jt-cream);font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.05em;cursor:pointer;pointer-events:auto;transition:transform 90ms ease,background .14s ease}.chip:active{transform:scale(.96)}.chip.is-selected{background:var(--chip-color, var(--jt-lime));border-color:var(--chip-color, var(--jt-lime));color:var(--jt-ink)}.setup__actions{display:flex;gap:8px;margin-top:12px}.setup__play{flex:1 1 auto;padding:14px;font-size:15px;background:var(--jt-lime);color:var(--jt-ink)}.setup__resume{flex:0 0 auto;padding:14px 20px;font-size:13px}@media (max-height: 760px){.setup{padding:2vh 3vw;align-items:flex-start}.setup__title{font-size:18px;margin-bottom:8px}.setup__row{margin-bottom:7px}.setup__label{font-size:9px;margin-bottom:4px}.chip{padding:5px 8px;font-size:10px}.setup__actions{margin-top:8px}.setup__play{padding:10px;font-size:13px}.setup__resume{padding:10px 14px;font-size:12px}}.chip.is-disabled{opacity:.4;border-style:dashed;cursor:default}.preview{display:flex;flex-direction:column;align-items:center;gap:6px;margin:4px 0 12px}.preview__canvas{width:190px;height:190px;max-width:55vw;max-height:55vw;border-radius:50%;background:#00000029}.preview__name{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--jt-cream)}.preview__tip{max-width:320px;padding:7px 11px;border-radius:9px;background:#ff6a2b29;border:1px solid rgba(255,140,70,.45);color:#ffd9b8;font-size:10px;line-height:1.45;text-align:center}.btn--quit{color:#ffb0a0}@media (max-height: 460px){.preview__canvas{width:120px;height:120px}.preview__tip{font-size:9px;padding:5px 9px}}.setup__title--logo{font-family:ui-rounded,SF Pro Rounded,"Baloo 2",Trebuchet MS,system-ui,sans-serif;font-size:30px;font-weight:800;letter-spacing:.06em;background:linear-gradient(100deg,#ff9e2c,#ff6a3d 42%,#ff2d9b);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(24,10,6,.85)) drop-shadow(0 0 6px rgba(255,90,30,.35));padding-bottom:2px}.menu{display:flex;flex-direction:column;gap:9px}.menuitem{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:12px 15px;border:0;border-left:6px solid var(--menu-colour, #b7f24a);border-radius:13px;background:#fff6e014;color:var(--jt-cream);font-family:ui-rounded,SF Pro Rounded,Trebuchet MS,system-ui,sans-serif;text-align:left}.menuitem__label{font-size:16px;font-weight:800;letter-spacing:.05em;color:var(--menu-colour, #b7f24a)}.menuitem__note{font-size:10.5px;opacity:.72}.menuitem:active{transform:scale(.985)}.menuitem.is-disabled{opacity:.42}.howto{display:flex;flex-direction:column;gap:8px}.howto__row{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border-radius:11px;background:#fff6e00f}.howto__glyph{font-size:17px;line-height:1.2;flex-shrink:0}.howto__text{font-size:11px;line-height:1.5;color:var(--jt-cream);opacity:.9}.howto__text b{opacity:1;letter-spacing:.03em}@media (max-height: 460px){.setup__title--logo{font-size:22px}.menuitem{padding:9px 13px}}.stickhint{position:fixed;left:8%;bottom:16%;width:118px;height:118px;margin:0 0 -59px;transform:translateY(50%);border-radius:50%;border:2px dashed rgba(255,246,224,.42);background:radial-gradient(circle,#fff6e01a,#fff6e000 72%);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:4;transition:opacity .16s ease;animation:stickhint-breathe 2.6s ease-in-out infinite}.stickhint__label{font-size:10px;font-weight:800;letter-spacing:.18em;color:#fff6e09e}@keyframes stickhint-breathe{0%,to{opacity:.5}50%{opacity:.92}}@media (prefers-reduced-motion: reduce){.stickhint{animation:none;opacity:.7}}@media (max-height: 420px){.stickhint{width:92px;height:92px;margin-bottom:-46px}}body.is-menu-open .stickhint{display:none}.setup--lobby{background:radial-gradient(120% 80% at 50% 108%,#ffd98a,#ffd98a00 58%),radial-gradient(90% 60% at 12% 6%,#fff6e047,#fff6e000 60%),linear-gradient(178deg,#37cfe0,#63dcd6 38%,#ffe3a3 74%,#ffcf7a);backdrop-filter:none;padding:0}.setup--lobby:before{content:"";position:absolute;inset:auto 0 0;height:30%;background:radial-gradient(150% 100% at 50% 100%,#f9cf80 0 38%,#f0b45f 38% 44%,#f0b45f00 45%),linear-gradient(180deg,#2ec6d600,#35bcd4 18%,#1a92ae 62%,#12768f);pointer-events:none}.setup--lobby:after{content:"";position:absolute;top:2.5%;right:4%;width:clamp(52px,9vw,80px);height:clamp(52px,9vw,80px);border-radius:50%;background:radial-gradient(circle,#fff3c4 0 46%,#ffd166 47% 72%,#ffd16600 73%);pointer-events:none}.setup--lobby .setup__panel{width:min(680px,96vw);position:relative;z-index:1;padding:3vh 18px}.setup--pause{background:#061e28e6}.setup,.setup button,.setup .chip,.menuitem,.howto__text,.preview__name,.preview__tip,.setup__label{font-family:ui-rounded,SF Pro Rounded,"Baloo 2",Trebuchet MS,system-ui,sans-serif;font-weight:700}.setup--lobby .setup__title--logo{font-size:clamp(30px,7vw,58px)}.setup--lobby .menuitem{background:#0a2e3cd1;box-shadow:0 3px #061e2880;padding:15px 18px}.setup--lobby .menuitem__label{font-size:clamp(15px,3.4vw,21px)}.setup--lobby .menuitem__note{font-size:clamp(10px,2vw,12.5px);color:var(--jt-cream)}.setup--lobby .howto__row,.setup--lobby .setup__scroll{color:var(--jt-cream)}.setup--lobby .howto__row{background:#0a2e3cd1}.bots{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.bots__choices{display:flex;flex-direction:column;gap:6px;min-width:0}.bots__planet{display:flex;justify-content:center}@media (min-width: 640px){.bots{grid-template-columns:minmax(0,1.35fr) minmax(210px,.85fr);gap:18px}.setup__panel--wide{width:min(940px,97vw)}.bots__choices .chip{font-size:12.5px;padding:9px 13px}.bots__choices .setup__label{font-size:11px}.bots__planet{position:sticky;top:0}.bots__planet .preview__canvas{width:100%;max-width:260px;height:auto;aspect-ratio:1}}.setup--lobby .chip{background:#0a2e3cdb;border-color:#fff6e02e;color:var(--jt-cream)}.setup--lobby .chip.is-selected{color:var(--jt-ink)}.setup--lobby .setup__label{color:#0b3b4a;opacity:.85;text-shadow:0 1px 0 rgba(255,255,255,.35)}.setup--lobby .preview__name{color:#0b3b4a;text-shadow:0 1px 0 rgba(255,255,255,.4)}.setup--lobby .preview__tip{background:#8c2a0ce6;border-color:#ffa05ab3;color:#ffe6d2}.setup--lobby .btn--ghost{background:#0a2e3cdb;color:var(--jt-cream)}.pause{display:flex;flex-direction:column;gap:10px}.board{border-radius:14px;background:#fff6e012;padding:10px 12px 8px}.board__heading{font-size:10px;letter-spacing:.18em;opacity:.6;color:var(--jt-cream);margin-bottom:6px}.board__row{display:grid;grid-template-columns:20px 24px 1fr auto;align-items:center;gap:8px;padding:6px 8px;border-radius:9px;border-left:4px solid var(--row-colour, #b7f24a);background:#061e2852;color:var(--jt-cream);margin-bottom:4px;font-size:14px}.board__row.is-leader{background:#b7f24a29}.board__row.is-you .board__name{font-weight:800}.board__rank{opacity:.55;font-size:12px}.board__glyph{font-size:16px}.board__name{letter-spacing:.03em}.board__score{font-size:19px;font-weight:800;color:var(--row-colour, #b7f24a)}.menuitem--big{align-items:center;padding:17px 18px}.menuitem--big .menuitem__label{font-size:clamp(18px,4.4vw,26px);letter-spacing:.07em}.menuitem__label,.board__score,.setup__play,.btn--ghost{font-family:ui-rounded,SF Pro Rounded,"Baloo 2",Trebuchet MS,system-ui,sans-serif;font-weight:800}.setup--lobby .menuitem__label{text-shadow:0 2px 0 rgba(6,30,40,.55)}.setup--lobby .menuitem--big .menuitem__label,.setup--lobby .menu .menuitem__label{font-size:clamp(17px,3.9vw,24px)}.setup__play,.setup--lobby .btn--ghost{font-size:clamp(14px,3vw,18px);letter-spacing:.06em}@media (max-height: 500px){.setup--lobby .setup__panel{padding:6px 12px 8px}.setup__title--logo{font-size:clamp(18px,4vw,26px);padding-bottom:0}.setup--lobby .setup__title--logo{font-size:clamp(20px,4.5vw,30px)}.bots__planet .preview__canvas,.preview__canvas{max-width:min(30vh,170px);max-height:30vh}.preview{gap:3px;margin:0 0 6px}.preview__name{font-size:11px}.preview__tip{font-size:9px;padding:4px 8px;line-height:1.35}.setup__row{margin-bottom:4px}.setup__label{font-size:9px;margin-bottom:2px}.bots__choices .chip,.chip{font-size:10.5px;padding:5px 9px}.setup__actions{margin-top:6px}.setup__play,.setup--lobby .btn--ghost{padding:9px;font-size:13px}.menuitem{padding:7px 12px}.menuitem--big{padding:10px 14px}.menu{gap:5px}.board__row{padding:4px 7px;font-size:12px}}@media (orientation: portrait) and (max-width: 560px){.topbar{top:auto;bottom:20%;right:3%;flex-direction:column;align-items:flex-end}.scoreboard{max-width:62vw}}
