:root{--paper:#fdf6e7;--card:#fffdf8;--wall:#f1e7d3;--ink:#2b3a55;--muted:#5f6d84;--line:#e7dbc3;--coral:#e8604c;--coral-d:#b9432f;--sun:#ffc94a;--sun-d:#cf9417;--teal:#2fa59e;--teal-d:#1d7a74;--plum:#8a78c4;--plum-d:#6655a0;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{overscroll-behavior:none;background:var(--paper);height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;font-family:ui-rounded,SF Pro Rounded,Nunito,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:15px;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}svg{width:100%;height:100%;display:block}#app{background:var(--paper);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}#hud{padding:calc(var(--safe-t) + 8px) calc(var(--safe-r) + 10px) 4px calc(var(--safe-l) + 10px);background:var(--paper);flex-direction:column;gap:6px;min-width:0;display:flex}.hud-row{align-items:center;gap:6px;min-width:0;display:flex}.chip{background:var(--card);height:32px;box-shadow:0 1px 0 var(--line),inset 0 0 0 1px var(--line);white-space:nowrap;border-radius:16px;align-items:center;gap:5px;min-width:0;padding:0 10px 0 8px;font-size:13px;font-weight:700;display:flex}.chip svg{width:17px;height:17px;color:var(--muted);flex:none}#crowdText{min-width:0}#clock{font-variant-numeric:tabular-nums;flex:none}#clock em{color:var(--teal-d);margin-left:2px;font-size:12px;font-style:normal;font-weight:700}.icon-btn{background:var(--card);width:36px;height:36px;color:var(--ink);box-shadow:0 2px 0 var(--line),inset 0 0 0 1px var(--line);border-radius:12px;flex:none;padding:8px}.icon-btn:active{transform:translateY(1px)}#race{flex-direction:column;gap:3px;display:flex}.track{background:#efe4cd;border-radius:10px;height:20px;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #2b3a5524}.track .fill{border-radius:10px;width:0;transition:width .25s ease-out;position:absolute;inset:0 auto 0 0}.track i{background:#ffffffbf;width:2px;position:absolute;top:0;bottom:0}.track span{letter-spacing:.1px;font-variant-numeric:tabular-nums;align-items:center;font-size:12px;font-weight:800;display:flex;position:absolute;top:0;bottom:0}.t-l{left:9px}.t-r{right:9px}.us .fill{background:var(--sun)}.them{height:15px}.them .fill{background:#c9bfe6}.them span{color:#4b4170;font-size:10.5px;font-weight:700}#ticker{height:15px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:600;line-height:15px;overflow:hidden}#ticker:empty{height:0;margin-top:-6px}#stage{background:var(--wall);min-width:0;min-height:0;position:relative;overflow:hidden}#board{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#toast{background:var(--ink);color:#fff;text-align:center;opacity:0;pointer-events:none;border-radius:13px;max-width:calc(100% - 24px);padding:7px 13px;font-size:13.5px;font-weight:700;line-height:1.25;transition:opacity .16s,transform .16s;position:absolute;top:10px;left:50%;transform:translate(-50%,-6px)}#toast.on{opacity:1;transform:translate(-50%)}#hint{text-align:center;pointer-events:none;background:#fffdf8f2;border-radius:12px;width:max-content;max-width:calc(100% - 66px);padding:6px 12px;font-size:12.5px;font-weight:700;line-height:1.25;transition:opacity .3s;position:absolute;bottom:10px;left:10px;box-shadow:0 1px 4px #2b3a5533}#hint:empty{display:none}#hint.off{opacity:0}#combo{background:var(--coral);color:#fff;pointer-events:none;opacity:0;font-variant-numeric:tabular-nums;border-radius:12px;padding:4px 10px;font-size:13px;font-weight:800;position:absolute;bottom:10px;left:10px}#combo.on{opacity:1}#combo.tick{animation:.18s ease-out comboTick}@keyframes comboTick{0%{transform:scale(1)}45%{transform:scale(1.18)}to{transform:scale(1)}}#fit{position:absolute;bottom:10px;right:10px}#openSocial{position:absolute;bottom:54px;right:10px}#feed{pointer-events:none;flex-direction:column;align-items:flex-start;gap:3px;max-width:calc(100% - 66px);display:flex;position:absolute;bottom:52px;left:10px}.feed-line{max-width:100%;color:var(--ink);text-align:left;overflow-wrap:anywhere;background:#fffdf8f0;border-radius:10px;padding:4px 9px;font-size:12.5px;font-weight:700;line-height:1.25;animation:.16s ease-out feedIn;box-shadow:0 1px 3px #2b3a5538}button.feed-line{pointer-events:auto}@keyframes feedIn{0%{opacity:0;transform:translateY(4px)}}#dock{padding:8px calc(var(--safe-r) + 10px) calc(var(--safe-b) + 8px) calc(var(--safe-l) + 10px);background:var(--paper);box-shadow:0 -1px 0 var(--line);flex-direction:column;gap:7px;min-width:0;display:flex}.dock-row{align-items:center;gap:9px;min-width:0;display:flex}.tools{flex:none;gap:5px;display:flex}.tool{background:var(--card);width:44px;height:44px;color:var(--muted);box-shadow:0 3px 0 var(--line),inset 0 0 0 1px var(--line);border-radius:13px;padding:10px}.tool.on{background:var(--teal);color:#fff;box-shadow:0 3px 0 var(--teal-d)}.tool:active{transform:translateY(2px)}#energy{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.e-track{background:#efe4cd;border-radius:13px;height:26px;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #2b3a5529}.e-fill{background:var(--sun);border-radius:13px;width:100%;transition:width .18s ease-out;position:absolute;inset:0 auto 0 0}.e-bolt{width:18px;height:18px;color:var(--ink);position:absolute;top:4px;left:7px}#eText{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex;position:absolute;inset:0}#eTimer{text-align:center;height:14px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px;font-weight:700;line-height:14px}#energy.dry{animation:.3s dryShake}.e-track.pulse{animation:.34s ease-out ePulse}@keyframes ePulse{40%{transform:scale(1.05);box-shadow:0 0 0 3px #ffc94a8c}to{transform:scale(1)}}@keyframes dryShake{20%{transform:translate(-4px)}45%{transform:translate(4px)}70%{transform:translate(-2px)}to{transform:translate(0)}}#palette{scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;gap:6px;margin-top:-7px;padding:13px 4px 3px;display:flex;overflow:auto hidden}#palette::-webkit-scrollbar{display:none}.swatch{border-radius:12px;flex-direction:column;flex:none;align-items:center;gap:2px;width:50px;padding:3px 0 2px;transition:transform .12s;display:flex}.swatch .dot{border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:800;display:flex;box-shadow:inset 0 -2px #2b3a552e,0 0 0 1px #2b3a5524}.swatch .left{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700;line-height:13px}.swatch.sel{background:var(--card);box-shadow:0 0 0 2px var(--ink);transform:translateY(-2px)}.swatch.sel .left{color:var(--ink)}.swatch.done{opacity:.42}.swatch.done .dot{font-size:17px}.swatch.blink{animation:.28s ease-in-out 3 blink}.swatch.jump{animation:.52s cubic-bezier(.3,1.6,.5,1) jump}@keyframes jump{0%{transform:translateY(0)scale(1)}35%{transform:translateY(-8px)scale(1.16)}65%{transform:translateY(1px)scale(.95)}to{transform:translateY(0)scale(1)}}@keyframes blink{50%{background:var(--sun);transform:translateY(-4px)scale(1.08)}}.overlay{z-index:10;padding:calc(var(--safe-t) + 12px) calc(var(--safe-r) + 12px) calc(var(--safe-b) + 12px) calc(var(--safe-l) + 12px);background:#2b3a556b;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:auto}.overlay.plain{background:var(--paper);z-index:20}.center-card{text-align:center;flex-direction:column;gap:10px;width:min(100%,380px);margin:auto;display:flex}.center-card h1{letter-spacing:-.4px;margin:0;font-size:34px;font-weight:900}.center-card p{color:var(--muted);margin:0 0 6px;font-weight:600;line-height:1.35}.btn{white-space:nowrap;background:var(--coral);color:#fff;min-height:42px;box-shadow:0 3px 0 var(--coral-d);border-radius:13px;flex:auto;padding:6px 12px;font-size:14px;font-weight:800}.btn.ghost{background:var(--card);color:var(--ink);box-shadow:0 3px 0 var(--line),inset 0 0 0 1px var(--line)}.btn.small{flex:none;min-height:36px;padding:4px 12px;font-size:13px}.btn.danger{color:var(--coral-d);width:100%}.btn:active{transform:translateY(2px)}.sheet{align-items:flex-end;padding-bottom:0}.sheet-card{background:var(--card);width:min(100%,480px);max-height:calc(100% - 4px);padding:12px 14px calc(var(--safe-b) + 16px);overscroll-behavior:contain;touch-action:pan-y;border-radius:18px 18px 0 0;overflow:auto}.sheet-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.sheet-head h2{margin:0;font-size:18px;font-weight:800}.sheet-card h3{color:var(--muted);margin:14px 0 5px;font-size:12.5px;font-weight:800}.note{color:var(--muted);margin:6px 0;font-size:12.5px;font-weight:600;line-height:1.35}.pseudo{margin:0 0 6px;font-size:18px;font-weight:800}.pickers{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}.pickers label{color:var(--muted);flex-direction:column;gap:3px;min-width:0;font-size:12px;font-weight:700;display:flex}.pickers select{background:var(--paper);width:100%;min-height:40px;box-shadow:inset 0 0 0 1px var(--line);font:inherit;color:var(--ink);border:0;border-radius:10px;padding:4px 8px;font-size:15px;font-weight:700}#pseudoSave{width:100%}.react-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.react{background:var(--paper);min-height:44px;box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;font-size:22px;line-height:1}.sheet-row{flex-wrap:wrap;gap:6px;display:flex}.sheet-row .btn{white-space:normal;min-height:38px;font-size:13px}.phrase-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.phrase{background:var(--paper);min-height:40px;box-shadow:inset 0 0 0 1px var(--line);overflow-wrap:anywhere;border-radius:11px;padding:5px 8px;font-size:13px;font-weight:700;line-height:1.2}.react:active,.phrase:active{transform:translateY(1px)}.sheet-actions{flex-direction:column;gap:7px;margin-top:10px;display:flex}.sheet-actions .btn{white-space:normal;flex:none}.blocked-row{justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:3px 0;font-size:13.5px;font-weight:700;display:flex}.blocked-row span{overflow-wrap:anywhere;min-width:0}.legal-links{flex-wrap:wrap;gap:6px 14px;margin:14px 0 0;font-size:13px;font-weight:700;display:flex}.legal-links a{color:var(--teal-d);overflow-wrap:anywhere}.seg{background:#efe4cd;border-radius:12px;flex-wrap:wrap;gap:3px;padding:3px;display:flex}.seg button{white-space:nowrap;min-height:34px;color:var(--muted);border-radius:9px;flex:auto;padding:4px 8px;font-size:13px;font-weight:700}.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #2b3a553d}.seg button:disabled{opacity:.6}.toggles{gap:18px;font-size:13.5px;font-weight:700;display:flex}.toggles label{align-items:center;gap:6px;display:flex}.toggles input{width:18px;height:18px;accent-color:var(--teal);margin:0}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px;display:grid}.stat{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);border-radius:10px;min-width:0;padding:6px 9px}.stat b{font-variant-numeric:tabular-nums;font-size:16px;font-weight:800;line-height:1.15;display:block}.stat small{color:var(--muted);font-size:11.5px;font-weight:600;line-height:1.2;display:block}.fresque-card{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:9px 0;display:flex}.fresque-card canvas{width:76px;height:76px;image-rendering:pixelated;background:var(--paper);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line);border-radius:9px;flex:none}.fresque-card b{font-size:15px;font-weight:800;display:block}.fresque-card small{color:var(--muted);font-size:12px;font-weight:600;display:block}.fresque-card p{overflow-wrap:anywhere;margin:3px 0 0;font-size:12px;font-weight:600;line-height:1.3}.end-card{background:var(--card);text-align:center;border-radius:20px;width:min(100%,380px);margin:auto;padding:16px;box-shadow:0 8px #2b3a5529}.end-emoji{font-size:44px;line-height:1.1}.end-card h2{margin:4px 0 6px;font-size:22px;font-weight:900;line-height:1.15}.end-card p{margin:0 0 6px;font-size:14px;font-weight:600;line-height:1.35}.end-card .stats{text-align:left;margin:10px 0 12px}.end-actions{flex-wrap:wrap;gap:7px;display:flex}#beaconChip{color:var(--coral-d);position:absolute;top:48px;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #2b3a553d}#netBanner{background:var(--coral);color:#fff;text-align:center;pointer-events:none;border-radius:12px;padding:7px 12px;font-size:13px;font-weight:700;line-height:1.25;position:absolute;top:10px;left:10px;right:10px}#crowd{flex:auto}#progress{height:22px}#progress .t-l{white-space:nowrap;max-width:calc(100% - 70px);overflow:hidden}#progress .fill{background:var(--sun)}.tools .tool{flex:none}body.scene-closed #tools{opacity:.45;pointer-events:none}body.scene-closed #signalBlock{display:none}@media (min-width:520px){.react-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (orientation:landscape) and (max-height:520px){#app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(214px,31vw,300px)}#hud{grid-area:1/1;gap:4px;padding-right:8px}#stage{grid-area:2/1}#dock{padding:calc(var(--safe-t) + 8px) calc(var(--safe-r) + 10px) calc(var(--safe-b) + 8px) 8px;box-shadow:-1px 0 0 var(--line);grid-area:1/2/3;min-height:0}#palette{touch-action:pan-y;flex-wrap:wrap;flex:auto;align-content:flex-start;min-height:0;overflow:hidden auto}.dock-row{flex-wrap:wrap}#energy{flex:100%}.chip{height:28px}.icon-btn{width:32px;height:32px;padding:7px}#fit{width:36px;height:36px;padding:8px}.sheet-card{width:min(100%,620px)}}@media (min-width:700px) and (min-height:700px){body{font-size:16px}#hud,#dock{padding-left:calc(var(--safe-l) + 18px);padding-right:calc(var(--safe-r) + 18px)}#progress{height:26px}.swatch{width:58px}.swatch .dot{width:44px;height:44px;font-size:17px}}
