*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:#f1f5f9;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-user-select:none;user-select:none;background:radial-gradient(at top,#1d3170 0%,#0d1b3e 60%,#091330 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button{font:inherit;cursor:pointer}.screen{min-height:100%;padding:max(20px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex}.card{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:18px;flex-direction:column;gap:12px;width:100%;max-width:400px;padding:22px 18px;display:flex}.title{text-align:center;margin:0;font-size:30px}.muted{color:#b6c2dc;text-align:center;margin:0;line-height:1.4}.small{font-size:13px}.error{color:#fda4af;text-align:center;margin:0;line-height:1.4}.field{color:#b6c2dc;flex-direction:column;gap:6px;font-size:14px;display:flex}.field input{font:inherit;color:#fff;-webkit-user-select:text;user-select:text;background:#00000040;border:1px solid #fff3;border-radius:12px;padding:12px;font-size:18px}.code-input{letter-spacing:.3em;text-align:center}.code-input::placeholder{letter-spacing:normal}.primary,.secondary{border:none;border-radius:12px;padding:14px;font-size:18px;font-weight:600}.primary{color:#1e1b4b;background:#facc15}.secondary{color:#fff;background:#ffffff24}.primary:disabled,.secondary:disabled{opacity:.4;cursor:default}.link-button{color:#93a4c8;background:0 0;border:none;padding:6px;text-decoration:underline}.divider{text-align:center;color:#7f8db0;font-size:14px}.room-code{text-align:center;letter-spacing:.15em;font-size:56px;font-weight:800}.status{text-align:center;min-height:1.4em;line-height:1.4}.segmented{background:#00000040;border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented button{color:#dbe4f5;background:0 0;border:none;border-radius:9px;padding:10px 0;font-weight:600}.segmented button.on{color:#1e1b4b;background:#fff}.segmented button:disabled:not(.on){opacity:.4;cursor:default}.segmented button.on:disabled{cursor:default}.seats{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.seat{background:#ffffff12;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.seat--me{background:#ffffff24;font-weight:700}.seat--empty{color:#7f8db0;background:0 0;border:1px dashed #fff3}.seat--off .seat-name{opacity:.5}.seat-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.seat-note{color:#fda4af;font-size:12px;font-weight:400}.title-cubes{justify-content:center;gap:8px;display:flex}.title-cubes .cube-icon{width:52px;height:52px}.cube-icon{flex:none;display:block;overflow:visible}.cube-defs{width:0;height:0;position:absolute;overflow:hidden}.teams{grid-template-columns:1fr 1fr;gap:8px;display:grid}.team{background:#0003;border:2px solid #0000;border-radius:14px;flex-direction:column;gap:6px;min-width:0;padding:10px 8px;display:flex}.team--mine{border-color:#ffffff59}.team-head{justify-content:center;align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.team-cube{width:28px;height:28px}.team .seat{padding:8px 10px}.team-join{margin-top:auto;padding:10px 6px;font-size:15px}.game{height:100%;padding:max(8px, env(safe-area-inset-top)) 8px max(4px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.players{grid-template-columns:1fr 1fr;gap:6px;padding:2px 2px 0;display:grid}.pchip{background:#ffffff0d;border:2px solid #ffffff1f;border-radius:14px;align-items:center;gap:7px;min-width:0;padding:6px 10px 6px 7px;transition:background .2s,border-color .2s;display:flex;position:relative}.pchip--on{background:#ffffff29}.pchip-ring{pointer-events:none;position:absolute;top:-2px;left:-2px;overflow:visible}.pchip-ring path{fill:none;stroke-linecap:round;transition:stroke-dashoffset .1s linear}.pchip--off{opacity:.45}.pchip-cube{width:24px;height:24px}.pchip-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;overflow:hidden}.pchip--on .pchip-name{font-weight:700}.turn-line{text-align:center;min-height:1.6em;margin-top:auto;padding:8px 0 2px;font-size:18px}.clock{font-variant-numeric:tabular-nums;background:#ffffff1f;border-radius:999px;min-width:2.2em;margin-left:8px;padding:1px 8px;font-weight:800;display:inline-block}.clock--warn{color:#fff;background:#ef4444}.muted-inline{color:#fda4af;font-size:14px}.board-wrap{aspect-ratio:1;touch-action:manipulation;flex:0 auto;width:100%;min-height:0;position:relative}.board{width:100%;height:100%;display:block}.board-frame{fill:url(#kFrame)}.board-tray{fill:#2e1a09}.slot{fill:#1f1105}.cube-shadow{fill:#000;opacity:.45}.cube-side{stroke:#6e4520;stroke-width:.02px}.cube-grain{fill:none;stroke:#c39462;stroke-width:.012px;opacity:.6}.carve circle,.carve path,.carve-light circle,.carve-light path{fill:none;stroke-width:.085px;stroke-linecap:round}.carve-light{stroke:#fffaf0;opacity:.75}.cube-dot{stroke:#fffaf0;stroke-width:.022px}.cube[data-take]{cursor:pointer}.cube--slide{animation:.45s cubic-bezier(.3,.7,.3,1) both cube-slide}@keyframes cube-slide{0%{transform:translate(var(--fx), var(--fy))}}.cube--fly{animation:.45s ease-in-out cube-fly}@keyframes cube-fly{0%{transform:scale(1)}45%{transform:scale(1.22)}to{transform:scale(1)}}.cube--picked{visibility:hidden}.cube--lifted{cursor:pointer}.cube--lifted .cube-inner{transform:scale(1.12)}.cube--lifted .cube-shadow{opacity:.6;transform:translate(.05px,.1px)}.cube-selected{fill:none;stroke:#fff;stroke-width:.055px;stroke-dasharray:.1 .07}.cube-ring{fill:none;stroke:#facc15;stroke-width:.05px;animation:.9s ease-in-out infinite alternate ring-pulse}@keyframes ring-pulse{0%{opacity:.55}to{opacity:1}}.cube-last{fill:none;stroke:#fff;stroke-width:.05px;opacity:.85}.cube-win{fill:none;stroke-width:.09px;animation:.6s ease-in-out infinite alternate ring-pulse}.push-arrow{cursor:pointer}.push-hit{fill:#0000}.push-arrow path{fill:#facc15;stroke:#fff7d6;stroke-width:.04px;stroke-linejoin:round;animation:.7s ease-in-out infinite alternate arrow-nudge}@keyframes arrow-nudge{0%{transform:translate(0)}to{transform:translate(var(--nx), var(--ny))}}.toast{color:#fff;text-align:center;pointer-events:none;background:#7f1d1deb;border-radius:16px;max-width:calc(100% - 20px);padding:8px 16px;font-size:15px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.overlay{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.overlay--notice{text-align:center;pointer-events:auto;background:#091330bf;padding:24px;font-size:20px}.overlay--result{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;background:#060c1fdb;border-radius:12px;justify-content:flex-start;padding:12px;overflow-y:auto}.celebration{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.result-body{flex-direction:column;align-items:stretch;gap:12px;width:100%;max-width:380px;margin:auto 0;display:flex;position:relative}.result-icon{text-align:center;font-size:60px;line-height:1}.result-icon.win{animation:.9s ease-in-out infinite result-bounce}.result-icon.lose{animation:.5s ease-in-out infinite alternate result-sob}@keyframes result-bounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-14px)scale(1.06)}}@keyframes result-sob{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.result-title{text-align:center;overflow-wrap:anywhere;font-size:38px;font-weight:900;line-height:1.15}.result-title--small{font-size:26px}.result--win .result-title{color:#facc15;text-shadow:0 4px 24px #facc1573}.result-actions{flex-direction:column;gap:10px;display:flex}.game-foot{justify-content:center;margin-top:auto;display:flex}.dots{background:#0000004d;border-radius:14px;flex:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:8px;padding:4px;display:grid}.dots button{color:#dbe4f5;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:48px;padding:5px 6px;font-size:15px;font-weight:600;display:flex}.dots button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dots button.on{color:#3f2711;background:#f3dcb4}.dots button:disabled{opacity:.4;cursor:default}.dots-cube{width:26px;height:26px}.actions{flex:none;justify-content:center;align-items:center;gap:8px;width:100%;min-height:52px;margin-top:8px;display:flex}.actions button{flex:1;max-width:160px;padding:12px 8px;font-size:17px}.hint{color:#b6c2dc;text-align:center;margin:0;font-size:15px}.hub-link{color:#93a4c8;align-self:flex-start;margin:-8px 0 -4px;padding:4px 0;font-size:14px;text-decoration:none}.room-list{flex-direction:column;gap:6px;display:flex}.room-list-title{color:#b6c2dc;font-size:14px}.room-item{color:#fff;text-align:left;background:#facc1514;border:1px solid #facc1559;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:17px;display:flex}.room-item:disabled{opacity:.45;cursor:default}.room-item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.room-item-count{color:#facc15;flex:none;font-weight:700}
